#1732 met à jour notre pipeline d'assemblage empilé pour utiliser le même séparateur de données que celui utilisé dans AutoML
.Nous avons continué avec #1732 car nous pensions qu'il s'agissait toujours d'une amélioration par rapport à notre approche actuelle (scikit-learn default).
Ce problème suit les mises à jour à long terme que nous pouvons souhaiter apporter à notre séparateur de données pour l'empilement dans AutoML.
Mise à jour : tout en continuant à mettre à jour la #1732, nous avons rencontré une énigme avec l'interaction entre l'empilement et AutoML qui nous a amenés à déterminer si c'était vraiment une bonne idée d'utiliser la même division de données pour l'ensemble d'empilement que celle que nous utilisons dans AutoML. Nous avons décidé non, et comme Raymond l'avait souligné, nous voulons probablement utiliser un CV séparé pour notre ensemble. ( @dsherry a également mentionné une bonne pépite d'informations selon laquelle l'utilisation de l'assemblage permet au modèle de mettre moins d'importance excessive sur les modèles les plus complexes, donc CV aide probablement avec cela - veuillez me corriger si j'ai mal paraphrasé 😂 ).
Plutôt que de continuer ce travail, nous devrions utiliser ce problème pour discuter de la mise à jour d'AutoML pour l'empilement : plus précisément, nous devrions créer une division distincte pour le CV pour l'assemblage empilé. Ce serait similaire à ce que nous avons actuellement en place pour le réglage de seuil binaire.
Plan : si l'empilement est activé, nous allons créer une division distincte qui peut être transmise à l'assemblage empilé pour le CV
Il pourrait être intéressant d'envisager de prendre en charge l'utilisation des prédictions hors échantillon (validation séparée du CV d'origine) lorsque les données sont transmises à l'empilement. Cependant, je suggère que nous commencions par l'approche la plus simple consistant à créer simplement une division distincte si l'empilement est activé.
RE notre discussion, quelques preuves à l'appui des raisons pour lesquelles nous devrions retenir une division distincte que l'assemblage empilé peut utiliser pour effectuer un CV :
@rpeck Pour info , après quelques filatures, nous suivons votre suggestion
@dsherry @rpeck @angela97lin J'ai commencé à examiner ce problème, mais il semble que les classes StackedClassifier
et StackedRegressor
sklearn utilisent une validation croisée interne pendant la formation du modèle afin d'éviter le surapprentissage. Cela semble être le même problème que nous essayons de résoudre avec ce problème, il semble donc qu'il devrait être résolu. Je ne pense pas que nous aurons besoin de faire un pli de CV séparé pour la formation/validation des méthodes d'assemblage empilé, mais qu'en pensez-vous tous ?
Après discussion avec @dsherry , voici l'idée que nous voulons poursuivre
Plan discuté avec @bchen1116 : ce problème suit :
Amélioration des performances séparée : meilleure prise en charge des petites données. Ne créez pas de division séparée pour l'assemblage. Utilisez des preds de pipeline hors échantillon à partir du CV normal (de tous les plis CV) pour former l'ensembler. #1898
Une autre amélioration de performance distincte : entraînez les pipelines et le métallearner sur différentes données. #1897
Commentaire le plus utile
Plan : si l'empilement est activé, nous allons créer une division distincte qui peut être transmise à l'assemblage empilé pour le CV
Il pourrait être intéressant d'envisager de prendre en charge l'utilisation des prédictions hors échantillon (validation séparée du CV d'origine) lorsque les données sont transmises à l'empilement. Cependant, je suggère que nous commencions par l'approche la plus simple consistant à créer simplement une division distincte si l'empilement est activé.
RE notre discussion, quelques preuves à l'appui des raisons pour lesquelles nous devrions retenir une division distincte que l'assemblage empilé peut utiliser pour effectuer un CV :
@rpeck Pour info , après quelques filatures, nous suivons votre suggestion