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

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

Данные

Для демонстрации мы будем использовать набор данных по диабету индейцев Пима. Данные доступны на Kaggle, их можно скачать здесь. Наборы данных содержат девять столбцов: беременность, уровень глюкозы, артериальное давление, толщина кожи, инсулин, индекс массы тела, функция диабета, родословная, возраст и исход. Первые восемь - это функции, а последняя - (Результат) - ярлык. Результат имеет два типа ярлыков: 0 (недиабетический) и 1 (диабетический).

Сначала мы импортируем библиотеку pandas, а затем передадим имя файла в pd.read_csv (), которая вернет фрейм данных.

Чтобы напечатать первые 10 строк данных, мы можем использовать функцию .head (10). Мы можем видеть первые десять строк наборов данных, а также набор данных меток для всего набора данных.

Чтобы просмотреть тип данных в наборе данных, мы можем использовать функцию data.dtpes. Это покажет тип данных для каждого столбца.

Мы видим, что наши данные целочисленные или с плавающей запятой. Чтобы узнать больше о распределении данных, мы будем использовать функцию describe (). Эта функция предоставляет сводную статистику, относящуюся к набору данных о диабете. Эти статистические данные дают некоторое представление о характере распределения данных о диабете.

Разделение данных

Нам нужно разделить столбцы на зависимые (Данные результата или метки) и независимые переменные (Восемь функций). X содержит независимую переменную, а y содержит зависимую переменную. Затем мы разделим эти переменные на набор для обучения и тестирования. Чтобы разделить поезд и тестовый набор, мы импортируем функцию train_test_split.

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

Оценка модели

Чтобы оценить модель, мы проверим точность, используя фактические и прогнозируемые значения. Сначала мы импортируем метрики для расчета точности из sklearn и проверим, как часто классификатор правильно выявлял человека с диабетом или нет.

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

Эти показатели рассчитываются с использованием следующих параметров: Истинно положительный результат / TP (у человека диабет и прогнозируемый диабет), Истинно отрицательный результат / TN (человек не болел диабетом и предположительно не болел диабетом), Ложноположительный / FP (у человека не было диабета, но у него был прогноз) и Ложноотрицательный / FN (у человека был диабет, но у него не было прогноза диабета).

Точность - какой процент прогнозов оказался верным? Точность положительного прогноза.

Точность = TP / (TP + FP).

Напомним - какой процент положительных случаев мы выявили? Доля правильно идентифицированных положительных результатов.

Напомним = TP / (TP + FN)

Оценка F1 - Какой процент положительных прогнозов оказался верным?

Оценка F1 = 2 * (отзыв * точность) / (отзыв + точность)

Заключение

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