2011-02-01 12 views
8

Mi chiedo se un classificatore Bayes ha senso per un'applicazione in cui la stessa frase "servito freddo" (per esempio) è "buono" quando associata alcune cose (birra, soda), ma "cattivo" quando connessi ad altre cose (bistecca, pizza, hamburger)?chiedendosi se il classificatore di Bayes abbia il giusto approccio?

Quello che mi chiedo è se allenare un classificatore di Bayes che ("birra fredda" e "soda fredda" sono "buoni") annulla la formazione che "la bistecca viene servita fredda" e "l'hamburger servito freddo" sono "cattive" ").

Oppure, può Bayes (correttamente) essere addestrato che "servito freddo" potrebbe essere "buono" o "cattivo" a seconda di ciò che è associato?

Ho trovato molte buone informazioni su Bayes, qui e altrove, ma non è stato in grado di determinare se è adatto a questo tipo di applicazione in cui la risposta a una frase positiva o negativa è "dipende"?

+0

nella nostra applicazione, a proposito, abbiamo un numero relativamente piccolo di sostantivi (sotto 100) e un numero relativamente piccolo di aggettivi (50) in modo da poter predefinire allegramente una struttura abbastanza completa di combinazioni buone/cattive ... ma non siamo sicuri di quale tipo di "motore di punteggio" alternativo consentirebbe di assegnare un punteggio ai msgs brevi. – jpwynn

risposta

6

A Naive Bayes classifier assume l'indipendenza tra gli attributi. Ad esempio, si supponga di avere i seguenti dati:

mela frutta rossa BAD
frutta mela verde BAD
frutta banana gialla BUONA
verdura rosso BUONA

Indipendenza significa che gli attributi (nome, frutta, colore) sono indipendenti; per esempio, quella "mela" potrebbe essere "frutta" o "verdura". In questo caso gli attributi "nome" e "frutto" dipendono dal fatto che un classificatore di Naive Bayes è troppo ingenuo (probabilmente classificherà "mela gialla frutta" come MALE perché è una mela E è un frutto - ma non tutte le mele frutta?).

Per rispondere alla tua domanda iniziale, un classificatore Naive Bayes presuppone che la classe (BUONA o CATTIVO) dipende in modo indipendente da ciascun attributo, il che non è il caso: mi piace la mia pizza calda e la mia soda fredda.

MODIFICA: Se stai cercando un classificatore che abbia qualche utilità ma in teoria potrebbe avere numerosi errori di Tipo I e Tipo II, Naive Bayes è un tale classificatore. Naive Bayes è meglio di niente, ma c'è un valore misurabile nell'usare un classificatore meno ingenuo.

+0

grande spiegazione e risposta! Grazie!!! – jpwynn

+1

scusate ma ho votato. mentre è vero che l'ingenuo bayes assume l'indipendenza tra gli attributi (da qui il nome ingenuo), in pratica questo non è un problema reale. il grande esempio sono i filtri antispam che funzionano benissimo anche se le parole nelle e-mail sono altamente dipendenti l'una dall'altra –

+0

Grazie per il feedback. Respingo Naive Bayes dal momento che comporterà più errori di tipo I e di tipo II rispetto agli approcci che troverei adatti. – Daniel

2

non mi respingere Bayes veloce come Daniel suggerito. La qualità (prestazioni in parole povere) di Bayes dipende soprattutto dalla quantità e dalla qualità dei dati di allenamento e dalle ipotesi che si prendono quando si sviluppa l'algoritmo.

Per darvi un breve esempio, se vi date da mangiare solo {'beer cold' =>: good, 'pizza cold' =>: bad} la parola 'cold' non influenza effettivamente la classificazione. Deciderà solo che tutte le birre sono buone e tutte le pizze sono cattive (vedi quanto è intelligente? :))

In ogni caso, la risposta è troppo breve per spiegare questo in dettaglio, consiglierei di leggere il saggio di Paul Graham su come ha sviluppato il suo filtro antispam: nota che ha creato il proprio algoritmo basato su Bayes e non solo sul classificatore standard. Nella mia esperienza (finora così breve) sembra che tu stia meglio seguendolo nello sviluppo di una versione specifica dell'algoritmo per problemi specifici a portata di mano in modo da avere il controllo su varie ipotesi specifiche del dominio.

Puoi seguire i miei tentativi (in Ruby) qui se siete interessati: http://arubyguy.com/2011/03/03/bayes-classification-update/