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