Com'è corretto il modello di evento dell'algoritmo di bayes naive multinomial

1

Il modello di evento di NB multinomiale è questo:

P (x1, x2 ... Xm | y = k) = P (x1 | = k) * P (x2 | y = k) * ... * P (xm | y = k),

dove x è la parola nel documento. Quindi lo applichiamo al modello bag of words. P = P (x1 | y = k) ^ n1 * P (x2 | y = k) ^ n2 * ... * P (xm | y = k) ^ nm. La xi è l'ultima parola nel dizionario, ni è la frequenza nel documento.

Bene, ho qualche problema con esso

  • se tutti i ni sono 0, allora la probabilità diventa 1, poiché x ^ 0 è 1. Questo è strano coz tutto il documento vuoto ha 1 probabilità.

  • Quando un documento contiene molti 'buy', dovrebbe essere identificato come spam ma l'esponenziale rende P ('buy' | y = 'spam') ^ n veramente piccolo, quindi il documento contiene meno 'buy' ha una maggiore probabilità di spam?

  • l'algoritmo MNB può essere implementato in 60 righe di codice Python (usando operazioni con matrice densa) e in realtà non può funzionare bene come il problema di classificazioni come "10 o più classi". Il risultato della classificazione dei "20news dati con tutte le classi" mi ha dato un'accuratezza del 42%. Beh, non sono sorpreso, visto che ha i problemi che ho citato.

posta Xeechem 19.01.2015 - 13:52
fonte

0 risposte

Leggi altre domande sui tag