Python 의 기계 학습 도구 scikit - learn (학습 노트 2 - 공식 인 스 턴 스 프로그램)

본 고 는 공식 사 이 트 를 참고 한다.http://scikit-learn.org/stable/tutorial/basic/tutorial.html
scikit - learn 공구 꾸러미 는 표준 데이터 세트 (iris 와 digits 두 데이터 세트 포함) 를 가지 고 테스트 할 수 있 습 니 다.
(1) 먼저 모듈 데이터 세트 가 져 오기:
from sklearn import datasets
iris = datasets.load_iris()
digits = datasets.load_digits()

가 져 온 데이터 세트 는 데이터 와 데이터 세트 를 포함 하 는 메타 데이터 (데 이 터 를 설명 하 는 데 사용) 입 니 다. 데이터 집중. data 구성원 에는 N 개의 샘플, N 개의 특징 을 가 진 2 차원 데이터 가 저장 되 어 있 으 며 예측 해 야 할 목표 변 수 는. target 구성원 에 저 장 됩 니 다. 이것 은 1 차원 변수 이 고 모든 견본 은 하나의 태그 에 대응 합 니 다.
예 를 들 어 digits 데이터 에서. data 각 줄 은 하나의 견본 데이터 에 대응 하고 각 열 은 하나의 특징 을 나타 낸다.
>>> print digits.data  
[[  0.   0.   5. ...,   0.   0.   0.]
 [  0.   0.   0. ...,  10.   0.   0.]
 [  0.   0.   0. ...,  16.   9.   0.]
 ...,
 [  0.   0.   1. ...,   6.   0.   0.]
 [  0.   0.   2. ...,  12.   0.   0.]
 [  0.   0.  10. ...,  12.   1.   0.]]

. target 데이터 의 모든 요 소 는 샘플 데이터 (개수 가 같 음) 에 대응 합 니 다.
>>> digits.target
array([0, 1, 2, ..., 8, 9, 8])
>>> len(digits.target) == len(digits.data)
True

 
(2) 모델 학습 과 예측:
scikit - learn 에서 문 제 를 분류 하 는 평가 기 (estimator) 는 fit (X, y) 방법 과 predict (T) 두 가지 방법 으로 이 루어 집 니 다.
아래 예제 에서 estimator 는 sklearn. svm. SVC 로 벡터 분류 기 SVC (support vector classification) 를 지원 합 니 다. estimator 구조 함수 의 매개 변 수 는 모델 에 대응 하 는 매개 변수 (다음 예 에서 gamma = 0.001, C = 100. svm 모델 의 매개 변수) 입 니 다. 처음에 estimator 를 블랙박스 로 볼 수 있 습 니 다.
>>> from sklearn import svm
>>> clf = svm.SVC(gamma=0.001, C=100.)

훈련 SVC 모델 은 다음 과 같 습 니 다:
>>> clf.fit(digits.data[:-1], digits.target[:-1])  
SVC(C=100.0, cache_size=200, class_weight=None, coef0=0.0, degree=3,
  gamma=0.001, kernel='rbf', max_iter=-1, probability=False, shrinking=True,
  tol=0.001, verbose=False)

훈련 된 SVC 모델 로 데 이 터 를 예측 합 니 다.
>>> clf.predict(digits.data[-1])
array([8])

 
(3) 모델 이 오래 지속 되면 pickle 모듈 dumps 와 loads 로 훈련 된 모델 데 이 터 를 문자열 에 오래 지속 시 킬 수 있 습 니 다.
>>> from sklearn import svm
>>> from sklearn import datasets
>>> clf = svm.SVC()
>>> iris = datasets.load_iris()
>>> X, y = iris.data, iris.target
>>> clf.fit(X, y)  
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0,
  kernel='rbf', max_iter=-1, probability=False, shrinking=True, tol=0.001,
  verbose=False)

>>> import pickle
>>> s = pickle.dumps(clf)
>>> clf2 = pickle.loads(s)
>>> clf2.predict(X[0])
array([0])
>>> y[0]
0

데이터 양 이 비교적 많 을 때, 우 리 는 모델 을 메모리 에 문자열 (string) 형식 으로 저장 하 는 것 이 아니 라 디스크 파일 에 영구적 으로 저장 하고 싶 습 니 다.
>>> from sklearn.externals import joblib
>>> joblib.dump(clf, 'filename.pkl')

 

좋은 웹페이지 즐겨찾기