Чому наївні байєсівські класифікатори так добре працюють?


38

Класифікатори Naive Bayes - популярний вибір для класифікаційних проблем. Є багато причин для цього, зокрема:

  • "Zeitgeist" - широке усвідомлення після успіху спам-фільтрів близько десяти років тому
  • Легко писати
  • Модель класифікатора швидко будується
  • Модель можна модифікувати новими навчальними даними без необхідності її перебудови

Однак вони "наївні" - тобто вони вважають, що особливості незалежні - це контрастує з іншими класифікаторами, такими як класифікатори максимальної ентропії (які повільно обчислюються).

Припущення про незалежність зазвичай не можна припустити, і в багатьох (більшості?) Випадках, включаючи приклад фільтра спаму, це просто неправильно.

То чому ж класифікатор Naive Bayes як і раніше дуже добре працює в таких програмах, навіть коли функції не залежать один від одного?

Відповіді:


23

Цей документ, схоже, доводить (я не можу слідкувати за математикою), що байєс хороший не тільки тоді, коли функції незалежні, але і коли залежності функцій одна від одної між ознаками схожі:

У цій роботі ми пропонуємо нове пояснення щодо чудової ефективності класифікації наївних Байєса. Ми показуємо, що, по суті, розподіл залежності; тобто, як локальна залежність вузла розподіляється в кожному класі рівномірно або нерівномірно, і як локальні залежності всіх вузлів працюють разом, послідовно (підтримуючи певну класифікацію) або непослідовно (скасовуючи один одного), відіграє вирішальну роль. Тому, якими б сильними не були залежності між атрибутами, наївний Байєс все одно може бути оптимальним, якщо залежності розподіляються рівномірно в класах або якщо залежності скасовують одна одну


1
Якісно, ​​що має сенс. Залежні функції призведуть до зважування - тому рівномірний розподіл або розподіл, який скасовується, скасує це зважування. Однак, "однобічні" залежності, ймовірно, все ще будуть погано працювати? Я думаю, що для прикладу спаму, ми повинні очікувати великої кількості залежностей від + спам-функцій, але не обов'язково -системи спаму в загальному випадку. Однак, людина може отримати багато законних електронних листів на певну тему, тому в цьому випадку буде багато залежних функцій - які б врівноважували функції + спам.
winwaed

3
Я також рекомендую цей документ: cs.stanford.edu/people/ang/papers/…
Dov

25

Більшість проблем машинного навчання легкі!

Дивіться, наприклад, у блозі Джона Лангфорда . Що він насправді каже, це те, що ML робить проблеми легшими, і це представляє проблему для дослідників з точки зору того, чи слід намагатись застосовувати методи до широкого кола простих проблем або атакувати більш складні проблеми. Однак побічним продуктом є те, що для багатьох проблем дані лінійно відокремлюються (або принаймні майже), і в цьому випадку будь-який лінійний класифікатор буде добре працювати! Просто так трапляється, що автори оригінального фільтрувального паперу для спаму вирішили використовувати Naive Bayes, але якби вони використовували Perceptron, SVM, Fisk Discriminant Analysis, Logistic Regression, AdaBoost або багато іншого, що, ймовірно, також спрацювало б.

Допомагає той факт, що кодувати алгоритм порівняно просто. Наприклад, для кодування SVM вам потрібно мати QP Solver , або вам потрібно кодувати алгоритм SMO, що не є тривіальним завданням. Ви, звичайно, можете завантажити libsvm, але в перші дні ця опція була недоступною. Однак існує багато інших простих алгоритмів (включаючи згаданий вище Perceptron), які так само легко кодуються (і дозволяють поступово оновити, як згадується питання).

Для жорстких нелінійних задач, звичайно, потрібні методи, які можуть мати справу з нелінійними. Але навіть це може бути відносно простим завданням, коли використовуються методи Kernel . Після цього питання часто стає "Як створити ефективну функцію ядра для своїх даних", а не "Який класифікатор я повинен використовувати".


Я думаю, що "легко" - це, мабуть, відносно, але так, класифікація спаму є "простішою", ніж я думаю, більшість людей припускали 12 років або більше тому. Методи ядра можуть бути підходом до створення швидкого та простого класифікатора, але "Як створити ефективну функцію ядра для моїх даних", схоже, деякі з машинного навчання перетворюються на "навчання людини" (тобто пошук кращого розуміння даних і її взаємозв'язки)?
winwaed

1
Так, це відносно, а також є багато проблем, тому там ще багато важких! І я думаю, що межа між навчальним досвідом та навчанням людини завжди розмита ... якщо ти створюєш якусь надзвичайно вигадливу ймовірнісну модель, ти робиш те саме. Старий добрий NFLT говорить нам, що один метод не може вирішити всі проблеми, однак цей складний метод є, тому нам завжди потрібні люди для розробки моделей / ядер / алгоритмів або будь-чого, що потрібно для отримання більшої кількості ваших даних.
tdc

правда - безумовно розмита лінія!
winwaed

1
Чому потік? Хочете коментувати?
tdc

7

Широко використовуючи Naive Bayesian Classifiers в інструментах класифікації сегментації, мій досвід узгоджується з опублікованими документами, що показують, що NBC за точністю може бути порівняно з лінійним дискримінантним та CART / CHAID, коли всі змінні прогнозувальника доступні.

(З точністю як "швидкість потрапляння" в прогнозуванні правильного рішення як найбільш вірогідного, так і калібрування, що означає, скажімо, оцінку членства в 75% вірно в 70% -80% випадків.)

Мої два центи - NBC працює так добре, оскільки:

  • Взаємозв'язок між змінними прогнозувальника не настільки сильний, як можна було б подумати (типові взаємні інформації від 0,05 до 0,15 є типовими)
  • NBC може добре поводитися з дискретними багатотомними змінними, не вимагаючи від нас жорстокого дихотомізації або ставлення до порядкових змінних як до кардинальних.
  • NBC використовує всі змінні одночасно, тоді як CART / CHAID використовують лише декілька

І ось тоді спостерігаються всі змінні. Що змушує NBC дійсно відійти від пакета, це те, що він витончено погіршується, коли одна чи більше змінних предиктора не вистачає або не спостерігається. CART / CHAID та лінійний дискримінантний аналіз в цьому випадку припиняються.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.