Наивный Байес

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

Это 18-й день моего участия в августовском испытании обновлений. Узнайте подробности события:Испытание августовского обновления

Наивный Байес

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

конкретный процесс

  1. дать тренировочные данные
  2. Классификация данных
  • Классовые вероятности и условные вероятности

Байесовский принцип, байесовская классификация и наивный байесовский принцип

Принцип Байеса — самая большая концепция — решает проблему «обратной вероятности» в теории вероятностей.
Байесовский классификатор - разработан на основе байесовского принципа
Наивный байесовский классификатор — простейший байесовский классификатор

Как работает наивная байесовская классификация

Случай дискретных данных

image.png

Случай с непрерывными данными

  1. Предполагая нормальное распределение
  2. Найти среднее значение и дисперсию. Получить функцию плотности вероятности. Подставить значение для расчета значения функции плотности точки.
    • Преобразовывается в дискретное распределение данных, непосредственно по формуле

Наивный байесовский рабочий процесс

  1. этап подготовки

Определение атрибутов объекта - Надлежащее разделение каждого атрибута объекта - Ручная классификация части данных - Формирование обучающих выборок

  1. фаза обучения

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

  1. этап применения

Вход: классификатор, новые данные Вывод: результат классификации новых данных.

Найти IF-IDF

Создание класса TfidfVectorizer

  1. Создайте класс TfidfVectorizer
  2. список подгонки - fit_transform - текстовая матрица
  3. вывод
    1. Все уникальные слова — get_feature_names()
    2. Соответствующее значение идентификатора - word__
    3. значение tfdf для каждого слова - toarray()

Классифицировать документы

  1. этап подготовки
    1. сегментация документа
      1. Английский - нлтк
        1. word_tokenize(текст) - токенизировать
        2. pos_tag() - пометить слово как часть речи
      2. Китайский - цзеба
    2. Загрузить стоп-слова
    3. Рассчитать веса слов
      Класс tfidfVectorizer - fit_transform fit - получить функции функционального пространства TF-IDF
      tf = TfidVectorizer(stop_words, max_df) features = tf.fit_transform(train_contents)
  2. стадия классификации
    1. Наивный байесовский генеративный классификатор
      train_features, train_labels — clf — классификаторы, автоматически генерирующие пространства признаков v-symbol и соответствующие классы
      from sklearn.naive_bayes import MultinomialNB
      clf = MultionmialNB(alpha=0.001).fit(train_features, train_labels)

    2. Классификатор применяется к тестовому набору

    3. Рассчитать точность классификации точность_оценка в метриках
      from sklearn import metrics
      print metrics.accuracy_score(test_labels, predicted_labels)