如何使用nnet
包从多项式回归模型中获得更好的预测。
我正在使用多项式线性回归来对分类(无序)数据进行建模以进行预测。但是,我无法达到84%的准确率。
我在数据上运行过chisq.test(),还观察了summary(model)
返回的系数。我删除了某些变量,但准确性仍然没有提高。
样本数据
set.seed(11113)
qtrs<-c(1,2,3,4)
states<-c('StateA','StateB','StateC','StateD','StateE','StateF','StateG',
'StateH','StateI','StateJ')
zone<-rep(LETTERS,500)
model<-c('TypeA','TypeB','TypeC','TypeD','TypeE','TypeF','TypeG','TypeH','TypeI','TypeJ')
dat<-data.frame(quarter = rep(qtrs,3250),
state = sample(states,1300,replace=T),
zone=zone,
model=rep(model,1300,replace=T),stringsAsFactors=FALSE)
nnet软件包
library(dplyr)
library(caret)
library(nnet)
dat[]<-lapply(dat,toupper)
dat[]<-lapply(dat,as.factor)
dat_samp_vec<-caret::createDataPartition(dat$model,p=0.80,list=F)
dat_train<-dat[dat_samp_vec,]
dat_test<-dat[-dat_samp_vector,]
dat_model<-multinom(model ~.,data=dat_train,maxit = 1000)
dat_test_predictions<predict(dat_model,dat_test)
mean(dat_test_predictions==dat_test$model)
#result
>.0.23
注意:此处的准确率随复制此数据(样本)而不同。实际数据的准确率为84%。但是,所采取的步骤是逐字记录的。