You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Il n'est pas aisé de se souvenir du nom de chaque fonction que l'on peut employer avec `chart()` ou avec `ggplot()`. Nous vous proposons pour ce faire une syntaxe alternative. La fonction `gg$` associée au pipe natif de R `|>` permet d'obtenir une liste de toutes les fonctions disponibles que l'on peut ajouter au graphique. Le pipe `|>` va remplacer le `+` et on ajoute avant `geom_point()` l'instruction. `gg$`
- Soit vous utilisez une autre famille de fonctions, appelées "speedy" et qui portent le même nom que les fonctions "tidy" et avec une syntaxe similaire la plupart du temps, mais préfixées d'un "s"? comme `sselect()`, `smutate()`, `sgroup_by()`, `ssummarise()`...
298
298
299
-
```{r, echo = TRUE, eval = FALSE}
299
+
```{r, echo=TRUE, eval=FALSE}
300
300
# Assignation classique avec fonctions "speedy" => version conseillée
Dans un cas comme celui-ci, il est possible d'analyser plus en détail au delà de cet effet saturant, mais pour cela, il faut l'éliminer d'abord. Une façon de faire consiste à diviser chaque variable numérique par l'une d'entre elles que l'on considère comme plus représentative de l'effet saturant. Ici, c'est la taille globale des crabes, et nous pouvons utiliser, par exemple, la largueur de la carapace `width` comme référence. Faites cette transformation.
Il est possible de créer une multitude de classifieurs. Afin de déterminer le classifieur le plus adapté, nous avons besoin d'évaluer sa qualité. L'approche la plus adaptée est d'employer des métriques comme le taux de reconnaissance globale, la précision, le rappel.... Ces métriques se calculent sur base d'une matrice de confusion. Ces métriques sont également employées afin de comparer les classifieurs entre eux.
32
+
Il est possible de créer une multitude de classifieurs différents à partir d'un même jeu de données. Afin de déterminer le classifieur le plus adapté, nous avons besoin d'évaluer la qualité de chacun d'eux. Pour ce faire, nous utilisons des métriques comme le taux de reconnaissance globale, la précision, le rappel.... Ces métriques se calculent sur base d'une matrice de confusion.
33
33
34
-
Ce tutoriel a pour objectif
34
+
Ce tutoriel a pour objectifs :
35
35
36
-
-Choisir la bonne métrique
37
-
- Appréhender les matrices de confusion.
38
-
-Appréhender les principales métriques grâce aux calculs à la main de ces dernières à partir d'une matrice de confusion 2 x 2.
36
+
-Apprendre à choisir la bonne métrique
37
+
- Appréhender les matrices de confusion
38
+
-Calculer les principales métriques à partir d'une matrice de confusion 2 x 2
39
39
40
40
## Choix des métriques
41
41
42
42
```{r qu_metrics}
43
-
#question("Quelle est la métrique la plus adpatée afin de déterminer le nombre d'items d'intéret trouvé parmi l'ensemble des items ?",
44
-
# answer("Rappel", correct = TRUE),
45
-
# answer("Spécificité"),
46
-
# answer("Taux de faux positifs"),
47
-
# answer("Précision"),
48
-
# answer("Score F"),
49
-
# answer("Rappel"),
50
-
# allow_retry = TRUE, random_answer_order = TRUE,
51
-
#)
52
-
53
-
question("Quelle est la métrique la plus adpatée afin de mettre en avant le nombre d'items d'intéret trouvé parmi l'ensemble des items ?",
54
-
answer("Rappel", correct = TRUE, message = "Le rappel permet de connaitre quelle est la fraction de classe X trouvé par l'ordinatuer parmi l'ensemble des items."),
55
-
answer("Précision", message = "La précision permet de connaitre quelle est la fraction effectivement de classe X que l’ordinateur a classé comme X ?"),
56
-
answer("Spécificité", message = "La spécificité est l'opposé du rappel. On s'intéresse à la vrai négatif."),
57
-
answer("Score F", message = "Il s'agit d'une métrique qui combine la précision et le rappel."),
58
-
allow_retry = TRUE, random_answer_order = TRUE,
59
-
correct = "Bravo ! Vous avez trouvé la métrique la plus adaptée.",
43
+
question("Quelle est la métrique la plus adaptée pour s'assurer que le classifieur trouve un maximum d'items d'une classe donnée ?",
44
+
answer("Rappel", correct = TRUE,
45
+
message = "Le rappel permet de connaitre quelle est la fraction de classe X trouvée par l'ordinateur parmi l'ensemble des items appartenant effectivement à cette classe."),
46
+
answer("Précision",
47
+
message = "La précision permet de connaitre quelle est la fraction que l'ordinateur a classé comme X et qui appartient effectivement à cette classe."),
48
+
answer("Spécificité",
49
+
message = "La spécificité est l'opposé du rappel. On s'intéresse aux vrais négatifs, donc, les items non classés comme X et qui n'en sont pas."),
50
+
answer("Score F",
51
+
message = "Il s'agit d'une métrique qui combine la précision et le rappel."),
52
+
allow_retry = TRUE,
53
+
random_answer_order = TRUE,
54
+
correct = "Vous avez trouvé la métrique la plus adaptée.",
60
55
incorrect = "Attention, Ce n'est pas la bonne métrique.",
61
56
submit_button = "Soumettre une réponse",
62
57
try_again_button = "Resoumettre une réponse")
63
58
```
64
59
65
-
## Le taux de reconnaissance global
60
+
## Taux de reconnaissance global
66
61
67
-
Ces métriques peuvent sembler abstraites. En effectuant un exemple à la main, on peut les appréhender plus facilement. Intéressez-vous pour débuter au taux de reconnaissance globale.
62
+
Ces métriques peuvent sembler abstraites. En les calculant à la main, on peut les appréhender plus facilement. Intéressez-vous, pour débuter, au taux de reconnaissance globale.
knitr::kable(mconf, caption = "Matrice de confusion dont les colonnes représentent la classification par ordinateur et les lignes la classification manuelle.")
76
71
```
77
72
78
-
Sur base de la matrice de confusion fictive ci-dessus, calculez le taux de reconnaissance global du groupe B. Il s'agit de la première étape. Il faut définir les vrais positifs, les faux positifs, les faux négatifs et les vrais négatifs. Ensuite, il faut ensuite calculer la métrique d'intérêt.
73
+
Sur base de la matrice de confusion fictive ci-dessus, calculez le taux de reconnaissance global du groupe B. Il s'agit de la première étape. Il faut définir les vrais positifs, les faux positifs, les faux négatifs et les vrais négatifs. Ensuite, il faut calculer la métrique d'intérêt.
79
74
80
-
```{r conf1_h2, exercise = TRUE}
81
-
tp <- ___ # TRUE POSITIVE, vrai positif
82
-
fp <- ___ # FALSE POSITIVE, faux positif
83
-
fn <- ___ # FALSE NEGATIVE, faux négatif
84
-
tn <- ___ # TRUE NEGATIVE, vrai négatif
85
-
# calcul de la métrique
86
-
conf <- ___
87
-
conf
75
+
```{r conf1_h2, exercise=TRUE}
76
+
tp <- ___ # vrai positif
77
+
fp <- ___ # faux positif
78
+
fn <- ___ # faux négatif
79
+
tn <- ___ # vrai négatif
80
+
# Calcul de la métrique
81
+
acc <- ___
82
+
acc
88
83
```
89
84
90
85
```{r conf1_h2-hint-1}
91
86
tp <- 160
92
87
fp <- 90
93
88
fn <- 80
94
89
tn <- 440
95
-
# calcul de la métrique
96
-
conf <- ___
97
-
conf
90
+
# Calcul de la métrique
91
+
acc <- ___
92
+
acc
98
93
## Attention, le prochain indice est la solution ##
knitr::kable(mconf, caption = "Matrice de confusion dont les colonnes représentent la classification par ordinateur et les lignes la classification manuelle.")
134
129
```
135
130
136
-
Sur base de cette nouvelle matrice de confusion ci-dessus, calculez le **taux de vrais positifs** du groupe C.
131
+
Sur base de la nouvelle matrice de confusion ci-dessus, calculez le **taux de vrais positifs** du groupe C.
137
132
138
133
```{r conf2_h2, exercise = TRUE}
139
134
tp <- ___
140
135
fp <- ___
141
136
fn <- ___
142
137
tn <- ___
143
-
# calcul de la métrique
144
-
conf <- ___
145
-
conf
138
+
# Calcul de la métrique
139
+
tpr <- ___
140
+
tpr
146
141
```
147
142
148
143
```{r conf2_h2-hint-1}
149
144
tp <- 140
150
145
fp <- 10
151
146
fn <- 100
152
147
tn <- 190
153
-
# calcul de la métrique
154
-
conf <- ___
155
-
conf
148
+
# Calcul de la métrique
149
+
tpr <- ___
150
+
tpr
156
151
## Attention, le prochain indice est la solution ##
157
152
```
158
153
@@ -162,18 +157,19 @@ tp <- 140
162
157
fp <- 10
163
158
fn <- 100
164
159
tn <- 190
165
-
# calcul de la métrique
166
-
conf <- tp / (tp + fn)
167
-
conf
160
+
# Calcul de la métrique
161
+
tpr <- tp / (tp + fn)
162
+
tpr
168
163
```
169
164
170
165
```{r conf2_h2-check}
171
166
grade_result(
172
-
pass_if(~ identical(.result, (140/(140 + 100))), "La référence est l'ensemble des positifs, soit les vrais positifs, mais aussi les faux négatifs.")
knitr::kable(mconf, caption = "Matrice de confusion dont les colonnes représentent la classification par ordinateur et les lignes la classification manuelle.")
185
181
```
186
182
187
-
Sur base de cette matrice de confusion ci-dessus, calculez la **spécificité** du groupe A.
183
+
Sur base de la matrice de confusion ci-dessus, calculez la **spécificité** du groupe A.
188
184
189
185
```{r conf3_h2, exercise = TRUE}
190
186
tp <- ___
191
187
fp <- ___
192
188
fn <- ___
193
189
tn <- ___
194
-
# calcul de la métrique
195
-
conf <- ___
196
-
conf
190
+
# Calcul de la métrique
191
+
specif <- ___
192
+
specif
197
193
```
198
194
199
195
```{r conf3_h2-hint-1}
200
196
tp <- 90
201
197
fp <- 50
202
198
fn <- 0
203
199
tn <- 300
204
-
# calcul de la métrique
205
-
conf <- ___
206
-
conf
200
+
# Calcul de la métrique
201
+
specif <- ___
202
+
specif
207
203
## Attention, le prochain indice est la solution ##
208
204
```
209
205
@@ -213,18 +209,19 @@ tp <- 90
213
209
fp <- 50
214
210
fn <- 0
215
211
tn <- 300
216
-
# calcul de la métrique
217
-
conf <- tn / (tn + fp)
218
-
conf
212
+
# Calcul de la métrique
213
+
specif <- tn / (tn + fp)
214
+
specif
219
215
```
220
216
221
217
```{r conf3_h2-check}
222
218
grade_result(
223
-
pass_if(~ identical(.result, (300/(300 + 50))), "À l'inverse ici, on considère comme référence l'ensemble des négatifs qui ne sont pas du groupe A, donc les vrais négatifs mais aussi les faux positifs.")
219
+
pass_if(~ identical(.result, (300 / (300 + 50))),
220
+
"À l'inverse ici, on considère comme référence l'ensemble des négatifs, donc ceux qui ne sont pas du groupe A, c'est-à-dire les vrais négatifs additionnés des faux positifs.")
224
221
)
225
222
```
226
223
227
-
## La précision
224
+
## Précision
228
225
229
226
```{r, echo=FALSE, message=FALSE}
230
227
mconf <- dtf(
@@ -242,19 +239,19 @@ tp <- ___
242
239
fp <- ___
243
240
fn <- ___
244
241
tn <- ___
245
-
# calcul de la métrique
246
-
conf <- ___
247
-
conf
242
+
# Calcul de la métrique
243
+
prec <- ___
244
+
prec
248
245
```
249
246
250
247
```{r conf4_h2-hint-1}
251
248
tp <- 10
252
249
fp <- 150
253
250
fn <- 30
254
251
tn <- 260
255
-
# calcul de la métrique
256
-
conf <- ___
257
-
conf
252
+
# Calcul de la métrique
253
+
prec <- ___
254
+
prec
258
255
## Attention, le prochain indice est la solution ##
259
256
```
260
257
@@ -264,20 +261,21 @@ tp <- 10
264
261
fp <- 150
265
262
fn <- 30
266
263
tn <- 260
267
-
# calcul de la métrique
268
-
conf <- tp / (tp + fp)
269
-
conf
264
+
# Calcul de la métrique
265
+
prec <- tp / (tp + fp)
266
+
prec
270
267
```
271
268
272
269
```{r conf4_h2-check}
273
270
grade_result(
274
-
pass_if(~ identical(.result, (10/(10+150))), "Ne pas se tromper car cette fois la référence est l'ensemble des items classés par l'ordinateur comme B, soit les vrais et les faux positifs.")
271
+
pass_if(~ identical(.result, (10 / (10 + 150))),
272
+
"Ne pas se tromper car cette fois la référence est l'ensemble des items classés par l'ordinateur comme B, soit les vrais et les faux positifs.")
275
273
)
276
274
```
277
275
278
276
## Conclusion
279
277
280
-
Même si la réalisation de ces calculs de métrique peut vous sembler simpliste. Ils vous ont permis d'appréhender un peu mieux ces métriques qui sont des éléments cruciaux dans la mise en place d'un classifieur. À chaque fois que vous devrez étudier la qualité d'un classifieur, débuter par définir les métriques les plus pertinentes.
278
+
Ces calculs de métriques à la main peut vous sembler simpliste. Ils vous ont permis d'appréhender un peu mieux ces métriques qui sont des éléments cruciaux dans l'évaluation d'un classifieur. À chaque fois que vous devrez étudier la qualité d'un classifieur, commencez par définir les métriques les plus pertinentes par rapport à vos objectifs.
0 commit comments