scikit-learn의 GridSearchCV
은 (내부) 교차 유효성 검사 폴드의 점수를 수집 한 다음 모든 폴드 수에 대한 평균을 계산하는 것으로 보입니다. 나는이 문제의 근본 원인에 대해 궁금해했다. 언뜻보기에는 교차 검증 폴드의 예측을 수집 한 다음 선택한 폴링 메트릭을 모든 폴드의 예측에 적용하는 것이 더 유연 해 보입니다.Scikit-learn : GridSearchCV에서 채점
나는이 우연히 그 이유는 내가 (v0.20.dev0을 scikit 배우기) cv=LeaveOneOut()
및 scoring='balanced_accuracy'
설정 불균형 데이터를 GridSearchCV
를 사용하는 것입니다. 균형 잡힌 정확도 (또는 리콜)와 같은 채점 척도를 각 왼쪽 샘플에 적용하는 것은 이치에 맞지 않습니다. 오히려 모든 예측을 먼저 수집 한 다음 모든 예측에 한 번 내 점수 메트릭을 적용하려고합니다. 아니면 추론에 오류가 있습니까?
업데이트 : 난 예측 먼저 채점 메트릭이 한번인가되는 모든 내부 폴드와 수집 된 차이 GridSearchCV
에 기초하여 정의 그리드 검색 클래스를 생성하여이를 해결.
네,하지만 제 질문은 그와 관련이 있습니다 .-'GridSearchCV'는 득점을 사용합니다. 별도로 각 내부 교차 유효성 검사 배율에 점수를 적용한 다음 모든 내부 접기 예측을 먼저 수집 한 다음 점수 측정 지표를 한 번 적용하는 대신 스코어 전체에서 평균을 계산합니다. 제 경우에는 후자가 더 적절할 것 같습니다. – monade
그래, 그 질문을 오해했다. 'LeaveOneOut'와'balanced_accuracy'를 사용하고 싶다면 각 폴드에 대한 예측을 모아서 모두 채점하는 것이 합리적입니다. 나는 그렇게하기 위해 자신의 그리드 탐색자를 만들어야 할 것 같다. 'model_selection.ParameterGrid'와'model_selection.KFold'를 사용할 수 있습니다. – KPLauritzen
고마워요 @KPLauritzen, 제가 할게요! – monade