简单线性回归
简单线性回归就是用一个一次函数去拟合数据。
就像下图一样:横轴是唯一的一个特征,纵轴是标签。
由图可以看出,我们能把方程设为y=b0+b1*x,这样我们就得到了简单线性回归的拟合方程
多元线性回归
多元线性回归就是在简单线性回归方程的基础上增加了特征,在图像上看就是增加了维度。所以我们可以推断出多元线性回归的拟合方程是y=b0+b1*x1+b2*x2+b3*x3+......+bn*xn
当我们把第一项看成b0*x0而x0=1,这样我们就可以用矩阵来表示方程
b=[b1,b2,b3,......,bn]
x=[x1,x2,x3,......,xn]
所以y=b*x.T
代价函数
我们既然要拟合数据,就要让误差尽量达到最小,意思就是每个点到拟合直线的距离之和要尽量小。
为了方便计算,我们只用y的值进行比较,这样就有了距离y(x)-y,因为有负的值,会影响后面的求和,所以我们进行求平方和
这样我们就得到了代价函数:
h(x)是我们的拟合函数,y是训练数据。
并且在这个函数中,我们把theta,也就是上面的b,看成自变量。因为一个函数的方向和截距是由这些常数决定的,所以在代价函数最小时得出的theta肯定可以满足误差最小的条件。
梯度下降法
现在我们要做的就是如何去求出我们想要的theta,这里就要用到梯度下降算法了。
首先说下这个算法的原理,就用简单线性回归来说明。
这是简单线性回归的代价函数的图像,我们可以知道它有最小值。要求出这个最小点就要用到梯度下降算法。
这个算法就是使在图中的一个随机的点沿最小点一直一点一点的下降,然后达到最小点,这样就得到了我们想要的theta值。我们可以使用式子进行计算:
a为学习率,决定了函数下降的步长,就是下降的多少。
结合拟合函数可以得到:
所以,完整的式子:
由此我们可以推广到多元线性回归问题:
这样,我们就得到了梯度下降算法。
另外,多元线性回归并不只有一个低点,所以我们的多元线性回归中的梯度下降算法并不一定会求得全局最低点,大部分时候都是求得局部最低点。
共同学习,写下你的评论
暂无评论
作者其他优质文章