Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | |||
restricted:cm4 [2020/05/18 13:32] – edauce | restricted:cm4 [2020/05/19 14:45] (Version actuelle) – edauce | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ==== 5. Classification et partitionnement ==== | ||
+ | |||
+ | === 5.1 Performance de la recherche d' | ||
+ | |||
+ | <note tip> | ||
+ | **Rappel : Recherche d’information : requête / réponses** | ||
+ | |||
+ | {{: | ||
+ | |||
+ | → La réponse de l’algorithme est une liste ordonnée de références, | ||
+ | </ | ||
+ | |||
+ | On cherche à évaluer les performances d’un programme de recherche d’information. Pour ce faire, on le teste sur une base constituée de questions et de réponses (connues). | ||
+ | |||
+ | <note important> | ||
+ | Pour une requête q donnée, | ||
+ | * on note R(q) la liste des réponses du programme | ||
+ | * et S(q) la liste des réponses souhaitées (“solution”). | ||
+ | </ | ||
+ | |||
+ | On veut savoir : | ||
+ | - si les réponses obtenues sont // | ||
+ | - si //toutes// les réponses souhaitées ont été obtenues? | ||
+ | |||
+ | **Exemple: | ||
+ | |||
+ | <note tip> | ||
+ | On a une base d' | ||
+ | on veut savoir : | ||
+ | * s'il trouve bien les mammifères? | ||
+ | * s'il trouve tous les mammifères? | ||
+ | </ | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | * A=|R(q)| est le nombre total de réponses fournies par le programme (pour la requête q). | ||
+ | * B=|S(q)| est le nombre total de réponses souhaitées (pour la requête q). | ||
+ | * C=|R(q)∩S(q)| | ||
+ | * D=A−C indique combien de “mauvaises” réponses ont été fournies par le programme. Ce sont les **faux positifs**. | ||
+ | * E=B−C indique combien de “bonnes” réponses ont été oubliées. Ce sont les **faux négatifs**. | ||
+ | |||
+ | Il n’y a pas de formule unique pour évaluer la performance du programme!! | ||
+ | |||
+ | |||
+ | <note important> | ||
+ | **Précision** | ||
+ | * Soit D/A le taux d’erreur. | ||
+ | * La // | ||
+ | F=1−D/A | ||
+ | </ | ||
+ | Remarques : | ||
+ | * La précision vaut 1 s’il n’y a pas de mauvaise reponse. | ||
+ | * Remarque: la précision risque de bien noter un programme qui ne donne pas assez de bonnes réponses (même si rien n’est faux dans les réponses du programme). Ce son les **faux négatifs**. | ||
+ | |||
+ | <note important> | ||
+ | **Rappel** | ||
+ | * Soit E/B le taux d’oubli | ||
+ | * Le //rappel// du programme de recherche d' | ||
+ | G=1−E/B | ||
+ | </ | ||
+ | Remarques : | ||
+ | * Le rappel vaut 1 lorsqu' | ||
+ | * Il vaut 1 si toutes les bonnes réponses y sont. | ||
+ | * Néanmoins, le rappel risque de bien noter un programme qui donne trop de réponses (meme si toutes les bonnes réponses y sont). Ce sont les **faux positifs**. | ||
+ | |||
+ | **Conclusion** : pour mesurer la performance du programme, il faut considérer deux notes et non pas une seule. La performance d’un programme se mesure sur un axe (précision, | ||
+ | |||
+ | Une courbe ROC (receiver operating characteristic) est un graphique représentant les performances d'un modèle de classification pour tous les seuils de classification. Cette courbe trace le taux de vrais positifs en fonction du taux de faux positifs : | ||
+ | |||
+ | Une courbe ROC trace les valeurs TVP et TFP pour différents seuils de classification. Diminuer la valeur du seuil de classification permet de classer plus d' | ||
+ | {{ : | ||
+ | === 5.2 Classification de documents=== | ||
+ | |||
+ | Exemples de tâches de classification: | ||
+ | * **Partitionnement**. On a une base de documents non classés. On veut construire des classes regroupant les documents qui se “ressemblent” le plus. | ||
+ | * **Identification** (reconnaissance). On a une base de documents classés. On veut trouver la classe d’un document d inconnu. | ||
+ | |||
+ | === Principe de mise en oeuvre=== | ||
+ | |||
+ | **Mesures de similarité**. On utilise une des mesures de similarité vues précédemment et " | ||
+ | |||
+ | **Bases d' | ||
+ | |||
+ | Soit P un programme de recherche d' | ||
+ | |||
+ | Remarque: les réponses peuvent être simples ou multiples, c'est à dire qu'un document peut appartenir à une catégorie unique ou au contraire appartenir à de nombreuses catégories. | ||
+ | |||
+ | Soit C un ensemble de catégories. Pour un ensemble d' | ||
+ | |||
+ | <note tip> | ||
+ | La matrice de confusion est une matrice qui mesure la qualité d'un système de classification. Chaque ligne correspond à une classe réelle, chaque colonne correspond à une classe estimée. La cellule ligne i, colonne j contient le nombre d' | ||
+ | </ | ||
+ | |||
+ | **Exemple: | ||
+ | On souhaite mesurer la qualité d'un système de classification de courriers électroniques. Les courriers sont classifiés selon deux classes : courriel pertinent ou pourriel intempestif. Supposons que notre classificateur est testé avec un jeu de 200 mails, dont 100 sont des courriels pertinents et les 100 autres sont des pourriels. | ||
+ | |||
+ | {{https:// | ||
+ | |||
+ | Pour cela, on veut savoir : | ||
+ | * combien de courriels seront faussement estimés comme des pourriels (fausses alarmes) et | ||
+ | * combien de pourriels ne seront pas estimés comme tels (non détections) et classifiés à tort comme courriels. | ||
+ | |||
+ | |||
+ | ^ Classe estimée par le classifieur | ||
+ | ^ Classe réelle ^ Courriel | ||
+ | ^ ::: ^ Pourriel | ||
+ | |||
+ | La matrice de confusion suivante se lit alors comme suit : | ||
+ | * horizontalement, | ||
+ | * horizontalement, | ||
+ | * verticalement, | ||
+ | * verticalement, | ||
+ | * diagonalement (du haut gauche , au bas droit), sur les 200 courriels initiaux, 192 (95 + 97) ont été estimés correctement par le système. | ||
+ | |||
+ | === Méthode K plus proches voisins === | ||
+ | |||
+ | La méthode des K plus proche voisins permet de prédire la classe d'un document d inconnu à partir des classes des documents les plus similaires au document courant. | ||
+ | |||
+ | La liste des voisins est obtenues par calcul de similarité entre le document courant et l' | ||
+ | |||
+ | <note tip> **remarque** : K est un paramètre arbitraire. | ||
+ | * Il est possible de tester plusieurs valeurs de K et de choisir celle qui donne le meilleur taux de classification. | ||
+ | * La méthode la plus simple consiste à prendre K=1, c'est à dire qu'on attribue la classe du document qui ressemble le plus au document inconnu. | ||
+ | * Plus K est élevé, plus la méthode sera robuste aux erreurs de classification. | ||
+ | </ | ||
+ | |||
+ | Une fois la liste des voisins déterminée, | ||
+ | * **Méthode du vote majoritaire**. La fonction retourne la classe la plus probable par vote majoritaire (chaque voisin vote pour sa classe). | ||
+ | * **Moyenne pondérée**. | ||
+ | wc=∑v∈Voisins;c∈r(v)sim(d,v)∑v∈Voisinssim(d,v) | ||
+ | La fonction retourne la classe au score le plus élevé. | ||
+ | |||
+ | === Régression logistique === | ||
+ | voir : {{https:// | ||
+ | |||
+ | === Classifieur Bayésien === | ||
+ | |||
+ | Un classifieur bayésien estime la probabilité d' | ||
+ | |||
+ | Soit V un vocabulaire de taille m. Soit t un terme de vocabulaire. On note p(t|c) la probabilité que le terme t apparaisse dans un document de classe c. | ||
+ | |||
+ | On suppose qu'il existe pour chaque terme une probabilité conditionnelle associée à la classe, appelée la vraisemblance (vraisemblance du fait que le terme t apparaisse dans le document s'il est de classe c.) | ||
+ | |||
+ | La formule de Bayes permet de dire, étant donnée l' | ||
+ | |||
+ | p(c|t)=p(t|c)p(c)∑c′∈Cp(t|c′)p(c′) | ||
+ | |||
+ | Si d est un document contenant k termes t1,...,tk, la formule se généralise à : | ||
+ | p(c|t1,...,tk)=p(t1,...,tk|c)p(c)∑c′∈Cp(t1,...,tk|c′)p(c′) | ||
+ | |||
+ | En général, on ne dispose pas des probabilités p(t1,...,tk|c). On utilise en général l' | ||
+ | p(d|c)≃p(t1,...,tk|c)≃p(t1|c)×...×p(tk|c) | ||
+ | |||
+ | Au final, la réponse du classifieur repose sur un produit de probabilités élémentaires portant sur les **fréquences documentaires** des termes présents dans les groupes de documents appartenant à certaines classes. | ||
+ | |||
+ | Pour construire le classifieur: | ||
+ | * La base d' | ||
+ | * pour chaque sous-base, on calcule la fréquence documentaire de chaque terme de vocabulaire | ||
+ | |||
+ | Pour classer un document d inconnu, le classifieur retourne la classe qui maximise le score de vraisemblance, | ||
+ | maxcg(t1,c)×...×g(tk,c) | ||
+ | |||
+ | <note tip> | ||
+ | Pour éviter les problèmes de précision numérique, on calcule pour chaque classe possible un " | ||
+ | wc=logg(t1,c)+...+logg(t1,c) | ||
+ | et on retourne : | ||
+ | maxcwc | ||
+ | **Remarque: | ||
+ | p(c|d)≃expwc∑c′∈Cexpwc′ | ||
+ | </ | ||
+ | |||
+ | |||
+ | <note tip> Pour aller plus loin : | ||
+ | {{https:// | ||
+ | </ | ||
+ | |||
+ | === Partitionnement === | ||
+ | |||
+ | Il existe deux grandes méthodes de partitionnement : | ||
+ | * Le {{https:// | ||
+ | partitionnement hiérarchique}} | ||
+ | * L' | ||
+ | |||
+ | |||