У меня есть несколько классов и соответствующие векторы признаков, и когда я бегу predict_proba() Я получаю это:Как найти соответствующий класс в clf.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']?
Для одного sample, 'zip (clf.classes_, clf.predict_proba (x) [0])' дает читаемый результат. –
есть способ передать предопределенный порядок классификатору? – thecheech
Вы можете назвать свои классы '0, 1, 2 ...' непосредственно, если хотите. В противном случае вы можете использовать атрибут clf.classes_ для выполнения обратного сопоставления. – ogrisel