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

редактировать

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

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

В литературе по статистике и информатике наивные байесовские модели известны под разными именами, включая простые байесовские и Независимость Байеса . Все эти названия ссылаются на использование теоремы Байеса в решающем правиле классификатора, но наивный байесовский метод не является (обязательно) байесовским методом.

Содержание
  • 1 Введение
  • 2 Вероятностная модель
    • 2.1 Построение классификатора на основе вероятностной модели
  • 3 Оценка параметров и модели событий
    • 3.1 Гауссовский наивный Байес
    • 3.2 Полиномиальный наивный Байес
    • 3.3 Бернулли наивный Байес
    • 3.4 Полу-контролируемая оценка параметров
  • 4 Обсуждение
    • 4.1 Связь с логистической регрессией
  • 5 Примеры
    • 5.1 Классификация лиц
      • 5.1.1 Обучение
      • 5.1.2 Тестирование
    • 5.2 Классификация документов
  • 6 См. Также
  • 7 Ссылки
  • 8 Дополнительная литература
  • 9 Внешние ссылки
Введение

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

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

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

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

Вероятностная модель

В целом, наивная байесовская модель - это модель условной вероятности : данный экземпляр проблемы должен быть классифицированный, представленный вектором x = (x 1,…, xn) {\ displaystyle \ mathbf {x} = (x_ {1}, \ ldots, x_ {n})}{\displaystyle \mathbf {x} =(x_{1},\ldots,x_{n})}представляющим некоторые n функций (независимые переменные), этому экземпляру присваиваются вероятности

p (C k ∣ x 1,…, xn) {\ displaystyle p (C_ {k} \ mid x_ {1}, \ ldots, x_ { n}) \,}{\ displaystyle p (C_ {k} \ mid x_ {1}, \ ldots, x_ {n}) \,}

для каждого из K возможных результатов или классов C k {\ displaystyle C_ {k}}C_ {k} .

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

p (C k ∣ x) = p (C k) p (x ∣ C k) p (x) {\ displaystyle p ( C_ {k} \ mid \ mathbf {x}) = {\ frac {p (C_ {k}) \ p (\ mathbf {x} \ mid C_ {k})} {p (\ mathbf {x})} } \,}{\displaystyle p(C_{k}\mid \mathbf {x})={\frac {p(C_{k})\ p(\mathbf {x} \mid C_{k})}{p(\mathbf {x})}}\,}

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

апостериор = априор × свидетельство правдоподобия {\ displaystyle {\ text {posterior}} = { \ frac {{\ text {Prior}} \ times {\ text {likelihood}}} {\ text {proof}}} \,}{\ displaystyle {\ text {posterior}} = {\ frac {{\ text {Prior}} \ times {\ text {вероятность}}} {\ text {доказательство}}} \,}

На практике интересен только числитель этой дроби, потому что знаменатель не зависит от C {\ displaystyle C}Cи значений признаков xi {\ displaystyle x_ {i}}x_{i}даны, так что знаменатель фактически постоянен. Числитель эквивалентен модели совместной вероятности

p (C k, x 1,…, xn) {\ displaystyle p (C_ {k}, x_ {1}, \ ldots, x_ { n}) \,}{\displaystyle p(C_{k},x_{1},\ldots,x_{n})\,}

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

p (C k, x 1,…, xn) = p (x 1,…, xn, C k) = p (x 1 ∣ x 2,…, xn, C k) p (x 2,…, xn, C k) = p (x 1 ∣ x 2,…, xn, C k) p (x 2 ∣ x 3,…, xn, C k) p (x 3,…, xn, C k) = ⋯ = p (x 1 ∣ x 2,…, хn, С К) п (Икс 2 ∣ Икс 3,…, Иксn, С К) ⋯ п (Иксn - 1 ∣ Иксn, С К) п (XN ∣ С К) п (С К) {\ Displaystyle {\ begin {выровнено} p (C_ {k}, x_ {1}, \ ldots, x_ {n}) = p (x_ {1}, \ ldots, x_ {n}, C_ {k}) \\ = p (x_ {1} \ mid x_ {2}, \ ldots, x_ {n}, C_ {k}) \ p (x_ {2}, \ ldots, x_ {n}, C_ {k}) \\ = p (x_ {1} \ mid x_ {2}, \ ldots, x_ {n}, C_ {k}) \ p (x_ {2} \ mid x_ {3}, \ ldots, x_ {n}, C_ { k}) \ p (x_ {3}, \ ldots, x_ {n}, C_ {k}) \\ = \ cdots \\ = p (x_ {1} \ mid x_ {2}, \ ldots, x_ {n}, C_ {k}) \ p (x_ {2} \ mid x_ {3}, \ ldots, x_ {n}, C_ {k}) \ cdots p ( x_ {n-1} \ mid x_ {n}, C_ {k}) \ p (x_ {n} \ mid C_ {k}) \ p (C_ {k}) \\\ конец {выровнено}}}{\displaystyle {\begin{aligned}p(C_{k},x_{1},\ldots,x_{n})=p(x_{1},\ldots,x_{n},C_{k})\\=p(x_{1}\mid x_{2},\ldots,x_{n},C_{k})\ p(x_{2},\ldots,x_{n},C_{k})\\=p(x_{1}\mid x_{2},\ldots,x_{n},C_{k})\ p(x_{2}\mid x_{3},\ldots,x_{n},C_{k})\ p(x_{3},\ldots,x_{n},C_{k})\\=\cdots \\=p(x_{1}\mid x_{2},\ldots,x_{n},C_{k})\ p(x_{2}\mid x_{3},\ldots,x_{n},C_{k})\cdots p(x_{n-1}\mid x_{n},C_{k})\ p(x_{n}\mid C_{k})\ p(C_{k})\\\end{aligned}}}

Теперь в игру вступают «наивные» условные предположения независимости : предположим, что все функции в x {\ displaystyle \ mathbf {x}}\mathbf {x} взаимно независимы, при условии категории C k {\ displaystyle C_ {k}}C_ {k} . При этом предположении

p (xi ∣ xi + 1,…, xn, C k) = p (xi ∣ C k) {\ displaystyle p (x_ {i} \ mid x_ {i + 1}, \ ldots, x_ {n}, C_ {k}) = p (x_ {i} \ mid C_ {k}) \,}{\displaystyle p(x_{i}\mid x_{i+1},\ldots,x_{n},C_{k})=p(x_{i}\mid C_{k})\,}.

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

p (C k ∣ x 1,…, Xn) ∝ p (C k, x 1,…, xn) ∝ p (C k) p (x 1 ∣ C k) p (x 2 ∣ C k) p (x 3 ∣ C k) ⋯ ∝ п (С К) ∏ я знак равно 1 np (xi ∣ С К), {\ Displaystyle {\ begin {выровнено} p (C_ {k} \ mid x_ {1}, \ ldots, x_ {n}) \ varpropto p (C_ {k}, x_ {1}, \ ldots, x_ {n}) \\ \ varpropto p (C_ {k}) \ p (x_ {1} \ mid C_ {k}) \ p (x_ {2} \ mid C_ {k}) \ p (x_ {3} \ mid C_ {k}) \ \ cdots \\ \ varpropto p (C_ {k}) \ prod _ {i = 1} ^ {n } p (x_ {i} \ mid C_ {k}) \,, \ end {align}}}{\ displaystyle {\ begin {align} p (C_ {k} \ mid x_ {1}, \ ldots, x_ {n}) \ varpropto p (C_ {k}, x_ {1}, \ ldots, x_ {n}) \\ \ varpropto p (C_ {k}) \ p (x_ {1 } \ mid C_ {k}) \ p (x_ {2} \ mid C_ {k}) \ p (x_ {3} \ mid C_ {k}) \ \ cdots \\ \ varpropto p (C_ {k}) \ prod _ {i = 1} ^ {n} p (x_ {i} \ mid C_ {k}) \,, \ end {align}}}

где ∝ {\ displaystyle \ varpropto}{\ displaystyl е \ varpropto} обозначает пропорциональность.

Это означает, что в соответствии с вышеуказанными предположениями о независимости условное распределение по переменной класса C {\ displaystyle C}Cсоставляет:

p (C k ∣ x 1,…, xn) Знак равно 1 Z п (С К) ∏ я знак равно 1 np (xi ∣ С К) {\ displaystyle p (C_ {k} \ mid x_ {1}, \ ldots, x_ {n}) = {\ f rac {1} {Z}} p (C_ {k}) \ prod _ {i = 1} ^ {n} p (x_ {i} \ mid C_ {k})}{\displaystyle p(C_{k}\mid x_{1},\ldots,x_{n})={\frac {1}{Z}}p(C_{k})\prod _{i=1}^{n}p(x_{i}\mid C_{k})}

где доказательства Z знак равно п (Икс) знак равно ∑ КП (С К) п (Икс ∣ С К) {\ Displaystyle Z = p (\ mathbf {x}) = \ sum _ {k} p (C_ {k}) \ p ( \ mathbf {x} \ mid C_ {k})}{\ displaystyle Z = p (\ mathbf {x}) = \ sum _ {k} p (C_ {k}) \ p (\ mathbf {x} \ mid C_ {k})} - коэффициент масштабирования, зависящий только от x 1,…, xn {\ displaystyle x_ {1}, \ ldots, x_ {n} }x_{1},\ldots,x_{n}, то есть константа, если известны значения переменных функции.

Построение классификатора на основе вероятностной модели

В ходе обсуждения до сих пор была выведена модель независимых признаков, то есть наивная байесовская вероятностная модель. Наивный байесовский классификатор сочетает эту модель с правилом принятия решений. Одно из общих правил - выбирать наиболее вероятную гипотезу; это известно как максимальное апостериорное или правило принятия решения MAP. Соответствующий классификатор, байесовский классификатор, представляет собой функцию, которая назначает метку класса y ^ = C k {\ displaystyle {\ hat {y}} = C_ {k}}{\ hat {y}}=C_{k}для некоторого k следующим образом:

y ^ = argmax k ∈ {1,…, K} p (C k) ∏ i = 1 np (xi ∣ C k). {\ displaystyle {\ hat {y}} = {\ underset {k \ in \ {1, \ ldots, K \}} {\ operatorname {argmax}}} \ p (C_ {k}) \ displaystyle \ prod _ {i = 1} ^ {n} p (x_ {i} \ mid C_ {k}).}{\displaystyle {\hat {y}}={\underset {k\in \{1,\ldots,K\}}{\operatorname {argmax} }}\ p(C_{k})\displaystyle \prod _{i=1}^{n}p(x_{i}\mid C_{k}).}
Оценка параметров и модели событий

Априор класса может быть вычислен путем предположения равновероятных классов (т. е., p (C k) = 1 / K {\ displaystyle p (C_ {k}) = 1 / K}{\ displaystyle p (C_ {k}) = 1 / K} ), или путем вычисления оценки вероятности класса из обучающего набора ( т.е. = /). Чтобы оценить параметры для распределения признаков, необходимо предположить распределение или сгенерировать непараметрические модели для признаков из обучающего набора.

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

Гауссовский наивный байесовский

При работе с непрерывными данными типичное допущение состоит в том, что непрерывные значения, связанные с каждым классом, распределяются в соответствии с нормальным (или гауссовым) распределением. Например, предположим, что обучающие данные содержат непрерывный атрибут, x {\ displaystyle x}x . Сначала мы сегментируем данные по классу, а затем вычисляем среднее значение и дисперсию для x {\ displaystyle x}x в каждом классе. Пусть μ k {\ displaystyle \ mu _ {k}}\ mu _ {k} будет средним из значений в x {\ displaystyle x}x , связанных с классом C k, и пусть σ k 2 {\ displaystyle \ sigma _ {k} ^ {2}}{\ displaystyle \ sigma _ {k} ^ {2}} будет скорректированной по Бесселю дисперсией значений в x {\ displaystyle x}x , связанный с классом C k. Предположим, мы собрали какое-то значение наблюдения v {\ displaystyle v}v. Затем распределение вероятностей v {\ displaystyle v}vдля данного класса C k {\ displaystyle C_ {k}}C_ {k} , p (x = v ∣ C k) { \ displaystyle p (x = v \ mid C_ {k})}{\displaystyle p(x=v\mid C_{k})}, можно вычислить, подставив v {\ displaystyle v}vв уравнение для нормальное распределение параметризовано μ k {\ displaystyle \ mu _ {k}}\ mu _ {k} и σ k 2 {\ displaystyle \ sigma _ {k} ^ {2}}{\ displaystyle \ sigma _ {k} ^ {2}} . То есть

p (x = v ∣ C k) = 1 2 π σ k 2 e - (v - μ k) 2 2 σ k 2 {\ displaystyle p (x = v \ mid C_ {k}) = {\ frac {1} {\ sqrt {2 \ pi \ sigma _ {k} ^ {2}}}} \, e ^ {- {\ frac {(v- \ mu _ {k}) ^ {2 }} {2 \ sigma _ {k} ^ {2}}}}}{\ displaystyle p (x = v \ mid C_ {k}) = {\ frac {1} {\ sqrt {2 \ pi \ sigma _ {k} ^ {2}}}} \, e ^ {- {\ frac {(v- \ mu _ {k }) ^ {2}} {2 \ sigma _ {k} ^ {2}}}}}

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

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

Полиномиальный наивный байесовский

В модели полиномиальных событий выборки (векторы признаков) представляют частоты, с которыми определенные события были сгенерированы мультиномом (p 1,…, pn) {\ displaystyle (p_ {1}, \ dots, p_ {n})}(p_1, \ dots, p_n) где pi {\ displaystyle p_ {i}}p_{i}- вероятность того, что событие i произойдет (или K таких многочленов в случае мультикласса). Вектор признаков x = (x 1,…, xn) {\ displaystyle \ mathbf {x} = (x_ {1}, \ dots, x_ {n})}{\mathbf {x}}=(x_{1},\dots,x_{n})тогда гистограмма, где xi {\ displaystyle x_ {i}}x_{i}подсчитывает, сколько раз событие i наблюдалось в конкретном случае. Это модель событий, обычно используемая для классификации документов, с событиями, представляющими появление слова в отдельном документе (см. Предположение мешок слов ). Вероятность наблюдения гистограммы x определяется как

p (x ∣ C k) = (∑ i x i)! ∏ я х я! ∏ ipkixi {\ displaystyle p (\ mathbf {x} \ mid C_ {k}) = {\ frac {(\ sum _ {i} x_ {i})!} {\ Prod _ {i} x_ {i}! }} \ prod _ {i} {p_ {ki}} ^ {x_ {i}}}{\displaystyle p(\mathbf {x} \mid C_{k})={\frac {(\sum _{i}x_{i})!}{\prod _{i}x_{i}!}}\prod _{i}{p_{ki}}^{x_{i}}}

Полиномиальный наивный байесовский классификатор становится линейным классификатором, когда выражается в пространстве журнала:

журнал ⁡ p (C k ∣ x) ∝ журнал ⁡ (p (C k) ∏ i = 1 npkixi) = log ⁡ p (C k) + ∑ i = 1 nxi ⋅ log ⁡ pki = b + wk ⊤ x {\ displaystyle {\ begin {align} \ log p (C_ {k} \ mid \ mathbf {x}) \ varpropto \ log \ left (p (C_ {k}) \ prod _ {i = 1} ^ {n} {p_ {ki}} ^ {x_ {i}} \ right) \\ = \ log p (C_ {k}) + \ sum _ {i = 1} ^ {n} x_ {i} \ cdot \ log p_ {ki} \\ = b + \ mathbf {w} _ {k} ^ {\ top} \ mathbf {x} \ end {align}}}{\displaystyle {\begin{aligned}\log p(C_{k}\mid \mathbf {x})\varpropto \log \left(p(C_{k})\prod _{i=1}^{n}{p_{ki}}^{x_{i}}\right)\\=\log p(C_{k})+\sum _{i=1}^{n}x_{i}\cdot \log p_{ki}\\=b+\mathbf {w} _{k}^{\top }\mathbf {x} \end{aligned}}}

где b = log ⁡ p (C k) {\ displaystyle b = \ log p (C_ {k})}b=\log p(C_{k})и wki = log ⁡ pki {\ displaystyle w_ {ki} = \ log p_ {ki}}w_{{ki}}=\log p_{{ki}}.

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

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

наивным Бернулли Байесом

В многомерной модели событий Бернулли функции независимы Булевы (двоичные переменные), описывающие входы. Как и полиномиальная модель, эта модель популярна для задач классификации документов, где используются признаки появления двоичных терминов, а не частота терминов. Если xi {\ displaystyle x_ {i}}x_{i}является логическим значением, выражающим появление или отсутствие i-го термина из словаря, то вероятность документа с учетом класса C к {\ displaystyle C_ {k}}C_ {k} определяется выражением

p (x ∣ C k) = ∏ я = 1 npkixi (1 - pki) (1 - xi) {\ displaystyle p (\ mathbf {x} \ mid C_ {k}) = \ prod _ {i = 1} ^ {n} p_ {ki} ^ {x_ {i}} (1-p_ {ki}) ^ {(1-x_ { i})}}{\displaystyle p(\mathbf {x} \mid C_{k})=\prod _{i=1}^{n}p_{ki}^{x_{i}}(1-p_{ki})^{(1-x_{i})}}

где pki {\ displaystyle p_ {ki}}p _ {{ki}} - вероятность класса C k {\ displaystyle C_ {k}}C_ {k} создание термина xi {\ displaystyle x_ {i}}x_{i}. Эта модель событий особенно популярна для классификации коротких текстов. Его преимущество заключается в явном моделировании отсутствия терминов. Обратите внимание, что наивный байесовский классификатор с моделью событий Бернулли - это не то же самое, что полиномиальный классификатор NB с усеченными до единицы значениями частоты.

Оценка параметров с полу-контролем

Имея способ обучить наивный байесовский классификатор на основе помеченных данных, можно построить полу-контролируемый алгоритм обучения, который может учиться на комбинация помеченных и немаркированных данных путем выполнения алгоритма контролируемого обучения в цикле:

Дана коллекция D = L ⊎ U {\ displaystyle D = L \ uplus U}D = L \uplus Uпомеченных образцов L и немаркированные образцы U, начните с обучения наивного байесовского классификатора на L.
До сходимости выполните:
Прогнозирование вероятностей классов P (C ∣ x) {\ displaystyle P ( C \ mid x)}{\displaystyle P(C\mid x)}для всех примеров x в D {\ displaystyle D}D.
Переобучите модель на основе вероятностей (а не меток), предсказанных на предыдущем шаге.

Сходимость определяется на основе улучшения вероятности модели P (D ∣ θ) {\ displaystyle P (D \ mid \ theta)}{\displaystyle P(D\mid \theta)}, где θ {\ displaystyle \ theta }\theta обозначает параметры наивной байесовской модели.

Этот обучающий алгоритм является примером более общего алгоритма максимизации ожидания (EM): шаг прогнозирования внутри цикла - E-шаг EM, а повторное обучение наивный Байес - это M-шаг. Формально алгоритм обоснован предположением, что данные генерируются с помощью модели смеси, а компоненты этой модели смеси являются в точности классами задачи классификации.

Обсуждение

Несмотря на то, что далеко идущие предположения о независимости часто бывают неточными, наивный байесовский классификатор имеет несколько свойств, которые делают его удивительно полезным на практике. В частности, разделение условных распределений признаков классов означает, что каждое распределение может быть независимо оценено как одномерное распределение. Это помогает облегчить проблемы, возникающие из-за проклятия размерности, например, необходимость в наборах данных, которые экспоненциально масштабируются с количеством функций. Хотя наивный метод Байеса часто не может дать хорошую оценку вероятностей правильного класса, это может не быть требованием для многих приложений. Например, наивный байесовский классификатор сделает правильную классификацию правил принятия решений MAP, если правильный класс более вероятен, чем любой другой класс. Это верно независимо от того, является ли оценка вероятности незначительной или даже очень неточной. Таким образом, общий классификатор может быть достаточно устойчивым, чтобы игнорировать серьезные недостатки лежащей в его основе наивной вероятностной модели. Другие причины наблюдаемого успеха наивного байесовского классификатора обсуждаются в цитируемой ниже литературе.

Связь с логистической регрессией

В случае дискретных входных данных (индикатор или частотные характеристики для дискретных событий) наивные байесовские классификаторы образуют генеративно-дискриминативную пару с (мультиномиальным ) логистическая регрессия классификаторы: каждый наивный байесовский классификатор можно рассматривать как способ подбора вероятностной модели, которая оптимизирует совместное правдоподобие p (C, x) {\ displaystyle p (C, \ mathbf {x })}p(C,{\mathbf {x}}), тогда как логистическая регрессия соответствует той же вероятностной модели для оптимизации условного p (C ∣ x) {\ displaystyle p (C \ mid \ mathbf {x})}{\displaystyle p(C\mid \mathbf {x})}.

связь между ними можно увидеть, заметив, что функция принятия решения для наивного Байеса (в двоичном случае) может быть переписана как «класс прогнозирования C 1 {\ displaystyle C_ {1}}C_{1}, если шансы из p (C 1 ∣ x) {\ displaystyle p (C_ {1} \ mid \ mathbf {x})}{\displaystyle p(C_{1}\mid \mathbf {x})}превышают коэффициенты p ( С 2 ∣ Икс) {\ Displaystyle p (C_ {2} \ mid \ mathbf {x})}{\displaystyle p(C_{2}\mid \mathbf {x})}". Выражение этого в лог-пространстве дает:

log ⁡ p (C 1 x) p (C 2 ∣ x) = log ⁡ p (C 1 ∣ x) - log ⁡ p (C 2 ∣ x)>0 { \ displaystyle \ log {\ frac {p (C_ {1} \ mid \ mathbf {x})} {p (C_ {2} \ mid \ mathbf {x})}} = \ log p (C_ {1} \ mid \ mathbf {x}) - \ log p (C_ {2} \ mid \ mathbf {x})>0}{\displaystyle \log {\frac {p(C_{1}\mid \mathbf {x})}{p(C_{2}\mid \mathbf {x})}}=\log p(C_{1}\mid \mathbf {x})-\log p(C_{2}\mid \mathbf {x})>0}

Левая часть этого уравнения - это логарифм-шансы, или logit, количество, предсказанное линейной моделью, лежащей в основе логистической регрессии. Поскольку наивный байесовский метод также является линейной моделью для двух «дискретных» моделей событий, ее можно перепараметризовать как линейную функцию b + w ⊤ x>0 { \ displaystyle b + \ mathbf {w} ^ {\ top} x>0}b+{\mathbf {w}}^{\top }x>0 . Тогда для получения вероятностей нужно применить логистическую функцию к b + w ⊤ x {\ displaystyle b + \ mathbf {w} ^ {\ top} x}b+{\mathbf {w}}^{\top }x, или в случае мультиклассов функция softmax.

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

Примеры

Классификация людей

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

Обучение

Пример обучающего набора ниже.

Человекрост (футы)вес (фунты)размер стопы (дюймы)
мужчина618012
мужчина5,92 (5'11 ")19011
мужчина5,58 (5'7 дюймов)17012
мужчина5,92 (5'11 ")16510
женский51006
розетка5,5 (5 футов 6 дюймов)1508
розетка5,42 (5 футов 5 дюймов)1307
женский5,75 (5'9 ")1509

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

Человексреднее значение (рост)отклонение (рост)среднее значение (вес)отклонение (вес)среднее (размер стопы)отклонение (размер стопы)
мужчина5,8553,5033 × 10176,251,2292 × 1011,259,1667 × 10
женский5,41759,7225 × 10132,55,5833 × 107,51,6667

Допустим, у нас есть эквипроба Таким образом, P (мужской) = P (женский) = 0,5. Это априорное распределение вероятностей может быть основано на наших знаниях о частотах в большей популяции или на частоте в обучающей выборке.

Тестирование

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

Человекрост (футы)вес (фунты)размер стопы (дюймы)
образец61308

Мы хотим определить какая задняя часть больше, мужская или женская. Для классификации как мужчины задняя часть дается как

posterior (мужчина) = P (мужчина) p (рост ∣ мужчина) p (вес ∣ мужчина) p (размер ноги ∣ мужчина) доказательство {\ displaystyle {\ text {posterior (мужской)}} = {\ frac {P ({\ text {male}}) \, p ({\ text {height}} \ mid {\ text {male}}) \, p ({\ text {weight }} \ mid {\ text {male}}) \, p ({\ text {foot size}} \ mid {\ text {male}})} {доказательство}}}{\displaystyle {\text{posterior (male)}}={\frac {P({\text{male}})\,p({\text{height}}\mid {\text{male}})\,p({\text{weight}}\mid {\text{male}})\,p({\text{foot size}}\mid {\text{male}})}{evidence}}}

Для классификации женского пола дается как

задний (женский) = P (женский) p (рост ∣ женский) p (вес ∣ женский) p (размер ноги ∣ женский) свидетельство {\ displaystyle {\ text {posterior (женский)}} = { \ frac {P ({\ text {female}}) \, p ({\ text {height}} \ mid {\ text {female}}) \, p ({\ text {weight}} \ mid {\ text {женщина}}) \, p ({\ text {размер ноги}} \ mid {\ text {female}})} {доказательство}}}{\displaystyle {\text{posterior (female)}}={\frac {P({\text{female}})\,p({\text{height}}\mid {\text{female}})\,p({\text{weight}}\mid {\text{female}})\,p({\text{foot size}}\mid {\text{female}})}{evidence}}}

Свидетельство (также называемое нормализующей константой) может быть вычислено:

доказательства = P (мужчина) p (рост ∣ мужчина) p (вес мужчина) p (размер ноги мужчина) + P (женщина) p (рост женщина) p (вес женщина) p (размер ноги fe мужской) {\ displaystyle {\ begin {align} {\ text {доказательство}} = P ({\ text {male}}) \, p ({\ text {height}} \ mid {\ text {male}}) \, p ({\ text {weight}} \ mid {\ text {male}}) \, p ({\ text {foot size}} \ mid {\ text {male}}) \\ + P ({\ текст {женский}}) \, p ({\ text {height}} \ mid {\ text {female}}) \, p ({\ text {weight}} \ mid {\ text {female}}) \, p ({\ text {размер стопы}} \ mid {\ text {female}}) \ end {align}}}{\displaystyle {\begin{aligned}{\text{evidence}}=P({\text{male}})\,p({\text{height}}\mid {\text{male}})\,p({\text{weight}}\mid {\text{male}})\,p({\text{foot size}}\mid {\text{male}})\\+P({\text{female}})\,p({\text{height}}\mid {\text{female}})\,p({\text{weight}}\mid {\text{female}})\,p({\text{foot size}}\mid {\text{female}})\end{aligned}}}

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

P (мужской) = 0,5 {\ displaystyle P ({\ text {мужской}}) = 0,5}{\displaystyle P({\text{male}})=0.5}
p (рост ∣ мужской) = 1 2 π σ 2 exp ⁡ (- (6 - μ) 2 2 σ 2) ≈ 1,5789 {\ displaystyle p ({\ text {height}} \ mid {\ text {male}}) = {\ frac {1} {\ sqrt {2 \ pi \ sigma ^ {2}}} } \ exp \ left ({\ frac {- (6- \ mu) ^ {2}} {2 \ sigma ^ {2}}} \ right) \ приблизительно 1,5789}{\displaystyle p({\text{height}}\mid {\text{male}})={\frac {1}{\sqrt {2\pi \sigma ^{2}}}}\exp \left({\frac {-(6-\mu)^{2}}{2\sigma ^{2}}}\right)\approx 1.5789},

где μ = 5,855 { \ displaystyle \ mu = 5.855}\mu = 5.855и σ 2 = 3.5033 ⋅ 10 - 2 {\ displaystyle \ sigma ^ {2} = 3.5033 \ cdot 10 ^ {- 2}}\sigma^2 = 3.5033 \cdot 10^{-2}- параметры нормального распределения, предварительно определенные из обучающей выборки. Обратите внимание, что значение больше 1 здесь в порядке - это плотность вероятности, а не вероятность, потому что высота является непрерывной переменной.

п (вес ∣ мужской) = 1 2 π σ 2 ехр ⁡ (- (130 - μ) 2 2 σ 2) = 5,9881 ⋅ 10 - 6 {\ displaystyle p ({\ text {weight}} \ mid { \ text {male}}) = {\ frac {1} {\ sqrt {2 \ pi \ sigma ^ {2}}}} \ exp \ left ({\ frac {- (130- \ mu) ^ {2} } {2 \ sigma ^ {2}}} \ right) = 5.9881 \ cdot 10 ^ {- 6}}{\displaystyle p({\text{weight}}\mid {\text{male}})={\frac {1}{\sqrt {2\pi \sigma ^{2}}}}\exp \left({\frac {-(130-\mu)^{2}}{2\sigma ^{2}}}\right)=5.9881\cdot 10^{-6}}
p (размер стопы ∣ мужской) = 1 2 π σ 2 exp ⁡ (- (8 - μ) 2 2 σ 2) знак равно 1,3112 ⋅ 10 - 3 {\ displaystyle p ({\ text {размер стопы}} \ mid {\ text {male}}) = {\ frac {1} {\ sqrt {2 \ pi \ sigma ^ {2}}}} \ exp \ left ({\ frac {- (8- \ mu) ^ {2}} {2 \ sigma ^ {2}}} \ right) = 1.3112 \ cdot 10 ^ {- 3 }}{\displaystyle p({\text{foot size}}\mid {\text{male}})={\frac {1}{\sqrt {2\pi \sigma ^{2}}}}\exp \left({\frac {-(8-\mu)^{2}}{2\sigma ^{2}}}\right)=1.3112\cdot 10^{-3}}
апостериорный числитель (мужской) = их продукт = 6.1984 ⋅ 10 - 9 {\ displaystyle {\ text {последующий числитель (мужской)}} = {\ text {их продукт}} = 6.1984 \ cdot 10 ^ {- 9}}{\displaystyle {\text{posterior numerator (male)}}={\text{their product}}=6.1984\cdot 10^{-9}}
P (женский) = 0,5 {\ displaystyle P ({\ text {female}}) = 0,5}{\displaystyle P({\text{female}})=0.5}
p (рост ∣ женский) = 2,2346 ⋅ 10 - 1 {\ displaystyle p ({\ text {height}} \ mid {\ text {female}}) = 2.2346 \ cdot 10 ^ {- 1}}{\ displaystyle p ({\ text {height}} \ mid {\ text {female}}) = 2.2346 \ cdot 10 ^ {- 1}}
p (вес ∣ женский) = 1.6789 ⋅ 10-2 {\ displaystyle p ({\ text { weight}} \ mid {\ text {female}}) = 1.6789 \ cdot 10 ^ {- 2}}{\displaystyle p({\text{weight}}\mid {\text{female}})=1.6789\cdot 10^{-2}}
p (размер стопы ∣ fem ale) = 2,8669 ⋅ 10-1 {\ displaystyle p ({\ text {foot size}} \ mid {\ text {female}}) = 2,8669 \ cdot 10 ^ {- 1}}{\ displaystyle p ({\ text {размер стопы}} \ mid {\ text {female}}) = 2,8669 \ cdot 10 ^ {- 1}}
апостериорный числитель (женский) = их продукт = 5,3778 ⋅ 10 - 4 {\ displaystyle {\ text {posterior numerator (female)}} = {\ text {their product}} = 5,3778 \ cdot 10 ^ {- 4}}{\displaystyle {\text{posterior numerator (female)}}={\text{their product}}=5.3778\cdot 10^{-4}}

Поскольку апостериорный числитель больше в случае женщин, мы прогнозируем, что выборка будет женской.

Классификация документов

Вот рабочий пример наивной байесовской классификации для проблемы классификации документов. Рассмотрим проблему классификации документов по их содержимому, например, на спам и не-спам электронные письма. Представьте, что документы взяты из нескольких классов документов, которые можно смоделировать как наборы слов, где (независимая) вероятность того, что i-е слово данного документа встречается в документе из класса C, может быть записана как

p (wi ∣ C) {\ displaystyle p (w_ {i} \ mid C) \,}{\displaystyle p(w_{i}\mid C)\,}

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

Тогда вероятность того, что данный документ D содержит все слова wi { \ displaystyle w_ {i}}w_{i}для класса C:

p (D ∣ C) = ∏ ip (wi ∣ C) {\ displaystyle p (D \ mid C) = \ prod _ {i} p (w_ {i} \ mid C) \,}{\displaystyle p(D\mid C)=\prod _{i}p(w_{i}\mid C)\,}

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

Теперь по определению

p (D ∣ C) = p (D ∩ C) п (C) {\ Displaystyle p (D \ mid C) = {p (D \ cap C) \ over p (C)}}{\ displaystyle p (D \ mid C) = {p (D \ cap C) \ over p (C)}}

и

p (C ∣ D) = p ( D ∩ C) п (D) {\ displaystyle p (C \ mid D) = {p (D \ cap C) \ over p (D)}}{\ displaystyle p (C \ mid D) = {p (D \ cap C) \ над p (D)}}

Теорема Байеса превращает их в формулировку вероятности в терминах правдоподобия.

p (C ∣ D) = p (C) p (D ∣ C) p (D) {\ displaystyle p (C \ mid D) = {\ frac {p (C) \, p (D \ mid C)} {p (D)}}}{\ displaystyle p (C \ mid D) = {\ гидроразрыва {p (C) \, p (D \ mid C)} {p (D)}}}

Предположим на данный момент, что существует только два взаимоисключающих класса, S и ¬S (например, спам, а не спам), так что каждый элемент (электронная почта) находится либо в одном, либо в другом;

п (D ∣ S) знак равно ∏ ip (wi ∣ S) {\ displaystyle p (D \ mid S) = \ prod _ {i} p (w_ {i} \ mid S) \,}{\displaystyle p(D\mid S)=\prod _{i}p(w_{i}\mid S)\,}

и

п (D ∣ ¬ S) = ∏ ip (wi ∣ ¬ S) {\ displaystyle p (D \ mid \ neg S) = \ prod _ {i} p (w_ {i} \ mid \ neg S)) \,}{\displaystyle p(D\mid \neg S)=\prod _{i}p(w_{i}\mid \neg S)\,}

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

p (S ∣ D) = p (S) p (D) ∏ ip (wi ∣ S) {\ displaystyle p (S \ mid D) = {p (S) \ над p (D)} \, \ prod _ {i} p (w_ {i} \ mid S)}{\displaystyle p(S\mid D)={p(S) \over p(D)}\,\prod _{i}p(w_{i}\mid S)}
p (¬ S ∣ D) = p (¬ S) п (D) ∏ ip (wi ∣ ¬ S) {\ displaystyle p (\ neg S \ mid D) = {p (\ neg S) \ over p (D)} \, \ prod _ {i} p (w_ {i} \ mid \ neg S)}{\displaystyle p(\neg S\mid D)={p(\neg S) \over p(D)}\,\prod _{i}p(w_{i}\mid \neg S)}

Деление одного на другое дает:

p (S ∣ D) p (¬ S S D) = p (S) ∏ ip (wi ∣ S) p ( ¬ S) ∏ ip (wi ∣ ¬ S) {\ displaystyle {p (S \ mid D) \ over p (\ neg S \ mid D)} = {p (S) \, \ prod _ {i} p ( w_ {i} \ mid S) \ over p (\ neg S) \, \ prod _ {i} p (w_ {i} \ mid \ neg S)}}{\ displaystyle {p (S \ mid D) \ over p (\ neg S \ mid D)} = {p (S) \, \ prod _ {i} p (w_ {i} \ mid S) \ over p (\ neg S) \, \ prod _ {i} p (w_ {i} \ mid \ neg S)}}

Что может быть преобразовано как:

п (S ∣ D) п (¬ S ∣ D) знак равно п (S) п (¬ S) ∏ ip (wi ∣ S) p (wi ∣ ¬ S) {\ displaystyle {p (S \ mid D) \ over p (\ neg S \ mid D)} = {p (S) \ over p (\ neg S)} \, \ prod _ {i} {p (w_ {i} \ mid S) \ over p (w_ {i} \ mid \ neg S)}}{\ displaystyle {p (S \ mid D) \ over p (\ neg S \ mid D) } = {p (S) \ over p (\ neg S)} \, \ prod _ {i} {p (w_ {i} \ mid S) \ over p (w_ {i} \ mid \ neg S)} }

Таким образом, отношение вероятностей p (S | D) / p (¬S | D) может быть выражено через ряд отношений правдоподобия. Фактическая вероятность p (S | D) может быть легко вычислена из log (p (S | D) / p (¬S | D)) на основании наблюдения, что p (S | D) + p (¬S | D) = 1.

Взяв логарифм всех этих соотношений, получим:

ln ⁡ p (S ∣ D) p (¬ S ∣ D) = ln ⁡ p (S) п (¬ S) + ∑ я пер ⁡ п (wi ∣ S) п (wi ∣ ¬ S) {\ displaystyle \ ln {p (S \ mid D) \ над p (\ neg S \ mid D)} = \ ln {p (S) \ over p (\ neg S)} + \ sum _ {i} \ ln {p (w_ {i} \ mid S) \ over p (w_ {i} \ mid \ neg S) }}{\displaystyle \ln {p(S\mid D) \over p(\neg S\mid D)}=\ln {p(S) \over p(\neg S)}+\sum _{i}\ln {p(w_{i}\mid S) \over p(w_{i}\mid \neg S)}}

(Этот метод «логарифмических отношений правдоподобия » является распространенным методом в статистике. В случае двух взаимоисключающих альтернатив (таких как этот пример) преобразование логарифмического правдоподобия отношение к вероятности принимает форму сигмовидной кривой : подробности см. в logit.)

Наконец, документ можно классифицировать следующим образом. Это спам, если p (S ∣ D)>p (¬ S ∣ D) {\ displaystyle p (S \ mid D)>p (\ neg S \ mid D)}{\displaystyle p(S\mid D)>p ( \ neg S \ mid D)} ( т.е. пер ⁡ п (S ∣ D) п (¬ S ∣ D)>0 {\ displaystyle \ ln {p (S \ mid D) \ over p (\ neg S \ mid D)}>0}{\displaystyle \ln {p(S\mid D) \over p(\neg S\mid D)}>0} ), иначе это не спам.

См. Также
Ссылки
Дополнительная литература
Внешние ссылки
Программное обеспечение
  • Наивные байесовские классификаторы доступны во многих универсальных пакетах машинного обучения и НЛП, включая Apache Mahout, Mallet, NLTK, Orange, scikit-learn и Weka.
  • Числовые библиотеки IMSL Коллекции математических и статистических алгоритмов, доступных на C / C ++, Fortran, Java и C # /. NET. Процедуры интеллектуального анализа данных в библиотеках IMSL включают наивный байесовский классификатор.
  • Интерактивная Microsoft Excel электронная таблица Наивная реализация Байеса с использованием VBA (необходимо включить макросов) с видимым исходным кодом.
  • jBNC - Панель инструментов байесовского сетевого классификатора
  • Набор инструментов статистического распознавания образов для Matlab.
  • ifile - первый свободно доступный (наивный) байесовский фильтр почты / спама
  • NClassifier - NClassifier - это библиотека.NET, которая поддерживает классификацию текста и резюмирование текста. Это порт Classifier4J.
  • Classifier4J - Classifier4J - это библиотека Java, предназначенная для классификации текста. Он поставляется с реализацией байесовского классификатора.
  • JNBC Наивный байесовский классификатор, работающий в памяти или использующий быстрые хранилища значений ключа (MapDB, LevelDB или RocksDB).
  • Blayze - Blayze - это минимальная библиотека JVM для наивной байесовской классификации, написанная на Kotlin.
Последняя правка сделана 2021-05-31 08:33:49
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте