r - gbm 无法识别调整参数网格
问题描述
剧本:
library(caret)
library(gbm)
formula <- price ~ carat + depth + table + x + y + z
mtryGrid <- expand.grid(interaction.depth = seq(1, 7, by = 2),
n.trees = seq(100, 1000, by = 50),
n.minobsinnode = 10,
verbose = FALSE,
shrinkage = c(0.01, 0.1))
set.seed(100)
gbm_model <- train(formula,
data = diamonds,
method = "gbm",
tuneGrid = mtryGrid,
trControl = trainControl(method = "cv"))
给出错误:
错误:调整参数网格应该有列 n.trees、interaction.depth、shrinkage、n.minobsinnode
虽然 mtryGrid 似乎有所有四个必需的列
我正在使用 R3.5.1,插入符号 6.0-80,gbm 2.1.3
解决方案
所以你不应该verbose=FALSE
把expand.grid
. 该错误清楚地表明它只能在expand.grid
. 删除verbose=FALSE
给了我方程的结果。
我希望这有帮助
所以以下适用于我的系统。抑制火车功能中的打印使用verbose=FALSE
。
formula <- price ~ carat + depth + table + x + y + z
mtryGrid <- expand.grid(interaction.depth = seq(1, 7, by = 2),
n.trees = seq(100, 1000, by = 50),
n.minobsinnode = 10,
shrinkage = c(0.01, 0.1))
expand.grid(n.trees=c(10,20,60),shrinkage=c(0.05,0.1,0.5),n.minobsinnode = c(3,5),interaction.depth=c(3,5))
set.seed(100)
gbm_model <- train(formula,
data = diamonds,
method = "gbm",
tuneGrid = mtryGrid,
trControl = trainControl(method = "cv"), verbose=FALSE)
推荐阅读
- python - VPython 不适用于 Mac 版 Spyder 3.3.6
- reactjs - componentDidUpdate 不断触发或从不触发
- c# - 如何使用 SignalR 显示来自 REST API 的实时数据?
- python - 使用 Beautiful Soup 和 Python 解析标签
- reactjs - 滚动时 React Native Flatlist 标题重新渲染
- kubernetes - 我们如何在通过 helm 在 kubernetes 上运行的 dask 分布式中为每个工作人员选择 --nthreads 和 --nprocs?
- java - 仅允许使用 java 扫描仪进行双重输入
- angular - 如果 value1 大于 value2 则设置错误
- angular - 带功能的角度下载链接
- android - 在使用 ViewPager 的选项卡布局上获取空白视图