Vous êtes sur la page 1sur 13

PJE : Analyse de comportements avec Twitter

Classification supervisée

Arnaud Liefooghe
arnaud.liefooghe@univ-lille1.fr

Master 1 Informatique – PJE2 – 2012-2013


B. Derbel – L. Jourdan – A. Liefooghe

Contenu Sources et références


• Apprentissage artificiel : Concepts et
algorithmes, A. Cornuéjols et L. Miclet
• Classification supervisée
• Fouille de données, F. Decomité
• Classification bayésienne
• Fouille de données, P. Preux
• Exemple : Classification de texte
• Apprentissage à partir d'exemples,
F. Denis et R. Gilleron

Classification supervisée
vs. non-supervisée
• Clustering

Classification • Le but est de regrouper des objets similaires


(pas d'attribut particulier)

supervisée • Fouille supervisée


• Il existe un attribut particulier : la classe
• Le but est de «deviner» la classe d'un
exemple en ne connaissant que la valeur de
ses autres attributs
Classification supervisée
2 types de classifieurs
vs. non-supervisée
• Clustering • Classifieurs qui utilisent directement les
exemples pour prédire la classe d’une
• On conserve toutes les données donnée
• Fouille supervisée • Classifieurs pour lesquels on a d’abord
• On modélise : les données servent à construit un modèle et qui, ensuite, utilisent
construire le modèle et sont ce modèle pour effectuer leur
(généralement) oubliées ensuite classification/prédiction

Problèmes Vocabulaire
• Méthode d’induction du classifieur ?
• Comment utiliser le classifieur obtenu ?
• Comment évaluer la qualité du classifieur obtenu : • Classification : prévoir une classe discrète
taux d’erreur (ou de succès) ?
• Comment traiter les attributs manquants dans le
jeu d’apprentissage ? dans une donnée à classer ? • Prédiction : prévoir une valeur continue
(degré de confiance)
• Comment estimer la tolérance au bruit ?
Le bruit concerne ici la valeur des attributs de
l’exemple avec lequel on construit le classifieur

Principe Principe
• Une instance = une suite de valeurs
d’attributs et une classe (a1, a2, ..., an, c) • Modèle : découvrir la structure des
données
• À l’aide d’un ensemble d’exemples, on veut
construire un modèle des données
(classifieur, prédicteur, ...)
• Quels sont les attributs importants pour
• On demande à ce classifieur de trouver la deviner une classe ?
classe de nouveaux exemples
Mode opératoire Schéma

• Etape 1 : Construction du modèle à partir Nouvel


exemple 3
Classifieur
3
Classe
de l’ensemble d’apprentissage (training set)
• Etape 2 : Evaluation de la qualité/précision 2
du classifieur
• Etape 3 : Utilisation du modèle pour la 1
Algo
classification de nouvelles instances Exemples

1 - Construction du 2 - Évaluation du
modèle modèle
• Chaque instance est supposée appartenir à une
classe prédéfinie
• La classe d’une instance est déterminée par • Estimer le taux d’erreur
l’attribut «classe» • La classe connue d’une instance test est
• L’ensemble des instances d’apprentissage est comparée avec le résultat du modèle
utilisé dans la construction du modèle
• Taux d’erreur = pourcentage de tests
• Le modèle est représenté par des règles de incorrectement classés par le modèle
classification, arbres de décision, formules
mathématiques, ...

3 - Utilisation du
Domaines d’application
modèle
• Délivrance de crédit
• Diagnostic médical
• Classification de nouvelles instances • Prédiction du cours d’une action
(inconnues)
• Optimisation d’un envoi de courrier
• ...
La classification dans le
Apprentissage
processus du data-mining
• On manipule :
• Collecte, préparation des données • Des données
• Données d’apprentissage • Des hypothèses
• Évaluation, validation • On veut trouver la meilleure hypothèse
en fonction des données disponibles

Quelques méthodes Qu’est-ce qu’un


de classification bon classifieur ?
• Arbres de décision : minimiser l’erreur de • Intuition : classifieurs binaires discrets
classification
• Classification bayésienne (classifieur naïf, • 4 cas
réseaux bayésiens) : hypothèse la plus • Vrai positif : exp. positif classé positif
probable
• Faux négatif : exp. positif classé négatif
• Réseaux de neurones : minimiser l’erreur • Vrai négatif : exp. négatif classé négatif
quadratique
• ... • Faux positif : exp. positif classé négatif

Matrice de confusion Taux


vrai classe →
positif négatif
↓ classé
• Proportion de positifs bien classés
positif VP FP • tp-rate = VP / P
négatif FN VN
• Proportion de négatifs mal classés
• fp-rate = FP / N
total P N
Figure
1 F B
• A = tous négatifs

C
• B = tous positifs
Classification

tp-rate

bayésienne
D C = k% positifs

E
• D = conservateur

• E < aléatoire

0
A • F = class. idéal
0 1
fp-rate

Classification
Principe
bayésienne
• À chaque hypothèse :
• On doit inférer (deviner) des quantités • On associe une probabilité
gouvernées (décrites) par des probabilités : (probabilité d’être la solution)
on veut se servir de ces probabilités pour
guider l’inférence • L’observation d’une (ou de plusieurs)
instances peut modifier cette probabilité
• Cadre plus général que la classification • On peut parler de l’hypothèse la plus
probable, au vu des instances

Classification
Buts (possibles)
bayésienne
• Approche probabiliste
• Formaliser les méthodes et les intuitions
• Basée sur les probabilités conditionnelles
• Préciser la notion de ‘plus probable’ (et la règle de Bayes)
• Nouveaux algorithmes d’apprentissage • Connaissances a priori
• Analyse d’autres algorithmes ne manipulant • Prévision du futur à partir du passé
pas explicitement des probabilités
• Suppose l'indépendance des attributs
Classification
Probabilités
bayésienne
• Différente de l’approche basée sur les • La probabilité d’un événement A est notée P(A)
fréquences ! • Elle est comprise entre 0 et 1
• Fréquences : on estime la probabilité • La probabilité d’un événement certain vaut 1
d'occurrence d’un événement
• La probabilité d’un événement impossible vaut 0
• Bayésienne : on estime la probabilité
• Si A et B sont indépendants
d'occurrence d’un événement sachant
qu’une hypothèse préliminaire est vérifiée • P(A∪B) = P(A) + P(B)
(connaissance) • P(non A) = 1 - P(A)

Probabilités Probabilités
conditionnelles conditionnelles
• P(A|B) = Probabilité que l'événement A
survienne si l'événement B survient

• P(A|B) = P(A∩B) / P(B)


• P(A∩B) = P(A|B)·P(B) = P(B|A)·P(A)

Exemple Indépendance
• 99% des sujets atteint d’une maladie M sont • Deux événements sont indépendants si la
positifs à un test de dépistage connaissance de l’un ne modifie pas la
probabilité de l’autre
• La maladie M touche 10% de la population
• Quelle est la fraction de la population des • Si A et B sont indépendants, alors :
sujets malades positifs au test de dépistage ? • P(A|B) = P(A)

• P(M)=0.1 , P(T|M)=0.99 • Deux événements A et B sont indépendants si

• P(T∩M) = P(T|M)·P(M) = 0.99·0.1 = 9.9% • P(A⋀B) = P(A)·P(B) , P(A), P(B) > 0


Théorème de Bayes Problématique
• On veut calculer, pour chaque classe, la
probabilité pour que ce soit la solution,
• P(A|B) = P(A∩B) / P(B) sachant qu’on a observé (a1,...,an)
• P(A∩B) = P(B|A)·P(A) • Garder la meilleure
• Rejeter les hypothèses de probabilité
• Donc, P(A|B) = P(B|A)·P(A) / P(B) nulle
• Tout garder (traitements ultérieurs)

Classifieur bayésien
Problématique
optimal
• Quelle est l’hypothèse la plus probable, au • Classification optimale si les probabilités de
chaque hypothèse sont connues
vu de l’ensemble d’apprentissage ?
• Pour une instance donnée, au vu de • Pas souvent le cas :
l’ensemble d’apprentissage, quelle sera la • Trop d’hypothèses, trop de calculs, trop
classification la plus probable de cet d’estimations
exemple ?
• Simplification ?

Application à la Application à la
classification classification
• P(ck|a1,...,an) = P(a1,...,an|ck)·P(ck) / P(a1,...,an)
• P(ck|a1,...,an) = P(a1,...,an|ck)·P(ck) / P(a1,...,an)
• P(ck) ≈ proportion d’instances de la classe ck

• P(a1,...,an) ≈ proportion d’instances


• P(a1,...,an|ck), P(a1,...,an) et P(ck) peuvent être d’attributs (a1,...,an)
estimées sur les instances de l'ensemble
d’apprentissage
• P(a1,...,an|ck) ≈ nb fois où on rencontre
(a1,...,an) dans les instances de la classe ck
(vraissemblance)
Classification
Quelques observations
bayésienne
• P(ck|a1,...,an) = P(a1,...,an|ck)·P(ck) / P(a1,...,an)
• C = (c1,...,ck) ensemble de classes (chacune
• P(ck|a1,...,an) croît quand P(ck) croît : plus ck est munie d’une probabilité)
probable, plus il y a de chances qu’elle soit la
classe • (a1,...,an) un ensemble d’attributs

• P(ck|a1,...,an) croît quand P(a1,...,an|ck) croît : si • Retourner la classe ayant la probabilité la plus
(a1,...,an) arrive souvent quand ck est la classe, forte après l’observation de (a1,...,an)
alors il y a des chances que ck soit la classe
• Hypothèse Maximale A Posteriori : hMAP
• P(ck|a1,...,an) décroît quand P(a1,...,an) croît : si
• hMAP = argmaxck∈C P(a1,...,an|ck)·P(ck)/P(a1,...,an)
(a1,...,an) est courant, il nous apprend peu sur ck

Hypothèses MAP, ML Classifieur bayésien naïf


•h MAP = argmaxck∈C
• Appliquer le théorème de Bayes pour
P(a1,...,an|ck)·P(ck) / P(a1,...,an) définir un algorithme de classification
simple et efficace (en pratique)
• P(a ,...,a ) est constant
1 n

• h = argmax P(a ,...,a |c )·P(c )


MAP ck∈C 1 n k k
• Caractéristiques :
• Maximum de vraisemblance • Classification supervisée
• h = argmax P(a ,...,a |c )
ML ck∈C 1 n k
• Classes discrètes

Classifieur bayésien naïf Classifieur bayésien naïf


• On suppose que tous les attributs sont • Attribut discret
indépendants (eg. absence d’information)
• P(a |c) = n / n
i ic c
• P(a1,...,an|ck) = ∏ P(ai|ck)
• n = nombre d’instances de la classe c qui
ic
•h MAP = argmaxck∈C ∏ P(ai|ck)·P(ck) ont comme valeur ai pour l’attribut
considéré
• ∏ P(a |c ) estimé à partir de l’ensemble
i k
d’apprentissage •n c = nombre d’instances de la classe c
Classifieur bayésien naïf Classifieur bayésien naïf
• Attributs binaires : 2n valeurs à estimer
• Attributs indépendants • Soit X = (a ,...,a ) l’exemple à classer
1 n

• Naïf : hypothèse d’indépendance • Estimer P(X|c )·P(c ) pour chaque classe c


k k k
(jamais vérifiée, simplification)
• Procédure sub-optimale, mais intérêt • Affecter à X la classe c telle que la
k
probabilité P(X|ck)·P(ck) est la plus grande
pratique
• Validité ? Robustesse ?

Exemple: contrôle fiscal Exemple: contrôle fiscal


• Faut-il effectuer un contrôle fiscal ? • À classer : X = (sal=35, imp=6%,etu=oui)

• Echantillon salaire impôts étudiant contrôle • P(pos|X) ? P(neg|X) ?


< 30 < 20 % oui
30 - 50 < 20 % non
négatif
positif
• Positif : P(sal=30-50|pos)·P(imp<20%|pos)·
P(etu=oui|pos)·P(pos) = (2/3·1·1/3) / 3/5 = 0.13
30 - 50 < 20 % oui positif
30 - 50 > 20 % non négatif • Négatif : P(sal=30-50|neg)·P(imp<20%|neg)·
> 50 < 20 % non positif P(etu=oui|neg)·P(neg) = (1/2·1/2·1/2) / 2/5 =
0.05
• Contrôler ? 35 6 % oui ? • On effectuera donc un contrôle !

Exemple: tennis Exemple: tennis


• Ciel, Température,Humidité,vent,Jouer?
• Soleil,Chaud,Forte,faible,Non
• Soleil,Chaud,Forte,Fort,Non
• Couvert,Chaud,Forte,faible,Oui
• Pluie,Doux,Forte,faible,Oui
• Pluie,Frais,Normale,faible,Oui


Pluie,Frais,Normale,Fort,Non
Couvert,Frais,Normale,Fort,Oui • Quelle classe attribuer à :
• Soleil,Doux,Forte,faible,Non (Soleil,Frais,Forte,Fort) ?
• Soleil,Frais,Normale,faible,Oui
• Pluie,Doux,Normale,faible,Oui
• Soleil,Doux,Normale,Fort,Oui
• Couvert,Doux,Forte,Fort,Oui
• Couvert,Chaud,Normale,faible,Oui
• Pluie,Doux,Forte,Fort,Non
Exemple: tennis Exemple: tennis
• X = (Soleil,Frais,Forte,Fort)
• P(X|oui)·P(oui)
oui non
= 2/9·3/9·3/9·3/9·9/14 P(h) 9/14 5/14 • Confiance accordée à la classification
= 0.00529
Soleil 2/9
Frais 3/9
3/5
1/5 • P(non|X) = 0.02057 / (0.02057+0.00529)
• P(X|non)·P(non) Forte 3/9
Fort 3/9
4/5
3/5
= 0.795
= 3/5·1/5·4/5·3/5·5/14
= 0.02057

Qualités du classifieur
Remarques
bayésien naïf
• Prédiction : comparable aux autres algorithmes

• Vitesse : linéaire en apprentissage, constant en


• Pas de construction de modèle classification
• Pas d’explication • Robustesse (bruit) : très bonne

• Efficacité comparable à celle d’autres • Changement d’échelle : les exemples ne


algorithmes sont pas en mémoire centrale
(occupation mémoire = nb attributs x nb classes)

• Lisibilité : nulle

Aller plus loin... ? Aller plus loin... ?

• Deux cas extrêmes


• Certains attributs sont liés par
• Hypothèse d’indépendance des l’intermédiaire de la classe (ou d’un autre
attributs : classifieur naïf, programmable attribut)
mais approximatif
• Fixer un petit nombre de dépendances
• Dépendance des attributs deux-à-deux : entre les attributs
trop complexe
Classification de textes

• Algo basé sur le classifieur bayésien naïf


Classification de texte • Simplifications supplémentaires
• Modèle de données modifié
• Classification supervisée
• Méthode efficace, mise en œuvre ‘facile’

Classification de textes Classification de textes


• Les exemples sont des textes, munis d’une
classe :
• Comment transformer un texte ‘brut’ en
• Lettres : {V. Hugo, Napoléon} → quel auteur ? schéma (attributs,valeurs) ?
• AFP{sujets} → quel sujet ?
• News {Newsgroups} → quel groupe ?
• Quel sens donner à P(c |A), A étant un
k

• Mails : {Spam, Non Spam} → filtrer texte ?


(certains filtres d’emails performants)

Représentation Première possibilité


• Schéma (attributs,valeurs)
• Texte : suite de caractères, lettres, chiffres, • Un attribut est une position dans le texte
ponctuation, espaces, ...
• Valeur de l’attribut : le mot présent en cette
position

• Représentation pour classification • Exemple : il était une fois ...


bayésienne ? Attributs ? a1 a2 a3 a4

→ P(ck)·P(a1=‘il’|ck)·P(a2=‘était’|ck) ·...
Première possibilité Première possibilité
• Remarques • Quel sens donner à P(ck|A) ? Impossible !

• P(a =‘il’|c ) grand quand c = ‘conte’


1 k k • P(ai=wj|ck)

• Hypothèse d’indépendance très • ai : position dans le texte → ≃100 positions


simplificatrice (voir fausse !) : “il était une • wj : mot du texte → ≃20000 mots ≠
fois” caractéristique des contes
• ck : classe → 2 classes
• Simplification nécessaire • 4 millions de probabilités à estimer !
• Probas sur les mots, pas sur les textes • Il faudrait plus de 4 millions de textes !

Deuxième possibilité Deuxième possibilité


• La probabilité de rencontrer un mot dans
un texte est indépendante de sa position
• P(a =m |c ) = P(m |c ) = n / n
i j k j k jk k

• Attribut = mot du vocabulaire • n : nombre de fois où le mot m apparaît


jk j

• Booléen : présence/absence du mot dans un texte de la classe ck

• On ne se préoccupe ni de l’ordre de mots, •n k : nombre total de mots des textes de

ni de leur organisation dans le texte, ni de la classe ck


leur nombre d’occurrences

Représentation Classification de textes


• Texte → suite de mots → sac de mots
Algorithme (apprentissage) :
• Abstraction de l’ordre des mots, de la
• Pour chaque classe c , estimer P(c ) = n
k k k /n
syntaxe, et de la sémantique des
textes • n : nombre de textes de la classe c
k k

• n : nombre total de texte


• Pour tout mot m , estimer P(m |c )
j j k
Classification de textes Classification de textes
• Algorithme (classification) :
• D : texte à classifier
• Pour chaque mot mj de D • Complexité : O(n log(n)), avec n nombre de
mots total (recherche d’un mot)
• P(mj|ck) pour chaque classe ck
• Simplifications abusives ?
• Pour chaque classe ck

• P(ck|D) = ∏j∈D P(mj|ck)·P(ck) • Efficace ?


→ Retourner la classe ck maximisant P(ck|D)

Vous aimerez peut-être aussi