Science des Donnéesremi.eyraud/Sd/SD-M1_TSI... · 2019-01-26 · Science des Données &...

Post on 14-Aug-2020

3 views 0 download

Transcript of Science des Donnéesremi.eyraud/Sd/SD-M1_TSI... · 2019-01-26 · Science des Données &...

Science des Données

Rémi Eyraud (avec l’aide inégalable de l’équipe QARMA)

Chapitre 2Classification Supervisée

Master 1TSI – 2018-2019

Plan du chapitre

1. Introduction 2. k-plus proches voisins3. Mesures de performance4. Arbres de décision et forêts aléatoires

Introduction

Schéma global

Science des Données &Apprentissage Automatique

● Apprentissage machine : le moteur de la SD● Pour aller plus loin que les statistiques descriptives● But : extraire automatiquement des données la connaissance

permettant de prendre des bonnes décisions à l’avenir (sur d’autres / de nouvelles données)

● Moyen : inférer un modèle (mathématique…) qui capture les régularités observables dans les données d’apprentissage : principe de Généralisation

Un exemple introductif

Alors que vous venez juste d'atterrir au Groland pour la première fois, vous apercevez un mouton noir. Quelles conclusions en tirer ?

Un exemple introductif

Alors que vous venez juste d'atterrir au Groland pour la première fois, vous apercevez un mouton noir. Quelles conclusions en tirer ?● Il y a un et un seul mouton noir au Groland (apprentissage

par coeur, sous-généralisation)● Certains moutons sont noirs au Groland● Tous les moutons du Groland sont noirs (sur-généralisation)

Sous-, Sur-, Correcte Généralisation

Classification supervisée : De vrais exemples

But : écarter automatiquement les SPAM et autres messages non sollicités. Données : des messages dont on sait s'ils sont des SPAMs ou non.Objectif : construire un classifieur, capable d'attribuer une de ces deux classes à un nouveau message.

But : reconnaissance de chiffres manuscrits.Données : des chiffres écrits sur une rétine de 16x16 pixels, associés à une classe parmi {0, 1, ... , 9} Objectif : attribuer la bonne classe (pattern recognition).

Modélisation de la classification supervisée

Rappel : les données● Attributs(=variables=colonnes) : un ensemble X = X1 x X2...x Xd où

chaque Xi est le domaine d'un attribut Ai symbolique ou numérique.○ Ex.: A1= age, X1= [0; 122], A2= fumeur, X2= {oui, non}

● Classes(=cible=target=label=etiquettes) : Un ensemble fini de classes Y. ○ Ex.: Y = {patient_à_risque, patient_sans_risque}

● Une variable aléatoire Z=(X,Y) à valeurs dans X x Y. ○ Ex: le risque cardiaque est lié à l'âge et au fait de fumer

Modélisation de la classification supervisée

● Les exemples/données sont des couples (x,y) de X x Y tirés selon la distribution jointe :

P(Z=(x,y)) = P(X=x)P(Y=y|X=x).

● Un échantillon S = {(x1,y1), ... , (xn,yn)} est un ensemble fini d'exemples i.i.d. selon P.

Modélisation de la classification supervisée

Exemple d'échantillon d'apprentissage

Age Fumeur Risque cardio

35 oui risque

40 non pas risque

60 oui risque

20 oui pas risque

Ensemble des attributs

X = X1 x X2 avecX1 = age et X2 = Fumeur

Classes Y Valeurs

possibles :{risque, pas

risque}

Classifieur

● Classifieur : f : X Y→ Y○ Ex.: f1(x) = Si fumeur='oui' et age > 59

alors 'risque' sinon 'pas risque'

● Fonction de perte (loss function) :L(yi, f(xi)) égale à 0 si yi = f(xi) et à 1 sinon.○ Ex.: L('risque', f1((35, 'oui'))) = 1

et L('risque', f1((65, 'oui')) = 0

Modélisation de la classification supervisée (fin)

● Classifieur : f : X Y→ Y● Fonction de perte (loss function) :

L(yi, f(xi)) égale à 0 si yi = f(xi) et à 1 sinon

● La fonction risque (ou d'erreur) : espérance mathématique de la fonction de perte :

R(f) = ∫ L(y,f(x))dP(x,y) = ∫y≠ f(x) dP(x,y) = P(y≠f(x))

● Le problème général de la classification supervisée s’écrit : Etant donné un échantillon S={(x1,y1), ..., (xn,yn)} trouver un classifieur f

dont le risque R(f) est le plus petit possible

k plus proches voisins

k plus proches voisins : principeObjectif : pouvoir prédire la classe d'un nouvel exemple en utilisant les exemples déjà connusPrincipe :

1. regarder la classe des k exemples les plus proches 2. Affecter la classe majoritaire dans le voisinage au nouvel

exempleExemple : 2 classes, dimension 2

k plus proches voisins : algorithme

Entrée : S ={(x, y) | x X R∈ X ⊆ R ⊆ R d, y Y} l’échantillon d’apprentissage, ∈ X ⊆ R xtest l'exemple à classerDébut

Initialiser à 0 le nombre d'occurrences de chacune des classespour chaque exemple (x, y) dans S :

Calculer la distance D(x, xtest)pour chaque x’ dans k-voisinage(xtest) :

Ajouter 1 au nombre d'occurrences de y’Retourner la classe la plus fréquente à partir du nombre d’occurrences de chaque classe

Que faire en cas d’égalité ?

Et si 2 classes ou plus sont aussi fréquentes dans le k-voisinage ?

On peut :● Augmenter k de 1● Tirer une classe au hasard parmis les plus fréquentes● Attribuer la classe majoritaire dans les données● Pondérer les exemples par leur distance à la donnée à classer

Limite des k-ppv (k-nn)● Nécessite une notion de distance pertinente pour la classification● Pas de réelle phase d’apprentissage : calcul pour chaque nouvelle

donnée à classer● Complexité en O(kdn) ne passant pas à l’échelle :

○ Réduction de l’échantillon d’apprentissage a priori○ Réduction de la taille des données (ACP, …)○ Organiser les données dans des structures permettant

d’accélérer la décision

Validation d'un apprentissage Mesures de qualité

L’apprentissage en pratique

● On dispose d'un échantillon d'apprentissage S qu'on suppose i.i.d.● On recherche une fonction h de classification (ou de régression)

dont le risque est le plus faible possible.

● Il existe toujours une fonction fmin de risque minimal... inaccessible !

Validation empirique d’un apprentissage

● Plusieurs méthodes permettent de valider (ou d'infirmer) la qualité d'un processus d'apprentissage.

● Une des approches consiste à n'utiliser qu'une partie des données pour apprendre et à se servir des autres données pour tester le résultat.

● Différentes mesures permettent alors de comparer des processus (taux d’erreur, F-score, etc.)

Ensemble de test

DONNEESEnsemble

d’apprentissage (d’entraînement)

Validation croisée (cross-validation)● La cross-validation est une généralisation de la méthode

précédente.● Elle consiste à diviser les données en c folders, à en enlever

un pour l'apprentissage puis à l'utiliser pour la phase de test.● Le processus est ensuite réitéré sur chaque folder● L'erreur moyenne tend alors vers l'erreur en généralisation

(estimateur non-biaisé).

Mesure de qualité : classification binaire supervisée● Matrice de confusion :

● Taux d’erreur = 1 - taux de réussite(accuracy) =

● L'erreur (ou taux d'erreur) ne fait pas de distinction entre les erreurs : pas toujours une bonne mesure de qualité d'un apprentissage

Mesure de qualité : classification binaire supervisée● Erreur = ● F-score :

○ Précision =

○ Rappel =

○ F-score = 2

● F-score : qualité d'une classification en fonction d’une classe, mais ne tient pas compte de l'éventuel déséquilibre entre les classes.

Mesure de qualité : classification binaire supervisée● Quand un classifieur nous donne la probabilité qu'un exemple soit

dans une classe, on peut faire varier le seuil de confiance et donc obtenir plusieurs matrices de confusion.

● La courbe ROC fait varier le seuil et met en ○ abscisse : le taux de faux positifs : TFP =

○ Ordonnée : le rappel : TVP =

● L'aire sous la courbe ROC est une mesure de la qualité d'un classifieur.

Mesure de qualité : classification binaire supervisée

Interprétation de l'AUC : ● l'aire sous la courbe (AUC) indique la probabilité qu'un exemple

négatif ait une probabilité d'être classé + supérieur à un exemple positif.

● Si la classification est parfaite : AUC = 1

● Si la classification est aléatoire : AUC = 1/2

Arbres de Décision &Forêts aléatoires

Les arbres de décision

Un arbre de décision est un arbre orienté dont :● Les noeuds internes sont étiquetés par un test applicable à tout

individu, généralement sur un attribut de description● Les arcs contiennent les résultats du test● Les feuilles sont étiquetés

par une classe par défaut

Les arbres de décision

● Un arbre de décision est donc un classifieur organisé de manière arborescente.

● Ce classifieur a une traduction immédiate en terme de règles de décision, mutuellement exclusives et ordonnées (si ... alors ... sinon ...).

● 2 qualités principales :○ Facilement interprétables○ Classification rapide

Classification supervisée & arbres de décision

● But : construire un arbre de décision à partir d'un échantillon de données

● Caractéristiques des données : ○ Apprentissage supervisé : nécessite un expert○ Attributs à valeurs discrètes (vs continus)

● Question : quel attribut choisir en premier ? En second ? ...

Exemple de classification avec arbre de décisionFormalisation

Evaluation du risque cardiaque à partir d'une table Individu contenant les attributs :

Age (entier positif)Fumeur (O ou N)Taille (entier positif)Poids (entier positif)Sexe (H ou F)

On demande à un cardiologue d'étiqueter une partie de la base (disons 5%) en 2 classes : individu à risque ou non.

Préparation des données : discrétisation

Les attributs suivants doivent être discrétisés : Age (entier positif)Taille (entier positif)Poids (entier positif)

Propositions : Age en trois catégories : jeune (<20 ans), actif (entre 21 et 50), senior (>50) On applique une formule liant taille et poids et on obtient un attribut Corpulence prenant trois valeurs : faible, moyenne, forte.

Échantillon de données après pré-traitement

Voici les données étiquetées par le cardiologue :

Apprentissage d’un arbre de décisionChoix de la racine de l’arbre : le pivot qui disperse le mieux les classes

Apprentissage d’un arbre de décisionChoix de la racine de l’arbre : le pivot qui disperse le mieux les classes

Apprentissage d’un arbre de décisionOn continue récursivement sur les fils de la racine :

La question pour le premier fils revient à regarder :

Apprentissage d’un arbre de décisionOn continue récursivement sur les fils de la racine :

La question pour le premier fils revient à regarder :

Apprentissage d’un arbre de décisionOn se retrouve avec l’arbre courant:

Après calcul, en testant sur l'attribut Sexe (puis corpulence) dans la branche restant à déterminer on disperse entièrement les classes.

Apprentissage d’un arbre de décision

Résultat final :

On peut alors classer toutes les données de l’échantillon d’apprentissage

Risque empirique et risque minimal

● Risque empirique : erreur sur l’échantillon d’apprentissage

● Il est toujours possible de trouver un arbre de décision minimisant le risque empirique sur un jeu de données. Mais cet arbre est bien souvent un mauvais classifieur. Pourquoi ?

● Le plus petit arbre de décision compatible avec les données est l'hypothèse la meilleure en généralisation. Pourquoi ?

Risque empirique et risque minimal● Il est toujours possible de trouver un arbre de décision minimisant

le risque empirique sur un jeu de données. Mais cet arbre est bien souvent un mauvais classifieur. Pourquoi ?

● Le plus petit arbre de décision compatible avec les données est l'hypothèse la meilleure en généralisation. Pourquoi ?

● La théorie de l’apprentissage statistique de Vapnick permet de démontrer ces affirmations

● Trouver le plus petit arbre de décision compatible avec un échantillon est un problème NP-complet :-(

Alors, que faire ?

● Construire un petit arbre de décision compatible avec le maximum de données.

● Conforme au principe du rasoir d'Occam (XIV siècle) : Pluralitas non est ponenda sine necessitate

“Les multiples ne doivent pas être utilisés sans nécessité” ● Autrement dit : entre deux représentations équivalentes, il

faut choisir la moins complexe.

Algorithmes d’apprentissage d’arbres de décision

● Plusieurs algorithmes : CART [Breiman84], C4.5[Quinlan94]● Algorithmes en deux étapes :

1. Construction d'un petit arbre de décision compatible 2. Élagage de l'arbre

● Première étape (Idée principale)Diviser récursivement et efficacement l'échantillon d'apprentissage par des tests sur les attributs jusqu'à obtenir des sous-échantillons ne contenant (presque) que des exemples de la même classe.

● Méthodes de construction Top-Down, gloutonnes et récursives

Apprentissage d’arbres de décisionOn a besoin de trois opérateurs permettant de :● Décider si un noeud est terminal● Si un noeud est terminal, lui affecter une classe● Si un noeud n'est pas terminal, lui associer un test

Algorithme générique :arbre ← arbre vide ; noeud courant ← racineRépéter

Décider si le noeud courant est terminalSi le noeud est terminal alors lui affecter une classeSinon sélectionner un test et créer autant de noeuds fils qu'il y a de réponses possibles au testPasser au noeud suivant (si il existe)

Jusqu'à obtenir un arbre de décision compatible

Les 3 opérateurs1. Un noeud est terminal lorsque :

○ Soit (presque) tous les exemples correspondant à ce noeud sont de la même classe,

○ Soit il n'y a plus d'attribut non utilisé dans la branche correspondante,

○ Soit on a atteint la profondeur maximale autorisée

2. On affecte à un noeud terminal la classe majoritaire présente dans ce noeud (en cas de conflit, on peut choisir la classe majoritaire dans l'échantillon, ou en choisir une au hasard),

3. On associe le test qui fait le plus progresser la classification des données d'apprentissage. Comment mesurer cette progression ?

Indice de Gini

● Soit S l'échantillon et S1, S2, …, Sk sa partition suivant les classes

(S1 sont les données de S de la classe 1, etc.)

● L’indice de Gini est utilisé en science sociale (entre autre) pour mesurer la disparité dans une population.

● Pour un problème à 2 classes (k=2), on peut simplifier :posons x = |S1|/|Set donc On a alors : Gini(S) = 2x(1-x)

Indice de Gini

Gini(S) = 2x(1-x) Cette fonction (généralisable pour tous les k) :

1. A des valeurs dans [0,1]2. S'annule pour x = 0 et x= 1 (que des éléments d'une seule

classe)3. Est maximale pour x = 1/2 (autant d'éléments de chaque

classe)

Gain et sélection de test avec GiniSoit p la position courante de l'arbre en construction et T un test. On a

Gain (p,T) = Gini(Sp) - ∑j Pj * Gini(Spj)

● Sp contient les données associé à p

● Pj est la proportion des éléments de Sp qui sont envoyés dans le j-

ème fils de p par le test T.

Maximiser le gain revient à minimiser Gain maximal : l'attribut permet de classer correctement toutes les données Gain nul : données sont aussi mal classées après le test qu'avant

Exemple d’utilisation de l’algorithme CART (Gini)Match à Domicile ?

Balance positive ?

Mauvaise conditions climatiques ?

Match précédent gagné ?

Résultat

V V F F G

F F V V G

V V V F G

V V F V G

F V V V P

F F V F P

V F F V P

V F V F P

Les données

On cherche la racine

On abrège les noms des attributs en Dom, Bal, MCC, MPG.On calcul le gain pour chaque attribut, en commençant par Dom :

classes(S) = <4G, 4P>

classes(S1) = <3G, 2P> classes(S2) = <1G, 2P>

Gain(ε,Dom) = Gini(S)-(5/8Gini(S1) + 3/8 Gini(S2)) = Gini(S) - 5/8*2*3/5*2/5 – 3/8*2*1/3*2/3 = Gini(S) - 7/15

On cherche la racine

On calcul le gain pour chaque attribut, pour Bal :

Gain(ε,Bal) = Gini(S)-(4/8Gini(S1) + 4/8 Gini(S2)) = Gini(S) - 4/8*2*3/4*1/4 – 4/8*2*1/4*3/4 = Gini(S) - 3/8

On cherche la racine

On calcul le gain pour chaque attribut, pour MCC :

Gain(ε,MCC) = Gini(S)-(5/8Gini(S1) + 3/8 Gini(S2)) = Gini(S) - 5/8*2*2/5*3/5 – 3/8*2*2/3*1/3 = Gini(S) - 7/15

On cherche la racine

On calcul le gain pour chaque attribut, pour MCC : <4,4>

<2,2> <2,2>

Gain(ε, MPG) = Gini(S)-(4/8Gini(S1) + 4/8 Gini(S2)) = Gini(S) - 4/8*2*2/4*2/4 – 4/8*2*2/4*2/4 = Gini(S) - 1/2

MPG ?

V F

On cherche la racine

Au final, on a :Gain(ε,Dom) = Gini(S) - 7/15Gain(ε,Bal) = Gini(S) - 3/8Gain(ε,MCC) = Gini(S) - 7/15Gain(ε,MPG) = Gini(S) - 1/2

Le gain maximal est obtenu pour le test sur les attributs Balance Positive : ce test devient la racine de l’arbre.

Et on continue

Supposons que l'on choisisse l'attribut “Balance positive” à la racine. L'arbre courant est alors :

Il faut alors recommencer récursivement et indépendamment le calcul du gain en position 1 et 2 pour choisir les tests à ces niveaux

Au final

Autre fonction de choix : l’entropie

Il y a d'autres indices que Gini pour tester la dispersion des classes. Le plus utilisé est l'entropie :

Soit S l'échantillon et S1, S2, …, Sk sa partition suivant les

classes (S1 sont les données de S de la classe 1, etc.).

L'entropie de l'échantillon est :

Arbres de décision et sur-apprentissage

Un arbre peut avoir une erreur empirique nulle mais une erreur réelle importante, c'est-à-dire être bien adapté à l'échantillon mais avoir un pouvoir de prédiction faible.

Comment éviter le sur-apprentissage ?

Ensemble de validation : on peut réserver une partie des données (donc pas les utiliser pour apprendre) pour arrêter la construction de l'arbre quand l'estimation de l'erreur sur cet ensemble ne diminue plus.

Hyper-paramètres : On peut fixer à l’avance des caractéristiques globales (profondeur maximale, nombre maximal de nœuds, etc.)

Elagage : on peut construire l'arbre en entier, puis l'élaguer

Pour être complet : attributs● Les propriétés vues sur les attributs binaires s'étendent aux

attributs n-aires● Attributs discrets : il est possible (si on veut des arbres binaire par

exemple) de regrouper a priori des valeurs des attributs.● Attribut continus : processus de discrétisation (souvent à l'aide

d'inégalités).● Attributs à valeurs manquantes :

○ En classement : prendre la branche majoritaire○ En apprentissage : donner une valeur suivant la distribution

(locale ou globale sur l'échantillon)

Pour être complet (fin)

● Des attributs n-aires peuvent prendre un grand nombre de valeurs : il est possible de les pénaliser pour retarder leur apparition dans l'arbre

● On peut facilement introduire une matrice de coût de prédictions erronées : cela permet de pénaliser un type d'erreur plus qu'un autre.

Instabilité & Forêts aléatoires (Random Forests)

Instabilité des arbres de décision : ○ Principal inconvénients des arbres de décision ○ Choisir un attribut plutôt qu'un autre se joue à peu de chose. ○ Or le choix d'un attribut-test (près de la racine) influence

grandement le reste de la construction. ○ Ces algorithmes ont donc une variance importante.

Random Forests : Apprendre plusieurs arbres sur l'échantillon d'apprentissage et faire un vote sur les nouvelles données

Forêts aléatoires : algorithmes

Apprentissage :Entrée : un ensemble S de n données, un entier K

1. Créer K ensemble de n données en réalisant un tirage avec remise

2. Apprendre K arbres de décision, un par ensemble de données3. Retourner la forêt

Classification :Quand une nouvelle donnée doit être classée, on regarde la classe que donne chacun des K arbres : la forêt retourne la classe majoritaire (décision par vote majoritaire)

Et après ?

Dans les semaines qui viennent

● 1 TP sur les k-ppv● 1 TP sur les AD● Un dernier chapitre sur :

1. La régression2. La classification non-supervisée