Exercice Machine learning (avec correction)

Author

Cefil-2024

Published

June 24, 2024

1 Partie 1 : Classification supervisée

Mise en situation 1

Vous avez été embauché par le CIVB (comité interprofessionnel des vins de Bordeaux) pour mettre en place un algorithme qui permet de prévoir la qualité du vin en fonction de sa composition chimique. Vous disposez d’une base de données brute avec des références de vins de Bordeaux, chacune ayant été évaluée par des professionnel avec une note entre 1 et 10. A partir de 6, le vin est considéré comme bon, en dessous de 6, il est considéré comme mauvais.

Etape 1

Dans l’onglet “données” : cliquer pour explorer la base de données sur les vins.

1.1 Combien d’individus dans la base de donnéees brute vins ?

La base de données brute “vins” est constituées de 4 898 individus : ces individus sont des références de vins qui ont été goûtés et notés par des professionels. Ils sont caractérisés par une note et leur composition chimique.

1.2 Quelle est la variable à prédire ? De quel type est-elle ?

La variable à prédire est dichotomique (ou booléenne) : il s’agit de la variable “target”, qui prend la valeur “bon” si le vin est bon et mauvais si le vin est “mauvais”.

1.3 Les modalités de la variable à prédire ont-elles le même poids ?

Non : parmi les 4 898 références goûtés par des professionnels, 3 258 sont bons (66,5%) et 1 640 sont mauvais (33,5 %).

1.4 Combien y a t il de variables prédictives ? De quel type sont-elles ?

Il y a 11 variables quantitatives continues qui sont les compositions chimique du vin.

1.5 Y a-t-il des données manquantes ?

Aucune donnée manquante dans ce jeu de données : c’est très rare d’avoir une base de donnée brute aussi propre !

Etape 2

Dans l’onglet “préparation” : conserver 70 % de la base brute pour l’entraînement.

1.6 A quoi vont servir les bases d’entraînement et de validation ?

La base d’entraînement et la base de validation sont utilisées pendant la phase d’apprentissage : les modèles testés (regression logistique, arbre de classification, forêt..) sont ajustés sur la base d’entraînement (70% de la base brute dans notre exemple) et les performances de ces modèles sont mesurés à partir des prévisions de ces modèles sur la base de validation (15% de la base brute).

1.7 A quoi sert la base de test ?

Les individus appartenant à la base de test ne vont pas du tout servir à choisir le modèle le plus performant : ce sont des données complètement extérieures, qui permettent de se mettre en condition réelle avant la généralisation (ou la mise en production) de l’algorithme retenu le plus performant.

1.8 Quel est le poids des modalités de la variable à prédire dans la base d’entraînement ? Comparer avec la répartition dans la base brute.

Le poids de chacune des modalités est le même dans la base d’entraînement que dans la base brute, ce qui signifie que le tirage des individus a été contraint.

1.9 Les variables prédictives ont-elles toutes les mêmes ordres de grandeur ?

Non, par exemple, la variable quantitative “total.sulfur.dioxide” a une moyenne de 138,0 alors que le “Ph” a une moyenne de 3,2.

Etape 3

Dans l’onglet “préparation”, appliquer la recette suivante sur la base d’entraînement : “centrer-réduire les quantitatives” (en anglais : step_normalize).

1.10 Quels sont les effets de cette “recette” sur les variables prédictives de la base d’entraînement ?

Les moyennes des variables quantitatives prédictives sont toutes très proches de 0 et les écart-types sont égaux à 1. Les variables ont maintenant les mêmes ordres de grandeur.

Etape 4

Dans l’onglet “modèle”, choisir la régression logistique et ajuster le modèle sur la base d’entraînement.

1.11 Quelle est la différence entre une estimation et une prévision ?

Les estimations sont calculés directement sur la base de donnée ayant servie à construire le modèle : dans notre exemple, il s’agit de la base d’entraînement. C’est à partir de ces estimations que sont construits des indicateurs de qualité du modèle comme l’AIC (ou le BIC). Mais les estimations ne permettent pas d’évaluer la capacité prédictive d’un modèle, autrement dit sa capacité à généraliser.

Une prévision est calculé sur une base n’ayant pas du tout servi à construire le modèle : dans notre exemple, il s’agit de la base de validation. C’est à partir des prévisions qu’on peut évaluer la capacité prédictive d’un modèle.

1.12 A partir de quel seuil de probabilité défini par défaut, un vin est estimé comme bon ou mauvais ?

Par défaut, si la probabilité d’une modalité est supérieure à 0,5, c’est cette valeur qui est estimée. Ce seuil peut en théorie être modifié.

Etape 5

Dans l’onglet “Validation”, évaluer la performance du modèle retenu précédemment (modèle 1 : régression logistique sur la base centrée réduite).

1.13 Combien d’individus sont classés dans la table de confusion ? A quelle base ces individus appartiennent-ils ?

735 individus sont classés dans la table de confusion : elle a été établie à partir des prévisions sur la base de validation. Autrement dit, la regression logistique ajustée sur la base d’entraînement a servi à faire des prévisions sur la base de validation. Ces prévisions sont confrontées aux vraies valeurs, ce qui permet de les classer dans 4 catégories.

1.14 A partir de la table de confusion, recalculer les valeurs des trois indicateurs suivants : exactitude, sensibilité, spécificité.

Exactitude :

\[\frac{439 + 127}{735} = 77\% \]

Sensibilité :

\[ \frac{439}{439 + 50} = 90 \% \]

Spécificité :

\[ \frac{127}{119 + 127} = 52 \% \]

1.15

1.16 Compléter le tableau suivant avec les performances de ce première modèle.

Performances de la regression logistique
Modèle testé Exactitude Sensibilité Spécificité AUC
Modèle 1 : Regression logistique 77 % 90 % 52 % 0,83
Etape 6

Revenir sur l’onglet “modèle” : choisir l’arbre et ajuster votre modèle sur les données d’entraînement (modèle 2 sur la base centrée réduite).

1.17 Combien de variables prédictives sont utilisées par l’arbre de classification pour faire des estimations sur la base d’entraînement ?

3 variables seulement sur les 11 variables disponibles : alcohol, free.sulfur.dioxide et volatile.acidity. Il s’agit des 3 variables les plus discriminantes selon l’algorithme CART.

1.18 Quelle variable a été choisie en premier pour séparer la population en deux ? Quel est la valeur seuil ?

C’est la variable alcohol qui est la plus discriminante. La valeur seuil choisir par l’algorithme CART est -0,14.

1.19 Combien de feuilles cet arbre produit-il ? Quelle est sa profondeur ?

Cet arbre n’est pas très profond (2 nvieaux seulement). Il n’y a que 3 noeuds (splits), qui aboutissent à 4 groupes finaux (4 feuilles). Peut-être faudrait-il essayer de le complexifier davantage pour améliorer son pouvoir de prédiction. Mais ce n’est pas possible avec cette version de ASTA.

Etape 7

Dans l’onglet “Validation”, évaluer les performances du modèle 2 sur la base centrée réduite.

1.20 Compléter le tableau suivant avec les performances de ce deuxi-me modèle.

Modèle testé Exactitude Sensibilité Spécificité AUC
Modèle 1 : Regression logistique 77 % 90 % 52 % 0,83
Modèle 2 : arbre de classification 76 % 80 % 67 % 0,77

1.21 Si vous privilégiez l’exactitude, quel modèle est le plus performant ? Si vous privilégiez la spécificité, quel modèle faut-il choisir ?

La regression logistique est plus performante au regard de l’exactitude. Mais si on privilégie la spécificité, autrement dit on ne veut pas que notre modèle dise qu’un vin est mauvais à tort, alors il vaut mieux utiliser l’arbre de classification.

Etape 8

Ajuster la forêt aléatoire sur la base d’entraînement (dans l’onglet validation) et evaluer la performance du modèle.

1.22 Combien d’arbres ont été construits par défaut par l’algorithme ?

Par défaut, l’algorithme construit 500 arbres de classification (Numbers of trees dans la sortie R).

1.23 De combien de variables sont constitués chaque arbre de classification ? Est-ce que ce sont à chaque fois les mêmes variables ?

Chaque arbre est constitué par défaut de 3 variables tirées aléatoirement (Mtry = 3). Il y a donc une partie aléatoire qui va faire varier les indicateurs.

1.24 Noter les indicateurs de performance de ce troisième modèle dans le tableau comparatif ci-dessous :

Modèle testé Exactitude Sensibilité Spécificité AUC
Modèle 1 : Regression logistique 77 % 90 % 52 % 0,83
Modèle 2 : arbre de classification 76 % 80 % 67 % 0,77
Modèle 3 : forêt aléatoire 83 % 90 % 70 % 0,89
Etape 9

Ajuster le KNN (modèle des plus proches voisins) sur la base d’entraînement (dans l’onglet validation) et évaluer la performance du modèle.

1.25 Quelle valeur par défaut de K a été retenue dans le modèle des plus proches voisins ?

Par défaut, la valeur retenue par l’algorithme est 5.

1.26 Noter les indicateurs dans le tableau comparatif des modèles

Modèle testé Exactitude Sensibilité Spécificité AUC
Modèle 1 : Regression logistique 77 % 90 % 52 % 0,83
Modèle 2 : arbre de classification 76 % 80 % 67 % 0,77
Modèle 3 : forêt aléatoire 83 % 90 % 70 % 0,89
Modèle 4 : KNN 78 % 86 % 63 % 0,82

1.27 Quel modèle est le plus performant selon les différents indicateurs de performance retenus ?

Selon tous les indicateurs de performance, la forêt aléatoire avec 500 arbres et 3 variables sélectionnées aléatoirement, appliquée sur la base de données centrée réduite est la plus performante. C’est donc ce modèle qu’on va utiliser pour généraliser.

Etape 10

Sélectionner le modèle le plus performant que vous avez retenu précemment (dans l’onglet “modèle”), et dans l’onglet “généralisation”, ajuster le modèle.

1.28 La base de test a-t-elle été utilisée pour construire le modèle final ?

Non. Le modèle final s’ajuste sur la base d’entraînement (70 % des données) et sur la base de validation (15 % des données) : on intègre les individus de la base de validation pour améliorer la qualité de l’ajustement (plus on a d’individus, mieux le modèle apprend). On a donc retenu une méthode ensembliste (la forêt aléatoire) pour faire nos prédictions sur des données qui n’ont pas du tout servi à construire le modèle. Les performances sont similaires : nous voilà rassurés ! La mise en production devrait bien se passer.

Mise en situation 2

Vous êtes le gouverneur de Grandile, la plus grande île de l’archipel de Ceph’ile. Vous disposez d’une base de données avec des informations sur 5 418 ménages habitants à Grandile, et notamment vous savez si ce ménage est pauvre ou non. Vous voulez être en capacité de prédire si un nouveau ménage est pauvre à partir des informations socio-économiques que vous aurez collectées.

Comparaison des performances des modèles sur la base de données Grandile (modèle ajusté sur 70% de la base brute, les indicateurs sont calculés à partir des prédictions sur la base de validation).
Modèle testé Exactitude Sensibilité Spécificité AUC
Modèle 1 : Regression logistique 99 % 100 % 98 % 1
Modèle 2 : arbre de classification 99 % 100 % 94 % 0,98
Modèle 3 : forêt aléatoire 99 % 100 % 98 % 1
Modèle 4 : KNN 99 % 99 % 98 % 1

1.29 Y a t il un modèle nettement plus performant que les autres pour prédire si un ménage est pauvre à Grandile ?

Non : tous les modèles ont des performances excellentes, grace aux variables revenu_disponible et PCS.

1.30 Quel autre critère peut entrer en jeu dans le choix d’un modèle avant de le généraliser ?

Dans ce cas, autant choisir un modèle économe en ressources informatiques. Le plus économe est la regression logistique, qui n’a besoin d’enregistrer que les paramètres associés à chaque variable pour généraliser. Pour être encore plus économe, il faudrait essayer de retirer des variables explicatives, et voir si il conserve ses performances prédictives.

2 Partie 2 : Régression supervisée

Mise en situation 1

Vous cherchez à prévoir le niveau de pollution à Rennes à partir de donnnées sur les températures, nébulosité et le niveau de pollution de la veille. Le niveau de pollution se mesure par le taux d’ozone, les relevés de températures se font à plusieurs heures de la journée, tout comme la mesure de la nébulosité (durée d’ensoleillement). Dans la base de données ozone, vous disposez de plus d’un millier de relevés qui ont été effectués, à partir desquels vous devez élaborer le modèle de prévision le plus performant possible.

Etape 1

Dans l’onglet “données” : cliquer pour explorer la base de données ozone.

2.1 Combien de relevés ont été effectués ?

1 366 relevés ont été effectués à Rennes, et constituent la base brute.

2.2 Quelle est la variable à prédire ?

C’est la variable target, qui correspond à la concentration maximum d’ozone.

2.3 Combien y a t il de variables prédictives ? De quels types sont-elles ?

Il y a 12 variables prédictives, qui sont toutes quantitatives.

2.4 Y a t il des données manquantes dans la base brute ?

Oui, 2 valeurs manquantes sur la variables Ne18.

Etape 2

Dans l’onglet “préparation” : conserver 70 % de la base brute pour l’entraînement.

2.5 Y a t il des données manquantes dans la base d’entraînement ?

Oui également : ça signifie qu’elles ont été tirées aléatoirement dans la base d’entraînement (elles ne sont donc pas dans les bases de validation et de test).

Etape 3

Dans l’onglet “modèle”, choisir la forêt aléatoire et ajuster le modèle sur la base d’entraînement.

2.6 Regarder le message dans la console de R Studio. Que s’est-il passé ?

La fonction qui fait tourner l’algorithme sur les forêts aléatoires ne peut pas tourner si il y a des valeurs manquantes. Il faut donc appliquer une transformation sur la base d’entraînement avant d’appliquer l’algorithme.

2.7 Que faire quand il y a des valeurs manquantes dans vos variables prédictives ? (plusieurs possibilités)

On peut faire des imputations, avec différentes méthodes (si on ne veut vraiment pas perdre d’individus).

On peut aussi supprimer des individus (des lignes), si on a un échantillon suffisamment important et si il n’y a pas trop de valeurs manquantes.

Etape 4

Dans l’onglet préparation, choisir la recette “imputation avec la moyenne” que vous appliquez sur la base d’entraînement.

2.8 Y a t il encore des données manquantes ?

Non : ce qui signifie que la méthode d’imputation a bien marché.

Etape 5

Dans l’onglet modèle, choisir à nouveau la forêt aléatoire et ajuster le modèle sur la base d’entraînement.

2.9 Combien d’arbres de regression ont été générés par cette méthode ? De combien de variables sont-ils constitués ?

500 arbres, avec 3 variables tirées aléatoirement à chaque fois.

2.10 Calculer le RSS, le MSE et le RMSE à partir de l’estimation et de la vraie valeur observée des deux premiers individus du tableau seulement.

Les valeurs ne sont pas forcément les mêmes pour les estimations parce qu’il y a deux niveaux d’aléatoires dans les forêts (tirage bootstrap des individus + tirage aléatoire des variables).

\[ RSS = (56-44,5)² + (41,2 - 27,5)²=319,94 \]

\[ MSE = \frac{319,94}{2} = 159,97 \]

\[ RMSE = \sqrt{159,97} = 12,6 \]

Etape 6

Dans l’onglet validation, évaluer les performances de ce premier modèle (forêt aléatoire) appliqué sur la base transformée (imputation des valeurs manquantes)

2.11 Noter les indicateurs de performance de ce premier modèle dans le tableau comparatif ci-dessous :

Modèle testé RSS MSE RMSE
Modèle 1 : Forêt aléatoire 39 362 192 13,9 0,71

2.12 Ce modèle a t il de bonnes capacités prédictives ?

Difficile à dire : on peut regarder le RMSE, qui nous dit qu’en moyenne, les prévisions s’éloignent de 13,9 des vraies valeurs. Le R² est assez proche de 1. Ce qui nous intéresse, c’est de savoir si ce modèle est le meilleur.

Etape 7

Dans les onglets modèles et validation, ajuster les autres algorithmes sur la base d’entraînement, et évaluer leurs performances.

2.13 Compléter le tableau ci-dessous avec les performances des autres modèles :

Modèle testé sur la base avec imputation par la moyenne RSS MSE RMSE
Modèle 1 : Forêt aléatoire1 39 362 192 13,9 0,71
Modèle 2 : Arbre de regression 56 900 278 16,7 0,59
Modèle 3 : Régression linéaire 45 416 222 14,9 0,68
Modèle 4 : KNN 46 744 228 15,1 0,66

2.14 Quel algorithme est le plus performant pour prédire ?

C’est la forêt aléatoire qu regard de tous les indicateurs.

Etape 8

Dans l’onglet “généralisation”, ajuster la forêt aléatoire sur la base d’entraînement et la base de validation.

2.15 Le R² se rapproche de 1. Etait-ce prévisible ?

Non ce n’était pas prévisible. On a ajusté la forêt aléatoire sur davantage d’individus (entraînement + validation), ce qui a pour effet d’améliorer l’apprentissage. Cependant, la base de test n’a jamais été utilisé ni pour estimer les paramètres, ni pour choisir le modèle le plus performant. Donc les performances sont moindres.

Mise en situation 2

En tant que gouverneur de Grandile, vous souhaitez disposer du maximum d’information sur vos résidents. Notamment, vous voulez connaître leurs revenus disponibles, information que les Grandiliens ne sont pas toujours disposés à donner.

A partir de la base de données grandile, votre mission est de choisir l’algorithme le plus performant pour prédire le revenu disponible d’un ménage à partir des autres informations socio-économiques.

2.16 Compléter le tableau pour comparer les performances des algorithmes.

Modèle testé sur la base avec imputation par la moyenne RMSE
Modèle 1 : Forêt aléatoire2 1 475 0,99
Modèle 2 : Arbre de regression 4 431,9 0,95
Modèle 3 : Régression linéaire 3 552,4 0,97
Modèle 4 : KNN 1 508,5 0,99

2.17 Quel algorithme est le plus performant ?

La forêt aléatoire, comme d’habitude ! Mais le KNN avec K = 5 marche bien aussi. Les performances sont proches de celles de la forêt aléatoire, et ce modèle est moinds gourmand en ressources.

2.18 Ajuster ce modèle sur la base d’entraînement et de validation puis généraliser le sur des données qu’il n’a jamais vu (les données de test). Que peut-on conclure ?

La base de test n’a jamais été utilisée pour ajuster ou choisir le modèle, donc il est possible que les performances des indicateurs soient moindres que dans l’étape précédente avec le même modèle. Cependant, le modèle apprend sur davantage d’individus (entraînement + validation), donc il apprend mieux. Ce qu’on constate, c’est que les performances sont comparables : elles sont excellentes !

Footnotes

  1. Les valeurs ne sont pas forcément les mêmes.↩︎

  2. Les valeurs ne sont pas les mêmes.↩︎