我正在运行一个朴素贝叶斯模型,klaR
直接使用该包非常快,在标准笔记本电脑上计算不到一秒:
mod <- NaiveBayes(category ~ ., data=training, na.action = na.omit)
然而,使用caret
包的train()
接口——我认为这只是上述函数的包装——需要很长时间:
mod <- train(category ~ ., data=training, na.action = na.omit, method="nb")
我猜这是因为train
默认包含一些重采样。我尝试包含trControl = trainControl(method = "none")
但收到以下错误:
Error in train.default(x, y, weights = w, ...) :
Only one model should be specified in tuneGrid with no resampling
任何想法为什么会发生这种情况或对这两个功能之间的速度差异的一般想法?
另外,速度差异有没有可能与公式界面有关?我的一些预测因子是超过一百个水平的因子。