如何对应用了 PCA 的数据集使用 shap_value 解释器

时间:2021-02-08 14:07:05

标签: python data-science shap

df = pd.read_csv("data.csv")
pca = PCA(n_components=2)
df_2d = pca.fit_transform(df)

clusterer = hdbscan.HDBSCAN(min_cluster_size=1000)
clusterer.fit(df_2d)

clf = LGBMClassifier()
clf.fit(df_2d, clusterer.labels_) ###

explainer = shap.TreeExplainer(clf)
shap_values = explainer.shap_values(df_2d) ###
shap.summary_plot(shap_values, df_2d, plot_type="bar", plot_size=(15, 10)) ###

这是我的代码。它运行完美,但它返回一个带有“Feature 1”和“Feature 2”的摘要图。这完全有道理,因为我给了它一个仅包含 2 列的数据集。 但是我的问题是,我怎么能让它解释基于原始数据的决策树的决策?

我已经尝试过这个代码,它运行没有错误,但我不确定我是否正确使用它。 (不同的是我在分类器和shap中把所有的df_2d都改成了原来的df)

df = pd.read_csv("data.csv")
pca = PCA(n_components=2)
df_2d = pca.fit_transform(df)

clusterer = hdbscan.HDBSCAN(min_cluster_size=1000)
clusterer.fit(df_2d)

clf = LGBMClassifier()
clf.fit(df, clusterer.labels_) ###

explainer = shap.TreeExplainer(clf)
shap_values = explainer.shap_values(df) ###
shap.summary_plot(shap_values, df, plot_type="bar", plot_size=(15, 10)) ###

感谢您的时间和帮助!

0 个答案:

没有答案
相关问题