Наивный байесовский классификатор

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Наи́вный ба́йесовский классифика́тор — простой вероятностный классификатор, основанный на применении Теоремы Байеса со строгими (наивными) предположениями о независимости.

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

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

Достоинством наивного байесовского классификатора является малое количество данных для обучения, необходимых для оценки параметров, требуемых для классификации.

Модель наивного байесовского классификатора[править | править вики-текст]

Вероятностная модель для классификатора — это условная модель

p(C \vert F_1,\dots,F_n)\,

над зависимой переменной класса C с малым количеством результатов или классов, зависимая от нескольких переменных F_1F_n. Проблема заключается в том, что когда количество свойств n очень велико или когда свойство может принимать большое количество значений, тогда строить такую модель на вероятностных таблицах становится невозможно. Поэтому мы переформулируем модель, чтобы сделать её легко поддающейся обработке.

Используя теорему Байеса, запишем

p(C \vert F_1,\dots,F_n) = \frac{p(C) \ p(F_1,\dots,F_n\vert C)}{p(F_1,\dots,F_n)}. \,

На практике интересен лишь числитель этой дроби, так как знаменатель не зависит от C и значения свойств F_i даны, так что знаменатель — константа.

Числитель эквивалентен совместной вероятности модели

p(C, F_1, \dots, F_n)\,

которая может быть переписана следующим образом, используя повторные приложения определений условной вероятности:

p(C, F_1, \dots, F_n)\,
= p(C) \ p(F_1,\dots,F_n\vert C)
= p(C) \ p(F_1\vert C) \ p(F_2,\dots,F_n\vert C, F_1)
= p(C) \ p(F_1\vert C) \ p(F_2\vert C, F_1) \ p(F_3,\dots,F_n\vert C, F_1, F_2)
= p(C) \ p(F_1\vert C) \ p(F_2\vert C, F_1) \ \dots p(F_n\vert C, F_1, F_2, F_3,\dots,F_{n-1})

и т. д. Теперь можно использовать «наивные» предположения условной независимости: предположим, что каждое свойство F_i условно независимо от любого другого свойства F_j при j\neq i. Это означает:

p(F_i \vert C, F_j) = p(F_i \vert C)\,

таким образом, совместная модель может быть выражена как:

p(C, F_1, \dots, F_n)
= p(C) \ p(F_1\vert C) \ p(F_2\vert C) \ p(F_3\vert C) \ \cdots\,
= p(C) \prod_{i=1}^n p(F_i \vert C).\,

Это означает, что из предположения о независимости, условное распределение по классовой переменной C может быть выражено так:

p(C \vert F_1,\dots,F_n) = \frac{1}{Z}  p(C) \prod_{i=1}^n p(F_i \vert C)

где Z — это масштабный множитель, зависящий только от F_1,\dots,F_n, то есть константа, если значения переменных известны.

Оценка параметров[править | править вики-текст]

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

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

Построение классификатора по вероятностной модели[править | править вики-текст]

Наивный байесовский классификатор объединяет модель с правилом решения. Одно общее правило должно выбрать наиболее вероятную гипотезу; оно известно как апостериорное правило принятия решения (MAP). Соответствующий классификатор — это функция \mathrm{classify}, определённая следующим образом:

\operatorname{classify}(f_1,\dots,f_n) = \arg \max_c p(C=c) \prod_{i=1}^n p(F_i=f_i\vert C=c)

Пример: фильтрация спама[править | править вики-текст]

Рассмотрим простой пример применения наивного байесовского классификатора к задаче классификации документов по их содержимому, а именно к классификации электронных писем на два класса — спам (S) и не-спам (\neg S).

Будем считать, что документы выбраны из нескольких классов документов, которые могут быть представлены множеством слов с (независимой) вероятностью, что i-ое слово данного документа встречается в документе класса C:

p(w_i \vert C)\,

(Для этой задачи предположим, что вероятность встречи слова в документе независима от длины документа и все документы имеют одинаковую длину.)

Тогда вероятность для данного документа D и класса C

p(D\vert C)=\prod_i p(w_i \vert C)\,

Вопрос, на который мы хотим ответить: «какова вероятность того, что данный документ D принадлежит классу C?». Другими словами, чему равна p(C \vert D)\,?

По теореме Байеса

p(C\vert D)={p(C)\over p(D)}\,p(D\vert C)

Предположим, что мы имеем только два класса: S и ¬S (напр. спам и не-спам). Тогда

p(S\vert D)={p(S)\over p(D)}\,\prod_i p(w_i \vert S)
p(\neg S\vert D)={p(\neg S)\over p(D)}\,\prod_i p(w_i \vert\neg S)

Поделив одно на другое получим отношение правдоподобия

{p(S\vert D)\over p(\neg S\vert D)}={p(S)\over p(\neg S)}\,\prod_i {p(w_i \vert S)\over p(w_i \vert\neg S)}

или (для логарифма правдоподобия)

\ln{p(S\vert D)\over p(\neg S\vert D)}=\ln{p(S)\over p(\neg S)}+\sum_i \ln{p(w_i\vert S)\over p(w_i\vert\neg S)}

Действительная вероятность p(S\vert D) может быть посчитана из \ln{p(S\vert D)\over p(\neg S\vert D)} основываясь на наблюдении, что p(S\vert D) + p(\neg S\vert D) = 1. Для этого необходимо из функции правдоподобия сформировать вероятностное пространство

p(S\vert D) = \frac{ e^q } { 1 + e^q }, где q=\ln{p(S\vert D)\over p(\neg S\vert D)}

Наконец, документ может быть классифицирован сравнением логарифма правдоподобия с некоторым порогом h (например h=0). Перед нами спам, если

\ln{p(S\vert D)\over p(\neg S\vert D)} > h.

См. также[править | править вики-текст]

Ссылки[править | править вики-текст]

  • Domingos, Pedro & Michael Pazzani (1997) «On the optimality of the simple Bayesian classifier under zero-one loss». Machine Learning, 29:103-­137. (also online at CiteSeer: [1])
  • Rish, Irina. (2001). «An empirical study of the naive Bayes classifier». IJCAI 2001 Workshop on Empirical Methods in Artificial Intelligence. (available online: PDF, PostScript)
  • Hand, DJ, & Yu, K. (2001). «Idiot’s Bayes — not so stupid after all?» International Statistical Review. Vol 69 part 3, pages 385—399. ISSN 0306-7734.
  • Mozina M, Demsar J, Kattan M, & Zupan B. (2004). «Nomograms for Visualization of Naive Bayesian Classifier». In Proc. of PKDD-2004, pages 337—348. (available online: PDF (недоступная ссылка с 13-05-2013 (573 дня) — история))
  • Maron, M. E. (1961). «Automatic Indexing: An Experimental Inquiry.» Journal of the ACM (JACM) 8(3):404-417. (available online: PDF)
  • Minsky, M. (1961). «Steps toward Artificial Intelligence.» Proceedings of the IRE 49(1):8-30.
  • McCallum, A. and Nigam K. «A Comparison of Event Models for Naive Bayes Text Classification». In AAAI/ICML-98 Workshop on Learning for Text Categorization, pp. 41-48. Technical Report WS-98-05. AAAI Press. 1998. (available online: PDF)
  • Субботин С. В., Большаков Д. Ю. Применение байесовского классификатора для распознавания классов целей. // «Журнал Радиоэлектроники», 2006, № 4 (available online)
Программные продукты