在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
install.packages("h2o") library(h2o) Sys.setenv(JAVA_HOME="E:/java/JAVA(1)") -----配置环境变量 h2o.init() #链接h2o平台 使用的数据形式如下: 先处理一下数据,划分一下数据集: a<-read.table("gu.txt") gutrain<-a[1:4680,] gutest<-a[4681:4695,] write.table(gutrain, file="D:/gutrain.csv",col.names=F,row.names=F,sep=",") write.table(gutest, file="D:/gutest.csv",col.names=F,row.names=F,sep=",") a_train <- h2o.importFile(path = "D:/gutrain.csv")#训练集 a_test <- h2o.importFile(path = "D:/gutest.csv")#测试集 y_train <- as.factor(as.matrix(a_train[, 5]))#训练y y_test <- as.factor(as.matrix(a_test[, 5]))#测试y 然后建立模型: model <- h2o.deeplearning(x = c(1:4,c(6,7)), # column numbers for predictors y = 5, # column number for label training_frame = a_train, activation = "Rectifier", ##**函数为纠正线性函数 #balance_classes = TRUE, ##分类是否均衡 hidden = c(100, 100, 100), ## three hidden layers epochs = 100) yhat_train <- h2o.predict(model, a_train)$predict yhat_train <- as.factor(as.matrix(yhat_train)) yhat_test <- h2o.predict(model, a_test)$predict yhat_test <- as.factor(as.matrix(yhat_test)) yt<-as.numeric(as.character(y_test)) #因子转数值需要先转字符再转数值,不然会把因子转成1~length(factor)之间的数值 yhat<-as.numeric(as.character(yhat_test)) 接下来看一下预测效果: s<-0 for(i in 1:15) { if(abs(yhat[i]-yt[i])<0.35) s<-s+1 } s [1] 13 预测误差在0.35以内的数据有13个,相对误差是3%,效果还不错,再看一下趋势预测效果 aa<-0 [1] 11 趋势预测的正确率是73.3%,也算差强人意,在参数的调节上再下点功夫可能效果会更好 |
请发表评论