k- 폴드 교차 검증을 수행 할 때 테스트 정확도가 가장 높은 분류기를 사용해야합니까? 교차 검증에서 분류자를 얻는 데 일반적으로 가장 좋은 방법은 무엇입니까?
k- 폴드 교차 검증을 수행 할 때 테스트 정확도가 가장 높은 분류기를 사용해야합니까? 교차 검증에서 분류자를 얻는 데 일반적으로 가장 좋은 방법은 무엇입니까?
답변:
이 두 가지 작업 중 하나를 수행 할 때 교차 유효성 검사를 수행합니다.
모델 선택은 다른 시나리오에서 발생할 수 있습니다.
(알고리즘을 선택하고 모델이라고 부르는 것이 좋으며 하이퍼 파라미터 검색을 수행하는 경우 중첩 교차 검증을 수행해야합니다. 중첩 CV가 실제로 필요합니까? )
교차 검증은 오차 추정치가 해당 모델의 일반화 오차와 가장 가까운 것으로 어느 정도까지 보장합니다 (이것은 매우 근사하기는 어렵지만). 접힘 사이의 평균 오차를 관찰 할 때 전체 데이터 세트를 기반으로하는 모델에 대해 예상되는 오차를 잘 예측할 수 있습니다. 또한 예측의 분산을 관찰하는 것이 중요합니다. 즉, 오류가 접기마다 얼마나 달라지는 지입니다. 변동이 너무 높으면 (상당히 다른 값) 모형이 불안정 해지는 경향이 있습니다. 부트 스트랩은이 점에서 좋은 근사치를 제공하는 다른 방법입니다. ELS-Standford 에서 자유롭게 구할 수있는 "통계학의 요소"에 관한 7 장을주의 깊게 읽어보십시오.
앞에서 언급했듯이 접힌 부분에서 빌드 된 모델을 가져서는 안됩니다. 대신 전체 데이터 세트 (폴드로 분할 된 모델)로 모델을 다시 작성해야합니다. 테스트 세트가 분리되어 있으면이 최종 모델을 사용하여 CV에서 얻은 것과 유사한 오류를 얻을 수 있습니다. 그러나 CV 절차에서 제공 한 예상 오차에 의존해야합니다.
다른 모델 (알고리즘 조합 등)로 CV를 수행 한 후 오류와 접기 간 편차에 대해 더 나은 성능을 가진 모델을 선택했습니다. 전체 데이터 세트로 모델을 다시 작성해야합니다. 우리는 일반적으로 모델 선택을 참조하면서 모델이 데이터에 기반한 예측 가능한 모델이라고 생각하지만,이 경우 적용하는 알고리즘 + 사전 절차의 조합을 나타냅니다. 따라서 예측 / 분류를 만드는 데 필요한 실제 모델을 얻으려면 전체 데이터 집합에서 승자 조합을 사용하여 모델을 작성해야합니다.
마지막으로 주목할 점은 어떤 종류의 전처리를 적용하는 경우 클래스 정보 (기능 선택, LDA 차원 축소 등)를 사용하는 경우 이전에 데이터가 아니라 모든 폴드에서 수행해야한다는 것입니다. 이것은 중요한 측면입니다. 데이터의 직접적인 정보 (PCA, 정규화, 표준화 등)를 포함하는 전처리 방법을 적용하는 경우에도 동일한 작업을 수행해야합니다. 그러나 데이터에 의존하지 않는 전처리를 적용 할 수 있습니다 (전문가의 의견에 따라 변수를 삭제하지만 다소 분명합니다). 이 비디오는 그 방향으로 당신을 도울 수 있습니다 : CV 옳고 그른 방법
여기, 주제에 관한 마지막 멋진 설명 : CV 및 모델 선택
아니요. k- 겹 교차 검증 중에 만들어진 k 분류자를 선택하지 마십시오. 우선, 교차 검증의 목적은 예측 모델을 제시하는 것이 아니라 예측 모델이 실제로 얼마나 정확하게 수행되는지 평가하는 것입니다. 두 번째로, 논쟁을 위해 k = 10으로 k-fold cross-validation을 사용하여 주어진 분류 문제를 해결하는 데 가장 적합한 세 가지 분류 알고리즘 중 하나를 찾는다고 가정 해 봅시다. 이 경우, 데이터는 동일한 크기의 k 부분으로 무작위로 분할됩니다. 부품 중 하나는 테스트 용으로 예약되어 있으며 나머지 k-1 부품은 교육용으로 사용됩니다. 교차 검증 프로세스는 k 회 반복되어 반복 할 때마다 다른 부분이 테스트에 사용됩니다. 교차 검증을 실행 한 후 각 접기의 결과를보고 어떤 분류 알고리즘 (훈련 된 모델도 아님)이 가장 적합한 지 궁금합니다. 10 개의 반복 중 하나에서 테스트 정확도가 가장 높은 알고리즘을 선택하고 싶지 않습니다. 특정 반복에 대한 테스트 데이터에 매우 쉬운 예제가 포함되어 있기 때문에 무작위로 발생했기 때문에 테스트 정확도가 높습니다. 당신이하고 싶은 것은 최고의 정확도를 생성하는 알고리즘을 선택하는 것입니다 그런 다음 높은 테스트 정확도로 이어집니다. 당신이하고 싶은 것은 최고의 정확도를 생성하는 알고리즘을 선택하는 것입니다 그런 다음 높은 테스트 정확도로 이어집니다. 당신이하고 싶은 것은 최고의 정확도를 생성하는 알고리즘을 선택하는 것입니다모든 k 배에 걸쳐 평균 . 알고리즘을 선택 했으므로 전체 교육 데이터를 사용하여 알고리즘을 학습하고 예측을 시작할 수 있습니다.
이것은이 질문의 범위를 벗어나지 만 선택한 알고리즘을 최대한 활용하려면 모델의 하이퍼 파라미터 (있는 경우)를 최적화해야합니다. 사람들은 일반적으로 교차 검증을 사용하여 하이퍼 파라미터 최적화를 수행합니다.
따라서 80 %를 교육으로 사용하고 20 %를 유효성 검사 데이터로 사용하는 교육이 있다고 가정하겠습니다. 우리는 80 %를 훈련하고 나머지 20 %를 테스트 할 수 있지만 우리가 취한 20 %는 실제 테스트 데이터와 유사하지 않으며 후자의 성능이 좋지 않을 수 있습니다. 이를 방지하기 위해 k- 폴드 교차 검증을 사용할 수 있습니다.
따라서 모델이 다르고 데이터 세트에서 어떤 성능이 더 우수한지 알고 싶다면 k- 폴드 교차 검증이 효과적입니다. k- 검증 성능에 대한 검증 오류를 알고이를 기반으로 더 나은 모델을 선택할 수 있습니다. 이것은 일반적으로 k- 폴드 교차 검증의 목적입니다.
하나의 모델 만 사용하고 k- 폴드 교차 검증으로 확인하는 경우 테스트 데이터의 대략적인 오류를 얻을 수 있지만 when you are actually training it finally, you can use the complete training data
(여기서 전체 데이터가 일부보다 더 잘 수행된다고 가정하기 때문에) 때로는 그렇지 않을 수도 있지만 이것이 일반적인 가정입니다.)