varImp 函数,插入符包 R,返回非树模型的错误: y -mean(y, rm.na = TRUE) 中的错误:二元运算符的非数字参数

问题描述 投票:0回答:1

我已经通过 R 中的 caret 包创建了六个模型。其中两个模型(SVM 和 pcaNN)表现良好,我想看看它们如何对功能进行不同的排序。 varImp 函数应该能够为我提供此信息,但是当我运行此函数时,出现以下错误:

varImp_pcaNN = varImp(svmMod) Warning in mean.default(y, rm.na = TRUE) : argument is not numeric or logical: returning NA Error in y - mean(y, rm.na = TRUE) :  non-numeric argument to binary operator

以前版本的caret,目前使用6.0-94版本,没有出现这个错误。当使用基于树的模型、XGB 和 RF 时,我没有收到相同的错误;该函数按预期工作,并生成一个特征列表及其相关的重要性值。
我使用以下代码来创建每个模型(在适当的时候替换方法字符串):

set.seed(420) svmMod <- train(Class ~ .,  data = train_dataset, method = "svmRadial", tuneLength = TuneLength, importance = TRUE,  trControl = train.control)
我曾尝试安装以前版本的插入符号,但可惜我没有成功地正确安装以前的版本。

还有其他人遇到过同样的问题吗?你怎么修好它的? 我尝试在三个不同版本的 R 上解决这个问题: 4.2.1 4.2.2 4.3.0 全部带有以下版本的插入符: 6.0-94

machine-learning feature-extraction feature-selection caret
1个回答
0
投票

那么为什么错误与实际原因如此不同?至少它应该在错误消息中暗示与因素相关的问题,它正在打印。我确信代码中一定有一些深层的东西,在与因子相关的问题之前出现了这个与二进制相关的问题,但不知何故,它应该提供更多信息。

我见过这种错误,其实际原因是“不是因子形式”,但是,R 抛出了“下标越界”错误,新手开始担心数据维度。

PS:我没有足够的积分来发表评论。

© www.soinside.com 2019 - 2024. All rights reserved.