- •Методичні вказівки
- •Теоретична частина:
- •Постановка завдання.
- •1R алгоритм (One rule )
- •Naive Bayes метод (nbc)
- •1R алгоритм
- •2.1. Реалізація 1r алгоритму
- •2.2. Дискретизація
- •3.1. Припущення умовної незалежності
- •Проблема арифметичного переповнення
- •Наївний баєсовський класифікатор (Naive Bayes Classifier)
- •3.3. Оцінка параметрів байєсівської моделі
- •Проблема невідомих слів
- •Реалізація класифікатора
- •Застосування методу Naive Bayas
- •Характеристика методу
- •4. Порядок виконання роботи
- •Варіанти індивідуальних завдань
- •Вимоги до звіту
- •Доц. Ковівчак Ярослав Васильович
3.3. Оцінка параметрів байєсівської моделі
Оцінка ймовірностей P(C) і P(wi|c) здійснюється на навчальній вибірці. Імовірність класу ми можемо оцінити як:
(3.3.1)
де, Dc - кількість документів, які належать класу с, а Dc - загальна кількість документів у навчальній вибірці.
Оцінка ймовірності слова в класі може робитися декількома шляхами. Тут використаємо multinomial bayes model.
(3.3.2)
Wic - кількість разів скільки i -е слово зустрічається в документах класу c;
V - словник корпусу документів (список всіх унікальних слів).
Іншими словами, чисельник описує скільки разів слово зустрічається в документах класу (включаючи повтори), а знаменник - це сумарна кількість слів у всіх документах цього класу.
Проблема невідомих слів
З формулою № 3 є одна невелика проблема. Якщо на етапі класифікації вам зустрінеться слово якого ви не бачили на етапі навчання, то значення Wic і P(wi|c) будуть дорівнюють нулю. Це призведе до того що документ з цим словом не можна буде класифікувати, так як він буде мати нульову ймовірність по всіх класах. Позбутися цієї проблеми шляхом аналізу більшої кількості документів не вийде. Ви ніколи не зможете скласти навчальну вибірку містить всі можливі слова включаючи неологізми, друкарські помилки, синоніми і т.д. Типовим рішенням проблеми невідомих слів є адаптивне згладжування (Згладжування Лапласа). Ідея полягає в тому що ми вдаємо начебто бачили кожне слово на один раз більше, тобто додаємо одиницю до частоти кожного слова.
(3.4.1)
Логічно даний підхід зміщує оцінку ймовірностей у бік менш ймовірних результатів. Таким чином, слова які ми не бачили на етапі навчання моделі отримують нехай маленьку, але все ж не нульову ймовірність. Ось як це виглядає на практиці. Припустимо на етапі навчання ми бачили три імені власних вказану кількість разів.
Таблиця 3.4.1
Ім'я |
Частота |
Вася |
3 |
Петя |
2 |
Одружитися |
1 |
І тут на етапі класифікації у нас з'являється ім'я Інокентій, яке ми не бачили на етапі навчання. Тоді оригінальна і зміщена по Лапласу оцінка ймовірностей буде виглядати наступним чином (Гістограма 3.4.1):
Гістограма 3.4.1
З графіка видно що зміщена оцінка ніколи не буває нульовою, що захищає нас від проблеми невідомих слів.
Підставивши обрані нами оцінки в формулу (3.1.2) ми отримуємо остаточну формулу по якій відбувається Байєсова класифікація.
(3.4.2)
Реалізація класифікатора
Для реалізації байєсівського класифікатора нам необхідна навчальна вибірка в якій проставлені відповідності між текстовими документами і їх класами. Потім нам необхідно зібрати наступну статистику з вибірки, яка буде використовуватися на етапі класифікації:
відносні частоти класів в корпусі документів. Тобто, як часто зустрічаються документи того чи іншого класу;
сумарна кількість слів у документах кожного класу;
відносні частоти слів у межах кожного класу;
розмір словника вибірки. Кількість унікальних слів у вибірці.
Сукупність цієї інформації ми будемо називати моделлю класифікатора. Потім на етапі класифікації необхідно для кожного класу розрахувати значення наступного виразу і вибрати клас з максимальним значенням.
(3.5.1)
в цій формулі:
Dc - кількість документів у навчальній вибірці належать класу с;
D - загальна кількість документів у навчальній вибірці;
|V| - кількість унікальних слів у всіх документах навчальної вибірки;
Lc - сумарна кількість слів у документах класу с в навчальній вибірці;
Wic - скільки разів і-е слово зустрічалося в документах класу с в навчальній вибірці;
Q - безліч слів класифікованого документа (включаючи повтори).
Приклад
Припустимо, у нас є три документи для яких відомі їх класи (HAM означає - не спам):
[SPAM] надаю послуги бухгалтера;
[SPAM] поспішайте купити пиво;
[HAM] треба купити молоко.
Модель класифікатора буде виглядати наступним чином:
|
SPAM |
HAM |
частоти класів |
2 |
1 |
сумарна кількість слів |
6 |
3 |
|
SPAM |
HAM |
надаю |
1 |
0 |
послуги |
1 |
0 |
бухгалтера |
1 |
0 |
поспішайте |
1 |
0 |
купити |
1 |
1 |
пиво |
1 |
0 |
треба |
0 |
1 |
молоко |
0 |
1 |
Тепер класифікуємо фразу "треба купити сигарети". Розрахуємо значення виразу для класу SPAM:
Тепер зробимо те ж саме для класу HAM:
В даному випадку клас HAM виграв і повідомлення не буде позначено як спам.
Формування імовірнісного простору
У простому випадку ви вибираєте клас, який отримав максимальну оцінку. Але якщо ви наприклад хочете позначати повідомлення як спам тільки якщо відповідна ймовірність більше 80%, то порівняння логарифмічних оцінок вам нічого не дасть. Оцінки які видає алгоритм не задовільняють дві формальні властивості, які повинні задовольняти всі імовірнісні оцінки:
вони всі повинні бути в діапазоні від нуля до одиниці;
їх сума повинна дорівнювати одиниці.
Для того щоб вирішити цю задачу, необхідно з логарифмічних оцінок сформувати ймовірнісний простір. А саме: позбутися від логарифмів і нормувати суму по одиниці.
(3.5.2)
Тут
qc
- це
логарифмічна
оцінка
алгоритму для класу с,
а
піднесення
е
(основа
натурального
логарфма)
в степінь
оцінки використовується для того, щоб
позбавитися від логарифма
.
Таким чином, якщо ви в розрахунках
використовували не натуральний логарифм,
а десятковий, вам необхідно використати
не е,
а
10.
Для вище наведеного прикладу ймовірність що повідомлення спам рівне:
тобто повідомлення є спамом з імовірністю 32.7%.
