Clasificadores Naive Bayes, una familia de algoritmos basados en el teorema de Bayes. A pesar de la ingenua suposición de independencia de características, estos clasificadores se utilizan ampliamente por su simplicidad y eficiencia en el aprendizaje automático. El artículo profundiza en la teoría, la implementación y las aplicaciones, arrojando luz sobre su utilidad práctica a pesar de los supuestos demasiado simplificados.
¿Qué son los clasificadores ingenuos de Bayes?
Los clasificadores Naive Bayes son una colección de algoritmos de clasificación basados en el teorema de Bayes. No es un algoritmo único sino una familia de algoritmos donde todos comparten un principio común, es decir, cada par de características que se clasifican son independientes entre sí. Para empezar, consideremos un conjunto de datos.
El clasificador Naïve Bayes, uno de los algoritmos de clasificación más simples y eficaces, ayuda al rápido desarrollo de modelos de aprendizaje automático con capacidades de predicción rápida.
El algoritmo Naïve Bayes se utiliza para problemas de clasificación. Es muy utilizado en la clasificación de textos. En las tareas de clasificación de texto, los datos contienen una gran dimensión (ya que cada palabra representa una característica de los datos). Se utiliza en filtrado de spam, detección de opiniones, clasificación de calificaciones, etc. La ventaja de utilizar Bayes ingenuo es su velocidad. Es rápido y hacer predicciones es fácil con una gran cantidad de datos.
Este modelo predice la probabilidad de que una instancia pertenezca a una clase con un conjunto determinado de valores de características. Es un clasificador probabilístico. Esto se debe a que supone que una característica del modelo es independiente de la existencia de otra característica. En otras palabras, cada característica contribuye a las predicciones sin relación entre sí. En el mundo real, esta condición rara vez se cumple. Utiliza el teorema de Bayes en el algoritmo de entrenamiento y predicción.
¿Por qué se llama Naive Bayes?
La parte Naive del nombre indica la suposición simplificadora hecha por el clasificador Naïve Bayes. El clasificador supone que las características utilizadas para describir una observación son condicionalmente independientes, dada la etiqueta de clase. La parte Bayes del nombre se refiere al reverendo Thomas Bayes, un estadístico y teólogo del siglo XVIII que formuló el teorema de Bayes.
Considere un conjunto de datos ficticio que describe las condiciones climáticas para jugar al golf. Dadas las condiciones climáticas, cada tupla clasifica las condiciones como aptas (Sí) o no aptas (No) para jugar al golf. Aquí hay una representación tabular de nuestro conjunto de datos.
panorama | Temperatura | Humedad | Ventoso | Jugar al golf | |
---|---|---|---|---|---|
0 | Lluvioso | Caliente | Alto | FALSO | No |
1 | Lluvioso | Caliente | Alto | Verdadero | No |
2 | Nublado | Caliente | Alto | FALSO | Sí |
3 | Soleado | Leve | Alto | FALSO | Sí |
4 | Soleado | Fresco | Normal | FALSO | Sí |
5 | Soleado | Fresco | Normal | Verdadero | No |
6 | Nublado | Fresco | Normal | Verdadero | Sí |
7 | Lluvioso | Leve | Alto | FALSO | No |
8 | Lluvioso | Fresco | Normal | FALSO | Sí |
9 | Soleado | Leve | Normal | FALSO | Sí |
10 | Lluvioso | Leve | Normal | Verdadero | Sí |
11 | Nublado | Leve | Alto | Verdadero | Sí |
12 | Nublado | Caliente | Normal | FALSO | Sí |
13 | Soleado | Leve | Alto | Verdadero | No |
El conjunto de datos se divide en dos partes, a saber, matriz de características y el vector de respuesta .
- La matriz de características contiene todos los vectores (filas) del conjunto de datos en los que cada vector consta del valor de características dependientes . En el conjunto de datos anterior, las características son 'Perspectiva', 'Temperatura', 'Humedad' y 'Viento'.
- El vector de respuesta contiene el valor de variable de clase (predicción o salida) para cada fila de la matriz de características. En el conjunto de datos anterior, el nombre de la variable de clase es 'Jugar al golf'.
Asunción del ingenuo Bayes
El supuesto fundamental de Naive Bayes es que cada característica genera:
- Independencia de características: Las características de los datos son condicionalmente independientes entre sí, dada la etiqueta de clase.
- Las características continuas se distribuyen normalmente: Si una característica es continua, se supone que está distribuida normalmente dentro de cada clase.
- Las características discretas tienen distribuciones multinomiales: Si una característica es discreta, se supone que tiene una distribución multinomial dentro de cada clase.
- Las características son igualmente importantes: Se supone que todas las características contribuyen igualmente a la predicción de la etiqueta de clase.
- No faltan datos: Los datos no deben contener ningún valor faltante.
En relación con nuestro conjunto de datos, este concepto puede entenderse como:
- Suponemos que ningún par de características son dependientes. Por ejemplo, que la temperatura sea 'caliente' no tiene nada que ver con la humedad o que el pronóstico sea 'lluvioso' no tiene ningún efecto sobre los vientos. Por lo tanto, se supone que las características son independiente .
- En segundo lugar, a cada característica se le da el mismo peso (o importancia). Por ejemplo, conocer únicamente la temperatura y la humedad no puede predecir el resultado con precisión. Ninguno de los atributos es irrelevante y se supone que contribuye igualmente al resultado.
Las suposiciones hechas por Naive Bayes generalmente no son correctas en situaciones del mundo real. De hecho, el supuesto de independencia nunca es correcto, pero a menudo funciona bien en la práctica. Ahora, antes de pasar a la fórmula de Naive Bayes, es importante conocer el teorema de Bayes.
Teorema de Bayes
El teorema de Bayes encuentra la probabilidad de que ocurra un evento dada la probabilidad de que ya haya ocurrido otro evento. El teorema de Bayes se expresa matemáticamente como la siguiente ecuación:
donde A y B son eventos y P(B) ≠ 0
- Básicamente, estamos tratando de encontrar la probabilidad del evento A, dado que el evento B es verdadero. El evento B también se denomina evidencia .
- P(A) es el a priori de A (la probabilidad previa, es decir, la probabilidad del evento antes de que se vea la evidencia). La evidencia es un valor de atributo de una instancia desconocida (aquí, es el evento B).
- P(B) es Probabilidad Marginal: Probabilidad de Evidencia.
- P(A|B) es la probabilidad a posteriori de B, es decir, la probabilidad del evento después de que se ve la evidencia.
- P (B | A) es la probabilidad de probabilidad, es decir, la probabilidad de que una hipótesis se haga realidad según la evidencia.
Ahora, con respecto a nuestro conjunto de datos, podemos aplicar el teorema de Bayes de la siguiente manera:
donde, y es una variable de clase y X es un vector de características dependiente (de tamaño norte ) dónde:
Para aclarar, un ejemplo de un vector de características y la variable de clase correspondiente puede ser: (consulte la primera fila del conjunto de datos)
X = (Rainy, Hot, High, False)>
y = No>
Así que básicamente,
En relación con nuestro conjunto de datos, este concepto puede entenderse como:
- Suponemos que ningún par de características son dependientes. Por ejemplo, que la temperatura sea 'caliente' no tiene nada que ver con la humedad o que el pronóstico sea 'lluvioso' no tiene ningún efecto sobre los vientos. Por lo tanto, se supone que las características son independiente .
- En segundo lugar, a cada característica se le da el mismo peso (o importancia). Por ejemplo, conocer únicamente la temperatura y la humedad no puede predecir el resultado con precisión. Ninguno de los atributos es irrelevante y se supone que contribuye igualmente al resultado.
Ahora es el momento de plantear una suposición ingenua al teorema de Bayes, que es, independencia entre las características. Así que ahora nos separamos evidencia en las partes independientes.
Ahora bien, si dos eventos A y B son independientes, entonces,
P(A,B) = P(A)P(B)>
Por tanto llegamos al resultado:
actualizando java
que se puede expresar como:
Ahora, como el denominador permanece constante para una entrada determinada, podemos eliminar ese término:
Ahora necesitamos crear un modelo clasificador. Para esto, encontramos la probabilidad de un conjunto dado de entradas para todos los valores posibles de la variable de clase. y y recoger la salida con la máxima probabilidad. Esto se puede expresar matemáticamente como:
Finalmente nos queda la tarea de calcular
bloquear anuncios de youtube en android
Tenga en cuenta que
Los diferentes clasificadores ingenuos de Bayes difieren principalmente por los supuestos que hacen con respecto a la distribución de
Intentemos aplicar la fórmula anterior manualmente en nuestro conjunto de datos meteorológicos. Para ello, necesitamos hacer algunos cálculos previos en nuestro conjunto de datos.
Necesitamos encontrar
Entonces, en la figura anterior, hemos calculado
Además, necesitamos encontrar probabilidades de clase.
¡Ahora hemos terminado con nuestros cálculos previos y el clasificador está listo!
Probémoslo en un nuevo conjunto de funciones (llamémoslo hoy):
today = (Sunny, Hot, Normal, False)>
y la probabilidad de no jugar golf está dada por:
Dado que P(hoy) es común en ambas probabilidades, podemos ignorar P(hoy) y encontrar probabilidades proporcionales como:
y
Ahora, desde
Estos números se pueden convertir en probabilidad haciendo la suma igual a 1 (normalización):
y
Desde
Entonces, la predicción de que se jugaría golf es 'Sí'.
El método que comentamos anteriormente es aplicable a datos discretos. En el caso de datos continuos, debemos hacer algunas suposiciones con respecto a la distribución de valores de cada característica. Los diferentes clasificadores ingenuos de Bayes difieren principalmente por los supuestos que hacen con respecto a la distribución de
Tipos de modelo ingenuo de Bayes
Hay tres tipos de modelo Naive Bayes:
Clasificador Gaussiano Naive Bayes
En Gaussian Naive Bayes, se supone que los valores continuos asociados con cada característica están distribuidos según una distribución gaussiana. Una distribución gaussiana también se llama Distribución normal Cuando se traza, se obtiene una curva en forma de campana que es simétrica con respecto a la media de los valores de las características, como se muestra a continuación:
La tabla actualizada de probabilidades anteriores para la función Outlook es la siguiente:
Se supone que la probabilidad de las características es gaussiana, por lo tanto, la probabilidad condicional viene dada por:
Ahora, analizamos una implementación del clasificador gaussiano Naive Bayes utilizando scikit-learn.
| Sí | No | P(Sí) | P(No) marco de primavera |
---|---|---|---|---|
Soleado | 3 | 2 | 3/9 | 2/5 |
Lluvioso | 4 | 0 | 4/9 | 0/5 |
Nublado | 2 | 3 | 2/9 | 3/5 |
Total | 9 | 5 | 100% | 100% |
Pitón
# load the iris dataset> from> sklearn.datasets> import> load_iris> iris> => load_iris()> > # store the feature matrix (X) and response vector (y)> X> => iris.data> y> => iris.target> > # splitting X and y into training and testing sets> from> sklearn.model_selection> import> train_test_split> X_train, X_test, y_train, y_test> => train_test_split(X, y, test_size> => 0.4> , random_state> => 1> )> > # training the model on training set> from> sklearn.naive_bayes> import> GaussianNB> gnb> => GaussianNB()> gnb.fit(X_train, y_train)> > # making predictions on the testing set> y_pred> => gnb.predict(X_test)> > # comparing actual response values (y_test) with predicted response values (y_pred)> from> sklearn> import> metrics> print> (> 'Gaussian Naive Bayes model accuracy(in %):'> , metrics.accuracy_score(y_test, y_pred)> *> 100> )> |
Output: Gaussian Naive Bayes model accuracy(in %): 95.0 Multinomial Naive Bayes Feature vectors represent the frequencies with which certain events have been generated by a multinomial distribution. This is the event model typically used for document classification. Bernoulli Naive Bayes In the multivariate Bernoulli event model, features are independent booleans (binary variables) describing inputs. Like the multinomial model, this model is popular for document classification tasks, where binary term occurrence(i.e. a word occurs in a document or not) features are used rather than term frequencies(i.e. frequency of a word in the document). Advantages of Naive Bayes ClassifierEasy to implement and computationally efficient.Effective in cases with a large number of features.Performs well even with limited training data.It performs well in the presence of categorical features. For numerical features data is assumed to come from normal distributionsDisadvantages of Naive Bayes ClassifierAssumes that features are independent, which may not always hold in real-world data.Can be influenced by irrelevant attributes.May assign zero probability to unseen events, leading to poor generalization.Applications of Naive Bayes Classifier Spam Email Filtering : Classifies emails as spam or non-spam based on features. Text Classification : Used in sentiment analysis, document categorization, and topic classification. Medical Diagnosis: Helps in predicting the likelihood of a disease based on symptoms. Credit Scoring: Evaluates creditworthiness of individuals for loan approval. Weather Prediction : Classifies weather conditions based on various factors.As we reach to the end of this article, here are some important points to ponder upon: In spite of their apparently over-simplified assumptions, naive Bayes classifiers have worked quite well in many real-world situations, famously document classification and spam filtering. They require a small amount of training data to estimate the necessary parameters.Naive Bayes learners and classifiers can be extremely fast compared to more sophisticated methods. The decoupling of the class conditional feature distributions means that each distribution can be independently estimated as a one dimensional distribution. This in turn helps to alleviate problems stemming from the curse of dimensionality.ConclusionIn conclusion, Naive Bayes classifiers, despite their simplified assumptions, prove effective in various applications, showcasing notable performance in document classification and spam filtering. Their efficiency, speed, and ability to work with limited data make them valuable in real-world scenarios, compensating for their naive independence assumption. Frequently Asked Questions on Naive Bayes ClassifiersWhat is Naive Bayes real example?Naive Bayes is a simple probabilistic classifier based on Bayes’ theorem. It assumes that the features of a given data point are independent of each other, which is often not the case in reality. However, despite this simplifying assumption, Naive Bayes has been shown to be surprisingly effective in a wide range of applications. Why is it called Naive Bayes?Naive Bayes is called naive because it assumes that the features of a data point are independent of each other. This assumption is often not true in reality, but it does make the algorithm much simpler to compute. What is an example of a Bayes classifier?A Bayes classifier is a type of classifier that uses Bayes’ theorem to compute the probability of a given class for a given data point. Naive Bayes is one of the most common types of Bayes classifiers. What is better than Naive Bayes?There are several classifiers that are better than Naive Bayes in some situations. For example, logistic regression is often more accurate than Naive Bayes, especially when the features of a data point are correlated with each other. Can Naive Bayes probability be greater than 1?No, the probability of an event cannot be greater than 1. The probability of an event is a number between 0 and 1, where 0 indicates that the event is impossible and 1 indicates that the event is certain.>