0% ont trouvé ce document utile (0 vote)
51 vues12 pages

Fascicule TP

Ce document présente un TP sur l'utilisation de R pour la science des données, incluant le téléchargement de R et RStudio, ainsi que des instructions sur la manipulation de données, l'exécution de calculs, et l'importation de fichiers. Il aborde également les statistiques descriptives et la gestion des objets dans R, ainsi que l'importation de packages nécessaires pour les analyses. Enfin, le document fournit des exemples pratiques et des exercices pour renforcer l'apprentissage des concepts présentés.

Transféré par

jeandavidsasso
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
51 vues12 pages

Fascicule TP

Ce document présente un TP sur l'utilisation de R pour la science des données, incluant le téléchargement de R et RStudio, ainsi que des instructions sur la manipulation de données, l'exécution de calculs, et l'importation de fichiers. Il aborde également les statistiques descriptives et la gestion des objets dans R, ainsi que l'importation de packages nécessaires pour les analyses. Enfin, le document fournit des exemples pratiques et des exercices pour renforcer l'apprentissage des concepts présentés.

Transféré par

jeandavidsasso
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Benoı̂t Cadre

Science des données


Université Houphouët-Boigny

TP1 : Introduction à l’utilisation de R

1 Téléchargement de R et RStudio
R est un langage informatique et un logiciel libre. C’est ce langage que nous utiliserons lors des TP
illustrant ce cours, car il est spécialement destiné à la science des données, dont font partie les do-
maines de la statistique et du machine learning. Pour le télécharger, suivez les instructions données à
l’url https://cran.r-project.org/bin/windows/base/ si vous êtes sous Windows, ou bien https://cran.r-
project.org/bin/macosx/ si vous êtes sous Mac.
RStudio est un environnement de R, plus simple et plus agréable à utiliser. Pour le télécharger, suivez
les instructions à l’url https://posit.co/download/rstudio-desktop/ et choisissez le système d’exploitation
Windows ou Mac.
Vous pouvez maintenant ouvrir RStudio. 4 sous-fenêtres distinctes s’ouvrent : la fenêtre de scripts en
haut à gauche, la console en bas à gauche, la fenêtre d’environnement et d’historique en haut à
droite et enfin la fenêtre des fichiers, des graphes, et d’aide en bas à droite.
Pour exécuter du code R écrit dans la fenêtre de scripts, appuyez sur le bouton Run. Le code s’affiche
dans la console R avec un prompt de la forme >.

2 Travail dans RStudio

Pour travailler avec R, on peut écrire son code dans un script. Mais il est plus simple d’utiliser l’outil
Markdown qui permet d’assurer un travail reproductible où le code, les résultats de l’éxécution du code
et les commentaires sont dans un document unique.
Il faut tout d’abord créer un répertoire de travail permettant de sauvegarder tout ce qui est lié au projet
(jeux de données, scripts, graphes etc). Pour cela, cliquez sur l’onglet Files puis R Markdown dans la
fenêtre en bas à droite, et saisissez un nom de fichier, par exemple essai.Rmd.
Le code R est dans des ”chunks”, par exemple dans le document essai.Rmd, nous écrivons (donc dans la
fenêtre de script) :
```{r}
2+2
log(5)
exp(7)
```
Cliquez ensuite sur le triangle vert qui apparaı̂t à la fin de la ligne commençant par ```{r}, les calculs
sont éxécutés ! Alternative, lorsque vous voulez lancer tous les calculs de entre les chunks, allez sur Run
dans la barre de la fenêtre, puis cliquez sur Run All.
Vous pouvez aussi sortir un document pdf, ce qui est particulièrement utile lorsque vous rédigez un
rapport par exemple. Pour cela, cliquez sur Knit, puis Knit to PDF (ou Word etc), le document essai.pdf
est alors répertorié dans la fenêtre en bas à droite.
Ces instructions simples, et celles qui suivent, peuvent bien sûr être directement effectuées dans la console.
Faites des tentatives ! Dorénavant, on n’écrira plus les commandes de balisage ```{r} et ```, on se
contentera comme dans la console de >.
3 Trouver de l’aide avec R
Pour avoir de l’aide sur la fonction mean par exemple, il suffit de taper
> help(mean)
Vous voyez alors apparaı̂tre dans la fenêtre en bas à droite toutes les caractéristiques de la fonction mean.
Lisez bien ces informations, elles vous seront utiles.

4 R est une (super) machine à calculer


4.1 Calculs simples
Exécutez et commentez :
> 2*2
> 2+2 # ceci est une addition
> pi
> exp(2)
> (1+3/5)*5
On notera en particulier que les chaı̂nes de caractères placées après # sont des commentaires (par exemple
pour expliquer le calcul ou la formule).

4.2 Calculs sur plusieurs valeurs


Si nous voulons faire une moyenne de notes, il faut pouvoir manipuler plusieurs valeurs ensemble (donc
un vecteur). Le vecteur est écrit sous la forme
> c(4,10,16)
Pour calculer la moyenne (mean) de 4, 10 et 16:
> mean(c(4,10,16))

4.3 Mettre en mémoire plusieurs valeurs


Nous souhaitons stocker un vecteur pour le réutiliser. Nous devons donc affecter des valeurs à un nom.
Exécuter et commenter ces ordres:
> ls() # liste des objets crees
> x <- pi
> ls() # x est cree
> print(x)
> x
> y=pi
> y
> ls()
> rm(y)
> ls() # y est elimine
> y <- pi
> x <- c(4,10,16)
> print(x)
> x
Conclusion: l’affectation crée l’objet ou écrase l’objet. L’affectation est réalisée par <- ou =.

Calculer le max (max), le min (min), la moyenne (mean), la longueur (length) et le résumé numérique
(summary) des nombres 2, 7, 10, π, 27.

2 TP de Science des données


5 R manipule des vecteurs
5.1 Calcul vectoriel
Additionnons 2 vecteurs:
> x <- c(4,10,16)
> y=c(-1,5,0)
> x
> y
> x+y
> -y
Commenter les deux derniers ordres ci-dessus et ceux ci-dessous
> x+2
> abs(y)
Intéressons nous à la multiplication. Exécuter et commenter:
> x*y
> x/y
> x^2
Une nouvelle opération :
> 1:3
> 1:10
> -1:5
> -(1:5)

5.2 Sélection dans un vecteur


Sélectionnons les coordonnées dans un vecteur:
> x[1]
> x[2]
> x[c(1,2,3)]
> x[1:3]
> x[c(2,2,1,3)]
> x[c(1:3,2,1)]
> x[-1]
> x[-c(1,2)]
> x[-(1:2)]
> objects() # pareil que ls()

5.3 Faire une boucle


Exécuter et commenter:
> for (i in 1:10) {
> print(i)
> }
Exécuter et commenter:
> resultat <- rep(0,10)
> resultat

3 TP de Science des données


Exécuter et commenter:

> resultat <- sample(1:6,50,replace=TRUE)


> resultat
> mean(resultat)

Exécuter et commenter:

> moyennes <- rep(0,100)


> for (i in 1:10) {
echantillon <- sample(1:6,50,replace=TRUE)
> moyennes[i] <- mean(echantillon)
> }
> moyennes

> resultat
> mean(resultat)

5.4 Chaı̂nes de caractères (pour aller plus loin)


> z=c("aze","fds")
> z[1]
> paste("m",1:3)
> paste("m",1:3,sep="")
> c(paste("m",1:3,sep=""),paste("p",1:4,sep="."),z)

6 Importation et manipulation de tableaux de données sur R


Inutile de s’ennuyer à saisir des milliers de nombres dans R, cela n’est pas fait pour cela. Nous allons
donc importer les données par le biais d’un fichier texte standard.

Nous allons importer le fichier revenus.csv sous R. Vous l’avez déjà téléchargé quelque part dans votre
ordinateur, nous allons le récupérer dans la fenêtre en bas à droite. Descendez dans votre arborescence
jusqu’à trouver le fichier, elle vous indique en haut le chemin pour récupérer le fichier, par exemple

~/Dropbox/COURS/L3 GEO/DONNEES/revenus.csv

Copiez ce chemin et rendez-vous sur la fenêtre de script. Puis écrivez (en adaptant votre chemin) :

> data <- read.table("~/Dropbox/COURS/L3 GEO/DONNEES/revenus.csv",


header=TRUE, sep=",")

Les données sont maintenant dans le fichier data qui a pour caractéristiques:

• un séparateur de colonnes “,”:sep="," (cela peut être une virgule, un trait etc)

• des noms/intitulé pour chaque variable (chaque colonne), la première ligne contient directement les
données header=TRUE

• les options header, sep, dec (décimales) dépendent du fichier à importer (et des choix de l’utilisateur)

Vérifiez l’importation et manipulez ce jeu de données :

> data ## UNIQUEMENT pour des tableaux de petite taille


> summary(data) ## tout le temps

4 TP de Science des données


Remarques
• Attention, le séparateur décimal peut être “.”.
• En statistique, les variables sont en colonnes, et les individus (observations) sont en lignes; pensez
à toujours organiser vos données selon ce schéma.
• Les tableaux issus des importations sont appelés des data-frame (ie tableau/cadre de données)
On peut isoler les variables de data avec $ :

> data$X2002
> summary(data$2002)

On peut créer un sous-tableau avec, par exemple, seulement 3 colonnes :

> cbind(data$X2002,data$X2007,data$X2005)

7 Classe des objets sur R


R recense différentes classes de données, parmis lesquelles :

• logical (booléen), de valeurs TRUE, FALSE ou T, F


• numeric (nombre réel)
• character (chaı̂ne de caractères), par exemple ’hello’ ou ”K”
• factor (facteur), pour représenter les variables catégorielles

On peut tester la classe d’un objet x avec

> class(x)

Il est aussi possible de convertir un objet x d’une classe à une autre grâce aux commandes

> as.logical(x)
> as.numeric(x)
> as.factor(x)

8 Importation des packages sur R


Sur R comme sur les autres langages informatiques, un package est un ensemble de fonctions, de jeux
de données et de documentation permettant de compléter les fonctionnalités du système de base ou d’en
ajouter de nouvelles. On trouve des packages R pour toutes les méthodes de la science des données, qu’elles
soient récentes ou plus anciennes, comme par exemple les méthodes de pénalisation, les forêts d’arbres, la
sélection de variables etc. Tous les packages sont installés sur le site du CRAN : https://cran.r-project.org
Pour télécharger un package R, par exemple le package bestglm, rendez-vous dans la console et tapez

> install.packages("bestglm")

Avant d’utiliser une fonction de ce package, il faut le charger dans le script :

> library(bestglm)

Dans le cours et les TP qui suivent, nous auront besoin des packages suivants : bestglm, leaps,
glmnet, pROC, questionr, randomForest, boot, caret, rpart, rpart.plot, doParallel. Chargez-
les tous dès maintenant pour vous simplifier les tâches futures !

5 TP de Science des données


9 Statistiques descriptives sous R
9.1 Cas d’une variable qualitative
Nous allons rentrer des données à la main pour une variable qualitative. Cette variable représente
l’appartenance à un groupe (parmi 3 groupes) et prend 3 modalités g1, g2 et g3. Les 2 premiers individus
sont dans le groupe 1, les 3 suivants dans le groupe 2 et le dernier dans le groupe 3:
> ybrut <- c("g1","g1","g2","g2","g2","g3")
> print(ybrut)
> summary(ybrut)
Que fait le dernier le dernier ordre ci-dessus ? Nous devons transformer ce vecteur (de caractères) en
variable qualitative (nommée factor sous R):
> y <- factor(ybrut)
Que font les ordres suivants ?
> levels(y)
> nlevels(y)
> table(y)
> sum(table(y))
> table(y)/sum(table(y))*100
Tracer les effectifs de chaque modalité dans un diagramme en barre:
> barplot(table(y))
Tracer les pourcentages de chaque modalité dans un diagramme en barre:
> barplot(table(y)/sum(table(y))*100,ylab="pourcentages",xlab="groupes")
Que font les options xlab et ylab ?
Copier le dernier graphique dans un document word ou openoffice.
Que fait le résumé numérique d’une variable qualitative ?
> summary(y)

9.2 Cas d’une variable quantitative discrète


Représentons une variable quantitative discrète: le nombre d’enfant par famille. Nous allons rentrer des
données à la main les valeurs de cette variable. La première famille possède 5 enfants, la second n’en a
pas, la troisième en possède 2 enfants, la quatrième 2 et la cinquième n’en a pas.
> y <- c(5,0,2,2,0)
Que font les commandes suivantes
> unique(y)
> sort(unique(y))
> table(y)
Le diagramme en barre des effectifs est le diagramme suivant
> plot(sort(unique(y)),table(y),type="h",ylim=c(0,max(table(y))))
En général, dès que les valeurs possibles sont assez nombreuses (par exemple 7 ou 10 ou plus) la variable
quantitative discrète est assimilée à une variable quantitative continue. La distinction quantitatif discret
ou continue n’existe pas sous R, les deux sont des variables numériques (numeric).

6 TP de Science des données


Ferme code de la ferme où se situe la parcelle de mesure
Pays pays où se situe la parcelle de mesure
Site région où se situe la parcelle de mesure
Taille taille de la parcelle
Foret surface des forêts dans la parcelle
Foret˙brulee surface des forêts brûlées dans la parcelle
... surface des sols nus dans la parcelle
Sols˙nus
Fourmis Nombre d’espèces de fourmis observées dans la parcelle
...
Plantes˙p10m Nombre d’espèces de fourmis observées d’arbre de plus de 10m
Naturalite Indice de naturalité (pourcentage)

Table 1: Variables mesurées sur les parcelles.

9.3 Statistiques descriptives sur un jeu de données réelles


9.3.1 Importation des données
Importons les données du fichier deforestation.csv :

> deforestation <- read.table("~/Dropbox/ABIDJAN/DONNEES/deforestation.csv",


sep=";",header=TRUE)

Il s’agit d’un tableau de données regroupant différentes variables mesurées sur différents sites géographiques
(situés dans une ferme, dans un site, dans un pays donné.) Sur chaque site sont mesurés les car-
actéristiques du paysage, la biodiversité (nombre d’espèces différentes pour un taxon donné) et les car-
actéristiques de la ferme.
Le tableau 1 récapitule toutes les variables mesurées.
Résumons les données :

> summary(deforestation)

Les noms de variables sont obtenues par:

> names(deforestation)

Chaque variable peut-être utilisée (ou affichée) grâce à son nom ou à son numéro de colonne

> deforestation[,1]
> deforestation[,"Ferme"]
> ## affectons la variable dans y:
> y <- deforestation[,"Ferme"]
> ## affichons le resultat
> y
> print(y)

Représenter graphiquement les variables Pays et Site et calculer les tables d’effectifs par modalité de
chaque variable.

9.3.2 Une variable quantitative continue


Représentons une variable quantitative continue. Prenons l’exemple de la variable Naturalite (la 22ème).

> y <- deforestation[,22]

7 TP de Science des données


Que fait le résumé numérique d’une variable quantitative (continue) ?

> summary(y)

Trouver sur les deux graphiques ci-dessous la différence et expliquez la.

> hist(y,freq=TRUE)
> hist(y,freq=FALSE)

Que font toutes les options pour ce graphique

> hist(y,freq=FALSE,breaks=13,xlab="Naturalite",main="Histogramme")

Que fait cette option

> hist(y,freq=FALSE,breaks=c(2,4,6,8,10,15))

Expliquer tous les ordres ci-dessous

> boxplot(y,xlab="",ylab="Naturalite")
> mean(y)
> abline(h=mean(y))
> quantile(y)
> median(y)
> abline(h=median(y),col=2)

Conclusion: l’histogramme est tracé grâce à hist avec l’option freq=FALSE.

9.3.3 Deux variables quantitatives continues


Par défaut R trace des points (type="p") aux coordonnées fournies (ci-dessous l’ordonnée est la variable
Naturalite et l’abscisse la variable Foret). Détailler le rôle des options

> plot(Naturalite~Foret,data=deforestation)
> plot(Naturalite~Foret,data=deforestation,pch="+")
> plot(Naturalite~Foret,data=deforestation,col=2,pch="+")

Traçons des lignes

> plot(Naturalite~Foret,data=deforestation,type="l")

Qu’a t-on fait ?


Que fait d’après vous

> plot(Naturalite~Foret,data=deforestation)
> coeff <- coef(lm(Naturalite~Foret,data=deforestation))
> abline(coeff,col=3)

9.3.4 Deux variables qualitatives: tableau de contingence


Utilisez l’ordre suivant

> table(deforestation[,"Pays"],deforestation[,"Site"])

Que renvoie t-il ?

8 TP de Science des données


9.3.5 Données de déforestation (exercice)
1. Calculer la moyenne empirique des variables Naturalite et Foret.

2. Pour ces mêmes variables donner leurs quartiles empiriques (quantile).

3. Pour ces mêmes variables les représenter par un boxplot (boxplot).

4. Pour ces mêmes variables calculer leur variance empirique (var).

5. Représenter graphiquement chacune des variables par un histogramme (hist).

TP2 : Le modèle de régression linéaire multiple

Exercice 1 – Le fichier eucalyptus.txt recense des hauteurs (ht) et circonférences (circ) d’eucalyptus.
On veut expliquer avec un modèle linéaire gaussien la hauteur en fonction de la circonférence.

1. Représenter le nuage de points, avec en abcisse la circonférence et la hauteur en ordonnées. En


déduire 3 types de modèles. Faire des summary et des tests de nullité des coefficients supplémentaires
entre modèles emboı̂tés (fonction anova).

2. Comparer les modèles par l’erreur VC holdout (avec un échantillon d’apprentissage de taille 1200,
le reste en échantillon test).

3. Comparer les modèles par l’erreur VC K-fold.

4. Etudier (graphiquement) les résidus du modèle retenu. Est-il validé ?

5. Donner un intervalle de confiance pour la hauteur lorsque la circonférence de l’arbre vaut 50 cm.

Exercice 2 – On veut expliquer le poids (Weight) par 15 variables explicatives, notamment l’âge, la taille,
la taille du poignet... Les données sont mesurées sur 50 individus et recensés dans le fichier bodyfat.txt.
Construire, étudier et comparer des modèles linéaires dans lesquels le poids est expliqué par les variables
explicatives du fichier.

TP3 : Sélection de modèles parcimonieux

Exercice 1 – La base de données state de R comprend les mesures sur 50 états des USA de la population
(Population) en 1975, du revenu par individu (Income) en 1974, de l’espérance de vie moyenne (Life.Exp)
sur la période 1969-1971... (commande : state¡-data.frame(state.x77,row.names=state.abb)). On veut
expliquer Life.Exp par les autres variables explicatives, avec un modèle le plus parcimonieux possible.

1. Construire le modèle reg faisant intervenir toutes les variables explicatives. Quelles informations
donne summary (reg) ?

2. Calculer le meilleur modèle selon l’AIC et le BIC, sortir leurs summary

3. Que donnent les méthodes pas à pas (backward et forward, AIC et BIC) ?

4. Quelles sont les variables explicatives pertinentes ?

5. Valider le modèle retenu

9 TP de Science des données


6. Pour les valeurs Population=4250, Frost=80, HS.Grad=75 et Murder=8, quelle est l’espérance de
vie prédite ?

TP4 : Régression pénalisée

Exercice 1 – On veut expliquer le poids (Weight) par 15 variables explicatives, par exemple l’âge, la
taille, la taille du poignet... Les données sont mesurées sur 50 individus et recensées dans le fichier
bodyfat.txt.

1. Construire le modèle incluant toutes les variables explicatives, puis 2 modèles sélectionnés avec des
méthodes pas à pas.

2. Construire les modèles ridge et lasso. Représenter l’évolution des valeurs des coefficients en fonction
de λ.

3. Compter le nombre de coefficients nuls obtenus par lasso.

4. Comparer les modèles avec leurs erreurs VC K-fold (avec K = 10). Quel modèle retenir ?

5. Construire le modèle elastic net avec K = 10 et 10 valeurs de α. Quelles valeurs de α et λ ont été
retenues ? Calculer son erreur VC et comparer avec les autres modèles.

6. Proposer des améliorations des modèles précédents en reprenant les modèles issus d’une sélection
pas à pas, puis en appliquant les méthodes ridge, lasso et elastic net.

7. Calculer leurs erreurs VC K-fold et conclure

Exercice 2 – On veut étudier la présence d’un anticorps (lpsa) et l’expliquer par 8 autres variables
cliniques. Le fichier prostate.txt contient les valeurs de lpsa et des 8 autres variables pour 97 individus.
Construire des modèles, dont des modèles avec interactions, expliquant lpsa, et étudier leurs performances.

TP5 : Régression logistique

Exercice 1 – Chaque ligne du fichier german.data.txt représente un client d’une société de crédit (pour
une explication du jeu de données, voir le fichier ExplicationsfichierGerman.txt). Les 20 premières
colonnes sont les variables explicatives et la dernière colonne donne la valeur associée pour la variable
à expliquer (qui vaut 1 lorsque le client est bon selon les critères de la société, 2 sinon). Les variables
explicatives sont soit numériques (e.g. la colonne 2), soit qualitatives (e.g. colonne 3 dans laquelle, par
exemple, A33 signifie que le client n’a pas remboursé un crédit passé dans les temps impartis)

1. Séparer l’échantillon en un échantillon d’apprentissage de taille 800 et le reste en échantillon test.

2. Avec l’échantillon d’apprentissage, construire un premier modèle logistique en ajustant la variable


à expliquer sur toutes les variables explicatives. Quelles informations donne summary ?

3. Construire deux autres modèles en utilisant une procédure de sélection pas à pas descendante et
pas à pas ascendante avec le critère AIC et le critère BIC. Que donnent leurs summary ?

4. Calculer les erreurs VC K-fold des modèles. Conclusion ?

5. Estimer les taux de mal classés des modèles avec l’échantillon test. Qu’observe-t-on ?

10 TP de Science des données


6. Dresser les tables de confusion pour chacun des modèles.

7. Comparer les modèles à l’aide des courbes ROC et des AUC.

8. Calculer et interpréter les odds ratio.

Exercice 2 – Un chef d’entreprise souhaite vérifier la qualité de ces machines en fonction de l’âge et de la
marque des moteurs. Il dispose d’une variable binaire Y (1 si le moteur a déjà connu une panne, 0 sinon),
d’une variable quantitative age repésentant l’âge du moteur et d’une variable qualitative à 3 modalités
marque représentant la marque du moteur. Ces données sont recensées dans le fichier panne.txt.
1. On souhaite tout d’abord expliquer la variable Y à partir des deux autres variables. Ecrire le modèle
logistique. A partir des différentes sorties proposées par R, discuter de la pertinence du modèle.

2. On étudie maintenant le lien entre Y et la variable age uniquement. Construire le modèle logis-
tique. Représenter graphiquement la probabilité estimée de tomber en panne en fonction de l’âge.
Comparer cette probabilité avec la fréquence des pannes en fonction de l’âge.

3. On enrichit le modèle précédent en introduisant la variable age2 . Comparer ce nouveau modèle


avec celui construit à la question précédente. Représenter graphiquement la probabilité estimée
de tomber en panne en fonction de l’âge. Est-il intéressant d’introduire la variable age3 dans le
modèle ?

4. Inclure age2 dans le modèle de la question (1.) et comparer ces modèles.

Exercice 3 – Il s’agit d’expliquer la présence/absence d’une maladie cardiovasculaire (chd) par 9 vari-
ables. On dispose d’un échantillon de n = 462 individus. Les données sont récoltées dans le fichier
SAheart du package bestglm (commande data(SAheart,package=”bestglm”))
1. Construire des modèles (dont des modèles avec interaction), et sélectionner le meilleur d’entre eux.

2. Calculer les odds ratio et les interpréter.

TP6 : Arbres de classification/régression

Exercice 1 – On travaille sur le fichier ptitanic disponible dans le package rpart.plot. Les données
décrivent 1309 passagers selon pclass (classe tarifaire), survived (indique si le passager a survécu), sex,
age, sibsp (nb de frères... à bord), parch (nb enfants ou parents à bord).
1. Compter le nombre de survivants de l’échantillon total.

2. Supprimer les individus qui comportent au moins un ”NA” (fonction ptitanic=na.omit(ptitanic))


On veut étudier les facteurs explicatifs de survived sur un échantillon d’apprentissage de 90% de la
taille totale.

3. Construire et représenter l’arbre maximal avec minsplit=5 et cp=0. Donner le graphe des erreurs
en fonction de la taille des sous-arbres.

4. Construire et représenter l’arbre optimal obtenu par élagage de l’arbre précédent. Quels sont les
facteurs significatifs ?

5. Donner les probabilités de survie et décès des individus de l’échantillon test et prédire leur classe.
Comparer ces probabilités à la réalité observée.

11 TP de Science des données


6. Dresser la table de confusion pour l’arbre optimal sur l’échantillon test et calculer le taux de mauvais
classement.

7. Comparer ce modèle d’arbre avec un modèle de régression logistique.

TP7 : Forêts de classification/régression

Exercice 1 – L’objectif est de construire un anti-spam capable, en analysant l’occurence de certains


mots du mail, de décider s’il est ou non un spam. On utilise pour cela sur le fichier spam de la librairie
kernlab. Ce fichier contient 58 colonnes, répertoriant 4601 mails analysés sous avis d’expert. La colonne
type décrit le type du mail, i.e. spam ou nonspam, et les autres colonnes recensent les occurences pour
chacune des 57 variables explicatives.

1. Construire un modèle logistique expliquant type par toutes les variables explicatives. Que remarque-
t-on ? Calculer son erreur 10-fold. Peut-on améliorer les performances du prédicteur en sélectionnant
les variables explicatives par une méthode pas à pas ?

2. Construire les modèles ridge et lasso. Quelles sont leurs erreurs 10-fold ?

3. Enfin, construire un modèle de forêt d’arbre et calculer son erreur 10-fold. Quel prédicteur choisissez-
vous ?

4. La forêt d’arbre a été calculée selon la valeur par défaut de la variable m (mtry en R). Mais celle-ci
peut ne pas rendre le modèle optimal, nous allons donc étudier si il est ou non possible d’améliorer
la forêt d’arbre en optimisant ce paramètre. Il faut pour cela paralléliser le calcul, avec la librairie
doParallel :

> registerDoParallel(makePSOCKcluster(4))

> rf.mtry <- train(type~ .,data=spam,method="rf",trControl=cv,tuneGrid=GRILLE SUR mtry)

> on.exit(stopCluster(makePSOCKcluster(4)))

5. Peut-on améliorer ainsi le prédicteur par forêt d’arbre ?

6. Quelles sont les variables explicatives importantes pour expliquer le type d’un mail ?

Exercice 2 – Le jeu de données bank.depot.terme.txt été obtenu auprès de l’UC Irvine Machine Learning
Repository et contient des informations relatives à une campagne de marketing direct d’une institution
bancaire portugaise et à ses tentatives pour inciter ses clients à souscrire un dépôt à terme. Il contient
plus de 10000 lignes (individus) et 14 colonnes (13 variables explicatives et une variable à expliquer).
La variable à expliquer, notée y, indique si le client a souscrit un dépôt à terme. C’est une variable
binaire, prenant comme valeurs ”yes” ou ”no”. Les 13 variables explicatives sont soit qualitatives, soit
quantitatives. Etudier des modèles expliquant y par les variables explicatives. Quelles sont les variables
explicatives importantes ?

12 TP de Science des données

Vous aimerez peut-être aussi