线性回归

本文深入探讨线性回归原理,解析模型训练与测试过程,强调避免过拟合的重要性,介绍误差的理解与处理,以及最小二乘法和梯度下降算法的应用。

线性回归其实核心就是:用线性函数或多项式函数建立一个模型,这个模型的建立必须要有数据集,这是建立的根据,建立模型的数据叫做训练数据,训练好了我们还要测试,进而评价这么模型是否建立得当,评价这个模型建立的好与坏的数据集叫做测试集。

训练模型的关键在于使得预测值尽量接近真实值,误差是不可避免的,避免误差的后果可以确切的说就是过拟合,即便在训练集上误差不为零,但是误差很小也有可能出现过拟合,所以不要一味追求模型的复杂性,能用简单的东西就不要用复杂的东西,这也是自然界的真理。

那么训练模型时,如何把握好误差呢?我们对于误差有怎样的理解呢?
通常我们认为误差服从高斯分布,且误差的期望为零,方差为 σ 2 \sigma^2 σ2,这是我们的假设,至于到底是不是服从高斯分布,我们不知道,那么为什么误差项假设服从高斯分布呢?因为自然界中高斯分布是最为普遍的。理解误差是理解线性回归的关键,一方面我们的训练数据不可能保证全部正确,有一些数据标签有问题,还有一些数据可能属性有问题,但是数据集中的大多数还是可靠的,所以在训练集上追求绝对的误差为零其实是不明智的,因为这样已然学到了噪声,影响我们的模型准确性;另一方面,所谓的数据标签很有可能不是一个准确值,同样的数据属性,很可能产生在一个小范围内的浮动的数据标签,即数据标签值的绝对唯一性是虚无的,从这个角度看,追求训练数据集上的误差为零也是不正确的。
下面进行简单的推导:
线性回归的模型通常是这样的: y ^ = θ T x + θ 0 \hat y =\bm \theta^T\bm x+\theta_0 y^=θTx+θ0是我们期望建成的模型, y ^ \hat y y^是的预测值, x \bm x x是预测结果时输入模型的数据属性/数据特征; θ \bm\theta θ n × 1 n\times1 n×1向量,是模型的参数,也是各项数据属性的权值; θ 0 \theta_0 θ0截距项(intercept) $。我们通过最小二乘法最大似然估计都可以将训练集上模型预测时产生的误差降到最低程度,这个最低程度是相对的,不是零误差 ,也不是刻意追求很小,而是在模型复杂度得当的情况下追求预测误差的最小,有时我们还会用岭回归RidgeLasso回归限制模型的复杂度,使其参数的绝对值减小或某些参数干脆降为零,

如何训练模型呢?
假设建立模型的训练数据集共有 n n n个属性,有 m m m条数据,即训练集 X ∈ R m × n \bm X \in\mathbb R^{m\times n} XRm×n,训练集的标签lable,即真实值 y ∈ R m \bm y\in \mathbb R^m yRm
在训练模型时,为了表达的简洁性和计算的方便性,我们将训练集扩充一列,即在最左边加上全一列,这样新的训练集 X ∈ R m × ( n + 1 ) \mathcal{X} \in\mathbb R^{m\times (n+1)} XRm×(n+1);模型参数同样需要扩充,在原 θ \bm\theta θ的最上边加上一个元素“0”,这样新的模型参数 Θ ∈ R n + 1 \Theta\in\mathbb R^{n+1} ΘRn+1,从而预测模型变成 y ^ = Θ T x ∗ \hat y =\Theta^T\bm x^* y^=ΘTx,这样损失函数函数 l ( Θ ) = 1 2 m ∑ i = 1 m ( Θ T x i ∗ − y i ) 2 = 1 2 m ( X Θ − y ) T ( X Θ − y ) l(\Theta)=\frac{1}{2m}\sum^m_{i=1}\left(\Theta^T\bm x_i^*-y_i\right)^2=\frac{1}{2m}\left(\mathcal{X}\Theta-\bm y\right)^T\left(\mathcal{X}\Theta-\bm y\right) l(Θ)=2m1i=1m(ΘTxiyi)2=2m1(XΘy)T(XΘy),加上 1 2 m \frac{1}{2m} 2m1是为了后面的进行梯度下降算法时候的求导方便,并不影响最终的结果。

最小二乘法是这么来的,如果我们直接根据建立的模型来求解参数 Θ \Theta Θ是无解的,因为 X Θ = y \mathcal X\Theta=\bm y XΘ=y属于超定方程,即方程的个数大于未知数的个数,即便方程个数等于未知数的个数,这些点也不可能在一条线上,因此线性方程是无法求解的,这时候最小二乘法就该出场了,最小二乘法思想是这样的:我要找到一个最优解 Θ \Theta Θ,使得 y ^ = X Θ \hat\bm y=\mathcal X\Theta y^=XΘ最接近 y \bm y y,最接近意味着最相似,最相似意味着差异已经达到了该条件下的最小值。利用投影矩阵理解最小二乘法其实更形象,这个有时间再说

如何求解出最优的 Θ \Theta Θ值呢,通常来说,有两种方法,分别是“凸函数求偏导解方程的代数方法”和“梯度下降算法的迭代法”。
如果 X \mathcal X X的各列线性无关,则 X T X \mathcal X^T\mathcal X XTX是满秩矩阵,即可逆,这是可以用代数方法。但是这种方法的适用性并不普遍。
梯度下降算法(Gradient Descent)是更为普遍的一种优化算法,是一种不断迭代逼近最优值的算法。这种算法的内核是Taylor级数,只有充分理解了Taylor级数,才能理解梯度下降算法。包括牛顿法也是基于Taylor级数推导出来的。

线性回归的关键还是岭回归和Lasso回归,这个需要单独写一个blog。
多项式回归也是线性回归的一部分,只需要我们对数据进行预处理,即按照某一属性顺序给各列属性数据升幂,预处理结束,剩下的全是线性回归的相关操作流程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值