Come gestire un fattore zero nel calcolo del classificatore Naive Bayes?


14

Se ho un set di dati di allenamento e mi alleno un classificatore Naes Bayes su di esso e ho un valore di attributo che ha probabilità zero. Come posso gestirlo se in seguito voglio prevedere la classificazione su nuovi dati? Il problema è che se nel calcolo c'è uno zero, l'intero prodotto diventa zero, indipendentemente da quanti altri valori ho ottenuto che forse troverebbero un'altra soluzione.

Esempio:

P(x|spam=yes)=P(TimeZone=US|spam=yes)P(GeoLocation=EU|spam=yes) ... =0.004

P(x|spam=no)=P(TimeZone=US|spam=no)P(GeoLocation=EU|spam=no) ... =0

L'intero prodotto diventa perché nei dati di allenamento l'attributo TimeZone US è sempre Sì nel nostro piccolo set di dati di allenamento. Come posso gestirlo? Dovrei usare un set più ampio di dati di allenamento o esiste un'altra possibilità per superare questo problema?0


Se si verifica un valore di attributo discreto, la sua probabilità non può essere zero, per definizione.
Paul,

perché aggiungiamo il problema della frequenza 1 in 0 qual è la logica dietro questo perché non aggiungiamo un altro numero.
Aftab Hussaiin,

Risposte:


13

Un approccio per superare questo "problema di frequenza zero" in un'impostazione bayesiana consiste nell'aggiungerne uno al conteggio per ogni combinazione di classe valore-attributo quando non si verifica un valore di attributo con ogni valore di classe. Ad esempio, supponiamo che i tuoi dati di allenamento siano così:

Spam=yeSSpam=noFuso orario=US105Fuso orario=EU00

P(Fuso orario=US|Spam=yeS)=1010=1

P(Fuso orario=EU|Spam=yeS)=010=0

Quindi dovresti aggiungerne uno per ogni valore in questa tabella quando lo usi per calcolare le probabilità:

Spam=yeSSpam=noFuso orario=US116Fuso orario=EU11

P(Fuso orario=US|Spam=yeS)=1112

P(Fuso orario=EU|Spam=yeS)=112


4
Infatti. Nota che a volte potresti aggiungere valori diversi da uno. Per i dettagli, consultare en.wikipedia.org/wiki/Additive_smoothing
DaL
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.