지도학습 – 3. 결정 트리



지도학습 알고리즘 3

결정 트리란?

결정 트리(Decision Trees)는 기계 학습에서 널리 사용되는 분류(Classification)와 회귀(Regression) 문제를 해결하기 위한 알고리즘이며 의사 결정 나무라고도 불립니다. 이 알고리즘은 데이터를 재귀적으로 분할하는 트리 구조를 사용하여 예측 모델을 구축합니다. 각 분할은 특정 조건에 따라 이루어지며, 해당 조건은 입력 변수의 값에 대한 테스트로 표현됩니다. 이 알고리즘은 변수에 대한 불확실성(Uncertainty)를 낮추기 위한 목적을 가집니다.

 

결정 트리 알고리즘의 과정

결정 트리 알고리즘을 사용하는 경우는 두 가지가 있습니다. 분류 문제 해결을 위한 경우와 회귀 문제 해결을 위한 경우입니다. 분류 문제 해결을 위한 경우의 과정은 아래와 같습니다.

 

분류 문제 해결을 위한 경우

1.데이터 전처리를 합니다.

이 때, 데이터는 결정 트리 모델에 사용할 특성 데이터로 준비합니다. 범주형 데이터는 원-핫 인코딩 또는 라벨 인코딩을 적용하여 수치형 데이터로 변환합니다. 또한, 결측치 처리와 데이터 스케일링을 수행합니다.

2.입력 변수 공간을 구분하는 분할 기준을 찾습니다.

분할 기준은 입력 변수 중 하나를 선택하고, 해당 변수의 임계값에 따라 데이터를 분할합니다.이러한 분할은 불순도(Impurity)를 최소화하거나 정보 이득(Information Gain)을 최대화하는 방식으로 이루어집니다.불순도는 해당 노드에서의 데이터의 혼잡도를 나타내며, 정보 이득은 분할 전후의 불순도 변화를 나타냅니다.

3.분할된 데이터는 재귀적으로 다시 분할됩니다. 이 과정은 트리의 각 분기점에서 반복됩니다.

결정 트리는 이러한 분할과 재귀적인 과정을 통해 데이터를 구분하는 경로를 만들어 나갑니다. 이 경로는 예측을 수행하는데 사용되며, 잎 노드(Leaf Nodes)에 도달하면 해당 노드의 클래스 레이블 또는 회귀 예측 값이 결정됩니다.

4.훈련 데이터와 테스트 데이터 분리를 진행합니다.

구축한 모델의 성능을 평가하기 위해 데이터를 훈련 세트와 테스트 세트로 분리합니다. 보통 70:30 또는 80:20의 비율로 분할합니다.

5.모델의 성능을 평가합니다.

테스트 세트를 사용하여 결정 트리 모델의 분류 정확도를 평가합니다. Confusion Matrix, 정밀도(Precision), 재현율(Recall), F1 스코어 등을 계산하여 모델의 성능을 종합적으로 평가합니다.

다음은 회귀 문제 해결을 위한 경우입니다.

 

회귀 문제 해결을 위한 경우

회귀 문제를 해결하기 위한 경우의 과정은 분류 문제 해결의 경우와 1 ~ 3까지의 과정이 동일합니다. 다만, 데이터가 회귀 문제에 적합한 특성 데이터여야 합니다. 수치형 데이터는 보통 그대로 사용하며, 범주형 데이터는 필요에 따라 원-핫 인코딩 또는 라벨 인코딩을 적용할 수 있습니다. 모든 과정을 수행한 후 단 하나의 과정만 더 수행하면 끝이 납니다. 4번째 단계라고 표현하겠습니다.

4.예측값을 생성합니다.

구축한 모델을 사용하여 테스트 데이터의 특성을 입력하고 연속적인 값을 예측합니다. 이를 통해 회귀 문제의 결과를 도출할 수 있습니다.

분할 기준

위의 과정에서 정보 분할 기준을 정보 이득으로 두었는데, 정보 이득이란 부모 노드와 자식 노드 간의 불순도 감소 정도를 측정하는 지표입니다. 정보 이득이 높은 특성일수록 데이터를 더 잘 분류할 수 있는 특성으로 간주됩니다. 또한 엔트로피라는 기준을 이용할 수도 있는데 엔트로피는 데이터 집합의 불순도를 측정하는 지표입니다. 엔트로피가 낮을수록 순수한 데이터로 구성된 노드로 간주됩니다.

위의 알고리즘 뿐만 아니라 앙상블 방법론인 랜덤 포레스트(Random Forests)와 같은 기법을 통해 여러 결정 트리를 조합하여 더 강력한 예측 모델을 생성할 수 있습니다. 랜덤 포레스트와 관련하여서는 다음 포스팅에서 자세히 다루도록 하겠습니다. 이렇게 해서 완성된 모델은 아래의 그림 형식으로 시각화됩니다.

결정 트리 예시

 

결정 트리의 특징

결정 트리는 해석력이 뛰어나며, 그림으로 한 눈에 결과를 볼 수 있어 입력 변수들 간의 관계를 이해하기 쉽다는 장점이 있습니다. 또한 자료를 가공할 필요가 없고, 자료 내의 범주형 변수와 연속형 변수 모두를 처리할 수 있으며, 이상치에 상대적으로 영향을 받지 않습니다. 단점 역시 존재하는데요, 트리의 깊이가 깊어질수록 과적합의 위험이 있고, 데이터의 작은 변화에도 민감하게 반응할 수 있습니다. 또한, 학습 데이터에 대해 과적합(Overfitting)되는 경향이 있습니다. 따라서 가지치기(Pruning) 등의 기법을 사용하여 트리의 복잡성을 제어하고 일반화 성능을 향상시킵니다. 가지치기에 대해서는 설명을 잘 적어주신 어떤 분의 블로그 주소를 달아놓을테니 아래 링크를 통해 자세한 내용을 확인해주시면 감사하겠습니다.

가지치기 설명 관련 블로그

 

결정 트리는 다양한 분야에서 활용되며, 예측, 분류, 특성 선택 등 다양한 문제에 적용됩니다. 결정 트리는 데이터의 특성과 문제의 복잡성을 고려하여 적절한 결정 트리 모델을 선택하고, 트리의 복잡성을 조절하여 일반화 성능을 향상시키는 것이 중요합니다.

 

함께 보면 좋은 글들

Leave a Comment