Ordonner aléatoirement le data frame
Une façon d’effectuer une séparation apprentissage/test d’un jeu de données est de l’ordonner aléatoirement, puis de le scinder en deux ensembles. Cela garantit que l’ensemble d’apprentissage et l’ensemble de test sont tous deux des échantillons aléatoires et que les biais éventuels liés à l’ordre du jeu de données (par exemple, s’il était initialement trié par prix ou par taille) ne sont pas conservés dans les échantillons utilisés pour entraîner et évaluer vos modèles. Vous pouvez voir cela comme le fait de mélanger un jeu de cartes neuf avant de distribuer les mains.
Commencez par fixer une graine aléatoire afin que votre travail soit reproductible et que vous obteniez le même découpage aléatoire à chaque exécution de votre script :
set.seed(42)
Ensuite, utilisez la fonction sample() pour mélanger les indices de lignes du jeu de données diamonds. Vous pourrez ensuite utiliser ces indices pour réordonner le jeu de données.
rows <- sample(nrow(diamonds))
Enfin, utilisez ce vecteur aléatoire pour réordonner le jeu de données diamonds :
diamonds <- diamonds[rows, ]
Cet exercice fait partie du cours
Machine Learning avec caret en R
Instructions
- Fixez la graine aléatoire à 42.
- Créez un vecteur d’indices de lignes nommé
rows. - Réordonnez aléatoirement le data frame
diamondset affectez le résultat àshuffled_diamonds.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Set seed
# Shuffle row indices: rows
# Randomly order data