Video: La foto impossibile 2024
A volte, l'apprendimento automatico richiede che sia necessario ricorrere alla convalida incrociata. Un problema evidente con la suddivisione del treno / set di test è che in realtà stai introducendo pregiudizi nei tuoi test perché stai riducendo le dimensioni dei tuoi dati di addestramento all'interno del campione. Quando dividi i tuoi dati, potresti effettivamente tenere alcuni esempi utili fuori dall'allenamento. Inoltre, a volte i tuoi dati sono così complessi che un set di test, sebbene apparentemente simile al set di allenamento, non è molto simile perché le combinazioni di valori sono diverse (tipico di dataset altamente dimensionali).
Questi problemi aumentano l'instabilità dei risultati di campionamento quando non si hanno molti esempi. Il rischio di dividere i dati in modo sfavorevole spiega anche perché la divisione treno / test non sia la soluzione preferita dai professionisti dell'apprendimento automatico quando si deve valutare e ottimizzare una soluzione di apprendimento automatico.
La convalida incrociata basata su k-fold è in realtà la risposta. Si basa sulla suddivisione casuale, ma questa volta divide i dati in un numero di pieghe (parti dei dati) di uguale dimensione. Quindi, ogni piega viene tenuta a turno come set di prova e gli altri vengono utilizzati per l'allenamento. Ogni iterazione utilizza una piega diversa come test, che produce una stima dell'errore.
Infatti, dopo aver completato il test su una piega contro le altre utilizzate come allenamento, viene tenuta una piega successiva, diversa dalla precedente, e la procedura viene ripetuta per produrre un'altra stima dell'errore. Il processo continua fino a quando tutte le k-fold vengono usate una volta come set di test e si dispone di un numero k di stime di errore che è possibile calcolare in una stima dell'errore medio (il punteggio di convalida incrociata) e un errore standard delle stime.
Questa procedura offre i seguenti vantaggi:
- Funziona bene indipendentemente dal numero di esempi, perché aumentando il numero di pieghe usate, si aumenta effettivamente la dimensione del set di allenamento (k più grande, set di allenamento più grande, bias ridotto) e diminuendo le dimensioni del set di test.
- Le differenze nella distribuzione delle singole pieghe non contano tanto. Quando una piega ha una distribuzione diversa rispetto alle altre, viene utilizzata una sola volta come set di prova e viene unita ad altre come parte del set di allenamento durante i test rimanenti.
- In realtà stai testando tutte le osservazioni, quindi stai testando completamente l'ipotesi di apprendimento automatico utilizzando tutti i dati che hai.
- Prendendo la media dei risultati, puoi aspettarti un rendimento predittivo. Inoltre, la deviazione standard dei risultati può dirvi quanta variazione ci si può aspettare in dati reali fuori campione. Una maggiore variazione nelle prestazioni convalidate incrociate ti informa di dati estremamente variegati che l'algoritmo non è in grado di catturare correttamente.
Utilizzare la convalida incrociata di k-fold è sempre la scelta ottimale a meno che i dati che stai utilizzando abbiano qualche tipo di ordine che conta. Ad esempio, potrebbe coinvolgere una serie temporale, come le vendite. In tal caso, non utilizzare un metodo di campionamento casuale, ma affidarsi a una suddivisione treno / test basata sulla sequenza originale, in modo che l'ordine venga conservato e si possa provare sugli ultimi esempi di quella serie ordinata.