我最近发现了一个非常好的github存储库,名为SHAP,用Python和JavaScript编写。它可以用来解释任何机器学习模型的输出。你可以看到一个很好的视频here,它很好地解释了这个库。在
在python编写的一个分类问题中,我发现在使用这个库时可能会遇到一些小问题。在
说明:
我使用了整整103个特性来建模由-1、0和1描述的三个标签。
我所有的功能都定义得很好,而且都有一个相关的标题。问题是我没有在每个单位传递103个特性。我在每个时间单位传递103*15个特性,即当前时间t_0的103个特性和时代{}的相同特性。我的train数据集的形状是(35087, 15, 103),其中第一个参数代表35087秒。在
这里有一个很明显的example我可以如何使用它:import shap
# we use the first 100 training examples as our background dataset to integrate over
explainer = shap.DeepExplainer(model, x_train[:100])
# explain the first 10 predictions
# explaining each prediction requires 2 * background dataset size runs
shap_values = explainer.shap_values(x_test[:10])
# init the JS visualization code
shap.initjs()
# transform the indexes to words
import numpy as np
words = imd