如何在clf.predict_proba()中找到对应的类

2024-04-27 03:36:57 发布

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

我有很多类和相应的特征向量,当我运行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]])

我想知道什么概率对应于什么类。在这一页上,它说它们是按算术顺序排列的,我不能百分之百确定这是什么意思:http://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC.predict_proba

这是否意味着我已经通过了我的训练示例,为一个类的第一次接触指定了相应的索引,或者是否有类似的命令

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


Tags: fromsklearnonepredictfeatureclassesthreeclf
3条回答

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

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

感谢您在您的问题中加入了一个极简的复制脚本,只需复制并粘贴到一个IPython shell中,就可以很容易地得到答案:)

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

通常在Python中,可以使用dir函数来确定对象具有哪些属性。

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

相关问题 更多 >