Начало машинного обучения в качестве новичка может оказаться довольно пугающим, но сложным, и в этом блоге я хотел бы пролить свет на один из таких блестящих алгоритмов.
На первый взгляд, вам может даже показаться неприятным неправильное произношение самого имени, потому что я, конечно, так и сделал :). Чтобы понять байесовскую модель, предварительным условием является полное понимание вероятности более высокого уровня и основ арифметики. , алгебра.
Наивный байесовский алгоритм — это очень популярный алгоритм классификации, который в основном используется для получения базовой точности набора данных.
Модель Байеса - это метод классификации, основанный на подходящей реализации теоремы/формулы Байеса, предположении о независимости предикторов. Проще говоря, наивный байесовский классификатор предполагает, что наличие определенного признака в классе не связано с наличием какого-либо признака. другая особенность.
например, автомобилем считается Mercedes G-Wagon, если он черного цвета, грубо сложен как джип, имеет дизельный двигатель типа L6,длину 4606 мм, ширину 1976 мм и колесная база 2850 мм. Даже если мы предположим, что эти характеристики каким-то образом коррелируют друг с другом, мы должны сделать вывод, что они независимо влияют на вероятность того, что автомобиль действительно является G-универсалом.
Поскольку эти вспомогательные функции не являются конкретными, мы говорим, что они являются наивными предположениями, отсюда и название «Наивный» Байес.
Теперь двигаемся дальше, что на самом деле представляет собой формула Байеса?
Эта формула была разработана и написана уважаемым Томасом Байесом, известным статистиком. Это арифметическая формула для определения условной вероятности. Условная вероятность — это вероятность того, что результат произойдет, исходя из того, что произошел предыдущий результат.
Самая упрощенная форма записи формулы такова:
где два события, A и B, теорема Байеса позволяет вычислить p(A|B) (вероятность того, что событие A произошло, при условии, что тест B был положительным) из p(B|A) (вероятность того, что тест B произошло, если произошло событие А).
Это может немного напрягать мозг, поскольку вы работаете в обратном направлении.
Теорему Байеса можно вывести из определения условной вероятности,
где P (пересечение A с B) — это вероятность того, что и A, и B верны.
Используя дерево решений, мы можем вычислить следующие условные вероятности:
P(Запустить проект|Увеличение стоимости акций) = 0,6 × 0,75 = 0,45
P(Не запускать|Увеличение цен на акции)= 0,4 × 0,30 = 0,12
Согласно правилу полной вероятности вероятность роста цены акции равна:
P(Цены акций растут) = P(Запуск проекта|Цены акций растут) + P(Не запускать|Цены акций растут)
= 0.45 + 0.12 = 0.57
Таким образом, существует 57% вероятность того, что цена акций компании вырастет.
Теорема Байеса имеет несколько форм. Вы не встретите ни одну из этих других форм в элементарном классе статистики. Разные формы могут использоваться для разных целей. Например, в одной из версий используется то, что Рудольф Карнап назвал отношением вероятности. Правило отношения вероятностей гласит, что любое событие должно быть умножено на этот коэффициент PR(H,E)=PE(H)/P(H). Это дает вероятность события, зависящую от E. Правило отношения шансов очень похоже на отношение вероятностей, но отношение правдоподобия делит долю истинно положительных результатов теста на долю его ложноположительных результатов. Формальное определение правила отношения шансов: OR(H,E)=PH,(E)/P~H(E).
Байес в действии
Правило Байеса — это способ перейти от P(X|Y), известного из обучающего набора данных, к нахождению P(Y|X).
Для этого мы заменим A и B в приведенной выше формуле на признак X и ответ Y.
Для наблюдений в тестовых или оценочных данных X будет известен, а Y неизвестен. И для каждой строки тестового набора данных вы хотите вычислить вероятность Y при условии, что X уже произошло.
Что произойдет, если Y имеет более 2 категорий? мы вычисляем вероятность каждого класса Y и позволяем наибольшему выигрышу.
Правило Байеса дает формулу для вероятности Y при данном X. Но в реальных задачах у вас обычно есть несколько переменных X.
Когда имеется несколько переменных x, мы упрощаем это, предполагая, что X независимы, поэтому мы преобразуем приведенное выше уравнение Байеса в наивное байесовское уравнение.
где k — соответствующий класс Y.
Кроме того, наивный байесовский подход можно понять на таких примерах, как модель обучения для моделей погоды/игры и классификация фруктов в корреляции с моделью признаков.
Идея состоит в том, чтобы вычислить 3 вероятности, то есть вероятность того, что фрукт будет бананом, апельсином или другим. Тот тип фруктов, который получает наибольшую вероятность, выигрывает.
Мы можем легко понять, что 50% фруктов — это бананы, 30% апельсины и 20% другие фрукты.
P(Y=банан) = 500/1000 = 0,50
P(Y=оранжевый) = 300/1000 = 0,30
P(Y=Другое) = 200/1000 = 0,20
- Из 500 бананов 400 (0,8) длинных, 350 (0,7) сладких и 450 (0,9) желтых
- Из 300 апельсинов 0 длинных, 150 (0,5) сладких и 300 (1) желтых.
- Из оставшихся 200 плодов 100 (0,5) длинных, 150 (0,75) сладких и 50 (0,25) желтых.
Итак, допустим, нам даны характеристики фрукта, и нам нужно предсказать класс. Если нам говорят, что дополнительный фрукт длинный, сладкий и желтый, мы можем классифицировать его, используя следующую формулу и подставляя значения для каждого результата, будь то банан, апельсин или другой фрукт. Выигрывает тот, у кого больше шансов (счетов).
Оценка Лапласа
Значение P(оранжевый | длинный, сладкий и желтый) в приведенном выше примере было равно нулю, потому что P(длинный | оранжевый) было равно нулю. То есть в обучающих данных не было «длинных» апельсинов.
Это имеет смысл, но когда у вас есть модель со многими функциями, вся вероятность станет равной нулю, потому что значение одной из функций равно нулю. Чтобы избежать этого, мы увеличиваем количество переменной с нулем до небольшого значения (обычно 1) в числителе, чтобы общая вероятность не стала равной нулю.
Большинство реализаций наивной байесовской модели принимают эту или эквивалентную форму коррекции в качестве параметра.
Гауссовский наивный байесовский метод
Итак, теперь для этого случая X является непрерывной переменной.
Если мы предположим, что X следует определенному распределению, то вы можете подключить функцию плотности вероятности этого распределения, чтобы вычислить вероятность правдоподобия.
Если вы предполагаете, что X следуют гауссовскому распределению, которое довольно распространено, мы заменяем соответствующую плотность вероятности на нормальное распределение и называем это гауссовым наивным байесовским распределением. Вам нужно только среднее значение и дисперсия X, чтобы вычислить эту формулу.
где mu и sigma — среднее значение и дисперсия непрерывного X, вычисленного для данного класса «c» (из Y).
Чтобы сделать функции более похожими на гауссовские, вы можете подумать о преобразовании переменной, используя для этого что-то вроде Box-Cox.
Реализация наивного байесовского подхода с использованием Python
Для получения более подробных сведений о коде посетите мой репозиторий и отдайте должное Gaurav Chauhan в этой подробной заметке.
Преимущества
- Легко и быстро предсказать класс набора тестовых данных. Он также хорошо работает в прогнозировании нескольких классов.
- Когда предположение о независимости выполняется, наивный байесовский классификатор работает лучше по сравнению с другими моделями, такими как логистическая регрессия, и вам требуется меньше обучающих данных.
- Он хорошо работает в случае категориальных входных переменных по сравнению с числовыми переменными. Для числовой переменной предполагается нормальное распределение.
Недостатки
- Если категориальная переменная имеет категорию (в тестовом наборе данных), которая не наблюдалась в обучающем наборе данных, тогда модель присвоит 0 (нулевую) вероятность и не сможет сделать прогноз. Это часто называют «нулевой частотой». Чтобы решить эту проблему, мы можем использовать технику сглаживания. Один из простейших методов сглаживания называется оценкой Лапласа.
- С другой стороны, наивный байесовский метод также известен как плохой оценщик, поэтому к выходным данным по вероятности, получаемым от predict_proba, не следует относиться слишком серьезно.
- Еще одним ограничением наивного байесовского метода является предположение о независимых предикторах. В реальной жизни почти невозможно получить набор полностью независимых предикторов.
Приложения наивных байесовских алгоритмов
- Прогнозирование в реальном времени.Наивный байесовский алгоритм — это быстро обучаемый классификатор, который, несомненно, работает быстро. Таким образом, его можно использовать для прогнозирования в режиме реального времени.
- Многоклассовое прогнозирование.Этот алгоритм также хорошо известен функцией мультиклассового прогнозирования. Здесь мы можем предсказать вероятность нескольких классов целевой переменной.
- Классификация текста/Фильтрация спама/Анализ тональности. Наивные байесовские классификаторы, в основном используемые для классификации текстов (из-за лучшего результата в задачах с несколькими классами и правила независимости), имеют более высокий уровень успеха по сравнению с другими алгоритмами. В результате он широко используется в фильтрации спама (выявление спама по электронной почте) и анализе настроений (в анализе социальных сетей для выявления положительных и отрицательных настроений клиентов).
- Система рекомендаций.Наивный байесовский классификатор и совместная фильтрация вместе создают систему рекомендаций, которая использует методы машинного обучения и интеллектуального анализа данных для фильтрации невидимой информации и прогнозирования того, понравится ли пользователю данный ресурс или нет.
Я был бы искренне рад, если бы мой блог был полезен для вас, чтобы получить более глубокое понимание наивного байеса. Если вы склонны к реализации, ниже приведены следующие наборы данных Naive Bayes, обязательно запишите свои оценки прогноза;).
Поздравляем, вы дошли до конца.
Известные источники:
Как-наивный-байес-алгоритм-работает-с-примером-и-полным-кодом