【问题标题】:scikit-learn Decision trees Regression: retrieve all samples for leaf (not mean)scikit-learn决策树回归:检索叶子的所有样本(不是平均值)
【发布时间】:2017-12-03 17:58:43
【问题描述】:

我已经开始使用 scikit-learn 决策树,到目前为止效果很好,但我需要做的一件事是检索叶节点的样本 Y 值集,尤其是在运行预测时。给定一个输入特征向量 X,我想知道叶节点处对应的 Y 值的集合,而不仅仅是作为这些值的平均值(或中值)的回归值。当然,人们希望样本均值有一个小的方差,但我确实想提取实际的 Y 值集并进行一些统计/创建 PDF。我用过这样的代码how to extract the decision rules from scikit-learn decision-tree? 要打印决策树,但“值”的输出是表示平均值的单个浮点数。我有一个大数据集,因此将叶子大小限制为例如100,我想访问这 100 个值...

【问题讨论】:

  • 可以使用apply获取每个样本的叶子id; see here.
  • 感谢您的回复。我对此进行了编码,并获得了与使用 graph_viz 导出树时显示的相同的平均值,这很好。然而,虽然紧凑,它似乎并不高效。实际上,我将数据拟合到一棵树中,每个叶节点最终都会得到一个样本子集。然后我再次遍历数据以记录它落入哪个叶节点,这样我就可以获得相应的目标。但是该数据应该已经存储在某个地方的叶节点中吗?它似乎并不慢,所以可能不值得担心重复。
  • 不,在叶子中,只存储手段和计数。我认为,复制是可以的。

标签: scikit-learn regression decision-tree


【解决方案1】:

另一种解决方案是使用 sklearn DecisionTreeRegressor 对象的(未记录的?)功能,即 .tree.impurity 它返回每片叶子的值的标准差

【讨论】:

  • 虽然这可能是解决问题的宝贵提示,但一个好的答案也可以证明解决方案。请edit 提供示例代码来说明您的意思。或者,考虑将其写为评论。
猜你喜欢
  • 2020-09-16
  • 1970-01-01
  • 2017-02-23
  • 2020-04-05
  • 2015-01-30
  • 2015-06-04
  • 2017-03-26
  • 1970-01-01
相关资源
最近更新 更多