我正在努力寻找条件随机森林的最优值.我做了插入::训练函数的帮助,并发现根据网格范围的不同,我得到了不同的最优米特,即使是相同的种子.那么我应该 Select 哪个值呢? 示例:

  1. 使用下面的代码,我得到mtry=8
set.seed(12)
data<-mtcars%>%
     mutate(target=as.factor(vs))
grid <- expand.grid(.mtry=2:12)
mod <- train(target ~ ., data = data, method = "cforest", controls = cforest_unbiased(ntree = 500), tuneGrid=grid)
mod$bestTune
  1. 而对于1:12的网格,我得到的是mtry=9
set.seed(12)
data<-mtcars%>%
     mutate(target=as.factor(vs))
grid <- expand.grid(.mtry=1:12)
mod <- train(target ~ ., data = data, method = "cforest", controls = cforest_unbiased(ntree = 500), tuneGrid=grid)
mod$bestTune

推荐答案

如果网格不同,那么通常结果也会不同,即使对于相同的种子也是如此.然而,这将取决于train()功能如何通过电网.可能,如果您只更改网格的结尾(而不是开头),那么到该点之前的结果将是相同的.

如果要拆分计算,则可以使用单独的栅格并在对每个栅格进行训练之前设置单独的种子.然后,您可以轻松地添加或删除部件.但是,当然,您必须在不同的网格中手动 Select 最佳结果.

无论如何,获得mtry = 8 vs mtry = 9似乎并没有太大的区别.如果这是在随机变化的范围内,我不会感到惊讶.但是我不能复制你的结果,因为我刚刚从训练中得到了警告(可能是因为vstarget相同,但被用作回归变量之一).

R相关问答推荐

ggplot 2中的地块底图(basemaps_gglayer()不起作用)

如何在R中正确对齐放射状图中的文本

R中具有gggplot 2的Likert图,具有不同的排名水平和显示百分比

如何在RMarkdown LaTex PDF输出中包含英语和阿拉伯语?

ggplot2中的X轴显示数值,单位为百,而不是十

将向量组合到一个数据集中,并相应地命名行

如何在ggplot图中找到第二轴的比例

移除仪表板Quarto中顶盖和车身之间的白色区域

如何删除仅在数据集顶部和底部包含零的行

R spatstat Minkowski Sum()返回多个边界

在R函数中使用加号

列名具有特殊字符时的循环回归

R -使用矩阵reshape 列表

如何平滑或忽略R中变量的微小变化?

将具有坐标列表列的三角形转换为多个多边形

如何计算每12行的平均数?

R没有按顺序显示我的有序系数?

具有由向量定义的可变步长的序列

合并多个数据帧,同时将它们的名称保留为列名?

打印的.txt文件,将值显示为&Quot;Num&Quot;而不是值