2012-02-17 2 views
1

내 문제는 다음과 같습니다. 나는 결정 트리 분류자를 만들려는 6 개의 데이터 세트 (다른 ​​날부터 수집)를 가지고있다. 과도한 피팅을 피하고 새로운 데이터를 예측할 수있는 최적의 트리 깊이 매개 변수를 찾아야합니다.교육/검증/테스트 데이터로도 의사 결정 트리 오버 피팅

첫 번째 시도는 각 데이터 세트를 교육/검증/테스트에 50 %/25 %/25 %로 분할하여 3 개의 큰 파일로 병합했습니다. 나는 큰 트레이닝 세트를 사용하여 훈련 된 정확도 대 트리 깊이 그래프를 작성하고 큰 유효성 검증 세트에서 정확도를 계산했습니다. 그러나 트리 깊이가 증가하고 결코 떨어지지 않았기 때문에 밸리데이션 세트의 정확도가 계속 증가하는 것을 발견했습니다!

트리의 깊이 20에서 정확도는 약 99 %에 도달했습니다. 테스트 세트의 정확성조차도 약 99 %였습니다. 필자는 데이터에 대한 지식을 바탕으로 과도하게 조정되어야한다고 생각했습니다. 데이터 세트 중 하나를 제거하고 5 개만 남겨두고 확인했습니다. 위와 동일한 절차를 사용하여 나머지 5 개의 데이터 세트를 교육하고, 교육/검증/테스트로 나누고 20의 깊이에서 교육했습니다. 이번에는 내가 버린 데이터 세트는 매우 열악한 결과를 가져 왔으며 정확도는 50 %로 낮습니다.

내 데이터 세트에는 시계열 특성으로 인해 '반복적 인'데이터가 많이 있습니다. 데이터 세트의 25-50 %를 샘플링하는 것은 아마 100 %를 샘플링하는 것과 같을 것이므로 초과 적합이라고 할 수 있습니다. 6 개의 데이터 세트를 무작위로 섞은 다음 3/3을 통해 교육/유효성 검사로 나누고 20 회 반복하고 결과를 평균하여 최적의 트리 깊이를 찾습니다. 나는 결과를 기다리고있다. 며칠 안에 끝내야한다. ...

내 질문 (마침내!)은 내가 한 일이 건전한 방법인가? 어떤 다른 종류의 재미있는 데이터를 알고 있어야합니까? 내 데이터 세트에는 내가 언급 한 '잡았다'가있는 것처럼 보입니다.

+0

최대 트리 높이 대신 리프 당 최소 샘플 수를 설정하는 것이 좋습니다. – usr

답변

1

문제는 아주 미묘했습니다. 길게 짧음, 데이터를 샘플링하지 않아 (불균형 데이터 세트 용) 교차 검증을 수행하십시오!

Long story. 나는 불균형 한 데이터 세트를 가지고 있었는데, 거기에서 나는 약 7-10 번 정도 긍정적 인 것보다 더 많은 부정적인 샘플을 가지고있었습니다. 저의 선택은 복제를 통해 양성 샘플을 채취하거나 음성을 샘플링하는 것입니다. 나는 표본 추출과 함께 갔다. 즉, 교차 유효성 검사를하는 동안 각 폴드는 원래의 양성 샘플을 모두 선택할 가능성이 높으므로 양성 샘플에 무리를줍니다. 이제 음수 샘플을 샘플링 다운하고, 교차 검증을 몇 번하고 데이터를 다시 셔플합니다. 지금 일하는 것 같습니다.

관련 문제