Что такое feature importance
Зачем это нужно
Feature importance показывает, какие features в модели вносят больший вклад в предсказания. Для аналитика это ключевой инструмент интерпретации моделей.
ML-модель говорит: «пользователь X уйдёт в churn с вероятностью 70%». Без feature importance это просто цифра. С ней: «модель видит, что главные причины — редкий вход в приложение и отсутствие крупных покупок в последний месяц».
Это критично для доверия к модели, для объяснения stakeholders, для улучшения продукта и для compliance (в регулируемых индустриях нельзя использовать модель-чёрный ящик).
Методы оценки
Tree-based importance
В деревьях и ансамблях (Random Forest, XGBoost, LightGBM) встроенная метрика. Считает, как часто feature используется для splits и насколько уменьшает ошибку.
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()
model.fit(X_train, y_train)
importances = model.feature_importances_
import pandas as pd
feat_imp = pd.Series(importances, index=X_train.columns).sort_values(ascending=False)
print(feat_imp.head(10))Плюсы: быстро, встроено.
Минусы: предпочитает features с большим числом уникальных значений. Может overstate важность continuous features по сравнению с binary.
Permutation importance
Считает, насколько ухудшается метрика модели при случайной перестановке значений в одной feature.
Логика: если feature важна, её разрушение должно сильно уронить качество. Если не важна — метрика не изменится.
from sklearn.inspection import permutation_importance
result = permutation_importance(model, X_test, y_test, n_repeats=10)
importances = pd.Series(result.importances_mean, index=X_test.columns).sort_values(ascending=False)Плюсы: универсально, работает с любой моделью, не зависит от конкретной реализации.
Минусы: медленно. Для больших dataset и моделей может занимать минуты.
SHAP values
Современный метод, основанный на игровой теории. Для каждого предсказания считает вклад каждой feature.
import shap
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X_test)
shap.summary_plot(shap_values, X_test)Плюсы: математически корректный, локальная интерпретация (вклад фич в конкретное предсказание), красивая визуализация.
Минусы: медленно для больших моделей, требует установки библиотеки.
Что с этим делать
Feature selection
Удаляете features с близкой к нулю importance. Это упрощает модель, снижает overfitting, делает inference быстрее.
Обычно топ-20 features покрывают 80% информации. Остальное — шум.
Sanity check модели
Если feature, которая логически должна быть важной, имеет низкую importance — что-то не так. Либо feature плохо закодирована, либо модель не учит её правильно.
Наоборот: если случайно добавленная feature-шум имеет высокую importance, это overfitting.
Business insights
Модель для churn prediction показывает, что главная причина — 3+ support tickets за месяц. Это не только feature importance, но и product insight. Передаём CX-команде для работы.
Compliance
В банкинге модель должна быть объяснимой. Нельзя сказать клиенту «вам отказано, машина решила». Нужно указать, какие факторы повлияли. SHAP values помогают.
Попробовать силы на подобных вопросах проще всего в тренажёре Карьерник — прямо в Telegram, без регистрации через сайт.
Интерпретация
Важно: feature importance — про важность для модели, не обязательно про каузальность.
Если feature A сильно коррелирует с targetом, она получит высокую importance. Но это может быть не она причина, а просто proxy.
Пример: модель churn предсказывает, что главный фактор — «дней без входа в приложение». Это обратная сторона target, не причина. Важная для предсказания, но не для decision making.
Проблемы
Мультиколлинеарность
Если две features сильно коррелируют, их importance может быть распределена произвольно. В одной модели первая получает 80%, во второй — наоборот.
SHAP лучше handles это, tree-based importance — хуже.
Стабильность
Повторное обучение на случайной подвыборке может дать разную importance. Стабильная importance — признак хорошей модели.
Интерпретация направления
Feature importance не говорит, в какую сторону действует feature. SHAP values это показывают (positive / negative contribution).
Пример для продукта
Модель churn prediction в SaaS. Топ features по SHAP:
- days_since_last_login — чем больше, тем выше churn. Логично.
- total_spent — чем больше, тем ниже churn. Валидирует логику.
- support_tickets_count — чем больше, тем выше churn. Проблемные клиенты.
- team_members_active — чем больше активных в команде, тем ниже churn (B2B insight).
- feature_X_used — используют фичу — удерживаются. Значит фича важна для retention.
Каждый insight — это action. Активнее работать с тихими клиентами, улучшать поддержку, продвигать feature X.
Пройти 30–50 задач по теме за вечер можно в Telegram-тренажёре. Это то, что отличает «знаю» от «уверенно отвечу на собесе».
Read-only importance
В некоторых индустриях важны объяснимые модели. Даже если XGBoost даёт AUC 0.92 против 0.88 у логрега, регулятор требует объяснимую модель.
Для логистической регрессии coefficient = feature importance с знаком. Понятно и для регулятора, и для стейкхолдеров.
Поэтому в банкинге и страховании часто используют более простые модели, даже если современные алгоритмы работают лучше.
Читайте также
FAQ
SHAP или permutation?
Для финальной интерпретации — SHAP. Для быстрых прикидок — permutation или built-in.
Feature importance = каузальность?
Нет. Это важность для предсказания, не причинность.
Сколько features оставлять?
Зависит от задачи. Обычно 20-50 информативных. Больше — возможен overfitting.
Как объяснить feature importance бизнесу?
Через SHAP visualization. Показывает, как каждая feature двигает предсказание для конкретных примеров.