c++ 三次多项式拟合_线性回归进阶版,多项式线性回归讲解与实现(附完整代码)...

每天给小编五分钟,小编用自己的代码,带你轻松学习深度学习!本文将会带你做完一个深度学习进阶版的线性回归---多项式线性回归,带你进一步掌握线性回归这一深度学习经典模型,然后在此基础上,小编将在下篇文章带你实现神经网络,并且用它实现对数据集的训练。野蛮智能,小白也能看懂的人工智能。

e5c5aa3ec6092fb5eb76c592d2a5d055.png

本文代码环境:Anaconda3+pytorch1.0,python版本为3.4-3.6,如果你还没有搭建好环境,可以参考小编的:文科生也能看懂的深度学习入门宝典:pytorch+tensorflow快速上手

关于多项式线性回归的前生今世小编已经在深度学习模型速成,三分钟解决经典线性回归模型(附完整代码)进行了讲解。本文要讲的是一个进阶版的线性回归---多项式线性回归。

多项式线性回归

多项式线性回归的最大优点就是把原来的x1,x2,x3,这些数据更加多层次的描述变成了,例如x1,就变成了三个对应权重分别乘以x1的一次方,x1的二次方,x1的三次方。这样做的好处是可以更加准确的描述数据的特点。方便我们在选择其他模型前,对数据有一个更好地预估。

多项式线性回归代码实现

讲解完了多项式线性回归的基本原理,下面进入代码的实现。代码如下:

3f71f532b61e32e412bc29fc523b1bfc.png

代码略微有点长,但还是希望大家耐心看完。首选是导入必要的包,这一步操作和小编的深度学习模型速成,三分钟解决经典线性回归模型一文中的操作是一样一样的。然后make features​函数是将原来的数据进行升维操作。将原来的数据由{x1,x2,x3,x4},变成{[x1**1,x1**2,x1**3],[x2**1,x2**2,x2**3]},然后数据就从一个维度变为了三个维度,这样可以更加具体的描述数据。画出来的曲线也更加具体,准确。

然后定义数据,定义好我们的数据集:x,和y=wx+b,这是我们希望将x作为数据集后训练得到的最拟合的结果。(注意,这里的w和x是矩阵,所以她们的乘法要用mm,mm指的是矩阵乘法)。最终通过,f(x)这一函数得到结果。

然后get_batch函数定义了一组训练集,和对应的结果y。并将其返回。poly_model是我们定义的模型。criterion指的是损失函数,optimizer选择了梯度下降法进行优化。最后在while(ture)下进行训练。

测试结果如下:

7b60f9ce8e0822bc154a1918cdf2844c.png

为了方便大家对比,我把蓝点向上移了一个单位。通过对比,我们发现,结果还是很准确的。野蛮智能,小白也能看懂的人工智能。欢迎大家评论。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值