Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment diviser les données en formation & #038; Ensembles de tests dans R (3 méthodes)



Souvent, lorsque nous adaptons des algorithmes d’apprentissage automatique à des ensembles de données, nous divisons d’abord l’ensemble de données en un ensemble d’apprentissage et un ensemble de test.

Il existe trois manières courantes de diviser les données en ensembles d’entraînement et de test dans R :

Méthode 1 : utiliser Base R

#make this example reproducible
set.seed(1)

#use 70% of dataset as training set and 30% as test set
sample <- sample(c(TRUE, FALSE), nrow(df), replace=TRUE, prob=c(0.7,0.3))
train  <- df[sample, ]
test   <- df[!sample, ]

Méthode 2 : utiliser le package caTools

library(caTools)

#make this example reproducible
set.seed(1)

#use 70% of dataset as training set and 30% as test set
sample <- sample.split(df$any_column_name, SplitRatio = 0.7)
train  <- subset(df, sample == TRUE)
test   <- subset(df, sample == FALSE)

Méthode 3 : utiliser le package dplyr

library(dplyr)

#make this example reproducible
set.seed(1)

#create ID column
df$id <- 1:nrow(df)

#use 70% of dataset as training set and 30% as test set 
train <- df %>% dplyr::sample_frac(0.70)
test  <- dplyr::anti_join(df, train, by = 'id')

Les exemples suivants montrent comment utiliser chaque méthode en pratique avec l’ ensemble de données iris intégré dans R.

Exemple 1 : diviser les données en ensembles de formation et de test à l’aide de Base R

Le code suivant montre comment utiliser la base R pour diviser l’ensemble de données iris en un ensemble d’entraînement et de test, en utilisant 70 % des lignes comme ensemble d’entraînement et les 30 % restants comme ensemble de test :

#load iris dataset
data(iris)

#make this example reproducible
set.seed(1)

#Use 70% of dataset as training set and remaining 30% as testing set
sample <- sample(c(TRUE, FALSE), nrow(iris), replace=TRUE, prob=c(0.7,0.3))
train  <- iris[sample, ]
test   <- iris[!sample, ]

#view dimensions of training set
dim(train)

[1] 106   5

#view dimensions of test set
dim(test)

[1] 44 5

À partir du résultat, nous pouvons voir :

  • L’ensemble de formation est un bloc de données de 106 lignes et 5 colonnes.
  • Le test est un bloc de données de 44 lignes et 5 colonnes.

Étant donné que la base de données d’origine comportait 150 lignes au total, l’ensemble d’apprentissage contient environ 106/150 = 70,6 % des lignes d’origine.

Nous pouvons également afficher les premières lignes de l’ensemble d’entraînement si nous le souhaitons :

#view first few rows of training set
head(train)

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
8          5.0         3.4          1.5         0.2  setosa
9          4.4         2.9          1.4         0.2  setosa

Exemple 2 : diviser les données en ensembles de formation et de test à l’aide de caTools

Le code suivant montre comment utiliser le package caTools dans R pour diviser l’ensemble de données iris en un ensemble d’entraînement et de test, en utilisant 70 % des lignes comme ensemble d’entraînement et les 30 % restants comme ensemble de test :

library(caTools)

#load iris dataset
data(iris)

#make this example reproducible
set.seed(1)

#Use 70% of dataset as training set and remaining 30% as testing set
sample <- sample.split(iris$Species, SplitRatio = 0.7)
train  <- subset(iris, sample == TRUE)
test   <- subset(iris, sample == FALSE)

#view dimensions of training set
dim(train)

[1] 105   5

#view dimensions of test set
dim(test)

[1] 45 5

À partir du résultat, nous pouvons voir :

  • L’ensemble de formation est un bloc de données de 105 lignes et 5 colonnes.
  • Le test est un bloc de données de 45 lignes et 5 colonnes.

Exemple 3 : diviser les données en ensembles de formation et de test à l’aide de dplyr

Le code suivant montre comment utiliser le package caTools dans R pour diviser l’ensemble de données iris en un ensemble d’entraînement et de test, en utilisant 70 % des lignes comme ensemble d’entraînement et les 30 % restants comme ensemble de test :

library(dplyr)

#load iris dataset
data(iris)

#make this example reproducible
set.seed(1)

#create ID variable
iris$id <- 1:nrow(iris)

#Use 70% of dataset as training set and remaining 30% as testing set 
train <- iris %>% dplyr::sample_frac(0.7)
test  <- dplyr::anti_join(iris, train, by = 'id')

#view dimensions of training set
dim(train)

[1] 105 6

#view dimensions of test set
dim(test)

[1] 45 6

À partir du résultat, nous pouvons voir :

  • L’ensemble de formation est un bloc de données de 105 lignes et 6 colonnes.
  • Le test est un bloc de données de 45 lignes et 6 colonnes.

Notez que ces ensembles de formation et de test contiennent une colonne « id » supplémentaire que nous avons créée.

Assurez-vous de ne pas utiliser cette colonne (ou de la supprimer entièrement des blocs de données) lors de l’ajustement de votre algorithme d’apprentissage automatique.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans R :

Comment calculer MSE dans R
Comment calculer le RMSE dans R
Comment calculer le R-carré ajusté en R

Ajouter un commentaire

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