Apprendre l'algorithme naïf de Bayes | Exemples de classificateurs naïfs de Bayes

Contenu

Noter: cet article a été initialement publié le 13 septembre 2015 et mis à jour le 11 septembre 2017

Vue d'ensemble

  • Comprendre l'un des algorithmes de classification d'apprentissage automatique les plus populaires et les plus simples, l'algorithme de Naive Bayes
  • Il est basé sur le théorème de Bayes pour calculer les probabilités et les probabilités conditionnelles.
  • Apprenez à implémenter le classificateur Naive Bayes dans R et Python

introduction

Voici une situation dans laquelle vous vous êtes retrouvé Science des données projet:

Vous travaillez sur un obstacle de classification et avez généré votre ensemble d'hypothèses, créé des caractéristiques et discuté de la pertinence des variables. Dans une heure, les parties prenantes veulent voir la première coupe du modèle.

Que vas-tu faire? Vous avez des centaines de points de données et un certain nombre de variables dans votre ensemble de données d'entraînement. Dans une telle situation, si j'étais à ta place, aurait utilisé ‘Bayes ingénieux', qui peut être extrêmement rapide dans la création de liens avec les autres algorithmes de classification. Fonctionne avec le théorème de probabilité de Bayes pour prédire la classe des ensembles de données inconnus.

Dans ce billet, Je vais expliquer les bases de cet algorithme, donc la prochaine fois que vous rencontrerez de grands ensembles de données, peut mettre cet algorithme en action. En même temps, si vous êtes un débutant en Python le R, vous ne devriez pas être submergé par la présence de codes disponibles dans ce post.

Si vous préférez apprendre le théorème de Naive Bayes des bases à la mise en œuvre de manière structurée, vous pouvez vous inscrire à ce cours gratuitement:

Êtes-vous un débutant en Machine Learning? Avez-vous l'intention de maîtriser des algorithmes d'apprentissage automatique comme Naive Bayes? Voici un cours complet couvrant en détail les algorithmes d'apprentissage automatique et d'apprentissage profond:

Projet d'application Naive Bayes

Approche du probléme

L'analyse RH révolutionne le fonctionnement des services RH, conduisant à une plus grande efficacité et de meilleurs résultats dans l'ensemble. Les RH utilisent l'analytique depuis des années.

Malgré cela, la compilation, le traitement et l'analyse des données ont été en grande partie manuels et, compte tenu de la nature de la dynamique RH et des KPI RH, l'accent s'est limité aux ressources humaines. Pour cela, il est surprenant que les départements des ressources humaines se soient rendu compte de l'utilité de l'apprentissage automatique si tard dans le jeu. Il s'agit d'une possibilité de tester l'analyse prédictive pour identifier les travailleurs les plus susceptibles d'être promus.

Entraînez-vous maintenant

Table des matières

  1. Qu'est-ce que l'algorithme Naive Bayes?
  2. Comment fonctionnent les algorithmes de Naive Bayes?
  3. Quels sont les avantages et les inconvénients de l'utilisation de Naive Bayes?
  4. 4 Applications de l'algorithme naïf de Bayes
  5. Étapes pour créer un modèle Naive Bayes de base en Python
  6. Conseils pour augmenter la puissance du modèle naïf de Bayes

Qu'est-ce que l'algorithme Naive Bayes?

C'est un technique de classement basé sur le théorème de Bayes avec une hypothèse d'indépendance entre les prédicteurs. En termes simples, un classificateur Naive Bayes suppose que la présence d'une caractéristique particulière dans une classe n'est pas liée à la présence de toute autre caractéristique.

Par exemple, un fruit peut être considéré comme une pomme s'il est rouge, ronde et a environ 3 pouces de diamètre. Même si ces caractéristiques dépendent les unes des autres ou de l'existence d'autres caractéristiques, Toutes ces propriétés contribuent indépendamment à la probabilité que ce fruit soit une pomme et c'est pourquoi il est connu sous le nom de « Naïf ».

Le modèle Naive Bayes est facile à construire et particulièrement utile pour les très grands ensembles de données.. Avec la simplicité, Naive Bayes est connu pour surpasser même les méthodes de classification très sophistiquées.

Le théorème de Bayes permet de calculer la probabilité postérieure P (c | X) de P (c), P (X) yP (X | c). Regardez l'équation suivante:

bayes ingénieux, théorème de bayesSur,

  • PAG(c | X) est la probabilité postérieure de classe (C, objectif) dé prédicteur (X, les attributs).
  • PAG(C) est la probabilité a priori de classe.
  • PAG(X | c) est la probabilité qui est la probabilité de prédicteurclasse.
  • PAG(X) est la probabilité a priori de prédicteur.

Comment fonctionne l'algorithme Naive Bayes?

Comprenons avec un exemple. Ci-dessous, j'ai un ensemble de données d'entraînement météo et la variable cible respective « Play’ (suggérer des possibilités de jeu). À présent, il faut catégoriser si les joueurs joueront ou non en fonction des conditions météo. Suivons les étapes ci-dessous pour le faire.

Paso 1: convertir l'ensemble de données en une table de fréquences

Paso 2: Créez une table de probabilités en trouvant les probabilités comme la probabilité de Nuageux = 0.29 et la probabilité de jouer est 0.64.

ingénieux bayes, probabilité, Exemple

Paso 3: à présent, les usages Ingenuo bayesiano équation pour calculer la probabilité postérieure pour chaque classe. La classe avec la probabilité postérieure la plus élevée est le résultat du pronostic.

Problème: Les joueurs joueront s'il fait beau. Cette déclaration est-elle correcte?

Nous pouvons le résoudre en utilisant la méthode de probabilité postérieure discutée précédemment.

P (Oui | Ensoleillé) = P (Ensoleillé | Oui) * P (Oui) / P (Ensoleillé)

Ici nous avons P (Ensoleillé | Oui) = 3/9 = 0.33, P (Ensoleillé) = 5/14 = 0.36, P (Oui) = 9/14 = 0.64

À présent, P (Oui | Ensoleillé) = 0.33 * 0.64 / 0.36 = 0.60, ce qui est plus probable.

Naive Bayes utilise une méthode équivalente pour prédire la probabilité de différentes classes en fonction de divers attributs. Cet algorithme est principalement utilisé dans la classification de texte et avec des problèmes qui ont plusieurs classes.

Quels sont les avantages et les inconvénients de Naive Bayes?

Avantages:

  • Il est facile et rapide de prédire le type d'ensemble de données de test. Fonctionne également bien dans les prévisions multi-classes.
  • Lorsque l'hypothèse d'indépendance est remplie, un classificateur Naive Bayes fonctionne mieux que d'autres modèles tels que la régression logistique et nécessite moins de données d'apprentissage.
  • Fonctionne bien pour les variables d'entrée catégorielles par rapport aux variables numériques. Pour la variable numérique, une distribution normale est supposée (courbe en cloche, ce qui est une hypothèse solide).

Les inconvénients:

  • Si la variable catégorielle a une catégorie (dans le jeu de données de test), qui n'a pas été observé dans l'ensemble de données d'entraînement, alors le modèle attribuera une probabilité 0 (zéro) et ne sera pas en mesure de faire une prédiction. Ceci est souvent appelé “Fréquence zéro”. Pour réparer ça, on peut utiliser la technique du lissage. L'une des techniques de lissage les plus simples s'appelle l'estimation de Laplace..
  • D'autre part, Naive Bayes est également connu comme un mauvais estimateur, donc les sorties de probabilité de prédire_test ne doit pas être pris trop au sérieux.
  • Une autre limite de Bayes ingénieux est l'hypothèse de prédicteurs indépendants. Dans la vie réelle, il nous est presque impossible d'obtenir un ensemble de prédicteurs totalement indépendants.

4 Applications des algorithmes naïfs de Bayes

  • Prédiction en temps réel: Naive Bayes est un classificateur d'apprentissage avide et sûr qui est rapide. Pourtant, pourrait être utilisé pour faire des prédictions en temps réel.
  • Prédiction de classes multiples: Cet algorithme est également bien connu pour sa fonction de prédiction à classes multiples.. Ici, nous pouvons prédire la probabilité de plusieurs classes de variable cible.
  • Classement de texte / filtrage anti-spam / analyse des sentiments: Classificateurs naïfs de Bayes utilisés principalement dans la classification de texte (en raison d'un meilleur résultat dans les problèmes de classes multiples et la règle d'indépendance) ont un taux de réussite plus élevé par rapport aux autres algorithmes. Comme conséquence, largement utilisé dans le filtrage anti-spam (identifier les spams) et analyse des sentiments (dans l'analyse des médias sociaux, identifier les sentiments positifs et négatifs des clients).
  • Système de recommandation: classificateur naïf de Bayes et Filtrage collaboratif ensemble, ils construisent un système de recommandation qui utilise des techniques d'apprentissage automatique et d'exploration de données pour filtrer les informations invisibles et prédire si un utilisateur veut une certaine ressource ou non

Comment construire un modèle de base en utilisant Naive Bayes en Python et R?

Encore, scikit apprendre (bibliothèque Python) aidera ici à construire un modèle Naive Bayes en Python. Il existe trois types de modèle Naive Bayes dans la bibliothèque scikit-learn:

  • Gaussiano: Il est utilisé dans la classification et suppose que les caractéristiques suivent une distribution normale.

  • Multinomial: Utilisé pour les comptages discrets. Par exemple, disons que nous avons un obstacle de tri de texte. Ici, nous pouvons considérer les essais de Bernoulli, ce qui est un pas de plus et au lieu de “mot qui apparaît dans le document”, avoir “compter la fréquence à laquelle le mot apparaît dans le document”, vous pouvez le considérer comme “nombre de fois que le résultat est observé nombre x_i pendant les n essais ».

  • Bernoulli: Le modèle binomial est utile si ses vecteurs caractéristiques sont binaires (En d'autres termes, zéros et uns). Une application serait la classification de texte avec le modèle « sac de mots »’ où l' 1 Oui 0 fils “le mot apparaît dans le document” Oui “le mot n’apparaît pas dans le document”, respectivement.

Code Python:

Essayez le code suivant dans la fenêtre d’encodage et vérifiez ses résultats à la volée!

Code R:

Exige(e1071) #Holds the Naive Bayes Classifier
Train <- lire.csv(fichier.choisir())
Test <- lire.csv(fichier.choisir())

#Make sure the target variable is of a two-class classification problem only

levels(Train$Item_Fat_Content)

maquette <- naïveBayes(Item_Fat_Content~., données = Train)
classer(maquette) 
pred <- prédire(maquette,Test)
tableau(pred)

Précédemment, nous analysons le modèle de base de Naive Bayes, Vous pouvez améliorer la puissance de ce modèle de base en ajustant les paramètres et en gérant intelligemment les hypothèses. Voyons les méthodes pour booster les performances du modèle Naive Bayes. je vous propose de passer ce document pour plus de détails sur la classification du texte à l'aide de Naive Bayes.

Conseils pour augmenter la puissance du modèle naïf de Bayes

Ensuite, Voici quelques conseils pour augmenter la puissance de Bayes ingénieux Modèle:

  • Si les entités continues n'ont pas de distribution normale, nous devrions utiliser la transformation ou différentes méthodes pour les convertir en distribution normale.
  • Si l'ensemble de données de test a un obstacle de fréquence zéro, appliquer des techniques de lissage de « correction de Laplace » pour prédire la classe de l'ensemble de données de test.
  • Supprimer les fonctionnalités corrélées, puisque les caractéristiques fortement corrélées sont votées deux fois dans le modèle et peuvent conduire à une pertinence exagérée.
  • Les classificateurs Naive Bayes ont des options limitées pour définir des paramètres tels que alpha = 1 lisser, fit_prior =[Vrai|Faux] apprendre les probabilités antérieures de la classe ou non et quelques autres options (voir les détails ici). Je recommanderais de se concentrer sur le prétraitement des données et la sélection des fonctionnalités.
  • Pourriez-vous penser à appliquer certains technique de combinaison de classificateurs comme ensemble, ensachage et renfort, mais ces méthodes n'aideraient pas. En réalité, “rejoindre, renforcer, poche” n'aidera pas, puisque son objectif est de réduire la variation. Naive Bayes n'a aucune variation à minimiser.

Remarques finales

Dans ce billet, nous analysons l'un des algorithmes d'apprentissage automatique supervisé”Naïf Bayes” qui est principalement utilisé pour le tri. toutes nos félicitations, si vous avez bien compris ce post, vous avez déjà fait le premier pas pour maîtriser cet algorithme. À partir d'ici, tout ce dont vous avez besoin c'est de la pratique.

En même temps, Je vous suggère de vous concentrer davantage sur le prétraitement des données et la sélection des fonctionnalités avant d'appliquer l'algorithme Naive Bayes.0 Dans un futur post, Je parlerai plus en détail de la classification des textes et des documents à l'aide de bayes naïfs.

Ce post vous a-t-il été utile? Partagez vos opinions / pensées dans la section des commentaires ci-dessous.

Vous pouvez utiliser gratuitement la ressource suivante pour apprendre- Naïf Bayes-

Apprendre, engager, concourir, et se faire embaucher!

Abonnez-vous à notre newsletter

Nous ne vous enverrons pas de courrier SPAM. Nous le détestons autant que vous.