У меня есть набор отзывов с меткой класса положительный / отрицательный.Я применяю Наивный Байес к этому набору данных отзывов.Во-первых, я превращаюсь в мешок слов.Здесь sorted_data ['Text'] - это обзоры, а final_counts - это разреженная матрица
count_vect = CountVectorizer()
final_counts = count_vect.fit_transform(sorted_data['Text'].values)
Я разбиваю данные на набор данных по поездам и тестам.
X_1, X_test, y_1, y_test = cross_validation.train_test_split(final_counts, labels, test_size=0.3, random_state=0)
Я применяю алгоритм наивного байесовского алгоритма следующим образом
optimal_alpha = 1
NB_optimal = BernoulliNB(alpha=optimal_aplha)
# fitting the model
NB_optimal.fit(X_tr, y_tr)
# predict the response
pred = NB_optimal.predict(X_test)
# evaluate accuracy
acc = accuracy_score(y_test, pred) * 100
print('\nThe accuracy of the NB classifier for k = %d is %f%%' % (optimal_aplha, acc))
Здесь X_test - это тестовый набор данных, в котором переменная pred сообщает нам, является ли вектор в X_test положительным или отрицательным классом.
Форма X_test (54626 строк, 82343 размера)
длина пред: 54626
Мой вопрос: я хочу получитьслова с наибольшей вероятностью в каждом векторе, так что я могу узнать по словам, почему это предсказано как положительный или отрицательный класс.Следовательно, как получить слова, которые имеют наибольшую вероятность в каждом векторе?