from sklearn import tree
import graphviz
import shap
X,y = shap.datasets.boston()
clf = tree.DecisionTreeRegressor(max_depth=2).fit(X, y)
为我们提供了以下树:
这些值让我感到困惑,我知道叶子上的值是到达叶子后的预测值。但是,节点上的值代表什么?
我发现一些SO职位/留档的分类,但不是回归。
编辑:思考如果我进一步看到,如果树被砍短,它们很可能只是那些箱子的值。但不知道为什么它们会被用在SHAP中。
X12
显然,当我们使用更多节点分割数据时,我们减少了样本的数量,当然也减少了
mse
,因为我们正在缩小范围。由于我们越来越精确,所以值会有所不同。
关于shap
,您仅使用此库导入数据集,仅此而已。您可以在不使用shap
库的情况下导入数据。导入波士顿数据有多种方法,例如使用Sklearn:
from sklearn.datasets import load_boston
X, y = load_boston(return_X_y=True)
无论如何,您应该检查它是否是确切的数据集(例如,一个数据集有更多的样本)。