Quelle est la procédure de «validation bootstrap» (alias «rééchantillonnage de validation croisée»)?

15

"Validation Bootstrap" / "validation croisée de rééchantillonnage" est nouveau pour moi, mais a été discuté par la réponse à cette question . Je suppose que cela implique 2 types de données: les données réelles et les données simulées, où un ensemble donné de données simulées est généré à partir des données réelles par rééchantillonnage avec remplacement jusqu'à ce que les données simulées aient la même taille que les données réelles. Je peux penser à deux approches pour utiliser de tels types de données: (1) ajuster le modèle une fois, l'évaluer plusieurs fois sur de nombreux ensembles de données simulées; (2) ajuster le modèle plusieurs fois en utilisant chacun des nombreux ensembles de données simulées, à chaque fois l'évaluer par rapport aux données réelles. Lequel (le cas échéant) est le meilleur?

Mike Lawrence
la source

Réponses:

20

Réponse courte: Les deux techniques de validation impliquent la formation et le test d'un certain nombre de modèles.

Réponse longue sur la meilleure façon de le faire: cela dépend bien sûr. Mais voici quelques réflexions que j'utilise pour guider mes décisions concernant la validation du rééchantillonnage. Je suis chimiométriste, donc ces stratégies et les termes sont plus ou moins étroitement liés aux problèmes analytiques et chimiques.

Pour expliquer un peu mes pensées, je pense à la validation comme à la mesure de la qualité du modèle et à la formation comme à la mesure des paramètres du modèle - cela conduit à une analogie assez puissante avec tout autre type de mesure.

Il existe deux points de vue différents sur ces approches en matière de validation:

  1. un point de vue traditionnel pour la validation du rééchantillonnage est le suivant: l'ensemble de données rééchantillonné (parfois appelé ensemble ou sous-ensemble de données de substitution) est pratiquement le même que l'ensemble de données d'origine (réel).
    Par conséquent, un "modèle de substitution" ajusté à l'ensemble de données de substitution est pratiquement le même que l'ajustement de modèle avec l'ensemble de données réelles. Mais certains échantillons sont exclus de l'ensemble de données de substitution, le modèle est indépendant de ceux-ci. Ainsi, je prends ces échantillons laissés de côté ou hors bootstrap comme ensemble de validation indépendant pour le modèle de substitution et j'utilise le résultat comme approximation du modèle de données complet.
    Cependant, le modèle de substitution n'est souvent pas vraiment équivalent au modèle de données complètes: moins d'échantillons ont été utilisés pour la formation (même pour le bootstrap, le nombre d'échantillons différents est moins). Tant que la courbe d'apprentissage augmente, le modèle de substitution est en moyenne un peu pire que le modèle de données complet. Il s'agit du biais pessimiste bien connu de la validation du rééchantillonnage (si vous vous retrouvez avec un biais optimiste, c'est généralement un indicateur que le jeu de test de gauche / sortie n'est pas indépendant du modèle).

  2. Le deuxième point de vue est que l'ensemble de données rééchantillonné est une version perturbée de l'ensemble de données. L'examen de la façon dont les modèles de substitution (ou leurs prédictions pour les échantillons laissés pour compte / OOB) diffèrent du modèle à données entières indique ensuite quelque chose sur la stabilité du modèle par rapport aux données d'apprentissage.
    De ce point de vue, les modèles de substitution ressemblent à des mesures répétées. Supposons que votre tâche consiste à mesurer le contenu de certains minéraux d'un train entier de minerai. Le minerai n'est pas homogène. Vous prenez donc des échantillons physiques de différents endroits, puis regardez le contenu global et sa variation à travers le train. De même, si vous pensez que votre modèle peut ne pas être stable, vous pouvez regarder les performances globales et la variation des modèles de substitution.

n
Je rééchantillonne généralement les cas, par exemple un cas = toutes les mesures d'un patient. Ensuite, tous les patients sortis du sac ne font l'objet d'aucune mesure dans les données d'entraînement. Ceci est utile si vous savez que les mesures d'un cas sont plus similaires les unes aux autres qu'aux mesures d'autres cas (ou du moins vous ne pouvez pas exclure cette possibilité).

Ce n'est pas que la validation du rééchantillonnage vous permet de mesurer les performances d' échantillons inconnus . Si, en plus, vous souhaitez mesurer les performances d' échantillons futurs inconnus (dérive instrumentale!), Vous avez besoin d'un ensemble de test qui est mesuré "dans le futur", c'est-à-dire un certain temps après que tous les échantillons d'apprentissage ont été mesurés. En chimie analytique, cela est nécessaire par exemple si vous voulez savoir à quelle fréquence vous devez refaire l'étalonnage de votre instrument (pour chaque détermination, quotidiennement, hebdomadairement, mensuellement, ...)

Bootstrap vs terminologie de validation croisée :

  • le rééchantillonnage avec remplacement est souvent appelé bootstrap,
  • rééchantillonnage sans validation croisée de remplacement.

Les deux peuvent avoir une sorte de stratification. Historiquement, le fractionnement pour la validation croisée (au moins en chimiométrie) a souvent été effectué de manière non aléatoire, par exemple une validation croisée en trois volets de la forme abcabc..abc (ensemble de données trié par rapport au résultat) pour l'étalonnage / régression si vous avez très peu de cas (échantillons physiques) et que vous voulez vous assurer que toute votre plage de données est couverte.

Les deux techniques sont généralement répétées / répétées plusieurs fois. Encore une fois pour des raisons historiques et au moins en chimiométrie, la validation croisée k-fold signifie souvent la formation et le test de k modèles (chacun testé avec le 1 / kème des données qui n'a pas été impliqué dans la formation). Si un tel fractionnement aléatoire se répète, les gens l'appellent validation croisée itérée ou répétée.

kknnn

  • Notez que le bootstrap n'est pas approprié pour certaines techniques d'ajustement de modèle qui suppriment d'abord les mesures en double.
  • Certaines variantes du bootstrap existent, par exemple .632-bootstrap et .632 + -bootstrap

kk

cbeleites soutient Monica
la source
La réponse longue est agréable.
Momo
(+1) grande perspective. Je suis presque sûr que le terme de substitut restera.
steffen
@steffen, merci. Je ne suis en aucun cas l'inventeur du terme. Je pense que je me suis rencontré pour la première fois dans un article de U. Braga-Neto (peut-être celui-ci: ncbi.nlm.nih.gov/pubmed/14960464 ) mais j'ai été immédiatement convaincu du terme ...
cbeleites soutient Monica
Concernant la remarque dans la question sur les données simulées. Le bootstrap en soi n'implique pas de données simulées. Les données simulées seront utilisées comme moyen d'évaluer si la méthode de bootstrap fonctionne sur un problème particulier. Mais le bootstrap lui-même n'est qu'une réutilisation des données basées sur un échantillon de bootstrap. Échantillons sélectionnés au hasard avec remplacement de l'ensemble de données d'origine. Cela implique généralement de prendre n rééchantillons où n est la taille de l'échantillon d'origine. Monte Carlo entre comme un moyen d'approximer la distribution de bootstrap en générant réellement des échantillons de bootstrap sur l'ordinateur.
Michael R. Chernick
3

Je ne connais pas le "meilleur" (qui dépend probablement de l'utilisation que vous en faites), mais j'utilise la validation bootstrap pour estimer l'erreur sur les nouvelles données de la manière suivante (troisième voie si vous le souhaitez):

  1. Dessinez un ensemble d'apprentissage de N observations à partir des données originales (de taille N) avec remplacement.
  2. Ajustez le modèle aux données d'entraînement.
  3. Évaluer le modèle sur les échantillons hors sac (oob)

Ce qui est hors du sac n'est pas toujours clairement défini. Ce sont souvent toutes ces observations qui ne faisaient pas partie de l'ensemble de formation. Il serait plus strict (je l'utilise de cette façon) de n'avoir dans l'échantillon oob que des observations ayant une réalisation de l'ensemble du vecteur prédicteur qui ne fait pas partie de l'ensemble d'apprentissage (ce qui est particulièrement utile si vous avez de nombreux facteurs). Encore plus strict est d'utiliser un échantillon oob qui ne contient que les observations qui ont une réalisation différente de la variable prédictive sur les prédicteurs choisis dans le modèle (particulièrement utile si le modèle est trouvé avec une procédure de sélection de variable, par exemple des arbres).

Ensuite, je répète habituellement cela un certain nombre de fois et agrège les résultats sur les k-plis (moyenne ou médiane ou toute statistique utile). Le modèle choisi de cette façon peut ensuite être ajusté à l'ensemble de données global (comme dans votre option 2) pour évaluer en plus s'il y a toujours une tendance à la sur-adaptation (la mesure des performances ne doit pas être trop éloignée des échantillons de bootstrap).

Si j'ai plus de modèles ou une grille de paramètres ou similaire, je les ajuste tous à chaque ensemble de formation et les évalue tous sur chaque échantillon oob. Il est également possible de ne pas utiliser un ensemble d'entraînement deux fois, mais pour chaque combinaison de modèle ou de paramètre de réglage, de dessiner une nouvelle paire entraînement / fonction.

Voir par exemple La conception et l'analyse d'expériences de benchmarking .

Momo
la source