解决一元线性回归问题仍然需要用到梯度下降,在之前我已经介绍过梯度下降了,所以这里不做过多重复,还不会的小伙伴可以看我之前的博客,或者寻找其他博客自行理解。
首先介绍一下什么是线性回归
线性回归概念
回归分析中,如果只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析;如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。接下来我将对一元线性回归详细介绍。
一元线性回归其实就是从一堆训练集中去算出一条直线,使数据集到直线之间的距离差最小。
比如我们上学时学过的一元一次方程组 y=kx+b就是一个最简单的回归模型,当时我们学习这个函数的时候是通过直线上固定的点从而求出参数得到这条直线的方程,但一元线性回归是通过许多往往不在一条直线上的点,找到一条到每个数据点的距离都尽可能近的直线,所以我们需要通过这些数据点来估计参数k和b,从而得到这条直线方程。
如下图所示:
线性回归原理
接下来我将用一个例子来具体引入一元线性回归原理。
唯一特征X,共有m = 500个数据数量,Y是实际结果,要从中找到一条直线,使数据集到直线之间的距离差最小,如下图所示:
要解决这个问题,首先我们需要假设一条直线:
h(x)=θ0+θ1*x
可以将特征X中每一个值xi都代入其中,得到对应的h(xi),定义可以将损失定义为yi和h(xi)差值平方的和:
为了之后的计算我们将其修改为
接下来我们只需求出最小的J(θ)即可。
上述就是解决这个问题的大致思路,对于损失函数的更具体的理解如下:
我们可以将xi理解为房子的面积,而h(xi)就是我们通过房子面积对房子价格做出的估计,而yi就是房子真实的价格,所以误差就是h(xi)与yi的差值,为了避免出现负数,我们对其平方,求和除于m是为了求平均差值,而除于2是为了便于之后的求导。
得出损失函数之后,就只需运用梯度下降不断迭代更新求出minmizeJ(θ0,θ1),因而得出θ0和θ1即可。
具体推导如下:
Original: https://blog.csdn.net/qq_52000773/article/details/122559512
Author: 爱摸鱼的懒猫
Title: 一元线性回归
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/630929/
转载文章受原作者版权保护。转载请注明原作者出处!