Classification en présence d’outliers (données aberrantes ... · outliers 15.6% 15.8%68.6%...

Post on 17-Nov-2018

217 views 0 download

Transcript of Classification en présence d’outliers (données aberrantes ... · outliers 15.6% 15.8%68.6%...

Classification en présence d’outliers (donnéesaberrantes) avec RMixmod

Package de classification par modèles de mélanges

−10 −5 0 5 10 15 20

−5

05

1015

Taux d'outliers : 20% − Résultats Mixmod

x

y

F. Langrognet

F. Langrognet Rmixmod Juin 2016 1 / 50

Rmixmod

1 Le composant RMixmod du projet MIXMODProjet MixmodPrincipales fonctionnalitésRMixmod

2 Outliers

3 Classification et outliersAvec ou sans nettoyage ?Utilisation de RMixmod pour traiter des jeux de données avecoutliers

4 Conclusion

F. Langrognet Rmixmod Juin 2016 2 / 50

Etude de la robustesse de RMixmod

1 Le composant RMixmod du projet MIXMODProjet MixmodPrincipales fonctionnalitésRMixmod

2 Outliers

3 Classification et outliersAvec ou sans nettoyage ?Utilisation de RMixmod pour traiter des jeux de données avec outliers

4 Conclusion

F. Langrognet Rmixmod Juin 2016 3 / 50

Classification des données en présence d’outliers

1 Le composant RMixmod du projet MIXMODProjet MixmodPrincipales fonctionnalitésRMixmod

2 Outliers

3 Classification et outliersAvec ou sans nettoyage ?Utilisation de RMixmod pour traiter des jeux de données avec outliers

4 Conclusion

F. Langrognet Rmixmod Juin 2016 4 / 50

MIXMOD

Fiche d’identitéDiffuser auprès d’un large public un ensemble logiciel de

classification par modèles de mélanges

Projet initié en 2001 et très actif depuis 15 ans

Soutenu par 5 organismes

Licence GNU GPL

www.mixmod.org

Plusieurs milliers de téléchargements par an

Domaines variés (finance, climatologie, génome, ...)

F. Langrognet Rmixmod Juin 2016 5 / 50

MIXMODEnsemble logiciel

Proposer des composants logicielsadaptés aux demandes des utilisateurs

2002...2011 : composant pour Scilab

2002...(2015) : mixmodForMatlab

Depuis 2011 : mixmodGUI

Depuis 2012 : RMixmod

2016 : PyMixmod

2016 : MASSICCC

mixmodLib : Bibliothèque de calcul (C++)

F. Langrognet Rmixmod Juin 2016 6 / 50

Classification des données en présence d’outliers

1 Le composant RMixmod du projet MIXMODProjet MixmodPrincipales fonctionnalitésRMixmod

2 Outliers

3 Classification et outliersAvec ou sans nettoyage ?Utilisation de RMixmod pour traiter des jeux de données avec outliers

4 Conclusion

F. Langrognet Rmixmod Juin 2016 7 / 50

Fonctionnalités (1)Problématiques traitées

Classification non supervisée

Classification supervisée

Modèles de mélange

Outils souples pour modéliser un large spectre de situations

Calcul des paramètres du modèle sous-jacent - Caractérisation desclasses (proportion, moyenne, dispersion)

Classification des individus avec des métriques adaptées

A B

-5 0 5 10 15

x-5 0 5 10 15

x

-50

510

-10

-10

y

-50

510

y

F. Langrognet Rmixmod Juin 2016 8 / 50

Fonctionnalités (2)Modèles et métriques

Données quantitatives14 modèles gaussiensbasés sur la décomposition en valeursigulière de la matrice de variance

Données quantitatives engrande dimension

8 modèles spécifiques pour lagrande dimension

Données qualitatives5 modèles multinomiauxbasés sur une reparamétrisation de ladistribution Multinomiale

Données mixtes20 modèles hétérogènespour les données quantitatives/qualitatives

F. Langrognet Rmixmod Juin 2016 9 / 50

Fonctionnalités (3)

AlgorithmesMaximisation de la vraisemblance (ouvraisemblance complétée)

EM (Expectation Maximisation)

SEM (Stochatitic EM)

CEM (Classification EM)

Initialisations et Stratégies6 initialisationsEx : ’random’, ’short runs of EM’,...

Algorithmes chaînésEx: 100 iterations de SEM puis 50 iterations de EM

CritèresBIC (Bayesian Information Criterion)

ICL (Integrated Completed Likelihood)

NEC (Normalized Entropy Criterion)

CV (Cross Validation)

Et aussi...Connaissance partielle des labels desindividus (semi-supervisé)

Individus pondérés

F. Langrognet Rmixmod Juin 2016 10 / 50

Classification des données en présence d’outliers

1 Le composant RMixmod du projet MIXMODProjet MixmodPrincipales fonctionnalitésRMixmod

2 Outliers

3 Classification et outliersAvec ou sans nettoyage ?Utilisation de RMixmod pour traiter des jeux de données avec outliers

4 Conclusion

F. Langrognet Rmixmod Juin 2016 11 / 50

Rmixmod : le package R de Mixmod

Architecture Avantages

Atouts de RI Environnement “familier” de

l’utilisateur

I Interface avec d’autrespackages

I Outils de visualisation

Atouts de mixmodLib (C++)I Développée depuis 2001

I Largement diffusée, et utilisée

I Eprouvée, robuste, rapide

F. Langrognet Rmixmod Juin 2016 12 / 50

Classes - Fonctions

Classes Rmixmod Fonctions Rmixmod

F. Langrognet Rmixmod Juin 2016 13 / 50

Etude de la robustesse de RMixmod

1 Le composant RMixmod du projet MIXMODProjet MixmodPrincipales fonctionnalitésRMixmod

2 Outliers

3 Classification et outliersAvec ou sans nettoyage ?Utilisation de RMixmod pour traiter des jeux de données avec outliers

4 Conclusion

F. Langrognet Rmixmod Juin 2016 14 / 50

Qu’est ce qu’un outlier ?

Donnée aberrante

F. Langrognet Rmixmod Juin 2016 15 / 50

OutlierUne donnée qui ne ressemble pas aux autres

Tout le monde “comprend” ce qu’est une donnée aberrante

Mais donner une définition est complexe et subjectifSelon quel critère (de ressemblance) ?

Sans critère objectif, il est tentant de considérer certains individuscomme étant des outliers

F. Langrognet Rmixmod Juin 2016 16 / 50

Un outlier ce n’est pas...Un individu qui ne ”rentre” pas dans notre modèle

C’est le modèle qui doit s’adapter aux données et non l’inverse !

Les bonnes questions à se poserSi un individu ne rentre pas dans le modèle

D’où vient cet individu ? Est-ce un individu de la population étudiée ?

F. Langrognet Rmixmod Juin 2016 17 / 50

Population étudiée VS outliers

Un outlier est un individu qui n’appartient pas à la population étudiée

En général, ce sont des erreurs expérimentales

Erreurs de mesure

Erreurs de recopie

On passe de donnée aberrante à donnée qui ne fait pas partie de lapopulation étudiéeUn outlier peut alors ’ressembler“ à un individu de la population étudée...

F. Langrognet Rmixmod Juin 2016 18 / 50

Etude de la robustesse de RMixmod

1 Le composant RMixmod du projet MIXMODProjet MixmodPrincipales fonctionnalitésRMixmod

2 Outliers

3 Classification et outliersAvec ou sans nettoyage ?Utilisation de RMixmod pour traiter des jeux de données avec outliers

4 Conclusion

F. Langrognet Rmixmod Juin 2016 19 / 50

Classification des données en présence d’outliers

1 Le composant RMixmod du projet MIXMODProjet MixmodPrincipales fonctionnalitésRMixmod

2 Outliers

3 Classification et outliersAvec ou sans nettoyage ?Utilisation de RMixmod pour traiter des jeux de données avec outliers

4 Conclusion

F. Langrognet Rmixmod Juin 2016 20 / 50

Nettoyage de la population

F. Langrognet Rmixmod Juin 2016 21 / 50

Nettoyage de la populationEnlever les outliers

−10 −5 0 5 10 15 20

−5

05

1015

Taux d'outliers : 10%

x

y

−10 −5 0 5 10 15 20

−5

05

1015

Données sans outlier

x

y

F. Langrognet Rmixmod Juin 2016 22 / 50

Comment nettoyer les données ?

−10 −5 0 5 10 15 20

−5

05

1015

Taux d'outliers : 10%

x

y

−10 −5 0 5 10 15 20

−5

05

1015

Données sans outlier

x

y

Comment enlever des individus sans connaître le modèle ?

Risques

I Conserver à tord des outliersI Retirer à tord de ”vrais individus”

=> Perte d’information et biais sur la classification

F. Langrognet Rmixmod Juin 2016 23 / 50

Outliers ou classe supplémentaire ?1 ou 2 outlier(s)

−10 −5 0 5 10 15 20

−5

05

1015

1 outlier

x

y

−10 −5 0 5 10 15 20

−5

05

1015

2 outliers

x

y

F. Langrognet Rmixmod Juin 2016 24 / 50

Outliers ou classe supplémentaire ?3, 6 outliers

−10 −5 0 5 10 15 20

−5

05

1015

3 outliers

x

y

−10 −5 0 5 10 15 20

−5

05

1015

6 outliers

x

y

F. Langrognet Rmixmod Juin 2016 25 / 50

Sans nettoyage de la population

F. Langrognet Rmixmod Juin 2016 26 / 50

Sans nettoyage de la population

Sans nettoyageLe nettoyage est risqué, subjectif et difficile (sans connaissance du modèlesous-jacent)

Et si l’on considérait une classe de bruit ?

Classification sur l’ensemble de la population en k + 1 clustersk vraies classes et une classe de bruit

F. Langrognet Rmixmod Juin 2016 27 / 50

Classification des données en présence d’outliers

1 Le composant RMixmod du projet MIXMODProjet MixmodPrincipales fonctionnalitésRMixmod

2 Outliers

3 Classification et outliersAvec ou sans nettoyage ?Utilisation de RMixmod pour traiter des jeux de données avec outliers

4 Conclusion

F. Langrognet Rmixmod Juin 2016 28 / 50

RMixmod et traitement des outliers

Jeux de donnnéesJeu de données simulées (on connaît les paramètres)

Mélange de 2 gaussiennes

p 0.4 0.6µ (0,0) (10,10)

Σ

(10 33 2

) (6 −2−2 2

)On ajoute des outliers

I Selon une loi gaussiennePas de difficulté (mélange gaussien)

I Selon une loi uniformeComment RMixmod peut traiter ces données ?

F. Langrognet Rmixmod Juin 2016 29 / 50

Jeu de données

−10 −5 0 5 10 15 20

−5

05

1015

Données sans outlier

x

y

F. Langrognet Rmixmod Juin 2016 30 / 50

Jeu de données + 5% d’outliers

−10 −5 0 5 10 15 20

−5

05

1015

Taux d'outliers : 5%

x

y

F. Langrognet Rmixmod Juin 2016 31 / 50

Jeu de données + 10% d’outliers

−10 −5 0 5 10 15 20

−5

05

1015

Taux d'outliers : 10%

x

y

F. Langrognet Rmixmod Juin 2016 32 / 50

Jeu de données + 20% d’outliers

−10 −5 0 5 10 15 20

−5

05

1015

Taux d'outliers : 20%

x

y

F. Langrognet Rmixmod Juin 2016 33 / 50

Jeu de données + 40% d’outliers

−10 −5 0 5 10 15 20

−5

05

1015

Taux d'outliers : 40%

x

y

F. Langrognet Rmixmod Juin 2016 34 / 50

Rmixmod

Commandes R

l i b r a r y (Rmixmod)

model<−mixmodGaussianModel ( l i s t M o d e l s =c ( " Gaussian_pk_Lk_Ck " ) )

out<−mixmodCluster ( da ta_ou t l i e r s , nbCluster =3 ,models=model )

p l o t ( out )

summary ( out )

F. Langrognet Rmixmod Juin 2016 35 / 50

Jeu de données + 5% d’outliers

Résultats

F. Langrognet Rmixmod Juin 2016 36 / 50

Jeu de données + 10% d’outliers

Résultats

F. Langrognet Rmixmod Juin 2016 37 / 50

Jeu de données + 20% d’outliers

Résultats

F. Langrognet Rmixmod Juin 2016 38 / 50

Jeu de données + 40% d’outliers

Résultats

F. Langrognet Rmixmod Juin 2016 39 / 50

Analyse des résultats

20% d’outliers

F. Langrognet Rmixmod Juin 2016 40 / 50

Analyse des résultatsLabels

Données initiales

−10 −5 0 5 10 15 20

−5

05

1015

Taux d'outliers : 20%

x

y

Résultats RMixmod

−10 −5 0 5 10 15 20

−5

05

1015

Taux d'outliers : 20% − Résultats Mixmod

x

y

F. Langrognet Rmixmod Juin 2016 41 / 50

Analyse des résultats

Qualité du classement (labels)

classe 1 classe 2 outliersclasse 1 98% 0% 2%classe 2 0% 98.7% 1.3%outliers 16% 17% 67%

Classes 1 et 2 : Excellent taux de reclassement

Outliers : Très bon taux de reclassementI Certains individus (tirés au hasard selon la loi unforme) se trouvent dans le

”domaine” des classes 1 ou 2I Ils sont donc considérés comme des individus de ces classesI => Pas de biais sur l’estimation des paramètres

F. Langrognet Rmixmod Juin 2016 42 / 50

Analyse des résultats

Paramètres

F. Langrognet Rmixmod Juin 2016 43 / 50

Et si on augmentait le nombre declasses ?

F. Langrognet Rmixmod Juin 2016 44 / 50

4 classes ?

−10 −5 0 5 10 15 20

−5

05

1015

Taux d'outliers : 20%

x

y

Résultats RMixmod

F. Langrognet Rmixmod Juin 2016 45 / 50

4 classes - Analyse des résultats

Labels

classe 1 classe 2 outliers (classe 3 et 4)classe 1 97.8% 0% 2.2%classe 2 0% 98.9% 1.1%outliers 15.6% 15.8% 68.6%

Qualité de classification équivalente qu’avec 3 classes

F. Langrognet Rmixmod Juin 2016 46 / 50

4 classes - Analyse des résultats

Paramètres

En augmentant le nombre de classes, on modélise mieux les outliers(meilleure vraisemblance)

F. Langrognet Rmixmod Juin 2016 47 / 50

Etude de la robustesse de RMixmod

1 Le composant RMixmod du projet MIXMODProjet MixmodPrincipales fonctionnalitésRMixmod

2 Outliers

3 Classification et outliersAvec ou sans nettoyage ?Utilisation de RMixmod pour traiter des jeux de données avec outliers

4 Conclusion

F. Langrognet Rmixmod Juin 2016 48 / 50

Conclusion

Classification en présence d’outliers avec RMixmod

En considérant une classe pour les outliers, RMixmod permet

I d’obtenir une excellente qualité de classification (labels)I d’estimer avec précision les paramètres des ”vraies” classes sans

biais (les outliers ayant été affectés dans leur classe)

Les modèles de mélanges de lois gaussiennes montrent leur puissanceet leur souplesseSolution efficace et robuste y compris lorsque les individus qui nesuivent pas une loi gaussienne

F. Langrognet Rmixmod Juin 2016 49 / 50

Classification en présence d’outliers avec RMixmod

FIN

Merci de votre attention

Site web : http://www.mixmod.org

contact :

I contact@mixmod.orgI florent.langrognet@univ-fcomte.fr

−10 −5 0 5 10 15 20

−5

05

1015

Taux d'outliers : 20% − Résultats Mixmod

x

y

F. Langrognet Rmixmod Juin 2016 50 / 50