2016-09-05 1 views
1

Ich führe die randomForest Algorithmus in R und möchte die OOB Error mit einer Legende, die es zu beschreiben. Aber ich kann es nicht richtig verstehen.Plot Legende zufällige Forest r

Das ist so, wie es aussieht:

messed up plot

Das ist der Code, den ich verwenden:

plot(rfOutput, log = "y", type = "l") 
legend("top", colnames(rfOutput$err.rate),col=1:6,cex=0.8,fill=1:6) 

Wie würde ich die Farben für die Linien sowie der Linientyp angeben verwendet? Ich will nicht, dass es zerstört wird. Außerdem, wie würde ich die passende Legende hinzufügen?

Antwort

1

Hier ist eine Lösung, wo Sie die Plot-Daten aus plot(rfOutput...) und Wieder Plot extrahieren mit dem ggplot Paket:

library(randomForest) 
library(data.table) 
library(ggplot2) 

# Use random forest example from randomForest package 
data(iris) 
set.seed(71) 
rfOutput <- randomForest(Species ~ ., data=iris, importance=TRUE, ntree = 6, proximity=TRUE) 

# Get OOB data from plot and coerce to data.table 
oobData = as.data.table(plot(rfOutput)) 

# Define trees as 1:ntree 
oobData[, trees := .I] 

# Cast to long format 
oobData2 = melt(oobData, id.vars = "trees") 
setnames(oobData2, "value", "error") 

# Plot using ggplot 
ggplot(data = oobData2, aes(x = trees, y = error, color = variable)) + geom_line() 

Der Ausgang ist wie folgt:

enter image description here