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?
Réponses:
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.
la source
Après avoir effectué la recherche dans la grille pour chaque modèle de substitution, vous pouvez et devez vérifier quelques éléments:
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.
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
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:
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
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:
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).
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?
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.
la source
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.
la source