Текстовая категоризация с использованием наивного байеса

StackOverflow https://stackoverflow.com/questions/8319677

Вопрос

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

Возможно ли я использовать корты слов в качестве функций?

Например, если есть два класса, политика и спорт. Слово, называемое правительством, может появиться в обоих них. Тем не менее, в политике у меня может быть кортеж (правительство, демократия), тогда как в классных видах спорта у меня может быть кортеж (правительство, спортсмен). Таким образом, если появляется новая текстовая статья, в которой есть политика, вероятность того, что кортеж (правительство, демократия) имеет большую вероятность, чем кортеж (правительство, спортсмен).

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

Кроме того, я думаю о добавлении веса к функциям. Например, функция 3-й тупики будет иметь меньший вес, чем функция с 4 тупиками.

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

Это было полезно?

Решение

Даже без добавления Bigrams реальные документы уже нарушают предположение об независимости. Осуществляя Обаму в документе, президент гораздо чаще появится. Тем не менее, наивный Байес все еще выполняет приличную работу по классификации, даже если оценки вероятности, которые она дает, безнадежно отключены. Поэтому я рекомендую вам продолжить и добавить в свой классификатор более сложные функции и посмотреть, улучшит ли они точность.

Если вы получаете одинаковую точность с меньшим количеством данных, это в основном эквивалентно повышению точности с одинаковым объемом данных.

С другой стороны, использование более простых, более распространенных функций работает лучше, уменьшая объем данных. Если вы попытаетесь установить слишком много параметров к слишком небольшим данным, вы склонны переполнять плохо.

Но суть - попробовать и посмотреть.

Другие советы

Нет, с теоретической точки зрения вы не меняете предположение о независимости. Вы просто создаете модифицированное (или новое) пробел. В целом, как только вы начнете использовать более высокие N-граммы в качестве событий в вашем пространстве образца, редкость данных становится проблемой. Я думаю, что использование кортежей приведет к той же проблеме. Вам, вероятно, понадобится больше данных обучения, а не меньше. Возможно, вам также придется немного больше подумать о типе сглаживания, который вы используете. Простое сглаживание Лапласа может быть не идеальным.

Я думаю, что наиболее важным моментом является то, что бы ни использовал классификатор, функции сильно зависят от домена (а иногда даже на набор данных). Например, если вы классифицируете настроение текстов на основе обзоров фильмов, использование только Unigrams может показаться нелогичным, но они работают лучше, чем использование только прилагательных. С другой стороны, для наборов данных Twitter комбинация Unigrams и Bigrams, как было обнаружено, было хорошим, но более высокие N-граммы не были полезны. На основе таких отчетов (ссылка Пан и Ли, Анализ добычи мнений и настроений), Я думаю, что использование более длинных кортежей будет показывать аналогичные результаты, так как, в конце концов, кортежи слов являются просто точками в более высоком пространстве. Основной алгоритм ведет себя так же.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top