Spiegazione di Naive Bayes: funzione, vantaggi e svantaggi, applicazioni nel 2022
Pubblicato: 2021-01-05Naive Bayes è un algoritmo di apprendimento automatico che utilizziamo per risolvere problemi di classificazione. Si basa sul teorema di Bayes. È uno degli algoritmi ML più semplici ma potenti in uso e trova applicazioni in molti settori.
Supponiamo di dover risolvere un problema di classificazione e di aver creato le caratteristiche e generato l'ipotesi, ma i tuoi superiori vogliono vedere il modello. Hai numerosi punti dati (migliaia di punti dati) e molte variabili per addestrare il set di dati. La soluzione migliore per questa situazione sarebbe utilizzare il classificatore Naive Bayes, che è abbastanza più veloce rispetto ad altri algoritmi di classificazione.
In questo articolo, discuteremo in dettaglio di questo algoritmo e scopriremo come funziona. Discuteremo anche i suoi vantaggi e svantaggi insieme alle sue applicazioni nel mondo reale per capire quanto sia essenziale questo algoritmo.
Partecipa al corso di deep learning online dalle migliori università del mondo: master, programmi post-laurea per dirigenti e programma di certificazione avanzata in ML e AI per accelerare la tua carriera.
Iniziamo:
Sommario
L'ingenuo Bayes ha spiegato
Naive Bayes usa il teorema di Bayes e presuppone che tutti i predittori siano indipendenti. In altre parole, questo classificatore presuppone che la presenza di una caratteristica particolare in una classe non influisca sulla presenza di un'altra.

Ecco un esempio: considereresti un frutto arancione se è rotondo, arancione e ha un diametro di circa 3,5 pollici. Ora, anche se queste caratteristiche richiedono l'esistenza l'una dell'altra, contribuiscono tutte indipendentemente alla tua ipotesi che questo particolare frutto sia arancione. Ecco perché questo algoritmo ha 'Naive' nel suo nome.
Costruire il modello Naive Bayes è abbastanza semplice e ti aiuta a lavorare con vasti set di dati. Inoltre, questa equazione è popolare per battere molte tecniche di classificazione avanzate in termini di prestazioni.
Ecco l'equazione per Naive Bayes:
P(c|x) = P(x|c) P(c) / P(x)
P(c|x) = P(x1 | c) x P(x2 | c) x … P(xn | c) x P(c)
Qui, P (c|x) è la probabilità a posteriori secondo il predittore (x) per la classe (c). P(c) è la probabilità a priori della classe, P(x) è la probabilità a priori del predittore e P(x|c) è la probabilità del predittore per la particolare classe(c).
Oltre a considerare l'indipendenza di ogni caratteristica, Naive Bayes presume anche che contribuiscano allo stesso modo. Questo è un punto importante da ricordare.
Come funziona Naive Bayes?
Per capire come funziona Naive Bayes, dovremmo discutere un esempio.
Supponiamo di voler trovare auto rubate e di avere il seguente set di dati:
Numero di serie. | Colore | Tipo | Origine | È stato rubato? |
1 | rosso | Gli sport | Domestico | sì |
2 | rosso | Gli sport | Domestico | No |
3 | rosso | Gli sport | Domestico | sì |
4 | Giallo | Gli sport | Domestico | No |
5 | Giallo | Gli sport | Importato | sì |
6 | Giallo | SUV | Importato | No |
7 | Giallo | SUV | Importato | sì |
8 | Giallo | SUV | Domestico | No |
9 | rosso | SUV | Importato | No |
10 | rosso | Gli sport | Importato | sì |
Secondo il nostro set di dati, possiamo capire che il nostro algoritmo fa le seguenti ipotesi:
- Presuppone che ogni caratteristica sia indipendente. Ad esempio, il colore "Giallo" di un'auto non ha nulla a che fare con la sua Origine o Tipo.
- Dà a ogni caratteristica lo stesso livello di importanza. Ad esempio, conoscere solo il Colore e l'Origine potrebbe prevedere correttamente il risultato. Ecco perché ogni caratteristica è ugualmente importante e contribuisce in egual modo al risultato.
Ora, con il nostro set di dati, dobbiamo classificare se i ladri rubano un'auto in base alle sue caratteristiche. Ogni riga ha voci individuali e le colonne rappresentano le caratteristiche di ogni auto. In prima fila abbiamo un'auto sportiva rossa rubata di origine nazionale. Scopriremo se i ladri ruberebbero o meno un SUV Red Domestic (il nostro set di dati non ha una voce per un SUV Red Domestic).
Possiamo riscrivere il teorema di Bayes per il nostro esempio come:
P(y | X) = [P(X | y) P(y)P(X)]/P(X)
Qui, y sta per la variabile di classe (Was It Stolen?) per mostrare se i ladri hanno rubato l'auto non in base alle condizioni. X sta per le caratteristiche.
X = x1, x2, x3, …., xn)
Qui, x1, x2,…, xn stanno per le caratteristiche. Possiamo mapparli per essere Tipo, Origine e Colore. Ora sostituiremo X ed espanderemo la regola della catena per ottenere quanto segue:
P(y | x1, …, xn) = [P(x1 | y) P(x2 | y) … P(xn | y) P(y)]/[P(x1) P (x2) … P(xn )]
È possibile ottenere i valori per ciascuno utilizzando il set di dati e inserendo i relativi valori nell'equazione. Il denominatore rimarrà statico per ogni voce nel set di dati per rimuoverlo e iniettare proporzionalità.
P(y | x1, …, xn) ∝ P(y) i = 1nP(xi | y)
Nel nostro esempio, y ha solo due risultati, sì o no.
y = argmaxyP(y) i = 1nP(xi | y)
Possiamo creare una tabella delle frequenze per calcolare la probabilità a posteriori P(y|x) per ogni caratteristica. Quindi, modelleremo le tabelle di frequenza in tabelle di verosimiglianza e useremo l'equazione bayesiana ingenua per trovare la probabilità a posteriori di ogni classe. Il risultato della nostra previsione sarebbe la classe che ha la probabilità a posteriori più alta. Ecco le tabelle di probabilità e frequenza:
Tabella di frequenza dei colori:
Colore | È stato rubato (Sì) | È stato rubato (No) |
rosso | 3 | 2 |
Giallo | 2 | 3 |
Tabella dei colori di probabilità:
Colore | È stato rubato [P(Sì)] | È stato rubato [P(No)] |
rosso | 3/5 | 2/5 |
Giallo | 2/5 | 3/5 |

Tabella di frequenza del tipo:
Tipo | È stato rubato (Sì) | È stato rubato (No) |
Gli sport | 4 | 2 |
SUV | 1 | 3 |
Tabella di probabilità del tipo:
Tipo | È stato rubato [P(Sì)] | È stato rubato [P(No)] |
Gli sport | 4/5 | 2/5 |
SUV | 1/5 | 3/5 |
Tabella di origine della frequenza:
Origine | È stato rubato (Sì) | È stato rubato (No) |
Domestico | 2 | 3 |
Importato | 3 | 2 |
Tabella di origine di probabilità:
Origine | È stato rubato [P(Sì)] | È stato rubato [P(No)] |
Domestico | 2/5 | 3/5 |
Importato | 3/5 | 2/5 |
Il nostro problema ha 3 predittori per X, quindi secondo le equazioni che abbiamo visto in precedenza, la probabilità a posteriori P(Sì | X) sarebbe la seguente:
P(Sì | X) = P(Rosso | Sì) * P(SUV | Sì) * P(Nazionale | Sì) * P(Sì)
= ⅗ x ⅕ x ⅖ x 1
= 0,048
P(No | X) sarebbe:
P(No | X) = P(Rosso | No) * P(SUV | No) * P(Nazionale | No) * P(No)
= ⅖ x ⅗ x ⅗ x 1
= 0,144
Quindi, poiché la probabilità a posteriori P(No | X) è maggiore della probabilità a posteriori P(Sì | X), il nostro SUV Red Domestic avrà un "No" in "È stato rubato?" sezione.
L'esempio dovrebbe averti mostrato come funziona il classificatore Naive Bayes. Per avere un quadro migliore della spiegazione di Naive Bayes, dovremmo ora discuterne vantaggi e svantaggi:
Vantaggi e svantaggi di Naive Bayes
Vantaggi
- Questo algoritmo funziona rapidamente e può far risparmiare molto tempo.
- Naive Bayes è adatto per risolvere problemi di previsione multi-classe.
- Se la sua ipotesi di indipendenza delle caratteristiche è vera, può funzionare meglio di altri modelli e richiede molti meno dati di addestramento.
- Naive Bayes è più adatto per variabili di input categoriali rispetto a variabili numeriche.
Svantaggi
- Naive Bayes presuppone che tutti i predittori (o caratteristiche) siano indipendenti, e raramente si verificano nella vita reale. Ciò limita l'applicabilità di questo algoritmo nei casi d'uso del mondo reale.
- Questo algoritmo affronta il "problema di frequenza zero" in cui assegna zero probabilità a una variabile categoriale la cui categoria nel set di dati di test non era disponibile nel set di dati di addestramento. Sarebbe meglio se utilizzassi una tecnica di levigatura per superare questo problema.
- Le sue stime possono essere errate in alcuni casi, quindi non dovresti prendere molto sul serio i suoi output di probabilità.
Checkout: Spiegazione dei modelli di machine learning
Spiegazione delle applicazioni di Naive Bayes
Ecco alcune aree in cui questo algoritmo trova applicazioni:

Classificazione del testo
Il più delle volte, Naive Bayes trova l'uso della classificazione nel testo a causa della sua assunzione di indipendenza e prestazioni elevate nella risoluzione di problemi multi-classe. Gode di un alto tasso di successo rispetto ad altri algoritmi grazie alla sua velocità ed efficienza.
Analisi del sentimento
Una delle aree più importanti dell'apprendimento automatico è l'analisi del sentimento e anche questo algoritmo è abbastanza utile. L'analisi del sentiment si concentra sull'identificazione se i clienti pensano in modo positivo o negativo su un determinato argomento (prodotto o servizio).
Sistemi di raccomandazione
Con l'aiuto del filtro collaborativo, Naive Bayes Classifier crea un potente sistema di suggerimenti per prevedere se un utente vorrebbe un particolare prodotto (o risorsa) o meno. Amazon, Netflix e Flipkart sono aziende importanti che utilizzano sistemi di raccomandazione per suggerire prodotti ai propri clienti.
Ulteriori informazioni sugli algoritmi di apprendimento automatico
Naive Bayes è un algoritmo di apprendimento automatico semplice ed efficace per la risoluzione di problemi multi-classe. Trova usi in molte aree importanti delle applicazioni di apprendimento automatico come l'analisi dei sentimenti e la classificazione del testo.
Dai un'occhiata al programma di certificazione avanzato in Machine Learning e cloud con IIT Madras, la migliore scuola di ingegneria del paese per creare un programma che ti insegni non solo l'apprendimento automatico ma anche l'efficace implementazione di esso utilizzando l'infrastruttura cloud. Il nostro obiettivo con questo programma è quello di aprire le porte dell'istituto più selettivo del paese e dare agli studenti l'accesso a facoltà e risorse straordinarie per padroneggiare un'abilità che è in alto e in crescita
Che cos'è l'algoritmo di Bayes ingenuo?
Per gestire le difficoltà di categorizzazione, utilizziamo la tecnica di apprendimento automatico di Naive Bayes. Il teorema di Bayes lo sostiene. È uno degli algoritmi di apprendimento automatico più semplici ma potenti in uso, con applicazioni in una varietà di settori. Diciamo che stai lavorando su un problema di classificazione e hai già stabilito le caratteristiche e le ipotesi, ma il tuo capo vuole vedere il modello. Per addestrare il set di dati, hai un numero elevato di punti dati (migliaia di punti dati) e un numero elevato di variabili. Il classificatore Naive Bayes, che è molto più veloce di altri algoritmi di classificazione, sarebbe l'opzione migliore in questa circostanza.
Quali sono alcuni vantaggi e svantaggi delle baie ingenue?
Per problemi di previsione multi-classe, Naive Bayes è una buona scelta. Se la premessa dell'indipendenza delle funzionalità rimane vera, può superare gli altri modelli utilizzando molti meno dati di addestramento. Le variabili di input categoriali sono più adatte a Naive Bayes rispetto alle variabili di input numeriche.
In Naive Bayes, si presume che tutti i predittori (o tratti) siano indipendenti, cosa che raramente accade nella vita reale. Ciò limita l'usabilità dell'algoritmo negli scenari del mondo reale. Non dovresti prendere sul serio i suoi output di probabilità perché le sue stime possono essere sbagliate in alcuni casi.
Quali sono alcune applicazioni reali di bayes ingenui?
A causa della sua premessa di autonomia e prestazioni elevate nell'affrontare problemi multi-classe, Naive Bayes viene spesso utilizzata nella classificazione nel testo. L'analisi del sentimento è una delle applicazioni più popolari dell'apprendimento automatico e questa tecnica può aiutare anche in questo. L'obiettivo dell'analisi del sentimento è determinare se i clienti hanno sentimenti favorevoli o negativi su un particolare problema (prodotto o servizio). Naive Bayes Classifier utilizza il filtro collaborativo per creare un sofisticato sistema di suggerimenti in grado di prevedere se un utente apprezzerà o meno un determinato prodotto (o risorsa).