Я сравниваю два классификатора Naive Bayes: один из NLTK и один от scikit-learn. Я имею дело с проблемой классификации нескольких классов (3 класса: положительные (1), отрицательные (-1) и нейтральные (0)).
Без выполнения какого-либо выбора функции (то есть с использованием всех доступных функций) и с использованием набора учебных материалов из 70 000 экземпляров (с помеховыми помехами, с распределением экземпляра 17% положительным, 4% отрицательным и 78% нейтральным), я подготовьте два классификатора, первый из них - nltk.NaiveBayesClassifier, а второй - sklearn.naive_bayes.MultinomialNB(с fit_prior=True
).
После обучения я оценил классификаторы в своем тестовом наборе из 30 000 экземпляров, и я получаю следующие результаты:
**NLTK NaiveBayes**
accuracy: 0.568740
class: 1
precision: 0.331229
recall: 0.331565
F-Measure: 0.331355
class: -1
precision: 0.079253
recall: 0.446331
F-Measure: 0.134596
class: 0
precision: 0.849842
recall: 0.628126
F-Measure: 0.722347
**Scikit MultinomialNB (with fit_prior=True)**
accuracy: 0.834670
class: 1
precision: 0.400247
recall: 0.125359
F-Measure: 0.190917
class: -1
precision: 0.330836
recall: 0.012441
F-Measure: 0.023939
class: 0
precision: 0.852997
recall: 0.973406
F-Measure: 0.909191
**Scikit MultinomialNB (with fit_prior=False)**
accuracy: 0.834680
class: 1
precision: 0.400380
recall: 0.125361
F-Measure: 0.190934
class: -1
precision: 0.330836
recall: 0.012441
F-Measure: 0.023939
class: 0
precision: 0.852998
recall: 0.973418
F-Measure: 0.909197
Я заметил, что, хотя классификатор Scikit имеет лучшую общую точность и точность, его отзыв очень низкий по сравнению с NLTK, по крайней мере, с моими данными. Принимая во внимание, что они могут быть (почти) одинаковыми классификаторами, разве это не странно?