2017-12-21 20 views
-2

분류 또는 회귀 분석에서 입력 데이터 (교육 데이터)로부터 학습하려면 모델이 필요합니다. 예를 들어, 선형 회귀 분석에서 가능한 최상의 모델 매개 변수 값을 찾습니다./Github-Aurelien Geron handson-ML-마스터에서기계 학습 모델의 데이터 피팅 및 예측

이 코드는 : 나는 기계 학습에서 분류 부분을 통과 동안

나는 (MNIST 데이터 집합에 "하지-5"를 분류하는 모델) 아래에 주어진 코드를 만났다 아래

from sklearn.base import BaseEstimator 
class Never5Classifier(BaseEstimator): 
def fit(self, X, y=None): # fit the data 
    pass 
def predict(self, X): 
    print(X.shape) 
    print(len(X)) 
    return np.zeros((len(X), 1), dtype=bool) 

그리고 03_Classification.ipynb

은 모델에 교차 유효성 검사를 수행하는 코드입니다.

never_5_clf = Never5Classifier() 

cross_val_score(never_5_clf, X_train, y_train_5, cv=3, scoring="accuracy") 

글쎄 이것은 맞춤형 모델이므로 데이터가 어떻게 장착되어 있는지 (블랙 박스 내부에서 어떻게되는지) 알고 싶습니다. 비록 내가 여러 모델에 걸쳐 왔지만, 거기에 몇 가지 수학적 증거/매개 변수 값을 결정하는 방법이 있었다.

+0

이 코드를 어디에서 찾을 수 있습니까? 링크 해주세요. –

+0

@VivekKumar 완료! –

+0

never5classifier는 아무 것도 배우지 않으며 항상 모든 데이터가 부정적 일 것으로 예측합니다. 즉 5가 아닙니다. –

답변

0

위의 예에서 모델은 데이터 세트의 특정 숫자가 숫자 5으로 분류되어 있는지를 분류하려고합니다. 숫자가 5training set이있는 모델을 먹이면이 training set에서 모델에 5의 고유 한 특성 (features)이 무엇인지 알 수 있습니다. 이렇게하면 모델에 training set의 각 이미지에 포함 된 28x28 픽셀을 학습합니다. 모델 교육을 마친 후 (분류 자에게 5의 숫자로 충분한 수의 샘플을 공급함) 이제 모델을 테스트 할 준비가되었습니다. 테스트 단계에서 testing set을 사용하고 있는데이 경우모델과 다릅니다. 그것은 training set과 같은 숫자 5을 포함 할뿐만 아니라 모든 숫자 유형 (0-9)을 포함하게 될 것입니다. 그리고 귀하의 모델은 각 샘플을 1로 true을 의미하는 것으로 분류 할 수 있습니다 (일명 5) 또는 0false (일명 5)이 아닙니다. 이것은 fit() 함수가이 경우에 작동하는 방식이며 한 자리 숫자 만 사용하여 모델을 학습하고 (귀하의 경우 숫자는 5입니다), 이후에 모델이 임의로 표시되는지 여부를 테스트하고 있습니다 숫자는 testing set에서 실제로 5 또는 다른 숫자입니다. training set에 을 호출 한 후 모델에서 5 자릿수를 인식하는 법을 배웠지 만 3, 8, 4 or 1이 어떻게 생겼는지를 알지 못했지만 5이 아닌 경우 다른 모델보다 아직 배웠다.