如果我们使用 Scikit-Learn 库的 RandomForestRegressor 有多个输出,如何计算拆分的杂质减少

How is the impurity decrease of a split computed in case we have multiple outputs using RandomForestRegressor of Scikit-Learn library

我正在使用 scikit-learn 库 (python 3.x) 的 RandomForestRegressor class,并且我知道在决策中衡量拆分质量的函数树是方差减少(mse)。鉴于 RandomForestRegressor class 支持多个输出,我的问题是:在这个特定 class 中的多个输出的情况下如何计算拆分的质量?

通过阅读 class 定义分裂标准的源代码,我会说树中分裂的杂质减少是根据所有输出变量的平均杂质减少计算的。因此,在给定多个输出的情况下,只构建一个模型。这是 scikit-learn RandomForestRegressor class 中的默认方式吗?我希望有人能和我一起看看,因为我不完全确定我的陈述是否正确!

非常感谢!

https://github.com/scikit-learn/scikit-learn/blob/a24c8b464d094d2c468a16ea9f8bf8d42d949f84/sklearn/tree/_criterion.pyx#L695

对应scikit-learn的一位作者class(Gilles Louppe)好心回答了我的问题:以上理解是正确的。方差的减少是在每个 class 上计算的,然后取平均值以产生最终分数。