python中的随机森林:分类问题中的最终概率

Posted

技术标签:

【中文标题】python中的随机森林:分类问题中的最终概率【英文标题】:random forest in python: final probabilities in classification problems 【发布时间】:2017-03-14 23:14:27 【问题描述】:

在分类问题中,RF 分类器根据多数投票给出最终响应,例如是或不是关于一个事件。

另一方面,我还可以看到带有事件最终概率的向量,例如0,83。如果我有 1000 个估计量,这个概率是如何计算的,是每棵树的 1000 个概率的平均值吗?

clf = RandomForestClassifier(max_depth = 4, min_samples_split=2, n_estimators = 200, random_state = 1) 
clf.fit(train[columns], train["churn"]) 
predictions = clf.predict(test[columns]) 
predicted_probs = clf.predict_proba(test[columns]) 
print(predicted_probs) 
test = pd.concat([test, pd.DataFrame(predicted_probs, columns=['Col_0', 'Col_1'])], axis=1) 

【问题讨论】:

请在此处发布您的代码。所以我们看到了你的数据结构和有问题的位...... 【参考方案1】:

是每棵树的 1000 个概率的平均值吗?

是的,是的。


向量显示每个选定类在所有树中的平均概率。 Scikit RF 分类中的最终投票选择对于所有树的给定输入具有最高平均概率的类。

因此,如果对于双类数据集,对于给定的样本/输入,C1 和 C2 在标记为 1 和 2 的树上的概率分别为 0.3、0.7 和 0.5、0.5。 C1 的平均概率为 0.4,而 C2 的平均概率为 0.4。 0.6。

C2 是该输入的选定类,因为它在两棵树中具有最高的平均概率。


您还可以查看ForestClassifierspredict 方法的来源。来自方法的__doc__

输入样本的预测类别是树的投票 森林,由他们的概率估计加权。那是, 预测的类别是具有最高平均概率的类别 跨树估计。

总之,这是一种多数投票,其中投票权重不是跨树的类频率,而是跨树的平均值。

【讨论】:

以上是关于python中的随机森林:分类问题中的最终概率的主要内容,如果未能解决你的问题,请参考以下文章

随机森林(分类与回归)

PySpark 和 MLLib:随机森林预测的类概率

将随机森林分类分解成python中的碎片?

随机森林分类:如何从“probabilityCol”推断类别概率

如何将图像(多维数组)数据拟合到 python 中的随机森林分类器中?

随机森林中的树细节