Un classificateur Naive Bayes, une famille d'algorithmes basés sur le théorème de Bayes. Malgré l’hypothèse naïve de l’indépendance des fonctionnalités, ces classificateurs sont largement utilisés pour leur simplicité et leur efficacité dans l’apprentissage automatique. L'article approfondit la théorie, la mise en œuvre et les applications, mettant en lumière leur utilité pratique malgré des hypothèses trop simplistes.
Qu’est-ce que les classificateurs Naive Bayes ?
Les classificateurs naïfs de Bayes sont une collection d’algorithmes de classification basés sur le théorème de Bayes. Il ne s'agit pas d'un algorithme unique mais d'une famille d'algorithmes dont tous partagent un principe commun, c'est-à-dire que chaque paire de caractéristiques classées est indépendante l'une de l'autre. Pour commencer, considérons un ensemble de données.
L'un des algorithmes de classification les plus simples et les plus efficaces, le classificateur Naïve Bayes facilite le développement rapide de modèles d'apprentissage automatique dotés de capacités de prédiction rapides.
L'algorithme Naïve Bayes est utilisé pour les problèmes de classification. Il est très utilisé dans la classification de textes. Dans les tâches de classification de texte, les données contiennent une dimension élevée (car chaque mot représente une caractéristique des données). Il est utilisé dans le filtrage du spam, la détection des sentiments, la classification des notes, etc. L'avantage de l'utilisation de Bayes naïf est sa rapidité. C'est rapide et faire des prédictions est facile avec une grande dimension de données.
Ce modèle prédit la probabilité qu'une instance appartienne à une classe avec un ensemble donné de valeurs de caractéristiques. C'est un classificateur probabiliste. C’est parce qu’il suppose qu’une fonctionnalité du modèle est indépendante de l’existence d’une autre fonctionnalité. En d’autres termes, chaque caractéristique contribue aux prédictions sans aucune relation entre elles. Dans le monde réel, cette condition est rarement satisfaite. Il utilise le théorème de Bayes dans l'algorithme de formation et de prédiction
Pourquoi est-il appelé Naive Bayes ?
La partie Naive du nom indique l'hypothèse simplificatrice faite par le classificateur Naïve Bayes. Le classificateur suppose que les caractéristiques utilisées pour décrire une observation sont conditionnellement indépendantes, compte tenu de l'étiquette de classe. La partie Bayes du nom fait référence au révérend Thomas Bayes, un statisticien et théologien du XVIIIe siècle qui a formulé le théorème de Bayes.
Prenons un ensemble de données fictives qui décrit les conditions météorologiques pour jouer à une partie de golf. Compte tenu des conditions météorologiques, chaque tuple classe les conditions comme étant aptes (Oui) ou impropres (Non) pour jouer au golf. Voici une représentation tabulaire de notre ensemble de données.
Perspectives | Température | Humidité | Venteux | Jouer au golf | |
---|---|---|---|---|---|
0 | Pluvieux | Chaud | Haut | FAUX | Non |
1 | Pluvieux | Chaud | Haut | Vrai | Non |
2 | Couvert | Chaud | Haut | FAUX | Oui |
3 | Ensoleillé | Bénin | Haut | FAUX | Oui |
4 | Ensoleillé | Cool | Normale | FAUX | Oui |
5 | Ensoleillé | Cool | Normale | Vrai | Non |
6 | Couvert | Cool | Normale | Vrai | Oui |
7 | Pluvieux | Bénin | Haut | FAUX | Non |
8 | Pluvieux | Cool | Normale | FAUX | Oui |
9 | Ensoleillé | Bénin | Normale | FAUX | Oui |
dix | Pluvieux | Bénin | Normale | Vrai | Oui |
onze | Couvert | Bénin | Haut | Vrai | Oui |
12 | Couvert | Chaud | Normale | FAUX | Oui |
13 | Ensoleillé | Bénin | Haut | Vrai | Non |
L'ensemble de données est divisé en deux parties, à savoir matrice de fonctionnalités et le vecteur de réponse .
- La matrice de fonctionnalités contient tous les vecteurs (lignes) de l'ensemble de données dans lequel chaque vecteur est constitué de la valeur de fonctionnalités dépendantes . Dans l'ensemble de données ci-dessus, les caractéristiques sont « Outlook », « Température », « Humidité » et « Venteux ».
- Le vecteur de réponse contient la valeur de variable de classe (prédiction ou sortie) pour chaque ligne de la matrice de fonctionnalités. Dans l'ensemble de données ci-dessus, le nom de la variable de classe est « Jouer au golf ».
Hypothèse de Bayes naïf
L’hypothèse fondamentale de Naive Bayes est que chaque fonctionnalité constitue :
java mvc
- Indépendance des fonctionnalités : Les caractéristiques des données sont conditionnellement indépendantes les unes des autres, compte tenu de l'étiquette de classe.
- Les fonctionnalités continues sont normalement distribuées : Si une entité est continue, elle est supposée être normalement distribuée au sein de chaque classe.
- Les entités discrètes ont des distributions multinomiales : Si une caractéristique est discrète, alors elle est supposée avoir une distribution multinomiale au sein de chaque classe.
- Les fonctionnalités sont tout aussi importantes : Toutes les caractéristiques sont supposées contribuer de manière égale à la prédiction de l’étiquette de classe.
- Aucune donnée manquante : Les données ne doivent contenir aucune valeur manquante.
Par rapport à notre ensemble de données, ce concept peut être compris comme :
- Nous supposons qu’aucune paire de fonctionnalités n’est dépendante. Par exemple, une température « chaude » n’a rien à voir avec l’humidité ou une prévision « pluvieuse » n’a aucun effet sur les vents. Par conséquent, les caractéristiques sont supposées être indépendant .
- Deuxièmement, chaque fonctionnalité reçoit le même poids (ou importance). Par exemple, connaître uniquement la température et l’humidité ne peut pas prédire le résultat avec précision. Aucun des attributs n'est sans importance et est supposé contribuer également au résultat.
Les hypothèses formulées par Naive Bayes ne sont généralement pas correctes dans les situations réelles. En fait, l’hypothèse d’indépendance n’est jamais correcte mais fonctionne souvent bien dans la pratique. Maintenant, avant de passer à la formule de Naive Bayes, il est important de connaître le théorème de Bayes.
Théorème de Bayes
Le théorème de Bayes calcule la probabilité qu'un événement se produise étant donné la probabilité qu'un autre événement s'est déjà produit. Le théorème de Bayes s’exprime mathématiquement sous la forme de l’équation suivante :
où A et B sont des événements et P(B) ≠ 0
- Fondamentalement, nous essayons de trouver la probabilité de l’événement A, étant donné que l’événement B est vrai. L'événement B est également appelé preuve .
- P(A) est le à priori de A (la probabilité a priori, c'est-à-dire la probabilité d'un événement avant que la preuve ne soit vue). La preuve est une valeur d'attribut d'une instance inconnue (ici, il s'agit de l'événement B).
- P(B) est la probabilité marginale : probabilité de preuve.
- P(A|B) est la probabilité a posteriori de B, c'est-à-dire la probabilité d'un événement après l'observation de la preuve.
- P(B|A) est la probabilité de vraisemblance, c'est-à-dire la probabilité qu'une hypothèse se réalise sur la base des preuves.
Maintenant, en ce qui concerne notre ensemble de données, nous pouvons appliquer le théorème de Bayes de la manière suivante :
où y est une variable de classe et X est un vecteur de caractéristiques dépendant (de taille n ) où:
Juste pour clarifier, un exemple de vecteur de caractéristiques et de variable de classe correspondante peut être : (voir la 1ère ligne de l'ensemble de données)
X = (Rainy, Hot, High, False)>
y = No>
Donc en gros,
Par rapport à notre ensemble de données, ce concept peut être compris comme :
- Nous supposons qu’aucune paire de fonctionnalités n’est dépendante. Par exemple, une température « chaude » n’a rien à voir avec l’humidité ou une prévision « pluvieuse » n’a aucun effet sur les vents. Par conséquent, les caractéristiques sont supposées être indépendant .
- Deuxièmement, chaque fonctionnalité reçoit le même poids (ou importance). Par exemple, connaître uniquement la température et l’humidité ne peut pas prédire le résultat avec précision. Aucun des attributs n'est sans importance et est supposé contribuer également au résultat.
Il est maintenant temps de poser une hypothèse naïve au théorème de Bayes, à savoir : indépendance parmi les fonctionnalités. Alors maintenant, nous nous séparons preuve dans les parties indépendantes.
Maintenant, si deux événements A et B sont indépendants, alors,
P(A,B) = P(A)P(B)>
On arrive donc au résultat :
comment exécuter un script sous Linux
qui peut s'exprimer ainsi :
Maintenant, comme le dénominateur reste constant pour une entrée donnée, nous pouvons supprimer ce terme :
Nous devons maintenant créer un modèle de classificateur. Pour cela, nous trouvons la probabilité d'un ensemble d'entrées donné pour toutes les valeurs possibles de la variable de classe et et récupérez la sortie avec une probabilité maximale. Cela peut être exprimé mathématiquement comme suit :
Finalement, il nous reste à calculer
Veuillez noter que
Les différents classificateurs naïfs de Bayes diffèrent principalement par les hypothèses qu'ils émettent concernant la distribution des
Essayons d'appliquer manuellement la formule ci-dessus sur notre ensemble de données météorologiques. Pour cela, nous devons effectuer quelques précalculs sur notre ensemble de données.
Nous devons trouver
Ainsi, dans la figure ci-dessus, nous avons calculé
Nous devons également trouver des probabilités de classe
Alors maintenant, nous avons terminé nos pré-calculs et le classificateur est prêt !
Testons-le sur un nouvel ensemble de fonctionnalités (appelons-le aujourd'hui) :
today = (Sunny, Hot, Normal, False)>
et la probabilité de ne pas jouer au golf est donnée par :
Puisque P(aujourd'hui) est commun aux deux probabilités, nous pouvons ignorer P(aujourd'hui) et trouver des probabilités proportionnelles telles que :
et
Alisa Manyonok
Maintenant, depuis
Ces nombres peuvent être convertis en probabilité en rendant la somme égale à 1 (normalisation) :
et
Depuis
Ainsi, la prédiction selon laquelle le golf serait joué est « Oui ».
La méthode dont nous avons discuté ci-dessus est applicable aux données discrètes. Dans le cas de données continues, nous devons faire certaines hypothèses concernant la distribution des valeurs de chaque caractéristique. Les différents classificateurs naïfs de Bayes diffèrent principalement par les hypothèses qu'ils émettent concernant la distribution des
Types de modèles naïfs de Bayes
Il existe trois types de modèles Naive Bayes :
insérer dans le clavier
Classificateur naïf gaussien de Bayes
Dans le Bayes naïf gaussien, les valeurs continues associées à chaque caractéristique sont supposées être distribuées selon une distribution gaussienne. Une distribution gaussienne est également appelée Distribution normale Une fois tracé, il donne une courbe en forme de cloche qui est symétrique par rapport à la moyenne des valeurs des caractéristiques, comme indiqué ci-dessous :
Le tableau mis à jour des probabilités antérieures pour la fonctionnalité Outlook est le suivant :
La probabilité des caractéristiques est supposée être gaussienne, par conséquent, la probabilité conditionnelle est donnée par :
Nous examinons maintenant une implémentation du classificateur gaussien Naive Bayes utilisant scikit-learn.
| Oui | Non | P(Oui) | P(Non) |
---|---|---|---|---|
Ensoleillé | 3 | 2 | 3/9 | 2/5 |
Pluvieux | 4 planification du tournoi à la ronde | 0 | 4/9 | 0/5 |
Couvert | 2 | 3 | 2/9 | 3/5 |
Total | 9 | 5 | 100% | 100% |
Python
# 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.>