线性回归、最小二乘

目录

一,一元一次线性回归

1,回归模型

2,最小二乘法

3,矩阵表示法

二,多元线性一次回归

1,回归模型

2,超定方程组

3,正规方程组

4,最小二乘解

三,一元线性m次回归

四,多元线性回归

1,多元线性回归

2,损失函数

3,损失函数的最小值


一,一元一次线性回归

1,回归模型

2,最小二乘法

首先把整体偏离程度表示为:

配方法求出Q取最小值时的a和b的值为:

3,矩阵表示法

给定n维列向量x和y,求a,b使得y-bx-a的模取得最小值。

用超定方程组表示:

\begin{pmatrix} x_1 &1 \\ \vdots & \vdots \\x_n & 1 \end{pmatrix}
\begin{pmatrix} b\\ a \end{pmatrix}=
\begin{pmatrix} y_1  \\ \vdots  \\y_n  \end{pmatrix}

 

 先把x和y都减去均值再单位化,然后b的最小二乘解即可表示为b=x^Ty,a=0

 

二,多元线性一次回归

1,回归模型

m元线性一次回归模型:

y=\sum_{i=0}^m b_ix_i

其中x0 = 1 

2,超定方程组

\begin{pmatrix} x_{0_1}&x_{1_1} &...&x_{m_1} \\ \vdots & \vdots & \vdots & \vdots 
\\x_{0_n}&x_{1_n} &...&x_{m_n} \end{pmatrix}
\begin{pmatrix} b_0\\ \vdots \\ b_m \end{pmatrix}=
\begin{pmatrix} y_1  \\ \vdots  \\y_n  \end{pmatrix}

m是自变量(样本属性)的数量,n是样本的数量,n>m

设左边的矩阵为A,则要求解的超定方程组是Ab=y,而超定方程组一般是无解的,所以实际上求解目标是求列向量b,使得y-Ab的模最小。

我们把这个解成为超定方程组的最小二乘解。

3,正规方程组

可以证明,超定方程组的最小二乘解满足正规方程组:

A^TAb=A^Ty

4,最小二乘解

若A是列满秩矩阵(即A^TA是可逆矩阵),则正规方程组有唯一解:

b=(A^TA)^{-1}A^Ty

 

三,一元线性m次回归

\begin{pmatrix} 1&x_1 &...&x_1^m \\ \vdots & \vdots & \vdots & \vdots 
\\1&x_n &...&x_n^m \end{pmatrix}
\begin{pmatrix} b_0\\ \vdots \\ b_m \end{pmatrix}=
\begin{pmatrix} y_1  \\ \vdots  \\y_n  \end{pmatrix}

 求解这个正规方程组即可。

四,多元线性回归

对于更广泛的多元线性回归,也可以使用最小二乘法,求出各参数的取值。

1,多元线性回归

m元线性回归可以表示成,用m个线性无关的函数(不仅限于多项式),来做曲线拟合。

拟合曲线:

这其实可以看成关于a1,a2...am的m元一次线性函数,所以这叫做m元线性回归。

2,损失函数

假设一共有k个点,那么损失函数可以表示成:

这种用平方表示损失函数的方法,就叫最小二乘法。

L是关于a1,a2...am的m元函数。

3,损失函数的最小值

要求出m个ai的值,使得损失函数L取到最小值。

很明显,L取最小值时,L关于a1,a2...am的偏导都是0,于是就有了m个方程:

变形:

继续变形:

于是可以用线性代数直接得到解:

PS:分子其实就是把分母右边的φj(xi)换成了yi,分子分母都是k个矩阵求和之后再求行列式。

### 线性回归中的最小二乘法教程 #### 1. 最小二乘法的概念 最小二乘法是一种用于解决线性回归问题的经典优化方法。其核心思想是最小化预测值与实际观测值之间的误差平方和。在线性回归中,目标是找到一条直线(或多维空间中的超平面),使得该直线能够最好地拟合给定的数据点[^3]。 对于一组数据 \((x_i, y_i)\),其中 \(i=1,2,\dots,n\) 表示样本数量,\(y_i\) 是因变量,\(x_i\) 是自变量,我们可以构建如下形式的线性模型: \[ y = w_0 + w_1 x \] 这里,\(w_0\) 和 \(w_1\) 分别表示截距和斜率。为了使模型更好地拟合数据,我们需要调整这些参数以最小化残差平方和 (RSS): \[ RSS(w_0, w_1) = \sum_{i=1}^{n}(y_i - (\hat{w}_0 + \hat{w}_1 x_i))^2 \] #### 2. 参数解过程 通过对 RSS 对 \(w_0\) 和 \(w_1\) 的偏导数分别设为零,可以得到两个正规方程。具体推导如下所示: \[ \frac{\partial}{\partial w_0} RSS(w_0, w_1) = -2 \sum_{i=1}^n(y_i - w_0 - w_1 x_i) = 0 \] \[ \frac{\partial}{\partial w_1} RSS(w_0, w_1) = -2 \sum_{i=1}^n(x_i)(y_i - w_0 - w_1 x_i) = 0 \] 通过联立这两个方程并解,可以获得最优的参数估计值 \(w_0\) 和 \(w_1\)。这种方法适用于较小规模的数据集,并且当设计矩阵满秩时具有解析解[^4]。 #### 3. Python 实现代码 以下是基于 NumPy 库实现的一个简单例子来展示如何利用最小二乘法完成线性回归建模的过程: ```python import numpy as np def least_squares(X, Y): """ 使用最小二乘法计算线性回归的权重向量 :param X: 输入特征矩阵 shape(n_samples, n_features) :param Y: 输出标签列向量 shape(n_samples,) :return: 权重向量 W shape(n_features+1,) 包括常数项 """ ones_column = np.ones((X.shape[0], 1)) X_augmented = np.hstack([ones_column, X]) # 添加偏置项 weights = np.linalg.inv(X_augmented.T @ X_augmented) @ X_augmented.T @ Y return weights.flatten() # 示例数据 np.random.seed(0) X = np.random.rand(100).reshape(-1, 1) * 10 Y_true = 2 * X.squeeze() + 5 + np.random.randn(len(X)) * 2 weights = least_squares(X, Y_true) print(f"Intercept: {weights[0]}, Slope: {weights[1]}") ``` 此脚本定义了一个 `least_squares` 函数,接受输入特征矩阵 \(X\) 及对应的输出标签 \(Y\) 并返回最佳拟合直线的参数。注意这里的 \(X\) 需要是一个二维数组即使只有一个特性维度也需要保持形状一致以便后续操作正常运行[^2]。 #### 4. 特殊情况讨论 需要注意的是,如果数据存在共线性或者样本数目远小于特征数目,则可能无法获得唯一解或数值稳定性较差的情况发生。此时可考虑引入正则化技术如岭回归(Ridge Regression) 或 Lasso 回归来缓解这些问题。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值