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

Содержание:
1. Необходимое условие для классификатора NB
2. Интуиция
3. Предположения
4. Как работает наивный байесовский классификатор?
5. Сглаживание Лапласа
6. Вероятности журнала
7. Смещение - компромисс между отклонениями
8. Сложность времени и места
9. Интерпретируемость и важность характеристик
10. Резюме NB

  1. Предпосылки NB:
    Наивный байесовский классификатор - это вероятностная модель, основанная на основных концепциях теоремы Байеса о вероятности. Таким образом, знание теоремы Байеса является преимуществом для ее глубокого понимания.

2.Интуиция:
Предположим, мы хотим предсказать метку класса точки запроса, то есть либо как класс A, либо как класс B, на основе 2 признаков, то есть x и y. Распределение данных показано ниже.

Теперь новая точка запроса (Xq) возникает с двумя новыми значениями заданных характеристик (x и y), и мы хотим предсказать, принадлежит ли она классу A или классу B.
Как это сделать, используя теорему Байеса? < br /> Здесь мы вычисляем апостериорную вероятность для каждого класса и относим новую точку (Xq) к классу, в котором апостериорная вероятность максимальна.
Решающее правило можно записать как,
if (вероятность (класс A / xq) ›вероятность (класс B / xq):
тогда он принадлежит классу A, иначе он принадлежит классу B.

3. Предположения:
Прилагательное "наивное" исходит из предположения, что объекты в наборе данных независимы и одинаково важны. Из-за этого допущения классификатор называется наивным.
Простым языком мы можем сказать, что наличие одной конкретной функции не влияет на другую функцию, а также все функции одинаково важны, что совершенно невозможно в реальных данных.

4. Как работает классификатор NB?
Давайте разберемся с этим на приведенном выше рисунке 1. На рисунке мы могли видеть две функции x, y и точки данных, которые классифицируются по двум классам A и B.
мы упомянули условие выше, чтобы указать, к какому классу он принадлежит, но как вычислить эти значения вероятности ??, А вот и наша теорема Байеса для спасения.
вероятность (класс A / xq) = (вероятность (xq / class A) * вероятность (класс A)
аналогично и для класса B. Здесь знаменатель не принимается во внимание, потому что при вычислении обеих вероятностей для классов A и B это постоянное значение.
Вероятность (xq / класс A) = вероятность (x / класс A) * вероятность (y / класс A), поскольку x и y являются характеристиками.

Это могло поразить вас, если вы новичок в алгоритме Наивного Байеса, поэтому давайте рассмотрим пример и решим его для лучшего понимания.
Пример:
Data Corpus = [«отличная игра», «выборы был окончен »,« очень четкий матч »,« чистая, но забытая игра »,« это были близкие выборы »] и там соответствующие ярлыки классов: [« спорт »,« неспортивный »,« спорт »,« спорт », «Неспортивный»]
отличная игра - - - - - - - - - спорт
выборы закончились - - - - - - неспортивный
очень четкий матч - - - - - - - -спортивная
чистая, но легко забываемая игра - - - - спорт
это были близкие выборы - - - - - - - неспортивный
Всего приговор, соответствующий спорту = 3
Всего предложений, соответствующих неспортивным предметам = 2
Всего уникальных слов = 14
Теперь наша задача - отнести точку запроса («очень близкая игра») к одной из меток классов, упомянутых выше, то есть либо спортивный или неспортивный класс.
Шаг 1 -
найдите 1) p (спорт / «очень близкая игра»)
2) p (non spo rts / «очень близкая игра»)
Как найти вероятность?
P (очень близкая игра) = p (a) * p (очень) * p (близко) * p (игра) < br /> P (очень близкая игра / спорт) = = p (a / sports) * p (очень / спорт) * p (близкая игра / спорт) * p (игра / спорт) * p (спорт)
аналогично для неспортивных:
P (очень близкая игра / неспортивная игра) = p (a / неспортивная) * p (очень / неспортивная) * p (близкая / неспортивная) * p (игровая / неспортивная) ) * p (не спорт)
1) p (очень близкая игра / спорт)
p (a / sports) = 2/3 p (очень / спорт) = 1/3 p (близко / спорт) = 0/3 = 0 p (игра / спорт) = 2/3 p (спорт) = 3/5
поскольку «а» присутствует в 2 предложениях из 3 вероятностей = 2/3 виды спорта соответствующие предложения и то же самое для всех слов
Давайте продолжим это в следующем содержании нашей таблицы.

5. Сглаживание Лапласа:
В приведенных выше вероятностях вы можете видеть, что p (close / sports) = 0/3, поскольку close не присутствует ни разу во всех предложениях, соответствующих спорту. Итак, 0, но в соответствии с нашим процессом мы умножаем вероятности вероятности каждой функции, то есть слово, что весь продукт становится равным нулю, что неверно. Тогда что мы можем сделать ????
Этот вопрос привел нас к следующему содержанию, то есть к Лапласу Сглаживание ……

Где мы добавляем альфа (α) к числителю и знаменателю в значении вероятности, чтобы оно не было равно нулю, но добавление некоторой альфы только к словам, которых нет в обучающих данных, не имеет смысла, поэтому мы добавляем альфа к каждому слову при вычислении вероятностей правдоподобия. Этот процесс называется сглаживанием Лапласа.
Вероятность слова «a» = (2 + α) / (3 + 2 * α) 2 в знаменателе соответствует количеству различных меток классов, которые имеет точка запроса быть классифицированным. Это может измениться в зависимости от проблемы. То же самое для всех слов.
Здесь α - гиперпараметр, который должен быть настроен, и правильный α должен быть выбран путем проверки многих альфа и соответствующей точности.
А пока в этом случае пусть α = 1 так
p (a / спорт) = 3/5, p (очень / спорт) = 2/5, p (близко / спорт) = 1/5 p (игра / спорт) = 4/5, p (спорт) = 3/5
так p (очень близкая игра / спорт) = 3 * 2 * 1 * 4 * 3 / (5 * 5 * 5 * 5 * 5) = 0,023
аналогичным образом рассчитывается вероятность для неспортивных игроков.
p (очень близкая игра / неспортивная игра) = 2 * 1 * 2 * 1 * 2 / (4 * 4 * 4 * 4 * 5) = 0,00625
поскольку p (очень близкая игра / спорт) больше, точка запроса принадлежит метке класса «спорт».

6. Журнал вероятностей:

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

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

7. Смещение - дисперсия Компромисс:
Случай 1: Если α = 0 (высокая дисперсия)
Учтите,
В этом случае даже для очень редкого слова мы связаны с некоторой вероятностью но, с другой стороны, для другого слова, которое никогда не встречается на этапе обучения, вероятность внезапно становится равной нулю.
Это означает, что наша модель переоснащается. Потому что для очень небольшого изменения данных обучения существует очень большая разница в модели.
Итак, это случай большой дисперсии.

Случай 2: Если α очень большое значение (высокое смещение)
Как мы видели ранее, если α, то вероятности правдоподобия ≈ ½
Учтите,
Если у нас есть сбалансированные данные, то априорные значения для каждого класса также становится таким же. Тогда в этом случае апостериорная вероятность для каждого класса примерно одинакова.
Итак, это случай большого смещения, потому что апостериорные вероятности одинаковы.

8. Сложность во времени и пространстве:
Этап обучения: на этапе обучения мы вычисляем априорные значения и вероятности правдоподобия для каждого класса. Вычисление априорных значений - это операция с постоянным временем, т. Е. O (n)
Если у нас есть m функций, мы вычисляем m вероятностей для 1 класса. Тогда для класса 'c' m * c вероятностей правдоподобия «n» точек данных.
∴ T (n) = O (nmc)
Для пространственной сложности мы сохраняем только вероятности для классов 'c', < br /> ∴ S (n) = O (mc)

Фаза тестирования: поскольку все вероятности правдоподобия уже вычислены на этапе обучения, во время оценки нам просто нужно выполнить поиск, что легко сделать.
∴ S (n) = O (mc)

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

10. Резюме NB:
NB делает предположение, что функции условно независимы. Теоретически, если предположение не выполняется, производительность NB ухудшается. Но исследование показало, что даже при наличии некоторой зависимости функций NB дает лучший результат.
Однако сильное нарушение этого предположения приведет к снижению производительности NB.
NB - это эталонный / базовый уровень. алгоритм для задачи классификации текста.
NB широко используется, когда данные содержат категориальные признаки, но мало используются в числовых характеристиках.
NB имеет очень хорошую интерпретируемость и важность характеристик.
NB очень много времени и места эффективный, который можно использовать для приложений с малой задержкой.
Сглаживание Лапласа должно выполняться всегда.