Title: Classification
1Classification
- Introduction
- k-NN
- Arbres de décision
- Réseaux baysiens
- Réseaux de neurones
- Conclusion
21. Apprentissage supervisé
- Découverte de règles ou formules (patterns) pour
ranger les données dans des classes prédéfinies - représentant un groupe d'individus homogènes
- permettant de classer les nouveaux arrivants
- Processus en deux étapes
- construction d'un modèle sur les données dont la
classe est connue (training data set) - utilisation pour classification des nouveaux
arrivants
3Applications
- Marketing
- comprendre les critères prépondérants dans
l achat d un produit - segmentation automatique des clients pour le
marketing direct - Maintenance
- aide et guidage d un client suite à défauts
constatés - Assurance
- analyse de risques
- Isolation de populations à risques
- médecine
42. k plus proches voisins (k-NN)
- Basé sur l'apprentissage par analogie
- Collection de tuples d'apprentissage
- Xi(x1i,x2i,xni) (xji numérique) de classe
connue - Représente un point dans l'espace à n dimensions
- Classes prédéfinies
- CC1,C2, Cm
- Distance et Similarité
- Distance Euclidienne, Cosinus, etc.
- Similarité Max - Distance
5Classement
- Soumission d'un tuple inconnu
- Recherche des k plus proches voisins
- Assignation de la classe la plus représentative
parmi les k voisins - Vote majoritaire (classe la plus fréquente)
- Plus grande similarité à la classe
6Algorithme k-NN
- Class (X)
- // Training collection T X1, X2, Xn
- // Predefined classes C C1,C2, Cm
- // Compute similarities
- For i1..N similari Max - distance(X,Xi)
- SortDescending(similar)
- kNNSelect k nearest neighbors with highest
similarity - // Calculer les scores des classes
- scoreCj f(Cj, kNN)
- Class(X) Class Cj with highest score
7Forces et faiblesses
- Les attributs ont le même poids
- centrer et réduire pour éviter les biais
- certains peuvent être moins classant que d'autres
- Apprentissage paresseux
- rien n'est préparé avant le classement
- tous les calculs sont fait lors du classement
- nécessité de technique d'indexation pour large BD
- Calcul du score d'une classe
- peut changer les résultats variantes possibles
83. Arbres de décision
- Définition
- Arbre permettant de classer des enregistrements
par division hiérarchiques en sous-classes - un nœud représente une classe de plus en plus
fine depuis la racine - un arc représente un prédicat de partitionnement
de la classe source - Un attribut sert d'étiquette de classe, les
autres permettant de partitionner
9Génération de l'arbre
- Objectif
- obtenir des classes homogènes
- couvrir au mieux les données
- Comment choisir les attributs (Ai) ?
- Comment isoler les valeurs discriminantes (vj) ?
A1 ?
v1
v3
v2
A2 ?
A2 ?
...
v'3
v'1
v'1
v'3
v'2
v'2
C9
C8
C2
C3
C7
C1
10Arbre ensemble de règles
- (A1v1)(A2v'1) ? C1
- (A1v1)(A2v'2) ? C2
- (A1v1)(A2v'3) ? C3
-
- (A1v3)(A2v'1) ? C7
- (A1v3)(A2v'2) ? C8
- (A1v3)(A2v'3) ? C9
A1?
v1
v3
v2
A2?
A2?
...
v'1
v'3
v'1
v'3
v'2
v'2
C9
C8
C3
C2
C7
C1
11Exemple codant une table
Attributs ou variables
Joueur?
Zidane
Henri
Barthès
Note?
Note?
Note?
Moyen
Mauvais
Bon
Bon
Gagné
Gagné
Nul
Gagné
Classes cibles
12Autre Exemple
13Autre Exemple
- Faut-il vous envoyer un contrôleur fiscal ?
Salaire?
lt30
gt50
31..50
Etudiant?
Impôts?
Contrôle
non
oui
lt20
gt20
Contrôle
PasContrôle
PasContrôle
Contrôle
14Procédure de construction (1)
- recherche à chaque niveau de lattribut le plus
discriminant - Partition(données P)
- si (tous les éléments de P sont dans la même
classe) alors retour - pour chaque attribut A faire
- évaluer la qualité du partitionnement sur A
- utiliser le meilleur partitionnement pour diviser
P en P1, P2, Pn - pour i 1 à n faire Partition(Pi)
15Procédure de Construction (2)
- Processus récursif
- L'arbre commence à un nœud représentant toutes
les données - Si les objets sont de la même classe, alors le
nœud devient une feuille étiqueté par le nom de
la classe. - Sinon, sélectionner les attributs qui séparent le
mieux les objets en classes homogènes gt Fonction
de qualité - La récursion s'arrête quand
- Les objets sont assignés à une classe homogène
- Il n'y a plus d'attributs pour diviser,
- Il n'y a pas d'objet avec la valeur d'attribut
Class
Atr?
16Choix de l'attribut de division
- Différentes mesures introduites
- il s'agit d'ordonner le désordre
- des indicateurs basés sur la théorie de
l'information - Choix des meilleurs attributs et valeurs
- les meilleurs tests
- Possibilité de retour arrière
- élaguer les arbres résultants (classes inutiles)
- revoir certains partitionnements (zoom, réduire)
17Mesure de qualité
- La mesure est appelé fonction de qualité
- Goodness Function en anglais
- Varie selon l'algorithme
- Gain d'information (ID3/C4.5)
- Suppose des attributs nominaux (discrets)
- Peut-être étendu à des attributs continus
- Gini Index
- Suppose des attributs continus
- Suppose plusieurs valeurs de division pour chaque
attribut - Peut-être étendu pour des attributs nominaux
18Mesure d'impureté (variable nominale)
- Indice de pureté maximal d'un segment s
- i(s) ?i ?j Pi Pj avec i?j
- Pi est la proportion d individus de la classe i
dans s. - La réduction dimpureté de chaque division du
nœud N par la variable xj sexprime par - ?N i(N) - ?j Pj i(Nj)
- Pj est la proportion d'individus du nœud dans le
fils j - Sur l ensemble des p variables, la division du
nœud t est effectuée à l aide de la variable qui
assure la réduction maximale de limpureté (?
minimum)
19Mesure d'entropie
- Minimisation du désordre restant
- pi fréquence relative de la classe i dans le
segment s ( d éléments de la classe i dans s) - Mesure d entropie d'un segment s
- E(s) -? pi Log2(pi)
- Minimiser son évolution globale Quinlan
- ?N E(N) - ?j Pj E(Nj)
20Indices de Gini et Twoing
- Indice de GINI
- Si un ensemble de données T contient des
éléments de N classes - gini(T) 1- ?i pi2 ou pi est la fréquence
relative de la classe i dans T - Indice de Twoing
- G ( tg,td) (( ng/n)(nd/n))/4?i1m ( nig /
ng ) - ( nid / ng ) 2 - tg Sommet gauche issu de t.
- td Sommet droit issu de t
- nd ( resp (ng) ) card td ( resp card tg ).
- N La taille de l échantillon d apprentissage.
- M Le nombre de classe.
- nid (resp (nig) l effectif de la classe ci
dans td ( resp (tg)).
21Exemple Partitions de boules (1)
- Indice de pureté maximal d'un segment s
- i(s) ?ik ?jk Pi Pj avec i?j
- Pi est la proportion dindividus de la classe i
dans t. - Entropie d'un segment s
- E(s) - ?i Pi log2(Pi)
A13
A11
A12
Vert
Rouge
Bleu
22Exemple Partitions de boules (2)
- Partition selon A2
- Position et 4 au plus par partition
A23
A21
A22
Vert
Rouge
Bleu
23Exemple Partitions de boules (3)
A3gt1
A3 lt 1
Rouge
Vert
24Exemple Partitions de table (1)
Atr?
Gain(Outlook) 0.246 Gain(Temperature)
0.029 Gain(Humidity) 0.151 Gain(Windy) 0.048
25Exemple Partitions de table (2)
outlook
overcast
sunny
rain
Atr?
26Exemple Partitions de table (3)
outlook
overcast
sunny
rain
humidity
high
normal
N
P
27Exemple Partitions de table (4)
outlook
overcast
sunny
rain
humidity
P
high
normal
N
P
28Exemple Partitions de table (5)
outlook
overcast
sunny
rain
humidity
windy
P
high
normal
true
false
N
P
N
P
29Types de tests
- Binaire ou n-aire
- plus ou moins large et profond
- Variable nominale
- un prédicat par valeur ou par liste de valeurs ?
- Choix par niveau ou par classe
- mêmes tests pour chaque nœud interne d'un niveau
- arbres balancés ou non
- Élimination de classes
- vides ou presque, peu représentatives
30Problème des attributs continus
- Certains attributs sont continus
- exemple salaire
- découper en sous-ensembles ordonnés
- division en segments a0,a1, a1,a2, .,
an-1,an - utiliser moyenne, médiane, déciles,
- investiguer différents cas et retenir le meilleur
- exemple 2, 4, 8, etc. par découpe dintervalles
en 2 successivement
31Procédure d'élagage
- Les arbres trop touffus sont inutiles
- Intérêt d'un élagage récursif à partir des
feuilles - S'appuie sur un modèle de coût d'utilité
- Possibilité de l'appliquer sur l'ensemble des
données ou sur un sous-ensemble réservé à la
validation
32Exemple d'élagage
- Exemple
- arbres vus comme encodage de tuples
- partition utile si gain supérieur à un seuil
- coût d'un partitionnement
- CP bits pour coder les prédicats de patition
- Entropie_Après bits pour coder chaque tuple
- partitionnement à supprimer si
- Gain n Entropie_Après CP - n
Entropie_Avant lt seuil - Ce test peut être appliquer lors de la création
33Types d'arbres
34Méthodes ID3 et C4.5
- ID3
- Le pouvoir discriminatoire (ou gain
informationnel) d une variable lt une variation
d entropie de Shannon lors de la partition
de S - C4.5 (ID3)
- Support des variables continues
- Introduit un facteur Gain ratio visant à
pénaliser la prolifération des nœuds - Critères d'arrêt
- Seuils de gain informationnel, d'effectif dans un
nœud - Test statistique d'indépendance des variables
(Ki2 )
35Méthode CART
- Principes
- si problème à 2 classes, cherche la bi-partition
minimisant lindice dimpureté de Gini - si problème à N classes, cherche celle maximisant
le gain dinformation donné par lindice de
Towing - Critères d arrêt
- Seuil de gain informationnel
- Seuil d effectif dans un nœud
- Procédure d'élagage
36Méthodes passant à l'échelle
- La plupart des algorithmes de base supposent que
les données tiennent en mémoire - La recherche en bases de données a proposer des
méthodes permettant de traiter de grandes BD - Principales méthodes
- SLIQ (EDBT96 -- Mehta et al.96)
- SPRINT (VLDB96 -- J. Shafer et al.96)
- RainForest (VLDB98 -- J. Hekankho et al.98)
- PUBLIC (VLDB98 -- R. Rastogi et al.98)
37Méthode SLIQ
- SLIQ (EDBT96 -- Mehta et al.96)
- Supervised Learning In Quest
- Classificateurs CART et C4.5
- Développe l'arbre en profondeur d'abord
- Tri les données de manière répétée à chaque nœud
- SLIQ
- Remplace le tri répété par 1 seul tri par
attribut - Utilise une nouvelle structure de données
(class-list) - S'applique sur des attributs numériques ou
nominaux - Indicateur maximiser ginisplit(T) ?i ni/n
gini(Ti)
38Méthode SPRINT
- SPRINT (VLDB96 -- J. Shafer et al.96)
- Scalable PaRallelizable INndution of decision
Tree - SLIQ nécessite de garder la class-list en mémoire
- SPRINT
- Ne nécessite pas de structure résidente en
mémoire - Version parallèle passant à l'échelle
39Data Structure (Attribute lists)
- Sprint crée une attribute-list pour chaque
attribut - Une entrée contient
- Valeur d'attribute
- Etiquette de classe
- Identifiant d'article (rid)
40Evolution des listes
- Les listes initiales sont associées à la racine
de l'arbre - Au fur et à mesure du développement de l'arbre,
les listes d'attributs de chaque nœud sont
partitionnées et associées aux enfants
41Data Structure (Histograms)
- Attributs continus
- deux histogrammes sont associés à chaque nœud
- Cbelow maintient la distribution pour les
articles déjà traités - Cabove maintient la distribution pour les
articles non traités
42Data Structure (Histograms)
- Pour les attributs nominaux, un seul histogramme
- matrice de comptage Valeur d'attribut, Classe
43Choix des divisions
- Pendant la construction de l'arbre, l'objectif à
chaque nœud est de déterminer le découpage qui
divise au mieux l'ensemble de données de la
feuille considérée - L'indice Gini est utilisé
- Gini(S)1-?pj2
- où pj est la fréquence de la classe j dans S
- Ginisplit(S) n1/n(S1)n2/n(S2)
44Exemple Continu (1)
Age Class Tid
17 High 1
20 High 5
23 High 0
32 Low 4
43 High 2
68 Low 3
H L
Cabove 3 0
Cbelow 1 2
Cursor Position 3
45Exemple Continu (2)
- Après calcul de tous les indices Gini, le plus
petit est retenu - Donc, on divise à la position 3 où l'age est le
point médian entre 23 et 32 (i.e. Age lt 27.5)
46Exemple Nominal
H L
Family 2 1
Sports 2 0
Truck 0 1
47Exécution du partitionnement
- Une fois le meilleur point de division trouvé, on
exécute la découpe en éclatant le nœud par
création des nœuds enfants qui se partage les
enregistrements selon le prédicat - Pour les autres listes d'attributs, (i.e.
CarType), il faut retrouver les informations par
jointure sur rid.
48Comparaison avec SLIQ
- SLIQ ne divise pas les listes d'attributs lors du
split - Repère le nœud par un pointeur dans la class-list
- Avantages
- Pas de recopie des listes d'attributs lors du
split - Ré-allocation d'articles par déplacement de
pointeur - Désavantage
- La liste des références (class-list) de taille le
nombre d'articles doit tenir en mémoire
- SPRINT peut être facilement parallélisé
- pas de structures partagées en mémoire
49Bilan
- De nombreux algorithmes de construction d'arbre
de décision - SPRINT passe à l'échelle et traite des attributs
nominaux ou continus - Autres algorithmes proposés
- Encore plus rapides ?
504. Réseaux Bayésiens
- Classificateurs statistiques
- Basés sur les probabilités conditionnelles
- Prévision du futur à partir du passé
- Suppose l'indépendance des attributs
51Fondements
- Dérivé du théorème de Bayes
- permet de calculer une probabilité à postériori
P(Ei/X) dun événement Ei sachant que X sest
produit à partir d'une probabilité à priori P(Ei)
de production de lévénement Ei - P(Ei/X) P(X/Ei)P(Ei) / ?P(X/Ej)P (Ej)
- Plus simplement
- P(E/X) P(X/E)P(E)/P(X)
Les Ei vont corrspondre aux classes nommées Ci
dans la suite
52Bayésien Naïf
- Chaque enregistrement est un tuple
- X (x1, x2, xn) sur R(A1, A2, An)
- Il s'agit de le classer parmi m classes C1, Cm
- Assignation de la classe la plus probable
- Celle maximisant P(Ci/X) P(X/Ci)P(Ci)/P(X)
- P(X) est supposé constant (équi-probabilité des
tuples) - On cherche la classe maximisant
- P(X/Ci)P(Ci) pour i 1 à m
On calcule la probabilité de chaque classe étant
donné le tuple X On retient la classe la plus
probable
53Calcul de P(X/Ci)
- P(Ci) est déduite de l'échantillon
- Comptage training set Taille(Ci)/ Taille(Ech)
- P(X/Ci) est approché comme suit
- Indépendance des attributs ?
- P(X/Ci) ?k P(xk/Ci)
- P(xk/Ci) est estimé comme suit
- variable nominale Taille(txk de Ci)/Taille(Ci)
- distribution gaussienne si variable continue
P(xk/Ci) est la probabilité d'avoir 1 valeur
donnée xk pour 1 attribut d'un tuple dans la
classe Ci Calculée sur le training set
54Exemple de problème
- Faut-il effectuer un contrôle fiscal ?
- Échantillon de contrôlés
- Faut-il contrôler un nouvel arrivant ?
55Les classes nominales
Sallt30
Salgt50
Sal 31..50
1
2
2
impôtsgt20
impôtslt20
1
4
Non Etudiant
Etudiant
3
2
Positif
Négatif
2
3
56Calcul de Probabilités
- Il s'agit de choisir Ci maximisant P(Ci/X)
- P(Positif/X) P(X/Positif)P(Positif)/P(X)
- P(Négatif/X) P(X/Négatif)P(Négatif)/P(X)
- P(X) est supposé constant
- Donc, choisir le max. de P(X/Positif)P(Positif),
P(X/Négatif)P(Négatif) - P(X/Positif) ?k P(Xk/Positif)
P(sal30..50/Positif) P(impotslt20/Positif)P(Etu
diant/Positif) 2/311/32/9 P(Positif) 3/5
? Produit 0.13 - P(X/Négatif) ?k P(Xk/Négatif)
P(sal30..50/Négatif) P(impotslt20/Négatif)P(Etu
diant/Négatif) 1/21/21/21/8 P(Négatif)
2/5 ? Produit 0.05 - On effectuera donc un contrôle !
57Réseau Bayésien
- Nœuds Variables aléatoires
- Structure
- Graphe direct acyclique de dépendance
- X? Y signifie que X est un parent de Y
- X??Y signifie que X est un descendant de Y
- Les variables non liées sont indépendantes
- Classes à déterminer
- Nœuds singuliers du réseau
- Probabilités connues
- à priori et conditionnelles (arcs)
58Calculs
- L'instanciation des variables non classes permet
de calculer la probabilité des classes - Application des calculs classiques de probabilité
et du théorème de bayes - Apprentissage à partir d'une base d'échantillons
- Peut être complexe si structure inconnue
59Exemple complet
Sallt30
Salgt50
Sal 31..50
1
2
2
impôtsgt20
impôtslt20
1
4
Non Etudiant
Etudiant
3
2
Positif
Négatif
3
2
60Structure de connaissance
Sallt30
Salgt50
Sal 31..50
2
1
2
impôtsgt20
impôtslt20
1
4
Non Etudiant
Etudiant
3
2
Positif
Négatif
3
2
61Autre exemple
- Classification de pannes d'ordinateurs
- Couleur de voyant (Rouge, Vert)
- Équipement défaillant (UC,MC,PE)
- Envoie d'un dépanneur selon la classe
- Calcul de probabilités sur le training set
62Exemple de réseau
Rouge
0.68
0.32
Voyant
Rouge
Vert
0.09
0.44
0.44
0.09
0.82
0.12
UC
PE
MC
Panne
0.50
0.30
0.60
0.40
0.50
0.70
Dépanneur
Pierre
?
Paul
63Intérêt
- Permet d'inférer les probabilités dans le réseau
- méthode d inférence du futur à partir du passé
- les événements Xi doivent être indépendants
- méthode assez peu appliquée en Data Mining
- Problèmes
- Comment choisir la structure du réseau ?
- Comment limiter le temps de calcul ?
64Bilan
- Apprentissage
- si structure connue calculs de proba.
- si inconnue difficile à inférer
- Baysien naïf
- suppose l'indépendance des variables
- Réseaux baysiens
- permettent certaines dépendances
- nécessitent des tables d'apprentissage réduites
655. Réseaux de neurones
- Tentative de reproduction des structures du
cerveau afin de raisonner - Ensemble d'unités transformant des entrées en
sorties (neurones) connectées, où chaque
connexion à un poids associé - La phase d'apprentissage permet d'ajuster les
poids pour produire la bonne sortie (la classe en
classification)
66Un neurone
- Induit un ensemble de valeurs en sortie à partir
d'un ensemble de valeurs en entrée - Réalise une combinaison linéaire des entrées
suivie d une fonction de transfert (fonction à
seuil) - Fonction Sigma (??wi Ei)
- Biais optionnel b
- Fonction Sigmoïde f(?) 1/(1e-
?)
Entrée En
wn
wi
f
??wi Ei b
Entrée Ei
Sortie
w1
Entrée E1
67Un réseau
- Réseau multi-couches totalement connecté
- Entrées, Calculs (cachés), Sorties
68Apprentissage
- Découverte de modèles complexes avec affinage
progressif - Le réseau s'adapte lors de la phase
d apprentissage - Plusieurs algorithmes possibles
- le plus utilisé rétropropagation
- modification des poids wi par rétropropagation
69Topologie
- Choix du nombre de couches
- entrées, 1 ou 2 couches cachées, sorties
- Choix du nombre de neurones par couche
- dépend des entrées et sorties
- couches cachées intermédiaires
- Normalisation des variables d'entrées
- Variable continue centrée réduite -1,1
- Variable discrète codée ou valeurs attribuées aux
entrées - Sorties booléenne codant les classes
70Rétropropagation
- Initialiser les poids et les biais
- tirage aléatoire sur -1,1
- Propager les entrées en avant
- Un exemple est appliqué aux entrées
- Le réseau calcul les sorties
- Propager les erreurs en arrière
- Sortie devant délivrer T Err O(1-O)(T-O)
- Cellule cachée Err O(1-O) ?k wkErrk
- Corriger poids et biais de sorte à réduire les
erreurs - Dwij lErrjOi Dbj lErrj
71Forces et Faiblesses
- Permet d'approcher toute sorte de fonction
- Coûteux en apprentissage
- calculs complexes
- possibilité d'élaguer le réseau en connexions
- peu applicable sur de larges BD
- Effet boite noire
- comportement difficile à expliquer
- Autres applications possibles
- prédiction, décodage, reconnaissance de formes,
etc.
726. Bilan Classification
- De nombreuses techniques dérivées de l'IA et des
statistiques - Autres techniques
- règles associatives, raisonnement par cas,
ensembles flous, - Problème de passage à léchelle
- arbre de décisions, réseaux
- Tester plusieurs techniques pour résoudre un
problème
- Y-a-t-il une technique dominante ?