线性回归与多项式回归

线性回归与多项式回归线性回归是最简单的一种机器学习算法 可分为一元线性回归和多元线性回归 也就是特征数量不同 这里先主要介绍一元线性回归 举一个简单的例子 有一组带标签样本 xi yi x 是特征 y 是响应变量 标签 认为他们服从线性方程 yi a bxi cy i a bx i cyi a bxi c 其中 b 是回归系数 a bxi 是回归函数 c 则是随机误差 我们要做的就是估计 a b 使得函数对数据尽可能

线性回归是最简单的一种机器学习算法,可分为一元线性回归和多元线性回归(也就是特征数量不同),这里先主要介绍一元线性回归。举一个简单的例子,有一组带标签样本(xi,yi),x是特征y是响应变量(标签),认为他们服从线性方程:

y i = a + b x i + c y_i=a+bx_i+c yi=a+bxi+c

其中b是回归系数,a+bxi是回归函数,c则是随机误差。

我们要做的就是估计a、b,使得函数对数据尽可能好地拟合,同时也具有较好的泛化能力。虽然实际上我们可以从理论上推导出a、b的最优值,但是既然是机器学习,就应该把这些工作交给计算机完成。按照机器学习的流程,我们首先为ab定义一个初始点(比如(0,0)),然后定义损失函数,这里我们采取最小二乘法,定义每点的误差再相加,得到的函数称为RSS(Residual Sum of squares):

R S S = ( y 1 − β ^ 0 − β ^ 1 x 1 ) 2 + ( y 2 − β ^ 0 − β ^ 1 x 2 ) 2 + . . . + ( y n − β ^ 0 − β ^ 1 x n ) 2 RSS = (y_1 – \hat\beta_0 – \hat\beta_1 x_1)^2 + (y_2 – \hat\beta_0 – \hat\beta_1 x_2)^2 + … + (y_n – \hat\beta_0 – \hat\beta_1 x_n)^2 RSS=(y1β^0β^1x1)2+(y2β^0β^1x2)2+...+(ynβ^0β^1xn)2

通过RSS进一步构建损失函数MSE(均方误差)。得到损失函数和初始点之后,就可以采取梯度下降法,计算梯度,然后得到新的a、b取值,不断重复这个过程,直到最后MSE小于一定值,即可完成对ab的估计。

针对更一般的多元线性回归,可把多个变量写成矩阵形式,并得到更一般的回归方程:

f ( x i ) = w T x i + b f(x_i) = w^T x_i +b f(xi)=wTxi+b

虽然特征变多了,本质上我们还是估计参数,让MSE变小,所以只是改变了输入格式,整个流程还是一样的。

我们可以扩展一下线性回归,之前假设特征和响应变量之间服从一元一次方程的关系,可是如果遇到一元函数没办法很好拟合数据的情况,就需要多项式回归了。

多项式回归主要是加入了特征的更高次项,相当于增加了模型的自由度,或者说增加了模型的复杂度,使得模型可以更好更灵活地拟合数据(正则化里有讲述相关模型复杂度和特征次数的关系)。

假如现在有一个特征,那么多项式回归方程为:

h ^ = θ 0 + θ 1 x 1 + . . . + θ n x n \hat h = \theta_0 + \theta_1 x^1 + … + \theta_n x^n h^=θ0+θ1x1+...+θnxn

有了向量形式,即使我们考虑多个特征,也可以很简洁地写出来了:

h ^ = X ⋅ θ 0 \hat h = X·\theta_0 h^=Xθ0

事实上,线性回归就是特殊的多项式回归,这很好理解,最后,我想说的是,不考虑过拟合之类的问题,理论上来说,多项式回归应该是可以拟合任何的数据的,因为我们有泰勒定理,任意的函数都可以通过泰勒级数逼近,或许我们构建的多项式过于复杂,有很多项是不需要的(因为多项式回归必须把同一次项的所有情况都要考虑,比如两个特征的三次多项式,只要是特征的幂是三就需要称为多项式的项,而不仅仅是每个特征的一二三次幂),但是我们也要知道,在训练模型的过程中,对数据影响不大的项的参数是会最终趋于零的,所以不考虑计算量、过拟合等问题,哪怕我们只用多项式回归这个方法,也足够拟合任意的数据集了。

想浏览更多关于数学、机器学习、深度学习的内容,可浏览本人博客

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221360.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午6:18
下一篇 2026年3月17日 下午6:18


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号