scikit-learn的DecisionTreeRegressor是否真正进行多输出回归?

4
我遇到了一个需要使用多维 Y 的 ML 问题。目前,我们正在每个输出维度上训练独立的模型,这并没有利用来自相关输出的额外信息。
我一直在阅读 this 以了解更多有关已真正扩展到处理多维输出的少数 ML 算法。其中之一是决策树。
如果 fit(X,Y) 给出多维 Y,scikit-learn 是否使用“多目标回归树”,或者是否为每个维度拟合一个单独的树?我花了一些时间查看code,但没有找到答案。

http://scikit-learn.org/stable/modules/multiclass.html - Jakub Bartczuk
这并没有回答我的问题。 "可以使用MultiOutputRegressor将多输出回归支持添加到任何回归器中。该策略包括为每个目标拟合一个回归器。由于每个目标都由一个回归器表示,因此可以通过检查其相应的回归器来获得有关目标的知识。由于MultiOutputRegressor为每个目标拟合一个回归器,因此无法利用目标之间的相关性。" 如果DecisionTreeRegressor沿着这条路线做些什么,那么与实际使用所有维度来决定拆分非常不同。 - Pavel Komarov
它确实回答了你的问题。阅读文档和源代码。回归器从基类继承了分类器相同的行为。 - Eli Korvigo
5
我一直在阅读文档和源代码,需要处理大量的内容。我原本以为你们中的某个人可能知道答案或者更擅长查找代码,但实际上我遇到了敌意的回应。 - Pavel Komarov
1个回答

8

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

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


1
sklearn的实现是否遵循De'ath所提出的CART方法?(参考您在问题中提供的论文) - AZhao

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接