R: Comment découper un bloc de données dans la formation, la validation et de test de jeux?
Je suis en utilisant la R de faire l'apprentissage de la machine. La suite de la norme machine de la méthodologie de l'apprentissage, je voudrais aléatoirement répartis mes données dans la formation, la validation, et les ensembles de données de test. Comment puis-je le faire dans la R?
Je sais qu'il y a des questions connexes sur la façon de diviser en 2 ensembles de données (par exemple, ce post), mais ce n'est pas évident de le faire pour les 3 split ensembles de données. Par ailleurs, la bonne approche est d'utiliser les 3 ensembles de données (y compris un ensemble de validation pour régler votre hyperparameters).
OriginalL'auteur stackoverflowuser2010 | 2016-03-17
Vous devez vous connecter pour publier un commentaire.
Cette approche liée pour les deux groupes (à l'aide de
floor
) ne s'étend naturellement à trois. Je feraisPour vérifier les résultats:
Avec
set.seed(1)
exécuter juste avant, le résultat ressemble àDe données.les cadres peuvent être accessibles comme
res$test
oures[["test"]]
.cut
est l'outil standard pour le partitionnement fondé sur des actions.floor()
de le rendre possible pour certaines lignes de se perdre. Etsplit
retour d'une liste est bien sûr très agréable.OriginalL'auteur Frank
En suivant l'approche présentée dans ce post, voici de travail R code de diviser un dataframe en trois nouveaux dataframes pour les essais, la validation et de test. Les trois sous-ensembles sont non-cumul.
OriginalL'auteur stackoverflowuser2010
Certains de ces semblent trop complexes, voici une façon simple à l'aide de l'échantillon de diviser un ensemble de données en 3, ou même un nombre arbitraire de jeux.
Si vous préférez un code réutilisable:
OriginalL'auteur pedram
Voici une solution avec un 60, 20 , 20 split qui assure également qu'il n'y a pas de chevauchement. Cependant, il est une difficulté à s'adapter à la scission. Si quelqu'un pouvait m'aider, je l'apprécie
vous avez raison! Je l'ai posté ici stackoverflow.com/questions/41880453/...
Ok, merci. Vous aurez probablement envie de supprimer cette réponse alors.
OriginalL'auteur Sev
Je pense que mon approche est la plus simple:
Premier, il divise les données dans 70% des données d'entraînement et le reste (idxNotTrain).
Ensuite, le reste est à nouveau découpé en une validation du jeu de données (33%, 10% de l'ensemble des données) et le reste (les données de test, de 66%, 20% de la totalité des données).
OriginalL'auteur Julian
Laissez-moi savoir si cela fonctionnerait. Juste une version simplifiée
OriginalL'auteur Kalyan