Qu'est-ce que la validation croisée exactement?
D'après ce que j'ai compris de Google et d'autres articles, comme celui-ci À quoi sert la validation croisée? et Qu'est-ce que la validation croisée? . Je comprends que la validation croisée (k-fold) signifie diviser les données en ($k-1$) formation et 1 kit de test. En d'autres termes, il est utilisé pour trouver la précision du modèle.
Alors, est-ce que cela signifie que si je fais une validation croisée, je n'ai pas besoin de diviser mes données en ensemble de données d'entraînement et de test? Aussi, dites si je fais (en r):
model = train(target~., data = data, method = "glmnet",
trControl = trainControl("cv", number = 10),
tuneLength = 10
)
ce code me trouvera le meilleur modèle dans ces 10 essais, puis quand je fais la prédiction, j'utilise le meilleur modèle?
Réponses
La validation croisée est une forme spéciale de fractionnement des données en données de formation et de test, dans laquelle ce fractionnement ne se produit pas seulement une fois mais un certain nombre $n$ des fois.
Aussi, dis si je fais (en r)
Il existe un package très puissant qui peut être chargé dans R, appelé caret. caretfournit la fonction très puissante trainqui est utilisée dans votre exemple de code. caretprend en effet beaucoup de travail pour trouver le meilleur ensemble de paramètres (à partir d'une grille de combinaisons possibles) pour l'apprentissage automatique; y compris via validation croisée. Vous n'aurez pas à fractionner les données à la main, mais un fractionnement se produira.
ce code me trouvera le meilleur modèle
il trouvera la meilleure combinaison de paramètres à partir d'une grille donnée de combinaisons de paramètres en essayant. Avant d'utiliser un outil puissant comme trainvous devez bien comprendre ses options, comprendre également comment influencer la grille de paramètres essayée.
Heureusement caretvient avec de grandes explications. Commencer ici:https://topepo.github.io/caret/model-training-and-tuning.html ou mieux commencer au début de ce livre.