如何在随机森林分类器中获得 'predict' 预测的 class 的 'predict_proba'?
How to get the 'predict_proba' for the class predicted by 'predict' in Random Forest Classifier?
from sklearn import ensemble
model = ensemble.RandomForestClassifier(n_estimators=10)
model.fit(x,y)
predictions = model.predict(new)
我知道 predict()
uses predict_proba()
通过计算森林中树木的预测 class 概率的平均值来获得预测。
我想得到 predict_proba()
的结果 predict()
方法预测的 class。
我正在做的是:首先像上面的代码一样调用 predict()
,对于概率,我从树中提取最大概率,如下所示:
all_probabilities = model.predict_proba()
class_probabilities = np.array([])
for tree in all_probabilities:
class_probabilites = np.append(class_probabilities, tree.max())
这是正确的吗?如果不是,我如何提取预测的概率 class?
predict_proba()
方法 returns 一个 two-dimensional 数组,包含每个实例和每个 class:
的估计概率
import numpy as np
from sklearn.ensemble import RandomForestClassifier
X = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[10, 11, 12]])
y = np.array([0, 0, 1, 1])
model = RandomForestClassifier()
model.fit(X, y)
model.predict_proba(X)
array([[0.91, 0.09],
[0.91, 0.09],
[0.25, 0.75],
[0.05, 0.95]])
如您所见,对于每个实例,预测的 class 是具有最大概率的 class。因此,获得预测 classes 的估计概率的一种简单方法是使用 np.max()
:
np.max(model.predict_proba(X), axis=1)
array([0.91, 0.91, 0.75, 0.95])
from sklearn import ensemble
model = ensemble.RandomForestClassifier(n_estimators=10)
model.fit(x,y)
predictions = model.predict(new)
我知道 predict()
uses predict_proba()
通过计算森林中树木的预测 class 概率的平均值来获得预测。
我想得到 predict_proba()
的结果 predict()
方法预测的 class。
我正在做的是:首先像上面的代码一样调用 predict()
,对于概率,我从树中提取最大概率,如下所示:
all_probabilities = model.predict_proba()
class_probabilities = np.array([])
for tree in all_probabilities:
class_probabilites = np.append(class_probabilities, tree.max())
这是正确的吗?如果不是,我如何提取预测的概率 class?
predict_proba()
方法 returns 一个 two-dimensional 数组,包含每个实例和每个 class:
import numpy as np
from sklearn.ensemble import RandomForestClassifier
X = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[10, 11, 12]])
y = np.array([0, 0, 1, 1])
model = RandomForestClassifier()
model.fit(X, y)
model.predict_proba(X)
array([[0.91, 0.09],
[0.91, 0.09],
[0.25, 0.75],
[0.05, 0.95]])
如您所见,对于每个实例,预测的 class 是具有最大概率的 class。因此,获得预测 classes 的估计概率的一种简单方法是使用 np.max()
:
np.max(model.predict_proba(X), axis=1)
array([0.91, 0.91, 0.75, 0.95])