Это 18-й день моего участия в августовском испытании обновлений. Узнайте подробности события:Испытание августовского обновления
Наивный Байес
Условные вероятности для статистических свойств
Предположим, что атрибуты независимы друг от друга
Классификация текста — фильтрация спама, прогнозирование настроений, системы рекомендаций
конкретный процесс
- дать тренировочные данные
- Классификация данных
- Классовые вероятности и условные вероятности
Байесовский принцип, байесовская классификация и наивный байесовский принцип
Принцип Байеса — самая большая концепция — решает проблему «обратной вероятности» в теории вероятностей.
Байесовский классификатор - разработан на основе байесовского принципа
Наивный байесовский классификатор — простейший байесовский классификатор
Как работает наивная байесовская классификация
Случай дискретных данных
Случай с непрерывными данными
- Предполагая нормальное распределение
- Найти среднее значение и дисперсию. Получить функцию плотности вероятности. Подставить значение для расчета значения функции плотности точки.
-
- Преобразовывается в дискретное распределение данных, непосредственно по формуле
Наивный байесовский рабочий процесс
- этап подготовки
Определение атрибутов объекта - Надлежащее разделение каждого атрибута объекта - Ручная классификация части данных - Формирование обучающих выборок
- фаза обучения
Создание классификаторов - вычисление частоты каждой категории в обучающих выборках и условная вероятность каждого раздела атрибута объекта для каждой категории
Входные данные: атрибуты функций, обучающие образцы.
вывод: классификатор
- этап применения
Вход: классификатор, новые данные Вывод: результат классификации новых данных.
Найти IF-IDF
Создание класса TfidfVectorizer
- Создайте класс TfidfVectorizer
- список подгонки - fit_transform - текстовая матрица
- вывод
- Все уникальные слова — get_feature_names()
- Соответствующее значение идентификатора - word__
- значение tfdf для каждого слова - toarray()
Классифицировать документы
- этап подготовки
- сегментация документа
- Английский - нлтк
- word_tokenize(текст) - токенизировать
- pos_tag() - пометить слово как часть речи
- Китайский - цзеба
- Английский - нлтк
- Загрузить стоп-слова
- Рассчитать веса слов
Класс tfidfVectorizer - fit_transform fit - получить функции функционального пространства TF-IDF
tf = TfidVectorizer(stop_words, max_df) features = tf.fit_transform(train_contents)
- сегментация документа
- стадия классификации
-
Наивный байесовский генеративный классификатор
train_features, train_labels — clf — классификаторы, автоматически генерирующие пространства признаков v-symbol и соответствующие классы
from sklearn.naive_bayes import MultinomialNB
clf = MultionmialNB(alpha=0.001).fit(train_features, train_labels) -
Классификатор применяется к тестовому набору
-
Рассчитать точность классификации точность_оценка в метриках
from sklearn import metrics
print metrics.accuracy_score(test_labels, predicted_labels)
-