【发布时间】:2015-09-13 17:38:30
【问题描述】:
我正在运行朴素贝叶斯模型,直接使用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
任何想法为什么会发生这种情况或对这两个函数之间的速度差异的一般想法?
另外,速度差异有没有可能与公式界面有关?我的一些预测因子是超过一百个水平的因子。
【问题讨论】:
-
如果您不使用模型参数的自动调整和选择,您必须使用
train()的tuneGrid参数指定模型参数(此处为fl和usekernel)功能。看到这个question -
Bryan,如果您发现有用的答案,您可以点赞或接受。
标签: r classification r-caret naivebayes grid-search