• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

R语言mxnet做深度学习回归预测

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

下面的代码参考http://blog.csdn.net/xxzhangx/article/details/54729055来获取解释:

library(mxnet)

data(BostonHousing, package="mlbench")

str(BostonHousing)
dim(BostonHousing)
train.ind = seq(1, 506, 3)
train.x = data.matrix(BostonHousing[train.ind, -14])
train.y = BostonHousing[train.ind, 14]
test.x = data.matrix(BostonHousing[-train.ind, -14])
test.y = BostonHousing[-train.ind, 14]

# 定义输入数据
data <- mx.symbol.Variable("data")
# 完整连接的隐藏层
# data: 输入源
# num_hidden: 该层的节点数
fc1 <- mx.symbol.FullyConnected(data, num_hidden=1)

# 针对回归任务,定义损失函数
lro <- mx.symbol.LinearRegressionOutput(fc1)

mx.set.seed(7)
model <- mx.model.FeedForward.create(lro, X=train.x, y=train.y, ctx=mx.cpu(), num.round=50, array.batch.size=20, 

learning.rate=2e-6, momentum=0.9, eval.metric=mx.metric.rmse)#用相对误差来做损失函数


————————————————————————————————
#或者自定义损失函数为均方差
demo.metric.mae <- mx.metric.custom("mae", function(label, pred) {
  res <- mean(abs(label-pred))
  return(res)
})
mx.set.seed(7)
model <- mx.model.FeedForward.create(lro, X=train.x, y=train.y, ctx=mx.cpu(), num.round=50, array.batch.size=20, 
learning.rate=2e-6, momentum=0.9, eval.metric=demo.metric.mae)#用均方差来做损失函数

————————————————————————————————


开头提到的链接到以上就没了下文,只训练了模型,却没有把模型用来预测,本文对预测结果做出补充:

preds = predict(model, test.x) #利用训练的模型预测测试集y

#接下来做出预测值与测试集实际值的图像
t<-as.data.frame(test.y)
for( i in 1:337)
{
t[i,2]<-preds[1,i]
}
t[,3]<-c(1:337)
library(ggplot2)
ggplot(t,aes(group=V3))+geom_line(data=t,aes(group=1,V3,test.y),colour="green")->q
q+geom_line(data=t,aes(group=1,V3,V2),colour="red")


表面看上去,预测的效果还是可以的,虽然数值在某些地方有很大差距,但走势看上去拟合的还不错,但究竟如何呢,我们用数据说话:

#计算趋势预测准确率

a<-c(-1:-336)
for(i in 1:336)
{
if((t[i+1,1]-t[i,1])*(t[i+1,2]-t[i,2])>0){a[i]<-1}
else a[i]<-0
}
length(which(a==1))

得到如下结果:

[1] 192

336个趋势只预测成功了192个,正确率只有0.5714286,可见效果并不理想,同前一篇文章一样,mxnet给出的官方案例可以说是让人很失望了,虽然如此,但也不得不说,案例中没有出现设置隐藏层层数的参数,不知道是不是这个原因导致模型没有调整好还是数据规模或者数据数量不行导致效果如此之差。

笔者小白一个,文中如有错误,欢迎大家在评论区指正


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap