전체 데이터에서 나는 훈련 + 테스트 + 검증을 의미합니다.
유효성 검사 데이터를 사용하여 하이퍼 파라미터를 수정하고 테스트 데이터를 사용하여 모델을 선택하면 전체 데이터에 대해 모델을 학습하여 모델을 학습하는 것보다 매개 변수를 더 잘 학습하는 것이 좋습니다. 열차 데이터
전체 데이터에서 나는 훈련 + 테스트 + 검증을 의미합니다.
유효성 검사 데이터를 사용하여 하이퍼 파라미터를 수정하고 테스트 데이터를 사용하여 모델을 선택하면 전체 데이터에 대해 모델을 학습하여 모델을 학습하는 것보다 매개 변수를 더 잘 학습하는 것이 좋습니다. 열차 데이터
답변:
문제는 잘못된 가정에 있습니다. 많은 사람들이 "할 수없는"말을합니다.
실제로 널리 배포 된 sklearn 패키지 의 그리드 검색 구현은 바로 그 일을합니다. refit=False
그렇지 않으면 전체 데이터를 사용하여 최종 모델을 재교육합니다.
일부 하이퍼 매개 변수의 경우 데이터 양과 관련이 있기 때문에 바람직하지 않을 수 있습니다. 예를 들어 의사 결정 트리에min_samples_leaf
대한 정리 전 전술을 고려하십시오 . 더 많은 데이터가 있으면 사전 정리가 원하는대로 수행되지 않을 수 있습니다.
그러나 다시 말하지만, 대부분의 사람들은 실제로 교차 검증 후 전체 데이터를 사용하여 재교육을 실시하여 가능한 최고의 모델로 끝납니다.
부록 : @NeilSlater에 따르면 일부 사람들은 CV 위에서 홀드 아웃을합니다. 다시 말해, 그들은 기차 테스트 분할을 한 다음 훈련에서 모델 선택을 수행합니다. 그에 따르면, 그들은 원래의 훈련 세트 스플릿을 사용하여 재 훈련하지만 테스트 세트는 사용하지 않습니다. 그런 다음 테스트 세트를 사용하여 최종 모델 추정을 수행합니다. 개인적으로, 나는 이것에 대해 세 가지 결함을 봅니다. 데이터가 낭비되지 않도록 내포 된 교차 검증과 같은 방법 및 (c) 홀드 아웃은 데이터가 거의 없을 때 모델이 일반화되는 방식을 유추하는 끔찍한 방법입니다.
refit
GridSearchCV 기능 의 옵션. 보류 된 테스트 데이터를 포함하는 것은 적합하지 않습니다 (해당 데이터를 볼 수조차 없음).
그래 넌 할수있어.
테스트 데이터는 유사한 분포에서 데이터를 학습하기 위해 제공되므로 모델을 손상시키지 않습니다. 모델을 올바르게 훈련했다면 큰 변화가 없습니다 (이전 테스트 / 검증 데이터의 정확도 측정법 제외).
그러나 테스트 데이터가 열차 데이터와 정확히 동일한 분포에서 나온다는 것은 거의 사실이 아니므로 실제 응용 사례 시나리오에서 모델의 일반화 가능성을 높일 수 있습니다.
이 질문에 대한 답변은 사용하는 교육 알고리즘 (기술)에 따라 다릅니다. 예를 들어, 훈련 및 검증 (테스트는 아님) 세트가 마지막에 결합되는 앙상블 분류에서 몇 가지 접근법을 보았습니다. 유효성 검사조차도 주로 하이퍼 파라미터를 결정하는 데 사용된다는 것을 아는 것이 중요합니다. 이러한 하이퍼 파라미터 중 일부는 훈련에 사용 된 데이터의 함수일 수 있습니다. 예를 들어, 중지 시점을 파악하는 데 사용되는 DNN 검증에서는 네트워크의 매개 변수 (가중치) 조정을 유지 한 결과로 과적 합이 발생할 수 있으므로 중지 시점을 알 수있는 방법이 필요합니다. 유효성 검사를 설정하지 않으면 훈련 과정에서 맹목적으로 걸을 것입니다. 반면에 이전에 지정된 것과 동일한 수의 반복을 사용하는 경우 이러한 추가 샘플에서 얻을 수없는 가능성이 높습니다. 테스트 세트가 없으면 위에 표시된대로 테스트 세트를 전혀 만지지 않아야합니다. 모델을 평가할 방법이 없습니다. 이것은 도박이며, 실제 데이터 분포 (테스트 데이터로 표시)에 대한 정확도를 추정하지 않고는 모델이나 솔루션을 제공 할 수 없습니다.