
v1 Gini 는 한 분포의 불순도. CART 결정트리에서는 한 특성의 어느 threshold 에서 자를 때 불순도 감소가 최대인지 찾아야 함 — 이것이 splitting criterion.
부모 노드의 Gini , 분할 시 왼쪽/오른쪽 자식 과 샘플 비율 , :
Gini Gain 최대 가 가장 정보적인 분기점.
naive 구현은 . 더 빠른 구현은 정렬 한 번 후 누적 count 로 .
함수 best_gini_split(feature, labels, num_classes) 를 완성하세요.
feature shape (N,) 실수.labels shape (N,) 정수 [0, K).(best_threshold, best_gain) — 둘 다 Python float.| # | 이름 | 검증 |
|---|---|---|
| 1 | 반환 2-tuple | |
| 2 | 완벽 분리 가능 → gain > 0, threshold 가 분리점 근처 | |
| 3 | 같은 라벨만 → gain = 0 | |
| 4 | Gain 계산 검증: 수동 계산과 일치 | |
| 5 | 최소성: gain 은 parent_gini - 가중 자식 gini | |
| 6 | 3-클래스 데이터에서도 동작 | |
| 7 | sklearn DecisionTree 의 분기 기준과 비슷 (단일 분기) |
코드를 작성하고 Run 을 눌러보세요.