Основы машинного обучения — позвольте вам изучить наивные байесовские модели

алгоритм

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

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

P(A|B)=\frac{P(A)P(B|A)}{P(B)}

мы кладемP(A)иP(B)Что касается априорной вероятности, то формула Байеса представляет собой формулу вычисления апостериорной вероятности через априорную и условную вероятности. этоОсновная причина, мы исследуем причины возникновения событий на основе произошедших событий. На этом принципе основана наивная байесовская модель, принцип которой очень прост, он может быть таким же простым, как предложение: когда выборка может принадлежать нескольким категориям, мы просто выбираем ту, которая имеет наибольшую вероятность.

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

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


Априорная вероятность


Априорную вероятность на самом деле очень легко понять, давайте проигнорируем в ней слово «последовательность». Грубо говоря, на самом деле априорная вероятность — это вероятность, которую мы можем рассчитать заранее, проводя эксперименты. Например, подбрасывание монеты орлом вверх, например, встреча с красным светом на перекрестке или, например, завтра будет дождь.

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


Апостериорная вероятность


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

Например, можно измерить вероятность того, что студент сдаст экзамен. Можно ли тестировать одного студента для нескольких экзаменов или выполнять статистику по группам студентов. Но если предположить, что учащиеся могут выбрать просмотр или игру перед экзаменом, то, очевидно, повторение повысит вероятность того, что студенты сдадут экзамен, а участие в играх может уменьшиться или не сильно измениться, мы не знаем. Предположим, мы знаем, что Сяо Мин сдал экзамен, и хотим знать, просматривал ли он его перед экзаменом.Апостериорная вероятность.

Логически это полная противоположность условной вероятности. Условная вероятность — это вероятность того, что событие B произойдет при условии, что событие A произойдет, а апостериорная вероятность — это вероятность того, что событие A произойдет, если мы уже знаем, что событие B произошло.


Оценка вероятности


Это тоже плохое слово, и во всех статьях, знакомящих с байесовским подходом, это слово не упоминается. Но несколько статей могут ясно объяснить эту концепцию.

Скорее всего на английскомlikelihood, семантически это ивероятность(вероятность) очень близко, ее можно различить только при переводе. Представление двух в математических формулах также очень близко, и оба могут быть записаны какP(x|\theta).

Среди них вероятность того, что параметры уже известны\theta, вероятность наступления события x. Вероятность фокусируется на параметрах, когда происходит событие А.\theta. Тогда, естественно, функция оценки правдоподобия является функцией оценки параметров посредством распределения вероятностей. Оценку максимального правдоподобия легко понять, то есть найти наиболее вероятные параметры, когда произойдет событие А.\thetaзначение .

Для очень простого примера предположим, что у нас есть непрозрачный черный ящик с несколькими черными и белыми шарами. Но мы не знаем, сколько черных шаров и сколько белых шаров. Чтобы исследовать это соотношение, мы вынули из коробки 10 шаров.Предполагая, что конечным результатом будет 7 черных и 3 белых, какова пропорция черных шаров в коробке?

Этот вопрос не может быть проще, разве это не вопрос для учеников начальной школы? Поскольку в 10 случаях выпало 7 черных шаров, очевидно, что вероятность выпадения черных шаров должна быть 70%.

На первый взгляд проблем конечно нет, но на самом деле это не так. из-за СШАЭкспериментальные результаты, полученные в ходе эксперимента, не представляют саму вероятность, Проще говоря, 70% черных шаров в ящике могут оказаться 7 черными и 3 белыми, и 50% черных шаров в ящике тоже могут оказаться таким результатом.Как мы можем судить, что черные шары в ящике должны быть быть 70%?

На этот раз он будет использованФункция правдоподобия.


Функция правдоподобия


Мы только что подставили эксперимент с черным и белым шаром в приведенную выше формулу оценки правдоподобия, и окончательный результат эксперимента определен, то есть событие х. Что нам нужно, а именно пропорция черных шаров, так это параметр\theta. Поскольку у нас есть замещающий эксперимент, вероятность вынуть черный шар каждый раз постоянна, согласнобиномиальное распределениемы можем написать вероятность события X, происходящее:

P(x|\theta)=\theta^7*(1-\theta)^3=f(\theta)

Эта формула является нашей функцией правдоподобия, также называемой функцией вероятности. Он отражает вероятность того, что событие x произойдет при различных параметрах. Все, что нам нужно сделать, это вычислить из этой функцииf(\theta)максимальное время\thetaзначение .

Этот процесс расчета очень прост, мы имеем\thetaискать вывод, затем приравнять производную к 0, а затем найти соответствующую\thetaзначение . Конечный результат, конечно\theta=0.7Уравнение времени имеет максимальное значение.

Мы также можем поставитьf(\theta)Нарисуйте изображение функции и интуитивно почувствуйте распределение вероятностей.

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 1, 100)
y = np.power(x, 7) * np.power(1 - x, 3)

plt.plot(x, y)
plt.xlabel('value of theta')
plt.ylabel('value of f(theta)')
plt.show()

Это также доказывает, что наше интуитивное чувство верно.Дело не в том, что вероятность вынуть черные шары 70%, а в том, что доля черных шаров в ящике составляет 70%, а вероятность вынуть черные шары 70%..


Детали модели


Далее я перешел к сердцу, мы все еще сначала видим формулу Байеса:

P(A|B)=\frac{P(A)P(B|A)}{P(B)}

Затем мы изменим формулу, предположим, что набор всех событий, связанных с событием B, равен C. очевидноA \in C, предполагая, что в множестве C имеется m событий, они записываются так:C_1, C_2, \cdots, C_m.

Так

P(B)=\sum_{i=1}^mP(B|C_i)P(C_i)

Когда мы ищем причину события B, мы будем искать все наборы параметров C, которые могут привести к этому результату, а затем выбирать в качестве результата тот, который имеет наибольшую вероятность.

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

мы предполагаем, чтоx=\{a_1, a_2, \cdots, a_n\}, где каждый a представляет собой признак одного измерения выборки x. Точно так же у нас будет коллекция категорийC=\{y_1, y_2, \cdots, y_m\}, где каждый y представляет определенный класс. Все, что нам нужно сделать, это рассчитать вероятность того, что x принадлежит каждой категории y, и выбрать ту, которая имеет наибольшую вероятность, в качестве окончательного результата классификации.

Запишем формулу вероятности по формуле Байеса:

P(y_i|x)=\frac{P(x|y_i)P(y_i)}{P(x)}

вP(x)является константой для всехy_iостается прежним, поэтому его можно игнорировать, нам нужно сосредоточиться только на молекулярной части.

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

Это предположение очень наивно, но оно также очень важно Без этого предположения вероятность здесь была бы настолько сложной, что мы едва ли можем ее вычислить. Именно из-за этого наивного предположения она и называетсяНаивная байесовская модель, поэтому и получил свое название. Конечно, английский — это наивный байес, поэтому теоретически его можно назвать наивным байесом.

При таком допущении это легко сделать, просто расширим формулу:

P(y_i|x)=P(y_i)P(a_1|y_i)P(a_2|y_i)\cdots P(a_n|y_i)=P(y_i)\prod_{j=1}^nP(a_j|y_i)

вP(y_i)является априорной вероятностью, мы можем получить ее с помощью экспериментов или других методов, таких какP(a_j|y_i)Его нельзя получить напрямую, и для его расчета необходимо использовать статистические методы.

еслиa_jдискретные значения, очень простые, нам нужна только статистикаy_iКогда событие происходит, каждыйa_jможет быть достигнут. Предположим, мы экспериментируем несколько раз,y_iВсего произошло M раз,a_jпроисходит N раз, то очевидно:

P(a_j|y_i)=\frac{N}{M}

Чтобы предотвратить M=0, мы можем добавить параметр сглаживания как к числителю, так и к знаменателю, поэтому окончательный результат будет записан как:

P(a_j|y_i)=\frac{N+\alpha}{M+\beta}

но еслиa_jЧто делать, если это непрерывное значение? Если это непрерывное значение, оно может принимать бесконечное множество значений. Очевидно, что мы не можем вычислить вероятность для каждого его значения. Также невозможно собрать столько образцов. Что нам делать в этой ситуации?

Неважно, является ли значение непрерывным, мы можем предположить, что распределение переменной удовлетворяет нормальному распределению. этоКривая нормального распределения на самом деле является распределением вероятностей этой переменной..

Используя приведенный выше рисунок в качестве примера, мы наблюдаем значение совокупного процента внизу. На самом деле он представляет собой площадь области между положением x и отрицательной бесконечностью. Диапазон значений этой области 0-1, мы можем использовать этоЗначение площади для представления вероятности f(x). На самом деле предполагается, что переменные подчиняются нормальному распределению различных размерностей, что на самом делеМодель гауссовой смеси(GMM) думаю, я остановлюсь здесь, чтобы не слишком расширяться.

То есть, если это дискретное значение, то мы представляем вероятность путем вычисления пропорции, а если это непрерывное значение, то вероятность рассчитывается путем вычисления распределения вероятностей по нормальному распределению. Таким образом, мы можем пройти nP(a_j|y_i)умножается наP(y_i|x)Наконец, мы сравниваем соответствующие вероятности всех y и выбираем наибольшую из них в качестве результата классификации.

Вышеупомянутый процесс полностью правильный, но все же есть небольшая проблема.

P(a_j|y_i)является числом с плавающей запятой и, скорее всего, очень маленьким, и нам нужно вычислить произведение n чисел с плавающей запятой. Из-за ошибки точности, когда результат непрерывного умножения меньше точности, невозможно сравнить величину двух вероятностей.

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

\begin{eqnarray} P(y_i|x) &= P(y_i)P(a_1|y_i)P(a_2|y_i)\cdots P(a_n|y_i) &= P(y_i)\prod_{j=1}^nP(a_j|y_i) \\ \log(P(y_i|x)) &= \log(P(y_i))+  \log(P(a_1|y_i)) + \cdots + log(P(a_n|y_i)) &= \log(P(y_i|x)) + \sum_{i=1}^n \log(P(a_i|y_i)) \end{eqnarray}

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

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

Нелегко писать больше, если вы что-то получите, попроситеобрати внимание на