저는 현재 Python 및 Scikit과 함께 분류 목적으로 배우고 GridSearch에 대해 약간의 독서를하고 있습니다. 최상의 결과를 얻도록 견적 매개 변수를 최적화하는 데 좋은 방법이라고 생각했습니다.
내 방법론은 다음과 같습니다.
- 내 데이터를 훈련 / 테스트로 나눕니다.
- 5Fold Cross 검증과 함께 GridSearch를 사용하여 내 추정기 (Random Forest, Gradient Boost, SVC 등)를 훈련하고 테스트하여 최적의 하이퍼 파라미터 조합으로 최상의 추정기를 얻습니다.
- 그런 다음 분류를 예측하고 실제 클래스 레이블과 비교하기 위해 테스트 세트를 사용하여 Precision, Recall, FMeasure 및 Matthews Correlation Coefficient와 같은 각 추정기의 메트릭을 계산합니다.
나는이 단계에서 이상한 행동을보고 어떻게 진행해야할지 확신 할 수 없습니다. GridSearch에서 .best_estimator_를 가져 와서 그리드 검색의 '최적화'출력으로 사용 하고이 추정기를 사용하여 예측을 수행합니까? 이 작업을 수행하면 3 단계 메트릭이 일반적으로 모든 교육 데이터를 학습하고 테스트 세트에서 테스트하는 것보다 일반적으로 훨씬 낮습니다. 또는 출력 GridSearchCV 객체를 새 추정기로 간단히 가져 옵니까 ? 이 작업을 수행하면 3 단계 메트릭의 점수가 높아지지만 의도 된 분류 자 (예 : 임의의 포리스트) 대신 GridSearchCV 개체를 사용하는 것이 이상해 보입니다.
편집 : 그래서 내 질문은 반환 된 GridSearchCV 객체와 .best_estimator_ 속성의 차이점은 무엇입니까? 추가 측정 항목을 계산할 때이 중 어떤 것을 사용해야하나요? 이 출력을 일반 분류기처럼 사용할 수 있습니까 (예 : 예측 사용) 아니면 어떻게 사용해야합니까?
refit=False
다음clf.fit
최선의 분류와 함께 할 수없는 것입니까?