Рассчитываем важность признаков по методу перестановки. Два метода дают два разных результата, почему так?

Вопрос или проблема

1º метод выводов: Away Attack = 0.152322 и Home Attack = 0.0

2º метод выводов: Away Attack = 0.928571 и Home Attack = 0.071429

Почему так? Точность 69%. У меня много признаков, и я выбрал только эти 2.

# Рассчитать важность путем перестановки с помощью встроенной функции scikit-learn
result = permutation_importance(
    grid_s_model_3, X_trainn, Y_train, scoring='accuracy', n_repeats=5, random_state=42, n_jobs=-1
)

# Доступ к оценкам важности и названиям признаков
importance_scores = result.importances_mean
feature_names = new_features  # Предполагается, что 'new_features' - это список названий ваших признаков

# Создать DataFrame для лучшей визуализации
importance_df = pd.DataFrame({'feature': feature_names, 'importance': importance_scores})
importance_df = importance_df.sort_values('importance', ascending=False)
importance_df

results = pd.DataFrame({'Feature': selected_feature_names2, 'Importance': grid_s_model_3.best_estimator_.named_steps['model'].feature_importances_})

Важность по перестановке вычисляется путем случайного смешивания строк данного признака и оценки уменьшения оценки. Она может быть применена ко всем типам моделей.

Важность признака вычисляется путем усреднения уменьшений чистоты в узлах и является специфичной для алгоритмов деревьев. Более того, они нормализированы (0.93+0.27 = 1.0)

Таким образом, оба набора коэффициентов важности рассчитываются очень по-разному, и их значения не могут быть сравнены для данного признака.

.

Ответ или решение

Теория

Важность переменной представляет собой оценку того, насколько каждая характеристика (фича) данных влияет на целевой результат. Существуют различные методы расчета важности переменной, среди которых выделяются пермутационная важность (Permutation Importance) и важность признаков на основе модели (Model-based Feature Importance). Первое из этих понятий основано на перемешивании данных, чтобы определить влияние каждого признака на производительность модели, в то время как второе измеряется, преимущественно, для моделей деревьев решений, таких как Random Forest или Gradient Boosting.

Пример

  1. Пермутационная важность: Этот метод заключается в случайном перемешивании значений одного признака и оценке, насколько изменяется точность модели. Если точность модели существенно снизилась, значит, данный признак имеет высокую значимость.

    • Пример кода:
      
      from sklearn.inspection import permutation_importance

    result = permutation_importance(
    model, X_train, Y_train, scoring=’accuracy’, n_repeats=5, random_state=42, n_jobs=-1
    )

  2. Важность признаков на основе модели: В моделях, таких как деревья решений, важность признаков оценивается на основе уменьшения неопределенности на каждом разделении дерева.

    • Пример кода:
      importance = model.feature_importances_

Применение

Ваши результаты показали разные значения важности для признаков "Away Attack" и "Home Attack" при использовании двух различных методов. Это можно объяснить следующим образом:

  • Пермутационная важность более устойчива и универсальна, так как ее можно применять к любому типу модели. Она напрямую показывает влияние каждого признака на уме́ньшение точности модели при его перемешивании.

  • Важность на основе модели показывает снижение неопределенности только в моделях деревьев решений и может не учитывать взаимные зависимости между признаками.

Таким образом, различия в результатах важности связаны с применением разных методов вычисления, а не с ошибками расчётов. Каждая важность интерпретируется в контексте конкретного метода и модели, что и приводит к различным результатам. В данном случае ожидать одинаковых значений от этих двух различных методов неправильно. Для лучшего анализа важно изучать результаты в контексте метода и понимать, как этот метод оценивает вклад той или иной переменной.

Оцените материал
Добавить комментарий

Капча загружается...