Combinazione di modelli di apprendimento automatico


20

Sono un po 'nuovo nel datamining / machine learning / ecc. e ho letto un paio di modi per combinare più modelli ed esecuzioni dello stesso modello per migliorare le previsioni.

La mia impressione dalla lettura di un paio di articoli (che sono spesso interessanti e ottimi per la teoria e le lettere greche ma con codice breve ed esempi reali) è che dovrebbe andare così:

Prendo un modello ( knn, RFecc.) E ottengo un elenco di classificatori tra 0 e 1. La mia domanda è: come combinare ciascuno di questi elenchi di classificatori? Eseguo gli stessi modelli sul mio set di allenamento in modo che il numero di colonne che entrano nel modello finale sia lo stesso o c'è qualche altro trucco?

Sarebbe bello se qualche suggerimento / esempio includesse il codice R.

NOTA: questo è per un set di dati con 100k righe nel set di allenamento e 70k nel set di test e 10 colonne.

Risposte:


21

In realtà si riduce a una delle tecniche "3B": insaccamento, potenziamento o fusione.

Nel bagging, ti alleni molti classificatori su diversi sottogruppi di oggetti e combini le risposte in media per la regressione e il voto per la classificazione (ci sono alcune altre opzioni per situazioni più complesse, ma lo salterò). La proporzione / varianza del voto può essere interpretata come approssimazione dell'errore poiché i singoli classificatori sono generalmente considerati indipendenti. RF è in effetti un insieme di insaccamento.

Il potenziamento è una famiglia di metodi più ampia, tuttavia il loro punto principale è che costruisci il prossimo classificatore sui residui del primo, in questo modo (in teoria) aumentando gradualmente l'accuratezza evidenziando interazioni sempre più sottili. Le previsioni sono quindi generalmente combinate sommandole, qualcosa come calcolare un valore di una funzione in x sommando i valori degli elementi della sua serie di Taylor per x.
Le versioni più popolari sono (Stochastic) Gradient Boosting (con buone basi matematiche) e AdaBoost (ben noto, in realtà un caso specifico di GB). Da una prospettiva olistica, l'albero decisionale è un potenziamento di banali classificatori pivot.

La fusione è un'idea di nidificazione dei classificatori, ovvero l'esecuzione di un classificatore su un sistema informativo fatto di previsioni di altri classificatori. Pertanto, è un metodo molto variabile e certamente non un algoritmo definito; può richiedere molti oggetti (nella maggior parte dei casi il classificatore "frullatore" deve essere addestrato su un insieme di oggetti che non sono stati usati per costruire i classificatori parziali per evitare imbarazzanti eccessi).
Le previsioni dei classificatori parziali sono ovviamente combinate fondendole in un sistema di informazione previsto dal frullatore.



2

Dopo essermi guardato un po 'in giro con l'aiuto delle risposte sopra, mi sono reso conto di quale fosse il mio problema. Avevo cercato di usare le previsioni di altri modelli nello stesso modello usato per prevederle. In altre parole, se avessi 5 variabili durante l'esecuzione del kNNmodello, aggiungerei una nuova variabile con le previsioni del kNNmodello e creerei un modello con 6 variabili quando eseguivo il modello Foresta casuale. Ho scoperto che invece i risultati dei modelli dovrebbero essere segmentati ed eseguiti come modello separato. Così mi piacerebbe creare previsioni di vari modelli ( knn, RF, svd, ecc) quindi eseguire una combinazione di / miscelazione / modello accatastamento separata utilizzando solo le previsioni come variabili e le classificazioni come quello da prevedere.

Penso che alcuni dei miei problemi siano stati nel combinare le previsioni con le altre variabili, potrebbe esserci stato un eccesso di adattamento o multicollinearità, ma non ne sono certo. Qualcun altro potrebbe essere in grado di valutare meglio ciò che stavo facendo di sbagliato. Comunque grazie a tutti per il loro aiuto.

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.