Validation croisée dans StackingClassifier Scikit-Learn

Aug 20 2020

StackingClassifier Dans la documentation de Scikit-Learn , il est écrit :

Notez que estimators_sont ajustés sur l'intégralité de Xwhile final_estimator_est formé à l'aide de prédictions validées croisées des estimateurs de base à l'aide de cross_val_predict.

... la validation croisée quintuple par défaut

Ma question, pourquoi utiliser la validation croisée 5 fois uniquement dans l'estimateur final ? pourquoi l'estimateur final n'est-il pas ajusté sur le X' complet (sortie des estimateurs de base) ?

Réponses

1 RobbytheBelgian Aug 26 2020 at 13:03

Cela comprend 2 questions, je vais répondre à chacune d'entre elles.

  1. On pourrait utiliser la validation croisée sur tout le système, mais cela nous handicaperait un peu trop.

Le but de la validation croisée est de trouver les paramètres optimaux, ceux qui permettent au modèle de bien ajuster les données sans sur-ajustement. Il suffit que notre estimateur final le fasse ; il n'est pas nécessaire de déterminer individuellement les paramètres de tous les estimateurs de base. Les estimateurs de base peuvent inclure un tas de réglages de paramètres différents, par exemple ; ainsi qu'une sélection de différents types de classificateurs. Si l'un d'entre eux est sujet au surajustement, cela devrait être compensé par d'autres qui n'ont pas ce problème. Tant que l'estimateur final ne met pas tous ses œufs dans le mauvais panier, tout devrait bien se passer (et c'est pourquoi nous avons besoin d'une validation croisée ici, pour nous assurer que cela ne se produise pas).

  1. Nous formerons l'estimateur final sur l'ensemble d'apprentissage complet - cela se produit après avoir trouvé les paramètres optimaux ou l'ensemble d'estimateurs de base à l'aide de la validation croisée. Comme son nom l'indique, la validation croisée est destinée à valider la méthode. Pas pour créer le modèle final.