Computer Science/Data Science

Random Forest 간.단.명.료

_cactus 2021. 3. 8. 00:02
반응형

Ensemble 앙상블

  • 여러 개의 머신러닝 model을 연결하여 강력한 model을 만드는 기법
  • classifier/regression에 전부 효과적
  • random forest와 gradient boosting은 둘다 model을 구성하는 기본 요소로 decision tree를 사용한다

random forest

  • 조금씩 다 다른 여러 decision tree의 묶음
  • 랜덤 포레스트의 등장 배경 :
    • 각각의 tree는 비교적 예측을 잘 할 수 있지만, 데이터의 일부에 overfitting하는 경향을 가짐
    • 따라서, 잘 작동하지만 서로 다른 방향으로 overfitting된 tree를 많이 만들고 그 결과를 평균내면 overfitting을 줄일 수 있다
    • 이렇게 하면 tree model의 예측 성능은 유지하되 overfitting이 줄어듬 (수학적으로 증명됨)
  • --> 이를 위해 decision tree를 많이 만들어야 하고, 또 각각의 decision tree는 예측을 잘해야하며 다른 tree들과는 구별되어야 함
  • decision tree들이 서로 달라지도록 하기 위해 tree 생성시 random하게 생성 [방법2가지]
    1. tree 생성 시 사용하는 데이터를 무작위로 선택
    2. 분할 테스트에서 특성을 무작위로 선택

 

주요 parameter

  • n_estimators : 생성할 tree 개수
    • random forest는 기본적으로 bootstrap sampling(복원추출) 사용
    • bootstrap sampling은 random forest의 tree가 조금씩 다른 데이터셋으로 만들어지도록 함
  • max_features : 최대 선택할 특성의 수
    • 각 node는 특성의 일부를 무작위로 추출하여 사용
    • 만약 max_features를 전체 특성의 수로 설정 시 decision tree에 무작위성은 들어가지지 않는다
    • 값을 크게 하면 random forest의 tree들은 같은 특성을 고려하게 되므로 tree들이 매우 비슷해짐 + 가장 두드러진 특성을 이용해 데이터에 잘 맞춰짐
    • 값을 작게 하면 random forest의 tree들은 많이 달라지고, 각 tree는 데이터에 맞추기 위해 tree의 깊이가 깊어짐

 

feature importance

  • random forest 역시 decision tree와 동일하게 feature importance를 제공
  • 일반적으로 random forest의 feature importance가 하나의 tree에서 제공하는 것보다 더 신뢰도가 높다

 

 

 

 

 

 

 

 

728x90
반응형