使用Scikit-Learn库中的RandomForestRegressor处理多个输出时,如何计算分裂的杂质减少?

我在使用scikit-learn库(Python 3.x版本)的RandomForestRegressor类,并且我知道决策树中衡量分裂质量的函数是方差减少(均方误差)。鉴于RandomForestRegressor类支持多个输出,我的疑问是:在这种特定类中,如何在存在多个输出时计算分裂的质量?

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

非常感谢!

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


回答:

scikit-learn对应类的作者之一(Gilles Louppe)友好地回答了我的问题:上述理解是正确的。方差减少是针对每个类别计算的,然后取平均值以产生最终得分。

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注