Руководство для новичков по освоению самого быстрого и простого алгоритма классификации

Что мне делать: бить первым или бить первым? Умм ... Поле кажется влажным, Погода солнечная, Давай сначала поиграем. Возможно, вы пережили такую ​​ситуацию, когда вы принимаете решения на основе каких-то независимых условий. Давайте возьмем пример с крикетом. Предположим, вы выиграли жеребьевку и теперь, будучи капитаном, вам нужно решить, бить ли первым или бить. Вы примете это решение на основе некоторых условий, таких как погода, условия поля, влажность, ветерок, и предположите, что все эти условия независимо друг от друга влияют на наше решение о том, подавать ли первым или бить первым. Если поле свежее и с меньшим количеством травы, погода ясная, меньше влажности и слабый ветерок, то это определенно означает, что вам следует бить первым и получить более высокий балл на доске. В противном случае, если поле мокрое и с трещинами, пасмурная погода, легкий ветерок, то, как капитан, вы отправитесь в боулинг. Поэтому мы делаем «наивные» предположения, что все эти условия независимо влияют на наше решение как капитана. Это то, что делает человек, а теперь давайте изучим алгоритм, который помогает машине работать аналогичным образом.

Давайте разберемся с термином «наивный байесовский классификатор» и разберемся с ним.

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

Давайте поймем термин «байесовский», наиболее важный вероятностный подход к проблеме. Теорема Байеса предоставляет способ вычисления апостериорной вероятности на основе правдоподобия, предельной и априорной вероятности. Что означают все эти термины, мы разберемся дальше. Один из самых простых способов выбора наиболее вероятной гипотезы с учетом имеющихся у нас данных, которые мы можем использовать в качестве наших предварительных знаний о проблеме. Теорема Байеса предоставляет способ, которым мы можем вычислить вероятность гипотезы с учетом наших предварительных знаний. Например, в примере с крикетом нам нужно было вычислить P (Bat или Bowl | Погода, поле, влажность… ..)

Теперь что касается формулы, мы предполагаем, что «H» означает гипотезу, а «E» - свидетельство или просто предсказание по сравнению с заданными данными.

  • P (H | E) - вероятность гипотезы H с учетом данных E. Это называется апостериорной вероятностью.
  • P (E | H) - это вероятность данных E при условии, что гипотеза H верна.
  • P (H) - вероятность того, что гипотеза H верна (независимо от данных). Это называется априорной вероятностью H.
  • P (E) - вероятность данных (независимо от гипотезы).

И последний термин «классификатор» - это просто дискретный ответ модели. По сравнению с регрессором, в котором у нас есть непрерывный отклик. Лучшим примером является анализ тональности, в котором мы классифицируем текст на отдельные ответы, такие как положительные, отрицательные или нейтральные.

В целом мы делаем наивные предположения, что все предикторы могут быть вычислены независимо, чтобы дать окончательный результат, поэтому мы вычисляем апостериорную вероятность гипотезы с каждым предиктором независимо по теореме Байеса. Эта процедура дополнительно помогает в достижении конечной задачи, то есть классификации. Это контролируемый алгоритм обучения. Далее это устанавливает и объясняет термин «наивный байесовский классификатор».

Математика, лежащая в основе алгоритма:

Вернемся к исходному примеру, чтобы понять, как работает наивный байесовский метод.

Скажите, если поле для крикета мокрое, какова вероятность первого удара?

P (ватин первым | мокрый) = P (мокрый | ватин первым) * P (ватин первым) / P (мокрый)

Выше у меня есть тренировочный набор данных о погоде и соответствующая целевая переменная «Ватин первым?». Теперь нам нужно определить, будут ли игроки выбирать биту или чашу в зависимости от погодных условий. Чтобы выполнить это, выполните следующие действия.

  1. Преобразуйте набор данных в таблицу частот.

2. Создайте таблицу правдоподобия, найдя вероятности.

Точно так же рассчитайте таблицу правдоподобия для всех остальных предсказателей.

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

Итак, если мы выведем это для погоды, тогда,

P (Да | Солнечно) = P (Солнечно | Да) * P (Да) / P (Солнечно)

P (Солнечно | Да) = 3/10 = 0,3, P (Солнечно) = 5/14 = 0,36, P (Да) = 10/14 = 0,64

Теперь P (Да | Солнечный) = 0,33 * 0,64 / 0,36 = 0,60, что имеет более высокую вероятность.

Следовательно, капитан, вероятно, решит бить первым, если будет солнечно.

Следовательно, если мы хотим прогнозировать больше на основе погоды, влажности и различных атрибутов, тогда

P (Да | погода, высота звука, влажность…) = P (Да | погода) * P (Да | Шаг) * P (влажность) ……

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

Точно так же мы можем использовать наивный байесовский классификатор для классификации текста.

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

Пример: P (Автор Шекспир | «ABHOR», «ABSOLUTE», «COIL»)

Это то, что мы рассчитаем, чтобы получить возможность того, что данный текст был написан Шекспиром, потому что abhor, absolute и coil - одни из наиболее часто используемых Шекспиром слов.

Типы наивных байесовских моделей.

  1. Гауссовская модель: используется в простой классификации с нормально распределенными данными.
  2. Полиномиальная модель. Она в основном используется в задачах классификации текста. С помощью испытаний Бернулли мы можем узнать, как часто слово встречается в заданном тексте.
  3. Модель Бернулли. Биномиальная модель полезна, если ваши векторы признаков являются двоичными. Используется просто для двух дискретных переменных.

Зачем использовать наивный байесовский классификатор?

  1. Легко и быстро предсказать класс набора тестовых данных. Он также хорошо работает при прогнозировании нескольких классов.
  2. Иногда работает лучше, чем логистическая регрессия. Используйте оба алгоритма и выберите наиболее точный.
  3. Более эффективно работает с проблемами, когда у нас есть сотни точек данных, но мало переменных.
  4. Известно, что он очень хорошо обрабатывает как непрерывные, так и дискретные данные.
  5. Если предположение независимости выполняется, это приводит к наиболее эффективному алгоритму классификации.

Где использовать наивный байесовский классификатор?

  1. Текстовая классификация
  2. Анализ настроений
  3. Фильтрация спама
  4. Разделение новостей на политические, научные, технологические, криминальные и т. Д.
  5. Системы рекомендаций

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

Вот простая реализация Gaussian Naive Bayes на Python с помощью Scikit-learn. Мы использовали пример решения ватина или боулинга с особенностями погоды и влажности. Сначала мы обозначим эти функции, обучим их и будем использовать обученную модель для получения прогнозируемых результатов.

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

Важные ссылки:

  1. Наивный байесовский метод с Scikit-Learn: реализация со встроенной функцией Gaussian Naive Bayes of Scikit-Learn.
  2. Наивная байесовская документация

Теперь вы можете понять заднюю сцену категоризации новостей и спроектировать ее. Загрузите свой любимый огромный набор данных с несколькими переменными и попробуйте! Насколько точен наивный байесовский метод? Проверь это. С этого момента все, что вам нужно, - это практика.