Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Naive Bayes

I classificatori Naive Bayes applicano il teorema di Bayes e presumono che le caratteristiche siano indipendenti data la classe. Varianti, filtraggio dello spam, limiti e codice Python.

Naive Bayes è una famiglia di classificatori probabilistici che applica il teorema di Bayes partendo dall'ipotesi «ingenua» che le caratteristiche siano indipendenti tra loro una volta nota la classe. Questa ipotesi consente al modello di apprendere separatamente la distribuzione di ciascuna caratteristica in ogni classe, quindi l'addestramento consiste in un unico passaggio di conteggio sui dati di addestramento e la previsione combina poche probabilità memorizzate. Nel 1998, Mehran Sahami e i colleghi lo applicarono alla posta indesiderata; i filtri antispam bayesiani basati su questo metodo si diffusero nei primi anni 2000, e il metodo resta una baseline rapida ed efficace nell'apprendimento supervisionato per il testo e altri dati ad altissima dimensionalità.

Come funziona Naive Bayes#

Il teorema di Bayes fornisce la probabilità di una classe C date le caratteristiche x₁ … xₙ come P(C | x) = P(C)·P(x | C) / P(x). Stimare P(x | C) per ogni combinazione dei valori delle caratteristiche richiederebbe un dataset enorme; perciò Naive Bayes assume l'indipendenza condizionale e fattorizza il termine in P(x₁ | C)·P(x₂ | C)·…·P(xₙ | C). Il classificatore prevede la classe con il prodotto più grande tra la probabilità a priori P(C) e tale termine, tralasciando P(x), che è uguale per tutte le classi. Le implementazioni sommano i logaritmi delle probabilità invece di moltiplicare le probabilità, perché il prodotto di migliaia di numeri piccoli causa underflow nell'aritmetica in virgola mobile.

Il conteggio crea un problema: una parola mai apparsa con una classe durante l'addestramento riceve probabilità zero, azzerando la probabilità di quella classe per qualsiasi documento che la contenga, a prescindere dalle altre evidenze. Lo smoothing additivo risolve il problema aggiungendo un pseudoconteggio α a ogni conteggio; α = 1 corrisponde allo smoothing di Laplace, predefinito in scikit-learn.

Tipi di classificatori Naive Bayes#

Le varianti differiscono per la distribuzione ipotizzata per ciascuna caratteristica all'interno di una classe. Naive Bayes multinomiale modella i conteggi, per esempio quante volte appare ogni parola in un documento, ed è la scelta standard per il testo. Naive Bayes bernoulliano modella la presenza o l'assenza binaria e penalizza anche l'assenza delle parole tipiche di una classe. Naive Bayes gaussiano adatta una distribuzione normale, con media e varianza proprie, a ogni caratteristica continua di ciascuna classe. Naive Bayes complementare stima le statistiche delle parole di ciascuna classe usando tutte le altre classi, risultando adatto ai dataset testuali sbilanciati; Naive Bayes categorico gestisce invece caratteristiche che assumono un insieme fisso di valori categoriali.

Questo esempio addestra MultinomialNB di scikit-learn sui conteggi delle parole di sei messaggi etichettati e valuta due nuovi messaggi:

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB

# Tiny labeled corpus: 1 = spam, 0 = legitimate
texts = [
    "win a free prize now",
    "free cash bonus click now",
    "claim your free reward today",
    "meeting moved to monday",
    "lunch with the team today",
    "project review notes attached",
]
labels = [1, 1, 1, 0, 0, 0]

# Count words, then learn class priors and per-class word probabilities (alpha=1 is Laplace smoothing)
vectorizer = CountVectorizer()
model = MultinomialNB(alpha=1.0)
model.fit(vectorizer.fit_transform(texts), labels)

new = vectorizer.transform(["free prize today", "notes from the monday meeting"])
print(f"P(spam): {model.predict_proba(new)[:, 1].round(3)}")

Il primo messaggio riceve una probabilità di spam pari a 0,881, perché «free» e «prize» compaiono solo nello spam; il secondo riceve 0,053, perché «notes», «monday» e «meeting» compaiono solo nella posta legittima. Senza smoothing, «free» avrebbe probabilità zero nella classe legittima e qualsiasi messaggio legittimo che la contenesse verrebbe classificato come spam con certezza.

Punti di forza e limiti#

L'addestramento e la previsione richiedono un tempo lineare rispetto al numero di campioni e di caratteristiche, quindi Naive Bayes gestisce milioni di documenti con una latenza di inferenza molto bassa; le implementazioni di scikit-learn si aggiornano con nuovi batch tramite partial_fit per l'apprendimento online. Richiede anche pochi dati: Ng e Jordan (2001) hanno dimostrato che Naive Bayes si avvicina al proprio errore asintotico con meno esempi di addestramento rispetto alla regressione logistica, che raggiunge un errore inferiore quando i dati sono abbondanti. Le previsioni di classe sono spesso accurate anche quando le caratteristiche sono correlate, perché è sufficiente ordinare correttamente le classi.

Le probabilità, invece, sono calibrate male. Le caratteristiche correlate contano più volte le stesse evidenze, spingendo i punteggi verso 0 o 1; perciò, le applicazioni che richiedono valori di confidenza affidabili li ricalibrano su dati tenuti da parte. Un insieme di parole indipendenti non può inoltre rappresentare l'ordine delle parole o le interazioni: «non buono» appare come una combinazione di negazione e parola positiva, mentre i modelli dotati di attenzione, come i Transformer, interpretano il testo nel suo contesto.

Applicazioni#

  • Filtraggio dello spam: I filtri per la posta assegnano un punteggio a ciascun messaggio in base alle parole, agli schemi relativi al mittente e ai link che contiene; aggiornano inoltre le statistiche delle parole quando gli utenti contrassegnano i messaggi come spam.
  • Analisi del sentiment: Recensioni e richieste di assistenza vengono etichettate come positive o negative in base alle parole usate; è un primo modello comune prima del fine-tuning di un modello linguistico.
  • Instradamento dei documenti: Articoli di giornale, atti legali e richieste di assistenza vengono assegnati a temi o code, spesso usando Naive Bayes complementare quando alcune categorie sono molto più rare di altre.
  • Baseline per l'elaborazione del linguaggio naturale (NLP): L'identificazione della lingua e l'assegnazione di argomenti usano Naive Bayes come rapido termine di confronto che ogni modello più costoso deve superare.

Naive Bayes nella visione artificiale#

I pixel vicini sono fortemente correlati, quindi trattare i pixel grezzi come caratteristiche indipendenti ignora i bordi e le texture che definiscono gli oggetti, che le reti neurali convoluzionali catturano elaborando insieme le aree circostanti. Prima del deep learning, l'approccio bag-of-visual-words applicava Naive Bayes agli istogrammi di descrittori locali, come SIFT, raggruppati in parole visive con il clustering k-means, il corrispettivo visivo dei conteggi delle parole. I conteggi delle classi di oggetti rilevate da YOLO26 con il rilevamento di oggetti formano lo stesso tipo di vettore di conteggi; un modello Naive Bayes multinomiale può quindi classificare una scena come strada, cucina o ufficio basandosi solo sugli oggetti rilevati.

  • Reti bayesiane: Naive Bayes è la rete bayesiana più semplice: la classe è l'unico genitore di ogni caratteristica e non ci sono archi tra le caratteristiche. Le reti bayesiane generali aggiungono questi archi per modellare le dipendenze.
  • Inferenza bayesiana: «Bayes» in Naive Bayes fa riferimento al teorema di Bayes. Naive Bayes standard stima ogni probabilità come frequenza smussata, ovvero come singola stima puntuale, mentre i metodi bayesiani completi mantengono una distribuzione su ogni parametro.
  • Macchine a vettori di supporto (SVM): Apprendono direttamente un confine discriminativo, con costi di addestramento più elevati. Nella classificazione del sentiment, Wang e Manning (2012) hanno rilevato che Naive Bayes era più accurato delle SVM su brevi estratti, mentre le SVM erano più accurate sulle recensioni complete.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning