Table of Contents
scikit-learn #
1. scikit-learn #
파이썬을 활용한 기계학습 기법으로써, 데이터 마이닝과 분석에 단순 하고 효율적인 도구다. 다양한 내용에 대하여 누구나 사용 가능하며, 과학 계산의 표준 파이썬 라이브러리인 NumPy, SciPy와 matplotlib 을 기반으로 한다.
2. 리눅스 설치 #
http://scikit-learn.org/stable/install.html 참조 시각화를 위한 matplotlib 패키지 설치가 필요하다. (http://matplotlib.org)
3. 패키지 설치 #
apt-get install build-essential python-dev python-numpy python-setuptools python-scipy libatlas-dev python-pip
4. matplotlib 설치 #
pip install libpng-dev libjpeg8-dev libfreetype6-dev apt-get install python-matplotlib
5. scikit-learn 설치 #
pip install scikit-learn apt-get install ipython-notebook
6. IPython Notebook 설치 #
pip install ipython
pip install tornado
pip install pyzmq
7. 설치 확인 코드 #
실행할 준비가 되었는지 확인하기 위해 파이썬 콘솔에서 다음과 같이 입력하여 확인한다. import sklearn as sk import numpy as np import matplotlib.pyplot as plt
8. 데이터셋 import와 instance값 예제 #
from sklearn import datasets
iris = datasets.load_iris()
X_iris, y_iris = iris.data, iris.target
print X_iris.shape, y_iris.shape
(150,4) (150,)
print X_iris[0], y_iris[0]
[5.1 3.5 1.4 0.2] 0
이 예제는 150개의 행(행은 인스턴스다)과 4개의 열을 의미한다.
9. scikit-learn으로 해결할 수 있는 기계 학습 #
1) 지도 학습 알고리즘: 데이터에서 모델을 만들고 속성만 알고 있는 새로운 인스턴스에 대해 목적 속성을 예측한다. 목적 범주가 이산 집합에 속할 때 분류의 문제가 된다.
2) 회귀 (regression): 예측하고자 하는 범주가 이산 집합 대신에 연속 집합으로 범위화되어 있다.
3) 비지도 학습 (unsupervised learning): 목적의 범주가 없고 대신 주어진 속성의 집합을 바탕으로 유사성으로 인스턴스를 그룹화한다.
10. 기계학습과 관련된 중요한 개념 #
1) 차원의 저주 (curse of dimensionality): 속성을 추가하거나 높은 차수 항을 추가한다면 매개변수의 개수가 빠르게 증가한다.
2) 과적합화 (overfitting)의 문제: 훈련 데이터가 충분하지 않을 때, 훈련 데이터셋에서 목적 범주를 잘 예측하는 모델을 생성하기 힘들다.
3) 과소적합화 (underfitting): 모델이 힘든 훈련 데이터를 사용했더라도 데이터를 모델화할 수 없는 낮은 대표 능력을 가질 때 발생한다.
11.참고자료 #
1) http://scikit-learn.org/stable/ 2) https://github.com/brenden17/blog/blob/master/post/ms.scikit-learn.v.md 3) http://www.scipy.org/