使用 glmnet 和 2 个类别时,插入符号中的训练函数出错
以下代码块失败了,我无法辨别原因。
library(caret)
data(iris)
TrainData <- iris[,1:4]
TrainClasses <- factor(ifelse(iris[,5]=='versicolor','versicolor','other'))
model1 <- train(TrainData,TrainClasses,method='glmnet')
出现以下错误:
Error in { : task 1 failed - "'n' must be a positive integer >= 'x'"
如果我使用不同的模型,例如 glm
,它运行正常。如果我使用 3 个类,TrainClasses <- iris[,5]
,它也可以正常工作。
那么 2 个类是唯一导致 glmnet 方法失败的吗?
这是 Windows 上的 R 版本 2.14.0,插入符版本 5.09-006。同样的错误发生在我的 mac 和 linux 上。
The following block of code fails, for no reason I can discern.
library(caret)
data(iris)
TrainData <- iris[,1:4]
TrainClasses <- factor(ifelse(iris[,5]=='versicolor','versicolor','other'))
model1 <- train(TrainData,TrainClasses,method='glmnet')
With the following error:
Error in { : task 1 failed - "'n' must be a positive integer >= 'x'"
If I sub in a different model, such as glm
it runs fine. If I uses 3 classes, TrainClasses <- iris[,5]
, it also works fine.
What about 2 classes is uniquely causing the glmnet method to fail?
This is R version 2.14.0, caret version 5.09-006, on windows. The same error happens on my mac and on linux.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我无法回答您为什么会收到错误(因为代码在我的机器上运行良好),但我建议您遵循 R-hel 发布指南中的建议,并包含有关您的版本和版本的更多详细信息设置:
我有一个相当完整的会话,而你的肯定会有所不同。由于函数被会话中稍后加载的其他包屏蔽,可能会出现冲突。刚才加载“caret”时出现了不少警告。
I'm not able to give you an answer about why you are getting an error (since the code runs fine on my machine) but I will suggest you following the advice in the R-hel Posting Guide and include more details about your versions and set up.:
I have a fairly full session and yours will surely have been different. There can be conflicts that arise because of functions having been masked by other packages that were loaded later in a session. There were quite a few warnings when I loaded "caret" just now.