Arbres
Transcription
Arbres
Arbres Sauleau EA [email protected] Introduction Généralités • Dans les méthodes de data mining • Vocabulaire particulier • Deux grandes phases – Croissance de l'arbre – Elagage ("pruning") : on regroupe des feuilles SemStat 06/02/2007 3 Deux types d'arbres • Arbres de classification – Décision – Prédiction • Arbres de régression • Définitions – Nœuds – Branches – Feuilles SemStat 06/02/2007 4 Arbres de classification A expliquer Y = Y0 Variable catégorielle Groupes connus a priori Y = Y2 Y = Y1 Variables continues Variables catégorielles Explicatives SemStat 06/02/2007 5 Arbres de régression A expliquer Y = f(Y0) Fonctions à estimer Variable continue Y = f(Y2) Y = f(Y1) Variables continues Variables catégorielles Explicatives SemStat 06/02/2007 6 Différences entre arbres • Classification 1. Groupes définis a priori par la variable catégorielle à expliquer 2. Quelles variables classent le mieux les observations dans les groupes? • Régression 1. Quelles variables prédisent le mieux la variable à expliquer? 2. Groupes définis a posteriori pour la variable continue à expliquer SemStat 06/02/2007 7 Vocabulaire • Partitionnement – Un nœud (parent) donne naissance à d'autres nœuds (enfants) – En réponse à une question sur une variable explicative • Arbre binaire – Chaque nœud parent n'a que deux nœuds enfants – Arbre m-aire • Partitionnement récursif – Chaque nœud enfant peut devenir nœud parent SemStat 06/02/2007 8 Historique AID FIRM 1963 CART 1975 Régression 1980 M5 1984 1988 SUPPORT CART 1992 1993 C-RT FACT SECRET 1994 CHAID PHDRT 1997 1998 C4.5 GUIDE GUIDE 2000 QUEST 2001 LOTUS Classification 2002 MOB CRUISE 2004 2006 SemStat 06/02/2007 10 Arbres de classification et algorithme CART CART • CART = Classification And Regression Tree – Par essence classificatoire – Breiman, 1984 • Quatre grandes étapes 1.Permettre à l'arbre de grandir 2.Arrêter sa croissance 3.Elaguer progressivement l'arbre 4.Sélectionner le plus bel arbre SemStat 06/02/2007 12 CART (1) • Position du problème – Variable dépendante catégorielle (à expliquer) – Variables indépendantes (explicatives) – Prédire la catégorie du résultat grâce aux variables explicatives • Partitionnement binaire récursif – Deux enfants Î question dont la réponse ne peut être que oui ou non • Age < 64 ans ? SemStat 06/02/2007 13 CART (1) • Partitionnement ("splitting") – Règle de Gini : isoler la catégorie la plus fréquente – Règle de Twoing : équilibrer les enfants Quelle variable explicative? Quelles catégories ou bornes? Y = Y0 (n=40) Y = Y1 (n=30) Y = Y2 (n=20) Y = Y3 (n=10) A B Y = Y0 (n=40) SemStat 06/02/2007 Y = Y0 (n=40) Y = Y1 (n=30) Y = Y2 (n=20) Y = Y3 (n=10) Y = Y1 (n=30) Y = Y2 (n=20) Y = Y3 (n=10) A Y = Y0 (n=40) Y = Y3 (n=10) B Y = Y1 (n=30) Y = Y2 (n=20) 14 CART (1) • Exemple de partitionnement Y = Y0 (n=40) Y = Y1 (n=30) Y = Y2 (n=20) Y = Y3 (n=10) A Y = Y0 (n=40) X(1) = X1 (n=20) X(1) = X2 (n=20) SemStat 06/02/2007 X(2) [-10,0] (n=40) BY = Y1 (n=30) Y = Y2 (n=20) Y = Y3 (n=10) X(1) = X1 (n=30) X(1) = X2 (n=30) X(2) ]0,10] (n=60) 15 Exemple dans 10 • Y en fonction de X2, couleur selon X1 5 Y <- c(rep(0,40),rep(1,30), rep(2,20),rep(3,10)) 0 -10 -5 X2 <- c(runif(40,-10,0), runif(60,0,10)) X2 X1 <- c(rep(0,20),rep(1,20), rep(0,30),rep(1,30)) 0.0 0.5 1.0 1.5 2.0 2.5 3.0 Y SemStat 06/02/2007 16 CART (1) 1 X2 p < 0.001 • L'exemple dans – Reste une question ≤ -0.262 > -0.262 3 as.factor(X1) p < 0.001 Comment s'arrêter? 0 Node 2 (n = 40) Node 4 (n = 30) Node 5 (n = 30) 1 1 1 0.8 0.8 0.8 0.6 0.6 0.6 0.4 0.4 0.4 0.2 0.2 0.2 0 0 0 SemStat 06/02/2007 1 1 2 3 0 0 1 2 3 0 1 2 17 3 CART (2) • Laisser croître l'arbre le plus possible – Une observation dans chaque nœud terminal – Nombre de division – Même valeur de Y dans les nœuds terminaux SemStat 06/02/2007 18 CART (3) • Elagage – Paramètre de complexité de l'arbre – Réduction de complexité Î "coût" de mauvaise classification (à définir) – Sélection de plusieurs arbres de moins en moins complexes • Exemple dans SemStat 06/02/2007 19 Exemple dans 10 • Données X2 "perturbées" 0 -10 -5 X22 5 X22 <- c(runif(40,-10,1), runif(60,0,10)) 0.0 SemStat 06/02/2007 0.5 1.0 1.5 Y 2.0 2.5 3.0 20 Exemple dans 1 X22 p < 0.001 • Nouvel arbre ≤ -0.007 > -0.007 3 as.factor(X1) p < 0.001 1 Node 2 (n = 37) SemStat 06/02/2007 0 Node 4 (n = 30) Node 5 (n = 33) 1 1 1 0.8 0.8 0.8 0.6 0.6 0.6 0.4 0.4 0.4 0.2 0.2 0.2 0 0 0 0 1 2 3 0 1 2 3 0 1 2 3 21 CART (4) • Arbre optimal – Décider de la complexité à garder – "Overfit" des arbres sur les données d'apprentissage – Données de test • Véritable jeu de données • Validation croisée (10) SemStat 06/02/2007 22 CART • Inconvénients – Algorithme glouton ("greedy") • Etudie toutes les partitions binaires – Biais dans la sélection des variables • Nombreuses modalités favorisées • Alternative – Modèle logistique polytomique • Exemple SemStat 06/02/2007 23 Exemple dans 1.0 0.8 3 0.8 3 1.0 • Sur les données initiales 0.6 2 0.4 0.2 1 0 SemStat 06/02/2007 1 CART 2 3 0.0 0 0.0 0 0.2 1 0.4 Y 0.6 2 predict(multinom(as.factor(Y)~ as.factor(X1)+X2)) 0 1 Multinom 2 3 24 Arbres de régression Arbres de régression • Principe général – Variable à prédire ("class") continue – Variables prédictives ("attributes") discrètes et continues – Y = f(X1, …, XJ) • Evolution de CART pour régression : CRT SemStat 06/02/2007 26 Trois questions 1 as.factor(X2) p < 0.001 0 Variable de segmentation? {1, 2} 3 as.factor(X2) p < 0.001 1 2 4 X1 p < 0.001 ≤0 Node 2 (n = 25) Borne de discrétisation? >0 Node 5 (n = 25) Node 6 (n = 25) Node 7 (n = 25) 3 3 3 3 2 2 2 2 1 1 1 1 0 0 0 0 -1 -1 -1 -1 -2 -2 -2 -2 SemStat 06/02/2007 NB: arbre binaire Comment s'arrêter? 27 Trois questions • Choix des variables de segmentation? – ANOVA SCT = SC"B" + SC"W" 2 2 2 ( ) ( ) ( ) y − y = n y − y + y − y ∑ i ∑ j j ∑ ∑ ij j n G nj G – Xj = arg max(SC"B"(X)) – Maximisation de la disparité entre les groupes SemStat 06/02/2007 28 Trois questions • Choix des bornes de discrétisation? Xj = arg max(SC"B"(X)) SC" B" = n1 (y1 − y )2 + n2 (y2 − y )2 200 180 160 140 120 100 80 0 SemStat 06/02/2007 10 20 30 40 50 29 Trois questions • Règles d'arrêt – Critères empiriques • Effectif minimum pour segmenter • Nombre de niveaux de l'arbre – Critères statistiques (AID) • On segmente si la signification de l'ANOVA est inférieure à un seuil fixé • Elagage 2 ( ŷ − y ) – Minimiser l'erreur de prédiction ∑ i i N SemStat 06/02/2007 30 Inconvénients • Greedy = gourmand – Comparer tous les découpages possibles – Temps machine – Toutes sortes de trucs pour gagner du temps – Autres algorithmes utilisant des statistiques • SUPPORT (1994): test sur le signe des résidus pour séparer deux classes • GUIDE (2002, 2006) SemStat 06/02/2007 31 SUPPORT • Première utilisation de résidus – ri = yi – mean(Y) – Deux séries de résidus : positifs et négatifs • Test de comparaison de moyenne (variances inégales) – Pour toutes les variables : retenir la signification le plus faible • Séparer au mieux deux groupes de part et d'autre de la moyenne de Y SemStat 06/02/2007 32 GUIDE • Wei-Yin Loh, Statistica Sinica 2002 • Tests sur les variables et leurs interactions – Chi² (Pearson) – Tableaux par catégorie ou quantile • Algorithme de choix des variables – Signification des tests de variables – Signification des tests d'interaction – Type de variables (continues ou discrètes) • Biais de sélection diminué SemStat 06/02/2007 33 Arbres conditionnels • Principe général – Tests de permutation – Distribution conditionnelle des statistiques • Sans biais SemStat 06/02/2007 34 Alternative • Régression linéaire multiple – Lissage par splines – Avantage des arbres: estimations locales des moyennes de Y • Exemple dans SemStat 06/02/2007 35 Exemple dans • Données les plus simples 1 as.factor(X1) p < 0.001 Y <- sort(rnorm(100)) X1 <- c(rep(0,50),rep(1,50)) 1 > mean(Y);sd(Y) [1] -0.1007885 [1] 0.9287044 > mean(Y[slot(m.0,"where")==2]); sd(Y[slot(m.0,"where")==2]) [1] 0.63834 [1] 0.5565293 > mean(Y[slot(m.0,"where")==3]); sd(Y[slot(m.0,"where")==3]) [1] -0.839917 [1] 0.5638619 SemStat 06/02/2007 0 Node 2 (n = 50) Node 3 (n = 50) 2 2 1 1 0 0 -1 -1 -2 -2 -3 -3 36 Exemple dans 5 10 • Données un peu plus complexes 0 X1 <- c(rep(0,50),rep(1,50)) X2 Y <- sort(rnorm(100)) -10 -5 X2 <- c(runif(30,-10,0), runif(70,0.01,10)) SemStat 06/02/2007 -2 -1 0 Y 1 2 37 Exemple dans 1 as.factor(X1) p < 0.001 • … et l'arbre ctree(Y ~ as.factor(X1)+X2)) 1 0 3 X2 p < 0.001 ≤ -1.376 Node 2 (n = 50) SemStat 06/02/2007 > -1.376 Node 4 (n = 35) Node 5 (n = 15) 2 2 2 1 1 1 0 0 0 -1 -1 -1 -2 -2 -2 -3 -3 -3 38 Limite • Données complexes – Multiples nœuds terminaux • Classification versus régression – On reste avec des "boîtes" – Se rapprocher d'une vision continue SemStat 06/02/2007 39 Améliorations • Combinaison linéaire d'arbres – Plus difficilement lisible qu'un arbre – Bagging • Breiman, 1996 • Plusieurs arbres sur échantillons boostrappés – Random forest • Breiman, 2001 • Plusieurs arbres sur échantillons boostrappés • A chaque nœud, partitionnement sur échantillon aléatoire de variables explicatives (!!) – Boosting • Défavorise (sous-pondère) les arbres moins prédictifs SemStat 06/02/2007 40 Version bayésienne • BART : Bayesian Additive Regression Trees – Chipman, 2005 – Y = f(X1, …, XJ) + N(0,σ²) – f(X) est une somme d'arbres • Numéro d'arbre • Estimateur de Y dans chacun des nœuds terminaux – Priors • Chaque arbre et chaque estimateur de Y • σ² SemStat 06/02/2007 41 Améliorations • Arbres basés sur des modèles – Zeileis 2005, GUIDE 2006 – Spécification • Y = f(X1, …, XJ | Z1, …, ZL) • Variable dépendante : Y • Régresseurs : X • Variables "d'ajustement" : Z – Ajuster des modèles Y = f(X) dans chacun des nœuds terminaux, déterminés par le partitionnement sur les Z • Bayesian treed GLM SemStat 06/02/2007 42 Un exemple de mob • Pima Indians diabetes pregnant glucose pressure triceps insulin mass pedigree age diabetes Nombre de grossesse Glucose plasmatique Pression sanguine diastolique (mm Hg) Epaisseur du pli cutané au triceps (mm) Insuline plasmatique (mu U/ml) Indice de masse corporelle "Diabetes pedigree function" Age (années) Diabète (test positif vs test négatif) Z X X Z Z Z Z Z Y • Modèle logistique SemStat 06/02/2007 43 Un exemple de mob 1 m ass p < 0 .0 0 1 ≤ 2 6 .3 > 2 6 .3 3 age p < 0 .0 0 1 ≤ 30 0 .8 0 .6 neg 0 .6 neg 0 .6 0 .4 0 .4 0 .4 0 .2 0 .2 0 .2 0 0 0 199 0 99 1 1 7 1 4 0 .5 62 72 SemStat 06/02/2007 80 99 1 1 7 1 4 0 .5 199 1 1 0 .8 0 .8 0 .8 0 .6 0 .6 0 .6 0 .4 0 .4 0 .4 0 .2 0 .2 0 .2 0 0 0 1 pos pos neg pos 0 0 neg 117 1 0 .8 neg 99 N o d e 5 (n = 2 9 7 ) 1 0 .8 pos neg pos 0 N o d e 4 (n = 3 0 4 ) 1 pos N o d e 2 (n = 1 6 7 ) > 30 0 62 72 80 122 0 62 72 80 122 44 Concurrents • Régressions linéaire et logistique • MARS – Multivariate Adaptive polynomial Regression Spline • Neural networks – Généralisation des modèles régressifs – Data mining SemStat 06/02/2007 45 Un exemple historique • Boston housing data (par unité de recensement) crim zn indus chas nox rm age dis rad tax ptratio black lstat medv Taux de crime par habitant Proportion de résidences Proportion d'industrie dans l'acre = 1 si la région est sur la Charles river Concentration oxyde nitrique (parties par 10 millions) Nombre moyen de pièces par logement Proportion d'unités occupées par le propriétaire établies avant 1940 Distances aux centres d'emploi de Boston Index d'accessibilité (routes radiales) Taux plein de taxe foncière (par $10.000) Rapport élève-professeur 1000(Bk - 0.63)^2 où Bk est la proportion de noirs pourcentage de bas statut de la population Valeur médiane des maisons occupées par le propriétaire (par $1000) SemStat 06/02/2007 46 Un exemple historique • Modèles – – – – – – Régression linéaire Polymars Arbre de régression (conditionnel) puis MOB Random forest Boosting BART • Sans analyse de sensibilité • Paramétrage pour des conditions semblables SemStat 06/02/2007 47 Un exemple historique 20 30 40 50 50 40 20 10 0 0 10 20 30 40 50 0 10 20 30 me d v 40 50 10 20 30 40 50 B A R T (m e rci Ed ) (R 2= 0.9724 ) 0 10 20 30 40 50 40 30 20 10 0 0 10 20 Fitted 30 40 50 B o o stin g (R 2= 0.8367 ) 0 50 10 R a n d . F o re st (R 2= 0.8883 ) Fitted 30 40 0 10 20 30 40 30 0 10 20 Fitted 0 SemStat 06/02/2007 A rb re co n d . (R 2= 0.8646 ) 50 M A R S (R 2= 0.9127 ) 50 R e g . lin é a ire (R 2= 0.7406 ) 0 10 20 30 med v 40 50 0 10 20 30 me d v 40 50 48 Un exemple historique 30 0 10 • Amélioration par MOB Fitted 50 Reg. linéaire (R2= 0.7406 ) 0 10 20 30 40 50 40 50 40 50 SemStat 06/02/2007 30 0 10 0 10 20 30 medv 50 MOB (R2= 0.9012 ) 30 Fitted mob(medv~rm+lstat+black| dis+crim+tax+zn+indus+ chas+nox+age+as.factor(rad)+ ptratio,data=Boston, model=linearModel) 0 10 Fitted 50 Arbre cond. (R2= 0.8646 ) 0 10 20 30 49 Extensions • Autres situations que Y continues – Survie – Multivarié – Classification sur Y catégorielle ordonnée SemStat 06/02/2007 50 Un exemple de survie • German Breast Cancer Study Group horTh age menostat tsize tgrade pnodes progrec estrec time cens SemStat 06/02/2007 Thérapie hormonale (oui/non) Age des patientes (annees) Statut ménopausique (pré-/post-) Taille de la tumeur (mm) Grade tumoral (I < II < III) Nombre de nodules envahis Récepteurs à la progestérone (fmol) Récepteurs aux estrogènes (fmol) Survie sans récidive (jours) Statut (0- censuré, 1- événement) 51 Un exemple de survie 1 pnodes p < 0.001 ctree(Surv(time,cens)~., data=GBSG2) ≤3 >3 2 horTh p = 0.035 no 1 SemStat 06/02/2007 Node 3 (n = 248) 5 progrec p < 0.001 ≤ 20 yes 1 Node 4 (n = 128) 1 Node 6 (n = 144) > 20 1 0.8 0.8 0.8 0.8 0.6 0.6 0.6 0.6 0.4 0.4 0.4 0.4 0.2 0.2 0.2 0.2 0 0 0 0 0500 1500 2500 0500 1500 2500 0500 1500 2500 Node 7 (n = 166) 52 0500 1500 2500 Logiciels Packages R • Majeurs – tree, maptree, rpart (inspiration CART) – party (inférence conditionnelle, mob) • Mais aussi – gbm (boosting) – gbev (boosting, erreur de mesure) – randomForest – tgp (mob bayésien) SemStat 06/02/2007 54 Autres logiciels • Logiciels spécifiques – Pour quasiment chaque algorithme – Des logiciels de data mining • Tanagra • Orange • Logiciels généraux : SAS, SPSS SemStat 06/02/2007 55