Classification et prédiction

Slides:



Advertisements
Présentations similaires
Algorithme de Lempel-Ziv et Arbre MESH
Advertisements

La théorie du monde est petit
1 3.Langage XSL = XSLT + XSL-FO transformationFormatage.
A. Cornuéjols IAA (basé sur Rob Schapires IJCAI99 talk) Combiner des apprenants: le boosting.
Classification et prédiction
Fonctions & procédures
Règles d’association.
Regroupement (clustering)
RECONNAISSANCE DE FORMES
Calculs de complexité d'algorithmes
Story-board version 1.1 Statut : à valider Rédacteur : Nicole Djuissi
GEF 435 Principes des systèmes d’exploitation
Comparaison d'une distribution observée à une distribution théorique
Les TESTS STATISTIQUES
1. Les caractéristiques de dispersion. 11. Utilité.
Simplification et abstraction de dessins au trait
Les TESTS STATISTIQUES
Estimation de la survie comparaison des courbes de survie FRT C3.
R. Saint-Paul, G. Raschia and N. Mouaddib IRIN, Nantes (France)
variable aléatoire Discrète
PARTIE 3 : Le SYSTEME D’INFORMATION FUTUR
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Apprendre à partir des observations
Plus courts chemins On présente dans ce chapitre un problème typique de cheminement dans les graphes : la recherche d'un plus court chemin entre deux sommets.
CONJ 1 CE2 Je comprends les notions daction passée, présente, future.
Méthodes de Biostatistique
Les structures de données arborescentes
Algorithmes Branch & Bound
Détection de co-évolution de gènes Master 2 : Informatique à Finalité Professionnelle et Recherche Unifiée (IFPRU) Parcours Ingénierie de lIntelligence.
Cours Corporate finance Eléments de théorie du portefeuille Le Medaf
Méthode des k plus proches voisins
Des situations familières concernant les instruments produisant du hasard Présentation.
Gestion de Fichiers Arbres B.
L’utilisation des bases de données
La Classification
SYSTEMES D’INFORMATION
Réseaux de neurones.
MODELE RELATIONNEL concept mathématique de relation
Arbres Rouge noir Démo : INF3105 Structures de données et algorithmes
Structures de données IFT-2000
GPA789 Analyse et conception orientées objet 1 Professeur: Tony Wong, Ph.D., ing. Chapitre 6 Correspondance UML et C++
GPA750 Les ateliers multigammes Chapitre 5
Programmation linéaire en nombres entiers Algorithme de la subdivision successive («Branch and Bound Algorithm»)
Courbes de Bézier.
Corrélation Principe fondamental d’une analyse de corrélation
1.1 LES VECTEURS GÉOMÉTRIQUES
Algorithmes d ’approximation
LE CHOIX DU CONSOMMATEUR ET LA DEMANDE… (suite)
LE CHOIX EN CONTEXTE D’INCERTITUDE
LE CHOIX DU CONSOMMATEUR ET LA DEMANDE
L’OFFRE ET LA DEMANDE.
Les Arbres de décision ou régression
Mise en oeuvre des MMCs L'utilisation des MMCs en reconnaissance des formes s'effectue en trois étapes : définition de la topologie de la chaîne de Markov,
Projet de Master première année 2007 / 2008
Programmation dynamique
Apprentissage par arbre de décision
Programmation linéaire en nombres entiers : les méthodes de troncature
Calcul de probabilités
1 Modèle pédagogique d’un système d’apprentissage (SA)
ANALYSE METHODE & OUTILS
Suites numériques Définitions.
Rappels de statistiques descriptives
Exploration systématique de graphes
Arbres de décision flous
CHAPITRE 3. Acquisition d’information et révision des croyances
Extreemly Random Trees + SubWindows HOURRI Soufiane NAIT ABDELLAH OUALI Ismail OUFQIR Anouar OUSSAFI Mohammed.
Échantillonnage (STT-2000) Section 5 Types d’erreur de sondage. Version: 22 août 2003.
Détecter les groupes à hauts risques cardiaques à partir de caractéristiques telles que l’alimentation, le fait de fumer ou pas, les antécédents familiaux.
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
Techniques du Data Mining
Transcription de la présentation:

Classification et prédiction

Classification vs. Prédiction Classifier les données (construire un modèle) en se basant sur un ensemble où l’on connaît déjà l’association données-classes (training set: ensemble d’apprentissage) Prédiction: Modéliser des valeurs connues pour prédire des valeurs inconnues

Classification— Processus à deux étapes Construction du modèle: Chaque tuple (exemple) est supposé appartenir à une classe comme spécifié par le label de l’attribut “Classe” Les données sont partagées en 2 sous ensembles Le modèle (construit sur le 1er sous ensemble) est représenté par des règles de classification, arbres de décisions … Utilisation du modèle: Estimer la pertinence sur le 2ème sous ensemble Comparer les labels de classe de l’ensemble avec ce que prévoit le modèle Le pourcentage de tuples qui sont correctement classifiés par le modèle donne une mesure de la précision

Processus de Classification (1): Construction du modèle Algorithmes de Classification Training Data Modèle SI Grade = ‘professeur’ OU Années > 6 ALORS Titulaire = ‘oui’

Processus de Classification (2): Prédiction Modèle Données Pour test Nouvelles données (Jeff, Professeur, 4) Titulaire? OUI

Apprentissage Supervisé vs non supervisé Apprentissage Supervisé (classification) Supervision: les données d’apprentissage (observations) sont accompagnés par les labels indiquant leurs classes Les nouvelles données sont classifiées en se basant sur le training set Apprentissage non supervisé (regroupement) Le label de classe des éléments observés (training set) n’est pas connu Le but est de déceler l’existence de classes ou groupes dans les données

Classification avec arbres de décision Arbre de Décision Les nœuds internes correspondent à des tests Un arc correspond au résultat d’un test Les nœuds feuilles représentent des classes La génération se fait en 2 phases Construction de l’arbre Au début tous les tuples se trouvent sur la racine Partitionner les tuples récursivement en se basant à chaque fois sur un attribut sélectionné Simplification de l’arbre Identifier et supprimer les branches qui correspondent à des exceptions Utilisation: Tester les attributs du tuple par rapport à l’arbre pour trouver la branche et qu’il satisfait donc sa classe

Training set

Output: Un arbre de décision pour “achète_ordinateur” age? <=30 overcast 30..40 >40 étudiant? oui Crédit ? non oui excellent correct non oui non oui

Création de l’arbre de décision L’arbre est construit top-down récursivement Au début, tous les tuples sont sur la racine Les attributs sont qualitatifs (discrétisation s’il le faut) Les tuples sont ensuite partitionnés en fonction de l’attribut sélectionné L’attribut de test est sélectionné en utilisant des heuristiques ex: gain informationnel (on y reviendra) Conditions d’arrêt du partitionnement Tous les tuples d’un nœud se trouvent dans la même classe

Choix de l’attribut de partionnement (1) Soit le training set suivant A B Classe 1 C1 C2 Si c’est A qui est choisi en premier A 1 C2 C1 Si c’est B qui est choisi en premier B 1 A 1 A 1 C2 C1 C1 C2

Choix de l’attribut de partionnement (2) Un arbre de décision représente la suite de questions à poser pour pouvoir classifier un nouvel exemple. Le but consiste à obtenir une classification en posant le moins possible de questions Dans l’exemple précédent, on dira que l’attribut A apporte plus d’information, respectivement à la classification des exemples, que B Nous avons donc besoin de quantifier l’information apportée par chaque attribut

Notions sur la théorie de l’information(1) Intuitivement : Plus un événement est probable, moins il nous apporte d’information Exemple : Vous êtes dans le désert et on vous annonce que le lendemain, il fera beau. C’est un événement très probable, ce message n’apporte donc presque aucune information La quantité d’information associée à un événement x sera considérée comme une fonction croissante sur son improbabilité Un événement certain apporte une quantité d’information nulle, ainsi f(1) doit être nulle

Notions sur la théorie de l’information(2) La réalisation de 2 événements indépendants apporte une quantité d’information égale à la somme de leurs informations respectives, i.e C’est la fonction log en base 2 qui a été choisie. Ainsi, La fonction h satisfait les 2 conditions: croissante et l’info de deux événements indépendants est la somme des infos

Notions sur la théorie de l’information(3) Supposons maintenant qu’il y a deux classes, P et N Soit S un ensemble qui contient p éléments de P et n éléments de N La probabilité qu’un élément soit dans P est p/(p+n) La quantité d’information nécessaire pour décider si un élément quelconque de S se trouve dans P ou dans N est définie par

Cas particulier Supposons que p soit nul. Cela veut dire que I(n,p)=0: p=0 et log(p/[n+p])=- le produit donne 0 (pour être précis, la limite du produit tend vers 0 quand p tend vers 0) log(n/[n+p])=0 donc le produit donne 0 Ce qui est conforme à l’intuition: On n’a pas besoin d’info pour décider si un élément est dans N ou P; on est sûr qu’il est dans N

Intuition de l’expression I(n,p) Chaque élément apporte une information qui est si il est dans P si il est dans N Si l’on fait le total des infos, on obtient I(n,p)

Gain d’information et arbre de décision Supposons qu’en utilisant l’attribut A, S est partitionné en {S1, S2 , …, Sv} (ça veut dire que A prend v valeurs) Si Si contient pi tuples de P et ni tuples de N, l’entropie, ou la quantité d’information nécessaire pour classifier les objets de tous les sous arbres Si est L’entropie mesure la « quantité de  désordre » qui reste après le choix de A L’information de codage gagnée en utilisant A sera

Intuition derrière Gain(A) Pour classer les éléments dans Si, nous avons besoin d’une quantité d’info égale à I(ni,pi) Pour classer les éléments dans tous les Si, on fait la somme des I(ni,pi) ce qui donne E(A) On sait que pour classifier les éléments, nous avons besoin d’une quantité d’info égale à I(n,p) Suite au pationnement des n+p éléments selon les valeurs de A, nous aurons besoin d’une quantité d’info égale à E(A) Donc, il nous manquera que I(n,p)-E(A) pour pouvoir classer

Application à l’exemple Il y a 2 classes C1 (P) et C2 (N) En choisissant A, S est partitionné en S1 et S2 p1=2, n1=0, p2=0 et n2=2 E(A)=(I(2,0)+I(0,2)) I(2,0)=-log(1)-0*log(0)=0 I(0,2)=0 E(A)=0 Gain(A)=I(2,2)-E(A) I(2,2)=-2*log(2/4)-2*log(2/4)=4 Gain(A)=4 A B Classe 1 C1 C2

Application à l’exemple En choisissant B, S est partitionné en S1 et S2 p1=1, n1=1, p2=1 et n2=1 E(B)=(I(1,1)+I(1,1)) I(1,1)=-log(1/2)-log(1/2)=2 E(B)=4 Gain(B)=I(2,2)-E(B)=0 Il vaut mieux choisir A!! A B Classe 1 C1 C2 S1 S2

Gain d’information: Exemple Ainsi, Classe P: achète_ordinateur = “oui” Classe N: achète_ordinateur = “non” I(p, n) = I(9, 5) =13,16 L’entropie de l’attribut age: Gain(age)=I(p,n)-E(age)=3,45 C’est l’attribut qui maximise le gain Remarquer que le salaire n’a pas du tout été utilisé

Extraction de règles de classification De la forme SI-ALORS Chaque chemin partant de la racine et atteignant une feuille donne lieu à une règle Chaque paire attribut-value le long d’un chemin forme une conjonction Les feuilles constituent la classe Exemple SI age = “<=30” ET étudiant = “non” ALORS achète_ordinateur = “non” SI age = “<=30” ET étudiant = “oui” ALORS achète_ordinateur = “oui”

Problème de l’overfitting En appliquant la méthode décrite jusque là, on obtient des arbres qui classent correctement les exemples du training set Aucune erreur (normalement) Mais rien ne dit qu’ils seront efficaces pour l’autre partie des exemples Lorsque l’arbre « colle trop au training set » on parle d’overfitting Pour résoudre le problème, on va autoriser des erreurs sur le training set pour obtenir des arbres assez généraux

Généraliser l’arbre induit 2 Approches Prepruning: ne pas découper un nœud si le partage fait basculer la mesure de pertinence en dessous d’un certain seuil. Par exemple si le gain est inférieur à un certain seuil Difficile de choisir un seuil approprié Postpruning: supprimer des banches d’un arbre déjà construit. Obtenir un ensemble d’arbres réduits Utiliser un ensemble de données différent du training set pour choisir le meilleur arbre réduit

Gestion des erreurs Supposons que le taux d’erreurs soit de 25%. Comment peut-on prédire le taux d’erreurs sur les nouveaux exemples? Cette prédiction ressemble au problème suivant: On jette une pièce un certain nombre de fois. Quand c’est pile alors on a un succès (l’exemple est bien classifié) Quand c’est face, alors échec (l’exemple est mal classifié) Le taux d’erreurs sur N exemples correspond au taux d’échecs après N jets de la pièce

Gestion des erreurs La répétition des jets correspond à une expérience de Bernouilli (voir cours de statistique) En utilisant la notion des « intervalles de confiance » on peut estimer, à partir d’un taux calculé, la probabilité d’un échec Si à la suite de 1000 jets, on obtient 750 fois face alors on en déduit qu’on est confient à 80% que le taux de faces en général soit dans l’intervalle [0.73, 0.76] Si à la suite de 100 jets, on obtient 75 fois face, alors dans ce cas, l’intervalle de confiance à 80% devient [0.69,0.80]

Prise en compte des erreurs La moyenne et la variance d’une variable de Bernouilli sont resp. p et p(1-p) Le taux d’échecs est f=S/N (où S est le nombre de d’échecs après N essais) La moyenne et la variance de f sont p et p(1-p)/N Le problème consiste à trouver p en fonction de f Pour un N assez grand (>100) f suit une loi normale La variable suit une loi normale centrée réduite étant donné c (seuil de confiance) on peut trouver z tel que Probabilité[-z Yz]=c à partir de la table de la loi normale

Prise en compte des erreurs Une fois qu’on a trouvé z, il suffit de résoudre l’équation Les systèmes (e.g C4.5) adoptent une approche pessimiste en prenant la plus grande valeur de p

Classification Bayésienne Prédiction en termes de probabilité : Prédit plusieurs hypothèses en les pondérant par leurs probabilités Etant donné un objet O, la méthode consisite à calculer la probabilité d’appartenance de O à chaque classe, puis choisir celle qui maximise cette valeur Standard: Même s’il s’avère que les méthodes bayésiennes se révèlent intractables, elles peuvent être considérées comme étalon pour mesurer la correction d’autres méthodes

Théoreme de Bayes Soit le training set D, la probabilité aposteriori de l’hypothèse h, P(h|D) suit le théorème de Bayes MAP (maximum posteriori) hypothesis Difficulté pratique: on a besoin de connaître initialement plusieurs probabilités et un temps de calcul non négligeable

Classifieur Naïf de Bayes (I) On suppose que les attributs sont indépendants: Réduit énormément les temps de calcul, compter seulement la distribution de classes.

Classifieur Naïf de Bayes (I) Etant donné un training set, on peut calculer les probabilités. P:jouer au tennis (Positif) et N: ne pas jouer au tennis (Négatif)

Classification Bayésienne Le problème de classification peut être formalisé en utilisant les probabilités a-posteriori: P(C|X) = prob. que X=<x1,…,xk> soit de la classe C. Ex. P(classe=N | temps=soleil,vent=vrai,…) Affecter à X la classe C tel que P(C|X) est maximal

Estimer les probabilités a-posteriori Théoreme de Bayes : P(C|X) = P(X|C)·P(C) / P(X) P(X) est la même pour toutes les classes P(C) = fréquence relative des éléments de C C telle que P(C|X) est maximum = C telle que P(X|C)·P(C) est maximum Problème: calculer P(X|C) est infaisable !

Classification Bayésiènne Naïve Hypothèse: indépendance des attributs P(x1,…,xk|C) = P(x1|C)·…·P(xk|C) Si attribut Ai est qualitatif: P(xi|C) est estimée par la fréquence relative des éléments ayant la valeur xi pour Ai et qui sont dans C Si attribut Ai est continu: P(xi|C) est estimé en utilisant la loi de Gauss (on suppose Ai suit une loi normale) Facile à calculer dans les deux cas

Example: estimer P(xi|C) Temps P(soleil|P) = 2/9 P(soleil|N) = 3/5 P(couvert|P) = 4/9 P(couvert|N) = 0 P(pluie|P) = 3/9 P(pluie|N) = 2/5 Température P(chaud|P) = 2/9 P(chaud|N) = 2/5 P(tiède|P) = 4/9 P(tiède|N) = 2/5 P(froid|P) = 3/9 P(froid|N) = 1/5 Humidité P(élevée|P) = 3/9 P(élevée|N) = 4/5 P(normale|P) = 6/9 P(normale|N) = 2/5 Vent P(Vrai|P) = 3/9 P(vrai|N) = 3/5 P(faux|P) = 6/9 P(faux|N) = 2/5 P(p) = 9/14 P(n) = 5/14

Exemple: classifier X Soit X = <pluie, chaud, élevée, faux> P(X|p)·P(p) = P(pluie|p)·P(chaud|p)·P(élevée|p)·P(faux|p)·P(p) = 3/9·2/9·3/9·6/9·9/14 = 0.010582 P(X|n)·P(n) = P(pluie|n)·P(chaud|n)·P(élevée|n)·P(faux|n)·P(n) = 2/5·2/5·4/5·2/5·5/14 = 0.018286 X est classifié en N (ne pas jouer au tennis)

L’hypothèse d’ indépendance Rend le calcul possible Problème: en pratique, les attributs (variables) sont souvent corrélés Solution : Réseaux Bayesien, utiliser le raisonnement Bayésien en tenant compte des relations causales qui existent entre attributs

La table de probabilité conditionnelle de la variable LC Réseaux Bayésiens (I) Historique familliale Fumeur (HF, F) (HF, ~S) (~HF, S) (~HF, ~S) LC 0.8 0.5 0.7 0.1 LungCancer Emphysema ~LC 0.2 0.5 0.3 0.9 La table de probabilité conditionnelle de la variable LC PositiveXRay Dyspnea Réseau Bayésien

Réseaux Bayésiens (II) Un tel réseau autorise un sous ensemble d’attributs indépendants (ex: Historique familial et Fumeur) Chaque nœud dépend de ces antécédents. Le modèle graphique représente les relations causales La table des probabilités conditionnelles d’une variable tient compte de toutes les combinaisons possibles de ses antécédents Soit X=<x1,…,xn> un tuple. Prob(X) est donné par  Prob(xi| Parents(Xi))

A A 0,6 A=oui A=non B 0,3 0,7 B C A=oui B=oui B=non A=non C 0,2 0,8 0,3 0,7

Suite Nous avons donc 3 attributs (A, B et C). Supposons que l’un de ces attributs (ex: C) représente une classe. Le problème de classification consiste donc à attribuer une classe à X=<a1, b1>. Il s’agit de calculer les probabilités que X soit dans ci sachant que X=<a1, b1>, i.e Prob(ci|<a1,b1>), puis sélectionner ci qui donne le maximum Il suffit donc de reprendre les infos contenues dans les tables de probabilité conditionnelles.

Scénarios possibles On donne la structure On donne la structure du réseau mais certaines variables manquent dans le training set : Dans ce cas il s’agit de remplire la tables des probabilités en sachant que certaines valeurs sont manquantes On ne donne pas la structure du réseau :

La méthode des k plus proches voisins (k-Nearest Neighbor) Variables numériques: un objet=point dans espace à n dimensions. Utilisation de la distance pour définir le plus proche voisin. Etant donné O, on cherche ses k plus proches voisins. Ensuite, on lui affecte la classe la plus fréquente dans cet ensemble (ou la moyenne, s’il s’agit d’une variable continue)

Variation de l’algorithme Pondérer les voisins: Plus un voisin est proche, plus son poids est grand On peut considérer la formule de poids suivante Calculer la moyenne pondérée

Prédiction? La prédiction est similaire à la classification Construire une modèle Utiliser le modèle pour prédire des valeurs La regression est la méthode de prédiction la plus utilisée Regression linéaire (multiple) Regression non linéaire La prédiction est différente de la classification Classification: prédire des valeurs catégorielles Prédiction: prédire des valeurs continues

Régression Régression Linéaire: Y =  +  X 2 paramètres ,  et  spécifient une droite. Ils sont estimés en utilisant les données disponibles. Utilisation de la méthode des moindres carrés avec comme données, les couples (Y1, X1) (Y2, X2) … Régression multiple: Y = b0 + b1 X1 + b2 X2. Estimer b0, b1, b2 … Plusieurs fonctions non linéaires peuvent être transformées de la sorte.