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.
- ¿Cómo funciona el refuerzo con los algoritmos de clasificación del árbol de decisión?
- ¿Cuál es la mejor introducción al aprendizaje profundo para un estudiante graduado con experiencia en matemáticas y CS?
- ¿Cuáles son algunos marcos de tiempo realistas para dominar diversas habilidades de programación, como el dominio de Python para la ciencia de datos, git, etc.?
- ¿Qué pensaría BF Skinner del aprendizaje automático?
- Estoy atrapado en la regresión. ¿Qué debo aprender después de esto?
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)).