Perché gli ingenui classificatori bayesiani si comportano così bene?


38

I classificatori Naive Bayes sono una scelta popolare per i problemi di classificazione. Ci sono molte ragioni per questo, tra cui:

  • "Zeitgeist" - consapevolezza diffusa dopo il successo dei filtri antispam di circa dieci anni fa
  • Facile da scrivere
  • Il modello di classificatore è veloce da costruire
  • Il modello può essere modificato con nuovi dati di addestramento senza dover ricostruire il modello

Tuttavia, sono "ingenui" - cioè presumono che le caratteristiche siano indipendenti - questo contrasta con altri classificatori come i classificatori di Entropia massima (che sono lenti da calcolare).

L'ipotesi di indipendenza di solito non può essere assunta e nella maggior parte dei casi (la maggior parte?), Incluso l'esempio del filtro antispam, è semplicemente sbagliata.

Quindi perché il Classificatore Naive Bayes funziona ancora molto bene in tali applicazioni, anche quando le funzionalità non sono indipendenti l'una dall'altra?

Risposte:


23

Questo documento sembra dimostrare (non posso seguire la matematica) che bayes è buono non solo quando le funzionalità sono indipendenti, ma anche quando le dipendenze delle funzionalità tra loro sono simili tra le funzionalità:

In questo articolo, proponiamo una nuova spiegazione sulla superba prestazione di classificazione degli ingenui Bayes. Mostriamo che, essenzialmente, la distribuzione della dipendenza; vale a dire come la dipendenza locale di un nodo si distribuisce in ciascuna classe, in modo uniforme o irregolare, e come le dipendenze locali di tutti i nodi lavorano insieme, in modo coerente (supportando una certa classificazione) o incoerentemente (annullandosi a vicenda), svolge un ruolo cruciale. Pertanto, indipendentemente da quanto siano forti le dipendenze tra gli attributi, Bayes ingenuo può essere comunque ottimale se le dipendenze si distribuiscono uniformemente nelle classi o se le dipendenze si annullano a vicenda


1
Qualitativamente, ha senso. Le funzioni dipendenti determineranno la ponderazione, quindi una distribuzione uniforme o una distribuzione che si annulla, annullerà questa ponderazione. Tuttavia, le dipendenze "lop-side" probabilmente funzioneranno ancora male? Immagino per l'esempio di spam, dovremmo aspettarci molte dipendenze per le funzionalità + spam, ma non necessariamente -spam nel caso generale. Tuttavia, una persona potrebbe ricevere molte e-mail legittime su un argomento specifico, quindi in quel caso ci sarebbero molte funzioni dipendenti che bilancerebbero le funzionalità + spam.
vinto l'

3
Consiglio anche questo documento: cs.stanford.edu/people/ang/papers/…
Dov

25

La maggior parte dei problemi di Machine Learning sono facili!

Vedi ad esempio sul blog di John Langford . Quello che sta davvero dicendo è che ML semplifica i problemi, e questo rappresenta un problema per i ricercatori in termini di se dovrebbero provare ad applicare metodi a una vasta gamma di problemi semplici o attaccare problemi più difficili. Tuttavia, il sottoprodotto è che per molti problemi i dati sono separabili linearmente (o almeno quasi), nel qual caso qualsiasi classificatore lineare funzionerà bene! Accade così che gli autori del documento originale sul filtro antispam abbiano scelto di usare Naive Bayes, ma se avessero usato Perceptron, SVM, Fisher Discriminant Analysis, Logistic Regression, AdaBoost o praticamente qualsiasi altra cosa avrebbe probabilmente funzionato.

Il fatto che sia relativamente semplice codificare l'algoritmo aiuta. Ad esempio, per codificare SVM è necessario disporre di un Risolutore QP oppure codificare l' algoritmo SMO che non è un'attività banale. Ovviamente potresti scaricare libsvm ma all'inizio questa opzione non era disponibile. Tuttavia, ci sono molti altri algoritmi semplici (incluso il Perceptron menzionato sopra) che sono altrettanto facili da codificare (e consentono aggiornamenti incrementali come menziona la domanda).

Per problemi difficili non lineari sono ovviamente necessari metodi in grado di gestire le non lineari. Ma anche questo può essere un compito relativamente semplice quando vengono impiegati i metodi del kernel . La domanda spesso diventa "Come posso progettare una funzione kernel efficace per i miei dati" piuttosto che "Quale classificatore dovrei usare".


Penso che "facile" sia forse relativo, ma sì la classificazione dello spam è "più facile" di quanto si pensi la maggior parte delle persone ha assunto circa 12 anni fa. I metodi del kernel potrebbero essere un approccio alla produzione di un classificatore semplice e veloce, ma "Come posso progettare una funzione del kernel efficace per i miei dati" sembra che parte dell'apprendimento automatico diventi "apprendimento umano" (cioè trovare una migliore comprensione dei dati e le sue interrelazioni)?
vinto il

1
Sì, è relativo, e ci sono anche molti problemi, quindi ce ne sono ancora molti difficili! E penso che il confine tra ML e apprendimento umano sia sempre sfocato ... se stai creando un modello probabilistico super fantasioso stai facendo la stessa cosa. Il buon vecchio NFLT ci dice che un metodo non può risolvere tutti i problemi, per quanto complesso sia quel metodo, quindi avremo sempre bisogno degli umani per progettare modelli / kernel / algoritmi o qualsiasi cosa sia necessaria per ottenere di più dai tuoi dati.
TCD

vero - sicuramente una linea sfocata!
vinto il

1
Perché il downvote? Vuoi commentare?
TC

7

Avendo ampiamente utilizzato i classificatori bayesiani naive negli strumenti di classificazione della segmentazione, la mia esperienza è coerente con i documenti pubblicati che dimostrano che la NBC è comparabile in termini di accuratezza con i discriminanti lineari e CART / CHAID quando sono disponibili tutte le variabili predittive.

(Per precisione, sia il "tasso di successo" nel prevedere la soluzione corretta come quella più probabile, sia la calibrazione, il che significa che, per esempio, una stima dell'adesione del 75% è corretta nel 70% -80% dei casi.)

I miei due centesimi sono che NBC funziona così bene perché:

  • L'interrelazione tra le variabili predittive non è così forte come si potrebbe pensare (i punteggi di informazioni reciproche da 0,05 a 0,15 sono tipici)
  • La NBC è in grado di gestire bene le variabili polittiche discrete, non richiedendoci di dicotomizzarle grossolanamente o di trattare le variabili ordinali come cardinali.
  • NBC utilizza tutte le variabili contemporaneamente mentre CART / CHAID ne utilizza solo alcune

Ed è allora che vengono osservate tutte le variabili. Ciò che rende davvero NBC lontano dal pacchetto è che si degrada con grazia quando una o più variabili predittive mancano o non vengono osservate. In questo caso, l'analisi CART / CHAID e l'analisi discriminante lineare si bloccano.

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.