Recherche de grille sur la validation croisée k-fold

16

J'ai un ensemble de données de 120 échantillons dans un paramètre de validation croisée 10 fois. Actuellement, je prends les données d'entraînement du premier holdout et fais une validation croisée 5 fois dessus pour choisir les valeurs de gamma et C par recherche dans la grille. J'utilise SVM avec le noyau RBF. Puisque je fais une validation croisée de 10 pour rapporter la précision, rappelez-vous, est-ce que j'effectue cette recherche de grille dans les données de formation de chaque document (il y a 10 documents, chacun ayant 10% de test et 90% de données de formation)? Cela ne prendrait-il pas trop de temps?

Si j'utilise le gamma et le C du premier holdout et que je l'utilise pour les 9 restes de la validation croisée k-fold, est-ce une violation parce que j'aurais utilisé les données du train pour obtenir le gamma et le C et utiliser à nouveau le partie des données du train comme test dans le deuxième point d'arrêt?

user13420
la source
Cette question a besoin de plus d'informations. À quel modèle vous adaptez-vous? Qu'est-ce que gamma et C dans ce modèle? De plus, pourriez-vous donner ces informations en modifiant la question, et non avec des commentaires.
probabilitéislogic

Réponses:

14

Oui, ce serait une violation car les données de test pour les plis 2 à 10 de la validation croisée externe auraient fait partie des données d'apprentissage pour le pli 1 qui ont été utilisées pour déterminer les valeurs du noyau et les paramètres de régularisation. Cela signifie que certaines informations sur les données de test se sont potentiellement infiltrées dans la conception du modèle, ce qui donne potentiellement un biais optimiste à l'évaluation des performances, ce qui est le plus optimiste pour les modèles très sensibles au réglage des hyper-paramètres (c'est-à-dire il favorise le plus fortement les modèles avec une caractéristique indésirable).

Ce biais est susceptible d'être le plus fort pour les petits ensembles de données, comme celui-ci, car la variance du critère de sélection du modèle est la plus grande pour les petits ensembles de données, ce qui encourage un sur-ajustement du critère de sélection du modèle, ce qui signifie que plus d'informations sur les données de test peuvent fuir. par.

J'ai écrit un article à ce sujet il y a un an ou deux car j'étais plutôt surpris par l'ampleur des écarts de biais par rapport à la validation croisée imbriquée complète, ce qui peut facilement submerger la différence de performances entre les systèmes de classificateurs. L'article est «Sur le sur-ajustement dans la sélection des modèles et les biais de sélection ultérieurs dans l'évaluation des performances» Gavin C. Cawley, Nicola LC Talbot; JMLR 11 (juillet): 2079-2107, 2010.

Essentiellement, le réglage des hyper-paramètres doit être considéré comme une partie intégrante de l'ajustement du modèle, donc chaque fois que vous entraînez le SVM sur un nouvel échantillon de données, ajustez indépendamment les hyper-paramètres de cet échantillon. Si vous suivez cette règle, vous ne pouvez probablement pas vous tromper trop loin. Il vaut bien la dépense de calcul pour obtenir une estimation de performance impartiale, sinon vous courez le risque de tirer les mauvaises conclusions de votre expérience.

Dikran Marsupial
la source
1
Mon expérience personnelle m'a également rendu très prudent face à de telles sources de sur-ajustement.
cbeleites prend en charge Monica
6

Après avoir effectué la recherche dans la grille pour chaque modèle de substitution, vous pouvez et devez vérifier quelques éléments:

  • variation des paramètres optimisés (ici et C ). Les paramètres optimaux sont-ils stables? Sinon, vous êtes très probablement en difficulté.γC
  • Comparez les performances rapportées de la validation croisée intérieure et extérieure.
    Si la validation croisée intérieure (c'est-à-dire le réglage) est bien meilleure que la validation extérieure (validation du modèle final), alors vous avez aussi des ennuis: vous êtes surajusté. Il existe un risque important que les paramètres réglés ne soient pas optimaux du tout. Cependant, si la validation croisée externe est effectuée correctement (tous les ensembles de tests sont vraiment indépendants des modèles de substitution respectifs), alors vous avez au moins une estimation non biaisée (!) Des performances du modèle. Mais vous ne pouvez pas être sûr qu'il est optimal.
  • L'optimum est-il prononcé? Les performances se dégradent-elles rapidement pour les paramètres sous-optimaux? Quelle est la performance optimale?

Il y a beaucoup à dire sur le sur-ajustement par sélection de modèle. Cependant, il est bon de garder à l'esprit que la variance et le biais optimiste peuvent vraiment nuire

  • la variance signifie que vous pouvez accidentellement vous retrouver assez loin des hyper-paramètres vraiment optimaux.
  • mais aussi le biais peut nuire: si vous sur-adaptez, vous pouvez rencontrer des situations où de nombreux modèles semblent parfaits pour la validation croisée interne (mais ils ne le sont pas vraiment). Dans ce cas, le réglage peut s'égarer car il ne reconnaît pas les différences entre les modèles.
  • Si le biais dépend des hyper-paramètres, vous avez de gros ennuis.

Si vous êtes intéressé par un exemple et que vous pouvez lire l'allemand, je pourrais mettre ma thèse Diplom en ligne.

D'après mon expérience, le réglage des hyperparamètres est une idée extrêmement efficace pour sur-ajuster ...

Maintenant, si vous réalisez que vous êtes en sur-ajustement, vous avez principalement deux options:

  • signalent que l'optimisation a rencontré un problème de sur-ajustement, mais que vous avez effectué une validation externe appropriée qui a abouti à ... (résultats de validation croisée externe).
  • restreindre la complexité du modèle. Une façon de procéder consiste à corriger les hyper-paramètres:

Au lieu de régler les hyper-paramètres de chaque ensemble d'entraînement, vous pouvez pré-spécifier des (hyper) paramètres (c'est-à-dire les fixer au préalable). Je fais cela autant que possible pour mes modèles car j'ai généralement encore moins de cas que vous, voir ci-dessous.
Cependant, cette fixation doit être réellement et honnêtement effectuée à l'avance: par exemple, j'ai demandé à un collègue ses paramètres optimisés sur un ensemble de données similaire (expérience indépendante) ou faire une pré-expérience, y compris une recherche de grille sur les paramètres. Cette première expérience est ensuite utilisée pour fixer certains paramètres expérimentaux ainsi que des paramètres de modèle pour l'expérience réelle et l'analyse des données. Voir ci-dessous pour plus d'explications.

Bien sûr, il est possible de faire des tests appropriés sur des modèles optimisés automatiquement (validation double ou imbriquée), mais la taille de votre échantillon peut ne pas permettre de diviser les données deux fois .
Dans cette situation, il est beaucoup mieux à mon humble avis de rapporter une estimation honnête pour un modèle qui a été construit en utilisant une expérience professionnelle sur la façon de choisir les paramètres de modélisation que de rapporter une estimation trop optimiste sur une sorte de modèle optimisé automatiquement.
Un autre point de vue sur la situation est que vous devez faire un compromis

  • performances médiocres en raison de la mise de côté d'un autre groupe de cas pour l'optimisation des paramètres (taille de l'échantillon de formation plus petite => modèle pire, mais paramètres "optimaux")
  • performances médiocres en raison de la fixation sous-optimale des paramètres par l'expert (mais sur des données d'entraînement plus importantes).

Quelques réflexions similaires sur une question similaire: /stats//a/27761/4598


Sur la fixation des paramètres et les commentaires de Dikran Marsupial

J'utilise le terme hyper-paramètres comme Dikran Marsupial l'utilise dans son article (lien dans sa réponse)

Je travaille avec des données spectroscopiques. Il s'agit d'une sorte de mesure où l'analyse et la modélisation des données comprennent souvent un peu de prétraitement. Cela peut être considéré comme des hyper-paramètres (par exemple, quel ordre de polynôme doit être utilisé pour la ligne de base? Quels canaux de mesure doivent être inclus?). Il y a d'autres décisions qui sont plus proches de vos paramètres svm, par exemple combien de composants principaux utiliser si une PCA est effectuée pour la réduction de dimensionnalité avant que le "vrai" modèle ne soit formé? Et parfois, j'utilise également la classification SVM, donc je dois décider des paramètres SVM.

Maintenant, à mon humble avis, la meilleure façon de corriger les hyper-paramètres est si vous avez des raisons qui proviennent de l'application. Par exemple, je décide généralement du type de base à utiliser pour des raisons physiques / chimiques / biologiques (c'est-à-dire des connaissances sur l'échantillon et le comportement spectroscopique qui en découle). Cependant, je ne suis pas au courant d'une telle argumentation qui aide avec les paramètres SVM ...

Le cas des pré-expériences que j'ai mentionné ci-dessus se présente comme suit:

  • nous prenons les données d'un groupe de cellules (voulons distinguer différentes lignées cellulaires).
  • Les spectres sont analysés, la validation croisée itérative SVM est exécutée (passée une nuit ou deux sur le serveur de calcul).

    • γC
    • J'observe également un certain surajustement: la validation croisée externe n'est pas aussi bonne que les résultats de réglage. C'est comme prévu.
    • Pourtant, il existe des différences de performances sur la plage de réglage des hyper-paramètres, et les performances sur la grille de réglage semblent relativement lisses. Bien.
  • Ma conclusion est la suivante: bien que je ne puisse pas être sûr que les hyper-paramètres finaux soient optimaux, la validation croisée externe me donne une estimation correcte des performances des modèles de substitution.

  • Au cours de la partie expérimentale, nous avons décidé de certains changements dans la configuration expérimentale (des choses qui n'affectent pas le signal au bruit des données, mais qui vont plus loin dans l'automatisation de l'instrument)

  • Nous améliorons les paramètres expérimentaux et acquérons de nouveaux spectres. Comme les cellules, elles doivent être cultivées fraîchement. C'est-à-dire que le nouvel ensemble de données sont même des lots de cultures indépendants.

Maintenant, je suis confronté à la décision: dois-je "sauter" la validation croisée interne et simplement aller avec les hyper-paramètres que j'ai déterminés avec les anciennes données?

  • Comme mentionné ci-dessus, je cours le risque que ces hyper-paramètres prédéterminés ne soient pas optimaux.
  • Mais je ne peux pas non plus être sûr d'obtenir des hyper-paramètres vraiment optimaux en effectuant la validation croisée interne (réglage).
  • Cependant, le réglage sur les anciennes données était stable.
  • En faisant l'optimisation, je m'entraînerai sur moins d'échantillons: comme j'ai de toute façon trop peu d'échantillons (TM), je dois m'attendre à obtenir des modèles pires si je réserve plus d'échantillons pour une deuxième ronde de validation croisée.

Donc, dans ce cas, j'ai décidé de choisir des paramètres fixes (par expérience sur des données similaires et sachant qu'à l'avenir, nous devrons faire nos "devoirs", notamment en revérifiant ces décisions avec des données volumineuses).

Notez que l'important est que je saute l' intérieur ( validation croisée du réglage ), pas l'extérieur. Avec des hyper-paramètres fixes, j'obtiens une estimation non biaisée des performances d'un modèle éventuellement sous-optimal. Il est vrai que cette estimation est sujette à une variance élevée, mais cette variance est fondamentalement la même, que je fasse ou non le réglage interne.
En ignorant la validation croisée externe, j'obtiendrais une estimation biaisée de manière optimiste d'un modèle réglé - qui, selon l'application et les données, peut être sans valeur (si elle est beaucoup trop optimiste) et un biais optimiste peut être tout simplement inacceptable.

cbeleites soutient Monica
la source
désolé d'avoir à voter contre cette réponse, mais l'utilisation de valeurs pré-spécifiées pour les hyper-paramètres n'est pas une bonne pratique car la généralisation optimale dépend des paramètres appropriés pour ces paramètres, qui varieront d'un ensemble de données à l'autre (et en cas de problème, peu de données de l'échantillon pour échantillonner). Une recherche sur la grille avant l'expérience est encore pire car elle entraîne exactement la même forme de biais que celle décrite dans mon article. Pour les SVM, le problème de la division des données deux fois ne s'applique pas, car vous pouvez utiliser la validation croisée virtuelle sans contact comme critère de sélection de modèle dans le CV interne, presque gratuitement.
Dikran Marsupial
La vérification de la variation des paramètres optimisés est cependant une excellente suggestion. Si vous avez suffisamment de données pour que les paramètres et les hyper-paramètres puissent être estimés de manière fiable à partir des données, les types de biais que je mentionne dans mon article ne seront probablement pas trop problématiques. Cependant, s'il y a beaucoup de variabilité dans les valeurs optimisées d'hyper-paramètre, en raison d'un petit ensemble de données, c'est le genre de situation où la validation croisée imbriquée et d'autres approches rigoureuses de ce type sont vraiment nécessaires pour éviter des biais substantiels dans l'estimation des performances.
Dikran Marsupial
@DikranMarsupial: J'ai expliqué mon parcours un peu plus clairement, jetez un œil. De plus, j'ai lu votre article plus attentivement. Je pense que nos points ne sont pas si éloignés les uns des autres. Si vous le souhaitez, rencontrons-nous dans le chat - j'ai un tas de questions sur votre article ...
cbeleites soutient Monica
@DikranMarsupial: (malheureusement, pour la plupart de mes données, je ne peux pas utiliser l'analyse laisser de côté car j'ai des structures de données imbriquées / hiérarchiques). De plus, j'ai rencontré de vilaines surprises avec le laisser-un-donc je fais donc une validation itérative k-fold ou out-of-bootstrap. Cependant, c'est hors sujet pour cette question.
cbeleites prend en charge Monica
@DikranMarsupial: Si les paramètres optimisés ne sont pas stables, j'ai quand même des ennuis. Bien sûr, je ne peux pas conclure que je peux utiliser ces paramètres pour les nouvelles données. Mais aussi, je ne les qualifierais pas (lequel des nombreux jeux de paramètres?) Optimal pour le modèle final ... J'ai vu l'optimisation devenir complètement sauvage, mais cela s'est toujours accompagné de résultats très optimistes de la validation interne (réglage) . Et que je peux mesurer en comparant la validation croisée externe avec l'estimation de validation croisée interne du modèle optimal. Mis à jour la réponse en conséquence.
cbeleites prend en charge Monica
5

γCkterr(γ,C)γCγ,C{2nl,2nl+1,,2nu}γ

La clé, je pense, est de rechercher une certaine douceur dans la surface autour des minimums locaux (ou de chaque projection 1-dim) et de ne pas simplement prendre le minimum global.

γ(pσ)1pγCC

muratoa
la source
Donc, disons que j'ai un ensemble de données avec 120 échantillons. Dois-je trouver gamma et C en utilisant initialement 120 échantillons. Effectuez-vous ensuite une validation croisée multipliée par 10 en utilisant les mêmes gamma et C pour les résistances k lorsque vous utilisez 90% des données à former et 10% des données à tester? Cela ne signifierait-il pas que j'ai utilisé le même ensemble d'entraînement pour obtenir le gamma et le C et qu'une partie des échantillons sont également sur l'ensemble d'essai?
user13420
γC
(γ,C)(γ,C)(γ,C)
2
λβ
2
λβλββ(λ)