나는 gridsearch에 의해 반환 된 가장 좋은 추정량을 계산할 필요가있는 프로젝트를 수행하고있었습니다.svm을위한 gridsearch를 배우는 기계
parameters = {'gamma':[0.1, 0.5, 1, 10, 100], 'C':[1, 5, 10, 100, 1000]}
# TODO: Initialize the classifier
svr = svm.SVC()
# TODO: Make an f1 scoring function using 'make_scorer'
f1_scorer = make_scorer(score_func)
# TODO: Perform grid search on the classifier using the f1_scorer as the scoring method
grid_obj = grid_search.GridSearchCV(svr, parameters, scoring=f1_scorer)
# TODO: Fit the grid search object to the training data and find the optimal parameters
grid_obj = grid_obj.fit(X_train, y_train)
pred = grid_obj.predict(X_test)
def score_func():
f1_score(y_test, pred, pos_label='yes')
# Get the estimator
clf = grid_obj.best_estimator_
나는 내가 gridsearch 객체를 생성 한 후 예측을하기 때문에 f1_scorer의 FUNC를 만드는 방법을 모르겠습니다. 내가 gridsearch 점수 메서드로 사용하기 때문에 obj를 만든 후 f1_scorer 선언 할 수 없습니다. gridsearch에 대해이 채점 기능을 만드는 방법을 알려주십시오.
감사합니다! 저것은 percectly 일했다. 내가 물어볼 수 있다면, 어떻게 gridsearch가 독자적으로 예측을 반환합니까? make_scorer 함수와 관련이 있습니까? –
당신이 그것을했던 것과 같은 방식으로, 추정기의'.predict()' 메소드를 사용한다. 내부적으로 데이터를 유효성 검사 및 테스트 세트로 분할합니다. 그런 다음 훈련 세트 ('X_train, y_train'의 하위 집합)에 맞춰 예측하고 내부 테스트 세트 (이는'X_train, y_train'의 하위 세트입니다)와 비교합니다. 그래서'X_test'를 사용하지 않습니다. 그것은 편견없이 최종 모델을 평가하는 것입니다. – elyase