Наивный Байес - вероятностный алгоритм

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

Предварительные требования: Требования: Машинное обучение

Что такое теорема Байеса?

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

Теорема Байеса, объяснение шаг за шагом

У нас есть два завода по производству шин. Завод 1 производит 60 шин в час, а завод 2 - 55 шин в час. 2% произведенных шин имеют дефекты. Завод 1 производит 55% дефектных шин, а завод 2 - 45% дефектных шин.

какова вероятность того, что шина, произведенная на заводе 1, окажется неисправной?

Выкладываем всю информацию.

Теорема Байеса описывает вероятность дефектной шины, изготовленной на заводе1. Это делается на основе предшествующих знаний о шинах, производимых заводом 1, и вероятности того, что завод 1 производит дефектную шину.

давайте разберемся по порядку.

Первое определение вероятности изготовления дефектной шины без учета каких-либо сведений о заводе 1 или 2. Это также называется априорной вероятностью

Определение вероятности или условной вероятности того, что завод 1 изготовит дефектную шину. Также определяется условная вероятность того, что завод 2 изготовит дефектную деталь y

Шаг вложенности - найти предельное правдоподобие

Собираем все вместе для вероятности того, что шина, произведенная на заводе 1, является дефектной, с использованием теоремы Байеса.

Теперь сложим все числа, чтобы получить вероятность согласно теореме Байеса.

Вероятность того, что завод 1 изготовит дефектную шину, составляет 2,1%.

Расчет вероятности производства дефектной шины на заводе 2

давай проверим наши числа

Если у нас есть 1000 шин, то на заводе 1 было произведено 520 шин, а на заводе 2 - 480.

Из 1000 изготовленных покрышек 20 являются дефектными.

Это поможет вам лучше понять теорему Байеса. Всегда помните вместе теорему Байеса и Шину.

Как наивная теорема Байеса применяется в машинном обучении?

у нас есть набор данных с 10 хорошими шинами и 10 дефектными шинами. Основываясь на индексе нагрузки и скорости новой шины, мы хотим предсказать, будет новая шина хорошей или дефектной. Мы будем использовать алгоритм Наивного Байеса для предсказания.

мы вычисляем вероятность дефектной шины с учетом новой точки X. Затем мы вычисляем вероятность хорошей шины для новой точки X. Сравните вероятности хорошей и дефектной шины. Тот, который имеет более высокую вероятность, будет предсказанием для X.

Чтобы вычислить апостериорную вероятность, найдите априорную вероятность, правдоподобие и предельное правдоподобие.

Какова вероятность того, что шина будет хорошей?

Найдите номер хороших точек данных, разделенных на общее количество точки данных

Какова вероятность того, что шина окажется неисправной?

Найдите номер количество дефектных точек данных, разделенное на общее количество точки данных

Какова вероятность того, что случайная точка окажется хорошей?

Какова вероятность того, что случайная точка окажется неисправной?

Какова предельная вероятность того, что новая точка X попадет в круг?

Теперь вставляем числа

P (Хорошо | X) = [(1/10) * (10/20)] / (3/20) = 0,33

P (Неисправный | X) = [(2/10) * (10/20)] / (3/20) = 0,66

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

P (дефект | X) ›P (хорошо | X)

Почему наивный Байес наивен?

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

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

Плюсы и минусы наивного байесовского алгоритма

Плюсы наивного алгоритма Байеса

  • Хорошо работает для больших наборов данных
  • Хорошо подходит для мультиклассовой классификации
  • Вычислительно быстро

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

  • Предположите независимость предсказателя. В реальной жизни такое может случиться не каждый раз.

Различные типы наивного байесовского классификатора

Существует три типа наивного байесовского классификатора.

  • Гауссовский

Все функции непрерывны и имеют нормальное распределение.

Мы вычисляем среднее значение и стандартное отклонение входных характеристик. Это помогает суммировать распределение вместе с вероятностями для каждого класса.

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

  • Бернулли

Входные характеристики являются двоичными.

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

  • Полиномиальный

Лучше всего подходит для классификации с дискретными признаками.

Мультиномиальное распределение обычно требует целочисленного подсчета признаков.

Пример: классификация продуктов по категориям «Электроника», «Одежда» или «Бакалея». Создайте частотное распределение для всех слов, описывающих разные категории продуктов.

Пример наивного Байеса в Python

Dataset - это база данных зоопарка, предсказывающая тип животного.

Мы будем использовать полиномиальный наивный байесовский классификатор, поскольку наши функции дискретны.

Импорт необходимых библиотек

import numpy as np
import pandas as pd
from sklearn.metrics import accuracy_score

Данные сохраняются в папке Jupyter по умолчанию как zoo.csv.

Чтение данных в dataset_1

dataset_1 = pd.read_csv(‘zoo.csv’)

Изучение данных в наборе данных

dataset_1.info()

Печать 2 строк из набора данных для понимания данных

dataset_1.head(2)

Создание входных характеристик X и выходной или целевой переменной Y. Для входной переменной мы отбрасываем животное и тип первого столбца и берем все остальные переменные. Тип - это целевая функция

X= dataset_1.iloc[:,1:17]
Y= dataset_1.iloc[:,-1]

Разделение набора данных_1 на обучающий и тестовый наборы. Набор тестов будет составлять 40%, а обучающий набор - 60% набора данных_1.

from sklearn.cross_validation import train_test_split
X_train, X_test,Y_train, Y_test = train_test_split(X, Y, test_size=0.4)

Создание полиномиального наивного байесовского классификатора

MNB = MultinomialNB()

Подгонка данных обучения к классификатору MNB, а затем прогнозирование для X_test

MNB.fit(X_train, Y_train)
Y_pred =MNB.predict(X_test)

В поисках точности

print(accuracy_score(Y_test, Y_pred))
o/p:0.8048780487804879

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

Теперь вы готовы к самостоятельному изучению наивного байесовского алгоритма.

Хлопайте, если статья вам понравилась!