Задание 2.2 · 1 балл
Почему клиент уходит
Выясняем, какие признаки лес использует сильнее всего, двумя способами, и проверяем, в какую сторону они действуют.
- Интерпретируемость
- Можно ли объяснить человеку, почему модель так решила.
- MDI
- Mean Decrease in Impurity: сколько в сумме уменьшился индекс Джини во всех узлах, где делили по признаку, среднее по деревьям.
- Перестановочная важность
- Перемешиваем один столбец в test и смотрим, насколько упал ROC-AUC.
- SHAP
- Ещё один способ, раскладывает каждый прогноз на вклады признаков. Здесь не понадобился: два способа выше уже согласны.
Поиграй: перемешай признак
Игрушечная модель: «уйдёт, если возраст больше 45 или продуктов 3 и больше». Перемешай столбец и посмотри, сколько ответов осталось верными.
Код: перестановочная важность
def permutation_importance(model, X, y, score, n_repeats=5, seed=42):
rng = np.random.default_rng(seed)
base = score(y, model, X)
drops = {}
for column in X.columns:
losses_ = []
for _ in range(n_repeats):
X_shuffled = X.copy()
X_shuffled[column] = rng.permutation(X_shuffled[column].to_numpy())
losses_.append(base - score(y, model, X_shuffled))
drops[column] = np.mean(losses_)
return pd.Series(drops)
baseкачество без порчи (ROC-AUC 0.859).for column in X.columnsпортим по очереди каждый признак.rng.permutation(...)перемешиваем значения столбца: связь признака с ответом рвётся, а распределение значений остаётся тем же.n_repeats=5перемешиваем 5 раз и усредняем, чтобы не зависеть от одного случайного перемешивания.scoreпередаётся снаружи: для оттока ROC-AUC, для продолжительности жизни R² (та же функция в задании 2.3).

| Признак | MDI | Падение ROC-AUC |
|---|---|---|
| NumOfProducts | 0.207 | 0.138 |
| Age | 0.300 | 0.118 |
| Balance | 0.129 | 0.041 |
| IsActiveMember | 0.077 | 0.031 |
| Geography_Germany | 0.037 | 0.024 |
| EstimatedSalary | 0.085 | 0.001 |
| CreditScore | 0.084 | около 0 |
В какую сторону

- Возраст: 18-30 лет уходит 7.5%, 51-60 лет 56%.
- Продукты: с двумя продуктами 7.6%, с одним 28%, с тремя 83%, с четырьмя 100%.
- Активность: неактивные 26.9%, активные 14.3%.
- Страна: Германия 32.4%, Франция и Испания около 16%.
После перемешивания признака качество не изменилось. Что это значит?
Если связь признака с ответом разорвали, а модель не заметила, значит, она на него не опиралась.
Вопросы на защите
Чем MDI отличается от перестановки?
MDI считается на train из устройства деревьев и завышает признаки с большим числом значений. Перестановка считается на test по реальному падению качества и показывает, чем модель пользуется на новых данных.
Почему у некоторых признаков важность отрицательная?
После перемешивания ROC-AUC случайно стал чуть выше (на тысячные). Значит, признак не важен, это шум.
Что посоветуешь банку?
Особое внимание клиентам 45-60 лет, неактивным, из Германии и с одним или 3-4 продуктами.