如何使用sklearn同时获取概率和标签预测结果

5

我有一个多类分类器,需要同时获取概率和标签。

model.predict_proba(X) 返回每个数据点所有训练类的概率。

model.predict(X) 返回每个数据点的标签。

我不想对每个数据点进行两次预测。


你可以直接使用 predict_proba 预测的概率。 - Vito
1个回答

4

只需使用predict_proba,然后使用np.argmax获取标签:

dataset = read_csv('pollution.csv', header=0, index_col=0)
x = dataset[['pollution', 'dew', 'temp', 'press', 'wnd_spd', 'snow']].values
y = dataset[['wnd_dir']].values
from sklearn.ensemble import RandomForestClassifier

cls = RandomForestClassifier(random_state=0)
cls.fit(x, y)

z = cls.predict_proba(x)
labels = np.argmax(z, axis=1)
classes = cls.classes_
labels = [classes[i] for i in labels]
print(accuracy_score(y, labels))

如果这个功能能够内置到scikit learn的估计器中就好了,否则需要手动包装管道。 - eliangius

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接