如何使用Lek'进行敏感性分析;R中的s配置文件?
我尝试使用R进行敏感性分析。我的数据集几乎没有连续的解释变量和分类的响应变量(7个类别) 我试着运行下面提到的代码如何使用Lek'进行敏感性分析;R中的s配置文件?,r,neural-network,artificial-intelligence,r-caret,nnet,R,Neural Network,Artificial Intelligence,R Caret,Nnet,我尝试使用R进行敏感性分析。我的数据集几乎没有连续的解释变量和分类的响应变量(7个类别) 我试着运行下面提到的代码 model=train(factor(mode)~Time+Cost+Age+Income, method="nnet", preProcess("center","scale"), data=train, verbose=
model=train(factor(mode)~Time+Cost+Age+Income,
method="nnet",
preProcess("center","scale"),
data=train,
verbose=F,
trControl=trainControl(method='cv', verboseIter = F),
tuneGrid=expand.grid(.size=c(1:20), .decay=c(0,0.001,0.01,0.1)))
Lekprofile(model)
通过这段代码获得输出后,我尝试使用下面提到的代码开发Lek的概要文件
model=train(factor(mode)~Time+Cost+Age+Income,
method="nnet",
preProcess("center","scale"),
data=train,
verbose=F,
trControl=trainControl(method='cv', verboseIter = F),
tuneGrid=expand.grid(.size=c(1:20), .decay=c(0,0.001,0.01,0.1)))
Lekprofile(model)
但是,我得到了一个错误,声明“xvars[,x_名称]中的错误:下标越界”
请帮助我解决错误。它不适用于分类模型,例如,如果我们使用回归模型:
library(caret)
library(NeuralNetTools)
library(mlbench)
data(BostonHousing)
str(BostonHousing)
'data.frame': 506 obs. of 14 variables:
$ crim : num 0.00632 0.02731 0.02729 0.03237 0.06905 ...
$ zn : num 18 0 0 0 0 0 12.5 12.5 12.5 12.5 ...
$ indus : num 2.31 7.07 7.07 2.18 2.18 2.18 7.87 7.87 7.87 7.87 ...
$ chas : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...
$ nox : num 0.538 0.469 0.469 0.458 0.458 0.458 0.524 0.524 0.524 0.524 ...
$ rm : num 6.58 6.42 7.18 7 7.15 ...
$ age : num 65.2 78.9 61.1 45.8 54.2 58.7 66.6 96.1 100 85.9 ...
$ dis : num 4.09 4.97 4.97 6.06 6.06 ...
$ rad : num 1 2 2 3 3 3 5 5 5 5 ...
$ tax : num 296 242 242 222 222 222 311 311 311 311 ...
$ ptratio: num 15.3 17.8 17.8 18.7 18.7 18.7 15.2 15.2 15.2 15.2 ...
$ b : num 397 397 393 395 397 ...
$ lstat : num 4.98 9.14 4.03 2.94 5.33 ...
$ medv : num 24 21.6 34.7 33.4 36.2 28.7 22.9 27.1 16.5 18.9 ...
我们训练模型,排除分类的chas
:
model = train(medv ~ .,data=BostonHousing[,-4],method="nnet",
trControl=trainControl(method="cv",number=10),
tuneGrid=data.frame(size=c(5,10,20),decay=0.1))
lekprofile(model)
可以看到y轴是连续的。我们可以尝试离散化我们的响应变量medv
,您可以看到它崩溃了:
BostonHousing$medv = cut(BostonHousing$medv,4)
model = train(medv ~ .,data=BostonHousing[,-4],method="nnet",
trControl=trainControl(method="cv",number=10),
tuneGrid=data.frame(size=c(5,10,20),decay=0.1))
lekprofile(model)
Error in `[.data.frame`(preds, , ysel, drop = FALSE) :
undefined columns selected
我建议您添加一些其他标签。这有助于将您的问题保留在更具针对性的社区中。@hamedbaziyad感谢您的建议。我添加了更多标签。请尝试
Lekprofile(model$finalModel)
@missue谢谢您的回复。我试过Lekprofile(model$finalModel)。但再次出现错误:“eval中的错误(mod_in$call$data):对象“dat”在dat_名称[,!names(dat_names)%in%as.character(forms)[2]中未找到错误”,drop=F]:尺寸数量不正确”