Comment construire le modèle final et ajuster le seuil de probabilité après une validation croisée imbriquée?

17

Tout d'abord, des excuses pour avoir posté une question qui a déjà été longuement discutée ici , ici , ici , ici , iciet pour réchauffer un vieux sujet. Je sais que @DikranMarsupial a longuement écrit sur ce sujet dans des articles et des journaux, mais je suis toujours confus, et à en juger par le nombre d'articles similaires ici, c'est toujours quelque chose que d'autres ont du mal à comprendre. Je dois également déclarer que j'ai reçu des avis contradictoires sur ce sujet, ce qui a ajouté à ma confusion. Vous devez également savoir que je suis à l'origine un physicien et non un statisticien, donc mon expertise dans le domaine ici est quelque peu limitée. J'écris un journal dans lequel je veux utiliser un CV imbriqué pour estimer les performances que je peux attendre de mon modèle final. Dans mon domaine, c'est une première. (Nous utilisons presque jamais toutforme de CV robuste dans mon domaine, mais pompez joyeusement des articles avec des résultats d'études utilisant des réseaux de neurones et des arbres de décision boostés!) Par conséquent, il est très important d'avoir une compréhension très approfondie et claire afin de ne pas bousiller et propager une procédure erronée pour ma communauté qui pourrait prendre des années à désapprendre! Merci! Sur la question ...

Comment créer le modèle final après une validation croisée imbriquée?

J'entraîne un modèle glmnet simple avec régularisation L1 et L2. C'est rapide, simple et interprétable. J'effectue le centrage, la mise à l'échelle et les transformations Box-Cox pour que les distributions des caractéristiques soient centrées sur la moyenne, normalisées et quelque peu gaussiennes. J'effectue cette étape dans le cadre de la validation croisée, pour éviter la fuite d'informations. Purement parce que mon matériel est incroyablement lent et que je n'ai pas accès à plus de muscle CPU, j'effectue également une sélection rapide des fonctionnalités basée sur un filtre dans CV après le prétraitement des fonctionnalités. J'utilise la recherche de grille aléatoire pour choisir les hyperparamètres alpha et lambda. Je comprends que je ne devrais pasBoucle CV pour obtenir cette estimation. Je comprends que la boucle CV interne est utilisée pour la sélection du modèle (dans ce cas, les hyperparamètres optimaux) et que la boucle externe est utilisée pour l' évaluation du modèle , c'est-à-dire que le CV interne et externe remplit deux fonctions différentes qui sont souvent confondues à tort. (Comment je fais jusqu'à présent?)

Maintenant, les liens que j'ai publiés suggèrent que «la façon de penser la validation croisée consiste à estimer les performances obtenues en utilisant une méthode pour construire un modèle, plutôt qu'à estimer les performances d'un modèle». Cela étant, comment dois-je interpréter les résultats de la procédure de CV imbriqué?

Les conseils que j'ai lus semblent indiquer ce qui suit --- veuillez me corriger si c'est faux: le CV intérieur fait partie du mécanisme qui me permet de sélectionner les hyperparamètres alpha et lambda optimaux de mon modèle glmnet. Le CV externe indique l'estimation que je peux m'attendre à obtenir du modèle final si j'applique la procédure exactement comme celle utilisée dans le CV interne, y compris le réglage hyperparamétrique et l' utilisation de l'ensemble de données pour construire le modèle final. Autrement dit, le réglage hyperparamétrique fait partie de "la méthode de construction du modèle". Est-ce correct ou non? Parce que c'est ce qui m'embrouille. Ailleurs, j'ai vu que la procédure de construction du modèle final à déployer implique une formation sur l'ensemble de données en utilisant les valeurs fixesdes hyperparamètres choisis par CV. Ici, la "méthode de construction du modèle" n'inclut pas le réglage. Alors, c'est quoi? À un certain point, les hyperparamètres optimaux sont choisis et fixés pour la construction du modèle final! Où? Comment? Si ma boucle intérieure est un CV de 5 fois, et ma boucle extérieure est un CV de 5 fois, et que je sélectionne, disons, 100 points pour les tests dans le cadre d'une recherche de grille aléatoire dans le CV intérieur, combien de fois dois-je réellement former le glmnet modèle? (100 * 5 * 5) + 1 pour la version finale, ou y a-t-il d'autres étapes que je ne connais pas?

Fondamentalement, j'ai besoin d'une description très claire de la façon d'interpréter l'estimation des performances à partir d'un CV imbriqué et de construire le modèle final.

Je voudrais également connaître la procédure appropriée pour sélectionner le seuil de probabilité pour convertir les scores de probabilité de mon modèle glmnet final en étiquettes de classe (binaires) --- une autre boucle de CV est nécessaire?

Andrew John Lowe
la source

Réponses:

8

La validation croisée imbriquée expliquée sans imbrication

Voici comment je vois la validation croisée (imbriquée) et la construction de modèles. Notez que je suis chimiste et que vous regardez du côté de l'application au processus de construction du modèle (voir ci-dessous). Mon point principal ici est de mon point de vue, je n'ai pas besoin d'une variété imbriquée dédiée de validation croisée. J'ai besoin d'une méthode de validation (par exemple validation croisée) et d'une fonction de formation modèle:

model = f (training data)

"ma" fonction d'apprentissage de modèle f n'a pas besoin d'hyperparamètres car elle effectue en interne tous les réglages d'hyperparamètres (par exemple, votre alpha, lambdaet threshold).

En d'autres termes, ma fonction de formation peut contenir n'importe quel nombre de validations croisées internes (ou hors du sac ou quelle estimation de performance que je puisse juger utile). Toutefois, notez que la distinction entre les paramètres et hyperparam'etres est généralement que les hyperparamètres doivent être accordées à l'ensemble / données d' application à la main alors que les paramètres peuvent être installés indépendamment de ce que les données qu'il est. Ainsi, du point de vue du développeur d'un nouvel algorithme de classification, il est logique de ne fournir que la fonction d'ajustement "nue" ( g (training data, hyperparameters)) qui correspond aux paramètres si des données et des hyperparamètres sont fournis.

Le point d'avoir la fonction de formation "externe" fest qu'après avoir effectué votre cycle de validation croisée, cela vous donne un moyen simple de vous entraîner "sur l'ensemble des données": utilisez simplement à la f (whole data set)place de l'appel f (cv split training data)pour les modèles de substitution de validation croisée.

Ainsi, dans votre exemple, vous aurez 5 + 1 appels vers f, et chacun des appels vers faura par exemple 100 * 5 appels vers g.


seuil de probabilité

Bien que vous puissiez le faire avec une autre validation croisée, ce n'est pas nécessaire: c'est juste un hyperparamètre de plus que votre modèle prêt à l'emploi a et peut être estimé à l'intérieur f.

Ce dont vous avez besoin pour y remédier, c'est une heuristique qui vous permet de calculer un tel seuil. Il existe une grande variété d'heuristiques (de ROC et précisant à quel point il est important d'éviter les faux positifs par rapport aux faux négatifs par rapport à une sensibilité ou spécificité minimum acceptable ou PPV ou NPV pour permettre deux seuils et donc un niveau "incertain" (NA), etc.) ) qui conviennent à différentes situations - les bonnes heuristiques sont généralement très spécifiques à l'application.

Mais pour la question ici, vous pouvez le faire à l'intérieur fet par exemple en utilisant les prédictions obtenues lors de la validation croisée interne pour calculer le ROC, puis trouver votre point / seuil de travail en conséquence.


Commentaires spécifiques à certaines parties de la question

Je comprends que je ne devrais pas rapporter les performances du CV utilisé pour choisir les hyperparamètres optimaux comme une estimation des performances attendues de mon modèle final (qui serait trop optimiste), mais plutôt inclure une boucle de CV externe pour obtenir cette estimation .

Oui. (Bien que l'estimation interne comporte des informations par rapport à l'estimation externe: si elle est beaucoup plus optimiste que l'estimation externe, vous êtes généralement en sur-ajustement.)

Je comprends que la boucle CV interne est utilisée pour la sélection du modèle

Tout type de réglage de modèle basé sur les données, vraiment -> qui inclut le réglage de votre seuil de coupure.

(dans ce cas, les hyperparamètres optimaux) et que la boucle externe est utilisée pour l'évaluation du modèle, c'est-à-dire que le CV interne et externe remplissent deux fonctions différentes qui sont souvent confondues à tort.

Oui.

Autrement dit, le réglage hyperparamétrique fait partie de "la méthode de construction du modèle".

Je préfère le voir aussi: je suis chimiste et comme vous regardez du côté de l'application: pour moi, un modèle formé / ajusté n'est pas complet sans les hyperparamètres, ou plus précisément, un modèle est quelque chose que je peux utiliser directement pour obtenir des prédictions. Cependant, comme vous le constatez, d'autres personnes ont une vue différente (sans réglage d'hyperparamètre). D'après mon expérience, c'est souvent le cas des personnes développant de nouveaux modèles: le réglage hyperparamétrique est alors un «problème résolu» et n'est pas pris en compte. (note latérale: leur point de vue sur ce que la validation croisée peut faire en termes de validation est également légèrement différent de ce que la validation croisée peut faire du côté de l'application).

cbeleites soutient Monica
la source