Table of Contents

728x90

Classification에서의 "Measuring Impurity for Split"는 결정 트리와 같은 분류 알고리즘에서 사용되는 개념으로, 데이터를 어떻게 나눌지 결정하는 기준입니다. 이를 통해 분할된 데이터의 순도(Homogeneity)를 최대화하고, 불순도(Impurity)나 불확실성(Uncertainty)을 최소화하려고 합니다.

여기서 중요한 개념을 쉽게 설명하면 다음과 같습니다:

순도(Homogeneity)와 불순도(Impurity)

  • 순도(Homogeneity): 데이터가 얼마나 잘 모여 있는지, 즉 같은 클래스에 속하는 데이터가 얼마나 많은지를 나타냅니다. 순도가 높을수록 같은 클래스의 데이터가 많이 모여 있다는 의미입니다.
  • 불순도(Impurity): 데이터가 얼마나 섞여 있는지, 즉 서로 다른 클래스의 데이터가 얼마나 섞여 있는지를 나타냅니다. 불순도가 낮을수록 데이터가 잘 나누어져 있다는 의미입니다.

결정 트리에서의 분할

결정 트리는 데이터를 분할하면서 분류 작업을 수행합니다. 좋은 분할이란 데이터를 더 순수한 그룹으로 나누는 것입니다. 이를 위해 불순도를 측정하고, 불순도가 가장 크게 감소하는 방향으로 데이터를 나눕니다.

Gini Index

Gini Index는 불순도를 측정하는 방법 중 하나로, 분할된 데이터의 순도를 평가하는 데 사용됩니다.

  • Gini Index의 범위:
    • 최대값: 0.5 (가장 섞여 있을 때)
    • 최소값: 0 (가장 잘 나누어졌을 때)

Gini Index의 계산 방법은 다음과 같습니다:

  1. 각 클래스의 확률을 구합니다.
  2. 각 확률의 제곱을 모두 더한 후 1에서 뺍니다.

수식으로 표현하면 다음과 같습니다:
[ Gini = 1 - \sum (p_i)^2 ]
여기서 ( p_i )는 각 클래스의 비율입니다.

예제

가령, 두 개의 클래스로 이루어진 데이터셋을 생각해봅시다.

  1. 만약 데이터가 완전히 섞여 있다면, 각 클래스의 비율이 50%씩일 수 있습니다. 이 경우 Gini Index는 다음과 같습니다:
    [ Gini = 1 - (0.5^2 + 0.5^2) = 1 - (0.25 + 0.25) = 1 - 0.5 = 0.5 ]
  2. 반면, 데이터가 완전히 한 클래스만 포함하고 있다면 (예를 들어, 모두 클래스 A라면), Gini Index는 다음과 같습니다:
    [ Gini = 1 - (1^2 + 0^2) = 1 - 1 = 0 ]

이처럼 Gini Index는 0에 가까울수록 순도가 높은, 즉 잘 나누어진 상태를 의미합니다.

결론

분류 알고리즘에서 데이터 분할 시, Gini Index와 같은 불순도 측정 방법을 사용하여 데이터를 분할합니다. 목표는 분할 후 각 그룹의 순도를 최대한 높이는 방향, 즉 불순도를 최소화하는 방향으로 데이터를 나누는 것입니다. 이를 통해 결정 트리의 성능을 최적화할 수 있습니다.