使用插入符和方法训练时 R 崩溃 = gamLoess
R Crashes when training using caret and method = gamLoess
当我 运行 下面的代码时,R 崩溃了。如果我在训练调用中注释掉 tuneGrid 行,则不会发生崩溃。我已经用另一个数据集试过了,但仍然使 R 崩溃。崩溃消息是
R 会话中止
R遇到致命错误
会话已终止
开始新会话。
密码是:
library(splines)
library(foreach)
library(gam)
library(lattice)
library(ggplot2)
library(caret)
# crashes when I uncomment the tuneGrid = tuneGrid line
Set_seed_seed <- 100
data_set <- diamonds[, c(1, 5, 6, 7, 8, 9, 10)]
data_set <- data_set[1:1000,]
formula <- price ~ carat + depth + table + x + y + z
training_control <- trainControl(method = "cv", allowParallel = FALSE)
tune_grid <- expand.grid(span = seq(0.1, 0.9, length = 9), degree = seq(1, 2, length = 2))
set.seed(Set_seed_seed)
GAM_model <- train(formula,
data = data_set,
method = "gamLoess",
tuneGrid = tune_grid,
trControl = training_control
)
这发生在使用 R Studio 的 R3.2.1 和 3.2.2 中。
在 R gui 中,也会发生崩溃。
我确认问题存在。我调试了程序,发现程序如图所示卡住了。这是 foreach
包
的错误
train(formula, data=data_set, ...)
useMethod("train") # train(); namespace:caret
train(x, y, weight = w, ...) train.formula(); # namespace:caret
useMethod("train") # train(); namespace:caret
nominalTrainWorkflow(x = x, ...) # train.default(); namespace:caret
result <- foreach(iter = , ...) # nominalTrainWorkflow(); namespace:caret
e <- getDoSeq() # %op%; namespace:foreach
list(fun = doSeq, data=NULL) # getDoSeq(); namespace:foreach
e$fun(obj, substitute(ex), parent.frame(), e$data) # %op%; namespace:foreach
tryCatch(accumulator(list(r), i) # e$fun; namespace:foreach
这是 gam
包中的错误。我在 2014 年 3 月 3 日通知了 Trevor Hastie:
library(gam)
set.seed(1)
x <- rnorm(1000)
y <- x^2+0.1*rnorm(1000)
tdat <- data.frame(y = y, x = x)
m1 <- gam(y ~ lo(x, span = .5, degree = 2), data = tdat)
这很好用,但是当我拟合多个模型时出现段错误(但仅
黄土和度= 2)。
这会为我制作:
for(i in 1:10) m1 <- gam(y ~ lo(x, span = .5, degree = 2), data = tdat)
当我 运行 下面的代码时,R 崩溃了。如果我在训练调用中注释掉 tuneGrid 行,则不会发生崩溃。我已经用另一个数据集试过了,但仍然使 R 崩溃。崩溃消息是 R 会话中止 R遇到致命错误 会话已终止 开始新会话。
密码是:
library(splines)
library(foreach)
library(gam)
library(lattice)
library(ggplot2)
library(caret)
# crashes when I uncomment the tuneGrid = tuneGrid line
Set_seed_seed <- 100
data_set <- diamonds[, c(1, 5, 6, 7, 8, 9, 10)]
data_set <- data_set[1:1000,]
formula <- price ~ carat + depth + table + x + y + z
training_control <- trainControl(method = "cv", allowParallel = FALSE)
tune_grid <- expand.grid(span = seq(0.1, 0.9, length = 9), degree = seq(1, 2, length = 2))
set.seed(Set_seed_seed)
GAM_model <- train(formula,
data = data_set,
method = "gamLoess",
tuneGrid = tune_grid,
trControl = training_control
)
这发生在使用 R Studio 的 R3.2.1 和 3.2.2 中。
在 R gui 中,也会发生崩溃。
我确认问题存在。我调试了程序,发现程序如图所示卡住了。这是 foreach
包
train(formula, data=data_set, ...)
useMethod("train") # train(); namespace:caret
train(x, y, weight = w, ...) train.formula(); # namespace:caret
useMethod("train") # train(); namespace:caret
nominalTrainWorkflow(x = x, ...) # train.default(); namespace:caret
result <- foreach(iter = , ...) # nominalTrainWorkflow(); namespace:caret
e <- getDoSeq() # %op%; namespace:foreach
list(fun = doSeq, data=NULL) # getDoSeq(); namespace:foreach
e$fun(obj, substitute(ex), parent.frame(), e$data) # %op%; namespace:foreach
tryCatch(accumulator(list(r), i) # e$fun; namespace:foreach
这是 gam
包中的错误。我在 2014 年 3 月 3 日通知了 Trevor Hastie:
library(gam)
set.seed(1)
x <- rnorm(1000)
y <- x^2+0.1*rnorm(1000)
tdat <- data.frame(y = y, x = x)
m1 <- gam(y ~ lo(x, span = .5, degree = 2), data = tdat)
这很好用,但是当我拟合多个模型时出现段错误(但仅 黄土和度= 2)。
这会为我制作:
for(i in 1:10) m1 <- gam(y ~ lo(x, span = .5, degree = 2), data = tdat)