我想建立一个条形图,其中独立变量的重要性按最大值排序。我正在使用模型的mlp函数,不相信我使用正确的输出。模型是来自mlp函数的内容
data(iris)
#shuffle the vector
iris <- iris[sample(1:nrow(iris),length(1:nrow(iris))),1:ncol(iris)]
irisValues <- iris[,1:4]
irisTargets <- decodeClassLabels(iris[,5])
#irisTargets <- decodeClassLabels(iris[,5], valTrue=0.9, valFalse=0.1)
iris <- splitForTrainingAndTest(irisValues, irisTargets, ratio=0.15)
iris <- normTrainingAndTestSet(iris)
model <- mlp(iris$inputsTrain, iris$targetsTrain, size=5, learnFuncParams=c(0.1),
maxit=50, inputsTest=iris$inputsTest, targetsTest=iris$targetsTest)
ex<-extractNetInfo(model)
k<-ex$unitDefinitions
w <- which(k[,5]=="UNIT_INPUT")
dat<-subset(k, select=c("unitName","unitAct"))[w,]
dat$unitAct=dat$unitAct/max(dat$unitAct)
dat["new"]<-colnames(the.data$inputsTrain)
dat <- dat[order(dat$unitAct),]
par(las=2) # make label text perpendicular to
par(mar=c(5,8,4,2)) # increase y-axis margin.
barplot(dat$unitAct, main="Importance of Independent Variables", horiz=TRUE, names.arg=dat$new, cex.names=0.8)