Ответ
Коэффициент Джини (Gini coefficient) — метрика качества бинарной классификации, тесно связанная с AUC-ROC. Он измеряет способность модели ранжировать положительные и отрицательные примеры.
Математическая связь с AUC:
Gini = 2 × AUC - 1
где AUC (Area Under ROC Curve) — площадь под ROC-кривой.
Диапазон значений:
- 0 — случайная модель (AUC = 0.5)
- 1 — идеальная модель (AUC = 1.0)
- Отрицательные значения — модель хуже случайной (AUC < 0.5)
Интерпретация: Gini = вероятность того, что случайно выбранный положительный пример будет иметь более высокую оценку (score), чем случайно выбранный отрицательный пример, минус обратная вероятность.
Пример расчета в Python для деревьев решений:
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.metrics import roc_auc_score
# Генерация данных
X, y = make_classification(n_samples=1000, n_classes=2, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
# Обучение модели
clf = DecisionTreeClassifier(max_depth=5, random_state=42)
clf.fit(X_train, y_train)
# Предсказание вероятностей
y_pred_proba = clf.predict_proba(X_test)[:, 1]
# Расчет AUC и Gini
auc = roc_auc_score(y_test, y_pred_proba)
gini = 2 * auc - 1
print(f"AUC: {auc:.3f}") # AUC: 0.892
print(f"Gini: {gini:.3f}") # Gini: 0.784
Особенности в контексте деревьев и ансамблей:
- Критерий Джини (Gini impurity) в деревьях — мера неоднородности, используемая для разделения узлов
- В ансамблях (Random Forest, GBDT) — Gini importance показывает вклад признаков
- Чувствительность к дисбалансу — как и AUC, требует осторожности при несбалансированных классах