• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    해결됨

후속 질문 드립니다!

20.09.22 19:48 작성 조회수 128

0

이전 질문 답변 감사드립니다. 많은 도움 되었습니다!

전처리를 하지 않은(id 컬럼 drop만 해줬습니다) 동일한 데이터셋에 대해

GBM < XGBoost < LightGBM < 결정트리(단일) < 랜덤포레스트

순서로 정확도가 산출됐고, 기본적으로 랜덤포레스트와 부스팅 알고리즘들 간의 정확도 차이가 10~20% 정도 났습니다.

이는 랜덤포레스트가 본 데이터셋에 적합한 알고리즘이라는 의미인가요?

아니면 데이터 전처리를 통해 얼마든지 극복될 수 있는 정확도 차이인가요?

답변 1

답변을 작성해보세요.

0

 랜덤 포레스트가 크게 압도하는 군요. 보통은 이렇게 큰 차이가 나지는 않습니다만 특이한 경우군요.

아래와 같은 사항 확인이 필요합니다.

1. Test 데이터 세트에 대한 재 확인이 필요합니다.  Test 데이터 크기가 학습 데이터 대비 얼마나 되는지 확인 부탁드립니다. cv=3 으로 해서 cross_val_score로 했을때의 성능 비교를 해보십시요.  또한 Test 데이터 세트를 변경해서도 다시 한번 테스트 부탁드립니다.

2.  다중 분류라고 하셨는데, 개별 target 값들이 skew 되지 않았는지 다시 확인 부탁드립니다(가령 타겟값이 A, B, C일때 A가 80%, B,C가 각각 10% 인지). 그리고 Train데이타와 Test 데이터의 타겟값의 비율이 어떻게 되는지도 확인 부탁드립니다(예를 들어 Train데이터의 타겟값(A, B,C라 할때) 비율이 30, 30, 40% 인데 Test 데이터의 타겟값 비율도 이와 동일한지)

3. 데이터가 40만건이 넘는데도 DecisionTree보다 XGBoost와 LightGBM의 성능이 떨어지는 경우는 흔하지 않습니다. XGBoost와 LightGBM의 하이퍼 파라미터를 좀 더 개선할 필요가 있을 것 같습니다(하지만 랜덤포레스트도 크게 하이퍼 파라미터를 변경하지 않았는데도 큰 성능을 보이는 걸로 봐서는 일단 랜덤 포레스트가 뛰어난 걸로 보입니다).

4. 실제로 랜덤 포레스트가 해당 데이터 세트에 최적화된 알고리즘 일 수 있습니다. 하지만 10% 이상 차이나는 경우는 저도 경험해 보지 못했습니다(물론 하이퍼 파라미터 튜닝을 한다면 차이는 줄어들수는 있습니다만, 저는 한 3~4% 정도 랜덤 포레스트가 우위를 나타낸 모델 경험은 있었습니다)

위 언급된 사항 다시 확인 후 업데이트 부탁드립니다.