2016-09-05 3 views
1

Я запускаю алгоритм randomForest в R и хочу построить OOB Error с легендой, описывающей его. Однако, похоже, я не понимаю.Участок легенды случайный Лес r

То есть так, как это выглядит:

messed up plot

Вот код, который я использовал:

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

Как мне определить цвета, используемые для линий, а также отсчитываемый? Я не хочу, чтобы он разбился. Кроме того, как мне добавить соответствующую легенду?

ответ

1

Вот решение, в котором вы извлекаете данные графика из plot(rfOutput...) и повторно сюжет его, используя ggplot пакет:

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() 

Выход следующим образом:

enter image description here

 Смежные вопросы

  • Нет связанных вопросов^_^