Comment utiliser la fonction createDataPartition() dans R



Vous pouvez utiliser la fonction createDataPartition() du package caret dans R pour partitionner un bloc de données en ensembles d’entraînement et de test pour la création de modèles.

Cette fonction utilise la syntaxe de base suivante :

createDataPartition(y, times = 1, p = 0,5, list = TRUE, …)

où:

  • y : vecteur de résultats
  • times : nombre de partitions à créer
  • p : pourcentage de données à utiliser dans l’ensemble d’entraînement
  • list : s’il faut stocker les résultats dans la liste ou non

L’exemple suivant montre comment utiliser cette fonction dans la pratique.

Exemple : utilisation de createDataPartition() dans R

Supposons que nous disposions d’un bloc de données dans R avec 1 000 lignes contenant des informations sur les heures étudiées par les étudiants et leur score correspondant à un examen final :

#make this example reproducible
set.seed(0)

#create data frame
df <- data.frame(hours=runif(1000, min=0, max=10),
                 score=runif(1000, min=40, max=100))

#view head of data frame
head(df)

     hours    score
1 8.966972 55.93220
2 2.655087 71.84853
3 3.721239 81.09165
4 5.728534 62.99700
5 9.082078 97.29928
6 2.016819 47.10139

Supposons que nous souhaitions adapter un modèle de régression linéaire simple qui utilise les heures étudiées pour prédire la note finale à l’examen.

Supposons que nous souhaitions entraîner le modèle sur 80 % des lignes du bloc de données et le tester sur les 20 % de lignes restantes.

Le code suivant montre comment utiliser la fonction createDataPartition() du package caret pour diviser le bloc de données en ensembles d’entraînement et de test :

library(caret)

#partition data frame into training and testing sets
train_indices <- createDataPartition(df$score, times=1, p=.8, list=FALSE)

#create training set
df_train <- df[train_indices , ]

#create testing set
df_test  <- df[-train_indices, ]

#view number of rows in each set
nrow(df_train)

[1] 800

nrow(df_test)

[1] 200

Nous pouvons voir que notre ensemble de données d’entraînement contient 800 lignes, ce qui représente 80 % de l’ensemble de données d’origine.

De même, nous pouvons voir que notre ensemble de données de test contient 200 lignes, ce qui représente 20 % de l’ensemble de données d’origine.

Nous pouvons également visualiser les premières lignes de chaque ensemble :

#view head of training set
head(df_train)

     hours    score
1 8.966972 55.93220
2 2.655087 71.84853
3 3.721239 81.09165
4 5.728534 62.99700
5 9.082078 97.29928
7 8.983897 42.34600

#view head of testing set
head(df_test)

      hours    score
6  2.016819 47.10139
12 2.059746 96.67170
18 7.176185 92.61150
23 2.121425 89.17611
24 6.516738 50.47970
25 1.255551 90.58483

Nous pouvons ensuite procéder à l’entraînement du modèle de régression à l’aide de l’ensemble d’entraînement et évaluer ses performances à l’aide de l’ensemble de test.

Ressources additionnelles

Les didacticiels suivants expliquent comment utiliser d’autres fonctions courantes dans R :

Comment effectuer une validation croisée K-Fold dans R
Comment effectuer une régression linéaire multiple dans R
Comment effectuer une régression logistique dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *