Cela peut être peut-être une question stupide, mais lors de la génération d'un modèle avec caret et en utilisant quelque chose comme LOOCV
ou (plus précisément) LGOCV
, quel est l'avantage de diviser les données en trains et ensembles de test si c'est essentiellement ce que l'étape de validation croisée fait de toute façon?
J'ai lu certaines des questions connexes et ils ont suggéré que certaines des méthodes de validation croisée (par exemple ce qui est décrit ici sur le site du curseur ) sont destinées à la sélection des fonctionnalités . Mais dans mon cas, j'utilise randomForest
( method = "rf"
) et kernlab
( method = svmRadial
), qui ne sont pas répertoriés dans le groupe qui tente de purger les prédicteurs.
Donc, ma question est de savoir si j'utilise quelque chose comme cross_val <- trainControl(method = "LGOCV", p = 0.8)
, n'est-ce pas la même chose que la formation sur 80% de mes données, tester le modèle résultant sur les 20% restants, et le faire encore et encore pour avoir une idée de la modèle fonctionne?
Si oui, est-il nécessaire de diviser mes données en trains / ensembles de tests?
PS Je demande en partie pendant que je conduis des modèles sur des prototypes DOE générés empiriquement (pensez aux biens matériels où nous modifions les entrées, puis utilisons des méthodes de test pour mesurer divers attributs du prototype).
En tant que tel, je n'ai pas un énorme ensemble de données avec beaucoup de niveaux de prédicteurs qui se chevauchent à partir desquels nous modéliser - nous exécutons souvent un essai à chaque point d'intérêt du DOE car la génération de données est coûteuse dans ce cas. Ainsi, j'aimerais utiliser toutes les données que je peux pour un modèle précis, mais je voulais vérifier ici que je ne manque pas quelque chose d'évident et faire un mauvais modèle en ne divisant pas les choses.
Edit: En réponse à la question de @ topepo, je modélise les attributs mesurés physiquement d'un composé en fonction de l'ajustement des intrants chimiques de la formule. Je ne peux pas discuter de mon application réelle, mais je vais inventer un exemple basé sur la formulation de peinture intérieure au latex. J'exécute des expériences conçues où nous mélangeons 4-5 produits chimiques, peut-être jouer avec% de solides et un certain temps pour chauffer la solution de polymère pour ajuster le degré de polymérisation.
Nous pourrions alors mesurer la rhéologie, le poids moléculaire, la dureté du revêtement de peinture, la résistance à l'eau, etc.
Nous avons des répliques décentes de plusieurs variables, mais peu de vraies répliques dans le sens où chaque niveau DOE était exactement le même. L'ensemble de données total est d'environ 80 observations et peut-être 4-5 sont des répétitions exactes. Nous avons effectué 15 tests différents, et peut-être 5-6 d'entre eux ont été effectués pour chaque observation. Certaines réponses sont présentes pour 25 à 50% des données.
À partir d'ici, nous aimerions modéliser les effets de nos 7 prédicteurs sur les propriétés de sortie, puis optimiser pour cibler de nouveaux espaces de conception qui sont les plus susceptibles de donner les propriétés souhaitées.
(D'où ma question ICI . Une fois que j'aurai un modèle formé, ce serait bien de faire le "reverse" et d'introduire les réponses souhaitées pour obtenir la meilleure estimation des niveaux d'entrée possibles pour essayer ensuite).
data_set1
, que dois-je considérer comme l'étape effectuée par la LGOCV
validation croisée? D'après ma lecture, je suppose que 1) caret
itère les paramètres de réglage data_set1
, puis 2) maintient ces paramètres fixes et 3) crée un "sous-modèle" en utilisant les paramètres de # 1 pour chaque p = 0.8
échantillon data_set1
et teste les prédictions sur les 0,2 restants pour évaluer la précision . Est-ce un résumé raisonnable?