¿Qué es más robusto para datos ruidosos, un árbol de decisión o Naive Bayes?

Considere el siguiente ejemplo (¿muy típico?): Tiene N puntos de datos que tienen dimensiones D, todos los valores son 0 o 1. Sin ruido, suponiendo que cada dimensión sea condicionalmente independiente y un previo preciso (es decir, la probabilidad de sus etiquetas , sin conocer ninguna evidencia), literalmente no puede hacerlo mejor que Naive Bayes (usando la pérdida cuadrada, 0-1 pérdida o pérdida de registro) – al menos, esto es cierto si eres un fanático de las estadísticas bayesianas (no No creo que las estadísticas frecuentes puedan hacer declaraciones tan audaces).

(tenga en cuenta que esto se debe a que Naive Bayes es simplemente un caso especial de razonamiento bayesiano “ideal” (dados los supuestos de Naive Bayes, a saber, la independencia)).

Resulta que agregar ruido (en el sentido de “agregar cierta probabilidad de épsilon de cambiar de 1s a 0s) no importa, porque tiene una formulación equivalente a Naive Bayes sin ruido (ver al final de la publicación). En este sentido, Naive Bayes es muy (uno podría decir “perfectamente”) capaz de manejar el ruido.

Tu podrias decir:

Caramba, qué reclamo tan impresionante. No es frecuente que escuche un reclamo tan absoluto en el aprendizaje automático. ¡Voy a usar Naive Bayes para resolver todos mis problemas!

O tal vez eres más cínico y dices

No hay absolutamente ninguna manera de que eso sea cierto. Si Naive Bayes es tan genial, ¿por qué todos los problemas difíciles se resuelven mediante redes neuronales profundas?

La respuesta es que … sus suposiciones ( especialmente la independencia condicional) son generalmente erróneas … a menudo salvajemente. Considere clasificar una imagen como imagen de perro o imagen de gato con Naive Bayes en los valores de píxeles. Esto claramente va a funcionar terriblemente … pero eso se debe a que los valores de píxeles no son independientes entre sí. Del mismo modo, Naive Bayes para la clasificación de correo electrónico no deseado no es lo mejor desde el pan rebanado (aunque es bueno), porque una palabra no es independiente de las palabras a su alrededor. Sin embargo, en este segundo caso, la independencia es “más verdadera” que en el primero, con resultados predecibles.

La pregunta más importante que tiene en mente cuando decide usar Naive Bayes es esta: “¿hasta qué punto son mis variables condicionalmente independientes”? Si sus suposiciones (especialmente la independencia condicional) son (casi) verdaderas, Naive Bayes probablemente lo sorprenderá o, si hay mucho ruido, al menos superará cualquier otra cosa que intente.

Pero a medida que se aleja de la independencia, Naive Bayes comienza a sentirse demasiado confiado con sus predicciones (como mínimo) y pierde todas las garantías. Si no está seguro de su suposición de independencia, considere usar modelos alternativos . Si tiene confianza en él, use Naive Bayes .


Los árboles de decisión son modelos de alta varianza, es decir, los cambios relativamente modestos en sus datos pueden producir grandes cambios en el árbol resultante. Como resultado (¿o equivalente?) Pueden ser muy sensibles al ruido.

De hecho, esta es la razón por la cual los árboles / tocones de decisión (más que cualquier otro modelo) se benefician tanto de ser utilizados en conjuntos (es decir, bosques aleatorios), ya que la fuerza de un conjunto depende en gran medida de la variación de sus miembros.

Desafortunadamente, lo que hace que los árboles de decisión sean tan buenos en conjuntos los hace poco confiables individualmente ( especialmente sin podar). Desafortunadamente, no conozco ninguna explicación formal para la alta variabilidad, pero al menos parte de ella proviene de la idea de que dos divisiones completamente diferentes podrían ser similares por su métrica dividida (por ejemplo, ganancia de información), por lo que cambios relativamente pequeños en sus datos pueden enviar su algoritmo de construcción de árboles por caminos radicalmente diferentes.

Afortunadamente, rara vez hay una buena razón para entrenar un árbol en lugar de un bosque aleatorio, aparte de la interpretabilidad.


FONDO DE POST

Como ejemplo, supongamos que tenemos una etiqueta “y” y dos dimensiones (1 y 2).

Supongamos que [matemática] P (y | x_1, x_2) = t_1 t_2 [/ matemática] (y [matemática] P (y | x_1, \ neg x_2 = t_1 (1 – t_2) [/ matemática], etc.). agregar ruido épsilon a [matemáticas] x_1 [/ matemáticas] nos da:

[matemática] P (y | x_1, x_2) = ((1- \ epsilon) t_1 + \ epsilon (1-t_1)) t_2 [/ math]

[matemáticas] \ por lo tanto P (y | x_1, x_2) = (t_1 + \ epsilon (1 – 2t_1)) t_2 [/ matemáticas]

Este es otro problema de Naive Bayes, pero en lugar de [matemáticas] P (y | x_1) = t_1 [/ matemáticas], tenemos [matemáticas] P (y | x_1) = t_1 + \ epsilon (1 – t_1) [/ matemáticas ] El ruido épsilon ciertamente afectará la certeza de nuestro modelo, pero nadie puede hacerlo mejor (porque nuestro modelo es el modelo óptimo de Bayes, y nadie puede hacerlo mejor que el modelo óptimo de Bayes).

Alternativamente, podemos agregar el ruido a la propia etiqueta:

[matemáticas] P (y | x_1, x_2) = P (z | x_1, x_2) (1 – \ epsilon) + P (\ neg z | x_1, x_2) \ epsilon [/ math]

Y se aplica la misma idea:

[matemáticas] P (y | x_1, x_2) = P (z | x_1, x_2) (1 – \ epsilon) + (1 – P (z | x_1, x_2)) \ epsilon [/ math]

[matemática] \ por lo tanto P (y | x_1, x_2) = P (z | x_1, x_2) + \ epsilon (1 – 2P (z | x_1, x_2)) [/ matemática]

Se convierte en un problema más de Naive Bayes (de nuevo, necesariamente tendrá menos confianza debido al ruido, y sus probabilidades estarán más cerca de 50-50 (suponiendo que las etiquetas estén distribuidas uniformemente)).

EDITAR: NB es computacionalmente más rápido> Árbol (gracias Morgan Redding), claridad de respuesta actualizada.

Respuesta corta, ingenua Bayes. Respuesta más larga a continuación:

Cuando te refieres a ‘robusto’, supongo que querías decir robustez para sobreajustar. He agregado consideraciones adicionales, ya que creo que es importante cubrir los pros, los contras y el propósito antes de ir directamente a lo que es más o menos robusto:

Volumen vs ruido
Recomendaría el Naive Bayes (NB), aunque el proceso de ajuste / capacitación del árbol de decisión puede llevarle más tiempo que un NB (editado). Si su conjunto de datos es pequeño, NB también puede lograr un rendimiento razonable y sería fácil de implementar. Cuántos datos tienes a mano, qué tan escasos, etc.

Tendencia a sobreajustar y esfuerzo requerido
El árbol de decisión de vainilla tenderá a sobreajustar mucho más y requiere una poda significativa para obtener lo que desea, especialmente con datos ruidosos. En este punto, la suposición es que siempre trabajará con datos ruidosos: ¿qué tipo de salida prevista está tratando de lograr? ¿Se le pedirá que ajuste el árbol / clasificador cada vez que haya un nuevo conjunto de muestras? La implementación real sería diferente, por lo que YMMV.

Aquí se da una respuesta más completa: Árbol de decisión vs. Clasificador Naive Bayes, con la excepción de que K-NN es la opción (no estoy de acuerdo con eso).

Solo en base a la información de que los datos son “ruidosos”, es imposible decir qué algoritmo es más robusto, en mi opinión.

La toma de decisiones suele ser mejor si el tamaño de los datos es grande. Naive Bayes es mejor si el modelo es simple, los datos no son grandes y las características son independientes.

Te sugiero que pruebes ambos algoritmos y verifiques el entrenamiento, la validación y la precisión de las pruebas. Cualquiera que sea el que tenga mejor rendimiento tendrá más probabilidades de tener un mejor desempeño en el mundo real también. Amo hacer tales experimentos.

Este documento compara muchos algoritmos supervisados ​​y puede ayudarlo en su proyecto o investigación: http://www.cs.cornell.edu/~carua

Tanto el árbol de decisión como Naive Bayes son casi igualmente susceptibles al ruido. Dado que ambos dependen del recuento de frecuencia de los atributos en el conjunto de entrenamiento.

Los árboles de decisión tienden a ajustarse demasiado al modelo de entrenamiento y eventualmente se podan, generalmente se eliminan los atributos ruidosos, lo que lo hace mejor contra el ruido. Pero los árboles de decisión requieren una gran cantidad de datos para crear un mejor modelo, Naive Bayes, por otro lado, puede funcionar bien con menos datos, ya que es un modelo probabilístico. Entonces, en caso de ruido, podemos permitirnos tirar los atributos ruidosos.

Al final, depende de la implementación y del tipo de conjunto de datos utilizado. La mejor manera es implementar ambos y verificar la solidez de un conjunto de datos en particular.

Recientemente simulé esto.

Agregué niveles variables de ruido a las etiquetas de entrenamiento en clasificación, y luego miré cuánto este ruido deterioró el rendimiento real (en la etiqueta sin ruido) en la validación … para diferentes algoritmos.

Como era de esperar, los modelos más simples como Naive Bayes se deterioran muy lentamente. Los modelos con alta complejidad como árboles de decisión y refuerzo se deterioran mucho más rápido.

De acuerdo con Morgan para el comportamiento observado.