Convalida incrociata: K-fold vs sottocampionamento casuale ripetuto


10

Mi chiedo quale tipo di validazione incrociata del modello scegliere per il problema di classificazione: K-fold o sottocampionamento casuale (campionamento bootstrap)?

La mia ipotesi migliore è usare 2/3 del set di dati (che è ~ 1000 articoli) per l'allenamento e 1/3 per la convalida.

In questo caso K-fold fornisce solo tre iterazioni (pieghe), che non è sufficiente per vedere un errore medio stabile.

D'altra parte non mi piace la funzione di sottocampionamento casuale: che alcuni elementi non saranno mai selezionati per l'addestramento / convalida e alcuni verranno utilizzati più di una volta.

Algoritmi di classificazione utilizzati: foresta casuale e regressione logistica.


1
Immagino che una domanda precedente sia: questa selezione non dipende dall'algoritmo (principalmente dal suo comportamento) da valutare?
Rubens,

1
@Rubens, ho aggiornato la domanda: sono interessato alla RF e alla regressione logistica
IharS,

Risposte:


7

Se si dispone di un numero adeguato di campioni e si desidera utilizzare tutti i dati, la validazione incrociata di k-fold è la strada da percorrere. Avere ~ 1.500 sembra molto, ma se è adeguato per la validazione incrociata di k-fold dipende anche dalla dimensionalità dei dati (numero di attributi e numero di valori di attributo). Ad esempio, se ogni osservazione ha 100 attributi, allora 1.500 osservazioni è bassa.

Un altro potenziale svantaggio della convalida incrociata di k-fold è la possibilità di un singolo, estremo valore anomalo che distorca i risultati. Ad esempio, se hai un estremo estremo che può influenzare pesantemente il tuo classificatore, quindi in una convalida incrociata di 10 volte, saranno interessate 9 delle 10 partizioni (anche se per le foreste casuali, non penso che avresti quel problema ).

Il sottocampionamento casuale (ad es. Campionamento bootstrap) è preferibile quando si è sottocampionati o quando si ha la situazione sopra, in cui non si desidera che ogni osservazione compaia in k-1 pieghe.


4

Immagino tu dica che vuoi usare una convalida incrociata tripla perché sai qualcosa sui tuoi dati (che l'uso di k = 10 provocherebbe un eccesso di adattamento? Sono curioso del tuo ragionamento). Non sono sicuro che tu lo sappia, altrimenti puoi semplicemente usare un k più grande.

Se pensi ancora di non poter usare la convalida incrociata k-fold standard, allora potresti modificare un po 'l'algoritmo: supponi di aver diviso i dati in 30 pieghe e ogni volta usi 20 per l'allenamento e 10 per la valutazione (e poi sposta su una piega e usa il primo e l'ultimo 9 come valutazione e il resto come formazione). Ciò significa che sei in grado di utilizzare tutti i tuoi dati.

Quando utilizzo la convalida incrociata di k-fold di solito eseguo il processo più volte con una randomizzazione diversa per assicurarmi di disporre di dati sufficienti, in caso contrario vedrai prestazioni diverse a seconda della randomizzazione. In questi casi, suggerirei il campionamento. Il trucco quindi è farlo abbastanza spesso.

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.