2011-10-01 17 views
11

In k fold abbiamo questo: dividi i dati in k sottoinsiemi di (approssimativamente) di uguale dimensione. Si addestrano k volte in rete, ogni volta lasciando uno dei sottoinsiemi dall'allenamento, ma usando solo il sottoinsieme omesso su calcola qualsiasi criterio di errore ti interessi. Se k è uguale alla dimensione del campione , questa viene chiamata convalida incrociata "leave-one-out". "Leave-v-out" è una versione più elaborata e costosa della convalida incrociata che comprende lasciando fuori tutti i possibili sottoinsiemi di casi v.convalida incrociata 10 volte

cosa significano i termini Training e testing? Non riesco a capire.

vorresti comunicarmi qualche riferimento dove posso imparare questo algoritmo con un esempio?

Train classifier on folds: 2 3 4 5 6 7 8 9 10; Test against fold: 1 
Train classifier on folds: 1 3 4 5 6 7 8 9 10; Test against fold: 2 
Train classifier on folds: 1 2 4 5 6 7 8 9 10; Test against fold: 3 
Train classifier on folds: 1 2 3 5 6 7 8 9 10; Test against fold: 4 
Train classifier on folds: 1 2 3 4 6 7 8 9 10; Test against fold: 5 
Train classifier on folds: 1 2 3 4 5 7 8 9 10; Test against fold: 6 
Train classifier on folds: 1 2 3 4 5 6 8 9 10; Test against fold: 7 
Train classifier on folds: 1 2 3 4 5 6 7 9 10; Test against fold: 8 
Train classifier on folds: 1 2 3 4 5 6 7 8 10; Test against fold: 9 
Train classifier on folds: 1 2 3 4 5 6 7 8 9; Test against fold: 10 
+0

Vedere [tipi comuni di convalida incrociata] (http: //en.wikipedia.org/wiki/Cross-validation_% 28statistics% 29 # Common_types_of_cross-validation) su Wikipedia. –

risposta

24

In breve: formazione è il processo di fornire un feedback al algoritmo per regolare il potere predittivo del classificatore (s) che produce.

Il test è il processo per determinare l'accuratezza realistica dei classificatori che sono stati prodotti dall'algoritmo. Durante il test, ai classificatori vengono date istanze di dati mai viste prima di fare una conferma finale che la precisione del classificatore non è drasticamente diversa da quella durante l'allenamento.

Tuttavia, ti manca un passaggio chiave nel mezzo: la convalida (che è ciò a cui ti stai riferendo nella convalida incrociata di 10 volte/k volte).

convalida è (solitamente) eseguita dopo ogni fase di formazione e viene eseguita al fine di aiutare a determinare se il classificatore viene overfitted. La fase di validazione non fornisce alcun feedback all'algoritmo al fine di regolare il classificatore, ma aiuta a determinare se il sovradattamento si sta verificando e segnala quando la formazione deve essere interrotta.

pensare al processo nel modo seguente:

1. Train on the training data set. 
2. Validate on the validation data set. 
if(change in validation accuracy > 0) 
    3. repeat step 1 and 2 
else 
    3. stop training 
4. Test on the testing data set. 
+0

Grazie mille! – Nickool

+0

@nik parsa, buon divertimento. – Kiril

15

Nel metodo k volte, è necessario dividere i dati in segmenti k, k-1 di essi sono utilizzati per la formazione, mentre l'altra lasciata fuori e usato per i test. Viene eseguito k volte, la prima volta, il primo segmento viene utilizzato per il test e il restante viene utilizzato per l'allenamento, quindi il secondo segmento viene utilizzato per il test e il rimanente viene utilizzato per l'allenamento e così via. È chiaro dal tuo esempio di 10 volte, quindi dovrebbe essere semplice, rileggere.

Ora circa che tipo di formazione è e che cosa prova è:

formazione nella classificazione è la parte in cui viene creato un modello di classificazione, con qualche algoritmo, algoritmi popolari per la creazione di modelli di formazione sono ID3, C4.5 ecc

Test significa per valutare il modello di classificazione eseguendo il modello sui dati di test, quindi creando una matrice di confusione e quindi calcolando l'accuratezza e il tasso di errore del modello.

Nel metodo K-fold, vengono creati i modelli k (come indicato nella descrizione precedente) e il modello più accurato per la classificazione è il selezionato.

+0

Grazie a SpeedBirdNine entrambi erano perfetti. Scelgo prima uno – Nickool

+4

"il modello più accurato per la classificazione è il selezionato". Non sono d'accordo qui. Lo scopo del metodo k-fold è testare le prestazioni del modello senza il bias della partizione del set di dati calcolando le prestazioni medie (accuratezza o altro) su tutte le partizioni k. Se selezioni la partizione migliore, i risultati vengono completamente distorti a tuo vantaggio e se stai scrivendo un documento scientifico (ad esempio ...), i tuoi colleghi non dovrebbero accettare la carta per questo motivo. –

Problemi correlati