하나의 천재적인 나무가 어떻게 질문을 통해 답을 찾아내는지, 그리고 평범한 나무들이 모여 어떻게 더 지혜로운 숲을 이루는지 배워봅니다. '스무고개' 놀이에서 시작하여 '집단 지성'의 힘까지, 머신러닝의 중요한 발전 과정을 탐험합니다.
의사결정트리(Decision Tree) 알고리즘은 이름은 어려워 보이지만, 원리는 우리가 어릴 때부터 즐겨 하던 '스무고개 놀이'와 똑같습니다. 이 알고리즘은 마치 스무고개 탐정처럼, 가장 핵심적인 질문들을 연속으로 던져서 정답의 범위를 점차 좁혀나가는 방식으로 작동합니다.
밤하늘의 수많은 별 중 하나의 종류를 맞혀야 한다고 상상해봅시다. 의사결정트리는 데이터를 가장 잘 나눌 수 있는 '최적의 질문'을 스스로 찾아냅니다.
이처럼 질문에 대한 답변에 따라 데이터를 두 그룹으로 나누고, 나뉜 각 그룹 안에서 또다시 가장 좋은 질문을 찾아 계속해서 가지를 쳐 나갑니다. 이 과정이 나무(Tree)가 가지를 뻗는 것 같아 '의사결정트리'라는 이름이 붙었습니다.
k-NN 알고리즘과 달리, 의사결정트리는 데이터 스케일링이 필요하지 않습니다. 그 이유는 데이터를 분류하는 방식에 있습니다. 의사결정트리는 각 특징에 대해 개별적인 '질문'을 던지고 그 기준값(임계치)을 바탕으로 데이터를 나눌 뿐, 특징들의 단위를 섞어서 '거리'를 계산하지 않습니다. 각 질문이 독립적으로 작동하기 때문에, 특징들의 수치 범위나 단위가 달라도 판단에 영향을 미치지 않는 것입니다.
하나의 의사결정트리가 가진 과적합과 불안정성의 한계를 극복하기 위해 등장한 것이 바로 앙상블 학습(Ensemble Learning)입니다. 앙상블 학습은 마치 '집단 지성'처럼, 여러 개의 모델(약한 학습기)의 예측 결과를 종합하여 더 정확하고 안정적인 예측을 도출하는 방법입니다.
랜덤 포레스트(Random Forest)는 앙상블 학습의 가장 대표적인 알고리즘으로, 여러 개의 의사결정트리를 무작위로 생성하여 '숲'을 이룹니다. 이 숲의 '집단 투표'를 통해 최종 결론을 내립니다.
이처럼 여러 '약한' 나무들을 지능적으로 결합하여 하나의 '강력한' 숲을 만드는 방식은 단일 모델의 한계를 극복하고 예측 성능을 크게 향상시키는 효과적인 방법입니다.