Наивный Байес - это алгоритм классификации, который использует теорему Байеса о вероятности для предсказания неизвестного класса. Он использует вероятность, чтобы решить, к какому классу принадлежит контрольная точка. Наивный Байес - чисто статистическая модель. Этот алгоритм называется наивным из-за предположения, что функции / атрибуты в наборах данных взаимно независимы.
В этой статье мы будем использовать наивный байесовский классификатор, чтобы предсказать, есть ли у пациентов в наборе данных диабет или нет.
Данные
Для демонстрации мы будем использовать набор данных по диабету индейцев Пима. Данные доступны на 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.