在随机森林 mtry 图中添加点
Add points in a Random Forest mtry plot
我正在使用带有 caret 包的随机森林来设置最佳 mtry(预测因子的数量)。当我绘制模型以查看 RMSE 随 mtry 的变化时,我想在最佳 mtry
中添加一个点
ctrl <- trainControl(method = "cv", savePred=T, number = 10)
tunegrid <- expand.grid(.mtry=seq(from=2,to=nlayers(covs_processed),by=2))
# Search for the best mtry parameter
rfmodel <- train(fm, data=dat_1963@data, method = "rf", trControl = ctrl,
importance=TRUE, tuneGrid=tunegrid)
plot(rfmodel,main= "Tuning RF 2018")
定位点:
rfmodel[11][[1]]$tuneValue[[1]]
24
min(rfmodel$results$RMSE)
2.972381
我尝试用这段代码添加点,但我可以
points(rfmodel[11][[1]]$tuneValue[[1]],min(rfmodel$results$RMSE),col="red")
模型可以在这里找到:
https://drive.google.com/open?id=1tFFgxuCiJNC4PLMekBG7bgEziKGwMJmu
caret
中的 plot()
方法使用 lattice
包而不是基础图形,因此 lines
不起作用。
您可以通过添加新的绘图图层使用 ggplot
方法轻松获得结果。这里有两个选项:
library(caret)
#> Loading required package: lattice
#> Loading required package: ggplot2
data(BloodBrain)
theme_set(theme_bw())
ctrl <- trainControl(method = "cv", number = 10, returnResamp = "all")
set.seed(214)
rfmodel <-
train(
x = bbbDescr, y = logBBB,
method = "rf",
preProc = "zv",
trControl = ctrl,
tuneGrid = data.frame(mtry = 1:10)
)
# rfmodel$resample contains the individual RMSE values per fold. Use the
# ggplot method and add another layer with those points.
ggplot(rfmodel) +
geom_point(data = rfmodel$resample, alpha = .3)
# or add them as colored lines
ggplot(rfmodel) +
geom_line(
data = rfmodel$resample,
# For each resample, plot a different colored line
aes(group = Resample, col = Resample),
alpha = .3) +
# the legend here gets huge so stop it from being printed
theme(legend.position = "none")
由 reprex package (v0.2.1)
于 2019-04-03 创建
我正在使用带有 caret 包的随机森林来设置最佳 mtry(预测因子的数量)。当我绘制模型以查看 RMSE 随 mtry 的变化时,我想在最佳 mtry
中添加一个点ctrl <- trainControl(method = "cv", savePred=T, number = 10)
tunegrid <- expand.grid(.mtry=seq(from=2,to=nlayers(covs_processed),by=2))
# Search for the best mtry parameter
rfmodel <- train(fm, data=dat_1963@data, method = "rf", trControl = ctrl,
importance=TRUE, tuneGrid=tunegrid)
plot(rfmodel,main= "Tuning RF 2018")
定位点:
rfmodel[11][[1]]$tuneValue[[1]]
24
min(rfmodel$results$RMSE)
2.972381
我尝试用这段代码添加点,但我可以
points(rfmodel[11][[1]]$tuneValue[[1]],min(rfmodel$results$RMSE),col="red")
模型可以在这里找到: https://drive.google.com/open?id=1tFFgxuCiJNC4PLMekBG7bgEziKGwMJmu
caret
中的 plot()
方法使用 lattice
包而不是基础图形,因此 lines
不起作用。
您可以通过添加新的绘图图层使用 ggplot
方法轻松获得结果。这里有两个选项:
library(caret)
#> Loading required package: lattice
#> Loading required package: ggplot2
data(BloodBrain)
theme_set(theme_bw())
ctrl <- trainControl(method = "cv", number = 10, returnResamp = "all")
set.seed(214)
rfmodel <-
train(
x = bbbDescr, y = logBBB,
method = "rf",
preProc = "zv",
trControl = ctrl,
tuneGrid = data.frame(mtry = 1:10)
)
# rfmodel$resample contains the individual RMSE values per fold. Use the
# ggplot method and add another layer with those points.
ggplot(rfmodel) +
geom_point(data = rfmodel$resample, alpha = .3)
# or add them as colored lines
ggplot(rfmodel) +
geom_line(
data = rfmodel$resample,
# For each resample, plot a different colored line
aes(group = Resample, col = Resample),
alpha = .3) +
# the legend here gets huge so stop it from being printed
theme(legend.position = "none")
由 reprex package (v0.2.1)
于 2019-04-03 创建