Comment choisir un modèle prédictif après validation croisée des k-fold?

149

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?

Berk U.
la source
2
Vous pourriez trouver les réponses à la question suivante utiles: stats.stackexchange.com/questions/2306/…
BGreene
Vous aurez besoin de répéter 100 fois le CV 5 fois et de faire la moyenne des résultats pour obtenir une précision suffisante. Et la réponse de @bogdanovist est parfaite. Vous pouvez obtenir la même précision de l'estimation de la précision du bootstrap avec moins d'ajustements de modèle.
Frank Harrell
@ Frank Harrell, pourquoi dites-vous que 100 répétitions sont nécessaires (j'utilise habituellement 10 répétitions sur 10 fois), s'agit-il d'une règle de base puisque le PO n'a pas donné de détails?
BGreene
2
Pour les cvs 10, il est préférable de faire répétitions. Plus de répétitions seront nécessaires avec 5 fois. Ce sont des règles de base. Un seul CV 10 fois donnera une réponse instable, c'est-à-dire que vous répétez les 10 divisions et que vous obtenez suffisamment de réponses différentes pour vous inquiéter. 50
Frank Harrell
Presque une copie exacte: stats.stackexchange.com/questions/11602 avec beaucoup de réponses intéressantes. Peut-être que ces discussions devraient être fusionnées mais je ne sais pas dans quelle direction. Les deux ont accepté des réponses très bonnes. Mais l’autre est plus âgé et a plus de points de vue / votes positifs, il serait donc logique de fusionner celui-ci dans celui-ci.
amibe

Réponses:

201

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.

Bogdanovist
la source
8
Je suis entièrement d'accord avec ce point et j'ai pensé utiliser toutes les données. Cela dit, si nous formions notre modèle final à l’aide de l’ensemble des données, cela ne conduirait-il pas à un surajustement et par conséquent à saboter les prévisions futures?
Berk U.
19
Non! Le sur-aménagement est lié à la complexité du modèle, il n’a rien à voir avec la quantité de données utilisée pour former le modèle. La complexité du modèle est liée à la méthode utilisée par le modèle et non aux valeurs prises par ses paramètres. Par exemple, s'il faut inclure x ^ 2 coefficients ainsi que x coefficients dans un modèle de régression.
Bogdanovist
17
@Bogdanovist: Je dirais plutôt que le suréquipement est dû à un nombre insuffisant de cas de formation pour un modèle trop complexe. Donc, cela (aussi) a à voir avec le nombre de cas de formation. Mais avoir plus de cas de formation réduira le risque de surajustement (pour une complexité de modèle constante).
cbeleites
3
@Bogdanovist 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?
lun.
4
@arun, si vous avez utilisé la validation croisée des plis en travers et sélectionné le meilleur modèle avec les meilleurs paramètres et hyper-paramètres, vous n'aurez plus besoin de contrôler les performances après avoir ajusté le modèle final sur l'ensemble d'entraînement. ensemble d'essai. En effet, vous avez déjà vérifié le comportement du modèle avec les paramètres spécifiés sur des données invisibles.
Sandeep S. Sandhu le
29

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".
    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).k

  • 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
    kkNk1kkk

  • 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

cbéléites
la source
Bogdanovist et vous êtes en désaccord quand vous dites 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ée
jpcgandre
Particulièrement pour les petits ensembles de données où il peut tout simplement être impossible de supprimer des données de CV, mais les risques de surapprentissage de votre modèle sont également élevés! Des références sont nécessaires pour clarifier ce problème.
jpcgandre
5
@jpcgandre: Je ne vois pas de désaccord. Bogdanovist explique comment calculer le modèle de choix à partir des hyperparamètres sélectionnés via une validation croisée. J'ai ajouté qu'après cette sélection, le modèle devait subir un autre niveau de validation (externe) indépendant. En d’autres termes, par exemple une conception de validation imbriquée: boucle de validation interne pour la sélection de l’hyperparamètre, boucle externe pour le test des modèles sélectionnés (si vous avez suffisamment de cas, vous pouvez également choisir un jeu de tests indépendant).
cbeleites
5
La validation interne / externe configurée concerne la validation croisée appelée validation croisée double ou imbriquée. Je l'ai également appelée validation croisée de modèle ( dx.doi.org/10.1016/j.chemolab.2006.04.021 ). Avec un ensemble de test indépendant, il correspond à la division en trois ensembles: train / (optimisation) validation / test (= validation finale). Si vous avez si peu de cas que vous ne pouvez pas omettre de données pour un CV de second niveau, je dirais que vous devez corriger vos hyperparamètres par d'autres moyens que d'essayer d'optimiser en sélectionnant l'un des ensembles d'hyperparamètres.
cbeleites
@cbeleites J'ai une question. Ensuite, pour obtenir les paramètres de modèle finaux, prendriez-vous la moyenne des hyperparamètres de chaque repli externe et recycleriez-vous l’ensemble du jeu de données en utilisant cet hyperparamètre moyenné? Ou bien faire une recherche hyperparamètre dans un CV régulier, puis confirmer la stabilité de cette méthode en utilisant des CV imbriqués répétés fonctionnerait également?
Michelle
11

J'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.

Patrick Ng
la source
1

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

=== Run information ===
Test mode:    10-fold cross-validation
...
=== Classifier model (full training set) ===


Linear Regression Model  <---- This model is the same

Date = 844769960.1903 * passenger_numbers -711510446549.7296

Time taken to build model: 0 seconds

=== Cross-validation ===  <---- Hereafter produced different metrics
=== Summary ===

Correlation coefficient                  0.9206
Mean absolute error                35151281151.9807
Root mean squared error            42707499176.2097
Relative absolute error                 37.0147 %
Root relative squared error             38.9596 %
Total Number of Instances              144     

2e manche avec 20 fois

=== Run information ===
...
Test mode:    20-fold cross-validation

=== Classifier model (full training set) ===


Linear Regression Model   <---- This model is the same

Date = 844769960.1903 * passenger_numbers -711510446549.7296

Time taken to build model: 0 seconds

=== Cross-validation ===  <---- Hereafter produced different metrics
=== Summary ===

Correlation coefficient                  0.9203
Mean absolute error                35093728104.8746
Root mean squared error            42790545071.8199
Relative absolute error                 36.9394 %
Root relative squared error             39.0096 %
Total Number of Instances              144     
Canhua Li
la source
0

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.

DataExplorer
la source
0

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 .

  • Nous pouvons calculer la moyenne de ces mesures pour avoir une idée de la performance moyenne de la procédure.
  • Nous pouvons calculer l'écart-type de ces mesures pour avoir une idée de la mesure dans laquelle la compétence de la procédure devrait varier dans la pratique.

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

Saeed
la source