Table of Contents

ML

Decision Tree

꼬꼬마코더 2024. 5. 29. 12:30
728x90

결정 트리(Decision Tree)는 데이터 분류와 회귀 문제를 해결하기 위해 사용되는 비선형 모델입니다. 트리 구조를 사용하여 데이터를 분할하고, 각 노드에서 결정을 내려 최종 예측값을 도출합니다. 결정 트리는 이해하기 쉽고 해석이 용이하여 다양한 분야에서 널리 사용됩니다.

기본 개념

  1. 노드 (Node): 트리의 각 점을 의미합니다.
    • 루트 노드 (Root Node): 트리의 최상단에 있는 노드로, 데이터 분할이 시작되는 지점입니다.
    • 내부 노드 (Internal Node): 분기를 수행하는 노드로, 특정 조건에 따라 데이터를 자식 노드로 분할합니다.
    • 단말 노드 (Leaf Node): 최종 분류 결과를 나타내는 노드로, 더 이상 분할이 이루어지지 않는 노드입니다.
  2. 분할 (Split): 각 노드에서 데이터를 특정 조건에 따라 두 개 이상의 자식 노드로 나누는 과정입니다. 이 조건은 특징 값과 임계값을 비교하는 방식으로 정의됩니다.
  3. 경로 (Path): 루트 노드에서 단말 노드까지의 연결을 의미합니다. 각 경로는 일련의 분기를 나타내며, 이를 통해 데이터를 특정 클래스나 값으로 예측합니다.

분류 트리와 회귀 트리

  1. 분류 트리 (Classification Tree): 데이터를 특정 클래스 레이블로 분류합니다. 예를 들어, 이메일이 스팸인지 아닌지 분류하는 문제에서 사용됩니다.
  2. 회귀 트리 (Regression Tree): 연속적인 값을 예측합니다. 예를 들어, 주택 가격을 예측하는 문제에서 사용됩니다.
더보기

주택 가격 예측은 일반적으로 회귀(Regression) 문제로 다루어지며, 회귀 트리는 회귀 문제를 해결하기 위한 도구입니다. 회귀와 분류(Classification)는 다른 목표를 가지고 있습니다:

  • 회귀 (Regression): 연속적인 값을 예측합니다. 예를 들어, 주택 가격, 온도, 키 등의 값을 예측합니다.
  • 분류 (Classification): 범주형 클래스로 데이터를 분류합니다. 예를 들어, 이메일을 스팸과 정상으로 분류하거나, 꽃의 품종을 분류합니다.

회귀 트리 (Regression Tree)

회귀 트리는 결정 트리의 한 유형으로, 연속적인 값을 예측하는 데 사용됩니다. 주택 가격 예측과 같은 문제에 적합합니다. 회귀 트리는 각 분할 지점에서 데이터를 나누고, 단말 노드에서 평균 값을 사용하여 예측합니다.

예시

주택 가격 예측의 경우, 회귀 트리는 다음과 같은 방식으로 작동합니다:

  1. 주택의 특징(예: 면적, 방의 개수, 위치 등)을 사용하여 데이터를 분할합니다.
  2. 각 분할 지점에서 데이터의 불확실성을 최소화하는 방향으로 나누어집니다.
  3. 최종 단말 노드에서 해당 구역의 평균 주택 가격을 예측값으로 제공합니다.

분류 트리 (Classification Tree)

분류 트리는 범주형 클래스로 데이터를 분류하는 데 사용됩니다. 연속적인 값을 예측하는 회귀 트리와는 다르게, 분류 트리는 각 노드에서 특정 클래스에 속하는 확률을 계산하고, 최종 예측값으로 가장 높은 확률의 클래스를 선택합니다.

주택 가격을 분류 문제로 다룰 수 있는 경우

일반적으로 주택 가격 예측은 회귀 문제로 다루지만, 특정한 경우 분류 문제로 변환할 수 있습니다. 예를 들어, 주택 가격을 몇 개의 범주로 나누어 예측할 수 있습니다:

  • 낮은 가격 (Low)
  • 중간 가격 (Medium)
  • 높은 가격 (High)

이 경우, 주택 가격 예측 문제는 다중 클래스 분류 문제가 됩니다. 각 범주에 속하는 주택을 분류하는 방식으로 접근합니다.

예시

  • 범주 정의: 주택 가격을 "낮음", "중간", "높음" 세 개의 범주로 나눕니다.
  • 분류 트리 사용: 주택의 특징을 사용하여 각 범주에 속하는지 분류합니다.

이러한 접근 방식은 실제 가격을 예측하는 것이 아닌, 가격 범주를 예측하는 것입니다. 따라서 분류 트리로 주택 가격 예측 문제를 다룰 수는 있지만, 이는 연속적인 값을 예측하는 회귀 문제와는 본질적으로 다릅니다.

정리

  • 회귀 트리 (Regression Tree): 연속적인 값을 예측합니다. 주택 가격 예측과 같은 문제에 사용됩니다.
  • 분류 트리 (Classification Tree): 범주형 클래스로 데이터를 분류합니다. 이메일 분류나 품종 분류와 같은 문제에 사용됩니다.
  • 주택 가격 예측의 분류 접근: 주택 가격을 몇 개의 범주로 나누어 분류 문제로 변환할 수 있습니다. 이 경우, 가격 범주를 예측하는 데 분류 트리를 사용할 수 있습니다.

따라서 주택 가격 예측은 주로 회귀 문제로 다루어지지만, 특정 상황에서는 분류 문제로 변환하여 다룰 수도 있습니다. 회귀 트리와 분류 트리는 목적과 사용하는 데이터의 형태가 다르므로 혼동하지 않는 것이 중요합니다.

분할 기준

결정 트리는 데이터를 분할할 때 불순도(Impurity)를 최소화하는 방향으로 분할 기준을 설정합니다. 대표적인 불순도 지표는 다음과 같습니다:

  1. 지니 계수 (Gini Index): 불순도를 측정하는 지표로, 낮을수록 데이터가 잘 분할된 것입니다.
    • 계산식: ( Gini = 1 - \sum (p_i)^2 )
    • 여기서 ( p_i )는 클래스 ( i )의 비율입니다.
  2. 정보 이득 (Information Gain): 분할 전후의 엔트로피 차이를 측정하는 지표로, 엔트로피는 불확실성을 나타냅니다.
    • 계산식: ( Information \ Gain = Entropy(parent) - \left[ \frac{N_{left}}{N} \cdot Entropy(left) + \frac{N_{right}}{N} \cdot Entropy(right) \right] )
    • 여기서 ( Entropy = -\sum p_i \log_2(p_i) )
  3. 카이 제곱 (Chi-Squared): 분할의 통계적 유의성을 측정합니다.
    • 사용 빈도는 낮지만, 카테고리 데이터의 분할에서 유용할 수 있습니다.

장점

  1. 해석 가능성 (Interpretability): 결정 트리는 시각화가 용이하여 결과를 이해하고 해석하기 쉽습니다.
  2. 비선형 관계 처리 (Handling Non-linear Relationships): 데이터의 비선형 관계를 잘 처리합니다.
  3. 특징 선택 (Feature Selection): 자동으로 중요한 특징을 선택하고 덜 중요한 특징은 무시합니다.

단점

  1. 과적합 (Overfitting): 결정 트리는 훈련 데이터에 과적합되기 쉬워, 일반화 성능이 떨어질 수 있습니다.
  2. 불안정성 (Instability): 데이터에 작은 변화가 있더라도 트리 구조가 크게 변할 수 있습니다.

극복 방법

  1. 가지치기 (Pruning): 과적합을 방지하기 위해 트리의 깊이를 제한하거나 불필요한 노드를 제거합니다.
    • 전정 가지치기 (Pre-pruning): 트리 생성 중간에 가지를 치는 방법.
    • 후정 가지치기 (Post-pruning): 트리 생성 후 가지를 치는 방법.
  2. 앙상블 방법 (Ensemble Methods): 여러 개의 결정 트리를 결합하여 성능을 향상시킵니다.

결정 트리 알고리즘

  1. CART (Classification and Regression Tree): 분류와 회귀 모두에 사용되는 트리 알고리즘입니다.
    • 이진 트리 형태로 분할합니다.
    • 분류에서는 지니 계수를, 회귀에서는 평균 제곱 오차(MSE)를 사용합니다.
  2. ID3 (Iterative Dichotomiser 3): 정보 이득을 기준으로 분할을 수행하는 알고리즘입니다.
    • 엔트로피를 사용하여 분할 기준을 설정합니다.
  3. C4.5: ID3의 확장판으로, 연속적인 특징 값도 처리할 수 있습니다.
    • 정보 이득 비율(Information Gain Ratio)을 사용하여 분할 기준을 설정합니다.

결정 트리는 다양한 데이터 분류 및 회귀 문제에서 유용하게 사용되며, 이해하기 쉽고 해석이 용이하여 실무에서 널리 활용되고 있습니다.