k-fold Convalida incrociata dell'apprendimento degli ensemble


20

Sono confuso su come partizionare i dati per la validazione incrociata k-fold dell'apprendimento d'insieme.

Supponendo di avere un quadro di apprendimento dell'ensemble per la classificazione. Il mio primo livello contiene i modelli di classificazione, ad esempio svm, alberi decisionali.

Il mio secondo livello contiene un modello di voto, che combina le previsioni del primo livello e fornisce la previsione finale.

Se utilizziamo la convalida 5 pieghe incrociate, sto pensando di utilizzare le 5 pieghe come segue:

  • 3 pieghe per l'allenamento del primo strato
  • 1 piega per l'allenamento del secondo strato
  • 1 piega per il test

È questo il modo corretto? I dati di allenamento per il primo e il secondo livello dovrebbero essere indipendenti? Penso che dovrebbero essere indipendenti in modo che il quadro di apprendimento dell'ensemble sia solido.

Il mio amico suggerisce che i dati di allenamento per il primo e il secondo livello dovrebbero essere gli stessi, vale a dire

  • 4 pieghe per l'allenamento del primo e del secondo strato
  • 1 piega per il test

In questo modo avremo un errore più accurato del framework di apprendimento dell'ensemble e la messa a punto iterativa del framework sarà più accurata, poiché si basa su un singolo dato di training. Inoltre, il secondo strato può essere orientato verso i dati di allenamento indipendenti

Tutti i consigli sono molto apprezzati

Risposte:


26

L'apprendimento degli ensemble si riferisce a diversi metodi. Potenziamento e insaccamento sono probabilmente i due più comuni. Sembra che tu stia tentando di implementare un metodo di apprendimento dell'ensemble chiamato stacking . Lo stacking mira a migliorare la precisione combinando le previsioni di diversi algoritmi di apprendimento. Ci sono molti modi per fare stack e non molta teoria rigorosa. È intuitivo e popolare però.

Considera l'approccio del tuo amico. Si stanno adattando i modelli del primo strato su quattro pieghe su cinque e quindi si adatta il modello del secondo strato (votazione) usando le stesse quattro pieghe. Il problema è che il secondo strato favorirà il modello con l'errore di addestramento più basso. Stai utilizzando gli stessi dati per adattare i modelli e per elaborare una procedura per aggregare quei modelli. Il secondo livello dovrebbe combinare i modelli utilizzando previsioni fuori campione . Il tuo metodo è migliore, ma c'è un modo per fare ancora meglio.

Continueremo a tralasciare una piega a scopo di test. Prendi le quattro pieghe e usa un CV di 4 volte per ottenere previsioni fuori campione per ciascuno dei tuoi modelli del primo livello su tutte e quattro le pieghe. Cioè, tralasciare una delle quattro pieghe e adattare i modelli sulle altre tre e quindi prevedere i dati dati. Ripetere l'operazione per tutte e quattro le pieghe in modo da ottenere previsioni fuori campione su tutte e quattro le pieghe. Quindi adattare il modello del secondo livello a queste previsioni fuori campione. Quindi adattare nuovamente i modelli del primo strato su tutte e quattro le pieghe. Ora puoi passare alla quinta piega che non hai ancora toccato. Utilizzare i modelli del primo livello adatti a tutte e quattro le pieghe insieme al modello del secondo livello per stimare l'errore sui dati dati. È possibile ripetere nuovamente questo processo con le altre pieghe del raccordo del modello del primo e del secondo strato.

Se si è soddisfatti delle prestazioni, generare previsioni fuori campione per i modelli del primo livello su tutte e cinque le pieghe e quindi adattare il modello del secondo livello su questi. Quindi adatta i modelli del primo livello un'ultima volta su tutti i tuoi dati e usali con il modello del secondo livello su tutti i nuovi dati!

Infine, alcuni consigli generali. Otterrai maggiori vantaggi se i tuoi modelli di primo livello sono abbastanza distinti tra loro. Sei sulla strada giusta qui usando SVM e alberi decisionali, che sono piuttosto diversi l'uno dall'altro. Dal momento che esiste un effetto di media dal modello del secondo livello, potresti voler provare a sovrastimare i modelli del primo livello in modo incrementale, in particolare se ne hai molti. Il secondo strato è generalmente qualcosa di semplice e vincoli come la non negatività dei pesi e la monotonia sono comuni. Infine, ricorda che lo stacking si basa sulla validazione incrociata, che è solo una stima del rischio reale. Se si ottengono tassi di errore molto diversi e pesi del modello molto diversi tra le pieghe, ciò indica che la stima del rischio basata su CV presenta una varianza elevata. In tal caso, potresti prendere in considerazione una semplice fusionedei tuoi modelli di primo livello. In alternativa, è possibile scendere a compromessi impilando con vincoli sul peso massimo / minimo posizionati su ciascun modello del primo strato.


Grazie per i tuoi suggerimenti molto utili. Non capisco il tuo quarto paragrafo. Mi sembra che si stia riqualificando di nuovo? Pensavo che il tuo terzo paragrafo avesse riassunto il tuo metodo proposto?
Michael,

1
Come al solito con la convalida incrociata, una volta soddisfatti del modello, ci riqualifichiamo utilizzando tutti i dati. I modelli descritti nel paragrafo tre non si adattano ai dati forniti. La distribuzione dei dati è uno strumento che guida la valutazione e la selezione dei modelli. Dovresti sempre adattare il modello finale a tutti i dati.
MichaelJ,

Mi sembra che questo approccio sia simile a una rete neurale feedforward
Michael,

Ottima spiegazione L'unica cosa che manca è un diagramma;)
josh
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.