Convalida incrociata in StackingClassifier Scikit-Learn

Aug 20 2020

StackingClassifier Nella documentazione di Scikit-Learn è scritto:

Si noti che estimators_sono adattati per intero Xmentre final_estimator_viene addestrato utilizzando previsioni convalidate in modo incrociato degli stimatori di base utilizzando cross_val_predict.

... la convalida incrociata 5 volte predefinita

La mia domanda, perché utilizzare la convalida incrociata di 5 volte solo nello stimatore finale? perché lo stimatore finale non è adattato all'intero X '(output dagli stimatori di base)?

Risposte

1 RobbytheBelgian Aug 26 2020 at 13:03

Ciò include 2 domande, affronterò ciascuna di esse.

  1. Potremmo usare la convalida incrociata sull'intero sistema, ma questo ci danneggerebbe un po' troppo.

Lo scopo della convalida incrociata è trovare i parametri ottimali, quelli che consentono al modello di adattarsi bene ai dati senza un adattamento eccessivo. È sufficiente che il nostro stimatore finale lo faccia; non è necessario determinare individualmente le impostazioni di tutti gli stimatori di base. Gli stimatori di base possono includere una serie di diverse impostazioni dei parametri, ad esempio; così come una selezione di diversi tipi di classificatori. Se qualcuno di loro è incline all'overfitting, questo dovrebbe essere compensato da altri che non hanno questo problema. Finché lo stimatore finale non mette tutte le sue uova nel paniere sbagliato, dovremmo andare bene (ed è per questo che abbiamo bisogno di una convalida incrociata qui, per assicurarci che ciò non accada).

  1. Addestreremo lo stimatore finale sull'intero set di addestramento - questo accade dopo aver trovato i parametri ottimali o il set di stimatori di base utilizzando la convalida incrociata. Come dice il nome, la convalida incrociata è intesa per convalidare il metodo. Non per creare il modello finale.