esiea paris
Transcription
esiea paris
2012-2013
ESIEA PARIS
Examen MAT 5201 DATA MINING
Mardi 12 Novembre 2012
Première Partie : 15 minutes (8 points)
Enseignant responsable : Frédéric Bertrand
Remarque importante : les questions de ce questionnaire sont posées dans le contexte d’un cours
de DATA MINING. Une seule réponse est correcte par question.
1. Que signifie CRM ?
a) Centre de Recherche en Mathématiques
b) Classification des Relations Maximales
c) Customer Relationship Management
2. Donner trois exemples de techniques de DataMining étudiées en TD.
a) Une. ………………………………………………………………………………….
b) Deux. ………………………………………………………………………………..
c) Trois. ………………………………………………………………………………..
3. Le Data Mining est-il utilisé en CRM ? Donnez un exemple de problématique liée à son
utilisation.
a) Non. ……………………………………………………………………………
b) Oui. ………………………………………………………………………..….
4. Combien de grandes familles de techniques de DATA MINING sont présentées dans ce
cours ? Citez-les dans le cas que vous avez choisi.
d) Une. ………………………………………………………………………………….
e) Deux. ………………………………………………………………………………..
f) Trois. ………………………………………………………………………………..
5. Les techniques factorielles sont-elles utiles en Data Mining ? Si oui, donnez un exemple de
problématique liée à son utilisation.
a) Non. ……………………………………………………………………………
b) Oui. ………………………………………………………………………..
6. Pour étudier les habitudes de consommation des clients d’un supermarché, on utilisera
a) Des règles d’association
b) Des règles de dissociation
c) Une technique prédictive
7. Le support d’une règle d’association est la proportion de transactions contenant les items
impliqués auxquels s’applique la règle :
a) Vrai
b) Faux
8. Les arbres de régression permettent d’obtenir des prédictions pour une variable
a) Quantitative
b) Qualitative
ESIEA PARIS
9.
10.
11.
12.
13.
14.
15.
16.
2012-2013
c) Quantitative et qualitative.
Les arbres de décision ou de régression permettent d’obtenir des prédictions à l’aide de
variables
a) Quantitatives
b) Qualitatives
c) Quantitatives et qualitatives.
La commande sous R pour ajuster un arbre de régression est
a) rpart()
b) tree.cv()
c) prune.tree()
La commande sous R pour élaguer un arbre de régression est
d) tree()
e) tree.cv()
f) prune.tree()
La commande sous R pour ajuster un arbre de régression par validation croisée est
g) rpart()
h) tree.cv()
i) prune.tree()
La commande sous R pour extraire des règles d’association est
a) read.translations()
b) inspect()
c) apriori()
La bibliothèque R pour faire du TextMining est
d) tm
e) arules
f) cluster
Qui était Ockham ?
g) un moine du XIIIème siècle
h) un chercheur du XXème siècle
i) un personnage du film « Au nom de la rose »
De combien d’échantillon a-t-on besoin pour évaluer l’erreur de prédiction par validation
croisée ?
j) un
k) deux
l) trois
ESIEA 5e année - 2012/2013
Frédéric Bertrand
E.S.I.E.A Paris
Année scolaire 2012/2013
UE de cinquième année : MAT 5201 - Data Mining
Enseignant Responsable : F. Bertrand
Chaque réponse devra être justifiée précisément. Dans le corps du texte et en annexe
sont donnés le journal et la sortie d’un traitement avec le logiciel R.
1
La cyphose (4 points)
Pour prédire l’apparition d’une cyphose (Kyphosis) après une opération chirurgicale
du dos, nous disposons de plusieurs variables :
• Age âge en mois ;
• Number nombre de vertèbres touchées par l’opération ;
• Start vertèbre la plus haute ayant été opérée.
1. Combien de noeuds intérieurs possède l’arbre tfit (Figure 1) ? Combien de
feuilles a l’arbre tfit2 (Figure 2) ?
2. En utilisant les deux arbres tfit (Figure 1) et tfit2 (Figure 2), déterminer
si les quatre patients dont les caractéristiques sont les suivantes auront une
cyphose :
Age Number Start
1
71
3
5
2 158
3
14
3 128
4
5
80 42
7
6
3. Comparer les valeurs prédites à la question 2. avec les valeurs réelles des patients 1, 2, 3 et 80 qui sont données ci-dessous :
Kyphosis
1 absent
2 absent
3 present
80 present
Levels: absent present
Quelles sont les meilleures prédictions ? En se basant sur ce constat, quel est
l’arbre que vous préférerez utiliser ?
1
ESIEA 5e année - 2012/2013
Frédéric Bertrand
4. Parmi toutes les variables explicatives proposées quelles sont celles qui sont
utilisées par le modèle que vous avez retenu à la question 3. ?
5. À l’aide des informations suivantes expliquer comment a été obtenu l’arbre
tfit2 (Figure 2) à partir de l’arbre tfit.
> printcp(fit)
Classification tree:
rpart(formula = Kyphosis ~ Age + Number + Start, data = kyphosis,
method = "class")
Variables actually used in tree construction:
[1] Age
Start
Root node error: 17/81 = 0.20988
n= 81
CP nsplit rel error xerror
xstd
1 0.176471
0
1.00000 1.00000 0.21559
2 0.019608
1
0.82353 0.94118 0.21078
3 0.010000
4
0.76471 0.94118 0.21078
> plotcp(fit)
> summary(fit)
Call:
rpart(formula = Kyphosis ~ Age + Number + Start, data = kyphosis,
method = "class")
n= 81
CP nsplit rel error
xerror
xstd
1 0.17647059
0 1.0000000 1.0000000 0.2155872
2 0.01960784
1 0.8235294 0.9411765 0.2107780
3 0.01000000
4 0.7647059 0.9411765 0.2107780
Node number 1: 81 observations,
complexity param=0.1764706
predicted class=absent
expected loss=0.2098765
class counts:
64
17
probabilities: 0.790 0.210
left son=2 (62 obs) right son=3 (19 obs)
Primary splits:
Start < 8.5 to the right, improve=6.762330, (0 missing)
Number < 5.5 to the left, improve=2.866795, (0 missing)
Age
< 39.5 to the left, improve=2.250212, (0 missing)
Surrogate splits:
Number < 6.5 to the left, agree=0.802, adj=0.158, (0 split)
2
ESIEA 5e année - 2012/2013
Frédéric Bertrand
Node number 2: 62 observations,
complexity param=0.01960784
predicted class=absent
expected loss=0.09677419
class counts:
56
6
probabilities: 0.903 0.097
left son=4 (29 obs) right son=5 (33 obs)
Primary splits:
Start < 14.5 to the right, improve=1.0205280, (0 missing)
Age
< 55
to the left, improve=0.6848635, (0 missing)
Number < 4.5 to the left, improve=0.2975332, (0 missing)
Surrogate splits:
Number < 3.5 to the left, agree=0.645, adj=0.241, (0 split)
Age
< 16
to the left, agree=0.597, adj=0.138, (0 split)
Node number 3: 19 observations
predicted class=present expected loss=0.4210526
class counts:
8
11
probabilities: 0.421 0.579
Node number 4: 29 observations
predicted class=absent
expected loss=0
class counts:
29
0
probabilities: 1.000 0.000
Node number 5: 33 observations,
complexity param=0.01960784
predicted class=absent
expected loss=0.1818182
class counts:
27
6
probabilities: 0.818 0.182
left son=10 (12 obs) right son=11 (21 obs)
Primary splits:
Age
< 55
to the left, improve=1.2467530, (0 missing)
Start < 12.5 to the right, improve=0.2887701, (0 missing)
Number < 3.5 to the right, improve=0.1753247, (0 missing)
Surrogate splits:
Start < 9.5 to the left, agree=0.758, adj=0.333, (0 split)
Number < 5.5 to the right, agree=0.697, adj=0.167, (0 split)
Node number 10: 12 observations
predicted class=absent
expected loss=0
class counts:
12
0
probabilities: 1.000 0.000
Node number 11: 21 observations,
complexity param=0.01960784
predicted class=absent
expected loss=0.2857143
class counts:
15
6
3
ESIEA 5e année - 2012/2013
Frédéric Bertrand
probabilities: 0.714 0.286
left son=22 (14 obs) right son=23 (7 obs)
Primary splits:
Age
< 111 to the right, improve=1.71428600, (0 missing)
Start < 12.5 to the right, improve=0.79365080, (0 missing)
Number < 3.5 to the right, improve=0.07142857, (0 missing)
Node number 22: 14 observations
predicted class=absent
expected loss=0.1428571
class counts:
12
2
probabilities: 0.857 0.143
Node number 23: 7 observations
predicted class=present expected loss=0.4285714
class counts:
3
4
probabilities: 0.429 0.571
> pfit <- prune(fit, cp = fit$cptable[which.min(fit$cptable[,
+
"xerror"]), "CP"])
size of tree
2
5
●
●
0.059
0.014
1.1
1.0
0.8
0.9
●
0.7
X−val Relative Error
1.2
1.3
1
Inf
cp
4
ESIEA 5e année - 2012/2013
Frédéric Bertrand
Arbre de classification brut pour la cyphose
absent
|
64/17
Start>=8.5
Start< 8.5
absent
56/6
present
8/11
Start>=14.5
Start< 14.5
absent
29/0
absent
27/6
Age< 55
Age>=55
absent
12/0
absent
15/6
Age>=111
Age< 111
absent
12/2
present
3/4
Figure 1 – Arbre de classification brut tfit pour l’apparition d’une cyphose.
Arbre de classification élagué pour la cyphose
absent
|
64/17
Start>=8.5
Start< 8.5
absent
56/6
present
8/11
Figure 2 – Arbre de classification élagué tfit2 pour l’apparition d’une cyphose.
5
ESIEA 5e année - 2012/2013
Frédéric Bertrand
2
Kilométrage (4 points)
Pour prédire le kilométrage total qu’il est possible de parcourir avec une voiture
nous disposons de plusieurs variables :
• Price prix en dollars ;
• Country le pays d’origine du véhicule (Brazil, England, France, Germany, Japan,
Japan/USA, Korea, Mexico, Sweden, USA) ;
• Reliability une indication de fiabilité du modèle (Much worse < worse < average
< better < Much better) ;
• le type de véhicule (Compact, Large, Medium, Small, Sporty, Van).
1. Préciser l’action des deux fonctions suivantes.
> library(rpart)
> fit <- rpart(Mileage ~ Price + Country + Reliability +
+
Type, method = "anova", data = cu.summary)
2. Commenter les résultats suivants. Le graphique fourni représente les résultats
de la validation croisée.
> summary(fit)
Call:
rpart(formula = Mileage ~ Price + Country + Reliability + Type,
data = cu.summary, method = "anova")
n=60 (57 observations deleted due to missingness)
1
2
3
4
5
CP nsplit rel error
xerror
xstd
0.62288527
0 1.0000000 1.0506944 0.1801150
0.13206061
1 0.3771147 0.7850212 0.1530389
0.02544094
2 0.2450541 0.5810170 0.1369318
0.01160389
3 0.2196132 0.5760766 0.1311625
0.01000000
4 0.2080093 0.5840272 0.1314630
Node number 1: 60 observations,
complexity param=0.6228853
mean=24.58333, MSE=22.57639
left son=2 (48 obs) right son=3 (12 obs)
Primary splits:
Price
< 9446.5 to the right, improve=0.6228853, (0 missing)
Type
splits as LLLRLL,
improve=0.5044405, (0 missing)
Reliability splits as LLLRR,
improve=0.1263005, (11 missing)
Country
splits as --LRLRRRLL, improve=0.1243525, (0 missing)
Surrogate splits:
Type
splits as LLLRLL,
agree=0.950, adj=0.750, (0 split)
Country splits as --LLLLRRLL, agree=0.833, adj=0.167, (0 split)
Node number 2: 48 observations,
mean=22.70833, MSE=8.498264
6
complexity param=0.1320606
ESIEA 5e année - 2012/2013
Frédéric Bertrand
left son=4 (23 obs) right son=5 (25 obs)
Primary splits:
Type
splits as RLLRRL,
improve=0.43853830,
Price
< 12154.5 to the right, improve=0.25748500,
Country
splits as --RRLRL-LL, improve=0.13345700,
Reliability splits as LLLRR,
improve=0.01637086,
Surrogate splits:
Price
< 12215.5 to the right, agree=0.812, adj=0.609,
Country splits as --RRLRL-RL, agree=0.646, adj=0.261,
(0 missing)
(0 missing)
(0 missing)
(10 missing)
(0 split)
(0 split)
Node number 3: 12 observations
mean=32.08333, MSE=8.576389
Node number 4: 23 observations,
complexity param=0.02544094
mean=20.69565, MSE=2.907372
left son=8 (10 obs) right son=9 (13 obs)
Primary splits:
Type
splits as -LR--L,
improve=0.515359600, (0 missing)
Price
< 14962
to the left, improve=0.131259400, (0 missing)
Country splits as ----L-R--R, improve=0.007022107, (0 missing)
Surrogate splits:
Price < 13572
to the right, agree=0.609, adj=0.1, (0 split)
Node number 5: 25 observations,
complexity param=0.01160389
mean=24.56, MSE=6.4864
left son=10 (14 obs) right son=11 (11 obs)
Primary splits:
Price
< 11484.5 to the right, improve=0.09693168, (0 missing)
Reliability splits as LLRRR,
improve=0.07767167, (4 missing)
Type
splits as L--RR-,
improve=0.04209834, (0 missing)
Country
splits as --LRRR--LL, improve=0.02201687, (0 missing)
Surrogate splits:
Country splits as --LLLL--LR, agree=0.80, adj=0.545, (0 split)
Type
splits as L--RL-,
agree=0.64, adj=0.182, (0 split)
Node number 8: 10 observations
mean=19.3, MSE=2.21
Node number 9: 13 observations
mean=21.76923, MSE=0.7928994
Node number 10: 14 observations
mean=23.85714, MSE=7.693878
Node number 11: 11 observations
7
ESIEA 5e année - 2012/2013
Frédéric Bertrand
mean=25.45455, MSE=3.520661
> plotcp(fit)
size of tree
2
3
4
5
●
●
●
0.058
0.017
0.011
1.2
1
1.0
0.8
●
0.4
0.6
X−val Relative Error
●
Inf
0.29
cp
> par(mfrow = c(1, 2))
> rsq.rpart(fit)
Regression tree:
rpart(formula = Mileage ~ Price + Country + Reliability + Type,
data = cu.summary, method = "anova")
Variables actually used in tree construction:
[1] Price Type
Root node error: 1354.6/60 = 22.576
n=60 (57 observations deleted due to missingness)
CP nsplit rel error xerror
xstd
1 0.622885
0
1.00000 1.05069 0.18012
2 0.132061
1
0.37711 0.78502 0.15304
3 0.025441
2
0.24505 0.58102 0.13693
8
ESIEA 5e année - 2012/2013
Frédéric Bertrand
3
4
0.21961 0.57608 0.13116
0.20801 0.58403 0.13146
1.0
4 0.011604
5 0.010000
0.8
●
●
1.2
Apparent
X Relative
●
●
1.0
0.8
●
●
●
●
●
2
3
4
0.4
0.0
●
0.6
0.4
●
X Relative Error
0.6
●
0.2
R−square
●
●
●
0
1
2
3
4
0
Number of Splits
1
Number of Splits
3. Combien de noeuds intérieurs possède l’arbre tfit3 (Figure 3) ? Combien de
feuilles a l’arbre tfit4 (Figure 4) ?
2. En utilisant les deux arbres tfit3 (Figure 3) et tfit4 (Figure 4), déterminer
le kilométrage total parcouru par les trois véhicules dont les caractéristiques
sont :
Chevrolet Beretta 4
Eagle Summit 4
Toyota Corolla 4
Price
Country Reliability
Type
10320
USA Much worse Compact
8895
USA
better
Small
8748 Japan/USA Much better
Small
3. Comparer les valeurs prédites à la question 2. avec les valeurs réelles des trois
véhicules qui sont données ci-dessous :
53
4
18
Kilométrage
26
33
29
Quelles sont les meilleures prédictions ? En se basant sur ce constat, quel est
l’arbre que vous préférerez utiliser ?
9
ESIEA 5e année - 2012/2013
Frédéric Bertrand
4. Parmi toutes les variables explicatives proposées quelles sont celles qui sont
utilisées par le modèle que vous avez retenu à la question 3. ?
5. À l’aide des informations suivantes expliquer comment a été obtenu l’arbre
tfit4 à partir de l’arbre tfit3.
> pfit <- prune(fit, cp = fit$cptable[which.min(fit$cptable[,
+
"xerror"])])
Arbre de régression brut pour le kilométrage
24.58
|
n=60
Price>=9446
Price< 9446
22.71
n=48
32.08
n=12
Type=Larg,Medm,Van
Type=Cmpc,Smll,Sprt
20.7
n=23
24.56
n=25
Type=Larg,Van
Price>=1.148e+04
Type=Medm
19.3
n=10
Price< 1.148e+04
21.77
n=13
23.86
n=14
25.45
n=11
Figure 3 – Arbre de régression brut tfit3 pour le kilométrage total parcouru par
une voiture.
10
ESIEA 5e année - 2012/2013
Frédéric Bertrand
Arbre de régression élagué pour le kilométrage
24.58
|
n=60
Price>=9446
Price< 9446
22.71
n=48
32.08
n=12
Type=Larg,Medm,Van
Type=Cmpc,Smll,Sprt
20.7
n=23
24.56
n=25
Type=Larg,Van
Price>=1.148e+04
Type=Medm
19.3
n=10
Price< 1.148e+04
21.77
n=13
23.86
n=14
25.45
n=11
Figure 4 – Arbre de régression élagué tfit4 (Figure 4) pour le kilométrage total
parcouru par une voiture.
11
ESIEA 5e année - 2012/2013
Frédéric Bertrand
3
Règles d’association (4 points)
Nous allons déterminer s’il est possible de prévoir le destin d’une personne à bord
du Titanic lors de son naufrage à l’aide de trois informations : sa classe, son sexe et
son âge.
parameter specification:
confidence minval smax arem aval originalSupport support minlen
0.8
0.1
1 none FALSE
TRUE
0.1
1
maxlen target
ext
10 rules FALSE
algorithmic control:
filter tree heap memopt load sort verbose
0.1 TRUE TRUE FALSE TRUE
2
TRUE
apriori - find association rules with the apriori algorithm
version 4.21 (2004.05.09)
(c) 1996-2004
Christian Borgelt
set item appearances ...[0 item(s)] done [0.00s].
set transactions ...[10 item(s), 2201 transaction(s)] done [0.00s].
sorting and recoding items ... [9 item(s)] done [0.00s].
creating transaction tree ... done [0.00s].
checking subsets of size 1 2 3 4 done [0.00s].
writing ... [27 rule(s)] done [0.00s].
creating S4 object ... done [0.00s].
set of 27 rules
1
2
3
4
5
6
7
8
9
10
11
12
13
14
lhs
{}
{Class=2nd}
{Class=1st}
{Sex=Female}
{Class=3rd}
{Survived=Yes}
{Class=Crew}
{Class=Crew}
{Survived=No}
{Survived=No}
{Sex=Male}
{Sex=Female,
Survived=Yes}
{Class=3rd,
Sex=Male}
{Class=3rd,
Survived=No}
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
=>
rhs
{Age=Adult}
{Age=Adult}
{Age=Adult}
{Age=Adult}
{Age=Adult}
{Age=Adult}
{Sex=Male}
{Age=Adult}
{Sex=Male}
{Age=Adult}
{Age=Adult}
=> {Age=Adult}
support confidence
lift
0.9504771 0.9504771 1.0000000
0.1185825 0.9157895 0.9635051
0.1449341 0.9815385 1.0326798
0.1930940 0.9042553 0.9513700
0.2848705 0.8881020 0.9343750
0.2971377 0.9198312 0.9677574
0.3916402 0.9740113 1.2384742
0.4020900 1.0000000 1.0521033
0.6197183 0.9154362 1.1639949
0.6533394 0.9651007 1.0153856
0.7573830 0.9630272 1.0132040
0.1435711
0.9186047 0.9664669
=> {Survived=No} 0.1917310
0.8274510 1.2222950
=> {Age=Adult}
0.9015152 0.9484870
0.2162653
12
ESIEA 5e année - 2012/2013
Frédéric Bertrand
15 {Class=3rd,
Sex=Male}
16 {Sex=Male,
Survived=Yes}
17 {Class=Crew,
Survived=No}
18 {Class=Crew,
Survived=No}
19 {Class=Crew,
Sex=Male}
20 {Class=Crew,
Age=Adult}
21 {Sex=Male,
Survived=No}
22 {Age=Adult,
Survived=No}
23 {Class=3rd,
Sex=Male,
Survived=No}
24 {Class=3rd,
Age=Adult,
Survived=No}
25 {Class=3rd,
Sex=Male,
Age=Adult}
26 {Class=Crew,
Sex=Male,
Survived=No}
27 {Class=Crew,
Age=Adult,
Survived=No}
=> {Age=Adult}
0.2099046
0.9058824 0.9530818
=> {Age=Adult}
0.1535666
0.9209809 0.9689670
=> {Sex=Male}
0.3044071
0.9955423 1.2658514
=> {Age=Adult}
0.3057701
1.0000000 1.0521033
=> {Age=Adult}
0.3916402
1.0000000 1.0521033
=> {Sex=Male}
0.3916402
0.9740113 1.2384742
=> {Age=Adult}
0.6038164
0.9743402 1.0251065
=> {Sex=Male}
0.6038164
0.9242003 1.1751385
=> {Age=Adult}
0.1758292
0.9170616 0.9648435
=> {Sex=Male}
0.1758292
0.8130252 1.0337773
=> {Survived=No} 0.1758292
0.8376623 1.2373791
=> {Age=Adult}
0.3044071
1.0000000 1.0521033
=> {Sex=Male}
0.3044071
0.9955423 1.2658514
Nous constatons que compte tenu du problème posé, déterminer le destin d’une
personne à bord du paquebot, certaines des règles précédentes sont inintéressantes.
Par conséquent nous imposons au membre de droite de la règle de contenir une
information sur le destin de la personne : "Survived=No" ou "Survived=Yes".
> rules <- apriori(titanic.raw, parameter = list(minlen = 2,
+
supp = 0.005, conf = 0.8), appearance = list(rhs = c("Survived=No",
+
"Survived=Yes"), default = "lhs"), control = list(verbose = F))
> rules.sorted <- sort(rules, by = "lift")
> inspect(rules.sorted)
1
lhs
{Class=2nd,
Age=Child}
rhs
support confidence
=> {Survived=Yes} 0.010904134
13
lift
1.0000000 3.095640
ESIEA 5e année - 2012/2013
Frédéric Bertrand
2
{Class=2nd,
Sex=Female,
Age=Child}
3 {Class=1st,
Sex=Female}
4 {Class=1st,
Sex=Female,
Age=Adult}
5 {Class=2nd,
Sex=Female}
6 {Class=Crew,
Sex=Female}
7 {Class=Crew,
Sex=Female,
Age=Adult}
8 {Class=2nd,
Sex=Female,
Age=Adult}
9 {Class=2nd,
Sex=Male,
Age=Adult}
10 {Class=2nd,
Sex=Male}
11 {Class=3rd,
Sex=Male,
Age=Adult}
12 {Class=3rd,
Sex=Male}
=> {Survived=Yes} 0.005906406
1.0000000 3.095640
=> {Survived=Yes} 0.064061790
0.9724138 3.010243
=> {Survived=Yes} 0.063607451
0.9722222 3.009650
=> {Survived=Yes} 0.042253521
0.8773585 2.715986
=> {Survived=Yes} 0.009086779
0.8695652 2.691861
=> {Survived=Yes} 0.009086779
0.8695652 2.691861
=> {Survived=Yes} 0.036347115
0.8602151 2.662916
=> {Survived=No}
0.069968196
0.9166667 1.354083
=> {Survived=No}
0.069968196
0.8603352 1.270871
=> {Survived=No}
0.175829169
0.8376623 1.237379
=> {Survived=No}
0.191731031
0.8274510 1.222295
Nous constatons maintenant que certaines règles sont redondantes. Nous allons les
éliminer.
>
>
>
+
>
subset.matrix <- is.subset(rules.sorted, rules.sorted)
subset.matrix[lower.tri(subset.matrix, diag = T)] <- NA
redundant <- colSums(subset.matrix, na.rm = T) >=
1
which(redundant)
[1] 2 4 7 8
> rules.pruned <- rules.sorted[!redundant]
> inspect(rules.pruned)
lhs
1 {Class=2nd,
Age=Child}
rhs
support confidence
=> {Survived=Yes} 0.010904134
14
lift
1.0000000 3.095640
ESIEA 5e année - 2012/2013
Frédéric Bertrand
2 {Class=1st,
Sex=Female}
3 {Class=2nd,
Sex=Female}
4 {Class=Crew,
Sex=Female}
5 {Class=2nd,
Sex=Male,
Age=Adult}
6 {Class=2nd,
Sex=Male}
7 {Class=3rd,
Sex=Male,
Age=Adult}
8 {Class=3rd,
Sex=Male}
=> {Survived=Yes} 0.064061790
0.9724138 3.010243
=> {Survived=Yes} 0.042253521
0.8773585 2.715986
=> {Survived=Yes} 0.009086779
0.8695652 2.691861
=> {Survived=No}
0.069968196
0.9166667 1.354083
=> {Survived=No}
0.069968196
0.8603352 1.270871
=> {Survived=No}
0.175829169
0.8376623 1.237379
=> {Survived=No}
0.191731031
0.8274510 1.222295
Pour chacun des trois ensembles de règles précédents répondre aux question suivantes.
1. Combien de transactions ont-elles été étudiées ? Sur combien d’items portaientelles ?
2. Combien de règles ont-elles été trouvées ? Quelles étaient les valeurs de confiance
et de support que devaient vérifier ces règles ?
3. Quel est la(les) règle(s) ayant le lift le plus élevé ? Donner son(leur) support
et sa(leur) confiance.
Afin d’interpréter plus facilement les règles concernant la survie des enfants ou des
adultes en fonction de leur classe, nous spécifions également les termes qui peuvent
apparaı̂tre dans le membre de gauche de la règle.
> rules <- apriori(titanic.raw, parameter = list(minlen = 3,
+
supp = 0.002, conf = 0.2), appearance = list(rhs = c("Survived=Yes"),
+
lhs = c("Class=1st", "Class=2nd", "Class=3rd",
+
"Age=Child", "Age=Adult"), default = "none"),
+
control = list(verbose = F))
> rules.sorted <- sort(rules, by = "confidence")
> inspect(rules.sorted)
1
2
3
4
lhs
rhs
support confidence
lift
{Class=2nd,
Age=Child} => {Survived=Yes} 0.010904134 1.0000000 3.0956399
{Class=1st,
Age=Child} => {Survived=Yes} 0.002726034 1.0000000 3.0956399
{Class=1st,
Age=Adult} => {Survived=Yes} 0.089504771 0.6175549 1.9117275
{Class=2nd,
15
Frédéric Bertrand
ESIEA 5e année - 2012/2013
Age=Adult} => {Survived=Yes} 0.042707860
5 {Class=3rd,
Age=Child} => {Survived=Yes} 0.012267151
6 {Class=3rd,
Age=Adult} => {Survived=Yes} 0.068605179
0.3601533 1.1149048
0.3417722 1.0580035
0.2408293 0.7455209
4. Interpréter la règle 5.
5. Commenter (rapidement) les Figures 5, 6, 7, 8 et 9.
Scatter plot for 6 rules
1
3
2.5
confidence
0.8
2
0.6
1.5
0.4
1
0.02
0.04
0.06
0.08
lift
support
Figure 5 – Représentation graphique du support, de la confiance et du lift des
règles d’association sur la survie personnes en fonction de leur âge et de leur classe.
16
ESIEA 5e année - 2012/2013
Frédéric Bertrand
Grouped matrix for 6 rules
1 (Class=3rd +1)
1 (Class=3rd +1)
1 (Class=2nd +1)
1 (Class=1st +1)
1 (Class=1st +1)
LHS
1 (Class=2nd +1)
size: support
color: lift
RHS
{Survived=Yes}
Figure 6 – Représentation groupée des règles d’association sur la survie des personnes en fonction de leur âge et de leur classe.
17
ESIEA 5e année - 2012/2013
Frédéric Bertrand
Graph for 6 rules
width: support (0.003 − 0.09)
color: lift (0.746 − 3.096)
{Class=3rd,Age=Child}
{Class=2nd,Age=Adult}
{Class=2nd,Age=Child}
{Survived=Yes}
{Class=3rd,Age=Adult}
{Class=1st,Age=Child}
{Class=1st,Age=Adult}
Figure 7 – Représentation graphique des règles d’association sur la survie des
personnes en fonction de leur âge et de leur classe.
18
ESIEA 5e année - 2012/2013
Frédéric Bertrand
Graph for 6 rules
size: support (0.003 − 0.09)
color: lift (0.746 − 3.096)
Class=3rd
Age=Child
Survived=Yes
Age=Adult
Class=1st
Class=2nd
Figure 8 – Représentation graphique des règles d’association sur la survie des
personnes en fonction de leur âge et de leur classe en fonction des items possibles.
19
ESIEA 5e année - 2012/2013
Frédéric Bertrand
Parallel coordinates plot for 6 rules
Survived=Yes
Class=1st
Class=2nd
Age=Child
Age=Adult
Class=3rd
2
1
rhs
Position
Figure 9 – Graphique parallèle des règles d’association sur la survie des personnes
en fonction de leur âge et de leur classe.
20