2015-02-03 9 views
1

SciKit-Learn에서 특정 스코어에 대한 예측의 정확도를 기반으로 모델 성능을 평가할 수있는 사용자 정의 스코어러를 만들고 싶습니다. 수업.SciKit의 맞춤 스코어 - Learn - 특정 클래스에 대한 그리드 검색 최적화 허용

# Create a classifier: 
clf = ensemble.RandomForestClassifier() 

# Set up some parameters to explore: 
param_dist = { 
       'n_estimators':[500, 1000, 2000, 4000], 
       "criterion": ["gini", "entropy"], 
       'bootstrap':[True, False] 
       } 

# Construct grid search 
search = GridSearchCV(clf,\ 
         param_grid=param_dist,\ 
         cv=StratifiedKFold(y, n_folds=10),\ 
         scoring=my_scoring_function) 


# Perform search 
X = training_data 
y = ground_truths 
search.fit(X, y) 

거기가

'개', '고양이', '마우스'

내 훈련 데이터는 세 개의 클래스 중 하나에 속하는 데이터 포인트로 구성되어 있다고 가정하자 my_scoring_function을 생성하는 방법은 'dog'클래스에 대한 예측의 정확도 만 리턴 되는가? make_scorer function은 각 데이터 포인트에 대한 지상 진실 및 예상 클래스 만 처리한다는 점에서 제한적인 것처럼 보입니다.

많은 도움을 주셔서 감사합니다.

+0

'make_scorer'을 사용할 때의 문제점은 무엇입니까? 모든 비견종 수업을 동일시하고 정확도를 계산하면됩니다. –

답변

1

sklearn 문서의 섹션을 놓쳤습니다.

다음 입력이 필요한 함수를 만들 수 있습니다. model, x_test, y_test를 생성하고, 최적화 함수로 사용할 수있는 0과 1 사이의 값을 출력합니다 (1이 가장 좋습니다).

단순히 함수를 만들고 model.predict (x_test)를 적용한 다음 정확도와 같은 측정 항목을 사용하여 결과를 분석하기 만하면됩니다.