안녕하세요,
재재입니다.
이번 포스팅에서는,
머신러닝 및 데이터 분석에서 많이 사용하는 기법중,
Random Forest 에 대해 다룹니다.
Random Forest 이해하기
랜덤 포레스트는 특히 데이터분석에 사용되는 알고리즘 중 하나입니다.
그 특성과 장단점을 깊게 이해하는 것은 머신러닝을 공부하는 데 있어 필수적입니다.
1. Random Forest (랜덤 포레스트란?)
랜덤 포레스트는 여러 개의 결정 트리 (Decision Tree)를 조합해서,
하나의 앙상블 모델을 만드는 데 사용되는 머신러닝 알고리즘 중 하나입니다.
각각의 트리의 예측을 종합적으로 사용해서 최종 예측을 만들 수 있습니다.
2. 랜덤 포레스트 작동 원리
랜덤 포레스트 작동원리는 다음과 같이 두단계로 이루어져있습니다.
첫번째, 부트스트랩 샘플링 (Bootstrap Sampling) 입니다.
먼저, 원본 데이터에서 중복을 허용하여 샘플을 추출합니다.
이렇게 추출한 샘플을 사용해서 결정 트리들을 학습시킵니다.
두번째, 무작위 선택을 사용해 결과를 개선합니다.
각 노드에서 최적의 분할을 결정할 때 모든 특성을 고려하는 것이 아니고,
무작위로 선택된 일부 특성만 고려합니다. 이는 시간복잡도를 줄일 수 있는 핵심 방법입니다.
이로 인해 트리 간의 다양성이 증가시키면서, 성능을 향상 시킬 수 있습니다.
출처 https://www.tibco.com/reference-center/what-is-a-random-forest
3. 랜덤 포레스트의 장점
랜덤 포레스트는 어쩌면 모델 앙상블 방법 중 하나라고 할 수 있겠습니다.
그렇기 때문에, 몇 가지 장점을 갖는데요.
첫번째, 여러개의 결정 트리를 활용하기 때문에, 과적합을 방지할 수 있습니다.
개별 트리의 과적합 문제를 줄일 수 있게 되며, 이는 자연스럽게 전반적인 과적합을 방지합니다.
두번째, 높은 정확도를 갖습니다. 여러 결정 트리의 예측을 활용하여 분류를 수행하기 때문에,
정확도가 비교적 높습니다.
세번째, 변수 중요도 평가가 가능합니다. 일부만 사용해서 학습을 시키기 때문에,
각 특성이 얼마나 중요한지를 평가할 수 있게됩니다.
4. 단점
랜덤 포레스트는 여러개의 결정 트리를 사용한다는 것 때문에,
모델의 크기가 큰 문제를 갖습니다. 그래서, 시간을 줄이기 위해 무작위 선택도 하고,
부트스트랩 샘플링도 수행합니다.
또한, 하나의 결정트리를 학습하는 것보다,
랜덤 포레스트 전체를 학습하는 시간은 당연히 오래걸립니다.
5. 결론
랜덤 포레스트의 핵심 개념과 원리에 대해 살펴봤는데요.
IPython 환경에서 직접 랜덤 포레스트를 적용해볼 수 있는 실습을 준비하고 있습니다.
이를 통해 이론적인 내용을 좀 더 쉽게 이해할 수 있도록 해볼게요.