随机森林预测

数据挖掘 机器学习 分类 随机森林 数据科学模型
2022-03-05 19:20:56

假设我想对员工是否会流失进行分类。在我的随机森林中,我有 6 个估算器,其中 3 个预测员工流失,其他估算器预测员工保留。简而言之,3 个估算器 = 预计会流失3 个估算器 = 预计会保留

我知道随机森林的工作原理是为每个班级获得最多的选票或获得模式。

问题是随机森林在这种情况下如何预测?

1个回答

似乎它预测了第一堂课。Sklearns 随机森林实现通过将每个估计器预测的概率平均到一个形状数组 (n_samples, n_classes) 中来为每个类生成概率,然后用于np.take(np.argmax())选择最高概率,类似于以下内容:

# Pretend "a" is our averaged predictions for the forest. So the first sample is predicting 78% probability
class 0, 22% class 1. The second has the probabilities reversed and the third is 50/50 split. 

a = np.array([[0.78, 0.22], [0.22, 0.78], [0.5, 0.5]])

np.argmax(a, axis=1)

输出是array([0, 1, 0], dtype=int64)这些是数组的每个样本中最大值的索引,对于具有均匀拆分的样本,您可以看到它选择了 0 类。

编辑:

如果你想自己看,相关的代码是sklearn的forest.py中的第540行:

https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/ensemble/forest.py