Пример наивного байесовского классификатора

Machine LearningMachine LearningBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии мы рассмотрим пример использования классификаторов наивного Байеса из библиотеки scikit-learn в Python. Классификаторы наивного Байеса - это набор алгоритмов обучения с учителем, которые обычно используются для задач классификации. Эти классификаторы основаны на применении теоремы Байеса с предположением условной независимости между каждой парой признаков при заданном значении переменной класса.

В этом примере мы будем использовать гауссовский наивный байесовский классификатор из scikit-learn для классификации датасета iris, который является популярным датасетом в машинном обучении. Цель - предсказать вид ириса по размерам его лепестков и чашелистика.

Советы по работе с ВМ

После запуска ВМ кликните в левом верхнем углу, чтобы переключиться на вкладку Notebook и приступить к практике с использованием Jupyter Notebook.

Иногда может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы столкнетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) sklearn(("Sklearn")) -.-> sklearn/UtilitiesandDatasetsGroup(["Utilities and Datasets"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/naive_bayes("Naive Bayes") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/model_selection("Model Selection") sklearn/UtilitiesandDatasetsGroup -.-> sklearn/datasets("Datasets") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/naive_bayes -.-> lab-71106{{"Пример наивного байесовского классификатора"}} sklearn/model_selection -.-> lab-71106{{"Пример наивного байесовского классификатора"}} sklearn/datasets -.-> lab-71106{{"Пример наивного байесовского классификатора"}} ml/sklearn -.-> lab-71106{{"Пример наивного байесовского классификатора"}} end

Импортируем библиотеки и загружаем датасет

Начнем с импорта необходимых библиотек и загрузки датасета iris. Мы будем использовать функцию load_iris из модуля sklearn.datasets для загрузки датасета.

from sklearn.datasets import load_iris

## Load the iris dataset
iris = load_iris()
X = iris.data  ## Features
y = iris.target  ## Target variable

print("Number of samples:", X.shape[0])
print("Number of features:", X.shape[1])
print("Number of classes:", len(set(y)))

Разделим датасет на тренировочный и тестовый наборы

Далее мы разделим датасет на тренировочный и тестовые наборы с использованием функции train_test_split из модуля sklearn.model_selection. Тренировочный набор будет использоваться для обучения наивного байесовского классификатора, а тестовый набор - для оценки его производительности.

from sklearn.model_selection import train_test_split

## Split the dataset into training and test sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

Обучение и оценка гауссовского наивного байесовского классификатора

Теперь мы обучим гауссовский наивный байесовский классификатор на тренировочном наборе и оценим его производительность на тестовом наборе. Мы будем использовать класс GaussianNB из модуля sklearn.naive_bayes.

from sklearn.naive_bayes import GaussianNB

## Create a Gaussian Naive Bayes classifier
gnb = GaussianNB()

## Train the classifier
gnb.fit(X_train, y_train)

## Predict the target variable for the test set
y_pred = gnb.predict(X_test)

## Calculate the accuracy of the classifier
accuracy = (y_pred == y_test).sum() / len(y_test)
print("Accuracy:", accuracy)

Интерпретация результатов

Основываясь на полученной точности, мы можем интерпретировать производительность гауссовского наивного байесовского классификатора на датасете iris. Точность представляет собой долю правильно предсказанных значений целевой переменной в тестовом наборе. В этом случае точность представляет собой долю правильно классифицированных видов ирисных цветов.

Резюме

В этом практическом занятии мы рассмотрели пример использования гауссовского наивного байесовского классификатора из scikit - learn. Мы загрузили датасет iris, разделили его на тренировочный и тестовые наборы, обучили классификатор на тренировочном наборе и оценили его производительность на тестовом наборе. Полученная точность показывает, насколько хорошо классификатор справился с предсказанием видов ирисных цветов. Наивные байесовские классификаторы - это простые, но эффективные алгоритмы для задач классификации и широко используются в различных реальных приложениях.