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.