Linear Regression
最近在Github上学习机器学习,主要是在黄海广博士的项目下学习吴恩达的机器学习教程,做下笔记。
如有需要:链接自取(click)
代价函数 Cost Function
又称误差平方和函数,是指当前所拟合的直线与各点误差的平方和.这里使用单变量做下解释。
图中的x为一特征,y为正确答案,直线h(x)是预测值,代价函数J(x)就是这些蓝色线段距离平方的和。
h ( x ) = θ 0 + θ 1 ∗ x h(x)=\theta_0+\theta_1*x h(x)=θ0+θ1∗x
J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h ( x ( i ) ) − y ( i ) ) 2 J(\theta_0,\theta_1)=\frac{1}{2m}\sum_{i=1}^{m}(h(x^{(i)})-y^{(i)})^2 J(θ0,θ1)=2m1∑i=1m(h(x(i))−y(i))2
其中m表示数据的份数, x ( i ) x^{(i)} x(i)表示第i份数据,单变量可以采用 θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1,而对于多变量多个特征时主要采用矩阵的方法计算,这时代价函数记为 J ( θ ) J(\theta) J(θ)。
对于不同的模型参数( θ 0 , θ 1 … \theta_0,\theta_1\dots θ0,θ1…),代价函数会有不同的值,但是总存在一个最小值。对于上面的单变量代价函数,可以知道,在 θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1的取值范围下, J ( θ ) J(\theta) J(θ)的图像总是会成为一种弓形结构(bow shape)
梯度下降算法 Batch Gradient Descent
算法的目的是找到代价最小的点。
算法的含义:一开始任意取一点,每次向低处靠近,最终到达局部最低点(而对于线性回归,是一种弓形结构,只存在全局最低点)
在每次下降中都是改变了 θ \theta θ使得拟合直(曲)线发生变化。
算法公式: α \alpha α是学习率
单变量
多变量
唯一不同就是在于模型参数的增多,但是不影响算法本身,因为算法实现利用了矩阵的思想,加快了速度,也简化了算法。
数学表达:
J ( θ ) = 1 2 m