介绍
定义:线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。
(小萌A:)什么意思?
简单来说,我们把每个数据样本比作一个点,对于这堆点,我们试着用一条直线去拟合它们,尽可能的使得这些点均匀的分布在直线的两边,像这样:
我们拟合出一条最优的直线后,当有新的数据出现时,我们可以通过这条直线来预测对应的y值,就是这个意思。
(小萌B:)怎么拟合呢?
首先,我们有一个函数模型:
对于我们的训练数据:
便于计算机的计算,我们将我们的样本写成举证的形式:
——————————————
(小萌B突然发问:)为什么每行都会多出来一个1?
请看到我们的上上上一张图,W0 就是我们的函数模型的截距,它的系数始终为1。
——————————————
然后我们通过已知的Y值和X值来找到这个神秘的W值,我们的函数模型每次都完美的拟合所有的数据是不可能的,这时候我们引入损失函数cost(拿最小二乘法来说):
(小萌D:)然后呢?
当我们的矩阵满秩时求解,直接对其求导:
当矩阵不满秩时,采用梯度下降法:
梯度下降法
原理:将函数比作一座山,我们站在某个山坡上,往四周看,从哪个方向向下走一小步,能够下降的最快;
1、首先对θ赋值,这个值可以是随机的,也可以让θ是一个全零的向量。
2、改变θ的值,使得J(θ)按梯度下降的方向进行减少。
对损失函数求导可以得到:
不断的迭代“这个步骤”,最后当我们导数几乎为零是,我们就求得了这个W值。
但是我们需要知道的是,梯度下降算法是一种求局部最优解的方法
Tips:
1)为了更好更迅速的进行梯度下降,我们需要对数据进行归一化或者标准化,使得数据分布在某一个范围内(比如将值从1-100000的数据归一化到0-1的范围内)
2)对于线性回归模型而言,符合高斯分布的数据可以获得更好的准确率,所以适当的时候我们需要对数据进行数据处理,让其尽可能的满足高斯分布
这些会在后续的章节里面逐一介绍
文章内容若有不足,欢迎批评指正