比方说,我想对员工是否会流失进行分类。在我的随机森林中,我有6种估计量,其中3种是预测员工流失的,另一种是预测员工保留的。简而言之,3种估计量=预测会产生波动,3种估计量=预测将保持。
我知道,随机森林的工作方式是为每个班级获得最多的选票,或者通过获得模式来实现。
问题是在这种情况下,随机森林是如何预测的?
发布于 2019-07-31 07:21:57
好像它预测了头等舱。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
https://datascience.stackexchange.com/questions/56658
复制相似问题