python代码变量作业_吴恩达机器学习练习1.2——python实现代码详解

上一篇实现了单变量的线性回归,而多变量与单变量的代码实现大同小异,这一篇来实现多变量的线性回归。

在这里房屋大小Size和卧室数量Bedroom共同决定房屋售价Price,任务还是读取数据,找出拟合之选,预测房屋售价。数据仅列出前五行

1.1特征缩放

因为特征变量Size和Bedroom的数值范围差距过大,为减少梯度下降获得全局最小值所需迭代次数,需要对特征变量进行缩放。

可以看出经处理后,特征变量范围变得一致了

1.2multi-var batch gradient decent(多变量批量梯度下降)

这里的拟合直线通式如下:

代价函数仍然不变:

初始化X2,y2,theta2矩阵,直接运行批量梯度下降算法得到θ0、θ1、和θ2。

直观感受一下代价函数值随迭代的进行的变化图,可以看出代价函数曲线在迭代次数到达600后就几乎趋于平整,而使代价函数曲线趋于稳定的迭代次数于学习率有关。

1.3learning rate(学习率)

学习率指的是梯度下降公式中的α,通俗的来说,α决定了梯度下降的速率。α越大,梯度下降的速率也就越大,但如果α过大则可能会使代价函数无法收敛,而α过小则会导致梯度下降的速率过慢,从而花费大量的迭代次数。

下面通过绘制不同学习率对代价函数的影响来体现:

可以看出α过小(图中最上面的几条曲线)其梯度下降的速率很慢,50次迭代后仍不能看出明显的下降。而α取0.1或0.3是较为合适的。

2. normal equation(正规方程)

正规方程是一种能直接找到使J(θ)值最小的θ的方法。正规方程表达式如下:

X为训练数据集,y为结果集。上标T代表矩阵的转置。正规方程与梯度下降算法各有优劣。正规方程不需要选择学习率α,也不需要经过多次迭代,但相较于梯度下降算法,当训练数据集的特征数量n较大时(如30000),则矩阵求逆的计算量很大,这种情况选择梯度下降算法较为合适,并且正规方程只适用于线性模型。

代码实现:正规方程

如下是对于同样的数据集X2,y2用梯度下降算法得出的θ,二者非常接近。梯度下降

附:

编辑器:jupyter notebook

代码来源:黄海广 https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes

作业原文档:https://pan.baidu.com/s/1vvMGS5H2im1-1SlEjewulQ  提取码:4396

《机器学习》课程链接:https://www.coursera.org/course/ml

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值