Quanti dati sono sufficienti per addestrare il mio modello di apprendimento automatico?


11

Ho lavorato sull'apprendimento automatico e la bioinformatica per un po ', e oggi ho avuto una conversazione con un collega sui principali problemi generali del data mining.

Il mio collega (che è un esperto di apprendimento automatico) ha affermato che, a suo avviso, l'aspetto pratico probabilmente più importante dell'apprendimento automatico è come capire se hai raccolto abbastanza dati per formare il tuo modello di apprendimento automatico .

Questa affermazione mi ha sorpreso, perché non avevo mai dato tanta importanza a questo aspetto ...

Ho quindi cercato ulteriori informazioni su Internet e ho trovato questo post sui rapporti di FastML.com come regola empirica di cui hai bisogno circa 10 volte più istanze di dati quante sono le funzionalità .

Due domande:

1 - Questo problema è davvero particolarmente rilevante nell'apprendimento automatico?

2 - La regola 10 volte funziona? Ci sono altre fonti pertinenti per questo tema?


1. Sì 2. È una buona base ma puoi aggirarla con regolarizzazione per ridurre i gradi di libertà effettivi . Questo funziona particolarmente bene con l'apprendimento profondo. 3. È possibile diagnosticare la situazione in merito al problema tracciando la curva di apprendimento della dimensione del campione rispetto all'errore o al punteggio.
Emre,

@Emre Thanks! Puoi anche suggerirmi alcuni articoli o altro materiale da leggere?
DavideChicco.it,

Questo di solito sarà trattato insieme alla validazione incrociata e ad altre tecniche di validazione del modello nel tuo libro di testo.
Emre,

La regola delle 10 volte è ottima se riesci a raggiungerla, ma non è pratica in alcuni contesti aziendali. Esistono molte situazioni in cui il numero di funzioni è molto maggiore delle istanze di dati (p >> n). Esistono tecniche di apprendimento automatico progettate specificamente per affrontare queste situazioni.
Data Science Guy,

Se hai bisogno di una spiegazione dettagliata che possa aiutarti a comprendere il grafico della curva di apprendimento, dai un'occhiata a: scikit-yb.org/en/latest/api/model_selection/learning_curve.html
shrikanth singh

Risposte:


6

La regola delle dieci volte mi sembra una regola empirica, ma è vero che le prestazioni dell'algoritmo di apprendimento automatico potrebbero diminuire se non le fornisci con dati di allenamento sufficienti.

Un modo pratico e basato sui dati per determinare se disponi di dati di allenamento sufficienti consiste nel tracciare una curva di apprendimento, come quella nell'esempio seguente:

Curva di apprendimento

La curva di apprendimento rappresenta l'evoluzione dell'addestramento e gli errori di test quando si aumenta la dimensione del set di allenamento.

  • L'errore di allenamento aumenta all'aumentare della dimensione del set di dati, poiché diventa più difficile adattarsi a un modello che tiene conto della crescente complessità / variabilità del set di addestramento.
  • L'errore del test diminuisce quando si aumenta la dimensione del set di dati, poiché il modello è in grado di generalizzare meglio da una maggiore quantità di informazioni.

Come puoi vedere nella parte più a destra della trama, le due linee nella trama tendono a raggiungere e asintotizzare. Pertanto, alla fine raggiungerai un punto in cui l'aumento delle dimensioni del set di dati non avrà alcun impatto sul modello addestrato.

La distanza tra l'errore del test e gli asintoti dell'errore di allenamento è una rappresentazione del sovradimensionamento del modello. Ma ancora più importante, questa trama sta dicendo se hai bisogno di più dati. Fondamentalmente, se rappresenti un errore di test e di allenamento per aumentare sottoinsiemi più grandi di dati di allenamento e le linee non sembrano raggiungere un asintoto, dovresti continuare a raccogliere più dati.


Nella funzione learning_curve dovrei passare X_train, y_train: Only train subsetoX, y: the entire dataset
Rookie_123 il

Questa curva viene creata come risultato dell'applicazione della convalida incrociata quando si aumenta il numero di campioni. Pertanto, è necessario l'intero set di dati.
Pablo Suau,

4
  1. Sì, il problema è sicuramente rilevante, poiché la tua capacità di adattarsi al modello dipenderà dalla quantità di dati che hai, ma, soprattutto, dipende dalla qualità dei predittori.
  2. Una regola di 10 volte potrebbe essere una regola empirica (e ce ne sono molte altre), ma dipende davvero dall'utilità predittiva delle tue funzionalità. Ad esempio, il set di dati dell'iride è piuttosto piccolo ma facilmente risolvibile, poiché le caratteristiche producono una buona separazione degli obiettivi. Al contrario, potresti avere 10 milioni di esempi e non adattarti se le funzionalità sono deboli.

Grazie! Puoi anche suggerirmi alcuni articoli o altro materiale da leggere?
DavideChicco.it,
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.