线性回归——最小二乘法

本文深入解析单变量线性回归原理,运用最小二乘法求解最优参数,通过实例展示线性拟合过程,适合初学者理解线性回归概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文地址:https://www.cnblogs.com/softlin/p/5815531.html

相信学过数理统计的都学过线性回归(linear regression),本篇文章详细将讲解单变量线性回归并写出使用最小二乘法(least squares method)来求线性回归损失函数最优解的完整过程,首先推导出最小二乘法,后用最小二乘法对一个简单数据集进行线性回归拟合

线性回归

  线性回归假设数据集中特征与结果存在着线性关系;

  等式:y = mx + c

  y为结果,x为特征,m为系数,c为误差 在数学中m为梯度c为截距

  这个等式为我们假设的,我们需要找到m、c使得mx+c得到的结果与真实的y误差最小,这里使用平方差来衡量估计值与真实值得误差(如果只用差值就可能会存在负数); 用于计算真实值与预测值的误差的函数称为:平方损失函数(squard loss function);这里用L表示损失函数,所以有:

1

  整个数据集上的平均损失为:
2

  我们要求得最匹配的m与c使得L最小;
数学表达式可以表示为:

3

  最小二乘法用于求目标函数的最优值,它通过最小化误差的平方和寻找匹配项所以又称为:最小平方法;这里将用最小二乘法用于求得线性回归的最优解;

最小二乘法

  为了方便讲清楚最小二乘法推导过程这里使用,数据集有1…N个数据组成,每个数据由、构成,x表示特征,y为结果;这里将线性回归模型定义为:
4

平均损失函数定义有:

5_1
5_1

  要求得L的最小,其关于c与m的偏导数定为0,所以求偏导数,得出后让导数等于0,并对c与m求解便能得到最小的L此时的c与m便是最匹配该模型的;

关于c偏导数:

因为求得是关于c的偏导数,因此把L的等式中不包含c的项去掉得:
6

整理式子把不包含下标n的往累加和外移得到:
7
对c求偏导数得:
8

关于m的偏导数:

求关于m的偏导数,因此把L等式中不包含项去掉得:

9
  整理式子把不包含下标n的往累加和外移得到:
10
对m求偏导数得:
11

令关于c的偏导数等于0,求解:

12

从上求解得到的值可以看出,上面式子中存在两个平均值,因此该等式也可以改写成:

13

令关于m的偏导数等于0,求解:
  关于m的偏导数依赖于c,又因为已经求得了关于c偏导数的解,因此把求关于c偏导数的解代数关于m的偏导数式子得:
14_1
14_2
14_3

合并含有m的项化简:

15
求解:

16_1
16_2

为了简化式子,再定义出:
17

示例:

这里使用上面得到的最小二乘法公式对以下数据集进行线性拟合:

nxyxyx^2
12484
2684836
391210881
41321273169
平均值7.511.25109.2572.5

数据点分布情况:

19

根据上诉最小二乘法公式计算出当前数据集最优:m与c

21

c = 11.25 - 1.5307 * 7.5 = -0.23

最后得出当前线性函数为:

y = 1.5307x - 0.23

计算出每个节点的预测值:

y1 = 1.5307 * 2 - 0.23 = 2.83
y2 = 1.5307 * 6 - 0.23 = 8.9542
y3 = 1.5307 * 9 - 0.23 = 13.5463
y4 = 1.5307 * 13- 0.23 = 19.6691

拟合结果:

参考资料:
https://zh.wikipedia.org/zh/%E6%9C%80%E5%B0%8F%E4%BA%8C%E4%B9%98%E6%B3%95
a first course in machine learning

文章首发地址:Solinx
http://www.solinx.co/archives/648

另一篇不错的相关文章,还附了Python代码,见https://blog.youkuaiyun.com/wangyangzhizhou/article/details/60133958

### 多元线性回归最小二乘法的关系及应用 #### 多元线性回归原理 多元线性回归是一种用于预测具有多个自变量的变量值的线性回归模型。该方法能够处理多维数据集中的复杂关系,并通过建立一个或多个独立变量\(X\)与因变量\(Y\)之间的线联系来实现预测功能[^1]。 对于给定的数据点\((x_1, y), (x_2, y)...,(x_n,y)\),其中每个\(x_i=(x_{i1},...,x_{ip})\)代表p个特征向量,而对应的\(y\)则是目标响应值,则可以通过构建如下的数学形式表示这种关联: \[ Y = \beta_0+\sum^{P}_{j=1}\beta_j X_j + e \] 这里,\(\beta_0,...,\beta_p\)为待估计系数,e 表示误差项。 #### 最小二乘法原理 为了找到最佳拟合直线,在实际操作过程中通常采用最小化残差平方和的方式来进行参数优化,即所谓的“最小二乘法”。具体来说就是寻找一组最优权重使得所有样本到这条直线上距离之和达到最小化: \[ min_\beta SSE=\min_\beta{\sum^n_{i=1}(y_i-\hat{y}_i)^2} \] 在这个公式里:\(SSE\)指的是总平方误差;\(n\)是观测数量;\(y_i\)对应真实标签;\(\hat{y}_i\)则指代由当前模型计算得出的结果[^3]。 当涉及到两个以上的输入特时(比如三维空间内的坐标),上述过程同样适用——只需扩展成相应的高维度矩阵运算即可完成求解工作。 #### 应用场景 这两种技术广泛应用于各个领域内涉及定量分析的任务当中,例如经济学研究中的人均收入水平影响因素评估、医学统计里的疾病风险预测以及市场营销活动中顾客购买行为模式挖掘等方面都离不开它们的支持。 #### 区别与联系 尽管两者紧密相连,但仍存在一定差异: - **目的不同**:前者旨在描述并量化各属间存在的内在规律;后者侧重于提供一种有效的手段去衡量这些关系的好坏程度。 - **侧重点各异**:多元线性回归更强调理论框架搭建及其解释能力;相反地,最小二乘法则聚焦于具体的算法设计和技术细节实施上[^2]。 然而值得注意的是,二者并非孤立存在而是相辅相成的整体部分——最小二乘法作为最常用的损失函数之一被用来指导多元线性回归建模过程中的参数调整方向,从而确保最终获得的理想化的解析表达式能最大程度贴近实际情况的需求。 ```python import numpy as np from sklearn.linear_model import LinearRegression # 创建模拟数据集 np.random.seed(0) X = 2 * np.random.rand(100, 1) y = 4 + 3 * X + np.random.randn(100, 1) # 构造并训练模型 lin_reg = LinearRegression() lin_reg.fit(X, y) print(f'Intercept: {lin_reg.intercept_[0]}') print('Coefficients:', lin_reg.coef_) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值