[파이썬 머신러닝] 자주하는 질문

“파이썬 라이브러리를 활용한 머신러닝” 도서에 대해 자주 질문되는 내용을 정리합니다.

  • SVM의 목적함수를 풀기 위해 어떤 알고리즘을 사용하나요?
    • Quadratic programming(https://en.wikipedia.org/wiki/Quadratic_programming)이라는 최적화 문제를 푸는 알고리즘을 사용합니다. 사이킷런에서 사용하는 libsvm의 QP 알고리즘은 https://www.csie.ntu.edu.tw/~cjlin/papers/libsvm.pdf 의 4,5 절에 나와 있습니다만 머리가 아플 것 같네요.
      libsvm은 쌍대 문제를 풀고 liblinear는 원문제와 쌍대를 선택할 수 있습니다. 그래서 LinearSVC의 dual 매개변수에서 선택할 수 있습니다. 쌍대 문제에 대한 조금 더 자세한 내용은 ‘핸즈온 머신러닝’ 부록 C를 참고하세요.
  • 그래디언트부스팅의 predict_proba() 메서드에서 어떻게 확률을 계산하나요?
    • 결정 트리는 리프 노드의 클래스 비율이 곧 예측 확률이 됩니다. 랜덤포레스트는 이런 트리의 확률을 모아서 평균합니다. 그래디언트부스팅은 이와는 다르게 결정함수의 값에 로지스틱함수를 적용하여 확률값을 반환합니다.
  • 결정 트리에서 특성 중요도(feature_importances_)는 어떻게 계산하나요?
    • 분할에 사용한 특성별로 발생되는 모든 정보 이득을 더하고 전체 특성 중요도의 합이 1이 되도록 정규화합니다. 정보 이득과 특성 중요도에 대해서 조금 더 자세한 내용은 결정 트리와 불순도에 대한 궁금증 글을 참고하세요.
  • mglearn 라이브러리를 어떻게 설치하나요?
    • 저자 안드레아스 뮐러가 책에 필요한 그래프와 데이터셋을 손쉽게 다루기 위해 mglearn 라이브러리를 만들었습니다. 이 라이브러리는 PyPI에 등록되어 있어서 pip install mglearn 명령으로 간단하게 설치할 수 있습니다. 이 라이브러리는 저자의 깃허브(https://github.com/amueller/introduction_to_ml_with_python)에 있는 mglearn 폴더의 코드와 동일합니다. 다만 저자가 향후 깃허브의 수정 사항이 생길때마다 PyPI에 동일하게 코드를 업데이트할지는 확실하지 않습니다. 가능하다면 깃허브에 있는 mglearn 코드를 사용하는 것이 좋을 것 같습니다. 또 번역서의 그래프는 한글이나 해상도, 라이브러리 버전의 차이로 mglearn 코드에 변경사항이 조금 있습니다. 번역서의 그래프는 역자의 깃허브(https://github.com/rickiepark/introduction_to_ml_with_python)에 있는 mglearn 코드를 참고해 주세요.
  • 우분투 리눅스에서 konlpy 설치하기
    • 우분투 리눅스에서 konlpy를 설치하려면 openjdk-7-jdk 이 필요합니다. 다음 명령을 사용해 openjdk-7-jdk를 설치하세요.
      $ sudo add-apt-repository ppa:openjdk-r/ppa 
      $ sudo apt-get update 
      $ sudo apt-get install openjdk-7-jdk
  • mglearn을 임포트할 때 cannot import name 'imread' 에러가 납니다.
    • 파이썬 이미지 라이브러리인 pillow와 관련된 에러로 정확한 원인이 파악되지는 못했지만 다음을 시도해 보세요.
    • imageio 패키지를 설치하고 mglearn 패키지의 plot_animal_tree.py 파일과 plot_interactive_tree.py 파일의 코드에서
      from scipy.misc import imread 코드를 from imageio import imread로 바꿉니다.(H* Bae, 김*원 님)
    • MacOS 엘캐피탄일 경우 pillow 4.1.0 버전을 설치합니다.(김*미 님)

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중

This site uses Akismet to reduce spam. Learn how your comment data is processed.