Machine Learning — 线性回归
线性回归算法是机器学习中最基础的算法,输出变量与输入变量是线性关系(即一次方),如果只有一个输入变量,称为一元线性回归,多于一个输入变量时,即为多元线性回归。
一、一元线性回归
以预测房价为例,图中红色x表示样本集,这里假设房价仅与size有关,所以最终回归出来的应该是一条值钱。
(图一)
这里假设函数hθ(x)=θ0+θ1x
x表示输入变量,y表示输出变量;
(x(i),y(i))表示第i个观察实例,i=1~m,m表示样本集中的样本点个数。
那如何选取θ0,θ1呢?这里引进一个代价函数(cost function)
目标就是使这个函数最小(其实就是最小二乘法)
图二是代价函数的三维图,我们的目标就是找到图中最低点对应的θ0,θ1
图三是等值线图,同种颜色的线代表同一个J(θ0,θ1)
(图二)
(图三)
梯度下降法(Gradient descent)
梯度下降法是求解代价函数最小值的方法之一,当样本量很大时,这种方法有较高的计算效率。它的原理是:先随机选择一个参数组合(θ0,θ1),计算代价函数,然后寻找下一个能让代价函数下降最多的参数组合,依次迭代,这样做可以得到一个局部最小值,但不一定是全局最小值。另外,选择不同的初始值,可能会得到不同的局部最小值。
这里需要对j=0,1同时进行迭代,而且这里用到的代价函数J(θ0,θ1)需要数据集所有样本点的求和,所以也成为批梯度下降法(batch gradient descent)。
大家知道,对于多元函数,梯度表示函数增长最快的方向。假想函数是山坡,你站在山顶,梯度代表最陡峭的方向,这个算法的原理是让(θ0,θ1)沿着J函数梯度的方向进行迭代,随着(θ0,θ1)的迭代,函数值就沿着梯度方向以最快的速率下降,当快达到谷底时,梯度越来越小,θj的变化就越来越小,当小于某一设定值时,即停止迭代,认为找到了J函数的局部最小值。
二、多元线性回归
大部分情况下,输入变量很多,假设为n,每个变量对应m个样本值,我们把这些变量组成一个矩阵X=(x1(i),x2(i),...xn(i)),(i=1~m);输出量Y=(y1,y2,...yn),还是以预测房价为例
这里多变量的假设hθ(x)=θ0+θ1x1(i)+θ2x2(i)+...+θnxn(i),(i=1~m),这个公式中有n+1 个参数和n 个变量,为了使得公式能够简化一些,引入x0=1,hθ(x)=θTX。
多变量梯度下降
三、梯度下降法使用时的注意事项
1、特征缩放
2.Learning Rate
梯度下降算法的每次迭代受到学习率(即代价函数中的α)影响,如果α 过小,则达到收敛所需的步数很多;如果学习率 α 过大,每次迭代可能不会减小价函数值,越过局部最小值,导致无法收敛。
四、正规方程(Normal Equation)
用正规方程是求解代价函数极小值的另一种方法,这种方法类似与高数中求函数极值的方法,先对函数求导,令导函数等于0,求解导函数。