我有一些类和相应的特征向量,当我运行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/generated/sklearn.svm.SVC.html#sklearn.svm.SVC.predict_proba
这是否意味着我已经通过我的训练示例为类的第一次遇到分配相应的索引,或者是否有像
这样的命令 clf.getClasses() = ['one','two','three']?
仅使用分类器的.classes_
属性恢复映射。在您的示例中,给出:
>>> clf.classes_
array(['one', 'three', 'two'],
dtype='|S5')
感谢你在你的问题中提供了一个极简的复制脚本,它使回答变得非常容易,只需在ippython 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
作为规则,学习器中任何以_结尾的属性都是一个学习属性。在您的情况下,您正在寻找clf.classes_
。
一般在Python中,您可以使用dir
函数来查找对象具有哪些属性。