Применение метода «наивного Байеса» для решения задачи классификации в Python | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 30 ноября, печатный экземпляр отправим 4 декабря.

Опубликовать статью в журнале

Автор:

Рубрика: Математика

Опубликовано в Молодой учёный №21 (311) май 2020 г.

Дата публикации: 25.05.2020

Статья просмотрена: 371 раз

Библиографическое описание:

Стукалова, М. В. Применение метода «наивного Байеса» для решения задачи классификации в Python / М. В. Стукалова. — Текст : непосредственный // Молодой ученый. — 2020. — № 21 (311). — С. 24-26. — URL: https://moluch.ru/archive/311/70654/ (дата обращения: 16.11.2024).



В данной статье на основе набора данных об донорах приводится пример применения классификации объектов методом «наивного Байеса». При помощи данного метода по признакам объекта, определяется к какой из двух групп он относится (к донорам или не донорам).

Ключевые слова: наивный байес, классификация, python.

Предположим, что есть определенный тестовый объект. У этого объекта есть некоторые признаки, обозначенные как X. Поставлена задача, в которой нужно выяснить, какова вероятность принадлежности этого объекта к определенному классу, который в обучающей выборке обозначен буквой C. Для решения можно воспользоваться методом «наивного Байса», в основе которого лежит теорема Байеса, позволяющая вычислить эту вероятность по простой формуле (1):

(1)

P(c/x) — апостериорная условная вероятность класса C при условии наличия атрибутов X.

P(x) — априорная вероятность появления свойства X.

P(c) — априорная вероятность класса C.

P(x/c) — правдоподобие, вероятность свойства X при классе C.

Теорема Байеса верна при наличии двух предположений относительно переменных:

− все переменные являются одинаково важными;

− все переменные являются статистически независимыми, т. е. значение одной переменной ничего не говорит о значении другой.

Также стоит отметить преимущества и недостатки метода «наивного Байса».

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

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

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

Рассмотрим пример применения метода «наивного Байса». Имеется набор данных о донорах, которые представлены следующим образом рис.1:

Рис. 1. Набор исходных данных

Каждый из столбцов показывает следующую информацию:

− 1 столбик — месяцы с момента последнего пожертвования;

− 2 столбик — общее количество пожертвования;

− 3 столбик — месяцы с первого пожертвования;

− 4 столбик — был ли донором в прошлом месяце (0 — не донор, 1 — донор).

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

Построим модель, используя пакет sklearn.naive_bayes. Получаем выборку классов и сравниваем ее с исходной (см. рис.2):

Рис. 2. Полученная выборка классов

Произведем оценку качества модели прогнозирования, результат показан на рис. 3:

Рис. 3. Результат оценки качества модели прогнозирования

Отсюда можно заметить, что точность классификации равна 0.52, к числу доноров было отнесено 51 объект, к не донором — 49.

Для наглядного представления построим график (см. рис.4):

Рис. 4. Графическое представление результата классификации

Таким образом, была осуществлена классификация объектов и определена группа, к которой они относятся (донор, не донор).

Литература:

  1. Луис Педро Коэльо, Вилли Ричарт. Построение систем машинного обучения на языке Python. 2-е издание / пер. с англ. Слинкин А. А. — М.:ДМК Пресс, 2016. — 302 с.:ил.
Основные термины (генерируются автоматически): донор, признак.


Ключевые слова

классификация, python, наивный байес

Похожие статьи

Сравнительный анализ методов Наивного Байеса и SVM алгоритмов при классификации текстовых документов

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

Реализация алгоритма поиска ближайших объектов с помощью K-D tree

В данной статье разработан алгоритм поиска ближайших объектов с помощью вспомогательной структуры, основанной на K-D tree, а также рассматривается приложение на языке Java, реализующее данный алгоритм.

Применение векторизации слов для нечеткого поиска

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

Метод анализа иерархий для определения лучшей альтернативы

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

Шаблон Excel для проверки законов распределения данных наблюдений по критерию согласия Пирсона

В статье рассматривается процедура создания шаблона Excel и опыт его применения для автоматического построения гистограмм и кривых Гаусса по результатам данных экспериментальных наблюдений с одновременной оценкой согласия по критерию Пирсона в учебно...

Сравнение и разработка методов многокритериального анализа принятия решений

В данной статье рассматриваются методы многокритериального анализа принятия решения и их применение для конкретных данных. Разрабатывается библиотека на языке Python для сравнения методов анализа TOPSIS, ELECTRE I, SAW.

Решение задачи бинарной классификации при помощи свёрточных нейронных сетей с использованием фреймворка Tensorflow

В данной статье рассматривается задача классификации кошек и собак при помощи построения свёрточной нейронной сети, с использование фреймворка Tensorflow.

Парсинг сайтов как метод сбора данных для лингвистических исследований

В статье автор делится кодом на языке программирования Python для сбора лингвистических данных, а также проводит исследование с полученными данными, используя количественный метод анализа.

Определение предпочтительного числа кластеров. Момент остановки метода одиночной связи

Кластерный анализ является одним из основных методов предварительной классификации большого количества информации. Актуальной задачей остаётся определение момента остановки процесса кластеризации. Можно рассмотреть кластерный анализ данных методом «о...

Применение деревьев решений для оценки важности признаков на основе датасета больных раком

В статье автор рассматривает деревья решений как один из методов машинного обучения для решения задачи классификации. Метод применяется на наборе данных пациентов, больных раком шейки матки. С помощью деревьев решений производится оценка важности при...

Похожие статьи

Сравнительный анализ методов Наивного Байеса и SVM алгоритмов при классификации текстовых документов

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

Реализация алгоритма поиска ближайших объектов с помощью K-D tree

В данной статье разработан алгоритм поиска ближайших объектов с помощью вспомогательной структуры, основанной на K-D tree, а также рассматривается приложение на языке Java, реализующее данный алгоритм.

Применение векторизации слов для нечеткого поиска

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

Метод анализа иерархий для определения лучшей альтернативы

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

Шаблон Excel для проверки законов распределения данных наблюдений по критерию согласия Пирсона

В статье рассматривается процедура создания шаблона Excel и опыт его применения для автоматического построения гистограмм и кривых Гаусса по результатам данных экспериментальных наблюдений с одновременной оценкой согласия по критерию Пирсона в учебно...

Сравнение и разработка методов многокритериального анализа принятия решений

В данной статье рассматриваются методы многокритериального анализа принятия решения и их применение для конкретных данных. Разрабатывается библиотека на языке Python для сравнения методов анализа TOPSIS, ELECTRE I, SAW.

Решение задачи бинарной классификации при помощи свёрточных нейронных сетей с использованием фреймворка Tensorflow

В данной статье рассматривается задача классификации кошек и собак при помощи построения свёрточной нейронной сети, с использование фреймворка Tensorflow.

Парсинг сайтов как метод сбора данных для лингвистических исследований

В статье автор делится кодом на языке программирования Python для сбора лингвистических данных, а также проводит исследование с полученными данными, используя количественный метод анализа.

Определение предпочтительного числа кластеров. Момент остановки метода одиночной связи

Кластерный анализ является одним из основных методов предварительной классификации большого количества информации. Актуальной задачей остаётся определение момента остановки процесса кластеризации. Можно рассмотреть кластерный анализ данных методом «о...

Применение деревьев решений для оценки важности признаков на основе датасета больных раком

В статье автор рассматривает деревья решений как один из методов машинного обучения для решения задачи классификации. Метод применяется на наборе данных пациентов, больных раком шейки матки. С помощью деревьев решений производится оценка важности при...

Задать вопрос