1

Я использую Naive Bayes из Weka, чтобы сделать классификацию текста. У меня есть два класса для моих предложений: «Позитивный» и «Негативный». Я собрал около 207 предложений с положительным смыслом и 189 предложений с отрицательным значением, чтобы создать свой тренировочный набор.Хорошая производительность только для одного класса наивных заливов

Когда я запустил Naive Bayes с тестовым набором, содержащим предложения с сильным отрицательным значением, такие как слово «ненависть», точность результатов довольно хорошая, около 88%. Но когда я использую предложения с положительным значением, такие как слово «любовь», как тестовый набор, точность намного хуже, около 56%.

Я думаю, что эта разница, вероятно, имеет какое-то отношение к моему набору тренировок и особенно к его «положительным» предложениям.

Можете ли вы придумать любую причину, которая могла бы объяснить эту разницу? Или, может быть, способ помочь мне узнать, где проблема начинается?

Большое спасибо за ваше время,

Nantia

+0

вы пытались с помощью перекрестной проверки? ваша ситуация кажется просто совпадением. – berkay

ответ

1

Вместо того чтобы создавать наборы тестов, которые содержат только положительные или отрицательные образцы, я бы просто создать тестовый набор смешанных образцов. Вы можете просмотреть полученную матрицу путаницы в Weka, которая позволяет вам видеть, насколько хорошо и положительные, и отрицательные образцы, где они классифицированы. Кроме того, я бы использовал (10-кратную) кросс-валидацию, чтобы получить более стабильную меру производительности (после того, как вы это сделали, вы можете отредактировать свой пост с результатами перекрестной проверки матрицы смешения, и мы могли бы помочь Больше).

1

Возможно, ваши отрицательные предложения содержат слова, которые более последовательно присутствуют, тогда как ваши положительные предложения имеют больше вариаций в словах, которые присутствуют, или эти слова могут часто присутствовать в отрицательных предложениях.

Трудно дать конкретный совет, не зная размер вашего словаря (т. Е. Количество атрибутов), размер вашего тестового набора и т. Д. Так как классификатор Naive Bayes вычисляет произведение вероятностей отдельных слов, присутствующих или отсутствовать, я бы взял некоторые из ошибочно классифицированных положительных примеров и рассмотрел условные вероятности как для положительной, так и для отрицательной классификации, чтобы понять, почему примеры ошибочно классифицируются.

1

Чтобы лучше понять, как работает ваш классификатор, вы можете проверить параметры, чтобы увидеть, какие слова считает классификатор наиболее прогнозирующим из положительного/отрицательного предложения. Можете ли вы распечатать верхние предиктора для положительных и отрицательных случаев?

например,

top positive predictors: 
p('love'|positive) = 0.05 
p('like'|positive) = 0.016 
... 

top negative predictors: 
p('hate'|negative) = 0.25 
p('dislike'|negative) = 0.17 
... 
Смежные вопросы