2016-09-08 2 views
0

Ich habe diesen (Beispiel) Code und ich versuche, einige Eigenschaften zu verstehen. Es gibt viele Fragen über Random Forest und immer kommt die Frage der number of trees und der mtry. Dieser Datenrahmen ist nur ein Beispiel, aber wie kann ich den Plot des Modells (Fehler) erklären, um die Anzahl der Bäume ohne Cause-Bias festzulegen? Auch die No. of variables tried at each split entspricht hier 1 (warum?) Ich denke, tuneR und train kann Bias verursachen, also möchte ich versuchen, die beste Anzahl von trees und mtry (Standard p/3) basierend auf dem Fehler zu finden.Wählen Sie die Anzahl der mtry (ohne Ursache Bias)?

#' an example of a data frame and the model 
clin=data.frame(1:500) 
clin$k=clin$X1.500*0.2 
clin$z=clin$X1.500*14.1/6 
names(clin)=c("pr1","pr2","res") 

rf=randomForest(res~pr1+pr2,data=clin,ntree=1000,importance=TRUE,keep.inbag=T) 
plot(rf) 
rf 
    Call: 
randomForest(formula = res ~ pr1 + pr2, data = clin, ntree = 1000,  importance = TRUE, keep.inbag = T) 
       Type of random forest: regression 
        Number of trees: 1000 
No. of variables tried at each split: 1 

      Mean of squared residuals: 2.051658 
        % Var explained: 100 

Antwort

1

Die RF wird auf der Grundlage einer Teilmenge der Gesamtzahl von Prädiktoren p ( p/3). In diesem Beispiel haben Sie nur 2 Prädiktoren, um "res" zu erklären. RF wird daher nur eine zufällig auswählen.

ntree und mtry sollte definiert werden, so dass die Ergebnisse konsistent sind. Wenn Sie ntree zu niedrig einstellen und die RF mehrmals berechnen, werden Sie eine große Variation in RMSEP zwischen den verschiedenen RF sehen. Das gleiche gilt für mtry.

A previous answer with reference to Breiman's paper on the matter

bearbeiten bezüglich der Prädiktor für den Split gewählt: wenn sie mit einer großen Anzahl von Prädiktoren zu tun (2 ist auf jeden Fall zu niedrig gute Verwendung eines RF zu machen) Sie in variable Bedeutung interessieren kann, um zu sehen, die man sind sinnvoller als die anderen.

+0

Vielen Dank für Ihre Antwort (und den Link). Du hast gesagt, dass RF zufällig eins auswählt, wie kann ich sehen, welches? –

+0

getTree() wird einen Baum extrahieren und dann können Sie sehen, welcher Prädiktor verwendet wird. Weitere Informationen finden Sie in der vollständigen Dokumentation des randomForest-Pakets. – Haboryme

Verwandte Themen