Введение

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

Показатель

  1. Что такое наивный байесовский классификатор
  2. Что такое TF-IDF: преобразование текста в векторное пространство
  3. Напишите наивный байесовский классификатор на Python с помощью Scikit-learn
  4. Весь код
  5. Вывод

1. Что такое наивный байесовский классификатор

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

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

  • Категоризация новостных статей
  • Фильтрация спама
  • Анализ позитивных/негативных настроений

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

Оценка параметров и модели событий: wikipedia

Особенности наивного байеса

Наивный байесовский классификатор относится к категории обучение с учителем и основан на теореме Бейса. Оба фактора составляют основу наивного байесовского классификатора.

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

www.kaggle.com

Теорема Байеса — это математическая теория, основанная на условной вероятности для расчета вероятности события. Он вычисляет вероятность события на основе предшествующей вероятности события. Другими словами, он показывает, насколько предшествующая вероятность события влияет на конечную вероятность.

2. Что такое TF-IDF

TF-IDF (термин частота-обратная частота документа) — один из основных методов извлечения признаков из текстовых данных. Во-первых, сам текст не может быть просчитан так, чтобы его нужно было преобразовать в векторное пространство.

TF-IDF вычисляет важность слов в каждом документе и сокращает стоп-слова, такие как «is», «the», «a» и т. д. TF-IDF извлекает характерные слова, например, «политика» в документе политической темы и « python» в технологической теме. TF-IDF преобразует текст в векторное пространство с характерными словами.

3. Напишите наивный байесовский классификатор на Python с помощью Scikit-learn

В этой главе я пишу наивный байесовский классификатор на Python с помощью scikit-learn. В этом примере мы классифицируем новостные статьи по определенной категории. Шаги кодирования приведены ниже.

  1. Сбор данных
    Подготовка обучающего набора данных из sklearn.dataset
  2. Преобразование текстовых данных в векторное пространство
    Создание словаря и преобразование текстовых данных в векторное пространство.
  3. Моделирование и обучение
    Создание наивного байесовского классификатора и обучение
  4. Выполнение и проверка выходных данных
    Классификация тестовых данных и распечатка результатов.

3–1 Сбор данных: набор данных из sklearn.dataset

Первый шаг — получить образец обучающего набора данных из sklearn.dataset. Scikit-learn предоставляет образец и реалистичный набор данных для эксперимента. Ниже исходный код показывает, что содержат наборы данных и как их получить.

3–2 Преобразование текста в вектор: векторизация TF-IDF

Следующим шагом является создание векторизованных данных из текстовых данных. Этот шаг также разделен на два шага: создание матрицы подсчета слов и преобразование из матрицы подсчета в векторное пространство. Scikit-learn предоставляет классы CountVectorizer и TfidfTransformer для преобразования.

3–3 Моделирование и обучение: создание модели наивного классификатора Байеса.

Третий шаг — создать модель наивного байесовского классификатора и обучить данные. Scikit-learn предоставляет класс sklearn.naive_bayes.MultinomialNB для классификации текста. Ниже код показывает, как создать модель и обучить данные.

* Как я упоминал ранее, для классификации текста следует использовать полиномиальный наивный байес (MultinominalNB).

3–4 Выполнение классификации и проверка результатов

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

Весь код

Ниже весь код. Спасибо за scikit-learn, мы можем написать наивный байесовский классификатор в нескольких простых кодах. Если писать весь код без scikit-learn, нам нужно написать в десять раз больше.

Заключение

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

Во-первых, я описал, что такое наивный байесовский классификатор. Во второй главе объясняется, как использовать TF-IDF для преобразования текстовых данных в вычислимые векторные данные. Наконец, я шаг за шагом написал код на Python с помощью sciki-learn и обнаружил, что Python позволяет нам реализовать наивный байесовский классификатор в нескольких строках кода. Я надеюсь, что статья будет полезна для вас, и надеюсь, что вы смогли практически понять, что такое наивный байес. Спасибо.