본문 바로가기

머신러닝(ML)

랜덤 포레스트( Random Forest )란...

의사결정나무( Decision Tree )는 훌륭한 모델이지만, 오버피팅되는 경향이 있다. 가지치기( pruning ) 같은 방법으로 부작용을 최소하하는 전략이 있긴 하나 부족하다. 그래서, 의사결정나무( Decision Tree )의 약점인 오버피팅 한계를 극복하기 위한 모델이 랜덤 포레스트(Random Forest)이다. 이름에서 의미하는 것 처럼 나무가 많다. 랜덤포레스트는 같은 데이터들에 의사결정나무 여러 개를 동시에 적용해서 학습성능을 높이는 앙상블 기법입니다. 나무( tree )가 다수라고하여 숲( forest )라는 이름이 붙었다.

 

의사결정나무 vs. 랜덤 포레스트

배깅( Bagging )

전체 학습 데이터 중 임의로 학습 데이터를 선택해서 의사결정 트리를 만드는 것이 배깅( bagging )이다. 그리고, 임의의 학습 데이터 선택 시 중복을 허용해야 한다. 즉, 임의의 데이터를 선택 시 기준 데이터는 항상 모든 데이터에서 선택한다는 것이다.

Bagging Features

데이터를 항상 전체를 기준으로 하지만 데이터의 속성값을 제안함으로 트리에 다양성을 줘야 한다. 즉, 각 분할에서 속성의 일부만 고려하여 트리를 작성하는 방식이다.

예를 들면 총 200개의 학습 데이터의 속성이 100개라고 하면, 그 중 10개의 속성만 선택 후 그 중 정보 획득량이 가장 높은 걸 기준으로 데이터를 분할, 그 다음 단계에서도 다시 임의로 10개만 선택... 속성의 선택은 전체 속성 개수의 제곱근만큼 선택하는 것이 경험적으로 가장 좋다고 한다. 전체 속석이 100개면 10개 선택... 이렇게 트리를 만들게 되면 ‘숲’이 된다.