📧 Спам-фільтр — Наївний Байєсів Класифікатор Наживо
Спостерігайте, як справжній наївний байєсів класифікатор обчислює правдоподібності частоти слів із навчального набору й оцінює вхідні синтетичні листи як спам чи не спам, із живими внесками ймовірності для кожного слова.
Про цю симуляцію
Ця симуляція запускає справжній текстовий класифікатор мультиноміальний наївний Байєс над синтетичним міченим корпусом спаму та звичайних (легітимних) листів. Кожне слово в кожному навчальному прикладі підраховується для свого класу, згладжування Лапласа не дозволяє незустрічним словам обнулити ймовірність, а кожен вхідний лист оцінюється підсумовуванням логарифмічних відношень правдоподібності по кожному слову з логарифмом апріорної ймовірності, а потім перетворенням цієї суми логарифмів шансів назад в ймовірність спаму за допомогою сигмоїдної функції — точна формула наївного Байєса, а не декоративна заміна.
🔬 Що показано
Живий вхідний синтетичний лист із кожним словом, розфарбованим за його індивідуальним внеском у вердикт спаму, шкала апостеріорної ймовірності з позначеним порогом рішення, ранжована стовпчикова діаграма слів, що найсильніше штовхають до спаму чи не спаму, і плавний тренд точності на відкладеному тестовому наборі, на якому модель ніколи не навчалася.
🎮 Як користуватися
Перетягніть поріг класифікації, щоб зробити фільтр суворішим чи м'якшим, і спостерігайте, як миттєво оновлюється відкладена точність і поточний вердикт. Налаштуйте швидкість потоку й натисніть «Почати потік», щоб спостерігати безперервне надходження синтетичних листів, або використовуйте «Наступний лист» для покрокового переходу. Введіть власний текст листа й натисніть «Додати як спам» чи «Додати як не спам», щоб наживо розширити навчальний набір.
💡 Чи знали ви?
Наївний Байєс повністю ігнорує порядок слів і граматику — «ви виграли безкоштовний приз» і «приз безкоштовний виграли ви» оцінюються однаково — проте це грубе припущення «мішка слів» було достатнім, щоб живити одні з перших справді ефективних автоматизованих спам-фільтрів на початку 2000-х.
Часті питання
Що таке наївний байєсів класифікатор?
Наївний Байєс — імовірнісний класифікатор, побудований на теоремі Байєса: P(клас|слова) пропорційне P(клас), помноженому на добуток P(слово|клас) для кожного слова в повідомленні. Для фільтрації спаму два класи — спам і не спам (легітимна пошта), і класифікатор навчається шляхом підрахунку того, як часто кожне слово з'являється в мічених прикладах спаму порівняно з не спамом. Попри свою простоту, він залишається сильною, швидкою базовою моделлю для класифікації тексту.
Чому він називається «наївним»?
Він наївний, бо припускає, що поява кожного слова умовно незалежна від будь-якого іншого слова за умови класу — насправді слова на кшталт «безкоштовно» й «приз» корельовані, а не незалежні. Це припущення майже завжди хибне в реальній мові, але воно робить математику здійсненною: замість оцінки спільної ймовірності по всіх комбінаціях слів моделі потрібні лише прості підрахунки частоти окремих слів.
Як працює згладжування Лапласа і навіщо воно потрібне?
Без згладжування будь-яке слово, що ніколи не траплялося в навчальному наборі спаму, дало б P(слово|спам) = 0, а множення на нуль обнулило б увесь апостеріор незалежно від решти слів у повідомленні. Згладжування Лапласа (додавання одиниці, чи загальніше додавання альфа) додає невелику константу до кожного підрахунку слова перед діленням на суму класу, тож незустрічні чи рідкісні слова отримують малу ненульову ймовірність замість обнулення всього обчислення.
Що керує повзунком порогу класифікації?
Модель завжди видає безперервну апостеріорну ймовірність того, що повідомлення є спамом, P(спам|слова), від 0 до 1. Повзунок порогу встановлює межу, вище якої повідомлення позначається як спам, а не не спам — підвищення порогу робить фільтр консервативнішим (менше хибнопозитивних, більше спаму проходить), а зниження ловить більше спаму ціною більшої кількості позначеної легітимної пошти.
Чи справді так працюють реальні спам-фільтри?
Мультиноміальний наївний Байєс був одним із перших справді ефективних спам-фільтрів, який використовували такі інструменти, як оригінальний SpamAssassin і ранні байєсівські фільтри у 2000-х, а математика логарифмічного відношення правдоподібності в цій симуляції — точна реальна формула, а не спрощена заміна. Сучасні комерційні фільтри додають набагато більше сигналів — репутацію відправника, посилання, заголовки, зображення й часто нейронні текстові моделі — але ядро наївного Байєса на частоті слів, показане тут, є вірним, історично важливим будівельним блоком тієї більшої системи.
Справжній мультиноміальний наївний байєсів класифікатор підраховує частоти слів у синтетичному навчальному корпусі спаму/не спаму, застосовує згладжування Лапласа й оцінює вхідні синтетичні листи через суми логарифмічних відношень правдоподібності, перетворені на апостеріорну ймовірність сигмоїдною функцією.
3D · рушій Three.js / WebGL · ціль 60 FPS · працює повністю на клієнті, без встановлення