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)) ###
这是我的代码。它运行完美,但返回带有“功能 1”和“功能 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)) ###
感谢您的时间和帮助!