Я сравниваю два наивных байесовских классификатора :, один из NLTK и один из scikit -Learn . Я имею дело с проблемой классификации нескольких -классов (3 класса :положительных (1 ), отрицательных (-1 )и нейтральных (0 )).
Без выбора какого-либо признака (, то есть с использованием всех доступных признаков )и с использованием обучающего набора данных из 70 000 экземпляров (шумных -помеченных, с распределением экземпляров 17% положительных, 4% отрицательный и 78% нейтральный ), я тренирую два классификатора, первый — nltk.NaiveBayesClassifier, а второй — sklearn.naive _байес.MultinomialNB (сfit_prior=True
).
После обучения я оценил классификаторы на моем тестовом наборе из 30 000 экземпляров и получил следующие результаты:
**NLTK's 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's 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's 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., по крайней мере с моими данными. Принимая во внимание, что они могут быть (почти )одними и теми же классификаторами, разве это не странно?