1.单变量线性回归(Linear Regression with One Variable)
1.1线性回归算法
线性回归(Linear Regression)是一种通过属性的线性组合来进行预测的线性模型,其目的是找到一条直线或者一个平面或者更高维的超平面,使得预测值与真实值之间的误差最小化。
预测住房售价是监督学习中的回归问题,看例子学算法。
例子:使用数据集预测住房售价
线性函数表达公式:
该表达方式可以看做为y=kx+b,因此需要求得是斜率和截距,使得数据中的点到直线的距离最短。因此需要研究的是如何得到最合适的斜率和截距
扩展
而特征有n个时,模型表达式如下:
PS:具体可查看:https://www.cnblogs.com/nowornever-L/p/6862292.html
1.2代价函数(Cost Function)
代价函数就是为了就是找到目的函数的最优解。
若试验过无数的参数(θ1和θ0)时,可以得到一条函数曲线,如下图:
这时候就可以直观的看出来最优解了。
最终确定参数的最优值,得到一个最好的拟合函数
1.3梯度下降(Gradient Descent)
在选定线性回归模型后,只需要确定参数θ,就可以将模型用来预测。然而θ需要在J(θ)最小的情况下才能确定。因此问题归结为求极小值问题,使用梯度下降法。梯度下降法最大的问题是求得有可能是全局极小值,这与初始点的选取有关。
这里是梯度下降算法的一个示意图,可以把它理解为下山。不同的初始点可能得到的局部最小值不一样。
梯度下降法是按下面的流程进行的:
1)首先对θ赋值,这个值可以是随机的,也可以让θ是一个全零的向量。
2)改变θ的值,使得J(θ)按梯度下降的方向进行减少。
梯度方向由J(θ)对θ的偏导数确定,由于求的是极小值,因此梯度方向是偏导数的反方向。结果为
迭代更新的方式有两种,一种是批梯度下降,也就是对全部的训练数据求得误差后再对θ进行更新,逐渐增大或缩小θ的值。
批量梯度下降算法公式:
其中
α为学习速率。 α决定了我们往下走的步伐有多大
另外一种是增量梯度下降,每扫描一步都要对θ进行更新。前一种方法能够不断收敛,后一种方法结果可能不断在收敛处徘徊。
一般来说,梯度下降法收敛速度还是比较慢的。
具体的梯度下降参考:https://www.cnblogs.com/pinard/p/5970503.html
线性回归的更多具体模型参考:https://www.cnblogs.com/nowornever-L/p/6862292.html
练习题的代码:https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes/blob/master/code/ex1-linear%20regression/1.linear_regreesion_v1.ipynb
课程的视频:https://study.163.com/course/introduction.htm?courseId=1004570029&trace_c_p_k2=537b09af6f08403baf6a7ff11f7bb457
网友评论