【问题标题】:random forest in python: final probabilities in classification problemspython中的随机森林:分类问题中的最终概率
【发布时间】: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) 

【问题讨论】:

  • 请在此处发布您的代码。所以我们看到了你的数据结构和有问题的位......

标签: python scikit-learn classification probability random-forest


【解决方案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__

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

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

【讨论】:

    猜你喜欢
    • 2016-01-28
    • 2018-09-13
    • 2014-05-28
    • 2012-10-24
    • 2015-05-03
    • 2019-08-12
    • 1970-01-01
    • 2017-07-02
    • 2017-04-24
    相关资源
    最近更新 更多