SlideShare a Scribd company logo
Введение в Data Science
Занятие 4. Naive Bayes
и классификация текстов
Николай Анохин Михаил Фирулик
23 марта 2014 г.
План занятия
Обработка текстов
Naive Bayes
Data Mining vs Text Mining
Data Mining:
извлечение неочевидной
информации
Text Mining:
извлечение очевидной
информации
Трудности
Огромные объемы
Отстутсвие структуры
Задачи Text Mining
Суммаризация текста
аггрегация новостей
Классификация и кластеризация документов
категоризация, фильтрация спама, эмоции
Извлечение метаданных
определение языка, автора, тегирование
Выделение сущностей
места, люди, компании, почтовые адреса
Этапы обработки текста
Декодирование
Def.
перевод последовательности байт в последовательность символов
Распаковка
plain/.zip/.gz/...
Кодировка
ASCII/utf-8/Windows-1251/...
Формат
csv/xml/json/doc...
Кроме того: что такое документ?
Разбиение на токены
Def.
разбиение последовательности символов на части (токены),
возможно, исключая из рассмотрения некоторые символы
Наивный подход: разделить строку пробелами и выкинуть знаки
препинания
Трисия любила Нью-Йорк, поскольку любовь к Нью-Йорку
могла положительно повлиять на ее карьеру.
Проблемы:
n.anokhin@corp.mail.ru, 127.0.0.1
С++, C#
York University vs New York University
Зависимость от языка
(“Lebensversicherungsgesellschaftsangestellter”, “l’amour”)
Альтернатива: n-граммы
Разбиение на токены
>>> from nltk.tokenize import RegexpTokenizer
>>> tokenizer = RegexpTokenizer(’w+|[^ws]+’)
>>> s = u’Трисия любила Нью-Йорк, поскольку любовь 
... к Нью-Йорку могла положительно повлиять на ее карьеру.’
>>> for t in tokenizer.tokenize(s)[:7]: print t + " ::",
...
Трисия :: любила :: Нью :: - :: Йорк :: , :: поскольку ::
Стоп-слова
Def.
Наиболее частые слова в языке, не содержащие никакой
информации о содержании текста
>>> from nltk.corpus import stopwords
>>> for sw in stopwords.words(’russian’)[1:20]: print sw,
...
в во не что он на я с со как а то все она так его но да ты
Проблема: “To be or not to be"
Нормализация
Def.
Приведение токенов к единому виду для того, чтобы избавиться от
поверхностной разницы в написании
Подходы
сформулировать набор правил, по которым преобразуется токен
Нью-Йорк → нью-йорк → ньюйорк → ньюиорк
явно хранить связи между токенами
машина → автомобиль, Windows → window
Нормализация
>>> s = u’Нью-Йорк’
>>> s1 = s.lower()
>>> print s1
нью-йорк
>>> s2 = re.sub(ur"W", "", s1, flags=re.U)
>>> print s2
ньюйорк
>>> s3 = re.sub(ur"й", u"и", s2, flags=re.U)
>>> print s3
ньюиорк
Стемминг и Лемматизация
Def.
Приведение грамматических форм слова и однокоренных слов к
единой основе (lemma):
Stemming – с помощью простых эвристических правил
Porter (1980)
5 этапов, на каждом применяется набор правил, таких как
sses → ss (caresses → caress)
ies → i (ponies → poni)
Lovins (1968)
Paice (1990)
еще 100500
Lemmatization – с использованием словарей и
морфологического анализа
Стемминг
>>> from nltk.stem.snowball import PorterStemmer
>>> s = PorterStemmer()
>>> print s.stem(’tokenization’); print s.stem(’stemming’)
token
stem
>>> from nltk.stem.snowball import RussianStemmer
>>> r = RussianStemmer()
>>> print r.stem(u’Авиация’); print r.stem(u’национальный’)
авиац
национальн
Наблюдение
для сложных языков лучше подходит лемматизация
Heap’s law
M = kTβ
, M – размер словаря, T – количество слов в корпусе
30 ≤ k ≤ 100, b ≈ 0.5
Представление документов
Boolean Model. Присутствие или отсутствие слова в документе
Bag of Words. Порядок токенов не важен
Погода была ужасная, принцесса была прекрасная.
Или все было наоборот?
Координаты
Мультиномиальные: количество токенов в документе
Числовые: взвешенное количество токенов в документе
Zipf’s law
t1, . . . , tN – токены,
отранжированные по убыванию
частоты
f1, . . . , fN – соответствующие
частоты
Закон Ципфа
fi =
c
ik
Что еще? Посещаемость сайтов,
количество друзей, население
городов...
Задача
Дана коллекция, содержащая 106
(не уникальных) токенов.
Предполагая, что частоты слов распределены по закону
fi =
c
(i + 10)2
,
оцените
количество вхождений наиболее часто встречающегося слова
количество слов, котоые встречаются минимум дважды
Подсказка:
∞
i=11
1
i2 ≈ 0.095
BoW & TF-IDF
Количество вхождений слова t в документе d
TFt,d = term−frequency(t, d)
Количество документов из N возможных, где встречается t
DFt = document−fequency(t)
IDFt = inverse−document−frequency(t) = log
N
DFt
TF-IDF
TF−IDFt,d = TFt,d × IDFt
Пример
Коллекция документов: Cersei Lannister, Tyrion Lannister
d1 = {cersei:1, tyrion:0, lannister:0}
d2 = {cersei:0, tyrion:1, lannister:0}
Байесовский классификатор
Дано
x ∈ X – описание документа d из коллекции D
Ck ∈ C, k = 1, . . . , K – целевая переменная
Теорема Байеса
P(Ck |x) =
p(x|Ck )p(Ck )
p(x)
∝ p(x|Ck )p(Ck )
Принцип Maximum A-Posteriori
CMAP = arg max
k
p(Ck |x)
Naive Bayes
Xj – токен на j-м месте в документе x, xi ∈ V – слово из словаря V
Предположения
1. conditional independence
p(Xi = xi , Xj = xj |Ck ) = p(Xi = xi |Ck )p(Xi = xi |Ck )
2. positional independence
P(Xi = xi |Ck ) = P(Xj = xi |Ck ) = P(X = xi |Ck )
Получаем
p(x|Ck ) = p(X1 = x1, . . . , X|x| = x|x||Ck ) =
|x|
i=1
p(X = xi |Ck )
Почему NB хорошо работает?
Корректная оценка дает правильное предсказание, но правильное
предсказание не требует корректной оценки
Варианты NB
MAP
CMAP = arg max
k
|x|
i=1
p(X = xi |Ck )P(Ck ) =
= arg max
k

log P(Ck ) +
|x|
i=1
log P(X = xi |Ck )


Априорные вероятности
P(Ck ) = NCk
/N
Likelihood p(X = xi |Ck )
BernoulliNB P(X = xi |Ck ) = Dxi ,Ck
/DCk
, D – кол-во документов
MultinomialNB P(X = xi |Ck ) = Txi ,Ck
/TCk
, T – кол-во токенов
GaussianNB P(X = xi |Ck ) = N(µk , σ2
k ), параметры из MLE
Обучение NB
train_nb(D, C):
V = словарь токенов из D
N = количество документов в D
for Ck ∈ C:
NCk
= количество документов класса Ck
p(Ck ) = NCk
/N
DCk
= документы класса Ck
for xi ∈ V :
p(X = xi |Ck ) = считаем согласно выбранному варианту
возвращаем V , p(Ck ), p(X = xi |Ck )
Алгоритмическая сложность: O(|D| |x| + |C||V |)
Применение MultinomialNB
apply_nb(d, V , p(Ck ), p(xi |Ck ), C):
x = разбиваем d на токены, используя V
for Ck ∈ C:
score(Ck |x) += log p(Ck )
for xi ∈ x:
score(Ck |x) += log p(xi |Ck ) считаем согласно выбранному
варианту
возвращаем arg max score(Ck |x)
Алгоритмическая сложность: O(|C||x|)
Задача
d Текст Класс
1 котики такие котики мимими
2 котики котики няшки мимими
3 пушистые котики мимими
4 морские котики мокрые не мимими
5 котики котики мокрые морские котики ???
С помощью алгоритма MultinomialNB вычислить p(мимими|d5)
Сглаживание
Проблема: p(пушистые|не мимими) = 0
Решение:
p(X = xi |Ck ) =
Txi ,Ck
+ α
TCk
+ α|V |
если α ≥ 1 – сглаживание Лапласа, если 0 ≤ α ≤ 1 – Лидстоуна
Упражнение
С учетом сглаживания вычислить
p(пушистые|не мимими), p(пушистые|мимими).
Байесовские сети
Naive Bayes Bayes Network
Итоги
+ Генеративная модель
+ (Удивительно) неплохо работает
+ Стабилен при смещении выборки (aka concept drift)
+ Оптимальный по производительности
– Наивные предположения
– Требует отбора признаков
Определение языка текста
Определение языка на основании n-грамм
Нормализация
Нижний регистр, заменяем акценты на обычные буквы
Токенизация
Разбиваем документы на n-граммы
Выбор признаков
Берем топ-k признаков из каждого языка
Инициализация модели
Используем один из вариантов NB из sklearn
Анализ
Как зависит точность предсказания от n и k?
Домашнее задание 3
Байесовский классификатор
Реализовать
алгоритм Naive Bayes для задачи классификации
алгоритм Naive Bayes для задачи регрессии
Варианты: multinomial, bernoulli, gaussian
Ключевые даты
До 2014/03/29 00.00 выбрать задачу и ответственного в группе
До 2014/04/05 00.00 предоставить решение задания
Спасибо!
Обратная связь

More Related Content

PDF
L6: Метод опорных векторов
PDF
L3: Линейная и логистическая регрессия
PDF
L7:Задача кластеризации. Метрики качества
PDF
L2: Задача классификации и регрессии. Метрики ошибок
PDF
L11: Метод ансамблей
PDF
L10: Алгоритмы кластеризации
PDF
Лекция №6 "Линейные модели для классификации и регрессии"
PDF
Лекция №7 "Машина опорных векторов"
L6: Метод опорных векторов
L3: Линейная и логистическая регрессия
L7:Задача кластеризации. Метрики качества
L2: Задача классификации и регрессии. Метрики ошибок
L11: Метод ансамблей
L10: Алгоритмы кластеризации
Лекция №6 "Линейные модели для классификации и регрессии"
Лекция №7 "Машина опорных векторов"

What's hot (20)

PDF
Лекция №4 "Задача классификации"
PDF
Лекция №3 "Различные алгоритмы кластеризации"
PDF
Лекция №5 "Обработка текстов, Naive Bayes"
PDF
Лекция №10 "Алгоритмические композиции. Завершение"
PDF
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
PDF
Лекция №9 "Алгоритмические композиции. Начало"
PDF
Лекция №8 "Методы снижения размерности пространства"
PDF
Лекция №1 "Задачи Data Mining"
PDF
Лекция №12 "Ограниченная машина Больцмана"
PDF
Линейные многошаговые методы
PDF
Решение краевых задач методом конечных элементов
PDF
Многочлены наилучших среднеквадратичных приближений
PDF
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
PDF
Структурное обучение и S-SVM
PDF
Метод конечных разностей
PDF
20110403 quantum algorithms_vyali_lecture03
PDF
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
PDF
Факторизационные модели в рекомендательных системах
PDF
Лекция №11 "Основы нейронных сетей"
PDF
Integral1
Лекция №4 "Задача классификации"
Лекция №3 "Различные алгоритмы кластеризации"
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №9 "Алгоритмические композиции. Начало"
Лекция №8 "Методы снижения размерности пространства"
Лекция №1 "Задачи Data Mining"
Лекция №12 "Ограниченная машина Больцмана"
Линейные многошаговые методы
Решение краевых задач методом конечных элементов
Многочлены наилучших среднеквадратичных приближений
Лекция №15. Методы программирования. Предмет "Структуры и алгоритмы обработки...
Структурное обучение и S-SVM
Метод конечных разностей
20110403 quantum algorithms_vyali_lecture03
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
Факторизационные модели в рекомендательных системах
Лекция №11 "Основы нейронных сетей"
Integral1
Ad

Viewers also liked (9)

PDF
Когда тексты —не только слова
PDF
Наивный байесовский классификатор. Дерево решений. Случайный лес.
PDF
Using of Bayes Belief Networks for Sustainable Development Analysis
PDF
К.В.Воронцов "Статистические (байесовские) методы классификации"
PPTX
Критическое мышление лекция 3 (новый курс) Наивный реализм. Мудрость пословицы
PDF
Юрий Богомолов "Методы классификации документов в поиске"
PPT
Семантическое поле
PDF
Machine learning c использованием нейронных сетей, Дмитрий Лапин
PDF
Data scientology starter pack, Сергей Казаков
Когда тексты —не только слова
Наивный байесовский классификатор. Дерево решений. Случайный лес.
Using of Bayes Belief Networks for Sustainable Development Analysis
К.В.Воронцов "Статистические (байесовские) методы классификации"
Критическое мышление лекция 3 (новый курс) Наивный реализм. Мудрость пословицы
Юрий Богомолов "Методы классификации документов в поиске"
Семантическое поле
Machine learning c использованием нейронных сетей, Дмитрий Лапин
Data scientology starter pack, Сергей Казаков
Ad

Similar to L5: Л5 Байесовские алгоритмы (20)

PDF
Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"
PDF
Python и его тормоза
PDF
ITMO RecSys course. Autumn 2014. Lecture 3
PPT
экспертные системы
PDF
20101125 proof complexity_hirsch_lecture08
PDF
Lsa fca spb
PDF
20090913 algorithmsfornphardproblems kulikov_lecture02
PDF
«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...
PDF
ITMO RecSys course. Autumn 2014. Lecture 5
PPT
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
PPTX
word2vec (part 1)
PDF
Основы комбинаторики - I
PDF
Евгений Котельников. Зависимые типы в Haskell
PDF
Лекция 12. Быстрее, Python, ещё быстрее.
PDF
20111202 machine learning_nikolenko_lecture03
PPT
Математическое обоснование S.O.L.I.D принципов
PDF
Алгоритмы и структуры данных осень 2013 лекция 1
PDF
Методы машинного обучения в физике элементарных частиц
PPT
Rgsu04
PPT
Rgsu04
Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"
Python и его тормоза
ITMO RecSys course. Autumn 2014. Lecture 3
экспертные системы
20101125 proof complexity_hirsch_lecture08
Lsa fca spb
20090913 algorithmsfornphardproblems kulikov_lecture02
«QuickCheck в Python: проверка гипотез и поиск ошибок», Александр Шорин, Ramb...
ITMO RecSys course. Autumn 2014. Lecture 5
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
word2vec (part 1)
Основы комбинаторики - I
Евгений Котельников. Зависимые типы в Haskell
Лекция 12. Быстрее, Python, ещё быстрее.
20111202 machine learning_nikolenko_lecture03
Математическое обоснование S.O.L.I.D принципов
Алгоритмы и структуры данных осень 2013 лекция 1
Методы машинного обучения в физике элементарных частиц
Rgsu04
Rgsu04

More from Technosphere1 (12)

PDF
Лекция №13 "Глубокие нейронные сети"
PDF
L13: Заключительная
PDF
Л9: Взаимодействие веб-приложений
PDF
Л8 Django. Дополнительные темы
PDF
Webdev7 (2)
PDF
Мастер-класс: Особенности создания продукта для мобильного веб
PDF
Web лекция 1
PDF
Мастер-класс: "Интеграция в промышленную разработку"
PDF
Webdev7: Обработка HTTP запросов. Django Views
PDF
L8: Л7 Em-алгоритм
PDF
L4: Решающие деревья
PDF
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)
Лекция №13 "Глубокие нейронные сети"
L13: Заключительная
Л9: Взаимодействие веб-приложений
Л8 Django. Дополнительные темы
Webdev7 (2)
Мастер-класс: Особенности создания продукта для мобильного веб
Web лекция 1
Мастер-класс: "Интеграция в промышленную разработку"
Webdev7: Обработка HTTP запросов. Django Views
L8: Л7 Em-алгоритм
L4: Решающие деревья
L1 Вводная лекция. Обзор основных задач Data Science (Лекция №1)

L5: Л5 Байесовские алгоритмы

  • 1. Введение в Data Science Занятие 4. Naive Bayes и классификация текстов Николай Анохин Михаил Фирулик 23 марта 2014 г.
  • 3. Data Mining vs Text Mining Data Mining: извлечение неочевидной информации Text Mining: извлечение очевидной информации Трудности Огромные объемы Отстутсвие структуры
  • 4. Задачи Text Mining Суммаризация текста аггрегация новостей Классификация и кластеризация документов категоризация, фильтрация спама, эмоции Извлечение метаданных определение языка, автора, тегирование Выделение сущностей места, люди, компании, почтовые адреса
  • 6. Декодирование Def. перевод последовательности байт в последовательность символов Распаковка plain/.zip/.gz/... Кодировка ASCII/utf-8/Windows-1251/... Формат csv/xml/json/doc... Кроме того: что такое документ?
  • 7. Разбиение на токены Def. разбиение последовательности символов на части (токены), возможно, исключая из рассмотрения некоторые символы Наивный подход: разделить строку пробелами и выкинуть знаки препинания Трисия любила Нью-Йорк, поскольку любовь к Нью-Йорку могла положительно повлиять на ее карьеру. Проблемы: n.anokhin@corp.mail.ru, 127.0.0.1 С++, C# York University vs New York University Зависимость от языка (“Lebensversicherungsgesellschaftsangestellter”, “l’amour”) Альтернатива: n-граммы
  • 8. Разбиение на токены >>> from nltk.tokenize import RegexpTokenizer >>> tokenizer = RegexpTokenizer(’w+|[^ws]+’) >>> s = u’Трисия любила Нью-Йорк, поскольку любовь ... к Нью-Йорку могла положительно повлиять на ее карьеру.’ >>> for t in tokenizer.tokenize(s)[:7]: print t + " ::", ... Трисия :: любила :: Нью :: - :: Йорк :: , :: поскольку ::
  • 9. Стоп-слова Def. Наиболее частые слова в языке, не содержащие никакой информации о содержании текста >>> from nltk.corpus import stopwords >>> for sw in stopwords.words(’russian’)[1:20]: print sw, ... в во не что он на я с со как а то все она так его но да ты Проблема: “To be or not to be"
  • 10. Нормализация Def. Приведение токенов к единому виду для того, чтобы избавиться от поверхностной разницы в написании Подходы сформулировать набор правил, по которым преобразуется токен Нью-Йорк → нью-йорк → ньюйорк → ньюиорк явно хранить связи между токенами машина → автомобиль, Windows → window
  • 11. Нормализация >>> s = u’Нью-Йорк’ >>> s1 = s.lower() >>> print s1 нью-йорк >>> s2 = re.sub(ur"W", "", s1, flags=re.U) >>> print s2 ньюйорк >>> s3 = re.sub(ur"й", u"и", s2, flags=re.U) >>> print s3 ньюиорк
  • 12. Стемминг и Лемматизация Def. Приведение грамматических форм слова и однокоренных слов к единой основе (lemma): Stemming – с помощью простых эвристических правил Porter (1980) 5 этапов, на каждом применяется набор правил, таких как sses → ss (caresses → caress) ies → i (ponies → poni) Lovins (1968) Paice (1990) еще 100500 Lemmatization – с использованием словарей и морфологического анализа
  • 13. Стемминг >>> from nltk.stem.snowball import PorterStemmer >>> s = PorterStemmer() >>> print s.stem(’tokenization’); print s.stem(’stemming’) token stem >>> from nltk.stem.snowball import RussianStemmer >>> r = RussianStemmer() >>> print r.stem(u’Авиация’); print r.stem(u’национальный’) авиац национальн Наблюдение для сложных языков лучше подходит лемматизация
  • 14. Heap’s law M = kTβ , M – размер словаря, T – количество слов в корпусе 30 ≤ k ≤ 100, b ≈ 0.5
  • 15. Представление документов Boolean Model. Присутствие или отсутствие слова в документе Bag of Words. Порядок токенов не важен Погода была ужасная, принцесса была прекрасная. Или все было наоборот? Координаты Мультиномиальные: количество токенов в документе Числовые: взвешенное количество токенов в документе
  • 16. Zipf’s law t1, . . . , tN – токены, отранжированные по убыванию частоты f1, . . . , fN – соответствующие частоты Закон Ципфа fi = c ik Что еще? Посещаемость сайтов, количество друзей, население городов...
  • 17. Задача Дана коллекция, содержащая 106 (не уникальных) токенов. Предполагая, что частоты слов распределены по закону fi = c (i + 10)2 , оцените количество вхождений наиболее часто встречающегося слова количество слов, котоые встречаются минимум дважды Подсказка: ∞ i=11 1 i2 ≈ 0.095
  • 18. BoW & TF-IDF Количество вхождений слова t в документе d TFt,d = term−frequency(t, d) Количество документов из N возможных, где встречается t DFt = document−fequency(t) IDFt = inverse−document−frequency(t) = log N DFt TF-IDF TF−IDFt,d = TFt,d × IDFt Пример Коллекция документов: Cersei Lannister, Tyrion Lannister d1 = {cersei:1, tyrion:0, lannister:0} d2 = {cersei:0, tyrion:1, lannister:0}
  • 19. Байесовский классификатор Дано x ∈ X – описание документа d из коллекции D Ck ∈ C, k = 1, . . . , K – целевая переменная Теорема Байеса P(Ck |x) = p(x|Ck )p(Ck ) p(x) ∝ p(x|Ck )p(Ck ) Принцип Maximum A-Posteriori CMAP = arg max k p(Ck |x)
  • 20. Naive Bayes Xj – токен на j-м месте в документе x, xi ∈ V – слово из словаря V Предположения 1. conditional independence p(Xi = xi , Xj = xj |Ck ) = p(Xi = xi |Ck )p(Xi = xi |Ck ) 2. positional independence P(Xi = xi |Ck ) = P(Xj = xi |Ck ) = P(X = xi |Ck ) Получаем p(x|Ck ) = p(X1 = x1, . . . , X|x| = x|x||Ck ) = |x| i=1 p(X = xi |Ck ) Почему NB хорошо работает? Корректная оценка дает правильное предсказание, но правильное предсказание не требует корректной оценки
  • 21. Варианты NB MAP CMAP = arg max k |x| i=1 p(X = xi |Ck )P(Ck ) = = arg max k  log P(Ck ) + |x| i=1 log P(X = xi |Ck )   Априорные вероятности P(Ck ) = NCk /N Likelihood p(X = xi |Ck ) BernoulliNB P(X = xi |Ck ) = Dxi ,Ck /DCk , D – кол-во документов MultinomialNB P(X = xi |Ck ) = Txi ,Ck /TCk , T – кол-во токенов GaussianNB P(X = xi |Ck ) = N(µk , σ2 k ), параметры из MLE
  • 22. Обучение NB train_nb(D, C): V = словарь токенов из D N = количество документов в D for Ck ∈ C: NCk = количество документов класса Ck p(Ck ) = NCk /N DCk = документы класса Ck for xi ∈ V : p(X = xi |Ck ) = считаем согласно выбранному варианту возвращаем V , p(Ck ), p(X = xi |Ck ) Алгоритмическая сложность: O(|D| |x| + |C||V |)
  • 23. Применение MultinomialNB apply_nb(d, V , p(Ck ), p(xi |Ck ), C): x = разбиваем d на токены, используя V for Ck ∈ C: score(Ck |x) += log p(Ck ) for xi ∈ x: score(Ck |x) += log p(xi |Ck ) считаем согласно выбранному варианту возвращаем arg max score(Ck |x) Алгоритмическая сложность: O(|C||x|)
  • 24. Задача d Текст Класс 1 котики такие котики мимими 2 котики котики няшки мимими 3 пушистые котики мимими 4 морские котики мокрые не мимими 5 котики котики мокрые морские котики ??? С помощью алгоритма MultinomialNB вычислить p(мимими|d5)
  • 25. Сглаживание Проблема: p(пушистые|не мимими) = 0 Решение: p(X = xi |Ck ) = Txi ,Ck + α TCk + α|V | если α ≥ 1 – сглаживание Лапласа, если 0 ≤ α ≤ 1 – Лидстоуна Упражнение С учетом сглаживания вычислить p(пушистые|не мимими), p(пушистые|мимими).
  • 27. Итоги + Генеративная модель + (Удивительно) неплохо работает + Стабилен при смещении выборки (aka concept drift) + Оптимальный по производительности – Наивные предположения – Требует отбора признаков
  • 28. Определение языка текста Определение языка на основании n-грамм Нормализация Нижний регистр, заменяем акценты на обычные буквы Токенизация Разбиваем документы на n-граммы Выбор признаков Берем топ-k признаков из каждого языка Инициализация модели Используем один из вариантов NB из sklearn Анализ Как зависит точность предсказания от n и k?
  • 29. Домашнее задание 3 Байесовский классификатор Реализовать алгоритм Naive Bayes для задачи классификации алгоритм Naive Bayes для задачи регрессии Варианты: multinomial, bernoulli, gaussian Ключевые даты До 2014/03/29 00.00 выбрать задачу и ответственного в группе До 2014/04/05 00.00 предоставить решение задания