Интерпретация модели машинного обучения является давней проблемой. За последние несколько лет было предложено много методов для использования альтернативных подходов к проблеме интерпретации. Недавно я наткнулся на статью, в которой используется SHAP (или значения Шепли), впервые представленный в 2017 году в этой статье.
SHAP или Shapley Additive ExPlanations — это метод объяснения результатов запуска модели машинного обучения с использованием теории игр. Основная идея, лежащая в основе SHAP, заключается в справедливом распределении из теории кооперативных игр для распределения кредита на выходе модели.
Я буду использовать образец набора данных, чтобы кратко объяснить, как мы можем использовать эту технику в наших интересах.
Запуск кода логистической регрессии на образце набора данных.
def get_stats(): X = data3[x_columns] X_test = X.iloc[1:550,:] Y_test = data3.iloc[1:550,k-1] x = X_test logit_model = sm.Logit(Y_test, sm.add_constant(X_test)).fit() print(logit_model.summary()) get_stats()
Теперь мы применим пошаговую регрессию, чтобы найти лучшую модель, используя некоторые или все функции приведенного выше набора данных.
Теперь мы будем использовать SHAP в нашей модели логистической регрессии, чтобы выяснить наиболее важные функции.
import shap masker = shap.maskers.Independent(data = X_test) model = LogisticRegression(random_state = 1) model.fit(X_train, Y_train) explainer = shap.LinearExplainer(model, masker=masker) shap_values = explainer(X_test)
Существуют различные способы визуализации результатов метода SHAP.
shap.plots.waterfall(shap_values[0])
shap.plots.beeswarm(shap_values)
Как мы видим, модель, полученная с помощью SHAP, почти аналогична модели, полученной с помощью модели наилучшего подмножества. Таким образом, SHAP — полезный инструмент с гораздо более интересными приложениями. В этой статье подробно рассматриваются широкие возможности этой библиотеки.
Счастливого изучения !!
Свяжитесь со мной в LinkedIn:
Другие мои статьи можно найти здесь: