나는 최근에 내가 따르는 과정 (MS 논문의 구성 요소)이 과적 합으로 보일 수 있다고 들었다. 나는 이것을 더 잘 이해하고 다른 사람들이 동의하는지 확인하려고합니다.
이 부분의 목적 은
데이터 세트에서 그라디언트 부스트 회귀 트리의 성능을 랜덤 포레스트와 비교하십시오.
선택한 최종 모델 (GBM 또는 RF)의 성능을 확인하십시오.
R 의 gbm
및 randomForest
패키지가 함께 사용
caret
됩니다.
그 과정 은 다음과 같습니다.
- 데이터의 예비 전처리 (예 : "Missing"이라는 별개의 범주로 명목 예측 변수의 결 측값을 플러깅) 대상 변수는 사전 처리와 관련하여 보지 않았습니다 (매우 최소화 됨).
- 각 알고리즘의 메타 매개 변수에 대한 값의 그리드를 작성하십시오 (예 : GBM의 반복 횟수).
- 25 개의 무작위 데이터 세트를 생성합니다 (65 % 훈련 및 35 % 테스트).
GBM에 대해 다음을 25 번 반복 하십시오 (임의의 열차 / 테스트 분할 중 하나를 사용하는 각 시간. 교육 및 테스트 세트가 코스 변경의 "현재"인 경우마다-그룹 간 교차 검증이 반복됨).
- 5 중 교차 검증을 사용하여 그리드 검색에서 알고리즘의 "최적"매개 변수 설정을 찾으십시오. 현재 실행에서 이전 실행의 아무것도 사용되지 않았습니다.
- 일단 결정되면 모델을 전체 "현재"교육 세트에 맞추고 "현재"테스트 세트를 예측하십시오. 이 실행의 성능 측정을 따로 설정하십시오.
이 방식으로 25 개의 성능 측정치 (실제로 도메인 별 측정 값이지만 정확도로 생각 함)를 얻은 후에는 RF (동일한 프로세스, 다른 프로세스와 동일한)의 동일한 열차 및 테스트 샘플을 사용하여 동일한 프로세스를 따르십시오. 물론 그리드 검색).
이제 GBM 및 RF에 대한 당시 "현재"테스트 세트에서 25 개의 성능 측정 값이 있습니다. 나는 Wilcoxon Signed Rank Test와 순열 테스트를 사용하여 그것들을 비교합니다. GBM이 우수하다는 것을 알았습니다. 또한 GBM에 대한 이러한 25 회 실행의 성능 측정 값 분포는 최종 GBM 분류기의 예상 성능이라고 주장했습니다.
내가하지 않은 것은 처음부터 무작위 테스트 세트를 꺼내어 모든 교육 데이터에서 작성된 최종 GBM 모델과 비교하도록 따로 설정하는 것이 었습니다. 나는 분할 데이터 / 튜닝 모델 / 테스트를 홀드 아웃 프로세스에서 25 번 반복하여 한 번만 반복했을 때 실제로 한 것이 훨씬 낫다고 주장했다.
여기에 과적 합이 있습니까? GBM 대 RF를 선택하는 데 25 회 실행이 사용되었으므로 프로세스에서 얻은 성능 측정 값을 전체 모델의 성능 평가로 사용할 수 없습니까?
편집 Wayne의 의견에 따라 25 번의 각 달리기 동안 수행 된 작업은 다음과 같습니다.
- i 번째 훈련 세트 (i = 1, .., 25)에 대해 샘플링 된 데이터를 5 개의 동일한 크기 그룹으로 나누었다. GBM 매개 변수 (예 : 반복 횟수)를 j 번째 (j = 1, .., 18) 그리드의 값과 동일하게 설정하여 5 개 그룹 중 4 개를 사용하여 모형을 적합했습니다.
- 5 번째 그룹의 성능은이 모델을 사용하여 계산되었습니다.
- 단계 1 및 2를 4 회 더 반복 하였다 (k = 5 인 정규 구형 k- 폴드 CV). 성능은 5 번의 하위 실행에서 평균화되었으며 이는 특정 매개 변수 값 세트로 GBM의 예상 성능을 구성했습니다.
- 그리드에서 17 개의 다른 "행"에 대해 1-3 단계를 반복했습니다.
완료되면, 위 실습에서 최상의 파라미터 값을 결정하고 GBM을이 파라미터 값과 전체 i 번째 트레이닝 세트를 사용하여 맞추 었습니다. 성능은 i 번째 테스트 세트에서 추정되었습니다.
이 전체 프로세스가 25 회 완료되면 GBM에 대해 25 개의 성능 측정 값이 제공되었습니다. 그런 다음 동일한 방식으로 RF를 위해 수집되었습니다.
GBM을 비교하고 선택한 후,이 25 가지 성능 측정 방법을 살펴보고이 데이터에 대한 GBM 모델의 신뢰 구간을 결정하기 위해 평균 및 Stnd Error를 측정했습니다.