线性回归基本思路:
其实很简单,线性回归便是用直线去模拟,以前高中就学过,在这里我们采用的评判标准,也就是J函数(代价函数)是正比于每个点到直线的距离的平方和的累计的。以单变量为例子,当J最小时,我们判断这根直线很好的拟合了数据集,事实证明,这的确是工作良好的一种判断基准。
单变量线性回归
m:训练集数量
x:输入变量/特征
y:输出变量
h:假设,也叫做函数,是我们用来拟合数据集的假想函数。
单变量情况下,一种可能的h:
代价函数J
此时,使得J最小,其实是调参数,使得关于两个参数的函数J最小,此时J是一个二元二次函数,
上面这个图为简化的情况,假设一个参数为零的情况下,图像为抛物线,其实此时根据数学知识能比较方便的直接得到答案。
当不对其进行简化的时候,要想得到这个二次二元函数的最小值,我们需要一种叫做梯度下降的办法,原理也很简单,学过高数偏导数应该很容易进行理解。梯度下降
先提供一个批量梯度下降的公式
其中a是学习率,也就是需要我们自己提供的一个正实数,我们调节a来调节收敛的快慢
正确的步骤应该如下,
需要注意注意新旧迭代的顺序。
这样下去,我们将在收敛的时候得到一个局部最小值。
我们可以尝试将h(x)以及偏导数展开,可以得到如下等价的算法
其中
正规方程
不需要迭代算法,直接得到J最小值的数值解法。
正规方程是通过求解下面的方程找出最小参数的
设X为特征矩阵,Y为训练集结果,如图所示一个例子
参数组成的列向量
如下:
关于正规方程的证明
总结:在特征不多的情况下,选择正规方程比较省事。
多变量线性回归
与单变量回归的区别是单变量仅仅只有一个特征,多变量具有多个特征(x1,x2,…,xn)
设特征的个数为n,设特征矩阵中的第M行为为第M个训练实例。
支持多变量的假设为:
为了简化这个假设,设x0=1,即增加一个都为一的特征列向量x0
则公式转换成一个简洁的形式
下面介绍多变量线性回归的梯度下降方法,熟悉的配方熟悉的味道。。
几个梯度下降的技巧
- 特征缩放
面对多维特征的时候,我们要保证特征具有相近的尺度,相差太大的话会使得图像太扁,收敛很慢,为使得算法更快的收敛,解决的办法是尝试将所有的特征的尺度都尽量缩放到-1和1之间
最简单的方法: - 学习率
- 3.特征和多项式回归
我们发现线性回归并不能适用于所有的数据,有时候我们需要曲线来拟合我们的数据,如二次模型