R 难以执行重复CV的插入符号GLM
很长一段时间以来,我一直在使用自制代码制作10X10倍的cv逻辑模型,但最近我发现让caret为我处理这些乱七八糟的东西可能会很好 不幸的是,我似乎遗漏了插入符号需要能够发挥作用的一些细微差别 具体地说,我经常遇到这样的错误:R 难以执行重复CV的插入符号GLM,r,r-caret,cross-validation,R,R Caret,Cross Validation,很长一段时间以来,我一直在使用自制代码制作10X10倍的cv逻辑模型,但最近我发现让caret为我处理这些乱七八糟的东西可能会很好 不幸的是,我似乎遗漏了插入符号需要能够发挥作用的一些细微差别 具体地说,我经常遇到这样的错误: >Error in { : task 1 failed - "argument is not interpretable as logical" 请看看你是否能理解我做错了什么 提前谢谢 数据集位于 dataset我没有足够的声誉来评论,所以我将此作为一个答案发布
>Error in { : task 1 failed - "argument is not interpretable as logical"
请看看你是否能理解我做错了什么
提前谢谢
数据集位于
dataset我没有足够的声誉来评论,所以我将此作为一个答案发布。我运行了你的代码,对我来说很好,两次。我确实收到了这样的警告:
glm.fit: fitted probabilities numerically 0 or 1 occurred
根据作者的说法,这个错误与savePredictions参数有关。看看这个问题:
我没有足够的声誉发表评论,所以我将此作为回答。我运行了你的代码,对我来说很好,两次。我确实收到了这样的警告:
glm.fit: fitted probabilities numerically 0 or 1 occurred
根据作者的说法,这个错误与savePredictions参数有关。看看这个问题:
多亏了@Sumedh,我发现问题可能不在我的代码上,于是我更新了我所有的软件包
惊喜!现在它起作用了。所以我根本没疯
非常抱歉这次消防演习。多亏了@Sumedh,我发现问题可能不在我的代码上,我更新了我所有的软件包
惊喜!现在它起作用了。所以我根本没疯
很抱歉这次消防演习。虽然您已经通过更新R和插入符号找到了修复方法,但我想指出,您的代码中存在一个导致错误的错误,我可以在这里用旧版本的R和插入符号重现该错误:
trainControl
的savePredictions
被设置为TRUE
或FALSE
,而不是“final”
。似乎您只是简单地将它与returnResamp
参数混合在一起,该参数正好取这个参数
顺便说一句:R和插入符号对因子的级别名称有限制,这就是为什么当您将因变量的0
和1
级别名称交给插入符号时,插入符号会抱怨的原因。使用一个简单的数据集$Dep.Var虽然您已经通过更新R和插入符号找到了修复方法,但我想指出,您的代码中存在一个导致错误的错误,我可以在这里用旧版本的R和插入符号重现该错误:
trainControl
的savePredictions
被设置为TRUE
或FALSE
,而不是“final”
。似乎您只是简单地将它与returnResamp
参数混合在一起,该参数正好取这个参数
顺便说一句:R和插入符号对因子的级别名称有限制,这就是为什么当您将因变量的0
和1
级别名称交给插入符号时,插入符号会抱怨的原因。使用一个简单的数据集$Dep.Var,感谢您运行代码。不过,我仍然得到了最初的错误。我知道glm.fit警告是关于什么的。但我甚至不能用它来创建该死的模型。也许我会更新到更新的版本。谢谢你运行代码。不过,我仍然得到了最初的错误。我知道glm.fit警告是关于什么的。但我甚至不能用它来创建该死的模型。也许我会更新到更新的版本。谢谢你花时间解释!我也喜欢因子命名技巧。奇怪的是,我在glm中使用了“0”和“1”(不带插入符号)作为因子名称,它没有任何问题。但我可以毫不犹豫地重新命名这些级别,让R和caret感到高兴。:-)哟!AFAIK一些模型只是不抱怨命名,但使用插入符号则更一致。请注意,在这种情况下使用data.frame(check.names=T,…)
也会很有用:-)感谢您花时间解释这一点!我也喜欢因子命名技巧。奇怪的是,我在glm中使用了“0”和“1”(不带插入符号)作为因子名称,它没有任何问题。但我可以毫不犹豫地重新命名这些级别,让R和caret感到高兴。:-)哟!AFAIK一些模型只是不抱怨命名,但使用插入符号则更一致。请注意,在这种情况下,使用data.frame(check.names=T,…)
也很有用:-)
testmodel <- train(Temp ~ Param.A + Param.G + Param.J + Param.O, data = dataset,
method = "glm",
trControl = my_control,
metric = "Kappa")
testmodel
> Error in { : task 1 failed - "argument is not interpretable as logical"
glm.fit: fitted probabilities numerically 0 or 1 occurred