如何在clf.predict_proba()中找到相应的类
machine-learning
python
scikit-learn
14
0

我有许多类和相应的特征向量,当我运行predict_proba()时,我会得到以下信息:

classes = ['one','two','three','one','three']

feature = [[0,1,1,0],[0,1,0,1],[1,1,0,0],[0,0,0,0],[0,1,1,1]]

from sklearn.naive_bayes import BernoulliNB

clf = BernoulliNB()
clf.fit(feature,classes)
clf.predict_proba([0,1,1,0])
>> array([[ 0.48247836,  0.40709111,  0.11043053]])

我想得到对应于什么阶级的概率。在此页面上说,它们是按照算术顺序进行排序的,我不是100%知道这是什么意思: http : //scikit-learn.org/stable/modules/genic/sklearn.svm.SVC.html#sklearn .svm.SVC.predict_proba

这是否意味着我已经通过训练示例将相应的索引分配给班级的第一次遇到,还是有这样的命令?

clf.getClasses() = ['one','two','three']?

参考资料:
Stack Overflow
收藏
评论
共 3 个回答
高赞 时间 活跃

通常,学习者中以_结尾的任何属性都是学习的。在您的情况下,您正在寻找clf.classes_

通常,在Python中,您可以使用dir函数找出对象具有哪些属性。

收藏
评论

只需使用分类器的.classes_属性即可恢复映射。在您的示例中给出:

>>> clf.classes_
array(['one', 'three', 'two'], 
      dtype='|S5')

并且感谢您在问题中添加了一个简约的复制脚本,只需复制并粘贴到IPython shell中,它就使回答变得非常容易:)

收藏
评论
import pandas as pd
test = [[0,1,1,0],[1,1,1,0]]
pd.DataFrame(clf.predict_proba(test), columns=clf.classes_)

Out[2]:
         one       three         two
0   0.542815    0.361876    0.095309
1   0.306431    0.612863    0.080706
收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号