본문 바로가기
Data Anlaytist

불순도 감소 (Impurity Decrease)

by goemgoem-i 2025. 4. 17.
반응형

불순도(impurity)는 말 그대로 "데이터가 얼마나 섞여 있는가"를 나타내는 지표
트리 기반 모델에서는 데이터를 분할(split) 할 때마다 이 "불순도"를 줄이는 방향으로 나누려고함

즉, 하나의 노드 안에 한 클래스가 압도적으로 많아지게 만드는 분할이 좋다고 판단

-> 클래스 0 또는 클래스 1 중 하나로 쏠린 그룹을 만드는 것을 선호

 

 

1. 불순도 감소 진행 방식

어떤 노드에 100개의 샘플이 있다고 할 때
이 중에서 클래스가 1인 게 50개, 클래스 0인 게 50개
그럼 이건 아주 섞여 있는 상태 = 불순도가 높음

 

근데 어떤 변수로 나눴더니:

  • 왼쪽 노드: 클래스 1이 45개, 클래스 0이 5개 → 거의 한 쪽 클래스
  • 오른쪽 노드: 클래스 0이 45개, 클래스 1이 5개 → 역시 거의 한 쪽 클래스

이런 식으로 나뉘면, 각 노드의 불순도는 낮아지고, 전체적으로 "불순도 감소"가 컸다고함

 

 

 

2. 대표적인 불순도 지표

 

[트리 모델에서 사용하는 대표적인 불순도 지표]

Gini 불순도 CART (RandomForest, XGBoost 기본값)에서 주로 사용
Entropy (엔트로피) 정보 이득(information gain) 계산에 사용
Misclassification Error 단순 분류 오류율

 

 

3. 불순도 감소 계산 공식

트리가 어떤 노드를 분할할 때,
전체 불순도 감소 = 부모 노드의 불순도 − (왼쪽 자식 노드 불순도 × 샘플 비율 + 오른쪽 자식 노드 불순도 × 샘플 비율)

Δ impurity = impurity(parent) - [impurity(left) * (n_left/n_total) + impurity(right) * (n_right/n_total)]

 

 

4. Feature Importance와의 관계

  • 트리 모델은 데이터를 여러 번 분할하는데,
  • 어떤 변수가 여러 번 분할에 사용되고, 그때마다 불순도 감소량이 크면,
    그 변수는 전체 예측 성능에 큰 기여를 했다고 판단해 → 중요도 높게 책정됨

 

[정리 한 줄 요약]

불순도 감소는 트리 모델이 데이터를 나눌 때 "얼마나 잘 구분되게 나눴는가"를 판단하는 기준이고,
이 값이 크면 클수록 해당 변수는 중요한 변수로 간주된

반응형