Мне трудно понять процесс наивного Байеса, и мне было интересно, может ли кто-нибудь объяснить это простым пошаговым процессом на английском языке. Я понимаю, что сравнение требует времени, которое произошло, как вероятность, но я понятия не имею, как данные обучения связаны с фактическим набором данных.
Пожалуйста, объясните мне, какую роль играет тренировочный набор. Я привожу очень простой пример для фруктов здесь, например, банан
training set---
round-red
round-orange
oblong-yellow
round-red
dataset----
round-red
round-orange
round-red
round-orange
oblong-yellow
round-red
round-orange
oblong-yellow
oblong-yellow
round-red
algorithm
machine-learning
dataset
classification
naivebayes
Jaggerjack
источник
источник
Ответы:
Ваш вопрос, насколько я понимаю, разделен на две части, первая часть - вам нужно лучшее понимание наивного байесовского классификатора, а вторая часть - путаница вокруг тренировочного набора.
В общем, все алгоритмы машинного обучения необходимо обучать для контролируемых задач обучения, таких как классификация, прогнозирование и т. Д., Или для неконтролируемых задач обучения, таких как кластеризация.
На этапе обучения алгоритмы обучаются с определенным входным набором данных (обучающим набором), чтобы в дальнейшем мы могли проверить их на неизвестные входные данные (которые они никогда раньше не видели), для которых они могут классифицировать или прогнозировать и т. Д. (В случае наблюдения) обучение) на основе их обучения. Это то, на чем основано большинство методов машинного обучения, таких как нейронные сети, SVM, байесовские и т. Д.
Таким образом, в общем проекте машинного обучения вы должны разделить входной набор на набор разработки (обучающий набор + тестовый набор) и набор тестов (или оценочный набор). Помните, что ваша основная цель состоит в том, чтобы ваша система изучала и классифицировала новые входные данные, которые они никогда раньше не видели ни в наборе Dev, ни в наборе тестов.
Тестовый набор обычно имеет тот же формат, что и обучающий набор. Однако очень важно, чтобы набор тестов отличался от учебного корпуса: если бы мы просто повторно использовали набор тестов в качестве набора тестов, то модель, которая просто запоминала свой ввод, не научившись обобщать на новые примеры, получала бы обманчиво. высокие результаты.
В целом, например, 70% наших данных можно использовать в качестве учебных наборов. Также не забудьте разделить оригинальный набор на обучающий и тестовый наборы случайным образом .
Теперь я перехожу к вашему другому вопросу о наивном байесовском.
Чтобы продемонстрировать концепцию наивной байесовской классификации, рассмотрим пример, приведенный ниже:
Как указано, объекты могут быть классифицированы как
GREEN
илиRED
. Наша задача состоит в том, чтобы классифицировать новые случаи по мере их поступления, т.е. решать, к какой метке класса они принадлежат, основываясь на существующих в настоящее время объектах.Поскольку
GREEN
объектов в два раза большеRED
, разумно полагать, что новый случай (который еще не наблюдался) имеет в два раза больше шансов,GREEN
чем членствоRED
. В байесовском анализе это убеждение известно как априорная вероятность. Предыдущие вероятности основаны на предыдущем опыте, в данном случае процентGREEN
иRED
объектов, и часто используются для прогнозирования результатов, прежде чем они действительно произойдут.Таким образом, мы можем написать:
Априорная вероятность
GREEN
:number of GREEN objects / total number of objects
Априорная вероятность
RED
:number of RED objects / total number of objects
Поскольку существует всего
60
объектов,40
из которых естьGREEN
и 20RED
, наши предыдущие вероятности для членства в классе:Априорная вероятность для
GREEN
:40 / 60
Априорная вероятность для
RED
:20 / 60
Сформулировав нашу предыдущую вероятность, мы теперь готовы классифицировать новый объект (
WHITE
обведите кружок на диаграмме ниже). Поскольку объекты хорошо сгруппированы, разумно предположить, что чем большеGREEN
(илиRED
) объектов в окрестности X, тем больше вероятность того, что новые случаи принадлежат этому конкретному цвету. Чтобы измерить эту вероятность, мы нарисуем круг вокруг X, который охватывает количество (выбираемое априори) точек независимо от их меток класса. Затем мы вычисляем количество точек в круге, принадлежащих каждой метке класса. Из этого мы рассчитываем вероятность:Из иллюстрации выше ясно, что вероятность
X
данногоGREEN
меньше вероятностиX
данногоRED
, поскольку круг охватывает1
GREEN
объект и3
RED
единицы. Таким образом:Несмотря на то, что предыдущие вероятности показывают , что
X
может принадлежатьGREEN
(при условии , что есть в два раза больше поGREEN
сравнению сRED
) вероятность указана иной; что членство классаX
ISRED
(при условии , что есть ещеRED
объекты в окрестностяхX
чемGREEN
). В байесовском анализе окончательная классификация производится путем объединения обоих источников информации, т. Е. Предшествующего и вероятностного, для формирования апостериорной вероятности с использованием так называемого правила Байеса (названного в честь преподобного Томаса Байеса 1702-1761 гг.).Наконец, мы классифицируем X,
RED
поскольку его членство в классе достигает наибольшей апостериорной вероятности.источник
Я понимаю, что это старый вопрос с устоявшимся ответом. Причина, по которой я публикую сообщения, состоит в том, что принятый ответ имеет много элементов k-NN ( k- ближайших соседей), другой алгоритм.
И k-NN, и NaiveBayes являются алгоритмами классификации. Концептуально, k-NN использует идею «близости» для классификации новых объектов. В k-NN «близость» моделируется такими идеями, как евклидово расстояние или косинусное расстояние. В NaiveBayes, напротив, понятие «вероятность» используется для классификации новых объектов.
Поскольку вопрос касается наивного Байеса, вот как я бы описал идеи и шаги кому-то. Я постараюсь сделать это с как можно меньшим количеством уравнений и простым языком.
Во-первых, условная вероятность и правило Байеса
Прежде чем кто-то сможет понять и оценить нюансы наивного байесовского подхода, ему необходимо сначала узнать пару связанных понятий, а именно идею условной вероятности и правило Байеса. (Если вы знакомы с этими концепциями, перейдите к разделу « Как добраться до Наивного Байеса» )
Условная вероятность на простом английском языке: какова вероятность того, что что-то случится, учитывая, что что-то еще уже произошло.
Предположим, что есть некоторый результат O. И некоторые доказательства E. Исходя из того, как определены эти вероятности: вероятность того, что оба результата O и доказательство E: (вероятность возникновения O) умножается на (вероятность E, учитывая, что О, случилось)
Один пример для понимания условной вероятности:
Допустим, у нас есть коллекция сенаторов США. Сенаторы могут быть демократами или республиканцами. Они также мужчины или женщины.
Если мы выбираем одного сенатора совершенно случайно, какова вероятность того, что этот человек является женщиной-демократом? Условная вероятность может помочь нам ответить на этот вопрос.
Вероятность (демократ и сенатор-женщина) = Вероятность (сенатор-демократ), умноженная на условную вероятность быть женщиной, учитывая, что они демократы.
Мы можем вычислить то же самое, обратным способом:
Понимание правила Байеса
Концептуально это путь от P (Доказательство | Известный результат) к P (Результат | Известное доказательство). Часто мы знаем, как часто наблюдаются какие-то конкретные доказательства, учитывая известный результат . Мы должны использовать этот известный факт, чтобы вычислить обратное, чтобы вычислить вероятность того, что этот результат произойдет , учитывая доказательства.
P (Исходя из того, что мы знаем некоторые доказательства) = P (Подтверждение, что мы знаем результат), умноженные на вероятности (результат), масштабированные по P (Доказательства)
Классический пример для понимания правила Байеса:
Теперь все это было просто преамбулой, чтобы добраться до Наивного Байеса.
Как добраться до Наивного Байеса
До сих пор мы говорили только об одном доказательстве. В действительности, мы должны предсказать результат, учитывая многочисленные доказательства. В этом случае математика становится очень сложной. Чтобы обойти эту сложность, один из подходов состоит в том, чтобы «разъединить» несколько улик и рассматривать каждую из улик как независимую. Именно поэтому этот подход называется наивным байесовским.
Многие люди решили запомнить это как:
Обратите внимание на несколько вещей об этом уравнении:
base rates
и они являются способом масштабирования наших предсказанных вероятностей.Как применить NaiveBayes, чтобы предсказать результат?
Просто запустите формулу выше для каждого возможного результата. Так как мы пытаемся классифицировать , каждый результат называется a,
class
иclass label.
наша задача состоит в том, чтобы посмотреть на доказательства, выяснить, какова вероятность того, что это будет тот или иной класс, и назначить метку для каждого объекта. Опять же, мы используем очень простой подход: класс с наибольшей вероятностью объявляется «победителем», и метка этого класса присваивается этой комбинации доказательств.Пример фруктов
Давайте попробуем это на примере, чтобы улучшить наше понимание: ФП попросил пример идентификации «фрукт».
Допустим, у нас есть данные о 1000 фруктах. Это банан , апельсин или другой фрукт . Мы знаем 3 характеристики о каждом фрукте:
Это наш «тренировочный набор». Мы будем использовать это, чтобы предсказать тип любого нового фрукта, с которым мы сталкиваемся.
Мы можем заранее рассчитать многое о нашей коллекции фруктов.
Так называемые «априорные» вероятности. (Если бы мы не знали ни одного из атрибутов фруктов, это было бы нашим предположением.) Это наши
base rates.
Вероятность "Доказательства"
Вероятность "вероятности"
Учитывая Фрукт, как классифицировать это?
Допустим, нам дали свойства неизвестного фрукта и попросили его классифицировать. Нам говорят, что плод длинный, сладкий и желтый. Это банан? Это апельсин? Или это какой-то другой фрукт?
Мы можем просто запустить числа для каждого из 3 результатов, один за другим. Затем мы выбираем наибольшую вероятность и «классифицируем» наш неизвестный фрукт как принадлежащий к классу, который имел наибольшую вероятность, основываясь на наших предыдущих доказательствах (наш тренировочный набор из 1000 фруктов):
Подавляющим большинством (
0.252 >> 0.01875
) мы классифицируем этот сладкий / длинный / желтый фрукт как вероятный банан.Почему Байесовский классификатор так популярен?
Посмотрите, к чему это в конечном итоге сводится. Просто подсчет и умножение. Мы можем предварительно вычислить все эти термины, и поэтому классификация становится простой, быстрой и эффективной.
Let z = 1 / P(evidence).
Теперь мы быстро вычислим следующие три величины.Назначьте метку класса в зависимости от того, какое число больше, и все готово.
Несмотря на название, Naive Bayes оказывается превосходным в определенных приложениях. Классификация текста - это одна из областей, где она действительно сияет.
Надеюсь, что это помогает понять концепции, лежащие в основе наивного байесовского алгоритма.
источник
Рам Нарасимхан очень хорошо объяснил эту концепцию. Ниже приведено альтернативное объяснение на примере кода Наивного Байеса в действии.
Он использует пример проблемы из этой книги на стр. 351
Это набор данных, который мы будем использовать в приведенном выше наборе данных, если мы дадим гипотеза = тогда какова вероятность того, что он купит или не купит компьютер. Код ниже точно отвечает на этот вопрос. Просто создайте файл с именем named и вставьте следующий контент.
{"Age":'<=30', "Income":"medium", "Student":'yes' , "Creadit_Rating":'fair'}
new_dataset.csv
Вот код комментария, объясняющий все, что мы здесь делаем! [Python]
вывод:
Надеюсь, это поможет лучше понять проблему
мир
источник
Наивный Байес: Наивный Байес находится под наблюдением машинного обучения, которое использовалось для классификации наборов данных. Он используется для прогнозирования вещей на основе его предыдущих знаний и предположений о независимости.
Они называют это наивным, потому что это предположения (предполагающие, что все функции в наборе данных одинаково важны и независимы) действительно оптимистичны и редко верны в большинстве реальных приложений.
Это алгоритм классификации, который принимает решение для неизвестного набора данных. Он основан на теореме Байеса, которая описывает вероятность события, основываясь на его предварительных знаниях.
На диаграмме ниже показано, как работает наивный Байес.
Формула для предсказания NB:
Как использовать наивный байесовский алгоритм?
Давайте рассмотрим пример того, как работает NB
Шаг 1: Сначала мы узнаем вероятность таблицы, которая показывает вероятность да или нет на диаграмме ниже. Шаг 2: Найти апостериорную вероятность каждого класса.
Для получения дополнительной ссылки обратитесь к этим блогам.
См. GitHub Repository Naive-Bayes-Примеры
источник
Я пытаюсь объяснить правило Байеса на примере.
Какова вероятность того, что случайный человек, выбранный из общества, является курильщиком?
Вы можете ответить 10%.
Теперь, что, если человек мужчина и 15 лет?
Это не может быть 60%, хотя мы знаем, что процент курильщиков был очень низким. Это также не может быть меньше 10%. 15 или 20% являются лучшими догадками.
Фактически, мы пытаемся обновить первоначальное предположение новыми доказательствами (
P(smoker) vs. P(smoker | evidence)
). Правило Байеса - это способ связать эти две вероятности.Каждое доказательство может увеличить или уменьшить этот шанс. Например, тот факт, что он мужчина, может увеличить вероятность, при условии, что этот процент (будучи мужчиной) среди некурящих меньше. Другими словами, быть мужчиной должно быть хорошим показателем того, чтобы быть курильщиком, а не некурящим.
Мы можем показать этот вклад и по-другому. Для каждого признака вы можете сравнить общность (вероятность) этого признака в данных условиях с его общностью. (
P(f | x) vs. P(f))
.Например, если мы знаем, что 90% курильщиков - это мужчины, недостаточно сказать, является ли мужчина мужчиной или нет. Например, если вероятность быть мужчиной в обществе также составляет 90%, то знание того, что кто-то является мужчиной, нам не поможет
((90% / 90%) = 1
. Но если мужчины вносят вклад в 40% общества, а в 90% курят, то знание того, что кто-то является мужчиной, повышает вероятность того, что он станет курильщиком.(90% / 40%) = 2.25
, поэтому увеличивает первоначальное предположение (10%) на 2,25, в результате чего получается 22,5%.Однако, если вероятность быть мужчиной в обществе составляет 95%, то независимо от того, что процент мужчин среди курящих высок (90%)! доказательство того, что кто-то является мужчиной, снижает вероятность того, что он станет курильщиком!
(90% / 95%) = 0.95)
,Итак, мы имеем:
Обратите внимание, что в этой формуле мы предположили, что быть мужчиной и быть моложе 20 лет являются независимыми характеристиками, поэтому мы умножили их, это означает, что знание того, что кто-то моложе 20 лет, никак не влияет на предположение, что он мужчина или женщина. Но это может быть не так, например, может быть, большинство подростков в обществе мужчины ...
Чтобы использовать эту формулу в классификаторе
Классификатор дан с некоторыми особенностями (быть мужчиной и быть моложе 20 лет), и он должен решить, курит он или нет (это два класса). Он использует вышеприведенную формулу для расчета вероятности каждого класса по признаку (признакам) и назначает вход с наибольшей вероятностью. Чтобы обеспечить необходимые вероятности (90%, 10%, 80% ...), он использует обучающий набор. Например, он подсчитывает количество людей в обучающей группе, которые курят, и обнаруживает, что они вносят 10% выборки. Затем для курильщиков проверяется, сколько из них являются мужчинами или женщинами .... сколько людей старше 20 лет или младше 20 лет ... Другими словами, оно пытается построить распределение вероятностей для каждого класса на основе обучения. данные.
источник