Проблемы с Naive Bayes, реализованные на Amazon, набор данных отзывов - PullRequest
0 голосов
/ 02 сентября 2018

Точность CV График точности CV Точность теста

Я пытаюсь реализовать Naive Bayes в наборе данных по изысканным продуктам питания Amazon. Можете ли вы просмотреть код и сказать, почему существует такая большая разница между точностью перекрестной проверки и точностью проверки?

Концептуально что-то не так с кодом ниже?

#BOW()

from sklearn.feature_extraction.text import CountVectorizer
bow = CountVectorizer(ngram_range = (2,3))
bow_vect = bow.fit(X_train["F_review"].values)
bow_sparse = bow_vect.transform(X_train["F_review"].values)
X_bow = bow_sparse
y_bow = y_train



roc = []
accuracy = []
f1 = []
k_value = []
for i in range(1,50,2):
  BNB =BernoulliNB(alpha =i)

  print("************* for alpha = ",i,"*************")
  x = (cross_validate(BNB, X_bow,y_bow, scoring = ['accuracy','f1','roc_auc'], return_train_score = False, cv = 10))
  print(x["test_roc_auc"].mean())
  print("-----c------break------c-------break-------c-----------")
  roc.append(x['test_roc_auc'].mean())#This is the ROC metric
  accuracy.append(x['test_accuracy'].mean())#This is the accuracy metric
  f1.append(x['test_f1'].mean())#This is the F1 score

  k_value.append(i)


#BOW Test prediction
BNB =BernoulliNB(alpha= 1)
BNB.fit(X_bow, y_bow)
y_pred = BNB.predict(bow_vect.transform(X_test["F_review"]))
print("Accuracy Score: ",accuracy_score(y_test,y_pred))
print("ROC: ", roc_auc_score(y_test,y_pred))
print("Confusion Matrix: ", confusion_matrix(y_test,y_pred))

1 Ответ

0 голосов
/ 09 апреля 2019

Используйте один из показателей, чтобы найти оптимальное значение альфа. Затем обучите BernoulliNB тестовым данным.

И не учитывайте точность измерения производительности, так как она подвержена несбалансированному набору данных.

Прежде чем что-либо делать, измените значения , указанные в цикле , как упомянул Калси в комментарии.

  • Имеет альфа-значения, как указано выше в списке
  • найти максимальное значение AUC и его индекс.
  • Используйте указанный выше индекс для поиска оптимальной альфа.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...