目录
[1.1 一元线性回归](#1.1 一元线性回归)
[1.2 多元线性回归](#1.2 多元线性回归)
[2.1 正规方程(Normal Equation)](#2.1 正规方程(Normal Equation))
[2.2 梯度下降(Gradient Descent)](#2.2 梯度下降(Gradient Descent))
[2.2.1 梯度下降的三种分类](#2.2.1 梯度下降的三种分类)
[1. 全样本梯度下降(Batch Gradient Descent, BGD)](#1. 全样本梯度下降(Batch Gradient Descent, BGD))
[2. 随机梯度下降(Stochastic Gradient Descent, SGD)](#2. 随机梯度下降(Stochastic Gradient Descent, SGD))
[3. 随机小批量梯度下降(Mini-Batch Gradient Descent, MBGD)](#3. 随机小批量梯度下降(Mini-Batch Gradient Descent, MBGD))
[3.1 最小二乘(Least Squares, LS)](#3.1 最小二乘(Least Squares, LS))
[3.2 平均平方残差(Mean Squared Error, MSE)](#3.2 平均平方残差(Mean Squared Error, MSE))
[3.3 平均绝对值残差(Mean Absolute Error, MAE)](#3.3 平均绝对值残差(Mean Absolute Error, MAE))
[4.1 平均平方残差(MSE)](#4.1 平均平方残差(MSE))
[4.2 平方根残差(Root Mean Squared Error, RMSE)](#4.2 平方根残差(Root Mean Squared Error, RMSE))
[4.3 平均绝对值残差(MAE)](#4.3 平均绝对值残差(MAE))
[5.1 欠拟合(Underfitting)](#5.1 欠拟合(Underfitting))
[5.2 过拟合(Overfitting)](#5.2 过拟合(Overfitting))
[5.3 正则化(Regularization)](#5.3 正则化(Regularization))
[5.3.1 L1正则化(L1 Regularization)](#5.3.1 L1正则化(L1 Regularization))
[5.3.2 L2正则化(L2 Regularization)](#5.3.2 L2正则化(L2 Regularization))
线性回归是机器学习中最基础、最经典的监督学习算法之一,核心用于解决连续值预测问题,通过建立特征与标签之间的线性关系模型,实现对未知样本的预测。其思想简单易懂、可解释性极强,广泛应用于房价预测、气温预测、销量预测等实际场景。本文将从算法核心、参数求解、损失函数、模型评估、欠拟合与过拟合及正则化六个维度,结合sklearn工具实现,全面解析线性回归算法的核心要点与实践技巧,保持与前文一致的技术发文风格。
一、线性回归算法核心思想
线性回归的核心逻辑的:假设特征与标签之间存在线性关系,通过分析输入特征(自变量)与目标标签(因变量)的内在关联,构建线性回归方程,进而利用该方程对未知标签进行预测。根据特征数量的不同,线性回归可分为一元线性回归和多元线性回归两类,两者核心原理一致,仅特征维度存在差异。
1.1 一元线性回归
一元线性回归是最简单的线性回归形式,仅包含一个特征 和一个标签,其线性关系可通过二维平面中的一条直线来表示,回归方程为:
y = kx + b
其中:
-
y:目标标签(待预测的连续值,如房价);
-
x:输入特征(自变量,如房屋面积);
-
k:回归系数(直线斜率,反映特征x对标签y的影响程度,k为正表示正相关,k为负表示负相关);
-
b:截距(直线与y轴的交点,调节回归直线的上下位置)。
实际场景中,我们会拥有多个样本点(如多组"房屋面积-房价"数据),线性回归的核心目标就是:找到最优的回归系数k和截距b,使得回归直线尽可能贴合所有样本点,即预测值与真实值的误差最小。
1.2 多元线性回归
当输入特征数量大于1时,即为多元线性回归,其核心是构建特征与标签之间的多维线性关系,回归方程为:
其中, 为n个输入特征,
为对应每个特征的回归系数,b 为截距。例如,房价预测中,特征可包括房屋面积、楼层、地理位置等,多元线性回归通过综合多个特征的影响,实现更精准的预测。
二、最优参数求解方法
线性回归的核心任务是求解最优的回归系数(k或)和截距b,使得模型预测误差最小。常用的求解方法有两种:正规方程和梯度下降,其中梯度下降因计算高效、适配高维数据,应用更为广泛。
2.1 正规方程(Normal Equation)
正规方程是一种解析解法,核心思想是:通过对损失函数(后续章节详解)求偏导,令偏导数等于0,直接求解出最优的回归参数(k和b),无需迭代过程。
其核心优势是:原理简单、可直接得到最优解,无需调试参数(如步长),适合小规模、低维数据集。但局限性也较为明显:
-
计算量大:需要计算矩阵的逆,当特征数量较多(如n>1000)时,计算复杂度会急剧上升,效率极低;
-
存在无解情况:若特征矩阵不存在逆矩阵(如特征之间存在多重共线性),则无法通过正规方程求解参数。
在sklearn库中,sklearn.linear_model.LinearRegression 类默认采用正规方程的方式求解最优参数,适用于小规模、低维数据集的快速建模。
2.2 梯度下降(Gradient Descent)
梯度下降是一种迭代解法,核心思想非常直观,可类比为"盲人拄拐杖下山":盲人无法看到山脚(最优解),只能通过感知脚下的坡度(梯度),沿着坡度最陡的方向(梯度负方向)一步步向下走,逐步靠近山脚,直到找到最低点(最优参数)。
其中,"拐杖"对应步长(学习率),步长过大可能会越过最低点,导致无法收敛;步长过小则会导致迭代次数过多,训练效率低下,因此步长是梯度下降的核心调试参数。
2.2.1 梯度下降的三种分类
根据每次迭代使用的样本数量不同,梯度下降可分为三类,各有优劣,实际应用中需根据数据集特点选择:
1. 全样本梯度下降(Batch Gradient Descent, BGD)
每次迭代时,使用全部训练样本计算梯度,进而更新参数。其优点是:梯度计算稳定,收敛过程平稳,最终能精准找到全局最优解;缺点是:当样本数量庞大(如百万级、千万级)时,每次迭代的计算量极大,训练速度极慢,无法适配大规模数据集。
2. 随机梯度下降(Stochastic Gradient Descent, SGD)
每次迭代时,随机选取一个训练样本计算梯度,更新参数。其优点是:计算简单、效率极高,无需加载全部样本,适合大规模数据集;缺点是:由于随机选取样本,梯度波动较大,收敛过程不稳定,可能会在最优解附近震荡,无法精准收敛到全局最优解。
3. 随机小批量梯度下降(Mini-Batch Gradient Descent, MBGD)
随机小批量梯度下降结合了BGD和SGD的优点,每次迭代时,随机选取一小批训练样本(如32个、64个)计算梯度,更新参数。既保证了梯度计算的稳定性(批量样本降低了随机波动),又兼顾了训练效率(无需使用全部样本),是目前工业界和实际应用中最常用的梯度下降方式。
在sklearn库中,sklearn.linear_model.SGDRegressor 类实现了随机梯度下降(默认支持随机小批量),可通过调整参数适配不同的数据集场景,适合大规模、高维数据集建模。
三、回归模型的损失函数
损失函数(Loss Function)是衡量模型预测误差的核心指标,也是引导模型找到最优参数的"指南针"。线性回归中,损失函数的核心作用是:计算模型预测值与样本真实值之间的差异,通过最小化这个差异,找到最优的回归参数(k和b)。常用的损失函数主要有以下3种:
3.1 最小二乘(Least Squares, LS)
最小二乘是线性回归中最基础、最经典的损失函数,核心思想是:计算所有样本的"预测值与真实值的差值的平方和",并最小化这个平方和,即:
其中,m 为样本数量, 为第i个样本的真实值,
为第i个样本的预测值。最小二乘的优点是计算简单、可解释性强,是正规方程求解的核心基础;缺点是对异常值极其敏感,异常值会导致差值平方急剧增大,进而影响最优参数的求解。
3.2 平均平方残差(Mean Squared Error, MSE)
MSE是最小二乘的"平均化版本",核心是将最小二乘的结果除以样本数量,得到每个样本的平均平方误差,即:
MSE解决了最小二乘"受样本数量影响"的问题,使得损失值的大小与样本数量无关,更便于不同数据集之间的模型性能对比。其缺点与最小二乘一致:对异常值极其敏感,会放大异常值的影响(平方项的作用)。
3.3 平均绝对值残差(Mean Absolute Error, MAE)
MAE的核心是计算所有样本"预测值与真实值的差值的绝对值的平均值",即:
与LS和MSE不同,MAE采用绝对值计算误差,不会放大异常值的影响,对异常值的鲁棒性更强(异常值的差值绝对值不会像平方项那样急剧增大)。其缺点是:绝对值函数在差值为0处不可导,无法直接用于梯度下降求解,需进行特殊处理(如次梯度下降)。
四、回归模型的评估方法
损失函数主要用于模型训练过程中,引导模型求解最优参数;而模型评估方法则用于训练完成后,衡量模型的泛化能力(对未知样本的预测精度)。线性回归中,常用的评估方法与损失函数相关,但侧重点不同,核心有以下3种:
4.1 平均平方残差(MSE)
MSE既是损失函数,也是最常用的模型评估指标之一,其值越小,说明模型的预测误差越小,泛化能力越强。核心特点是:放大残差(误差),对异常数据极其敏感------即使少数几个异常值,也会导致MSE值急剧上升,因此适合数据中无异常值的场景。
4.2 平方根残差(Root Mean Squared Error, RMSE)
RMSE是MSE的平方根,即:
RMSE解决了MSE"量纲不一致"的问题(MSE的量纲是标签量纲的平方,而RMSE的量纲与标签一致),更便于直观理解模型误差(如房价预测中,RMSE=5000元,说明模型预测值与真实值的平均误差为5000元)。其特点是:对异常数据相对敏感,敏感度低于MSE,但仍会受到异常值的影响。
4.3 平均绝对值残差(MAE)
MAE既是损失函数,也是模型评估指标,其值越小,模型泛化能力越强。核心特点是:对异常数据不敏感,无需担心少数异常值对评估结果的干扰,适合数据中存在异常值的场景(如销量预测、气温预测,可能存在极端值)。
评估方法选择建议
-
数据无异常值、追求评估结果直观(量纲一致):选择RMSE;
-
数据无异常值、侧重误差平方累加:选择MSE;
-
数据有异常值、需降低异常值影响:选择MAE。
五、欠拟合、过拟合及正则化
线性回归模型训练过程中,很容易出现两种常见问题:欠拟合和过拟合,这两种问题都会导致模型泛化能力下降,无法精准预测未知样本。而正则化是解决过拟合的核心方法,同时可缓解异常值对模型的影响。
5.1 欠拟合(Underfitting)
欠拟合的核心表现:模型在训练集和测试集上的表现都很差(预测误差大),无法捕捉到特征与标签之间的内在关系。其本质原因是:模型过于简单(如用一元线性回归拟合非线性数据),或特征数量不足,无法充分刻画特征与标签的关联。
欠拟合的解决方法:
-
增加特征数量:补充与标签相关的特征(如房价预测中,增加房屋朝向、装修情况等特征),让模型能捕捉到更多的内在关联;
-
提升模型复杂度:若特征与标签存在非线性关系,可采用多项式线性回归(将特征进行平方、立方等变换),增强模型的拟合能力;
-
减少正则化强度(若使用了正则化):正则化会降低模型复杂度,欠拟合时需减弱正则化的影响。
5.2 过拟合(Overfitting)
过拟合的核心表现:模型在训练集上表现极好 (预测误差极小,甚至接近0),但在测试集上表现极差,泛化能力弱。其本质原因是:模型过于复杂(如特征数量过多、模型参数过多),不仅拟合了训练数据中的有效信息,还拟合了训练数据中的噪声和异常值,导致模型"记牢"了训练数据,却无法适配未知数据。
过拟合的解决方法:
-
减少特征数量:删除与标签无关的冗余特征(如通过特征选择方法,筛选出核心特征),降低模型复杂度;
-
增加训练样本数量:更多的训练样本可让模型学习到更通用的规律,减少对噪声和异常值的拟合;
-
使用正则化:这是最常用、最有效的方法,通过限制模型参数的大小,减少冗余特征的影响,避免模型过于复杂。
5.3 正则化(Regularization)
正则化的核心思想:线性回归中,异常值或冗余特征会导致某些特征的回归系数(k)过大或过小,进而影响模型的泛化能力。正则化通过在损失函数中增加"参数惩罚项",限制回归系数的大小,减少冗余特征的影响(甚至将某些不重要特征的系数降为0,相当于删除该特征),从而降低模型复杂度,缓解过拟合。
常用的正则化方法有两种:L1正则化和L2正则化,两者的惩罚逻辑和效果存在明显差异。
5.3.1 L1正则化(L1 Regularization)
L1正则化的惩罚项是"所有回归系数的绝对值之和",加入L1正则化后的损失函数(以MSE为例)为:
其中, 为正则化强度(超参数,需调试),
为第j个特征的回归系数。
L1正则化的核心特点:可将不重要特征的回归系数减少为0 ,相当于自动完成"特征选择",删除冗余特征,简化模型结构。适合特征数量较多、存在冗余特征的场景,对应的线性回归模型为Lasso回归(sklearn中为sklearn.linear_model.Lasso)。
5.3.2 L2正则化(L2 Regularization)
L2正则化的惩罚项是"所有回归系数的平方和",加入L2正则化后的损失函数(以MSE为例)为:
L2正则化的核心特点:仅将不重要特征的回归系数无限趋近于0,不会真正降为0 ,不会删除任何特征,只是减弱冗余特征的影响。其优点是:收敛更稳定,可避免模型出现极端参数,适合特征之间存在相关性的场景,对应的线性回归模型为Ridge回归(sklearn中为sklearn.linear_model.Ridge)。
L1与L2正则化对比
-
特征选择:L1支持自动特征选择(系数可降为0),L2不支持;
-
参数影响:L1可产生稀疏参数(部分系数为0),L2产生稠密参数(系数均接近0);
-
稳定性:L2收敛更稳定,对异常值的鲁棒性强于L1;
-
适用场景:L1适合冗余特征多的场景,L2适合特征存在相关性、追求模型稳定的场景。
六、总结与实践要点
线性回归作为机器学习入门级的回归算法,核心是构建特征与标签的线性关系,通过最小化损失函数求解最优参数,其可解释性强、实现简单,是后续学习复杂回归算法(如多项式回归、逻辑回归)的基础。结合本文内容,总结实践中的核心要点:
-
参数求解:小规模、低维数据用LinearRegression(正规方程),大规模、高维数据用SGDRegressor(随机梯度下降);
-
损失函数选择:无异常值用MSE/LS,有异常值用MAE(需配合次梯度下降);
-
模型评估:优先用RMSE(量纲一致、直观),有异常值用MAE;
-
问题解决:欠拟合增加特征/提升模型复杂度,过拟合用L1/L2正则化/减少特征;
-
正则化选择:冗余特征多用电L1(Lasso),追求模型稳定用L2(Ridge)。
线性回归的局限性是:仅能拟合线性关系,无法处理特征与标签的非线性关联(可通过多项式回归、特征变换缓解)。在实际应用中,需先分析数据特点(是否线性、有无异常值、特征数量),再灵活选择参数求解方法、损失函数和正则化方式,才能实现模型性能的最大化。