Почему я получаю почти одинаковые топ-10 функций, используя Multinomial Naive Bayes классификатор для положительного и отрицательного класса? - PullRequest
0 голосов
/ 04 марта 2019

После многократного запуска MultinomialNB я получаю одинаковые функции для + ve и -ve класса BoW, TfIdf.Я даже пробовал это на биграммах, триграммы по-прежнему одинаковы для обоих классов.

best_alpha = 6
clf = MultinomialNB( alpha=best_alpha )
clf.fit(X_tr, y_train)

y_train_pred = batch_predict(clf, X_tr)    
y_test_pred = batch_predict(clf, X_te)

train_fpr, train_tpr, tr_thresholds = roc_curve(y_train, y_train_pred)
test_fpr, test_tpr, te_thresholds = roc_curve(y_test, y_test_pred)

Это код для получения 10 лучших функций для положительных и отрицательных классов текстовых данных Tf-Idf.feats_tfidf содержит характеристики категориальных, числовых и текстовых данных.

Для положительного класса

sorted_idx = np.argsort( clf.feature_log_prob_[1] )[-10:]

for p,q in zip(feats_tfidf[ sorted_idx ], clf.feature_log_prob_[1][ sorted_idx ]):
print('{:45}:{}'.format(p,q))

Вывод:

Mathematics                                  :-7.134937347073638
Literacy                                     :-6.910334729871051
Grades_3_5                                   :-6.832969821702653
Ms                                           :-6.791634814736902
Math_Science                                 :-6.748584860699069
Grades_PreK_2                                :-6.664767807632341
Literacy_Language                            :-6.4833650280402875
Mrs                                          :-6.404885953106168
Teacher number of previously posted projects :-3.285663623429455
price                                        :-0.09775430166978438

Для отрицательного класса

sorted_idx = np.argsort( clf.feature_log_prob_[0] )[-10:]

for p,q in zip(feats_tfidf[ sorted_idx ], clf.feature_log_prob_[0][ sorted_idx ]):
print('{:45}:{}'.format(p,q))

Вывод:

Literacy                                     :-7.31906682336635
Mathematics                                  :-7.318545582802034
Grades_3_5                                   :-7.088236519755028
Ms                                           :-6.970453484098645
Math_Science                                 :-6.887189615718408
Grades_PreK_2                                :-6.85882128589294
Literacy_Language                            :-6.8194613665941155
Mrs                                          :-6.648860662073821
Teacher number of previously posted projects :-4.008908256269724
price                                        :-0.08131982830664697

Пожалуйста, помогите мне, кто-нибудь, это правильный способ сделать.

1 Ответ

0 голосов
/ 02 июня 2019

Должно быть вот так* Когда вы говорите [-10:], вы будете печатать элементы в позиции (n-10), (n-9) .... n, но мы хотим, чтобы элементы печатались как n, n-1, n-2, ... n-10

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...