Kann eine zufällige Gesamtstruktur für die Feature-Auswahl in der multiplen linearen Regression verwendet werden?


50

Da RF mit Nichtlinearität umgehen kann, aber keine Koeffizienten bereitstellt, ist es ratsam, Zufallsgesamtstrukturen zu verwenden, um die wichtigsten Merkmale zu erfassen und diese Merkmale dann in ein Modell mit mehreren linearen Regressionen zu integrieren, um ihre Koeffizienten zu erhalten.


@ user777 du meinst, du liest "erklären" als "erhalten" oder so?
Shadowtalker

1
Könnten Sie es bitte bearbeiten, um die Verwirrung zu beseitigen, da anscheinend erhebliche Bedenken bestehen, was diese Frage möglicherweise zu fragen versucht?
whuber

Antworten:


71

Da RF mit Nichtlinearität umgehen kann, aber keine Koeffizienten bereitstellt, ist es ratsam, mit Random Forest die wichtigsten Features zu erfassen und diese Features dann in ein Modell mit multipler linearer Regression zu integrieren, um deren Vorzeichen zu erklären.

Ich interpretiere die Ein-Satz-Frage von OP so, dass OP die Wünschbarkeit der folgenden Analyse-Pipeline verstehen möchte:

  1. Passen Sie einigen Daten eine zufällige Gesamtstruktur an
  2. Wählen Sie anhand einer Metrik mit variabler Wichtigkeit aus (1) eine Teilmenge hochwertiger Features aus.
  3. Schätzen Sie mit den Variablen aus (2) ein lineares Regressionsmodell. Dies gibt dem OP Zugriff auf die Koeffizienten, die die OP-Noten RF nicht liefern können.
  4. Interpretieren Sie aus dem linearen Modell in (3) die Vorzeichen der Koeffizientenschätzungen qualitativ.

Ich glaube nicht, dass diese Pipeline das schafft, was Sie möchten. Variablen, die in zufälligen Gesamtstrukturen wichtig sind, haben nicht unbedingt eine linear additive Beziehung zum Ergebnis. Diese Bemerkung sollte nicht überraschen: Es ist das, was Random Forest so effektiv macht, um nichtlineare Beziehungen zu entdecken.

Hier ist ein Beispiel. Ich habe ein Klassifizierungsproblem mit 10 Rauschmerkmalen, zwei Signalmerkmalen und einer kreisförmigen Entscheidungsgrenze erstellt.

set.seed(1)
N  <- 500
x1 <- rnorm(N, sd=1.5)
x2 <- rnorm(N, sd=1.5)

y  <- apply(cbind(x1, x2), 1, function(x) (x%*%x)<1)

plot(x1, x2, col=ifelse(y, "red", "blue"))
lines(cos(seq(0, 2*pi, len=1000)), sin(seq(0, 2*pi, len=1000))) 

Bildbeschreibung hier eingeben

Und wenn wir das HF-Modell anwenden, wundert es uns nicht, dass diese Merkmale vom Modell leicht als wichtig erkannt werden. (NB: Dieses Modell ist nicht abgestimmt überhaupt .)

x_junk   <- matrix(rnorm(N*10, sd=1.5), ncol=10)
x        <- cbind(x1, x2, x_junk)
names(x) <- paste("V", 1:ncol(x), sep="")

rf <- randomForest(as.factor(y)~., data=x, mtry=4)
importance(rf)

    MeanDecreaseGini
x1         49.762104
x2         54.980725
V3          5.715863
V4          5.010281
V5          4.193836
V6          7.147988
V7          5.897283
V8          5.338241
V9          5.338689
V10         5.198862
V11         4.731412
V12         5.221611

Wenn wir jedoch nur auf diese beiden nützlichen Merkmale herunterrechnen, ist das resultierende lineare Modell furchtbar.

summary(badmodel <- glm(y~., data=data.frame(x1,x2), family="binomial"))

Der wichtige Teil der Zusammenfassung ist der Vergleich der Restabweichung und der Nullabweichung. Wir können sehen, dass das Modell im Grunde nichts tut, um die Abweichung zu "bewegen". Darüber hinaus sind die Koeffizientenschätzungen im Wesentlichen Null.

Call:
glm(formula = as.factor(y) ~ ., family = "binomial", data = data.frame(x1, 
    x2))

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-0.6914  -0.6710  -0.6600  -0.6481   1.8079  

Coefficients:
             Estimate Std. Error z value Pr(>|z|)    
(Intercept) -1.398378   0.112271 -12.455   <2e-16 ***
x1          -0.020090   0.076518  -0.263    0.793    
x2          -0.004902   0.071711  -0.068    0.946    
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 497.62  on 499  degrees of freedom
Residual deviance: 497.54  on 497  degrees of freedom
AIC: 503.54

Number of Fisher Scoring iterations: 4

Was erklärt den wilden Unterschied zwischen den beiden Modellen? Nun, klarerweise ist die Entscheidungsgrenze, die wir zu lernen versuchen, keine lineare Funktion der beiden "Signal" -Funktionen. Wenn Sie die funktionale Form der Entscheidungsgrenze vor dem Schätzen der Regression kennen, können Sie natürlich eine Transformation anwenden, um die Daten so zu codieren, dass die Regression sie dann erkennt ... Da wir in diesem Fall nur mit zwei Signalmerkmalen arbeiten, einem synthetischen Datensatz ohne Rauschen in den Klassenbeschriftungen, ist diese Grenze zwischen Klassen in unserer Darstellung sehr offensichtlich. Es ist jedoch weniger offensichtlich, wenn mit realen Daten in einer realistischen Anzahl von Dimensionen gearbeitet wird.

Darüber hinaus kann eine zufällige Gesamtstruktur im Allgemeinen verschiedene Modelle an verschiedene Teilmengen der Daten anpassen. In einem komplizierteren Beispiel wird es nicht offensichtlich sein, was aus einer einzelnen Darstellung hervorgeht, und die Erstellung eines linearen Modells mit ähnlicher Vorhersagekraft wird noch schwieriger.

Da es sich nur um zwei Dimensionen handelt, können wir eine Vorhersagefläche erstellen. Wie erwartet, erfährt das Zufallsmodell, dass die Nachbarschaft um den Ursprung wichtig ist.

M                 <- 100
x_new             <- seq(-4,4, len=M)
x_new_grid        <- expand.grid(x_new, x_new)
names(x_new_grid) <- c("x1", "x2")
x_pred            <- data.frame(x_new_grid, matrix(nrow(x_new_grid)*10, ncol=10))
names(x_pred)     <- names(x)

y_hat             <- predict(object=rf, newdata=x_pred, "vote")[,2]

library(fields)
y_hat_mat         <- as.matrix(unstack(data.frame(y_hat, x_new_grid), y_hat~x1))

image.plot(z=y_hat_mat, x=x_new, y=x_new, zlim=c(0,1), col=tim.colors(255), 
           main="RF Prediction surface", xlab="x1", ylab="x2")

Bildbeschreibung hier eingeben

Wie aus unserer abgrundtiefen Modellausgabe hervorgeht, ist die Vorhersagefläche für das logistische Regressionsmodell mit reduzierten Variablen im Wesentlichen flach.

Bildbeschreibung hier eingeben

bad_y_hat     <- predict(object=badmodel, newdata=x_new_grid, type="response")
bad_y_hat_mat <- as.matrix(unstack(data.frame(bad_y_hat, x_new_grid), bad_y_hat~x1))
image.plot(z=bad_y_hat_mat, x=x_new, y=x_new, zlim=c(0,1), col=tim.colors(255), 
           main="Logistic regression prediction surface", xlab="x1", ylab="x2")

HongOoi stellt fest, dass die Klassenzugehörigkeit keine lineare Funktion der Features ist, sondern eine lineare Funktion, die sich in einer Transformation befindet. Da die Entscheidungsgrenze wir ein nützlicheres lineares Modell erstellen wenn wir diese Merkmale quadrieren. Das ist absichtlich. Während das RF-Modell Signale in diesen beiden Merkmalen ohne Transformation finden kann, muss der Analytiker spezifischer sein, um ähnlich hilfreiche Ergebnisse im GLM zu erhalten. Vielleicht ist das für OP ausreichend: Es ist einfacher als 12, einen nützlichen Satz von Transformationen für zwei Features zu finden. Mein Punkt ist jedoch, dass die Wichtigkeit von RF-Features die Transformation selbst dann nicht nahelegt, wenn eine Transformation ein nützliches lineares Modell ergibt.1=x12+x22,


1
Ich denke, dass es, obwohl es nett ist, den ganzen Punkt verfehlt. Probieren Sie ein etwas komplexeres Modell aus - eines, das ich als nicht trivial genug bezeichne, um informativ zu sein. Betrachten Sie dies ( people.kyb.tuebingen.mpg.de/spider/demo_dec_vs_svm_2.jpg ) mit etwas Salz-und-Pfeffer-Rauschen. Jetzt mit RF bestücken. Verwenden Sie nun RF als "Filter", um "störende" Phänomene zu entfernen, und trainieren Sie Ihr alternatives Modell an den Ausgängen des RF, nicht an seinen Koeffizienten. Das OP spezifiziert "Merkmale", keine Koeffizienten. Das OP sagt nicht "reduzierte zufällige Gesamtstruktur", sondern "zufällige Gesamtstruktur". Dies wirkt sich auf die Ausgabe der gesamten Gesamtstruktur aus.
EngrStudent

3
Interessanterweise Ihr Beispiel ist in den Prädiktoren linear - wenn man sich zuerst verwandeln. Ihre Gleichung lautet Sie also das Quadrat von und wird es zu einem linearen Modell. Tatsächlich ist es eines der Beispiele, die Friedman, Hastie & Tibshirani verwendet haben, um zu zeigen, dass Boosten zu einem niedrigdimensionalen Modell passt (additiv im Fall von Stümpfen). x 1 x 2y=x12+x22x1x2
Hong Ooi

3
@ user777, Ich verwende seit Jahren Zufallswälder zur Dimensionsreduktion bei komplexen Problemen. Mein früherer Arbeitgeber, Intel Semiconductor, verfügt über Produktionsprozesse mit 20.000 Spalten und 20.000 Schritten. Bei weniger als 10 Fehlern wird dies als Teil einer Reihe von Analysetools verwendet, um von 20.000 Spalten auf 30 Spalten zu wechseln. Sie unterrichten Kurse intern und halten Vorträge zu den Inhalten von außen. ( web.stanford.edu/class/ee392m/Lecture3Tuv.pdf ) Der "Wald" ist ein erstaunlich mächtiges Werkzeug und Sie haben den einen schlechten Weg eingeschlagen. Es gibt zwei wirklich gute, die du verpasst hast.
EngrStudent

2
@EngrStudent "Intel verwendet RF, um von vielen zu weniger Spalten zu wechseln." Genau das macht meine Demonstration. Es beantwortet auch die spezielle Frage von OP, ob diese Features in einem linearen Modell gewinnbringend verwendet werden können, und meine Antwort lautet: "Im Allgemeinen sind sie nicht direkt nützlich, aber in diesem Beispiel finden Sie sie möglicherweise unter einer Transformation nützlich."
Setzen Sie Monica

12

Die Antwort von @Sycorax ist fantastisch. Zusätzlich zu den vollständig beschriebenen Aspekten des Problems, die sich auf die Modellanpassung beziehen, gibt es einen weiteren Grund, keinen mehrstufigen Prozess wie das Ausführen von zufälligen Wäldern, Lasso oder elastischen Netzen zu verfolgen, um zu "lernen", welche Merkmale der traditionellen Regression zugeführt werden sollen. Eine gewöhnliche Regression würde nichts über die Bestrafung wissen, die während der Entwicklung des Zufallsforsts oder anderer Methoden ordnungsgemäß durchgeführt wurde, und würde ungestrafte Effekte berücksichtigen, die stark voreingenommen sind, um bei der Vorhersage von zu stark auszusehen . Dies ist nichts anderes, als eine schrittweise Variablenauswahl durchzuführen und das endgültige Modell zu melden, ohne zu berücksichtigen, wie es angekommen ist.Y


2
Vielen Dank, Dr. Harrell! Wenn OP diese Analyse-Pipeline verwenden würde, würde OP meines Erachtens die HF-Downselektion und die Anpassung des linearen Modells innerhalb ihres (Kreuz-) Validierungsschemas durchführen. Reicht das aus, um die von Ihnen beschriebene Voreingenommenheit abzumildern, oder lauert hier ein anderes Problem, das mir fehlt?
Setzen Sie Monica

2
Ich weiß nicht, wie man ein richtiges lineares Modell "innerhalb" des Schemas erstellt. Ich weiß nicht, wie ich die daraus resultierende Überanpassung / Schätzungsverzerrung abmildern soll. Ein vielleicht besserer Ansatz ist die Modellannäherung, die manchmal als Vorkonditionierung bezeichnet wird. Hier verwenden Sie traditionelle Modelle oder einzelne Bäume (für die eine Tonne Knoten erforderlich wäre), um die Ausgabe einer Black Box zu approximieren, wobei die Schrumpfung der Black Box übernommen wird.
Frank Harrell

8

Eine ordnungsgemäß ausgeführte zufällige Gesamtstruktur, die auf ein Problem angewendet wird, das eher einer zufälligen Gesamtstruktur entspricht, kann als Filter dienen, um Rauschen zu entfernen und Ergebnisse zu erzielen, die als Eingaben für andere Analysetools nützlicher sind.

Haftungsausschluss:

  • Ist es eine "Silberkugel"? Auf keinen Fall. Der Kilometerstand variiert. Es funktioniert dort, wo es funktioniert, und nicht anderswo.
  • Gibt es Möglichkeiten, wie Sie es zu Unrecht missbrauchen und Antworten erhalten können, die sich in der Junk-to-Voodoo-Domäne befinden? darauf kannst du wetten. Wie jedes Analysetool hat es Grenzen.
  • Wenn du einen Frosch leckst, riecht dein Atem dann nach Frosch? wahrscheinlich. Ich habe dort keine Erfahrung.

Ich muss meinen "Guckern", die "Spider" gemacht haben, einen "Ruf" geben. ( link ) Ihr Beispielproblem hat meinen Ansatz geprägt. ( Link ) Ich liebe auch Theil-Sen-Schätzer und wünschte, ich könnte Theil und Sen Requisiten geben.

Bei meiner Antwort geht es nicht darum, wie man es falsch macht, sondern darum, wie es funktioniert, wenn man es größtenteils richtig macht. Während ich "triviales" Rauschen verwende, möchte ich, dass Sie über "nicht triviales" oder "strukturiertes" Rauschen nachdenken.

Eine der Stärken eines zufälligen Waldes ist, wie gut er auf hochdimensionale Probleme zutrifft. Ich kann 20.000 Spalten (auch bekannt als ein 20.000-dimensionaler Raum) nicht auf saubere visuelle Weise anzeigen. Es ist keine leichte Aufgabe. Wenn Sie jedoch ein 20k-dimensionales Problem haben, kann ein zufälliger Wald dort ein gutes Werkzeug sein, wenn die meisten anderen flach auf ihre "Gesichter" fallen.

Dies ist ein Beispiel für das Entfernen von Rauschen aus dem Signal mithilfe einer zufälligen Gesamtstruktur.

#housekeeping
rm(list=ls())

#library
library(randomForest)

#for reproducibility
set.seed(08012015)

#basic
n <- 1:2000
r <- 0.05*n +1 
th <- n*(4*pi)/max(n)

#polar to cartesian
x1=r*cos(th) 
y1=r*sin(th)

#add noise
x2 <- x1+0.1*r*runif(min = -1,max = 1,n=length(n))
y2 <- y1+0.1*r*runif(min = -1,max = 1,n=length(n))

#append salt and pepper
x3 <- runif(min = min(x2),max = max(x2),n=length(n)/2)
y3 <- runif(min = min(y2),max = max(y2),n=length(n)/2)

x4 <- c(x2,x3)
y4 <- c(y2,y3)
z4 <- as.vector(matrix(1,nrow=length(x4)))

#plot class "A" derivation
plot(x1,y1,pch=18,type="l",col="Red", lwd=2)
points(x2,y2)
points(x3,y3,pch=18,col="Blue")
legend(x = 65,y=65,legend = c("true","sampled","false"),
col = c("Red","Black","Blue"),lty = c(1,-1,-1),pch=c(-1,1,18))

Lassen Sie mich beschreiben, was hier los ist. Dieses Bild unten zeigt Trainingsdaten für die Klasse "1". Die Klasse "2" ist über dieselbe Domäne und denselben Bereich gleichmäßig zufällig. Sie können sehen, dass die "Information" von "1" meist eine Spirale ist, aber mit Material von "2" verfälscht wurde. Wenn 33% Ihrer Daten beschädigt sind, kann dies für viele Anpassungstools ein Problem sein. Theil-Sen beginnt sich bei etwa 29% zu verschlechtern. ( link )

Bildbeschreibung hier eingeben

Jetzt trennen wir die Informationen voneinander und haben nur eine Vorstellung davon, was Rauschen ist.

#Create "B" class of uniform noise
x5 <- runif(min = min(x4),max = max(x4),n=length(x4))
y5 <- runif(min = min(y4),max = max(y4),n=length(x4))
z5 <- 2*z4 

#assemble data into frame 
data <- data.frame(c(x4,x5),c(y4,y5),as.factor(c(z4,z5)))
names(data) <- c("x","y","z")

#train random forest - I like h2o, but this is textbook Breimann
fit.rf <- randomForest(z~.,data=data,
                       ntree = 1000, replace=TRUE, nodesize = 20)
data2 <- predict(fit.rf,newdata=data[data$z==1,c(1,2)],type="response")

#separate class "1" from training data
idx1a <- which(data[,3]==1)

#separate class "1" from the predicted data
idx1b <- which(data2==1)

#show the difference in classes before and after RF based filter
plot(data[idx1a,1],data[idx1a,2])
points(data[idx1b,1],data[idx1b,2],col="Red")

Hier ist das passende Ergebnis:

Bildbeschreibung hier eingeben

Ich mag das wirklich, weil es gleichzeitig Stärken und Schwächen einer anständigen Methode für ein hartes Problem aufzeigen kann. Wenn Sie in die Nähe des Zentrums schauen, sehen Sie, dass weniger gefiltert wird. Die geometrische Skala der Informationen ist klein und dem zufälligen Wald fehlt das. Es sagt etwas über die Anzahl der Knoten, die Anzahl der Bäume und die Probendichte für Klasse 2 aus. Es gibt auch eine "Lücke" in der Nähe von (-50, -50) und "Jets" an mehreren Stellen. Im Allgemeinen ist die Filterung jedoch in Ordnung.

Vergleiche mit SVM

Hier ist der Code, um einen Vergleich mit SVM zu ermöglichen:

#now to fit to svm
fit.svm <-  svm(z~., data=data, kernel="radial",gamma=10,type = "C")

x5 <- seq(from=min(x2),to=max(x2),by=1)
y5 <- seq(from=min(y2),to=max(y2),by=1)

count <- 1
x6 <- numeric()
y6 <- numeric()
for (i in 1:length(x5)){

     for (j in 1:length(y5)){
          x6[count]<-x5[i]
          y6[count]<-y5[j]
          count <- count+1
     }
}

data4 <- data.frame(x6,y6)
names(data4) <- c("x","y")

data4$z <- predict(fit.svm,newdata=data4)

idx4 <- which(data4$z==1,arr.ind=TRUE)


plot(data4[idx4,1],data4[idx4,2],col="Gray",pch=20)
points(data[idx1b,1],data[idx1b,2],col="Blue",pch=20)
lines(x1,y1,pch=18,col="Green", lwd=2)
grid()
legend(x = 65,y=65,
       legend = c("true","from RF","From SVM"),
       col = c("Green","Blue","Gray"),lty = c(1,-1,-1),pch=c(-1,20,15),pt.cex=c(1,1,2.25))

Es ergibt sich das folgende Bild.

Bildbeschreibung hier eingeben

Dies ist eine anständige SVM. Das Grau ist die Domäne, die von der SVM der Klasse "1" zugeordnet wird. Die blauen Punkte sind die vom RF der Klasse "1" zugeordneten Abtastwerte. Das HF-basierte Filter arbeitet vergleichbar mit SVM ohne explizit auferlegte Basis. Es ist zu sehen, dass die "engen Daten" in der Nähe des Zentrums der Spirale durch die RF viel "enger" aufgelöst werden. Es gibt auch "Inseln" zum "Schwanz", wo die RF eine Assoziation findet, die die SVM nicht findet.

Ich bin unterhalten Ohne den Hintergrund zu haben, habe ich eine der ersten Sachen gemacht, die auch von einem sehr guten Mitarbeiter auf dem Gebiet gemacht wurden. Der ursprüngliche Autor verwendete "Referenzverteilung" ( Link , Link ).

BEARBEITEN:

Wenden Sie zufälligen WALD auf dieses Modell an:
Während User777 einen guten Gedanken darüber hat, dass ein WARENKORB das Element eines zufälligen Waldes ist, lautet die Prämisse des zufälligen Waldes "Gesamtaggregation schwacher Lernender". Der WARENKORB ist ein bekannter schwacher Lerner, aber es ist nichts entferntes in der Nähe eines "Ensembles". Das "Ensemble" in einer zufälligen Gesamtstruktur ist "an der Grenze einer großen Anzahl von Stichproben" vorgesehen. Die Antwort von user777 im Streudiagramm verwendet mindestens 500 Stichproben und das sagt etwas über die Lesbarkeit und Stichprobengröße in diesem Fall aus. Das menschliche visuelle System (selbst ein Ensemble von Lernenden) ist ein erstaunlicher Sensor und Datenprozessor und erachtet diesen Wert als ausreichend, um die Verarbeitung zu vereinfachen.

Wenn wir sogar die Standardeinstellungen für ein Tool für zufällige Gesamtstrukturen übernehmen, können wir beobachten, dass das Verhalten des Klassifizierungsfehlers für die ersten mehreren Bäume zunimmt und die Ein-Baum-Ebene erst erreicht, wenn es ungefähr 10 Bäume gibt. Anfänglich wächst die Fehlerreduzierung und stabilisiert sich um 60 Bäume. Mit Stall meine ich

x        <- cbind(x1, x2)
plot(rf,type="b",ylim=c(0,0.06))
grid()

Welche Erträge:
Bildbeschreibung hier eingeben

Wenn wir uns nicht den "schwachen Minimalschüler" ansehen, sondern das "schwache Minimalensemble", das durch eine sehr kurze Heuristik für die Standardeinstellung des Werkzeugs vorgeschlagen wird, sind die Ergebnisse etwas anders.

Beachten Sie, dass ich "Linien" verwendet habe, um den Kreis zu zeichnen, der die Kante über der Näherung anzeigt. Sie können sehen, dass es nicht perfekt ist, aber viel besser als die Qualität eines einzelnen Lernenden.

Bildbeschreibung hier eingeben

Die ursprüngliche Stichprobe enthält 88 "innere" Stichproben. Wenn die Stichprobengröße erhöht wird (damit das Ensemble angewendet werden kann), verbessert sich auch die Qualität der Approximation. Die gleiche Anzahl von Lernenden mit 20.000 Stichproben macht eine erstaunlich bessere Passform.

Bildbeschreibung hier eingeben

Die viel hochwertigeren Eingabeinformationen ermöglichen auch die Auswertung einer angemessenen Anzahl von Bäumen. Die Überprüfung der Konvergenz legt nahe, dass in diesem speziellen Fall mindestens 20 Bäume ausreichen, um die Daten gut darzustellen.

Bildbeschreibung hier eingeben


Wie beweist / widerlegt dies, dass mit HF hochwertige Merkmale für ein lineares Modell ausgewählt werden können? In Ihrer Antwort geht es nicht um die Auswahl von Features oder lineare Modelle.
Setzen Sie Monica

Die Prämisse des Fragenden besteht darin, RF als Vorfilter zu verwenden und dann die Parameter des linearen Modells zu betrachten. Er betrachtete nicht die Parameter des Waldes. Als ich es las, schien das "multiple lineare Modell" wegen seiner fehlenden Tiefe oder Spezifität zweitrangig. Für mich sah dies wie eine "Dose aus, die Daten vor dem Einfügen in das Analysetool x vorverarbeitet / bereinigt".
EngrStudent

Ich sehe horizontale und vertikale Artefakte. Ich bin versucht, "konjugierte Daten" für um 45 Grad gedrehte Koordinaten zu erstellen und die Spalten an die RF anzuhängen. Ich wette, dass eine solche Transformation die Anzahl der Artefakte verringern würde, obwohl ich nicht sicher bin, wie sie die Eingabeparameter ändern würde.
EngrStudent

2
Abgesehen davon ist der "Rotationswald" eine neuere Variante dieser Idee, bei der PCA verwendet wird, um die neue Basis zu bestimmen. ncbi.nlm.nih.gov/pubmed/16986543
Monica

1
Ordentlich: Liu, Fei Tony, Ting, Kai Ming und Zhou, Zhi-Hua. "Isolation Forest". Data Mining, 2008. ICDM'08. Achte Internationale IEEE-Konferenz am.
EngrStudent
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.