Когда мы проверяем важность функций модели повышения градиента xgboost или sklearn, мы можем определить важность функции... но мы не понимаем, ПОЧЕМУ эти функции важны, не так ли?
Есть ли способ объяснить не только то, какие функции важны, но и ПОЧЕМУ они важны?
Мне сказали использовать shap, но выполнение даже некоторых шаблонных примеров выдает ошибки, поэтому я ищу альтернативы (или даже просто процедурный способ проверки деревьев и получения информации, которую я могу извлечь, кроме графикаplot_importance()).
В примере ниже показано, как можно объяснить, ПОЧЕМУ функция f19 является наиболее важной (при этом понимая, что деревья решений являются случайными без случайного_состояния или семя).
Код: Выделить всё
from xgboost import XGBClassifier, plot_importance
from sklearn.datasets import make_classification
import matplotlib.pyplot as plt
X,y = make_classification(random_state=68)
xgb = XGBClassifier()
xgb.fit(X, y)
plot_importance(xgb)
plt.show()

Обновление:
Я ищу программное процедурное доказательство того, что функции, выбранные в приведенной выше модели, вносят либо положительный, либо отрицательный вклад в предсказательную способность. Я хочу увидеть код (не теорию) того, как вы будете проверять реальную модель и определять положительный или отрицательный вклад каждой функции. В настоящее время я утверждаю, что это невозможно, поэтому кто-нибудь, пожалуйста, докажите, что я ошибаюсь. Очень хотелось бы ошибаться!
Я также понимаю, что деревья решений непараметричны и не имеют коэффициентов. Тем не менее, есть ли способ узнать, вносит ли функция положительный вклад (одна единица этой функции увеличивает y) или отрицательный (одна единица этой функции уменьшает y).
Подробнее здесь: https://stackoverflow.com/questions/471 ... ree-models
Мобильная версия