1

В качестве примера я использую классификацию спама. Канонический подход состоял бы в том, чтобы вручную классифицировать случайную выборку электронных писем и использовать их для обучения классификатора NB.Должны ли мои данные по обучению Naive Bayes быть пропорциональными?

Отлично, теперь скажу, что я добавил кучу архивных писем, которые, как я знаю, не являются спамом. Будет ли это искажать мой классификатор, потому что теперь доля спама: не спам больше не является репрезентативным? Эти два способа я мог подумать об этом:

  • Функции становятся слишком неспасными.
  • алгоритм неявно использует вероятностный (спам) в своей классификации (таким же образом, что вероятность (состояние здоровья) девальвируется на редкость медицинского состояния, даже если тест положителен.

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

+2

Это может быть лучше подходит для [DSE] (http://datasceince.stackexchange.com/). Это больше связано с подходом к науке о данных и воздействием различных наборов тренировок, а не на вопрос программирования. –

+0

Спасибо, я думаю, что ответ Эд работает для меня, но я [спросил его там] (http://datascience.stackexchange.com/questions/8639/does-my-naive-bayes-training-data-need-to-be -proportional). PS у вашей ссылки есть опечатка. –

ответ

2

Вы можете по всем данным, не беспокоясь о пропорциональности. Тем не менее, как вы заметили, искажение пропорций искажает вероятности и приводит к плохим результатам. Если у вас есть 20% спам-поток электронной почты и обучен спам-фильтру на 99% -ном спаме, d 1% хорошей электронной почты (ветчина), вы получите гиперагрессивный фильтр.

Общий подход к это два шага:

  1. Seed фильтр, запустив репрезентативную выборку данных через него (скажем, 1000 сообщений электронной почты в сценарии спам-фильтра).
  2. Поскольку фильтр встречает дополнительные данные, обновляйте вес только, если фильтр ошибочно. Это называется «поезд-на-ошибке».

Если вы будете следовать этому подходу, ваш фильтр не смущается внезапным всплеском спама, который, как оказалось, включает в себя, скажем, слово «труба» вместе с словами, которые действительно являются спамом. Он будет настраиваться только тогда, когда это необходимо, но будет догонять так быстро, как нужно, когда это неправильно. Это один из способов предотвращения «байесовского отравления», который применяют большинство спамеров. Они могут загромождать свои сообщения с большим количеством мусора, но у них есть только так много способов описать свои продукты или услуги, и эти слова всегда будут спам.