我正在用caret / R构建一个预测模型,我遇到了以下问题:
if中的错误(tmps< .Machine $ double.eps ^ 0.5)0 else tmpm / tmps: 缺少需要TRUE / FALSE的值
经过一些研究后,当数据中缺少值时会出现此错误,而本例中并非如此(我确认数据集没有NA)。但是,我还在某处读到了在插入符号中重新采样例程期间可能会引入缺失值,我怀疑这是正在发生的事情。
preProcess(c('zv','nzv','knnImpute')),
自动输入缺失值,在插入符号中重新采样期间的数据,但现在我收到以下错误:错误:预处理需要矩阵或数据帧
毋庸置疑,我检查并确认输入数据集确实是矩阵,所以我不明白为什么会出现第二个错误。
代码如下:
x.train <- predict(dummyVars(class ~ ., data = train.transformed),train.transformed)
y.train <- as.matrix(select(train.transformed,class))
vbmp.grid <- expand.grid(estimateTheta = c(TRUE,FALSE))
adaptive_trctrl <- trainControl(method = 'adaptive_cv',
number = 10,
repeats = 3,
search = 'random',
adaptive = list(min = 5, alpha = 0.05,
method = "gls", complete = TRUE),
allowParallel = TRUE)
fit.vbmp.01 <- train(
x = (x.train),
y = (y.train),
method = 'vbmpRadial',
trControl = adaptive_trctrl,
preProcess(c('zv','nzv','knnImpute')),
tuneGrid = vbmp.grid)
问题(1)和(2)的代码之间的唯一区别是在(1)中,列车语句中的预处理行被注释掉了。
总之,
- 数据中没有缺失值
- x.train和y.train绝对是矩阵
- 我尝试使用标准的'repeatedcv'
方法代替'adaptive_cv'
trainControl
中的class
具有相同的确切结果
-Forgot提到结果<LocationMatch "^/(ae/en|ar/en|ar/es|at/en|au/en|be/en|br/en)/">
Order Allow,Deny
Allow from all
#should keep varying as per the regex matched in location match
ProxyPass "http://www.xyz.com.au:80/au/en/"
#should keep varying as per the regex matched in location match
ProxyReverse "http://www.xyz.com.au:80/au/en/"
</LocationMatch>
有3个级别
任何人都有任何关于可能出错的建议吗?
一如既往,提前谢谢
reyemarr
答案 0 :(得分:0)
我的数据存在同样的问题,经过一些挖掘后,我发现其中一列中有一些Inf
(无限)值。
将它们取出后(df <- df %>% filter(!is.infinite(variable))
),计算运行没有错误。