随机森林分类器(sklearn)的预测概率(X)似乎是静态的?

2024-10-04 01:27:19 发布

您现在位置:Python中文网/ 问答频道 /正文

对于所有的类,我想检索给定样本的预测分数/概率。我用的是sklearn的随机森林分类器。如果我使用.predict(),我的代码运行良好。但是为了显示概率,我使用了.predict_proba(X),它总是返回相同的值,即使在{}发生变化时也是如此。为什么会这样?怎么解决?在

我把我的代码分解成相关的部分:

# ... code ... feature generation / gets the feature data
if rf is None:
    rf = RandomForestClassifier(n_estimators=80)
    rf.fit(featureData, classes)
else:
    prediction = rf.predict(featureData) # gets the right class / always different
    proba = rf.predict_proba(featureData) 
    print proba # this prints always the same values for all my 40 classes

有趣的是,max(proba)检索.predict()在第一次运行中返回的类。由于.predict()按预期工作,我相信错误是在sklearn这边,也就是说,我想有一个标志需要设置。在

有人知道吗?在


Tags: the分类器森林sklearn概率alwayspredict分数
1条回答
网友
1楼 · 发布于 2024-10-04 01:27:19

我想问题是你总是给predict_proba传递相同的参数。下面是我从iris数据集构建树林的代码:

from sklearn import datasets
from sklearn.ensemble import RandomForestClassifier
iris = datasets.load_iris()
X = iris.data
y = iris.target
rf = RandomForestClassifier(n_estimators=80)
rf.fit(X, y)

当我调用方法predictpredict_proba时,不同参数的类和类日志概率预测也不同,这是可以合理预期的。在

样本运行:

^{pr2}$

相关问题 更多 >