Was bedeutet negativer % - IncMSE in RandomForest-Paket bedeuten?
Ich verwendet RandomForest für eine regression-problem. Ich verwendet importance(rf,type=1)
um die %IncMSE für die Variablen und einer von Ihnen hat einen negativen %IncMSE. Bedeutet dies, dass diese variable ist schlecht für das Modell? Ich suchte im Internet nach ein paar Antworten, aber ich finde nicht klar.
Fand ich auch etwas seltsam, in der Modell-übersicht ( unten angehängt), Es scheint, dass nur ein Baum verwendet wurde, obwohl ich den vorgegebenen ntrees
als 800.
Modell:
rf<-randomForest(var1~va2+var3+..+var35,data=d7depo,ntree=800,keep.forest=FALSE, importance=TRUE)
summary(rf)
Length Class Mode
call 6 -none- call
type 1 -none- character
predicted 26917 -none- numeric
mse 800 -none- numeric
rsq 800 -none- numeric
oob.times 26917 -none- numeric
importance 70 -none- numeric
importanceSD 35 -none- numeric
localImportance 0 -none- NULL
proximity 0 -none- NULL
ntree 1 -none- numeric
mtry 1 -none- numeric
forest 0 -none- NULL
coefs 0 -none- NULL
y 26917 -none- numeric
test 0 -none- NULL
inbag 0 -none- NULL
terms 3 terms call
Du musst angemeldet sein, um einen Kommentar abzugeben.
Frage 1 - warum tut
ntree
zeigen 1?:summary(rf)
zeigt Sie die Länge der die Objekte enthalten sind, die in Ihremrf
variable. Das bedeutet, dassrf$ntree
ist der Länge 1. Wenn Sie auf der Konsolerf$tree
Sie werden sehen, dass es zeigt, 800.Frage 2 - hat eine negative %IncMSE zeigen eine "schlechte" variable?
IncMSE:
Die Art und Weise diese berechnet wird durch berechnen Sie den MSE des gesamten Modells zunächst. Nennen wir diese
MSEmod
. Nach dieser für jede der Variablen (Spalten in Ihren Daten eingestellt) die Werte werden nach dem Zufallsprinzip gemischt (permuted), so dass eine "schlechte" variable wird erstellt und ein neues MSE berechnet. I. e. stellen Sie sich vor, dass für eine Spalte, die Sie hatte 1,2,3,4,5 Zeilen. Nach der permutation diese am Ende wird 4,3,1,2,5 zufällig. Nach der permutation (alle anderen Spalten bleiben genau die gleichen, da wir untersuchen wollencol1's
Bedeutung), das neue MSE des Modells berechnet wird, nennen wir esMSEcol1
(in einer ähnlichen Art und Weise haben SieMSEcol2
,MSEcol3
aber halten wir es einfach und nur mitMSEcol1
hier). Wir würden erwarten, dass seit der zweiten MSE wurde mit einer Variablen vollständig zufällig,MSEcol1
höher wäre alsMSEmod
(je größer der MSE, desto schlimmer). Daher, wenn wir die Differenz der beidenMSEcol1
-MSEmod
wir in der Regel erwarten, dass eine positive Zahl. In Ihrem Fall eine negative Zahl zeigt, dass die zufällige variable, die besser funktioniert, was zeigt, dass es wohl die variable ist kein Anzeichen genug, also nicht wichtig.Beachten Sie, dass diese Beschreibung, die ich Euch gab, ist die hohe, in der Realität sind die beiden MSE-Werte werden skaliert und die prozentuale Differenz wird berechnet. Aber die high-level-Geschichte ist diese.
In Algorithmus form:
Hoffe es ist jetzt klar!
MSEcol1 - MSEmod
, denn wennMSEcol1 > MSEmod
, wie es wahrscheinlich zu sein, wenn, wenn die variable 1 ist jede Nutzung, dann wäre der Unterschied positiv (alsoMSEmod - MSEcol1
deine Antwort sollte dann negativ sein...