Je me demande comment choisir un modèle prédictif après la validation croisée des plis en K.
Cela peut être mal formulé, alors laissez-moi vous expliquer plus en détail: chaque fois que je lance la validation croisée des plis en K, j'utilise K sous-ensembles des données d'apprentissage et finis avec K différents modèles.
Je voudrais savoir comment choisir l’un des modèles K pour pouvoir le présenter à quelqu'un et lui dire: "C’est le meilleur modèle que nous puissions produire."
Est-il possible de choisir l'un des modèles K? Ou bien existe-t-il une sorte de meilleure pratique, telle que choisir le modèle qui produit l’erreur de test médiane?
cross-validation
model-selection
Berk U.
la source
la source
Réponses:
Je pense qu'il vous manque encore quelque chose dans votre compréhension du but de la validation croisée.
Soyons clairs. En général, lorsque nous parlons de «modèle», nous nous référons à une méthode particulière pour décrire le lien entre certaines données d'entrée et ce que nous essayons de prédire. Nous ne faisons généralement pas référence à des exemples particuliers de cette méthode en tant que modèles différents. Donc, vous pourriez dire «j'ai un modèle de régression linéaire», mais vous n'appelleriez pas deux ensembles différents de modèles différents de coefficients formés. Du moins pas dans le contexte de la sélection du modèle.
Ainsi, lorsque vous effectuez une validation croisée des plis en K, vous testez dans quelle mesure votre modèle est capable de se former à l'aide de certaines données, puis vous prédisez des données qu'il n'a pas encore vues. Nous utilisons la validation croisée pour cela car si vous vous entraînez en utilisant toutes les données dont vous disposez, il ne vous en reste plus pour les tests. Vous pouvez le faire une fois, en utilisant 80% des données pour former et 20% pour tester, mais que se passe-t-il si les 20% que vous choisissez de tester contiennent un tas de points particulièrement faciles (ou particulièrement difficiles) prédire? Nous n'aurons pas fourni la meilleure estimation possible de la capacité des modèles à apprendre et à prévoir.
Nous voulons utiliser toutes les données. Donc, pour continuer l’exemple ci-dessus d’un partage 80/20, nous ferions une validation croisée par 5 en entraînant le modèle 5 fois sur 80% des données et en le testant à 20%. Nous nous assurons que chaque point de données se retrouve dans l'ensemble de test à 20% exactement une fois. Nous avons donc utilisé chaque point de données pour nous aider à comprendre dans quelle mesure notre modèle tire parti de l’expérience tirée de certaines données et de la prévision de nouvelles données.
Mais le but de la validation croisée n'est pas de proposer notre modèle final. Nous n'utilisons pas ces 5 instances de notre modèle formé pour effectuer une prévision réelle. Pour cela, nous voulons utiliser toutes les données, nous avons donc besoin du meilleur modèle possible. Le but de la validation croisée est la vérification du modèle, pas la construction du modèle.
Maintenant, disons que nous avons deux modèles, disons un modèle de régression linéaire et un réseau de neurones. Comment pouvons-nous dire quel modèle est le meilleur? Nous pouvons faire une validation croisée des plis en K et voir lequel s’avère le mieux pour prédire les points de réglage du test. Mais une fois que nous avons utilisé la validation croisée pour sélectionner le modèle le plus performant, nous formons ce modèle (que ce soit la régression linéaire ou le réseau de neurones) sur toutes les données. Nous n'utilisons pas les instances de modèle que nous avons formées lors de la validation croisée pour notre modèle prédictif final.
Notez qu'il existe une technique appelée agrégation par bootstrap (généralement abrégée en "empaquetage") qui utilise en quelque sorte les instances de modèle produites de manière similaire à la validation croisée pour construire un modèle d'ensemble, mais il s'agit d'une technique avancée dépassant le cadre. de votre question ici.
la source
For that we want to use all the data we have to come up with the best model possible.
- Lorsque vous effectuez une recherche sur la grille avec validation croisée des plis en K, cela signifie-t-il que vous utiliseriez les meilleurs paramètres détectés par la recherche sur la grille pour ajuster un modèle à l'ensemble des données de formation, puis évaluer les performances de généralisation à l'aide de l'ensemble de test?Permettez-moi d'ajouter quelques points en plus de la réponse de Bogdanovist
Comme vous le dites, vous formez différents modèles. Ils diffèrent en ce que 1 / (k-1) ème des données de formation sont échangées contre d'autres cas. Ces modèles sont parfois appelés modèles de substitution car la performance (moyenne) mesurée pour ces modèles est considérée comme une substitution de la performance du modèle formé dans tous les cas.k
Maintenant, il y a quelques hypothèses dans ce processus.
Hypothèse 1: les modèles de substitution sont équivalents au modèle "données complètes".k
Il est assez courant que cette hypothèse se brise et le symptôme est le biais pessimiste bien connu de la validation croisée à plis (ou d'autres schémas de validation basés sur le ré-échantillonnage). La performance des modèles de substitution est en moyenne inférieure à celle du modèle "données intégrales" si la courbe d'apprentissage a toujours une pente positive (c'est-à-dire que moins d'échantillons d'apprentissage entraînent une dégradation des modèles).
L'hypothèse 2 est une version plus faible de l'hypothèse 1: même si les modèles de substitution sont en moyenne moins performants que le modèle de données complet, nous supposons qu'ils sont équivalents. Cela permet de résumer les résultats de test pour modèles de substitution en tant que performance moyenne. L'instabilité du modèle conduit à la rupture de cette hypothèse: la performance réelle des modèles formés sur les cas de formation varie beaucoup. Vous pouvez mesurer cela en effectuant des itérations / répétitions de la validation croisée fold (nouvelles assignations aléatoires aux sous-ensembles) et en regardant la variance (différences aléatoires) entre les prédictions de différents modèles de substitution pour le même cas.N k - 1k Nk−1k k k
kk
Le nombre fini de cas signifie que la mesure de la performance sera sujette à une erreur aléatoire (variance) en raison du nombre fini de cas tests. Cette source de variance est différente (et ajoute donc) à la variance d'instabilité du modèle.
Les différences de performances observées sont dues à ces deux sources de variance.
La "sélection" à laquelle vous pensez est une sélection de jeu de données: sélectionner l'un des modèles de substitution signifie sélectionner un sous-ensemble d'échantillons d'apprentissage et affirmer que ce sous-ensemble d'échantillons d'apprentissage conduit à un modèle supérieur. Bien que cela puisse être vraiment le cas, la "supériorité" est généralement fausse. Quoi qu'il en soit, comme choisir le "meilleur" des modèles de substitution est une optimisation pilotée par les données, vous devez valider (mesurer les performances) ce modèle sélectionné avec de nouvelles données inconnues. L'ensemble de tests de cette validation croisée n'est pas indépendant, car il a été utilisé pour sélectionner le modèle de substitution.
Vous voudrez peut-être regarder notre article, il s'agit d'une classification où les choses sont généralement pires que pour la régression. Cependant, il montre comment ces sources de variance et de biais s’additionnent.
Beleites, C. et Neugebauer, U. et Bocklitz, T. et Krafft, C. et Popp, J.: Planification de la taille de l'échantillon pour les modèles de classification. Anal Chim Acta, 2013, 760, 25-33.
DOI: 10.1016 / j.aca.2012.11.007
manuscrit accepté sur arXiv: 1211.1323
la source
picking "the best" of the surrogate models is a data-driven optimization, you'd need to validate (measure performance) this picked model with new unknown data. The test set within this cross validation is not independent as it was used to select the surrogate model.
et il dit:But once we have used cross-validation to select the better performing model, we train that model (whether it be the linear regression or the neural network) on all the data.
ceci est assez courant et il est essentiel de spécifier une approche normaliséeJ'ai trouvé cet excellent article Comment former un modèle final d'apprentissage automatique très utile pour dissiper toutes les confusions que j'ai à propos de l'utilisation du CV dans l'apprentissage automatique.
Fondamentalement, nous utilisons des CV (par exemple scission 80/20, k-fold, etc.) pour estimer les performances de l'ensemble de votre procédure (y compris l'ingénierie des données, le choix du modèle (algorithme, par exemple) et les hyper-paramètres, etc.). Les données. Et une fois que vous avez choisi la "procédure" gagnante, les modèles ajustés de CV ont rempli leur fonction et peuvent maintenant être jetés. Vous utilisez ensuite la même "procédure" gagnante et entraînez votre modèle final en utilisant l'ensemble des données.
la source
C'est une question très intéressante. Pour que ce soit clair, nous devons comprendre la différence de modèle et d’évaluation de modèle. Nous utilisons un ensemble complet de formations pour construire un modèle, et nous nous attendons à ce que ce modèle soit finalement utilisé.
Une évaluation croisée du pli K créerait des modèles K, mais tous seraient supprimés. Les modèles K ne sont utilisés que pour l'évaluation. et Il vient de produire des mesures pour vous dire à quel point ce modèle correspond à vos données.
Par exemple, vous choisissez algorithme LinearRegression et effectuez deux opérations sur le même ensemble d’entraînement: une avec une validation croisée par 10, et l’autre avec 20. le modèle de régression (ou classificateur) devrait être le même, mais le coefficient de corrélation et l'erreur carrée relative de la racine sont différents.
Vous trouverez ci-dessous deux exécutions pour la validation croisée avec 10 fois et 20 fois avec weka.
1ère manche avec 10 fois
2e manche avec 20 fois
la source
Je ne suis pas sûr que la discussion ci-dessus soit tout à fait correcte. En validation croisée, nous pouvons fractionner les données en formation et en test pour chaque exécution. En utilisant uniquement les données d'apprentissage, il faut adapter le modèle et choisir les paramètres de réglage dans chaque classe de modèles considérée. Par exemple, dans les réseaux de neurones, les paramètres de réglage sont le nombre de neurones et le choix de la fonction d’activation. Pour ce faire, on valide les données d'apprentissage uniquement .
Une fois que le meilleur modèle de chaque classe est trouvé, le modèle le mieux ajusté est évalué à l'aide des données de test. La boucle de validation croisée "externe" peut être utilisée pour donner une meilleure estimation de la performance des données de test, ainsi qu'une estimation de la variabilité. Une discussion peut ensuite comparer les performances des tests pour différentes classes, par exemple Neural Nets vs SVM. Une classe de modèle est choisie, avec une taille de modèle fixe, et maintenant, l'ensemble des données est utilisée pour apprendre le meilleur modèle.
Maintenant, si, dans le cadre de votre algorithme d’apprentissage automatique, vous souhaitez sélectionner en permanence la meilleure classe de modèle (par exemple, chaque semaine), même ce choix doit être évalué dans les données de formation! La mesure des données de test ne peut pas être utilisée pour juger du choix de la classe de modèle s'il s'agit d'une option dynamique.
la source
Pourquoi utilisons-nous la validation croisée des k-fold?
La validation croisée est une méthode permettant d'estimer l'habileté d'une méthode sur des données invisibles. Comme utiliser un train-test split.
La validation croisée crée et évalue systématiquement plusieurs modèles sur plusieurs sous-ensembles du jeu de données. Ceci, à son tour, fournit une population de mesures de performance .
Cela est également utile pour fournir une comparaison plus nuancée d’une procédure à une autre lorsque vous essayez de choisir l’algorithme et les procédures de préparation des données à utiliser.
En outre, cette information est précieuse car vous pouvez utiliser la moyenne et la propagation pour donner un intervalle de confiance sur les performances attendues d'une procédure d'apprentissage automatique.
référence
la source