Sommario:
- Studiare le curve di apprendimento
- Utilizzo della convalida incrociata
- Scegliere l'errore corretto o la metrica del punteggio
- Ricerca dei migliori parametri iper
- Test di più modelli
- Modelli di media
- Modelli di impilamento
- Applicazione dell'ingegneria delle funzionalità
- Selezione di caratteristiche ed esempi
- Alla ricerca di più dati
Video: Come acquisire nuove abilità 2024
Ora che l'algoritmo di apprendimento automatico ha finito di imparare dai dati ottenuti usando Python o R, stai meditando risultati dal tuo set di test e ti chiedi se puoi migliorarli o avere davvero raggiunto il miglior risultato possibile. Esistono numerosi controlli e azioni che suggeriscono metodi che è possibile utilizzare per migliorare le prestazioni di machine learning e ottenere un predittore più generale che sia in grado di funzionare altrettanto bene con il set di test o con i nuovi dati. Questo elenco di dieci tecniche offre opportunità per migliorare il risultato ottenuto utilizzando algoritmi di apprendimento automatico.
Studiare le curve di apprendimento
Come primo passo per migliorare i risultati, è necessario determinare i problemi con il modello. Le curve di apprendimento richiedono la verifica rispetto a un set di test poiché si varia il numero di istanze di allenamento. Noterai immediatamente se trovi molta differenza tra gli errori in-sample e out-of-sample. Un'ampia differenza iniziale è un segno di varianza delle stime; viceversa, avere errori alti e simili è un segnale che stai lavorando con un modello di parte.
Python ti aiuta a disegnare facilmente le curve di apprendimento usando la funzione Scikit-learn (). Puoi anche ottenere facilmente lo stesso risultato usando R con funzioni personalizzate, come descritto dal blog Revolution analytics.
Utilizzo della convalida incrociata
La grande differenza tra le stime di cross-validation (CV) e il risultato è un problema comune che appare con un set di test o dati nuovi. Avere questo problema significa che qualcosa è andato storto con la convalida incrociata. Oltre al fatto che il CV non è un buon predittore di prestazioni, questo problema significa anche che un indicatore fuorviante ti ha indotto a modellare il problema in modo errato e ad ottenere risultati insoddisfacenti.
La convalida incrociata fornisce suggerimenti quando i passaggi da eseguire sono corretti. È importante, ma non fondamentale, che le stime del CV replicino esattamente le misurazioni degli errori fuori campione. Tuttavia, è cruciale che le stime del CV riflettano correttamente il miglioramento o il peggioramento nella fase di test a causa delle decisioni di modellazione. In generale, ci sono due motivi per cui le stime di validazione incrociata possono variare dai risultati dell'errore vero:
- Snooping
- Campionamento errato
Python offre un campionatore CV stratificato-k-fold. R può stratificare i campioni usando il metodo createFolds della libreria caret quando si fornisce il parametro y come fattore.
Scegliere l'errore corretto o la metrica del punteggio
Cercare di ottimizzare una metrica di errore basata sull'errore mediano utilizzando un algoritmo di apprendimento basato sull'errore medio non ti fornirà i migliori risultati se non gestisci il processo di ottimizzazione in una moda che funziona a favore della tua metrica scelta.Quando si risolve un problema utilizzando dati e apprendimento automatico, è necessario analizzare il problema e determinare la metrica ideale da ottimizzare.
Gli esempi possono aiutare molto. È possibile ottenere molti di loro da documenti accademici e da concorsi di apprendimento automatico del computer che definiscono con cura problemi specifici in termini di dati e metrica di errore / punteggio. Cerca un concorso il cui obiettivo e i dati siano simili ai tuoi, quindi verifica la metrica richiesta.
Ricerca dei migliori parametri iper
La maggior parte degli algoritmi funziona abbastanza bene out of the box usando le impostazioni dei parametri predefinite. Tuttavia, puoi sempre ottenere risultati migliori testando diversi parametri iper. Tutto quello che devi fare è creare una griglia di ricerca tra i possibili valori che i tuoi parametri possono assumere e valutare i risultati usando l'errore giusto o la metrica del punteggio. La ricerca richiede tempo, ma può migliorare i risultati.
Quando una ricerca impiega troppo tempo per essere completata, spesso è possibile ottenere gli stessi risultati lavorando su un campione dei dati originali. Meno esempi scelti a caso richiedono meno calcoli, ma di solito suggeriscono la stessa soluzione. Un altro trucco che può far risparmiare tempo e fatica è fare una ricerca randomizzata, limitando così il numero di combinazioni iperparametriche da testare.
Test di più modelli
Come buona pratica, testare più modelli, iniziando da quelli di base - i modelli che hanno più bias della varianza. Dovresti sempre favorire soluzioni semplici rispetto a quelle complesse. Potresti scoprire che una soluzione semplice ha prestazioni migliori.
Rappresentare le prestazioni di diversi modelli utilizzando lo stesso grafico è utile prima di scegliere il migliore per risolvere il problema. È possibile posizionare modelli utilizzati per prevedere il comportamento dei consumatori, ad esempio una risposta a un'offerta commerciale, in grafici di guadagno speciali e grafici di elevazione. Questi grafici mostrano come il tuo modello esegue il partizionamento dei suoi risultati in decili o parti più piccole.
Poiché potresti essere interessato solo ai consumatori che sono più propensi a rispondere alla tua offerta, le previsioni di ordine da quelle più o meno evidenti metteranno in risalto quanto siano buoni i tuoi modelli nel predire i clienti più promettenti. Queste risposte Quora ti aiutano a vedere come funzionano i grafici di guadagno e di sollevamento: Cos'è la curva ROC? e che cos'è Lift Curve?.
Test di più modelli e introspecting possono anche fornire suggerimenti su quali funzioni trasformare per la creazione di feature, o quali funzionalità lasciare fuori quando si effettuano selezioni di funzionalità.
Modelli di media
L'apprendimento automatico implica la costruzione di molti modelli e la creazione di molte previsioni diverse, tutte con diverse aspettative di errore previsto. Potrebbe sorprendervi sapere che è possibile ottenere risultati ancora migliori calcolando la media dei modelli insieme. Il principio è abbastanza semplice: la varianza delle stime è casuale, quindi, calcolando la media di molti modelli diversi, è possibile migliorare il segnale e escludere il rumore che spesso si annulla.
A volte i risultati di un algoritmo che funziona bene, mescolato con i risultati di un algoritmo più semplice che non funziona bene, possono creare previsioni migliori rispetto all'utilizzo di un singolo algoritmo.Non sottovalutare i contributi forniti da modelli più semplici, come i modelli lineari, quando media i loro risultati con l'output di algoritmi più sofisticati, come l'aumento gradiente.
Modelli di impilamento
Per gli stessi motivi per cui la media funziona, l'impilatura può anche fornire prestazioni migliori. Nell'impilare, costruisci i tuoi modelli di apprendimento automatico in due fasi. Inizialmente questa tecnica prevede più risultati utilizzando diversi algoritmi, tutti imparando dalle funzionalità presenti nei dati. Durante la seconda fase, invece di fornire le funzionalità che un nuovo modello apprenderà, fornisci quel modello con le previsioni degli altri modelli precedentemente addestrati.
L'uso di un approccio a due stadi è giustificato quando si indovinano funzioni obiettivo complesse. È possibile approssimarli solo utilizzando più modelli insieme e quindi combinando il risultato della moltiplicazione in modo intelligente. È possibile utilizzare una semplice regressione logistica o un complesso complesso di alberi come modello di seconda fase.
La competizione Netflix fornisce prove e un'illustrazione dettagliata su come i modelli eterogenei possono essere impilati insieme per formare modelli più potenti. Tuttavia, l'implementazione di questa soluzione come applicazione funzionante può essere piuttosto complicata.
Applicazione dell'ingegneria delle funzionalità
Se ritieni che il pregiudizio stia ancora influenzando il tuo modello, non hai altra scelta se non quella di creare nuove funzionalità che migliorano le prestazioni del modello. Ogni nuova funzionalità può rendere più facile indovinare la risposta obiettivo.
La creazione automatica delle feature è possibile usando l'espansione polinomiale o la classe delle macchine del vettore di supporto degli algoritmi di apprendimento automatico. Le macchine vettoriali di supporto possono cercare automaticamente funzionalità migliori in spazi di caratteristiche più dimensionali in modo rapido e ottimale per la memoria.
Tuttavia, nulla può realmente sostituire la tua esperienza e comprensione del metodo necessario per risolvere il problema dei dati che l'algoritmo sta cercando di apprendere. Puoi creare funzionalità basate sulle tue conoscenze e idee su come funzionano le cose nel mondo. Gli umani sono ancora imbattibili nel farlo e le macchine non possono facilmente sostituirli.
Selezione di caratteristiche ed esempi
Se la varianza delle stime è elevata e il tuo algoritmo si basa su molte funzionalità, è necessario ridurre alcune funzionalità per ottenere risultati migliori. In questo contesto, è consigliabile ridurre il numero di funzionalità nella matrice dati selezionando quelle con il valore predittivo più elevato.
Quando si lavora con modelli lineari, macchine vettoriali a supporto lineare o reti neurali, la regolarizzazione è sempre un'opzione. Sia L1 che L2 possono ridurre l'influenza delle variabili ridondanti o persino rimuoverle dal modello. La selezione della stabilità sfrutta l'abilità L1 per escludere le variabili meno utili. La tecnica ricampiona i dati di allenamento per confermare l'esclusione.
Puoi saperne di più sulla selezione della stabilità visualizzando l'esempio sul sito di Scikit-learn. Inoltre, è possibile esercitarsi utilizzando le funzioni RandomizedLogisticRegression e RandomizedLasso Scikit-learn nel modulo linear_model.
Alla ricerca di più dati
Dopo aver provato tutti i suggerimenti precedenti, si può ancora avere un'alta varianza di previsioni da affrontare. In questo caso, l'unica opzione è aumentare la dimensione del set di allenamento. Prova ad aumentare il tuo campione fornendo nuovi dati, che potrebbero tradursi in nuovi casi o nuove funzionalità.
Se vuoi aggiungere più casi, guarda solo se hai a portata di mano dati simili. Se si desidera aggiungere nuove funzionalità, individuare un'origine dati open source, se possibile, per abbinare i dati con le relative voci. Un altro ottimo modo per ottenere nuovi casi e nuove funzionalità è quello di raschiare i dati dal web. Spesso i dati sono disponibili tra diverse fonti o tramite un'interfaccia di programmazione dell'applicazione (API). Ad esempio, le API di Google offrono molte fonti di informazioni geografiche e commerciali.