Algoritmo ingenuo de Bayes en aprendizaje automático
Algoritmo clasificador ingenuo de Bayes
El clasificador es un algoritmo de aprendizaje automático que clasifica los datos en una o más de un conjunto de “clases”. El clasificador de correo electrónico es un ejemplo de un clasificador que analiza los correos electrónicos para filtrarlos por etiqueta de clase: spam o no spam.
El clasificador Naive Bayes en aprendizaje automático es un aprendizaje automático supervisado para tareas de clasificación.
Naive Bayes se utiliza para resolver problemas de clasificación. Predice sobre la base de la probabilidad de un objeto. Naive Bayes se basa en el teorema de Bayes y se utiliza principalmente para la clasificación de textos. Naive Bayes es un algoritmo de clasificación probabilística que es fácil de implementar y rápido de entrenar.
Dado que el clasificador Naive Bayes se basa en el teorema de Bayes, se le conoce como clasificador de probabilidad. Predice basándose en la probabilidad de un artículo.
¿Razón para ser llamado Naïve Bayes?
El clasificador Naive Bayes tiene dos palabras: Naive y Bayes. ¿Por qué Navia? Este algoritmo trata todas las oraciones de palabras como iguales. Por ejemplo, "Tú eres" y "Eres tú" son lo mismo para este algoritmo. No depende de las características ni de la aparición de características. Si desea identificar la fruta manzana, entonces necesita color rojo, forma esférica y sabor dulce para reconocerla como una manzana. Significa que estas características son independientes entre sí.
- El clasificador Naive Bayes supone que las características son independientes entre sí. Dado que esto rara vez es posible en datos de la vida real, el clasificador se denomina ingenuo.
- Este algoritmo de clasificación se basa en el teorema de Bayes, conocido como clasificador ingenuo de Bayes.
Teorema del ingenuo Bayes
El teorema de Bayes se utiliza para encontrar la probabilidad de una hipótesis con probabilidades condicionales que dependen del conocimiento previo. Este teorema lleva el nombre de Thomas Bayes. El clasificador ingenuo de Bayes funciona según el principio de probabilidad condicional, tal como lo establece el teorema de Bayes.
Para comprender el teorema de Bayes, veamos un ejemplo simple e ingenuo del clasificador de Bayes: lanzar dos monedas. Podemos obtener estos espacios muestrales lanzando dos monedas: {HH, HT, TH, TT}. Entonces, las probabilidades de estos eventos serán:
- Obtener dos caras = 1/4
- Al menos una cola = 3/4
- La segunda moneda es cara dado que la primera moneda es cruz = 1/2
- Obtener dos caras dada la primera moneda es cara = 1/2
El teorema de Bayes calcula la probabilidad de que ocurra un evento en función de la probabilidad de que ya haya ocurrido un evento diferente. La fórmula del teorema de Bayes viene dada por:
P(A|B) = (P(B|A) * P(A)) / P(B)
P(A|B) Probabilidad de que ocurra A incluso cuando B ya ha ocurrido. La probabilidad P(B) no debería ser cero.
- Necesita encontrar la probabilidad del evento A, que se da cuando el evento B (evidencia) es verdadero.
- P(A) es a priori (a priori, es decir, la probabilidad de un evento observado antes de la prueba) de A. Aquí, el evento B es el valor de una instancia desconocida.
- P(A|B) es la probabilidad posterior del evento B, es decir, la probabilidad del evento después de observar la evidencia.
Ejemplo práctico del clasificador Naïve Bayes
Tomemos un ejemplo de compras para comprender el funcionamiento del Clasificador Naive de Bayes. En este conjunto de datos, hay un pequeño conjunto de datos de muestra de 30 filas para este ejemplo.
Conjunto de datos
El problema es predecir si una persona comprará un producto en una combinación específica de día, descuento y entrega gratuita utilizando el teorema ingenuo de Bayes.
Paso 1) Crearemos tablas de frecuencia para cada atributo utilizando los tipos de entrada mencionados en el conjunto de datos, como días, descuento y envío gratuito.
Denominemos el evento "Comprar" como "A" y las variables independientes, a saber, "Descuento", "Entrega gratuita" y "Día", como "B". Usaremos estos eventos y variables para aplicar el teorema de Bayes.
Paso 2) Ahora calculemos las tablas de probabilidad una por una.
Ejemplo 1:
Con base en esta tabla de probabilidad, calcularemos las probabilidades condicionales como se muestra a continuación.
P(A) = P(No Buy) = 6/30 = 0.2 P(B) = P(Weekday) = 11/30 = 0.37 P(B/A) = P(Weekday / No Buy) = 2/6 = 0.33
Y encuentre P(A/B) usando el teorema de Bayes,
P(A/B) = P(No Buy / Weekday) = P(Weekday / No Buy) * P(No Buy) / P(Weekday) = (2/6 * 6/30) / (11/30) = 0.1818
De manera similar, si A es Comprar, entonces
= P(Buy / Weekday) = P(Weekday / Buy) * P(Buy) / P(Weekday) = (9/24 * 24/30) / (11/30) = 0.8181
Nota: Como P (Comprar | Día laborable) es mayor que P (No comprar | Día laborable), podemos concluir que lo más probable es que un cliente compre el producto en un día laborable.
Paso 3) De manera similar, podemos calcular la probabilidad de que ocurra un evento sobre la base de las tres variables. Ahora calcularemos tablas de probabilidad para las tres variables utilizando las tablas de frecuencia anteriores.
Ejemplo 2:
Ahora, utilizando estas tres tablas de probabilidad, calcularemos si es probable que un cliente realice una compra en función de una combinación específica de "Día", "Descuento" y "Entrega gratuita".
Aquí, tomemos una combinación de estos factores:
- Día = feriado
- Descuento = Sí
- Entrega gratuita = Sí
Cuando, A = Comprar
Calcula la probabilidad condicional de compra en la siguiente combinación de día, descuento y envío gratuito.
Donde B es:
- Día = feriado
- Descuento = Sí
- Entrega gratuita = Sí
Y A = comprar
De esta manera, las
= P(A/B) = P(Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes) = ( P(Discount=(Yes/Buy)) * P(Free Delivery=(Yes/Buy)) * P(Day=(Holiday/Buy)) * P(Buy) ) / ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) ) = (19/24 * 21/24 * 8/24 * 24/30) / (20/30 * 23/30 * 11/30) = 0.986
Cuando, A = No comprar
De manera similar, calcule la probabilidad condicional de compra en la siguiente combinación de día, descuento y entrega gratuita.
Donde B es:
- Día = feriado
- Descuento = Sí
- Entrega gratuita = Sí
Y A = No comprar
De esta manera, las
= P(A/B) = P(No Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes) = ( P(Discount=(Yes/No Buy)) * P(Free Delivery=(Yes/No Buy)) * P(Day=(Holiday/No Buy)) * P(No Buy) ) / ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) ) = (1/6 * 2/6 * 3/6 * 6/30) / (20/30 * 23/30 * 11/30) = 0.027
Paso 4) Por lo tanto,
Probabilidad de compra = 0.986
Probabilidad de no compra = 0.027
Finalmente, tenemos probabilidades condicionales de compra en este día. Generalicemos ahora estas probabilidades para obtener la Probabilidad de los eventos.
- Suma de probabilidades = 0.986 + 0.027 = 1.013
- Probabilidad de compra = 0.986 / 1.013 = 97.33 %
- Probabilidad de no compra = 0.027 / 1.013 = 2.67 %
Tenga en cuenta que 97.33% es mayor que 2.67%. Podemos concluir que el cliente medio comprará en un día festivo con descuento y envío gratuito.
Tipos de modelo ingenuo de Bayes
Hay muchos tipos de clasificadores Naive Bayes. Aquí hemos analizado los clasificadores multinomiales, Bernoulli y Gaussianos Naive Bayes.
1. Naive Bayes multinomial
Este tipo de modelo Naive Bayes se utiliza para problemas de clasificación de documentos. Funciona con funciones que representan la frecuencia de las palabras en un documento. El clasificador considera la aparición y el recuento de palabras para determinar la probabilidad de que un documento pertenezca a una categoría específica, como deportes, política o tecnología.
2. Bernoulli Bayes ingenuo
Esto es similar al multinomial Naive Bayes. El clasificador Bernoulli Naive Bayes se utiliza para tareas de clasificación de documentos. Sin embargo, utiliza predictores booleanos. Representa si una palabra está presente o no y solo toma valores Sí o No. El clasificador calcula las probabilidades en función de si una palabra aparece en el texto o no.
3. Bayes ingenuo gaussiano
Este clasificador se utiliza en caso de valor continuo pero no de valor discreto. Este clasificador calcula probabilidades utilizando los parámetros del Gauss distribución, es decir, media y varianza.
La fórmula para la probabilidad condicional cambia a,
Beneficios y limitaciones del clasificador Naive Bayes
Existen varias ventajas y desventajas del algoritmo Naive Bayes en el aprendizaje automático.
Beneficios del clasificador Naive Bayes
- Simplicidad y Eficiencia: Naive Bayes es simple y fácil de entrenar e implementar. Es eficiente debido al bajo costo computacional. Puede manejar grandes conjuntos de datos de manera eficiente.
- Entrenamiento rápido y predicción: Naive Bayes no requiere tantos datos de entrenamiento debido a la independencia entre funciones. Puede predecir rápidamente una vez que se entrena el modelo.
- Escalabilidad: Naive Bayes puede manejar conjuntos de datos de alta dimensión con una gran cantidad de características. Funciona bien incluso cuando la cantidad de funciones es mayor que la cantidad de ejemplos de entrenamiento. Se escala con la cantidad de puntos de datos y predictores. Maneja datos tanto continuos como discretos.
- Robustez ante características irrelevantes: No es sensible a características irrelevantes.
- Funciona bien con conjuntos de entrenamiento pequeños: Naive Bayes puede proporcionar resultados razonables incluso con datos de entrenamiento limitados. Puede manejar situaciones en las que la cantidad de instancias de capacitación es pequeña. No requiere tantos datos de entrenamiento.
Limitación del clasificador Naive Bayes
Bayes ingenuo en máquina de aprendizaje Supone que todas las características son independientes entre sí. Por lo tanto, no puede aprender las relaciones entre diferentes características de los datos. Trata cada característica como si no tuviera relación con las demás.
Para superar este problema, puede utilizar Árboles de decisiónBosques aleatorios, máquinas de vectores de soporte (SVM), redes neuronales, etc. Estos algoritmos tienen la capacidad de aprender relaciones y dependencias complejas entre las características de los datos, por lo que pueden predecir resultados más precisos.
Aplicaciones del clasificador Naive Bayes
Dado que este algoritmo es rápido y eficiente, puede utilizarlo para realizar predicciones en tiempo real.
Detección de correo no deseado
Servicios de correo electronico (como Gmail) utilizan este algoritmo para determinar si un correo electrónico es spam. Este algoritmo es excelente para filtrar spam.
Análisis de los sentimientos
Puede clasificar el texto como positivo, negativo o neutral según características como la elección de palabras, la estructura de la oración y el contexto. Encuentra aplicaciones en monitoreo de redes sociales, reseñas de clientes e investigación de mercado.
Clasificación de documentos
Puede clasificar documentos en categorías como deportes, política, tecnología o finanzas según la frecuencia o presencia de palabras o características específicas dentro del documento.
Sistemas de recomendación
Puede analizar las preferencias del usuario, datos históricos y características de los artículos para predecir los intereses o preferencias del usuario al recomendar productos, películas o artículos.
Este algoritmo clasificador también se utiliza en reconocimiento facial, predicción del tiempo, diagnóstico médico, compras, clasificación de noticias, etc. Puede implementar Naive Bayes en Python. Existe el clasificador Naive Bayes sklearn, es decir, sklearn.naive_bayes. Es el módulo el que implementa este algoritmo.
Conclusión
Los algoritmos Naive Bayes en el aprendizaje automático son clasificadores que se utilizan principalmente en la detección de spam, la clasificación de noticias, el análisis de sentimientos, la predicción del tiempo, las compras, etc. Los algoritmos Naive Bayes se basan en el teorema de Bayes. algoritmo es simple y fácil de implementar. Como es rápido, podemos usarlo en aplicaciones en tiempo real. Su mayor desventaja es que asume características independientes (dado que las características independientes rara vez son posibles en la vida real, se lo conoce como ingenuo). Trata cada característica como igual. Para superar este inconveniente, puede utilizar otros clasificadores como Árbol de decisión, Bosque aleatorio, Máquina de vectores de soporte (SVM), etc.