¿Por qué los ingenuos clasificadores bayesianos funcionan tan bien?

38

Los clasificadores ingenuos de Bayes son una opción popular para los problemas de clasificación. Hay muchas razones para esto, que incluyen:

  • "Zeitgeist": conciencia generalizada después del éxito de los filtros de spam hace aproximadamente diez años
  • Fácil de escribir
  • El modelo clasificador es rápido de construir
  • El modelo se puede modificar con nuevos datos de entrenamiento sin tener que reconstruir el modelo.

Sin embargo, son 'ingenuos', es decir, suponen que las características son independientes, esto contrasta con otros clasificadores como los clasificadores de máxima entropía (que son lentos para calcular).

El supuesto de independencia generalmente no se puede suponer, y en muchos (¿la mayoría de los casos?), Incluido el ejemplo del filtro de spam, simplemente es incorrecto.

Entonces, ¿por qué el clasificador Naive Bayes todavía funciona muy bien en tales aplicaciones, incluso cuando las características no son independientes entre sí?

winwaed
fuente

Respuestas:

23

Este documento parece demostrar (no puedo seguir las matemáticas) que bayes es bueno no solo cuando las características son independientes, sino también cuando las dependencias de las características entre sí son similares entre las características:

En este artículo, proponemos una explicación novedosa sobre el excelente desempeño de clasificación de los ingenuos Bayes. Mostramos que, esencialmente, la distribución de dependencia; es decir, cómo la dependencia local de un nodo se distribuye en cada clase, de manera uniforme o desigual, y cómo las dependencias locales de todos los nodos trabajan juntas, de manera consistente (apoyando una cierta clasificación) o inconsistentemente (cancelando entre sí), juega un papel crucial. Por lo tanto, no importa cuán fuertes sean las dependencias entre los atributos, los ingenuos Bayes aún pueden ser óptimos si las dependencias se distribuyen uniformemente en las clases, o si las dependencias se cancelan entre sí.

jb.
fuente
1
Cualitativamente, eso tiene sentido. Las características dependientes darán lugar a una ponderación, por lo que una distribución uniforme o una distribución que cancele, cancelará esta ponderación. Sin embargo, ¿las dependencias "de lado" probablemente van a funcionar mal todavía? Supongo que para el ejemplo de spam, deberíamos esperar muchas dependencias para las funciones + spam, pero no necesariamente las características de spam en el caso general. Sin embargo, una persona podría recibir muchos correos electrónicos legítimos sobre un tema específico, por lo que en ese caso habría muchas funciones dependientes, lo que equilibraría las funciones + spam.
winwaed
3
También recomiendo este artículo: cs.stanford.edu/people/ang/papers/…
Dov
25

¡La mayoría de los problemas de Machine Learning son fáciles!

Ver por ejemplo en el blog de John Langford . Lo que realmente está diciendo es que ML facilita los problemas, y esto presenta un problema para los investigadores en términos de si deberían tratar de aplicar métodos a una amplia gama de problemas simples o atacar problemas más difíciles. Sin embargo, el subproducto es que, para muchos problemas, los datos son separables linealmente (o al menos casi), ¡en cuyo caso cualquier clasificador lineal funcionará bien! Sucede que los autores del artículo original del filtro de spam optaron por usar Naive Bayes, pero si hubieran usado un Perceptron, SVM, Análisis discriminante de Fisher, Regresión logística, AdaBoost, o casi cualquier otra cosa, probablemente habría funcionado también.

El hecho de que sea relativamente fácil codificar el algoritmo ayuda. Por ejemplo, para codificar el SVM, debe tener un QP Solver o codificar el algoritmo SMO, que no es una tarea trivial. Por supuesto, podría descargar libsvm, pero en los primeros días esa opción no estaba disponible. Sin embargo, hay muchos otros algoritmos simples (incluido el Perceptron mencionado anteriormente) que son tan fáciles de codificar (y permiten actualizaciones incrementales como la pregunta menciona).

Por supuesto, para problemas no lineales difíciles, se necesitan métodos que puedan tratar con no lineales. Pero incluso esto puede ser una tarea relativamente simple cuando se emplean métodos Kernel . La pregunta a menudo se convierte en "¿Cómo diseño una función de núcleo efectiva para mis datos" en lugar de "¿Qué clasificador debo usar".

tdc
fuente
Creo que "fácil" es quizás relativo, pero sí, la clasificación de spam es "más fácil" de lo que creo que la mayoría de la gente suponía hace 12 años más o menos. Los métodos de kernel pueden ser un enfoque para producir un clasificador rápido y simple, pero "¿Cómo diseño una función de kernel efectiva para mis datos?" Parece que parte del aprendizaje automático se convierte en "aprendizaje humano" (es decir, encontrar una mejor comprensión de los datos y sus interrelaciones)
winwaed
1
Sí, es relativo, y también hay muchos problemas, ¡así que todavía hay muchos problemas difíciles! Y creo que el límite entre el aprendizaje automático y el aprendizaje humano siempre es borroso ... si estás creando un modelo probabilístico súper elegante, estás haciendo lo mismo. El viejo NFLT nos dice que un método no puede resolver todos los problemas, por complejo que sea el método, por lo que siempre necesitaremos humanos para diseñar modelos / núcleos / algoritmos o lo que sea necesario para sacar más provecho de sus datos.
tdc
cierto - definitivamente una línea borrosa!
winwaed
1
¿Por qué el voto negativo? ¿Quieres comentar?
tdc
7

Después de haber usado los clasificadores bayesianos ingenuos ampliamente en las herramientas de clasificación de segmentación, mi experiencia es consistente con los trabajos publicados que muestran que NBC es comparable en precisión a discriminante lineal y CART / CHAID cuando todas las variables predictoras están disponibles.

(Por precisión, tanto la "tasa de aciertos" al predecir la solución correcta como la más probable, así como la calibración, lo que significa, por ejemplo, una estimación del 75% de membresía es correcta en el 70% -80% de los casos).

Mis dos centavos es que NBC funciona muy bien porque:

  • La correlación entre las variables predictoras no es tan fuerte como uno podría pensar (las puntuaciones de información mutua de 0.05 a 0.15 son típicas)
  • NBC puede manejar bien las variables politómicas discretas, no requiriendo que las dicotomicemos groseramente o tratemos las variables ordinales como cardinales.
  • NBC usa todas las variables simultáneamente mientras que CART / CHAID usa solo algunas

Y ahí es cuando se observan todas las variables. Lo que hace que NBC realmente se separe del paquete es que se degrada con gracia cuando faltan o no se observan una o más variables predictoras. CART / CHAID y el análisis discriminante lineal se detienen en ese caso.

prototipo
fuente