Clustering divisif monothétique. Le package divclust

publicité
Un petit exemple
L’algorithme
La fonction R
Clustering divisif monothétique.
Le package divclust
Marie Chavent, Marc Fuentes
University of Bordeaux, France
Inria Bordeaux Sud-Ouest, CQFD Team
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Introduction
La fonction principale divclust :
Méthode de classification descendant hiérarchique et monothétique.
Optimise le même critère que la classification ascendante
hiérarchique de WARD.
Critère différent de la classification descendante hiérarchique de
[Kaufman et Rousseeuw, 1990] implémentée dans la fonction diana
du package cluster.
Implémente la méthode DIVCLUS-T proposée par [Chavent et al.,
2007].
,→ Ajout du cas des données mixtes (quantitatives et qualitatives)
non traitées dans l’article.
https://github.com/chavent/divclust
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Outline
1
Un petit exemple
2
L’algorithme
3
La fonction R
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Un petit exemple
library(divclust)
data(protein)
treeDIV <- divclust(protein)
sum(treeDIV$height)
n <- nrow(protein)
zprotein <- scale(protein)*sqrt(n/(n-1))
treeWard <- hclust(dist(zprotein)^2/(2*n),
method="ward.D")
sum(treeWard$height)
## [1] 9
## [1] 9
plot(treeDIV)
plot(treeWard,main="",sub="",xlab ="",hang=-1)
Nuts >= 3.55
Fruite.veg. >= 5.35
1.5
1.0
Fruite.veg. < 5.35
Height
2.0
2.5
3.0
Nuts < 3.55
Fish >= 5.75
Port
Italy
Spain
Greece
Bulg
Rom
Yugo
Aust
Alban
Nether
Belg
Switz
W_Ger
Fr
UK
Ireland
Nor
25-26 juin, Grenoble
Swed
Finl
Den
Pol
E_Ger
USSR
Czech
Hung
Spain
Port
Greece
Italy
Hung
Yugo
Rom
Bulg
Alban
Finl
Den
Swed
Nor
UK
Ireland
Belg
Fr
Switz
W_Ger
Aust
Nether
E_Ger
Czech
Pol
USSR
4èmes Rencontres R
0.0
0.5
Fish < 5.75
Un petit exemple
L’algorithme
La fonction R
Un petit exemple
⇒ Comparaison des proportion d’inertie expliquée par les partitions de
2 à 10 classes :
divclust
Ward
k=2
0.37
0.35
k=3
0.51
0.49
k=4
0.59
0.58
k=5
0.65
0.67
k=6
0.71
0.72
k=7
0.76
0.76
k=8
0.79
0.79
k=9
0.82
0.82
k=10
0.84
0.84
⇒ DIVCLUS-T utilise la distance Euclidienne sur données
standardisées.
⇒ Quelles distances pour des données qualitatives ou mixtes ?
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Un petit exemple
n=25 pays
"Meilleure"
bipartition ?
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Un petit exemple
n=25 pays
nuts < 3.55
n=16 pays
nuts >= 3.55
n=9 pays
Partition monothétique
de plus petite
inertie intra-classe
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Un petit exemple
n=25 pays
nuts < 3.55
n=16 pays
nuts >= 3.55
n=9 pays
Quelle classe diviser ?
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Un petit exemple
n=25 pays
nuts < 3.55
nuts >= 3.55
n=16 pays
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Un petit exemple
n=25 pays
nuts < 3.55
nuts >= 3.55
n=9 pays
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Un petit exemple
n=25 pays
nuts < 3.55
n=16 pays
nuts >= 3.55
n=9 pays
fruit.veg. < 3.55
Division de la classe
qui donne la partition
en 3 classes de plus petite
inertie intra-classe
4èmes Rencontres R
n=5 pays
fruit.veg >= 3.55
n=4 pays
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Un petit exemple
n=25 pays
nuts < 3.55
n=16 pays
nuts >= 3.55
n=9 pays
fruit.veg. < 3.55
n=5 pays
4èmes Rencontres R
fruit.veg >= 3.55
n=4 pays
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Un petit exemple
n=25 pays
nuts < 3.55
n=16 pays
fish < 5.75
n=12 pays
UK
Ireland
Belg
Fr
Switz
...
...
nuts >= 3.55
n=9 pays
fish >= 5.75
fruit.veg. < 3.55
fruit.veg >= 3.55
n=4 pays
n=5 pays
n=4 pays
Fin
Den
Swed
Nor
Hung
Yougo
Rom
Bulg
Alban
Spain
Portugal
Greece
Italy
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Un petit exemple
Haut du dendrogramme (3 divisions).
Dendrogramme complet.
treeDIV <- divclust(protein)
plot(treeDIV)
treeDIV_4 <- divclust(protein,K=4)
plot(treeDIV_4)
Nuts < 3.55
Nuts < 3.55
Fruite.veg. < 5.35
Fish < 5.75
Nuts >= 3.55
Nuts >= 3.55
Fruite.veg. >= 5.35
Fish >= 5.75
Fruite.veg. < 5.35
Fish < 5.75
C4
C3
C2
C1
## [1] "Den"
4èmes Rencontres R
"Finl" "Nor"
25-26 juin, Grenoble
"Swed"
Spain
P4 <- cutreediv(treeDIV,K=4)
P4$clusters[[2]]
Port
"Swed"
Greece
"Finl" "Nor"
Italy
Hung
Yugo
Rom
Bulg
Alban
Finl
Den
Swed
Nor
UK
Ireland
Belg
Fr
Switz
W_Ger
Aust
Nether
E_Ger
Czech
Pol
USSR
treeDIV_4$clusters[[2]]
## [1] "Den"
Fruite.veg. >= 5.35
Fish >= 5.75
Un petit exemple
L’algorithme
La fonction R
Le principe
Inertie de données qualitatives ou mixtes
Outline
1
Un petit exemple
2
L’algorithme
3
La fonction R
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Le principe
Inertie de données qualitatives ou mixtes
L’algorithme DIVCLUS-T
En entrée :
- une matrice de donnée X de dimension n × p quantitative,
qualitative ou mixte .
- un nombre K indiquant le nombre de classes de la dernière partition
(par défaut la partition des singletons).
Répétition des deux étapes suivantes
1
division d’une classe en deux : la bipartition doit optimiser un
critère W . L’énumération complète est évitée par la contrainte
monothétique.
2
choix de la classe à diviser : la nouvelle partition doit optimiser le
critère W .
En sortie : une hiérarchie indicée (un dendrogramme) qui se lit comme
un arbre de décision.
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Le principe
Inertie de données qualitatives ou mixtes
Division d’une classe
Le principe
Sélectionner parmi toutes les bipartitions induites par toutes les
questions binaires (définies sur une unique variable) possibles, celle
de plus petite inertie intra-classe W (définie sur toutes les
variables).
Pour une variable quantitative X j , une question binaire est notée
[X j ≤ c] ?
⇒ nombre infini de questions binaires possibles sur X j mais au
plus n` − 1 bipartitions d’une classe C` à n` observations.
⇒ tri des valeurs des observations de X j et les valeurs de
coupures sont les milieux de deux observations consécutives.
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Le principe
Inertie de données qualitatives ou mixtes
Division d’une classe
Pour une variable qualitative X j , une question binaire est notée
[X j ∈ C] ?
⇒ le nombre de questions binaires possibles sur X j est 2mj −1 − 1
où mj est le nombre de modalités de X j .
⇒ nombre de bipartitions exponentiel avec le nombre de
modalités
Finallement, le nombre maximum de bipartitions est :
p1 (n` − 1) +
p2
X
2mj −1 − 1.
j=1
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Le principe
Inertie de données qualitatives ou mixtes
Choix de la classe à diviser
Le principe
Choisir la classe C` = A` ∪ Ā` de la partition Pk qui permet
d’obtenir la partition Pk+1 = {C1 , . . . , C`−1 , A` , Ā` , C`−1 , . . . , Ck }
de plus petite inertie intra-classe W (Pk+1 ).
L’inertie intra-classe est un critère additif :
W (Pk ) =
k
X
I (C` )
`=1
⇒ Equivalent de choisir C` qui maximise la variation de l’inertie :
h(C` ) = I (C` ) − I (A` ) − I (Ā` ).
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Le principe
Inertie de données qualitatives ou mixtes
Hauteur des classes dans le dendrogramme
Hiérarchie indicée comme celle de Ward par la variation de l’inertie
h(C` ) = I (C` ) − I (A` ) − I (Ā` )
⇒ si K < n, ”haut” du dendrogramme complet.
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Le principe
Inertie de données qualitatives ou mixtes
Hauteur des classes dans le dendrogramme
⇒ La somme des hauteurs de l’arbre complet est l’inertie totale T .
#inertie totale
T <- sum(treeDIV$height)
T # nombre de variables quantitatives
## [1] 9
⇒ La somme des K − 1 hauteurs est l’inertie inter-classe B de la
partition en K classes.
#inertie inter-classe de la partition en 4 classes
B <- sum(treeDIV$height[1:3])
⇒ Pourcentages d’inertie expliquées des partitions du dendrogramme.
# pourcentage d'inertie explique de la partition en 4 classes
B/T*100
## [1] 59.2
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Le principe
Inertie de données qualitatives ou mixtes
Inertie pour des données qualitatives ou mixtes
Inertie d’une du matrice des données Z de dimension n × p :
I (Z) =
n
1X
dM (zi , g )2
n
i=1
1
Recodage des données qualitatives par les indicatrices des modalités.
2
Métrique M est la matrice diagonale des poids des colonnes :
,→ les colonnes quantitatives sont pondérées par l’inverse de la
variance empirique.
,→ les colonnes des indicatrices sont pondérées par l’inverse de la
fréquence de la modalités.
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Le principe
Inertie de données qualitatives ou mixtes
Inertie pour des données qualitatives ou mixtes
⇒ Si toutes les variables sont quantitatives, dM est la distance sur
données standardises et I (Z) = p.
⇒ Si toutes les variables sont qualitatives, dM est une distance de type
χ2 et I (Z) = m − p où m est le nombre de modalités.
⇒ Si les données sont mixtes, I (Z) = p1 + m − p2 où p1 et p2 sont les
nombres de variables quantitatives et qualitatives.
En pratique, dans la fonction divclust du package utilise :
,→ la matrice X des données brutes pour construire les questions
binaires.
,→ la matrice Z des de toutes les composantes principales d’une ACP
sur données mixtes pour calculer l’inertie avec M = I .
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Outline
1
Un petit exemple
2
L’algorithme
3
La fonction R
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Un exemple de données mixtes
Les données gironde caractérisent les conditions de vies en Gironde.
,→ 542 communes sont décrites par 27 variables séparées en 4 groupes
(Employment, Housing, Services, Environment).
,→ Le groupe housing est mixte avec 3 variables quantitatives et deux
variables qualitatives.
library(divclust)
data(gironde)
housing <- gironde$housing
head(housing)
##
##
##
##
##
##
##
ABZAC
AILLAS
AMBARES
AMBES
ANDERNOS
ANGLADE
density primaryres owners
131.7
88.8
64.2
21.2
87.5
77.1
532.0
94.9
65.7
101.2
93.8
66.5
551.9
62.1
71.5
63.8
81.0
80.5
4èmes Rencontres R
houses council
inf 90% sup 5%
sup 90% inf 5%
inf 90% sup 5%
sup 90% sup 5%
inf 90% inf 5%
sup 90% inf 5%
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
L’arbre complet
treeHousing <- divclust(housing)
plot(treeHousing)
density >= 1985.91
density < 1985.91
houses = { sup 90%}
houses = { inf 90%}
TAILLAN−ME
CARIGNAN−
IZON
TRESSES
CESTAS
CAMBLANES
MARCHEPR
PEUJARD
VERAC
COIMERES
SAINTE−HE
VILLEGOUG
SAINT−JEAN
QUINSAC
SAINT−LOUB
SAINT−CAP
BREDE
LANDIRAS
SAINT−AVIT
GALGON
ROQUILLE
AMBES
MAZERES
ARTIGUES−
SAINT−SEU
SAINT−PIER
RIONS
SAINT−SULP
SAINT−CAP
RAUZAN
SAINTE−CRO
EGLISOTTES
CUDOS
BELIN−BELI
PUJOLS
HOSTENS
LAMOTHE−L
SAINT−LEGE
SAINT−SYM
CAPTIEUX
BOMMES
BOURIDEYS
PIAN−MEDO
GAURIAGUE
POMPIGNAC
BONNETAN
LOUPES
TARNES
CENAC
SAINT−SEVE
SAINT−GEN
ARSAC
SAINT−LAUR
AYGUEMOR
CADARSAC
LANDE−DE−
COMPS
POUT
SAINT−PARD
MARCENAIS
SAINT−CIER
BONZAC
AUBIAC
TABANAC
LAROQUE
JUGAZAN
FALEYRAS
VIRSAC
CAMARSAC
MARSAS
SALLEBOEU
BEYCHAC−E
MARTILLAC
CUBNEZAIS
SAVIGNAC−
SAINT−SAUV
SAINT−MICH
AVENSAN
SAINT−AUBI
SAINT−SELV
ROAILLAN
SAINT−GEN
MONTUSSA
LUDON−ME
CEZAC
PERISSAC
SAINT−MOR
SALAUNES
CROIGNON
FOURS
BERTHEZ
BLESIGNAC
NERIGEAN
SAINT−LAUR
CIVRAC−DE
CAPIAN
CURSAN
NOAILLAC
CANTOIS
MARANSIN
BARON
SADIRAC
SAINT−MAR
BROUQUEY
SABLONS
SOUSSANS
DAIGNAC
TIZAC−DE−C
GENERAC
SAINT−EXU
MERIGNAS
SAINT−PALA
CHAMADELL
LEOGEATS
MOMBRIER
SAINT−SAUV
CESSAC
BELLEBAT
PRIGNAC−E
PUJOLS−SU
SAINT−AUBI
SAINT−TROJ
CAUVIGNAC
MARTRES
SAINTE−FLO
SAINT−MICH
LUGAIGNAC
DOULEZON
SAINT−VINC
DONNEZAC
VERTHEUIL
SAINT−MAR
PORCHERE
SAINT−LAUR
ESPIET
BLAIGNAC
CASSEUIL
TIZAC−DE−L
BERSON
OMET
SAINT−GEN
GUILLAC
SAINT−HILA
CLEYRAC
ASQUES
MARIMBAUL
SAMONAC
SAINT−ROM
ESSEINTES
SAINT−PHIL
TEUILLAC
PIAN−SUR−
SAINT−GIRO
ARBIS
LIGNAN−DE
MADIRAC
CARS
SAINT−LEON
PUYBARBAN
LAGORCE
SAINT−AND
ESCOUSSAN
FRANCS
NAUJAN−ET
BRACH
MONTAGOU
PONDAURAT
CISSAC−ME
SAINT−VIVIE
LOUBENS
BAIGNEAUX
BUDOS
BEAUTIRAN
SAINT−SULP
CAMBES
CADILLAC−E
CADAUJAC
CUBZAC−LE
SAINT−MAIX
SAINT−GER
SAINT−MAR
PEINTURES
CABANAC−E
SAUCATS
FONTET
SAVIGNAC
VIRELADE
MIOS
CANTENAC
SAINT−COM
FOSSES−ET
LABARDE
SAINT−MAG
VILLENAVE−
SALIGNAC
BIEUJAC
LOUPIAC−D
MOULON
SAINT−MAR
SAINTE−FOY
SAUMOS
MOUILLAC
CASTELVIEL
CASTRES−G
FARGUES
PRIGNAC−E
LUGON−ET−
BAURECH
CAMPS−SUR
SAINT−DEN
ARBANATS
ARVEYRES
AUBIE−ET−E
HAUX
TEMPLE
SAINT−LOUB
SAINT−AUBI
LIGNAN−DE
LARUSCADE
MOULIETS−
LADOS
LOUCHATS
MOURENS
SOULIGNAC
SAINT−BRIC
PETIT−PALA
BIRAC
SENDETS
SAINT−MAG
SAINTE−TER
TAURIAC
CARDAN
SAINT−CIBA
ILLATS
COUBEYRAC
AILLAS
BAGAS
BAYAS
ISLE−SAINT
COURPIAC
MONGAUZY
CASTILLON−
ARCINS
CAMIAC−ET
MOULIS−EN
CAMIRAN
CUSSAC−FO
SAINT−CIER
SAINTE−CO
SAINT−FELI
BELVES−DE
BAYON−SUR
HURE
SAINTE−RA
SAINT−GEN
FIEU
DONZAC
SAINT−PAUL
MARCILLAC
SAINT−SULP
SAINT−SEU
PLASSAC
MORIZES
REIGNAC
LISTRAC−M
LAMARQUE
LOUPIAC
ROQUEBRU
ROMAGNE
SAINT−MAR
SAINT−JEAN
SAINT−GER
TOURNE
PORTETS
LALANDE−D
SAUVE
LANSAC
LADAUX
SAINT−MAR
GUILLOS
SAINT−VINC
SAINT−PIER
SAINT−GER
BRANNENS
LISTRAC−DE
SAUVIAC
SAINT−MICH
LESTIAC−SU
AUROS
LAVAZAN
RIVIERE
LIGUEUX
SAINT−PHIL
SAINT−AIGN
DARDENAC
GAJAC
SAINT−HILA
BERNOS−BE
MAZION
PREIGNAC
EYRANS
CIVRAC−SU
FLOUDES
GORNAC
GANS
ORIGNE
BLASIMON
NIZAN
BARSAC
SAILLANS
SOUSSAC
TAYAC
MASSEILLES
BASSANNE
CABARA
LANDERROU
DAUBEZE
SAINT−GER
SAINT−AND
SAINT−PEY−
NOAILLAN
SAINT−PIER
TUZAN
MONTIGNAC
SAINT−VIVIE
SALLES−DE
PUYNORMA
TAILLECAVA
RIOCAUD
GOURS
SAINT−SULP
GAILLAN−EN
LUGOS
ANGLADE
PUY
CARTELEGU
GAURIAC
SAINT−CHR
LUGASSON
SAINT−MAR
SAUGON
SIGALENS
COIRAC
BALIZAC
PLEINE−SEL
SAINT−YZAN
GISCOS
CAZATS
LABESCAU
MAURIAC
COUTURES
SAINTE−GE
AURIOLLES
BARIE
NEUFFONS
BOSSUGAN
COURS−DE−
SAINT−AND
RUCH
RIMONS
SAINT−FERM
GREZILLAC
SAINT−ANTO
POMPEJAC
VIGNONET
SAINT−CHR
FLAUJAGUE
LAPOUYADE
SEMENS
CAMPUGNA
MESTERRIE
GABARNAC
MARGUERO
BOURDELLE
COURS−LES
MONPRIMBL
BELLEFOND
PRECHAC
CAUMONT
EYNESSE
LEVES−ET−
ORDONNAC
BEGADAN
MASSUGAS
QUEYRAC
VALEYRAC
CAZAUGITAT
ESCAUDES
GOUALADE
PUISSEGUIN
GARDEGAN
SAINT−GER
VILLENEUVE
LANDERROU
SAINT−ESTE
MONTAGNE
UZESTE
MARIONS
JUILLAC
GRIGNOLS
BRAUD−ET−
SAINT−MAR
SAINT−PEY−
LERM−ET−M
SAINT−SEU
CAPLONG
SILLAS
SAINT−LAUR
SAINT−MICH
SAINT−ETIE
SAINT−JULI
SAINT−HIPP
SAINT−ANTO
LARTIGUE
CASTELMOR
CIVRAC−EN
DIEULIVOL
SAINT−AVIT
TALAIS
SAINT−CHR
SAINT−QUE
VENSAC
JAU−DIGNAC
LANTON
CAZALIS
LUCMAU
BLAIGNAN
SAINT−VIVIE
PORGE
GRAYAN−ET
TALENCE
BORDEAUX
SAINTE−FOY
BOUSCAT
CENON
BEGLES
SAINT−ANTO
LORMONT
CARBON−BL
EYSINES
FLOIRAC
PESSAC
GRADIGNAN
MERIGNAC
VILLENAVE−
ARTIGUES−
BRUGES
HAILLAN
BASSENS
LIBOURNE
LANGON
BLAYE
CASTILLON−
PAREMPUYR
LEOGNAN
MARTIGNAS
SAINT−MED
YVRAC
SALLES
AMBARES
CANEJAN
BLANQUEFO
PODENSAC
PUGNAC
BIGANOS
CERONS
TEICH
SAINT−LAUR
CASTELNAU
VERDELAIS
CASTETS−E
ABZAC
FRONTENAC
GIRONDE−S
SAINT−CIER
TESTE−DE−
VILLANDRAU
BRANNE
SAINT−AND
TOULENNE
CREON
SAINT−YZAN
ETAULIERS
COUTRAS
MARGAUX
PINEUILH
SAINT−MED
SAINT−SAVI
PAUILLAC
GUITRES
BAZAS
SAUVETERR
LESPARRE−
MONSEGUR
CADILLAC
REOLE
SAINT−SEU
POMEROL
SAINTE−EU
LATRESNE
SAINT−MED
BOULIAC
FARGUES−S
SAINT−LOU
BARP
VAYRES
MACAU
TARGON
PAILLET
LANGOIRAN
GENISSAC
AUDENGE
GENSAC
FRONSAC
GUJAN−MES
PESSAC−SU
COUQUEQU
SAINT−MAC
BEGUEY
CAUDROT
SAUTERNES
LUSSAC
SAINT−CHR
NEAC
PELLEGRUE
BILLAUX
BOURG
CAVIGNAC
SAINT−QUE
SAINT−EMIL
NAUJAC−SU
ARES
ANDERNOS
ARCACHON
HOURTIN
LACANAU
SOULAC−SU
VERDON−SU
LEGE−CAP−
VENDAYS−M
CARCANS
25-26 juin, Grenoble
4èmes Rencontres R
council = { sup 5%}
council = { inf 5%}
Un petit exemple
L’algorithme
La fonction R
La partition en 5 classes
treeHousing_5 <- divclust(housing,K=5)
plot(treeHousing_5,nqbin=4) # Nombre de questions binaires
houses = { inf 90%}
density < 1985.91
density >= 1985.91
C5
council = { sup 5%}
C3
C4
council = { inf 5%}
C2
Q4=False
houses = { sup 90%}
C1
Q4=True
afficher
Ou encore avec la fonction cutreediv :
P_5_div <- cutreediv(treeHousing,K=5)
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Quelques sorties
##
##
##
##
##
##
##
##
##
##
Call:
cutreediv(tree = treeHousing, K = 5)
[1,]
[2,]
[3,]
[4,]
name
"$clusters"
"$description"
"$which_cluster"
"$B"
description
"list of observations in each cluster"
"monothetic description of each cluster"
"cluster memberships"
"the proportion of explained inertia"
# liste des communes de la classe C4
P_5_div$clusters$C4
##
##
##
[1] "ANDERNOS"
[5] "HOURTIN"
[9] "SOULAC-SUR-MER"
"ARCACHON"
"ARES"
"LACANAU"
"LEGE-CAP-FERRET"
"VENDAYS-MONTALIVET" "VERDON-SUR-MER"
"CARCANS"
"NAUJAC-SUR-MER"
# Description monothetique de la classe C4
P_5_div$description$C4
## [1] " houses = { inf 90%} , density = [-Inf ; 1985.91[ , primaryres = [-Inf ; 68.06["
# Proportion d'inertie explique par P_5
P_5_div$B
## [1] 0.693
4èmes Rencontres R
25-26 juin, Grenoble
CASTELMORON−D'ALBRET
SAINT−ETIENNE−DE−LISSE
SAINT−HIPPOLYTE
SAINT−JULIEN−BEYCHEVELLE
LARTIGUE
SAINT−ANTOINE−DU−QUEYRET
JUILLAC
SOUSSAC
BRAUD−ET−SAINT−LOUIS
GRIGNOLS
ESCAUDES
GOUALADE
LUCMAU
JAU−DIGNAC−ET−LOIRAC
CAZALIS
LANTON
VENSAC
SAINT−VIVIEN−DE−MEDOC
SAINT−QUENTIN−DE−CAPLONG
SAINT−CHRISTOLY−MEDOC
TALAIS
SAINT−AVIT−DE−SOULEGE
CIVRAC−EN−MEDOC
DIEULIVOL
BLAIGNAN
SAINT−MICHEL−DE−CASTELNAU
SAINT−MARTIN−LACAUSSADE
LERM−ET−MUSSET
SAINT−PEY−D'ARMENS
SAINT−LAURENT−DES−COMBES
SAINT−SEURIN−DE−CADOURNE
CAPLONG
SILLAS
BEGADAN
MASSUGAS
LEVES−ET−THOUMEYRAGUES
ORDONNAC
QUEYRAC
VALEYRAC
RIMONS
SAINT−FERME
BOSSUGAN
COURS−DE−MONSEGUR
RUCH
SAINT−ANDRE−ET−APPELLES
NEUFFONS
COUTURES
AURIOLLES
SAINTE−GEMME
EYNESSE
BARIE
CAUMONT
MARIONS
UZESTE
LANDERROUAT
VILLENEUVE
MONTAGNE
SAINT−ESTEPHE
SAINT−GERMAIN−DE−GRAVE
SEMENS
GARDEGAN−ET−TOURTIRAC
PUISSEGUIN
RIVIERE
LIGUEUX
ROQUEBRUNE
SAINT−PHILIPPE−D'AIGUILLE
DARDENAC
SAINT−AIGNAN
GAJAC
SAINT−HILAIRE−DU−BOIS
LAPOUYADE
SAINT−MARTIN−DU−PUY
ROMAGNE
SAINT−JEAN−DE−BLAIGNAC
POMPEJAC
CAMPUGNAN
GREZILLAC
VIGNONET
SAINT−ANTOINE−SUR−L'ISLE
FLAUJAGUES
SAINT−CHRISTOLY−DE−BLAYE
CAZAUGITAT
COURS−LES−BAINS
GABARNAC
MESTERRIEUX
BOURDELLES
MARGUERON
PRECHAC
BELLEFOND
MONPRIMBLANC
SAINT−LEON
MADIRAC
CARS
PUYBARBAN
PONDAURAT
LAGORCE
SAINT−ANDRONY
BIRAC
SENDETS
ARBIS
MOURENS
SOULIGNAC
LIGNAN−DE−BORDEAUX
PETIT−PALAIS−ET−CORNEMPS
SAINT−BRICE
SAINTE−TERRE
CARDAN
TAURIAC
BAGAS
BAYAS
ILLATS
AILLAS
COUBEYRAC
SAINT−PAUL
MARCILLAC
SAINT−SULPICE−DE−POMMIERS
SAINT−GENES−DE−CASTILLON
DONZAC
FIEU
HURE
SAINTE−RADEGONDE
MAURIAC
CAZATS
LABESCAU
BAYON−SUR−GIRONDE
BELVES−DE−CASTILLON
CUSSAC−FORT−MEDOC
SAINT−CIERS−DE−CANESSE
SAINTE−COLOMBE
CAMIRAN
SAINT−FELIX−DE−FONCAUDE
LISTRAC−MEDOC
REIGNAC
LAMARQUE
LOUPIAC
MORIZES
PLASSAC
SAINT−SEURIN−DE−BOURG
CAMPS−SUR−L'ISLE
ISLE−SAINT−GEORGES
VILLENAVE−DE−RIONS
CAMIAC−ET−SAINT−DENIS
MONGAUZY
ARCINS
CASTILLON−DE−CASTETS
SAINT−MAGNE
COURPIAC
SAINT−CIBARD
LALANDE−DE−POMEROL
SAUVE
LANSAC
LADAUX
SAINT−MARTIAL
MOULIS−EN−MEDOC
LARUSCADE
SAINT−AUBIN−DE−BLAYE
LADOS
MOULIETS−ET−VILLEMARTIN
LIGNAN−DE−BAZAS
LOUCHATS
ARVEYRES
SAINT−LOUBERT
BAURECH
HAUX
LUGON−ET−L'ILE−DU−CARNAY
AUBIE−ET−ESPESSAS
PORTETS
ARBANATS
SAINT−DENIS−DE−PILE
CAMBES
CASTRES−GIRONDE
CUBZAC−LES−PONTS
SAINT−MAIXANT
SAINT−SULPICE−ET−CAMEYRAC
CADAUJAC
CADILLAC−EN−FRONSADAIS
CANTENAC
SAINT−COME
FOSSES−ET−BALEYSSAC
TEMPLE
PEINTURES
SAINT−MARIENS
FARGUES
PRIGNAC−ET−MARCAMPS
SAINT−GERMAIN−DU−PUCH
MIOS
SAVIGNAC
VIRELADE
CABANAC−ET−VILLAGRAINS
SAUCATS
EYRANS
MAZION
PREIGNAC
CIVRAC−SUR−DORDOGNE
NIZAN
BERNOS−BEAULAC
BLASIMON
GANS
ORIGNE
BARSAC
SAILLANS
SAINT−MICHEL−DE−FRONSAC
BRANNENS
LISTRAC−DE−DUREZE
FLOUDES
GUILLOS
GORNAC
SAUVIAC
LESTIAC−SUR−GARONNE
AUROS
LAVAZAN
SAINT−GERVAIS
TOURNE
SAINT−GERMAIN−DE−LA−RIVIERE
SAINT−PIERRE−DE−MONS
SAINT−VINCENT−DE−PAUL
PUYNORMAND
SAINT−VIVIEN−DE−BLAYE
SALLES−DE−CASTILLON
SAINT−VIVIEN−DE−MONSEGUR
MONTAGOUDIN
BUDOS
BAIGNEAUX
LOUBENS
CISSAC−MEDOC
MONTIGNAC
LUGAIGNAC
ESCOUSSANS
FRANCS
DOULEZON
DONNEZAC
SAINT−VINCENT−DE−PERTIGNAS
BRACH
NAUJAN−ET−POSTIAC
SAINT−MARTIN−DE−LAYE
VERTHEUIL
SAINT−PIERRE−DE−BAT
SAINT−ANDRE−DU−BOIS
NOAILLAN
SAINT−PEY−DE−CASTETS
CABARA
LANDERROUET−SUR−SEGUR
TUZAN
TAYAC
BASSANNE
MASSEILLES
GOURS
SAINT−SULPICE−DE−GUILLERAGUES
ANGLADE
PUY
RIOCAUD
TAILLECAVAT
GAILLAN−EN−MEDOC
LUGOS
CARTELEGUE
GAURIAC
LUGASSON
SAINT−CHRISTOPHE−DE−DOUBLE
SAINT−MARTIN−DE−LERM
SAUGON
SIGALENS
GISCOS
SAINT−YZANS−DE−MEDOC
DAUBEZE
SAINT−GERMAIN−D'ESTEUIL
PLEINE−SELVE
BALIZAC
COIRAC
SAINT−PHILIPPE−DU−SEIGNAL
TEUILLAC
PIAN−SUR−GARONNE
SAINT−GIRONS−D'AIGUEVIVES
SAINT−MARTIN−DU−BOIS
SAINT−ROMAIN−LA−VIRVEE
SAMONAC
BLAIGNAC
ESSEINTES
SAINT−HILAIRE−DE−LA−NOAILLE
GUILLAC
SAINT−GENES−DE−BLAYE
CLEYRAC
ASQUES
MARIMBAULT
ESPIET
BERSON
OMET
PUJOLS−SUR−CIRON
SAINT−AUBIN−DE−BRANNE
CASSEUIL
TIZAC−DE−LAPOUYADE
FALEYRAS
JUGAZAN
LEOGEATS
BELLEBAT
PRIGNAC−EN−MEDOC
MOMBRIER
CESSAC
SAINT−SAUVEUR
COMPS
LANDE−DE−FRONSAC
POUT
SAINT−PARDON−DE−CONQUES
SAINT−CIERS−D'ABZAC
TABANAC
SAINTE−FLORENCE
SAINT−MICHEL−DE−LAPUJADE
CAUVIGNAC
MARTRES
SAINT−TROJAN
CHAMADELLE
SAINT−PALAIS
GENERAC
MERIGNAS
SAINT−EXUPERY
MARCENAIS
TIZAC−DE−CURTON
CADARSAC
SAINT−GENIS−DU−BOIS
CENAC
BONNETAN
AYGUEMORTE−LES−GRAVES
SAINT−LAURENT−D'ARCE
GAURIAGUET
LOUPES
TARNES
SAINT−SEVE
ARSAC
SAINT−GENES−DE−FRONSAC
PIAN−MEDOC
POMPIGNAC
BARON
FONTET
PERISSAC
SAINT−MORILLON
NOAILLAC
SALAUNES
BROUQUEYRAN
CANTOIS
MARANSIN
AVENSAN
CEZAC
CURSAN
SAINTE−FOY−LA−LONGUE
SAUMOS
CASTELVIEL
MOUILLAC
LABARDE
SAINT−MAGNE−DE−CASTILLON
MOULON
SAINT−MARTIN−DE−SESCAS
LOUPIAC−DE−LA−REOLE
BIEUJAC
SALIGNAC
SABLONS
DAIGNAC
SOUSSANS
SAINT−AUBIN−DE−MEDOC
SAINT−GENES−DE−LOMBAUD
ROAILLAN
SAINT−SELVE
LUDON−MEDOC
BEAUTIRAN
MONTUSSAN
SADIRAC
VIRSAC
SAINT−MICHEL−DE−RIEUFRET
SAINT−SAUVEUR−DE−PUYNORMAND
BEYCHAC−ET−CAILLAU
CAMARSAC
CUBNEZAIS
SAVIGNAC−DE−L'ISLE
MARTILLAC
MARSAS
SALLEBOEUF
AUBIAC
BONZAC
LAROQUE
CROIGNON
FOURS
CIVRAC−DE−BLAYE
SAINT−LAURENT−DU−BOIS
PORCHERES
SAINT−LAURENT−DU−PLAN
BLESIGNAC
NERIGEAN
BERTHEZ
CAPIAN
BOUSCAT
CENON
SAINTE−FOY−LA−GRANDE
BORDEAUX
TALENCE
ARCACHON
HOURTIN
LACANAU
SOULAC−SUR−MER
VERDON−SUR−MER
LEGE−CAP−FERRET
CARCANS
VENDAYS−MONTALIVET
GRAYAN−ET−L'HOPITAL
PORGE
CARIGNAN−DE−BORDEAUX
TAILLAN−MEDOC
CESTAS
CAMBLANES−ET−MEYNAC
IZON
TRESSES
BREDE
SAINT−CAPRAIS−DE−BORDEAUX
SAINT−LOUBES
PEUJARD
MARCHEPRIME
SAINTE−HELENE
COIMERES
VERAC
QUINSAC
SAINT−JEAN−D'ILLAC
VILLEGOUGE
BOURIDEYS
RAUZAN
SAINTE−CROIX−DU−MONT
RIONS
SAINT−SULPICE−DE−FALEYRENS
LAMOTHE−LANDERRON
BELIN−BELIET
SAINT−CAPRAIS−DE−BLAYE
AMBES
MAZERES
SAINT−SEURIN−DE−CURSAC
ARTIGUES−DE−LUSSAC
SAINT−PIERRE−D'AURILLAC
BOMMES
SAINT−LEGER−DE−BALSON
CAPTIEUX
SAINT−SYMPHORIEN
LANDIRAS
SAINT−AVIT−SAINT−NAZAIRE
CUDOS
EGLISOTTES−ET−CHALAURES
GALGON
PUJOLS
HOSTENS
ROQUILLE
GUJAN−MESTRAS
PESSAC−SUR−DORDOGNE
ARES
COUQUEQUES
ANDERNOS
NAUJAC−SUR−MER
FRONSAC
GENSAC
AUDENGE
GENISSAC
SAINTE−EULALIE
LATRESNE
SAINT−MEDARD−D'EYRANS
MACAU
TARGON
VAYRES
BARP
SAINT−LOUIS−DE−MONTFERRAND
PAILLET
BOULIAC
FARGUES−SAINT−HILAIRE
SAINT−MACAIRE
SAINT−EMILION
BOURG
CAVIGNAC
SAINT−QUENTIN−DE−BARON
PELLEGRUE
NEAC
SAINT−CHRISTOPHE−DES−BARDES
BILLAUX
CAUDROT
LUSSAC
SAUTERNES
BEGUEY
LANGOIRAN
BEGLES
LORMONT
BRUGES
HAILLAN
ARTIGUES−PRES−BORDEAUX
VILLENAVE−D'ORNON
FLOIRAC
SAINT−ANTOINE
CARBON−BLANC
MERIGNAC
EYSINES
GRADIGNAN
PESSAC
PAREMPUYRE
LEOGNAN
MARTIGNAS−SUR−JALLE
SAINT−MEDARD−EN−JALLES
YVRAC
BLANQUEFORT
PODENSAC
AMBARES
CANEJAN
SALLES
FRONTENAC
SAINT−LAURENT−MEDOC
TEICH
ABZAC
CASTETS−EN−DORTHE
VERDELAIS
BIGANOS
CERONS
CASTELNAU−DE−MEDOC
PUGNAC
LIBOURNE
CADILLAC
LANGON
BLAYE
CASTILLON−LA−BATAILLE
GIRONDE−SUR−DROPT
SAINT−CIERS−SUR−GIRONDE
TESTE−DE−BUCH
VILLANDRAUT
GUITRES
LESPARRE−MEDOC
PAUILLAC
MONSEGUR
BAZAS
SAUVETERRE−DE−GUYENNE
POMEROL
REOLE
SAINT−SEURIN−SUR−L'ISLE
BASSENS
CREON
TOULENNE
BRANNE
SAINT−ANDRE−DE−CUBZAC
COUTRAS
ETAULIERS
SAINT−YZAN−DE−SOUDIAC
SAINT−SAVIN
MARGAUX
PINEUILH
SAINT−MEDARD−DE−GUIZIERES
Height
1.0
1.5
⇒
0.5
⇒
0.0
Un petit exemple
L’algorithme
La fonction R
Ward sur données mixtes
Toutes les coordonnées factorielles de l’ ACP mixte :
library(PCAmixdata)
X_quanti <- split_mix(housing)$data_quanti
X_quali <- split_mix(housing)$data_quali
zhousing <- PCAmix(X_quanti,X_quali,ndim=5,graph=FALSE)$ind$coord
Hiérarchie de Ward indicé par la variation de l’inertie.
treeWard <hclust(dist(zhousing)^2/(2*nrow(zhousing)),method="ward.D")
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Ward sur données mixtes
⇒ Comparaison des partitions en k = 5 classes :
P_5_ward <- cutree(treeWard,5)
P_5_div<- P_5_div$which_cluster
library(ClustOfVar)
#Indice de Rand entre les deux partitions
rand(P_5_div,P_5_ward)
## [1] 0.981
⇒ Comparaison des proportion d’inertie expliquée:
divclust
Ward
k=2
0.21
0.20
k=3
0.28
0.28
k=4
0.34
0.34
4èmes Rencontres R
k=5
0.39
0.39
k=6
0.41
0.42
k=7
0.44
0.44
25-26 juin, Grenoble
k=8
0.45
0.46
k=9
0.46
0.47
k=10
0.47
0.48
Un petit exemple
L’algorithme
La fonction R
Et pour des données qualitatives...
services <- gironde$services
treeServices <- divclust(services)
plot(treeServices,nqbin=5)
doctor = {3 or +,0} or doctor = {1 to 2}
nursery = {0} or nursery = {1 or +}
## Q5 :
## Q3 :
ARCACHON
BRUGES
AMBARES−ET−LAGRAVE
ANDERNOS−LES−BAINS
SAINT−AUBIN−DE−MEDO
TEICH
GUITRES
BAZAS
ARTIGUES−PRES−BORDE
LANGOIRAN
CANEJAN
CARBON−BLANC
MARCHEPRIME
ARES
SAINT−CIERS−SUR−GIRO
SAINT−CHRISTOLY−DE−B
CADAUJAC
CADILLAC
GRIGNOLS
MARGAUX
BELIN−BELIET
AUDENGE
IZON
PREIGNAC
PIAN−MEDOC
SAINTE−EULALIE
EGLISOTTES−ET−CHALAU
LUSSAC
QUINSAC
LANDE−DE−FRONSAC
SADIRAC
ETAULIERS
LAMARQUE
SAINTE−HELENE
PINEUILH
SAUVETERRE−DE−GUYE
BERSON
VILLANDRAUT
PELLEGRUE
BLASIMON
ARVEYRES
CARCANS
YVRAC
PORGE
SAUVE
LISTRAC−MEDOC
POMPIGNAC
SAINT−PIERRE−D'AURILL
LANDIRAS
AUROS
CAMBES
BERNOS−BEAULAC
VERDELAIS
GIRONDE−SUR−DROPT
GAURIAC
FRONSAC
CISSAC−MEDOC
BRAUD−ET−SAINT−LOUIS
GENSAC
LARUSCADE
HOSTENS
MOULON
PUISSEGUIN
MARANSIN
LUGON−ET−L'ILE−DU−CA
CUBZAC−LES−PONTS
SAINT−SEURIN−DE−CUR
CAUDROT
SAINT−YZAN−DE−SOUDIA
FRONTENAC
BEGADAN
SAINT−MORILLON
GORNAC
PAILLET
ARSAC
TOULENNE
SAINT−DENIS−DE−PILE
BARSAC
BEAUTIRAN
LUDON−MEDOC
SAINT−CAPRAIS−DE−BOR
PORTETS
MONSEGUR
SAINT−LAURENT−MEDOC
RAUZAN
MACAU
CAMBLANES−ET−MEYNA
BOURG
SAINT−GERMAIN−DU−PU
VAYRES
TRESSES
AMBES
BRANNE
CARIGNAN−DE−BORDEA
SALIGNAC
PRIGNAC−ET−MARCAMP
LAMOTHE−LANDERRON
SALLEBOEUF
CASTRES−GIRONDE
CERONS
TARGON
ABZAC
SAINT−ESTEPHE
CARTELEGUE
BREDE
BARP
GALGON
SAINT−MACAIRE
SAINT−VIVIEN−DE−MEDO
REIGNAC
CAPTIEUX
CASTETS−EN−DORTHE
CABANAC−ET−VILLAGRA
PUJOLS
MARSAS
NOAILLAN
ANGLADE
SAUGON
ARBANATS
SAINT−MAGNE−DE−CAST
ARCINS
SAINT−PEY−D'ARMENS
CARS
GRAYAN−ET−L'HOPITAL
RIONS
GAILLAN−EN−MEDOC
MAZERES
EYRANS
ILLATS
BILLAUX
ARTIGUES−DE−LUSSAC
TEUILLAC
PEUJARD
SAINT−QUENTIN−DE−BAR
SAINT−PEY−DE−CASTET
SAINTE−CROIX−DU−MON
SAINT−MAGNE
HURE
PEINTURES
BIEUJAC
CUSSAC−FORT−MEDOC
JAU−DIGNAC−ET−LOIRAC
SALAUNES
MOULIETS−ET−VILLEMAR
BEGUEY
CADILLAC−EN−FRONSAD
SAINT−CIERS−D'ABZAC
RUCH
BARON
GAURIAGUET
AILLAS
BEYCHAC−ET−CAILLAU
SAINT−MAIXANT
CIVRAC−DE−BLAYE
CAMPS−SUR−L'ISLE
SAINT−SAUVEUR
BALIZAC
AVENSAN
UZESTE
CUBNEZAIS
SAINT−SELVE
FONTET
SAINT−VINCENT−DE−PAU
EYNESSE
MARCILLAC
SABLONS
SOUSSANS
VERTHEUIL
AUBIE−ET−ESPESSAS
SAINT−GIRONS−D'AIGUE
SAINT−MARIENS
CEZAC
GENISSAC
LAPOUYADE
SAINT−SEURIN−DE−CADO
ARBIS
MADIRAC
DONNEZAC
GUILLAC
PUYNORMAND
CAMIRAN
ASQUES
25-26 juin, Grenoble
4èmes Rencontres R
chemist = {2 or +}
chemist = {1}
Q3=False
Q3=True
Q5=False
Q5=True
restaurant = {1,2,3 or +}
restaurant = {0}
chemist = {1,2 or +}
chemist = {0}
Un petit exemple
L’algorithme
La fonction R
Tenir compte de l’ordre des modalités
⇒ Imposer un ordre sur les modalités.
#ordonner les modalites
services$doctor <- ordered(services$doctor)
class(services$doctor)
## [1] "ordered" "factor"
treeServices <- divclust(services)
plot(treeServices,nqbin=5)
## Q5 :
## Q3 :
doctor = {0,1 to 2} or doctor = {3 or +}
nursery = {0} or nursery = {1 or +}
⇒ Réduction du nombre de questions binaires dans le cas qualitatif.
4èmes Rencontres R
25-26 juin, Grenoble
Un petit exemple
L’algorithme
La fonction R
Références I
M. Chavent, Y. Lechevallier, and 0. Briant
DIVCLUS-T: A monothetic divisive hierarchical clustering method.
Computational Statistics and Data Analysis 52 (2007) 687-701.
L. Kaufman, P. J. Rousseeuw
Divisive Analysis (Program DIANA).
Finding Groups in Data: An Introduction to Cluster Analysis (1990) 253-279.
4èmes Rencontres R
25-26 juin, Grenoble
Téléchargement