566 votes

Une explication simple de la classification Naive Bayes

J'ai du mal à comprendre le processus de Naive Bayes, et je me demandais si quelqu'un pouvait l'expliquer avec un processus simple étape par étape en anglais. Je comprends qu'il prend les comparaisons en fonction des occurrences sous forme de probabilité, mais je n'ai aucune idée de la manière dont les données d'entraînement sont liées à l'ensemble de données réel.

Veuillez m'expliquer le rôle que joue l'ensemble d'entraînement. Je donne un exemple très simple pour les fruits, comme la banane par exemple.

training set---
round-red
round-orange
oblong-yellow
round-red

dataset----
round-red
round-orange
round-red
round-orange
oblong-yellow
round-red
round-orange
oblong-yellow
oblong-yellow
round-red

19 votes

C'est assez facile si vous comprenez le théorème de Bayes. Si vous n'avez rien lu sur le théorème de Bayes, essayez ce lien. yudkowsky.net/rational/bayes .

23 votes

NOTE : La réponse acceptée ci-dessous n'est pas un exemple traditionnel pour Naïve Bayes. Il s'agit plutôt d'une mise en œuvre de k Nearest Neighbor. Lire en conséquence.

0 votes

Voici une description rapide et visuelle du théorème de Bayes par Oscar Bonilla. oscarbonilla.com/2009/05/visualiser-bayes-theorem

1075voto

Ram Narasimhan Points 5763

La réponse acceptée comporte de nombreux éléments de k-NN ( k -voisins les plus proches), un algorithme différent.

Les algorithmes k-NN et NaiveBayes sont tous deux des algorithmes de classification. Conceptuellement, k-NN utilise l'idée de "proximité" pour classer de nouvelles entités. Dans le k-NN, la "proximité" est modélisée par des idées telles que la distance euclidienne ou la distance cosinus. En revanche, dans NaiveBayes, le concept de "probabilité" est utilisé pour classer les nouvelles entités.

Puisque la question porte sur les Bayes naïfs, voici comment je décrirais les idées et les étapes à quelqu'un. J'essaierai de le faire avec le moins d'équations possible et en anglais simple.

Premièrement, probabilité conditionnelle et règle de Bayes

Avant de pouvoir comprendre et apprécier les nuances du concept de "Bayes naïf", il faut d'abord connaître quelques concepts connexes, à savoir l'idée de probabilité conditionnelle et la règle de Bayes. (Si vous êtes familier avec ces concepts, passez directement à la section intitulée Se rendre à "Naive Bayes )

Probabilité conditionnelle en anglais simple : Quelle est la probabilité que quelque chose se produise, étant donné que quelque chose d'autre a déjà eu lieu.

Disons qu'il existe un résultat O et une preuve E. D'après la façon dont ces probabilités sont définies : La probabilité d'avoir les deux le résultat O et la preuve E sont : (Probabilité que O se produise) multipliée par la (Probabilité de E étant donné que O s'est produit)

Un exemple pour comprendre la probabilité conditionnelle :

Disons que nous avons une collection de sénateurs américains. Les sénateurs peuvent être démocrates ou républicains. Ils peuvent également être de sexe masculin ou féminin.

Si nous choisissons un sénateur de manière totalement aléatoire, quelle est la probabilité que cette personne soit une femme démocrate ? La probabilité conditionnelle peut nous aider à répondre à cette question.

Probabilité de (sénateur démocrate et féminin)= Probabilité (sénateur démocrate) multipliée par la probabilité conditionnelle d'être une femme étant donné qu'elle est démocrate.

  P(Democrat & Female) = P(Democrat) * P(Female | Democrat) 

Nous pourrions calculer exactement la même chose, de la manière inverse :

  P(Democrat & Female) = P(Female) * P(Democrat | Female) 

Comprendre la règle de Bayes

Conceptuellement, il s'agit d'un moyen de passer de P(Preuve|Résultat connu) à P(Résultat|Preuve connue). Souvent, nous savons à quelle fréquence une preuve particulière est observée, compte tenu d'un résultat connu . Nous devons utiliser ce fait connu pour calculer l'inverse, pour calculer la probabilité de ce que résultat obtenu compte tenu de l'évidence.

P(résultat étant donné que nous connaissons certaines preuves) = P(preuve étant donné que nous connaissons le résultat) multiplié par la Prob(résultat), mis à l'échelle par la P(preuve).

L'exemple classique pour comprendre la règle de Bayes :

Probability of Disease D given Test-positive = 

               P(Test is positive|Disease) * P(Disease)
     _______________________________________________________________
     (scaled by) P(Testing Positive, with or without the disease)

Tout ceci n'était qu'un préambule, pour en venir à Naive Bayes.

Se rendre à "Naive Bayes

Jusqu'à présent, nous n'avons parlé que d'une seule pièce à conviction. En réalité, nous devons prédire un résultat étant donné preuves multiples. Dans ce cas, les calculs deviennent très compliqués. Pour contourner cette complication, une approche consiste à "découpler" plusieurs éléments de preuve et à traiter chacun d'entre eux comme indépendant. Cette approche est la raison pour laquelle on appelle cela naïf Bayes.

P(Outcome|Multiple Evidence) = 
P(Evidence1|Outcome) * P(Evidence2|outcome) * ... * P(EvidenceN|outcome) * P(Outcome)
scaled by P(Multiple Evidence)

Beaucoup de gens choisissent de s'en souvenir comme :

                      P(Likelihood of Evidence) * Prior prob of outcome
P(outcome|evidence) = _________________________________________________
                                         P(Evidence)

Remarquez quelques éléments de cette équation :

  • Si la probabilité (preuve|résultat) est de 1, alors nous ne faisons que multiplier par 1.
  • Si la probabilité (une preuve particulière|résultat) est égale à 0, alors la probabilité entière devient égale à 0. Si vous voyez des preuves contradictoires, nous pouvons exclure ce résultat.
  • Comme nous divisons tout par P(Evidence), nous pouvons même nous passer de le calculer.
  • L'intuition derrière la multiplication par le avant est telle que nous accordons une forte probabilité aux résultats les plus courants, et une faible probabilité aux résultats peu probables. C'est ce qu'on appelle aussi base rates et ils sont un moyen de mettre à l'échelle nos probabilités prédites.

Comment appliquer NaiveBayes pour prédire un résultat ?

Il suffit d'appliquer la formule ci-dessus pour chaque résultat possible. Puisque nous essayons de classer chaque résultat est appelé un class et il a un class label. Notre travail consiste à examiner les preuves, à considérer la probabilité qu'il s'agisse de telle ou telle classe, et à attribuer une étiquette à chaque entité. Encore une fois, nous adoptons une approche très simple : La classe qui a la probabilité la plus élevée est déclarée "gagnante" et l'étiquette de cette classe est attribuée à cette combinaison de preuves.

Exemple de fruit

Essayons de le faire sur un exemple pour améliorer notre compréhension : Le PO a demandé un exemple d'identification de "fruit".

Disons que nous avons des données sur 1000 fruits. Ils se trouvent être Banane , Orange ou un Autres fruits . Nous connaissons 3 caractéristiques de chaque fruit :

  1. Qu'il s'agisse de Long
  2. Qu'il s'agisse de Sweet and
  3. Si sa couleur est Jaune.

C'est notre "ensemble d'entraînement". Nous allons l'utiliser pour prédire le type de n'importe quel nouveau les fruits que nous rencontrons.

Type           Long | Not Long || Sweet | Not Sweet || Yellow |Not Yellow|Total
             ___________________________________________________________________
Banana      |  400  |    100   || 350   |    150    ||  450   |  50      |  500
Orange      |    0  |    300   || 150   |    150    ||  300   |   0      |  300
Other Fruit |  100  |    100   || 150   |     50    ||   50   | 150      |  200
            ____________________________________________________________________
Total       |  500  |    500   || 650   |    350    ||  800   | 200      | 1000
             ___________________________________________________________________

Nous pouvons pré-calculer beaucoup de choses sur notre collection de fruits.

Les probabilités dites "préalables". (Si nous ne connaissions aucun des attributs du fruit, ce serait notre estimation). base rates.

 P(Banana)      = 0.5 (500/1000)
 P(Orange)      = 0.3
 P(Other Fruit) = 0.2

Probabilité d'une "évidence"

p(Long)   = 0.5
P(Sweet)  = 0.65
P(Yellow) = 0.8

Probabilité de la "vraisemblance"

P(Long|Banana) = 0.8
P(Long|Orange) = 0  [Oranges are never long in all the fruit we have seen.]
 ....

P(Yellow|Other Fruit)     =  50/200 = 0.25
P(Not Yellow|Other Fruit) = 0.75

Étant donné un fruit, comment le classer ?

Disons que l'on nous donne les propriétés d'un fruit inconnu et que l'on nous demande de le classer. On nous dit que le fruit est long, sucré et jaune. S'agit-il d'une banane ? Est-ce une orange ? Ou est-ce un autre fruit ?

Nous pouvons simplement calculer les chiffres pour chacune des trois issues, une par une. Ensuite, nous choisissons la probabilité la plus élevée et " classons " notre fruit inconnu comme appartenant à la classe ayant la probabilité la plus élevée sur la base de nos preuves antérieures (notre ensemble d'entraînement de 1000 fruits) :

P(Banana|Long, Sweet and Yellow) 
      P(Long|Banana) * P(Sweet|Banana) * P(Yellow|Banana) * P(banana)
    = _______________________________________________________________
                      P(Long) * P(Sweet) * P(Yellow)

    = 0.8 * 0.7 * 0.9 * 0.5 / P(evidence)

    = 0.252 / P(evidence)

P(Orange|Long, Sweet and Yellow) = 0

P(Other Fruit|Long, Sweet and Yellow)
      P(Long|Other fruit) * P(Sweet|Other fruit) * P(Yellow|Other fruit) * P(Other Fruit)
    = ____________________________________________________________________________________
                                          P(evidence)

    = (100/200 * 150/200 * 50/200 * 200/1000) / P(evidence)

    = 0.01875 / P(evidence)

Par une marge écrasante ( 0.252 >> 0.01875 ), nous classons ce fruit sucré/long/jaune comme étant probablement une banane.

Pourquoi le classificateur de Bayes est-il si populaire ?

Regardez ce que ça donne au final. Juste un peu de comptage et de multiplication. Nous pouvons pré-calculer tous ces termes, et ainsi la classification devient facile, rapide et efficace.

Let z = 1 / P(evidence). Maintenant, nous calculons rapidement les trois quantités suivantes.

P(Banana|evidence) = z * Prob(Banana) * Prob(Evidence1|Banana) * Prob(Evidence2|Banana) ...
P(Orange|Evidence) = z * Prob(Orange) * Prob(Evidence1|Orange) * Prob(Evidence2|Orange) ...
P(Other|Evidence)  = z * Prob(Other)  * Prob(Evidence1|Other)  * Prob(Evidence2|Other)  ...

Attribuez l'étiquette de classe du nombre le plus élevé, et vous avez terminé.

Malgré son nom, Naive Bayes s'avère excellent dans certaines applications. La classification de textes est l'un des domaines où il brille vraiment.

J'espère que cela vous aidera à comprendre les concepts de l'algorithme Naive Bayes.

16 votes

Merci pour cette explication très claire ! C'est certainement l'une des meilleures qui circulent sur le Web. Question : étant donné que chaque P(résultat/preuve) est multipliée par 1 / z=p(preuve) (ce qui, dans le cas du fruit, signifie que chaque probabilité est essentiellement basée uniquement sur les preuves précédentes), serait-il correct de dire que z n'a aucune importance pour Naïve Bayes ? Ce qui signifierait donc que si, par exemple, on tombe sur un fruit long/doux/jaune qui n'était pas une banane, ce serait mal classé.

7 votes

@E.Chow Oui, vous avez raison de dire que le calcul de z n'a pas d'importance pour Naive Bayes. (C'est un moyen de mettre à l'échelle les probabilités pour qu'elles soient comprises entre 0 et 1.) Notez que z est le produit des probabilités de toutes les preuves disponibles. (C'est différent de la prieurs qui est le taux de base des classes). Vous avez raison : si vous avez trouvé un fruit long/doux/jaune qui n'est pas une banane, NB le classera incorrectement comme une banane, sur la base de cet ensemble d'apprentissage. L'algorithme est une "meilleure supposition probabiliste basée sur des preuves" et donc il sera mal classées à l'occasion.

0 votes

P(Jaune/Autres fruits) = 50/200 = 0,25 - Cette partie est une erreur de frappe ? Cela ne devrait-il pas être : 50/800 comme dans l'exemple

681voto

Yavar Points 5314

Votre question, telle que je la comprends, est divisée en deux parties, la première étant que vous avez besoin de mieux comprendre le classificateur Naive Bayes et la deuxième étant la confusion entourant le Training set.

En général, tous les algorithmes d'apprentissage automatique doivent être entraînés pour des tâches d'apprentissage supervisé comme la classification, la prédiction, etc. ou pour des tâches d'apprentissage non supervisé comme le regroupement.

Au cours de l'étape de formation, les algorithmes sont formés à l'aide d'un ensemble de données d'entrée particulier (ensemble de formation) afin de pouvoir les tester ultérieurement avec des données d'entrée inconnues (qu'ils n'ont jamais vues auparavant), qu'ils pourront classer ou prédire (dans le cas d'un apprentissage supervisé) sur la base de leur apprentissage. C'est sur ce principe que sont basées la plupart des techniques d'apprentissage automatique telles que les réseaux neuronaux, les SVM, les méthodes bayésiennes, etc.

Ainsi, dans un projet général d'apprentissage automatique, vous devez diviser votre ensemble d'entrée en un ensemble de développement (ensemble de formation + ensemble de test) et un ensemble de test (ou ensemble d'évaluation). Rappelez-vous que votre objectif de base est que votre système apprenne et classe de nouvelles entrées qu'il n'a jamais vues auparavant, que ce soit dans l'ensemble de développement ou dans l'ensemble de test.

L'ensemble de test a généralement le même format que l'ensemble de formation. Cependant, il est très important que l'ensemble de test soit distinct du corpus de formation : si nous Si nous réutilisions simplement l'ensemble d'apprentissage comme ensemble de test, un modèle qui se contente de mémoriser ses données d'entrée, sans apprendre à généraliser à de nouveaux exemples, obtiendrait des scores élevés et trompeurs.

En général, pour un exemple, 70% de nos données peuvent être utilisées comme cas d'entraînement. N'oubliez pas non plus de diviser l'ensemble original en ensembles d'entraînement et de test. au hasard .

J'en viens maintenant à votre autre question sur les Bayes naïfs.

Pour démontrer le concept de la classification Naïve Bayes, prenons l'exemple ci-dessous :

enter image description here

Comme indiqué, les objets peuvent être classés comme suit GREEN o RED . Notre tâche est de classer les nouveaux cas au fur et à mesure qu'ils arrivent, c'est-à-dire de décider à quelle étiquette de classe ils appartiennent, sur la base des objets actuellement existants.

Comme il y a deux fois plus de GREEN comme RED il est raisonnable de croire qu'un nouveau cas (qui n'a pas encore été observé) a deux fois plus de chances d'avoir une adhésion GREEN plutôt que RED . Dans l'analyse bayésienne, cette croyance est connue sous le nom de probabilité antérieure. Les probabilités antérieures sont basées sur l'expérience antérieure, dans ce cas le pourcentage de GREEN y RED et souvent utilisés pour prédire les résultats avant qu'ils ne se produisent réellement.

Ainsi, nous pouvons écrire :

Probabilité antérieure de GREEN : number of GREEN objects / total number of objects

Probabilité antérieure de RED : number of RED objects / total number of objects

Puisqu'il y a un total de 60 objets, 40 dont GREEN et 20 RED nos probabilités préalables d'appartenance à une classe sont les suivantes :

Probabilité antérieure pour GREEN : 40 / 60

Probabilité antérieure pour RED : 20 / 60

Ayant formulé notre probabilité préalable, nous sommes maintenant prêts à classer un nouvel objet ( WHITE cercle dans le schéma ci-dessous). Puisque les objets sont bien groupés, il est raisonnable de supposer que les plus GREEN (ou RED ) dans le voisinage de X, plus il est probable que les nouveaux cas appartiennent à cette couleur particulière. Pour mesurer cette probabilité, nous traçons un cercle autour de X qui englobe un nombre (à choisir a priori) de points indépendamment de leurs étiquettes de classe. Nous calculons ensuite le nombre de points du cercle appartenant à chaque étiquette de classe. A partir de là, nous calculons la vraisemblance :

enter image description here

enter image description here

D'après l'illustration ci-dessus, il est clair que la probabilité de X dado GREEN est plus petite que la probabilité de X dado RED puisque le cercle englobe 1 GREEN et 3 RED ceux. Ainsi :

enter image description here

enter image description here

Bien que les probabilités préalables indiquent que X peut appartenir à GREEN (étant donné qu'il y a deux fois plus de GREEN par rapport à RED ) la vraisemblance indique le contraire ; que l'appartenance à la classe de X es RED (étant donné qu'il y a plus de RED des objets à proximité de X que GREEN ). Dans l'analyse bayésienne, la classification finale est produite en combinant les deux sources d'information, c'est-à-dire l'antériorité et la vraisemblance, pour former une probabilité postérieure à l'aide de la règle dite de Bayes (du nom du révérend Thomas Bayes, 1702-1761).

enter image description here

Enfin, nous classons X comme RED puisque son appartenance à une classe a la plus grande probabilité postérieure.

42 votes

L'algorithme ci-dessus ne s'apparente-t-il pas davantage à celui des voisins les plus proches ?

258 votes

Cette réponse prête à confusion - elle mélange KNN (k nearest neighbours) et naive bayes.

7 votes

La réponse se déroulait bien jusqu'à ce que la probabilité apparaisse. Donc @Yavar a utilisé les K-voisins les plus proches pour calculer la vraisemblance. Est-ce que c'est correct ? Si c'est le cas, quelles sont les autres méthodes pour calculer la vraisemblance ?

20voto

jitesh mohite Points 3119

Naive Bayes fait partie de l'apprentissage automatique supervisé qui est utilisé pour effectuer des classifications d'ensembles de données. Il est utilisé pour prédire des choses sur la base de ses connaissances préalables et de ses hypothèses d'indépendance.

Ils l'appellent naïf parce que ses hypothèses (il suppose que toutes les caractéristiques de l'ensemble de données sont d'importance égale et indépendantes) sont vraiment optimistes et rarement vraies dans la plupart des applications du monde réel.

Il s'agit d'un algorithme de classification qui prend la décision pour un ensemble de données inconnu. Il est basé sur Théorème de Bayes qui décrivent la probabilité d'un événement en fonction de ses connaissances préalables.

Le diagramme ci-dessous montre comment fonctionne le modèle de Bayes naïf

enter image description here

Formule pour prédire le NB :

enter image description here

Comment utiliser l'algorithme de Naive Bayes ?

Prenons un exemple de la façon dont fonctionne le N.B.

Étape 1 : Tout d'abord, nous trouvons la table de vraisemblance qui montre la probabilité de oui ou de non dans le diagramme ci-dessous. Étape 2 : Trouver la probabilité postérieure de chaque classe.

enter image description here

Problem: Find out the possibility of whether the player plays in Rainy condition?

P(Yes|Rainy) = P(Rainy|Yes) * P(Yes) / P(Rainy)

P(Rainy|Yes) = 2/9 = 0.222
P(Yes) = 9/14 = 0.64
P(Rainy) = 5/14 = 0.36

Now, P(Yes|Rainy) = 0.222*0.64/0.36 = 0.39 which is lower probability which means chances of the match played is low.

Pour de plus amples informations, veuillez consulter les documents suivants blog.

Référencer le dépôt GitHub Exemples de Naive-Bayes

19voto

Ram Narasimhan a très bien expliqué le concept. Vous trouverez ci-dessous une explication alternative à travers un exemple de code de Naive Bayes en action.
Il utilise un exemple de problème de ce livre à la page 351
Voici l'ensemble des données que nous allons utiliser
enter image description here
Dans l'ensemble de données ci-dessus, si nous émettons l'hypothèse = {"Age":'<=30', "Income":"medium", "Student":'yes' , "Creadit_Rating":'fair'} alors quelle est la probabilité qu'il achète ou n'achète pas un ordinateur.
Le code ci-dessous répond exactement à cette question.
Il suffit de créer un fichier nommé new_dataset.csv et coller le contenu suivant.

Age,Income,Student,Creadit_Rating,Buys_Computer
<=30,high,no,fair,no
<=30,high,no,excellent,no
31-40,high,no,fair,yes
>40,medium,no,fair,yes
>40,low,yes,fair,yes
>40,low,yes,excellent,no
31-40,low,yes,excellent,yes
<=30,medium,no,fair,no
<=30,low,yes,fair,yes
>40,medium,yes,fair,yes
<=30,medium,yes,excellent,yes
31-40,medium,no,excellent,yes
31-40,high,yes,fair,yes
>40,medium,no,excellent,no

Voici le code : les commentaires expliquent tout ce que nous faisons ici ! [python]

import pandas as pd 
import pprint 

class Classifier():
    data = None
    class_attr = None
    priori = {}
    cp = {}
    hypothesis = None

    def __init__(self,filename=None, class_attr=None ):
        self.data = pd.read_csv(filename, sep=',', header =(0))
        self.class_attr = class_attr

    '''
        probability(class) =    How many  times it appears in cloumn
                             __________________________________________
                                  count of all class attribute
    '''
    def calculate_priori(self):
        class_values = list(set(self.data[self.class_attr]))
        class_data =  list(self.data[self.class_attr])
        for i in class_values:
            self.priori[i]  = class_data.count(i)/float(len(class_data))
        print "Priori Values: ", self.priori

    '''
        Here we calculate the individual probabilites 
        P(outcome|evidence) =   P(Likelihood of Evidence) x Prior prob of outcome
                               ___________________________________________
                                                    P(Evidence)
    '''
    def get_cp(self, attr, attr_type, class_value):
        data_attr = list(self.data[attr])
        class_data = list(self.data[self.class_attr])
        total =1
        for i in range(0, len(data_attr)):
            if class_data[i] == class_value and data_attr[i] == attr_type:
                total+=1
        return total/float(class_data.count(class_value))

    '''
        Here we calculate Likelihood of Evidence and multiple all individual probabilities with priori
        (Outcome|Multiple Evidence) = P(Evidence1|Outcome) x P(Evidence2|outcome) x ... x P(EvidenceN|outcome) x P(Outcome)
        scaled by P(Multiple Evidence)
    '''
    def calculate_conditional_probabilities(self, hypothesis):
        for i in self.priori:
            self.cp[i] = {}
            for j in hypothesis:
                self.cp[i].update({ hypothesis[j]: self.get_cp(j, hypothesis[j], i)})
        print "\nCalculated Conditional Probabilities: \n"
        pprint.pprint(self.cp)

    def classify(self):
        print "Result: "
        for i in self.cp:
            print i, " ==> ", reduce(lambda x, y: x*y, self.cp[i].values())*self.priori[i]

if __name__ == "__main__":
    c = Classifier(filename="new_dataset.csv", class_attr="Buys_Computer" )
    c.calculate_priori()
    c.hypothesis = {"Age":'<=30', "Income":"medium", "Student":'yes' , "Creadit_Rating":'fair'}

    c.calculate_conditional_probabilities(c.hypothesis)
    c.classify()

sortie :

Priori Values:  {'yes': 0.6428571428571429, 'no': 0.35714285714285715}

Calculated Conditional Probabilities: 

{
 'no': {
        '<=30': 0.8,
        'fair': 0.6, 
        'medium': 0.6, 
        'yes': 0.4
        },
'yes': {
        '<=30': 0.3333333333333333,
        'fair': 0.7777777777777778,
        'medium': 0.5555555555555556,
        'yes': 0.7777777777777778
      }
}

Result: 
yes  ==>  0.0720164609053
no  ==>  0.0411428571429

14voto

Ahmad Points 1454

J'essaie d'expliquer la règle de Bayes à l'aide d'un exemple.

Quelle est la probabilité qu'une personne choisie au hasard dans la société soit un fumeur ?

Vous pouvez répondre 10%, et supposons que c'est exact.

Maintenant, que se passe-t-il si je dis que la personne aléatoire est un homme et est 15 ans ?

Vous pouvez dire 15 ou 20 %, mais pourquoi ?

En fait, nous essayons de mettre à jour notre estimation initiale avec de nouveaux éléments de preuve ( P(smoker) vs. P(smoker | evidence) ). La règle de Bayes est un moyen de mettre en relation ces deux probabilités.

P(smoker | evidence) = P(smoker)* p(evidence | smoker)/P(evidence)

Chaque preuve peut augmenter ou diminuer cette chance. Par exemple, le fait qu'il s'agisse d'un homme mai augmenter les chances à condition que ce pourcentage (être un homme) parmi les non-fumeurs soit plus faible.

En d'autres termes, le fait d'être un homme doit être un indicateur du fait d'être fumeur plutôt que non-fumeur. Par conséquent, si une preuve est un indicateur de quelque chose, elle augmente les chances.

Mais comment savoir si c'est un indicateur ?

Pour chaque caractéristique, vous pouvez comparer le caractère commun (probabilité) de cette caractéristique dans les conditions données avec son caractère commun seul. ( P(f | x) vs. P(f)) .

P(smoker | evidence) / P(smoker) = P(evidence | smoker)/P(evidence)

Par exemple, si nous savons que 90 % des fumeurs sont des hommes, il n'est pas encore suffisant de dire si le fait d'être un homme est un indicateur du fait d'être fumeur ou non. Par exemple, si la probabilité d'être un homme dans la société est également de 90 %, le fait de savoir que quelqu'un est un homme ne nous aide pas ((90% / 90%) = 1 . Mais si les hommes représentent 40 % de la société, mais 90 % des fumeurs, alors le fait de savoir qu'une personne est un homme augmente les chances qu'elle soit fumeuse. (90% / 40%) = 2.25 Il augmente donc l'estimation initiale (10 %) de 2,25, ce qui donne 22,5 %.

Cependant, si la probabilité d'être un homme était de 95% dans la société, alors, indépendamment du fait que le pourcentage d'hommes parmi les fumeurs est élevé (90%) ! la preuve que quelqu'un est un homme diminue la probabilité qu'il soit fumeur ! (90% / 95%) = 0.95) .

Donc nous avons :

P(smoker | f1, f2, f3,... ) = P(smoker) * contribution of f1* contribution of f2 *... 
=
P(smoker)* 
(P(being a man | smoker)/P(being a man))*
(P(under 20 | smoker)/ P(under 20))

Notez que dans cette formule, nous avons supposé que être un homme y avoir moins de 20 ans sont des caractéristiques indépendantes, nous les avons donc multipliées, ce qui signifie que le fait de savoir que quelqu'un a moins de 20 ans n'a aucun effet sur l'estimation de son sexe. Mais cela peut ne pas être vrai, par exemple, peut-être que la plupart des adolescents dans une société sont des hommes...

Pour utiliser cette formule dans un classificateur

On donne au classificateur quelques caractéristiques (être un homme et avoir moins de 20 ans) et il doit décider s'il est fumeur ou non (ce sont deux classes). Il utilise la formule ci-dessus pour calculer la probabilité de chaque classe en fonction de l'évidence (caractéristiques), et il attribue la classe avec la probabilité la plus élevée à l'entrée. Pour fournir les probabilités requises (90%, 10%, 80%...), il utilise l'ensemble d'apprentissage. Par exemple, il compte les fumeurs dans l'ensemble d'apprentissage et constate qu'ils représentent 10 % de l'échantillon. Ensuite, pour les fumeurs, il vérifie combien d'entre eux sont des hommes ou des femmes .... combien ont plus de 20 ans ou moins de 20 ans....En d'autres termes, il essaie de construire la distribution de probabilité des caractéristiques pour chaque classe sur la base des données d'apprentissage.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X