Risorse per l'apprendimento di come implementare metodi di ensemble


13

Comprendo teoricamente (in un certo senso) come funzionerebbero, ma non sono sicuro di come utilizzare effettivamente un metodo di ensemble (come voto, miscele ponderate, ecc.).

  • Quali sono le buone risorse per l'implementazione dei metodi di ensemble?
  • Ci sono risorse particolari per quanto riguarda l'implementazione in Python?

MODIFICARE:

Per chiarire alcuni sulla base della discussione sui commenti, non sto cercando algoritmi di ensemble come randomForest, ecc. Invece, mi chiedo come è possibile combinare classificazioni diverse da algoritmi diversi.

Ad esempio, supponiamo che qualcuno usi la regressione logistica, SVM e altri metodi per prevedere la classe di una certa osservazione. Qual è il modo migliore per acquisire la migliore stima della classe in base a queste previsioni?

Risposte:


12

Un buon punto di partenza è avere una visione d'insieme dell'apprendimento d'insieme. Soprattutto ti consigliamo di dare un'occhiata a potenziamento e insaccamento . Un altro metodo era quello usato dal team "The Ensemble" nel Premio Netflix, chiamato "blending" o stacking delle caratteristiche .

Quindi, basta trovare alcune librerie che implementano quelle e funzionano da lì. Un veloce googling ha rivelato scikit e orange , entrambi i quali dovrebbero avere insaccamento e potenziamento (e sono entrambi Python).

Se oltre ad usare i metodi ensemble, ti piacerebbe imparare un po 'di teoria, allora penso che questo documento sarebbe un buon punto di partenza (segui i riferimenti per le parti che ti interessano).

Saluti.


(+1) woa, grandi riferimenti qui: O!
Steffen,

Grazie. Sto solo cercando di contribuire con qualcosa su uno dei pochi argomenti di cui so qualcosa.
Stumpy Joe Pete,

4

"Metodi di ensemble nel data mining: migliorare la precisione attraverso la combinazione di previsioni", Seni e Elder - Eccellente riferimento sulla teoria e l'implementazione pratica degli ensemble, ma il codice di accompagnamento è basato su R.

"Apprendimento automatico: una prospettiva algoritmica", S. Marsland - Eccellente testo pratico basato su Python, ma non dedicato ai concetti di ensemble puro come il primo riferimento.


2

La risposta di Stumpy Joe Pete è stata perfetta, ma da quando hai parlato di un'implementazione di Python, ho voluto menzionare il progetto brew dell'Universidade Federal de Pernambuco.

https://github.com/viisar/brew

from brew.base import Ensemble
from brew.base import EnsembleClassifier
from brew.combination import import Combiner

# create your Ensemble
clfs = your_list_of_classifiers # [clf1, clf2]
ens = Ensemble(classifiers = clfs)

# create your Combiner
# the rules can be 'majority_vote', 'max', 'min', 'mean' or 'median'
comb = Combiner(rule='majority_vote')

# now create your ensemble classifier
ensemble_clf = EnsembleClassifier(ensemble=ens, combiner=comb)
ensemble_clf.predict(X)

A questo punto, hanno generazione di ensemble, combinazione, potatura e selezione dinamica.

Limitazioni: solo classificazione; nessun impilamento nella versione pubblica corrente; non molta documentazione.


0

Salford Systems ha un pacchetto software chiamato Random Forests che lo implementa per gruppi di alberi di classificazione e regressione. Non ho pacchetti R gratuiti da offrire. Immagino che abbiano un manuale utente che spiegherà la loro implementazione. Per analogia potresti probabilmente capire come farlo per altri metodi di ensemble.


2
Esistono molti fantastici pacchetti R per gruppi di alberi: ad esempio randomForest (algoritmo classico), party :: cforest (foresta casuale che utilizza alberi di inferenza condizionale), gbm (incremento gradiente degli alberi) per citarne alcuni. Ho letto l'OP come voler implementare ensemble agnostici classificatore / regressione. La procedura più semplice è ovviamente quella delle previsioni medie.
B_Miner,

@B_Miner È bello sapere che ci sono implementazioni disponibili in R. Forse qualcuno potrebbe spiegarmi perché è desiderabile un'implementazione specifica in Python (per favore, scusa la mia ignoranza su R). Ho letto il PO per conoscere le fonti che descrivono come implementare i metodi dell'ensemble. Il pacchetto di Salford era uno di cui ero a conoscenza e che poteva contenere della documentazione.
Michael R. Chernick,

Pur basandomi sui lavori di potenziamento della carta di Freund e Schapire in generale, per quanto ne so i migliori risultati sono stati ottenuti utilizzando i classificatori per alberi.
Michael R. Chernick,

Personalmente ottengo risultati davvero buoni semplicemente calcolando la media delle probabilità, ma il mio dominio è più interessato alle probabilità che alla scelta di un'etichetta di classe.
B_Miner,

@MichaelChernick Se stai facendo un intenso lavoro di previsione (come ... una competizione Kaggle), non sceglierai potenziamento foreste casuali. Avrai voglia di aggregare il maggior numero possibile di modelli che ti aiuteranno (che è generalmente molto più di uno). Quindi, in quel contesto, altri metodi di ensemble saranno importanti, anche se le foreste casuali sono molto più interessanti di qualsiasi altra cosa.
Stumpy Joe Pete,


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.