机器学习插入符号R:nnet显示varImp为空
我正在使用Caret的“nnet”在R中运行一个神经网络机器学习模型。我用“重要性=真实”来运行列车代码 我需要显示模型中包含的功能的重要性列表。我不知道怎么继续。感谢您的帮助 请参阅下面的代码。我的结果在第1列,变量在第2列到第45列机器学习插入符号R:nnet显示varImp为空,r,variables,machine-learning,r-caret,nnet,R,Variables,Machine Learning,R Caret,Nnet,我正在使用Caret的“nnet”在R中运行一个神经网络机器学习模型。我用“重要性=真实”来运行列车代码 我需要显示模型中包含的功能的重要性列表。我不知道怎么继续。感谢您的帮助 请参阅下面的代码。我的结果在第1列,变量在第2列到第45列 str(data) levels(data$outcome) <- c("no", "yes") caret.control <- trainControl(method="repeatedcv", number=10, repeats=3) mod
str(data)
levels(data$outcome) <- c("no", "yes")
caret.control <- trainControl(method="repeatedcv", number=10, repeats=3)
model <- train(y=data[,1], x=data[,c(2:45)], method="nnet", trControl=caret.control, importance=TRUE)
但这给出了一个错误信息
通过此错误消息,我正在进一步研究:
names(model)
names(model$modelInfo)
names(model$modelInfo$varImp)
由此产生的结果为“NULL”
有人知道如何解决这个问题,或者见过类似的错误吗?不确定如何查看带有“nnet”插入符号包型号的功能列表。嗨,Claire,你是否训练(…)完成时没有出错?没有重要的论点。卡雷特也没有。(@StupidWolf):是的,我完成了,没有错误。(@missuse):你的评论不是真的,其实我已经猜出了错误。在调用“train(…)”时,您必须单独键入每个变量,而不是以速记方式调用它们。从这里,我调用了“varImp(model,scale=FALSE)”并得到了变量重要性列表:)这样一个简单的区别,但为了查看变量的重要性,需要这样做。Train语句和预测将使用任何一种方法运行。@ClareFG调用
varImp(model,scale=FALSE)
是否会产生预期的结果,即使调用Train
时没有重要性=TRUE
?
names(model)
names(model$modelInfo)
names(model$modelInfo$varImp)