k-fold Validation croisée de l'apprentissage d'ensemble

20

Je suis confus sur la façon de partitionner les données pour la validation croisée k-fold de l'apprentissage d'ensemble.

En supposant que j'ai un cadre d'apprentissage d'ensemble pour la classification. Ma première couche contient les modèles de classification, par exemple svm, les arbres de décision.

Ma deuxième couche contient un modèle de vote, qui combine les prédictions de la première couche et donne la prédiction finale.

Si nous utilisons la validation croisée 5 fois, je pense utiliser les 5 plis comme suit:

  • 3 plis pour l'entraînement de la première couche
  • 1 pli pour l'entraînement de la deuxième couche
  • 1 fois pour les tests

C'est la bonne route? Les données d'apprentissage pour la première et la deuxième couche devraient-elles être indépendantes? Je pense qu'ils devraient être indépendants afin que le cadre d'apprentissage de l'ensemble soit solide.

Mon ami suggère que les données d'entraînement pour la première et la deuxième couche soient les mêmes, c'est-à-dire

  • 4 plis pour l'entraînement des première et deuxième couches
  • 1 fois pour les tests

De cette façon, nous aurons une erreur plus précise du cadre d'apprentissage d'ensemble, et le réglage itératif du cadre sera plus précis, car il est basé sur une seule donnée de formation. De plus, la deuxième couche peut être biaisée vers les données d'entraînement indépendantes

Tous les conseils sont grandement appréciés

Michael
la source

Réponses:

26

L'apprentissage en ensemble fait référence à plusieurs méthodes différentes. Le boosting et l'ensachage sont probablement les deux plus courants. Il semble que vous tentiez de mettre en œuvre une méthode d'apprentissage d'ensemble appelée empilement . L'empilement vise à améliorer la précision en combinant les prédictions de plusieurs algorithmes d'apprentissage. Il y a plusieurs façons de faire l'empilement et pas beaucoup de théorie rigoureuse. C'est intuitif et populaire cependant.

Considérez l'approche de votre ami. Vous ajustez les modèles de première couche sur quatre plis sur cinq, puis vous ajustez le modèle de deuxième couche (vote) en utilisant les quatre mêmes plis. Le problème est que la deuxième couche favorisera le modèle avec l'erreur d'apprentissage la plus faible. Vous utilisez les mêmes données pour ajuster les modèles et concevoir une procédure pour agréger ces modèles. La deuxième couche devrait combiner les modèles en utilisant des prédictions hors échantillon . Votre méthode est meilleure, mais il existe un moyen de faire encore mieux.

Nous continuerons de laisser de côté un seul élément à des fins de test. Prenez les quatre plis et utilisez le CV 4 fois pour obtenir des prédictions hors échantillon pour chacun de vos modèles de première couche sur les quatre plis. Autrement dit, omettez l'un des quatre plis et ajustez les modèles sur les trois autres, puis prédisez sur les données retenues. Répétez l'opération pour les quatre plis afin d'obtenir des prédictions hors échantillon sur les quatre plis. Ajustez ensuite le modèle de la deuxième couche sur ces prédictions hors échantillon. Ensuite, ajustez à nouveau les modèles de première couche sur les quatre plis. Vous pouvez maintenant passer au cinquième pli que vous n'avez pas encore touché. Utilisez les premiers modèles de calque ajustés sur les quatre plis avec le deuxième modèle de calque pour estimer l'erreur sur les données retenues. Vous pouvez répéter ce processus à nouveau avec les autres plis maintenus hors de l'ajustement du modèle de première et deuxième couche.

Si vous êtes satisfait des performances, générez des prédictions hors échantillon pour les modèles de première couche sur les cinq plis, puis ajustez le modèle de deuxième couche sur ceux-ci. Ajustez ensuite les modèles de première couche une dernière fois sur toutes vos données et utilisez-les avec le modèle de deuxième couche sur toutes les nouvelles données!

Enfin, quelques conseils généraux. Vous obtiendrez plus d'avantages si vos modèles de première couche sont assez distincts les uns des autres. Vous êtes sur la bonne voie ici en utilisant SVM et des arbres de décision, qui sont assez différents les uns des autres. Puisqu'il y a un effet de moyenne du modèle de deuxième couche, vous voudrez peut-être essayer de sur-ajuster vos modèles de première couche progressivement, en particulier si vous en avez beaucoup. La deuxième couche est généralement quelque chose de simple et les contraintes comme la non-négativité des poids et la monotonie sont courantes. Enfin, n'oubliez pas que l'empilement repose sur la validation croisée, qui n'est qu'une estimation du risque réel. Si vous obtenez des taux d'erreur très différents et des poids de modèle très différents selon les plis, cela indique que votre estimation du risque basée sur le cv présente une variance élevée. Dans ce cas, vous pouvez envisager un simple mélangede vos modèles de première couche. Ou, vous pouvez faire des compromis en empilant avec des contraintes sur le poids max / min placé sur chaque modèle de première couche.

MichaelJ
la source
Merci pour vos suggestions très utiles. Je ne comprends pas votre quatrième paragraphe. Il me semble que c'est une nouvelle formation? Je pensais que votre troisième paragraphe résumait votre méthode proposée?
Michael
1
Comme d'habitude avec la validation croisée, une fois que nous sommes satisfaits du modèle, nous re-formons en utilisant toutes les données. Les modèles décrits au paragraphe trois ne correspondent pas aux données retenues. La conservation des données est un outil pour guider l'évaluation et la sélection des modèles. Vous devez toujours adapter le modèle final à toutes les données.
MichaelJ
Il me semble que cette approche est similaire à un réseau de neurones à action directe
Michael
Grande explication. La seule chose qui manque est un diagramme;)
josh