Наивный байесовская классификация Бернули в машинном обучении
Наивный байесовский алгоритм Бернулли – одна из разновидностей наивного байесовского алгоритма в машинном обучении, и его очень полезно использовать в двоичном распределении, где метка вывода может присутствовать или отсутствовать. Если вы никогда раньше не использовали этот алгоритм машинного обучения, эта статья для вас. В этой статье я познакомлю вас с наивным байесовским алгоритмом Бернулли в машинном обучении и его реализацией с использованием Python.
Наивный байесовский алгоритм Бернули
Наивный байесовский алгоритм Бернулли – один из вариантов наивного байесовского алгоритма в машинном обучении. Его очень полезно использовать, когда набор данных находится в двоичном распределении, где метка вывода присутствует или отсутствует. Основное преимущество этого алгоритма заключается в том, что он принимает только функции в виде двоичных значений, такие как:
- True или False
- Да или нет
- 0 или 1
Вот еще несколько преимуществ использования этого алгоритма для двоичной классификации:
- Он очень быстр по сравнению с другими алгоритмами классификации.
- Иногда алгоритмы машинного обучения не работают хорошо, если набор данных небольшой, но это не относится к этому алгоритму, поскольку он дает более точные результаты по сравнению с другими алгоритмами классификации в случае небольшого набора данных.
- Быстрый и легко справляется с нерелевантными функциями.
Надеемся, теперь вы все поняли о наивном байесовском алгоритме Бернулли в машинном обучении. В следующем разделе я расскажу вам о его реализации с использованием Python.
Наивный байесовский алгоритм Бернули с использованием Python
Чтобы реализовать этот алгоритм с использованием Python, я буду использовать библиотеку scikit-learn. Сначала я начну с импорта необходимых библиотек Python и набора данных, который нам нужен для реализации этого алгоритма:
import pandas as pd import numpy as np from sklearn.feature_extraction.text import CountVectorizer from sklearn.model_selection import train_test_split from sklearn.naive_bayes import BernoulliNB data = pd.read_csv("https://biconsult.ru/img/datascience-ml-ai/spam.csv", encoding= 'latin-1') data = data[["class", "message"]]
Этот алгоритм ожидает двоичных векторов признаков, хотя класс BernoulliNB из библиотеки scikit-learn имеет параметр binarize, который позволяет нам указать пороговое значение, которое будет использоваться для преобразования функций. Итак, вот как можно реализовать этот алгоритм с помощью Python:
x = np.array(data["message"]) y = np.array(data["class"]) cv = CountVectorizer() x = cv.fit_transform(x) xtrain, xtest, ytrain, ytest = train_test_split(x, y, test_size=0.33, random_state=42) model = BernoulliNB(binarize=0.0) model.fit(xtrain, ytrain) print(model.score(xtest, ytest))
0.9782490483958673
Резюме
Наивный байесовский алгоритм Бернулли – один из вариантов наивного байесовского алгоритма в машинном обучении. Его очень полезно использовать, когда набор данных находится в двоичном распределении, где метка вывода либо присутствует, либо отсутствует. Надеюсь, вам понравилась эта статья о введении в наивный байесовский алгоритм Бернулли в машинном обучении и его реализации с использованием Python. Не стесняйтесь задавать свои вопросы в разделе комментариев ниже.