【发布时间】:2021-04-08 13:30:39
【问题描述】:
我想获得一个包含重要特征的数据框。使用下面的代码,我得到了 shap_values,但我不确定这些值是什么意思。在我的 df 中有 142 个特征和 67 个实验,但是得到了一个 ca. 2500 个值。
explainer = shap.TreeExplainer(rf)
shap_values = explainer.shap_values(X_test)
shap.summary_plot(shap_values, X_test, plot_type="bar")
我尝试将它们存储在 df 中:
rf_resultX = pd.DataFrame(shap_values, columns = ['shap_values'])
但得到:ValueError:传递值的形状为 (18, 142),索引暗示 (18, 1)
142 - 特征的数量。 18 - 我不知道。
我相信它的工作原理如下:
- shap_values 需要平均。
- 并与特征名称配对:pd.DataFrame(feature_names, columns = ['feature_names'])
有没有人有经验,如何解释 shap_values? 起初我以为,值的数量是特征数 x 行数。
【问题讨论】:
标签: python random-forest feature-selection