Добро пожаловать на ступеньку контролируемого обучения. Сначала мы обсудим небольшой сценарий, который ляжет в основу будущего обсуждения. Далее мы обсудим математику апостериорной вероятности, также известной как теорема Байеса. Это основная часть наивного байесовского классификатора. Наконец, мы исследуем библиотеку sklearn для python и напишем небольшой код на наивном байесовском классификаторе на Python для проблемы, которую мы обсуждаем в начале.
Эта глава разделена на две части. Первая часть описывает, как работает наивный байесовский классификатор. Вторая часть состоит из упражнения по программированию на Python с использованием библиотеки sklearn, которая предоставляет наивные байесовские классификаторы. Позже мы обсудим точность программы, которую мы тренируем.
Представьте двух людей, Алису и Боба, чьи слова вы знаете. Чтобы не усложнять пример, предположим, что Алиса чаще использует комбинацию из трех слов [любовь, великолепно, замечательно], а Боб часто использует слова [собака, мяч замечательно].
Предположим, вы получили анонимное электронное письмо, отправителем которого может быть Алиса или Боб. Допустим, в электронном письме содержится «Я люблю пляжный песок. Кроме того, закат на пляже предлагает прекрасный вид »
Сможете угадать, кто мог быть отправитель?
Что ж, если вы догадались, что это Алиса, вы правы. Возможно, вы рассуждаете о том, что содержание содержит слова «любовь», «великий» и «замечательный», которые использует Алиса.
Теперь давайте добавим комбинацию и вероятность к имеющимся у нас данным. Предположим, Алиса и Боб используют следующие слова с вероятностями, как показано ниже. Теперь вы можете угадать, кто отправил контент: «Прекрасная любовь».
Что вы думаете?
Если вы догадались, что это Боб, вы правы. Если вы знаете математику, то хорошо для вас. Если нет, не волнуйтесь, мы сделаем это в следующем разделе. Здесь мы применяем теорему Байеса.
Теорема Байеса
Он сообщает нам, как часто происходит A при условии, что происходит B, записывается как P (A | B), когда мы знаем, как часто происходит B при условии, что происходит A , написано P (B | A), и насколько вероятно, что A и B существуют сами по себе.
- P (A | B) - это «Вероятность A при B», вероятность A при условии, что B происходит.
- P (A) - вероятность A
- P (B | A) - это «Вероятность B при A», вероятность B при условии, что A происходит.
- P (B) - вероятность того, что B
Когда P (огонь) означает, как часто возникает огонь, а P (дым) означает, как часто мы видим дым, тогда:
P (Огонь | Дым) означает, как часто возникает огонь, когда мы видим дым.
P (Smoke | Fire) означает, как часто мы видим дым при пожаре.
Таким образом, формула говорит нам «вперед», когда мы знаем «назад» (или наоборот)
Пример: если опасные пожары случаются редко (1%), но дым довольно распространен (10%) из-за фабрик, а 90% опасных пожаров вызывают дым, то:
P (Огонь | Дым) = P (Огонь) P (Дым | Огонь) = 1% x 90% = 9% P (Дым) 10%
В этом случае в 9% случаев дым означает опасный пожар.
Теперь вы можете применить это к нашему примеру с Алисой и Бобом?
Наивный байесовский классификатор
Наивный байесовский классификатор вычисляет вероятности для каждого фактора (здесь, в случае электронного письма, это Алиса и Боб для данной входной функции). Затем он выбирает результат с наибольшей вероятностью.
Этот классификатор предполагает, что функции (в этом случае мы использовали слова в качестве входных данных) независимы. Отсюда и слово наивный. Даже при этом это мощный алгоритм, используемый для
- Прогнозирование в реальном времени
- Классификация текста / фильтрация спама
- Система рекомендаций
Итак, математически мы можем написать как
Если у нас есть некое событие E и тестовые акторы x1, x2, x3 и т. Д.
Сначала мы вычисляем P (x1 | E), P (x2 | E)… [читается как вероятность x1 данного события E], а затем выбираем тестового субъекта x с максимальным значением вероятности.
Надеюсь, это хорошо объясняет, что такое наивный байесовский классификатор. В следующей части мы будем использовать sklearn в Python и реализовать наивный байесовский классификатор для маркировки электронной почты как спама или ветчины. Прокомментируйте в разделе ниже, если вам нужна помощь или у вас есть предложения.
Кодируйте и внедряйте классификацию электронной почты на спам и не спам здесь (часть 2 главы 1).
О машине опорных векторов читайте в главе 2 здесь.