Интерпретация модели машинного обучения является давней проблемой. За последние несколько лет было предложено много методов для использования альтернативных подходов к проблеме интерпретации. Недавно я наткнулся на статью, в которой используется 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:



Другие мои статьи можно найти здесь: