KlassifikationO: O(n*d)

Naive Bayes

Naive Bayes er en probabilistisk klassifikationsalgoritme baseret på Bayes' sætning, med den forsimplende (naive) antagelse at alle features er indbyrdes uafhængige. Den er ekstremt hurtig at træne og forbliver et stærkt valg til tekstklassifikation, selv i en tid domineret af neurale netværk.

Naive Bayes er en familie af klassifikationsalgoritmer baseret på Bayes' sætning, opkaldt efter matematikeren Thomas Bayes fra 1700-tallet. Algoritmen har været en del af machine learning-værktøjskassen siden 1960'erne og er stadig relevant i dag, primært fordi den er hurtig, kræver forbavsende lidt træningsdata og fungerer overraskende godt på tekstklassifikation.

Bayes' sætning beskriver hvordan sandsynligheden for en hændelse opdateres i lyset af ny evidens: P(A|B) = P(B|A) × P(A) / P(B). I klassifikationssammenhæng oversættes det til at beregne sandsynligheden for en klasse givet de observerede features: P(klasse|features) = P(features|klasse) × P(klasse) / P(features). Algoritmen vælger den klasse med højest posterior-sandsynlighed.

Det "naive" element er antagelsen om betinget uafhængighed mellem features givet klassen. I virkeligheden er features sjældent fuldstændig uafhængige - i en e-mail hænger ordet "gratis" ofte sammen med ordet "vind" - men denne forsimpling gør beregningen dramatisk enklere, fordi den fælles sandsynlighed for alle features kan beregnes som et simpelt produkt af individuelle sandsynligheder i stedet for en kompleks fælles fordeling. Overraskende nok fungerer algoritmen godt i praksis selv når antagelsen er teknisk forkert, fordi det ofte kun er den relative rangordning af klassernes sandsynligheder der betyder noget for den endelige beslutning.

Der findes tre hovedvarianter afhængigt af feature-typen. Gaussian Naive Bayes antager at kontinuerte features er normalfordelte inden for hver klasse, og bruges til numeriske data som målinger og sensorværdier. Multinomial Naive Bayes modellerer diskrete tælleværdier og er standardvalget til tekstklassifikation, hvor features er ordfrekvenser eller TF-IDF-vægte. Bernoulli Naive Bayes bruger binære features (er ordet til stede eller ej) og fungerer godt på korte tekster som SMS-beskeder.

Træningsprocessen er ekstremt hurtig sammenlignet med de fleste andre algoritmer. For hver klasse beregnes blot den forudgående sandsynlighed (hvor hyppig er klassen i træningsdataen) og de betingede sandsynligheder for hver feature-værdi givet klassen. Der er ingen iterativ optimering, ingen gradient descent og ingen konvergenskriterier at vente på. Dette gør Naive Bayes ideel til meget store datasæt og til situationer hvor modellen skal genoptrænes ofte.

Laplace-smoothing (også kaldet additiv smoothing) er en kritisk teknisk detalje. Uden den vil en feature-værdi der aldrig er observeret sammen med en bestemt klasse i træningsdataen give en sandsynlighed på præcis nul, hvilket nulstiller hele produktet uanset hvor stærke de øvrige features er. Laplace-smoothing tilføjer en lille konstant til alle tællinger, så ingen sandsynlighed nogensinde bliver eksakt nul.

Spamfiltrering er den klassiske anvendelse og har været det siden de tidligste e-mail-systemer i 1990'erne. Ordet "gratis", "vind" eller "klik her" har markant højere sandsynlighed for at optræde i spam end i legitim post, og Naive Bayes kombinerer disse individuelle signaler til en samlet klassifikation med bemærkelsesværdig præcision, ofte over 95% på velkuraterede datasæt.

Sentimentanalyse er en anden udbredt anvendelse, hvor algoritmen klassificerer tekst som positiv, negativ eller neutral baseret på ordvalg. Dokumentklassifikation, hvor artikler eller support-tickets automatisk sorteres i kategorier, bruger samme princip. Naive Bayes er desuden en populær baseline i medicinsk diagnostik, hvor symptomer behandles som (betinget uafhængige) features der peger mod en given sygdom.

Sammenlignet med logistisk regression og SVM er Naive Bayes typisk mindre præcis når features faktisk er stærkt korrelerede, men den kompenserer med markant hurtigere træning og evnen til at håndtere meget høj-dimensionelle feature-rum, som ordforråd på titusindvis af unikke ord, uden at kollapse under beregningsbyrden. Algoritmen kræver desuden relativt lidt træningsdata for at give brugbare resultater, hvilket gør den til et fornuftigt førstevalg når data er knapt.

Begrænsningerne er tydelige i domæner hvor feature-interaktioner er afgørende. Billedgenkendelse, hvor naboliggende pixler er stærkt afhængige af hinanden, er et dårligt match. Her overtager convolutional neural networks fuldstændigt. Naive Bayes' relevans i 2026 ligger primært i situationer hvor hastighed, enkelhed og et lille datakrav vejer tungere end den sidste procent i præcision - som en hurtig baseline, i ressourcebegrænsede miljøer eller som første filter i en flertrins-klassifikationspipeline.

// anvendelsesområder

Hvor bruges Naive Bayes?

SpamfiltreringSentimentanalyseDokumentklassifikationMedicinsk diagnostik