我们都知道随机森林是决策树的集合,其结果是平均的。
我发现的每个来源都只是在谈论“平均树”,但是这种“树的平均”是如何发生的?谁能详细解释一下?
我们都知道随机森林是决策树的集合,其结果是平均的。
我发现的每个来源都只是在谈论“平均树”,但是这种“树的平均”是如何发生的?谁能详细解释一下?
这取决于随机森林预测的变量类型,也可能取决于随机森林的具体实现。以下是最简单技术的概述。
连续目标
在连续目标变量的情况下,集成中的每棵树都会生成一个预测. 将树的结果组合成一个集合的最简单的方法是取所有预测的平均值。
假设你有 10 棵树的集合。然后综合预测将被计算为
这是scikit-learn 中的森林回归器采用的方法。注意线条
# Parallel loop
lock = threading.Lock()
Parallel(n_jobs=n_jobs, verbose=self.verbose,
**_joblib_parallel_args(require="sharedmem"))(
delayed(_accumulate_prediction)(e.predict, X, [y_hat], lock)
for e in self.estimators_)
y_hat /= len(self.estimators_)
“并行循环”部分总结了森林中每棵树的预测,最后一行除以树的总数,因此这y_hat是每棵树的预测的平均值。
另一种方法是对预测进行加权平均
每棵树都有重量. 例如,可以通过树的性能来确定权重。在某些情况下,这种方法可能会稍微提高准确性,但更容易过拟合。
分类目标
在您的随机森林预测分类变量的值的情况下,您可以让每棵树都像“委员会”的成员一样行事并投票。
假设一个分类变量具有三个可能的值,,, 或者,你的随机森林有 10 棵树。您为每棵树生成一个预测,该预测算作一票。
例如,假设您的 5 棵树预测, 其中 3 个预测,其中 2 个预测. 综合预测为.
请注意,您可能会遇到平局的情况。假设你的 5 棵树预测,其他五个预测. 你选择哪个预测?
一种选择是在平局的情况下预测多数类别。在上面的例子中,如果训练数据包含更多例子比例子,然后我们会预测.
解决平局的另一个选择是通过树的准确性对投票进行加权。再次假设您有五棵树投票和五棵投票的树. 如果你观察到,平均而言,投票给更可靠,你可以给他们的选票额外的权重并预测.
希望这会有所帮助!