【问题标题】:Does scikit-learn's DecisionTreeRegressor do true multi-output regression?scikit-learn 的 DecisionTreeRegressor 是否进行真正的多输出回归?
【发布时间】:2018-02-14 05:02:35
【问题描述】:

我遇到了一个机器学习问题,它要求我们使用多维 Y。现在我们正在这个输出的每个维度上训练独立模型,它没有利用来自输出相关事实的额外信息.

我一直在阅读 this 以了解更多关于已真正扩展到处理多维输出的少数 ML 算法。决策树就是其中之一。

在 fit(X,Y) 被赋予多维 Y 的情况下,scikit-learn 是否使用“多目标回归树”,或者它是否适合每个维度的单独树?我花了一些时间查看code,但没有弄明白。

【问题讨论】:

  • 这不能回答我的问题。 “可以使用 MultiOutputRegressor 将多输出回归支持添加到任何回归器。该策略包括为每个目标拟合一个回归器。由于每个目标都由一个回归器表示,因此可以通过检查其对应的回归器来获得有关目标的知识。作为 MultiOutputRegressor 适合每个目标一个回归器,它不能利用目标之间的相关性。”如果 DecisionTreeRegressor 沿着这些思路做了一些事情,那么这与实际使用所有维度来决定拆分是非常不同的。
  • 它确实回答了你的问题。阅读文档和源代码。回归器从基类继承与分类器相同的行为。
  • 我一直在阅读文档和源代码。要经历很多事情。我想你们中的一个人可能知道答案或者更擅长梳理代码。相反,我得到了敌意。

标签: python machine-learning scikit-learn


【解决方案1】:

经过更多的挖掘,用单维 Y 标记的树给定点与具有多维标签的给定点之间的唯一区别在于它用于决定分割的 Criterion 对象。 Criterion 可以处理多维标签,因此无论 Y 的维度如何,拟合 DecisionTreeRegressor 的结果都将是单个回归树。

这意味着,是的,scikit-learn 确实使用了真正的多目标回归树,它可以利用相关输出来产生积极影响。

【讨论】:

  • sk learn 的实现是否因此采用了 De'ath 提出的 CART 方法? (参考您在问题中链接的论文)
猜你喜欢
  • 2015-08-08
  • 2018-10-15
  • 2020-01-02
  • 2017-05-25
  • 2016-06-17
  • 2018-07-31
  • 2019-09-15
  • 1970-01-01
相关资源
最近更新 更多