Wann sollte ich keinen Ensemble-Klassifikator verwenden?


17

Wann sollte ich bei einem Klassifizierungsproblem, bei dem das Ziel darin besteht, die Zugehörigkeit zu einer außerhalb der Stichprobe liegenden Klasse genau vorherzusagen, im Allgemeinen keinen Ensemble-Klassifizierer verwenden?

Diese Frage steht in engem Zusammenhang mit Warum nicht immer Ensemble-Lernen? . Diese Frage fragt, warum wir nicht die ganze Zeit Ensembles benutzen. Ich möchte wissen, ob es Fälle gibt, in denen Ensembles bekanntermaßen schlechter sind (nicht nur "nicht besser und Zeitverschwendung") als ein Nicht-Ensemble-Äquivalent.

Und mit "Ensemble-Klassifikator" meine ich speziell Klassifikatoren wie AdaBoost und zufällige Wälder, im Gegensatz zu z. B. einer selbst erstellten Boosted-Support-Vektor-Maschine.


2
Ich würde keine Ensemble-Methoden verwenden, wenn Sie keine Unterschiede zwischen den einzelnen Methoden haben. Mit anderen Worten, ensemble ist nützlich, wenn Sie verschiedene Methoden kombinieren.
Prognose

2
@forecaster ich kann nicht helfen , sehr gutes Papier über hinzufügen , was Autoren als „gut“ und „schlecht“ Vielfalt pages.bangor.ac.uk/~mas00a/papers/gblkMCS10.pdf im Rahmen Ensembles
Vladislavs Dovgalecs

@xeon schöner Artikel. Unabhängig von den Methoden des maschinellen Lernens, sei es zufälliger Wald oder das Zusammenstellen (Kombinieren) verschiedener Methoden, hilft Vielfalt definitiv. Es gibt starke Theorie dahinter und es heißt und b i o l o g i c a l l y i n s p i r e d . neinturebichÖlÖGichceinlly ichnspichred
Prognose

Antworten:


7

Das Modell, das dem eigentlichen Datenerzeugungsprozess am nächsten kommt, ist immer das beste und schlägt die meisten Ensemble-Methoden. Wenn also die Daten aus einem linearen Prozess stammen, ist lm () zufälligen Wäldern weit überlegen, z.

    set.seed(1234)
p=10
N=1000
#covariates
x = matrix(rnorm(N*p),ncol=p)
#coefficients:
b = round(rnorm(p),2)
y = x %*% b + rnorm(N)
train=sample(N, N/2)
data = cbind.data.frame(y,x)
colnames(data) = c("y", paste0("x",1:p))
#linear model
fit1 = lm(y ~ ., data = data[train,])
summary(fit1)
yPred1 =predict(fit1,data[-train,])
round(mean(abs(yPred1-data[-train,"y"])),2)#0.79

library(randomForest)
fit2 = randomForest(y ~ ., data = data[train,],ntree=1000)
yPred2 =predict(fit2,data[-train,])
round(mean(abs(yPred2-data[-train,"y"])),2)#1.33

13

Ich empfehle nicht, einen Ensemble-Klassifikator zu verwenden, wenn Ihr Modell interpretierbar und erklärbar sein soll. Manchmal benötigen Sie Vorhersagen und Erklärungen der Vorhersagen.

Wenn Sie die Leute davon überzeugen müssen, dass die Vorhersagen es wert sind, geglaubt zu werden, kann ein hochgenaues Modell sehr überzeugend sein, aber ich habe mich bemüht, die Leute dazu zu bewegen, auf Vorhersagen zu reagieren, wenn die Methoden für ihr Komfortniveau zu komplex sind.

Nach meiner Erfahrung fühlen sich die meisten Menschen mit linearen additiven Modellen wohl, mit Modellen, die sie von Hand bewerten können, und wenn Sie versuchen, adaptives Boosten, Hyperebenen und Interaktionseffekte der 5. Ebene zu erklären, reagieren sie so, als würden Sie sie mit schwarzer Magie ansprechen.

Auf der anderen Seite können die Menschen mit der Komplexität des Modells vertraut sein, möchten aber dennoch einige Einsichten verinnerlichen. Wissenschaftler beispielsweise betrachten ein Black-Box-Modell möglicherweise nicht als Fortschritt im menschlichen Wissen, selbst wenn das Modell sehr genau ist.

Die Analyse der variablen Wichtigkeit kann bei Einsichten hilfreich sein. Wenn das Ensemble jedoch genauer ist als ein lineares additives Modell, nutzt das Ensemble möglicherweise einige nichtlineare und Interaktionseffekte, die die Analyse der variablen Wichtigkeit nicht vollständig berücksichtigen kann.


Nicht was ich wollte, aber gute Punkte. +1
shadowtalker

3

Ich möchte brancos antwort ergänzen. Die Ensembles können sehr wettbewerbsfähig sein und sehr gute Ergebnisse liefern. In der Wissenschaft zum Beispiel zählt dies. In der Industrie sind die Ensembles möglicherweise zu schwierig zu implementieren / zu warten / zu modifizieren / zu portieren. In Goef Hintons Arbeit zu "Dark Knowledge" geht es genau darum, wie man das "Wissen" eines großen Ensembles in ein einfach zu bewegendes Modell überträgt. Er gibt an, dass Ensembles zur Testzeit schlecht sind: Sie sind hochgradig redundant und die Berechnungszeit kann von Belang sein.

Sein Team hat einige interessante Ergebnisse erzielt, ich schlage vor, seine Veröffentlichungen oder zumindest die Folien zu lesen. Wenn ich mich gut erinnere, war dies eines der heißesten Themen von 2013 oder 2014.

Die Folien zu Dark Knowledge finden Sie hier: http://www.ttic.edu/dl/dark14.pdf

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.