Наивный байесовский алгоритм в машинном обучении
В машинном обучении Наивный байесовский алгоритм основан на теореме Байеса с наивными допущениями. Он упрощает обучение модели, предполагая, что элементы независимы друг от друга. В этой статье я познакомлю вас с наивным байесовским алгоритмом в машинном обучении и его реализацией с использованием Python.
Наивный байесовский алгоритм
В машинном обучении наивный байесовский алгоритм – это алгоритм классификации, основанный на теореме Байеса. Он называется наивным, потому что в основе этого алгоритма лежат наивные предположения. Вот некоторые из преимуществ этого алгоритма:
- Это очень простой алгоритм для задач классификации по сравнению с другими алгоритмами классификации.
- Это также и очень мощный алгоритм, и это означает, что с его помощью можно быстрее прогнозировать метки по сравнению с другими алгоритмами классификации.
- Еще одним преимуществом его использования является то, что он также может дать лучшие результаты для небольших наборов данных по сравнению с другими алгоритмами.
Как и все другие алгоритмы машинного обучения, он также имеет некоторые недостатки. Один из самых больших недостатков, который иногда имеет значение в вопросах классификации, заключается в том, что наивный байесовский метод очень четко предполагает, что функции независимы друг от друга. Поэтому трудно найти такие наборы данных в реальных задачах, где функции не зависят друг от друга.
Допущения:
Гипотеза наивного байесовского классификатора утверждает, что каждый объект в наборе данных вносит независимый и равный вклад в предсказание меток.
Проще говоря, мы можем сказать, что нет никакой корреляции между функциями и что каждая функция имеет одинаковое значение для формирования модели классификации.
Эти предположения обычно неверны при работе с реальными задачами, но алгоритм все же работает хорошо, поэтому он известен как «наивный» байесовский алгоритм.
Типы:
Существует три типа наивных байесовских классификаторов, которые зависят от распределения набора данных, а именно; Гауссовский, Полиномиальный и Бернулли. Давайте рассмотрим типы наивного байесовского классификатора, прежде чем реализовывать этот алгоритм с помощью языка программирования Python:
- Гауссовский: используется, когда набор данных распределен нормально.
- Полиномиальный: используется, когда набор данных содержит дискретные значения.
- Бернулли: Используется при работе над задачами бинарной классификации.
Наивный байесовский алгоритм с использованием Python
Надеюсь вы узнали много фактов о наивном байесовском алгоритме классификации в машинном обучении. В этом разделе я расскажу, как реализовать это с помощью языка программирования Python. Здесь я буду использовать классический набор данных iris для этой задачи:
from sklearn.naive_bayes import GaussianNB from sklearn.naive_bayes import MultinomialNB from sklearn import datasets from sklearn.metrics import confusion_matrix iris = datasets.load_iris() gnb = GaussianNB() mnb = MultinomialNB() y_pred_gnb = gnb.fit(iris.data, iris.target).predict(iris.data) cnf_matrix_gnb = confusion_matrix(iris.target, y_pred_gnb) print(cnf_matrix_gnb)
Результат:
[[50 0 0]
[ 0 47 3]
[ 0 3 47]]
y_pred_mnb = mnb.fit(iris.data, iris.target).predict(iris.data) cnf_matrix_mnb = confusion_matrix(iris.target, y_pred_mnb) print(cnf_matrix_mnb)
Результат:
[[50 0 0]
[ 0 46 4]
[ 0 3 47]]
Вывод
Вот как можно легко реализовать алгоритм Наивного Байеса с использованием Python для задач классификации в машинном обучении. Вот некоторые из проблем в реальном времени, при которых можно использовать наивный байесовский классификатор:
- Классификация текста
- Обнаружение спама
- Анализ настроений
- Системы рекомендаций
Надеюсь, вам понравилась эта статья о наивном байесовском классификаторе в машинном обучении и его реализации с использованием Python.