Est-ce toujours une bonne idée de s'entraîner avec l'ensemble de données complet après validation croisée ? En d'autres termes, est-il possible de s'entraîner avec tous les échantillons de mon jeu de données sans pouvoir vérifier si cet ajustement est trop important ?
Quelques informations sur le problème:
Disons que j'ai une famille de modèles paramétrés par . Dites aussi que j'ai un ensemble de points de données et que je sélectionne le modèle avec une validation croisée du pli k pour choisir le modèle qui généralise le mieux les données. N
Pour la sélection de modèle, je peux effectuer une recherche (par exemple, une recherche dans une grille) sur , par exemple en exécutant une validation croisée par k-fold pour chaque candidat. Dans chacun des plis de la validation croisée, je me retrouve avec le modèle appris . βα
Le point de validation croisée est que, pour chacun de ces replis, je peux vérifier si le modèle appris a surajusté, en le testant sur des "données invisibles". En fonction des résultats, je pouvais choisir le modèle appris pour les paramètres généralisés lors de la validation croisée dans la recherche par grille.→ α meilleur
Maintenant, supposons qu'après la sélection du modèle , j'aimerais utiliser tous les points de mon jeu de données et, espérons-le, apprendre un meilleur modèle. Pour cela, je pourrais utiliser les paramètres correspondant au modèle que j'ai choisi lors de la sélection du modèle, puis après une formation sur l'ensemble de données complet, je voudrais obtenir un nouveau modèle appris . Le problème est que, si j'utilise tous les points de mon jeu de données pour la formation, je ne peux pas vérifier si ce nouveau modèle appris surafinit sur des données invisibles. Quelle est la bonne façon de réfléchir à ce problème?→ alpha b e s t β f u l l β f u l l
la source
Réponses:
La façon de penser à la validation croisée consiste à estimer la performance obtenue à l'aide d'une méthode de construction d'un modèle, plutôt que d'estimer la performance d'un modèle.
Si vous utilisez la validation croisée pour estimer les hyperparamètres d'un modèle (les s), puis que vous utilisez ces hyper-paramètres pour ajuster un modèle à l'ensemble du jeu de données, c'est très bien, à condition que vous reconnaissiez que l'estimation de la validation croisée de la performance est susceptible d'être (éventuellement substantiellement) optimiste. Cela s'explique par le fait qu'une partie du modèle (les hyper-paramètres) a été sélectionnée pour minimiser les performances de la validation croisée. Par conséquent, si la statistique de validation croisée présente une variance non nulle (et ce sera le cas), il existe un risque de surajustement le critère de sélection du modèle.α
Si vous souhaitez choisir les hyper-paramètres et estimer les performances du modèle résultant, vous devez effectuer une validation croisée imbriquée, la validation croisée externe servant à évaluer les performances du modèle et, dans chaque repli, une validation croisée. la validation est utilisée pour déterminer les hyper-paramètres séparément dans chaque pli. Vous construisez le modèle final en utilisant la validation croisée sur l'ensemble du jeu pour choisir les hyper-paramètres, puis vous construisez le classificateur sur l'ensemble du jeu de données en utilisant les hyper-paramètres optimisés.
Ceci est bien sûr coûteux en calcul, mais en vaut la peine car le biais introduit par une estimation de performance inappropriée peut être important. Voir mon papier
GC Cawley et NLC Talbot, sur-adaptation dans la sélection du modèle et biais de sélection subséquent dans l'évaluation de la performance, Journal of Machine Learning Research, 2010. Research, vol. 11, pp. 2079-2107, juillet 2010. ( www , pdf )
Cependant, il est toujours possible d'avoir un sur-ajustement dans la sélection du modèle (la validation croisée imbriquée vous permet simplement de le tester). Une méthode que j’ai trouvée utile consiste à ajouter un terme de régularisation à l’erreur de validation croisée qui pénalise les valeurs d’hyper-paramètres susceptibles de générer des modèles trop complexes, voir
GC Cawley et NLC Talbot, Prévention du sur-ajustement dans la sélection du modèle via la régularisation bayésienne des hyper-paramètres, Journal of Machine Learning Research, volume 8, pages 841 à 861, avril 2007. ( www , pdf )
Donc, les réponses à votre question sont (i) oui, vous devez utiliser l'ensemble de données complet pour produire votre modèle final. Plus vous utilisez de données, plus vous avez de chances de généraliser, mais ii) veillez à obtenir une estimation de performance impartiale via une validation croisée imbriquée et potentiellement envisager de pénaliser la statistique de validation croisée pour éviter davantage le sur-ajustement dans la sélection du modèle.
la source
Pour ajouter à la réponse de @ mark999, le
caret
paquet de Max Kuhn (Classification and Regression Training) est la source la plus complète en R pour la sélection de modèle basée sur la validation croisée par bootstrap ou le CV à plis multiples ainsi que sur d’autres schémas.Ne pas négliger la grandeur du
rms
paquet, maiscaret
vous permet d’adapter à peu près toutes les méthodes d’apprentissage disponibles dans R, alors que vousvalidate
n’utilisez que desrms
méthodes (je pense).Le
caret
progiciel est une infrastructure unique permettant de pré-traiter les données, d’ajuster et d’évaluer tout modèle courant. Il est donc simple à utiliser pour toutes les méthodes et fournit une évaluation graphique de nombreuses mesures de performance bien) sur votre grille et importance variable.Voir les vignettes de paquet pour commencer (son utilisation est très simple)
Prétraitement des données
Sélection de variables avec caret Création de
modèles avec caret
Variable Importance
Vous pouvez également consulter le site Web de caret pour plus d'informations sur le package et des exemples de mise en œuvre spécifiques:
Site Web officiel de caret
la source
train
), il existe un moyen dans caret de s'entraîner avec l'ensemble de données complet?Je pense que Frank Harrell recommanderait la validation par bootstrap plutôt que la validation croisée. La validation par bootstrap vous permettrait de valider le modèle ajusté sur l'ensemble de données complet et est plus stable que la validation croisée. Vous pouvez le faire en utilisant R
validate
dans lerms
package de Harrell .Voir le livre "Stratégies de modélisation de régression" par Harrell et / ou "Une introduction au bootstrap" d'Efron et Tibshirani pour plus d'informations.
la source
Je pense que vous avez un tas de questions différentes ici:
Le fait est que vous pouvez utiliser (une) étape de validation pour une seule chose: soit pour l'optimisation des paramètres, (x) ou pour estimer les performances de généralisation.
Ainsi, si vous effectuez l'optimisation des paramètres par validation croisée (ou tout autre type de détermination de paramètre piloté par les données), vous avez besoin d'échantillons de test indépendants de ceux d'apprentissage et d'optimisation. Dikran appelle cela la validation croisée imbriquée, un autre nom est la validation croisée double. Ou bien sûr, un ensemble de test indépendant.
L’utilisation d’un des modèles de validation croisée est généralement pire que de s’entraîner sur l’ensemble complet (du moins si votre courbe d’apprentissage = f (nsamples) augmente toujours. Dans la pratique, c’est le cas: sinon, vous auriez probablement à part un ensemble de test indépendant.)
Si vous observez une grande variation entre les modèles de validation croisée (avec les mêmes paramètres), vos modèles sont instables. Dans ce cas, l'agrégation des modèles peut s'avérer plus efficace que l'utilisation d' un modèle formé sur l'ensemble des données.
Mise à jour: Cette agrégation est l’idée qui sous-tend l’ ensachage appliqué au ré-échantillonnage sans remplacement (validation croisée) au lieu de ré-échantillonnage avec remplacement (validation bootstrap / out-of-bootstrap).
Voici un article où nous avons utilisé cette technique:
Beleites, C. & Salzer, R .: Évaluer et améliorer la stabilité des modèles chimiométriques dans des situations de taille réduite, Anal Bioanal Chem, 390, 1261-1271 (2008).
DOI: 10.1007 / s00216-007-1818-6
En étant très conservateur avec les degrés de liberté autorisés pour le "meilleur" modèle, c'est-à-dire en prenant en compte l'incertitude (aléatoire) sur les résultats de la validation croisée d'optimisation. Si les df sont réellement appropriés pour les modèles de validation croisée, il y a de bonnes chances qu'ils ne soient pas trop nombreux pour le plus grand ensemble de formations. Le piège est que l'optimisation des paramètres est en fait plusieurs tests. Vous devez vous prémunir contre de bons jeux de paramètres accidentels.
la source
...If you observe a large variation between the cross validation models (with the same parameters), then your models are unstable. In that case, aggregating the models can help...
Pouvez-vous expliquer un peu plus? Par exemple, si j'exécute une régression logistique dans une configuration validée par recoupement de 10 k et que je termine avec 10 ensembles de coefficients, recommandez-vous d'agréger les estimations de coeff pour former un modèle final? Si oui, comment cela peut-il être fait, en prenant juste les moyens?If the d.f. are actually appropriate for the cross validation models
. Si j'ai bien compris, vous affirmez que les ensembles train / validation ne sont pas très volumineux par rapport à l'ensemble de données complet, n'est-ce pas?Ce que vous faites n’est pas une validation croisée, mais plutôt une sorte d’optimisation stochastique.
L’idée de CV est de simuler une performance sur des données invisibles en effectuant plusieurs tours de construction du modèle sur un sous-ensemble d’objets et de tests sur les objets restants. Les résultats quelque peu moyennés de tous les tours sont l' approximation des performances d'un modèle entraîné sur l'ensemble .
Dans le cas de la sélection du modèle, vous devez effectuer un CV complet pour chaque jeu de paramètres et obtenir ainsi une approximation des performances pour le jeu complet pour chaque configuration, donc apparemment ce que vous souhaitiez.
Cependant, notez qu'il n'est pas du tout garanti que le modèle présentant la meilleure précision approximative sera le meilleur en fait. Vous pouvez également valider la procédure de sélection du modèle dans son ensemble pour vérifier qu'il existe une plage dans l'espace des paramètres pour laquelle les différences de la précision des modèles n'est pas significative.
la source