Come valutare gli algoritmi di machine learning
Una volta definito il problema e preparati i dati, è necessario applicare algoritmi di apprendimento automatico ai dati per risolvere il problema.
Puoi dedicare molto tempo alla scelta, all'esecuzione e all'ottimizzazione degli algoritmi. Vuoi assicurarti di utilizzare il tuo tempo in modo efficace per avvicinarti al tuo obiettivo.
In questo post seguirai un processo per testare rapidamente gli algoritmi e scoprire se esiste o meno una struttura nel tuo problema affinché gli algoritmi possano apprendere e quali algoritmi sono efficaci.
Cablaggio di prova
È necessario definire un cablaggio di prova. Il test cablaggio è costituito dai dati su cui addestrerai e testerai un algoritmo e dalla misura delle prestazioni che utilizzerai per valutarne le prestazioni. È importante definire bene il sistema di test in modo da potersi concentrare sulla valutazione di diversi algoritmi e riflettere profondamente sul problema.
L'obiettivo del test cablaggio è quello di essere in grado di testare gli algoritmi in modo rapido e coerente rispetto a una rappresentazione corretta del problema da risolvere. Il risultato del test di più algoritmi rispetto al cablaggio sarà una stima di come una varietà di algoritmi si comportano sul problema rispetto a una misura di prestazione scelta. Saprai quali algoritmi potrebbe valere la pena mettere a punto sul problema e quali non dovrebbero essere considerati ulteriormente.
I risultati ti daranno anche un’indicazione di quanto sia apprendibile il problema. Se una varietà di algoritmi di apprendimento diversi universalmente ottengono scarsi risultati sul problema, ciò potrebbe essere un'indicazione di una mancanza di struttura a disposizione degli algoritmi per l'apprendimento. Ciò potrebbe essere dovuto al fatto che in realtà manca una struttura apprendibile nei dati selezionati o potrebbe essere un'opportunità per provare diverse trasformazioni per esporre la struttura agli algoritmi di apprendimento.
Misura della prestazione
La misura della prestazione è il modo in cui si desidera valutare una soluzione al problema. È la misurazione che effettuerai delle previsioni effettuate da un modello addestrato sul set di dati di test.
Le misure delle prestazioni sono in genere specializzate per la classe di problemi con cui stai lavorando, ad esempio classificazione, regressione e clustering. Molte misure di prestazione standard ti daranno un punteggio significativo per l'ambito del tuo problema. Ad esempio, l'accuratezza della classificazione (la correzione corretta totale divisa per il totale delle previsioni effettuate moltiplicando per 100 per trasformarla in una percentuale).
Potresti anche volere un'analisi più dettagliata delle prestazioni, ad esempio potresti voler conoscere i falsi positivi in un problema di classificazione dello spam perché la posta elettronica valida verrà contrassegnata come spam e non potrà essere letta.
Ci sono molte misure di prestazione standard tra cui scegliere. Raramente è necessario ideare da soli una nuova misura delle prestazioni poiché generalmente è possibile trovarne o adattarne una che catturi al meglio i requisiti del problema da risolvere. Osserva i problemi simili che hai scoperto e le misure di prestazione utilizzate per vedere se è possibile adottarne qualcuno.
Testare e addestrare set di dati
Dai dati trasformati, dovrai selezionare un set di test e un set di training. Un algoritmo verrà addestrato sul set di dati di training e verrà valutato rispetto al set di test. Ciò può essere semplice come selezionare una suddivisione casuale dei dati (66% per l'addestramento, 34% per i test) o può comportare metodi di campionamento più complicati.
Un modello addestrato non viene esposto al set di dati di test durante l'addestramento e qualsiasi previsione effettuata su tale set di dati è progettata per essere indicativa delle prestazioni del modello in generale. Pertanto, vuoi assicurarti che la selezione dei tuoi set di dati sia rappresentativa del problema che stai risolvendo.
Convalida incrociata
Un approccio più sofisticato rispetto all'utilizzo di un set di dati di test e training consiste nell'utilizzare l'intero set di dati trasformato per addestrare e testare un determinato algoritmo. Un metodo che potresti utilizzare nel tuo test cablaggio per eseguire questa operazione è chiamato convalida incrociata.
Innanzitutto comporta la separazione del set di dati in un numero di gruppi di istanze di uguali dimensioni (chiamati pieghe). Il modello viene quindi addestrato su tutte le pieghe tranne quella che è stata tralasciata e il modello preparato viene testato su quella piega tralasciata. Il processo viene ripetuto in modo che ogni piega abbia l'opportunità di essere esclusa e di fungere da set di dati di test. Infine, viene calcolata la media delle misure di prestazione tra tutti i passaggi per stimare la capacità dell'algoritmo sul problema.
Ad esempio, una convalida incrociata tripla comporterebbe l'addestramento e il test di un modello 3 volte:
- #1: Allenati sulle pieghe 1+2, prova sulla piega 3
- #2: Allenati sulle pieghe 1+3, prova sulla piega 2
- #3: Allenati sulle pieghe 2+3, prova sulla piega 1
Il numero di pieghe può variare in base alla dimensione del set di dati, ma i numeri comuni sono 3, 5, 7 e 10 pieghe. L'obiettivo è ottenere un buon equilibrio tra le dimensioni e la rappresentazione dei dati nei set di training e test.
Quando hai appena iniziato, attieniti a una semplice suddivisione dei dati di formazione e test (ad esempio 66%/34%) e passa alla convalida incrociata una volta acquisita maggiore sicurezza.
Testare algoritmi
Quando si inizia con un problema e si definisce un test di cui si è soddisfatti, è il momento di verificare a campione una varietà di algoritmi di apprendimento automatico. Il controllo a campione è utile perché consente di vedere molto rapidamente se sono presenti strutture apprendibili nei dati e stimare quali algoritmi potrebbero essere efficaci sul problema.
Il controllo a campione ti aiuta anche a risolvere eventuali problemi nel tuo cablaggio di prova e ad assicurarti che la misura delle prestazioni scelta sia appropriata.
Il miglior primo algoritmo per il controllo a campione è casuale. Collega un generatore di numeri casuali per generare previsioni nell'intervallo appropriato. Questo dovrebbe essere il peggiore “risultato dell’algoritmo” ottenuto e sarà la misura con cui sarà possibile valutare tutti i miglioramenti.
Seleziona 5-10 algoritmi standard appropriati per il tuo problema ed eseguili attraverso il tuo sistema di test. Per algoritmi standard intendo metodi popolari senza configurazioni speciali. Appropriato per il tuo problema significa che gli algoritmi possono gestire la regressione se hai un problema di regressione.
Scegli i metodi dai raggruppamenti di algoritmi che abbiamo già esaminato. Mi piace includere un mix diversificato e avere 10-20 algoritmi diversi tratti da una vasta gamma di tipi di algoritmi. A seconda della libreria che sto utilizzando, potrei controllare fino a oltre 50 metodi popolari per individuare rapidamente i metodi promettenti.
Se desideri eseguire molti metodi, potrebbe essere necessario rivedere la preparazione dei dati e ridurre la dimensione del set di dati selezionato. Ciò potrebbe ridurre la fiducia nei risultati, quindi esegui test con set di dati di diverse dimensioni. Potresti voler utilizzare un set di dati di dimensioni più piccole per il controllo a campione dell'algoritmo e un set di dati più completo per la messa a punto dell'algoritmo.
Riepilogo
In questo post hai appreso l'importanza di impostare un sistema di test affidabile che coinvolga la selezione di set di dati di test e addestramento e una misura delle prestazioni significativa per il tuo problema.
Hai anche appreso la strategia di controllo a campione di una vasta gamma di algoritmi di apprendimento automatico sul tuo problema utilizzando il tuo sistema di test. Hai scoperto che questa strategia può evidenziare rapidamente se esiste una struttura apprendibile nel tuo set di dati (e in caso contrario puoi rivisitare la preparazione dei dati) e quali algoritmi funzionano generalmente bene sul problema (che potrebbero essere candidati per ulteriori indagini e messa a punto).
Risorse
Se desideri approfondire questo argomento, puoi imparare di più dalle risorse seguenti.
- Data Mining: strumenti e tecniche pratici di machine learning, Capitolo 5: Credibilità: valutare ciò che è stato appreso