ГоловнаСтаттіМашинне Навчання

Наївний Байєс: Простий Класифікатор

Оцініть середнє значення та дисперсію для кожної групи, застосуйте правило Баяєва для обчислення постеріорної ймовірності та дозвольте їй намалювати межу рішень.

mysimulator teamОновлено — червень 2026≈ 7 хв читання▶ Відкрити симуляцію

Застосування правила Байєса у зворотній послідовності

Класифікація ставить питання: враховуючи характеристики точки, якай клас найбільш ймовірно належить? Правило Байєса перевертає це питання, роблячи його часто простішим для відповіді безпосередньо – враховуючи клас, наскільки ймовірні ці характеристики? - і поєднує це з загальною поширеністю кожного класу. Для точки x та класу c, апостеріорна ймовірність пропорційна ймовірності попереднього класу помноженій на ймовірність x за даний клас: P(c | x) пропорційна P(c) * P(x | c). Щоб класифікувати нову точку, обчислюйте цю величину для кожного класу та виберіть найбільшу.

жива демонстрація · пов'язана симуляція● LIVE

Де місце у всьому

З кількох функцій P(x given c) означає спільну ймовірність усіх ознак разом, що зазвичай вимагає моделювання того, як ознаки корелюють між собою – це дорого і потребує великих обсягів даних. Наївне припущення повністю цього уникає: воно розглядає кожну ознаку як незалежно умовну за класифікацією, тому спільна ймовірність представляється простим добутком одновимірних ймовірностей, по одній на ознаку. Це припущення майже завжди є технічно неправильним, але байєсівський метод залишається потужним і швидким базовим рішенням, оскільки класифікація потребує лише найбільшої апостеріорної ймовірності, а не її точного значення – ранжування між класами часто витримує спрощення незалежності навіть тоді, коли самі ймовірності були б іншими.

Гаусів варіант

Для безперервних функціональних можливостей використовується наївний байєсівський гаусовий підхід, де кожен атрибут у кожній класі розглядається як нормальний розподіл, оцінений напряму з навчальних даних: середнє значення та дисперсія цього атрибута серед точок, позначених цим класом, нічого більше. Навчання, таким чином, є лише арифметикою – проходження по даних для обчислення середніх значень і дисперсій за кожним класом і атрибутом, без будь-якої ітеративної оптимізації.

function gaussianLikelihood(x, mean, variance) {
  const exponent = -((x - mean) ** 2) / (2 * variance);
  return Math.exp(exponent) / Math.sqrt(2 * Math.PI * variance);
}
function classify(point, classes) {
  let best = null, bestScore = -Infinity;
  for (const c of classes) {
    let logScore = Math.log(c.prior);
    for (let d = 0; d < point.length; d++)
      logScore += Math.log(gaussianLikelihood(point[d], c.mean[d], c.variance[d]));
    if (logScore > bestScore) { bestScore = logScore; best = c; }
  }
  return best;
}

Визначення руху тіла під дією сили тяжіння

Межа між двома класами визначається місцем, де їхні апостеріорні рівні один одному. Логарифмування перетворює гаусові розподіли на квадратичні вирази відносно x, тому в загальному випадку, коли класи мають різні дисперсії, межа є кривою – параболою, еліптичною або гіперболою залежно від відносних дисперсій. Якщо два класи випадково мають однакову дисперсію у кожному вимірі, квадратні члени точно скасовуються і межа колапсує до прямої, що пояснює, чому гаусове наївне Bayes іноді помилково вважають лінійним класифікатором – воно лінійне лише в цьому особливому, симетричному випадку.

Frequently asked questions

Чому його називають «наївним»?

Бо він припускає, що кожна особливість умовно незалежна від кожної іншої особливості за умови класу – спрощення, яке майже ніколи не є абсолютно точним. Координати x та y точки зазвичай корелюють всередині реального кластера, але класифікатор множить їх окремі ймовірності, ніби вони не пов’язані, і в практиці це рідко сильно впливає на остаточне класифікування.

Чи завжди межа рішень є прямою лінією?

Лише коли кожен клас має однакову дисперсію у кожній особливості. У цьому спеціальному випадку квадратичні члени в лог-постереоріалах скасовуються, і межа є лінійною. Коли класи мають різні дисперсії, що є загальним випадком, межа є кривою – зазвичай параболою, еліпсою або гіперболою.

Як «наївний» Байєса обробляє клас, який він ніколи не бачив значення ознаки для?

Для Гаусових ознак це рідко є серйозною проблемою, оскільки гаусівська щільність ніколи не дорівнює абсолютному нулю, лише дуже маленька далеко від середнього. Для дискретних ознак, таких як лічильники слів у класифікації тексту, справді невидиме значення множило б весь добуток на нуль, тому реалізації додають Laplace smoothing – невелику константу, додану до кожного рахунку – щоб жодна ймовірність ніколи не була абсолютно нульовою.

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте Naive Bayes Classifier і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію Naive Bayes Classifier

Що ви знайшли?

Додати кроки відтворення (опційно)