Используйте атрибут feature_log_prob_
/ coef_
, чтобы получить вероятности для каждой функции.
Из документации :
feature_log_prob_ : ndarray формы (n_classes, n_features).
Эмпирическая логарифмическая вероятность признаков для данного класса, P (x_i | y).
coef_ : ndarray of shape (n_classes, n_features)
Зеркала feature_log_prob_ для интерпретации MultinomialNB как линейной модели.
Этот учебник может помочь .
Быстрый пример получения основных функций для каждого класса:
categories = ['alt.atheism', 'talk.religion.misc',
'comp.graphics', 'sci.space']
newsgroups_train = fetch_20newsgroups(subset='train',
remove=('headers', 'footers', 'quotes'),
categories=categories)
vectorizer = TfidfVectorizer(stop_words='english')
vectors = vectorizer.fit_transform(newsgroups_train.data)
clf = MultinomialNB(alpha=.01).fit(vectors, newsgroups_train.target)
import numpy as np
def show_top10(classifier, vectorizer, categories):
feature_names = np.asarray(vectorizer.get_feature_names())
for i, category in enumerate(categories):
top10 = np.argsort(classifier.coef_[i])[-10:]
print("%s: %s" % (category, " ".join(feature_names[top10])))
show_top10(clf, vectorizer, newsgroups_train.target_names)
вывод:
alt.atheism: islam does religion atheism say just think don people god
comp.graphics: windows does looking program know file image files thanks graphics
sci.space: earth think shuttle orbit moon just launch like nasa space
talk.religion.misc: objective think just bible don christians christian people Jesus god