【问题标题】:How is the result from a Decision Tree Regressor continuous?决策树回归器的结果如何连续?
【发布时间】:2021-04-14 07:08:50
【问题描述】:

我已经使用 sklearn.tree.DecisionTreeRegressor 来预测具有两个独立变量的回归问题,即特征“X”、“Y”和预测的可靠变量“Z”。 当我绘制树时,叶子似乎与分类树没有太大区别。结果不是每个叶子上的函数,而是每个叶子上的单个值,就像在分类中一样。

谁能解释一下,为什么这被称为回归以及为什么它与分类树不同?

因为我似乎误解了 sklearn 类,是否有一个用于 python 的树包,它可以进行“真正的”回归并在每个叶子上都有一个输出函数?对于 X、Y 和 Z,这可能是每片叶子的某种表面。

【问题讨论】:

    标签: python scikit-learn regression decision-tree


    【解决方案1】:

    这是意料之中的。每个叶子的输出不是一个函数,它是一个值,表示该叶子中所有实例的预测数字(因此回归)输出。输出是一个“函数”,从某种意义上说,你会得到不同的值,具体取决于你将落在哪个叶子上。分类树词完全相同,但输出值表示一个类概率,而不是 Z 的预测值。

    换句话说,回归输出映射到任意值的函数,但没有规定该函数必须是连续的。有了树,这个功能更像是一个“阶梯”。

    【讨论】:

    • 感谢您的回答。您不会知道有任何树会创建类似结果表面的非楼梯?
    • 可能有一些奇怪的树允许它们的叶子有斜坡(我不知道有什么从我的头顶上掉下来的),但即使这些也不一定是连续的,因为叶子之间会有中断.我能想到的最接近的可能是segmented regression。或者只是在常规回归中添加一些非线性项。我想这取决于你的标准是什么。
    【解决方案2】:

    对于任何搜索我正在搜索的内容的人:

    线性/对数/...回归模型与决策树的组合,称为“模型树”。不幸的是,没有包含在任何免费的 python 包中,但是如果你用谷歌搜索它,github 上有一些实现。它也应该很快与 scikit-learn 一起可用。 模型树类似于 M5 算法。

    【讨论】:

      猜你喜欢
      • 2020-03-03
      • 2017-11-04
      • 2020-09-16
      • 2012-10-22
      • 1970-01-01
      • 2016-11-11
      • 2017-06-01
      • 2018-09-02
      • 2019-05-27
      相关资源
      最近更新 更多