线性回归与正则化
一、什么是回归算法
1、回归算法是一种有监督算法。
2、回归算法用来建立“解释”变量(自变量x)和观测值(应变量y)之间的关系:从机器学习的角度来讲,用于构建一个算法模型(函数)来做属性(x)与标签(y)之间的映射关系,在算法的学习过程中,试图寻找一个函数h:——>R使得参数之间的关系拟合性最好
3、回归算法中算法(函数)的最终结果是一个连续的数据值,输入值(属性值)是一个d维度的属性/数值向量
二、最小二乘法
1、最小二乘法原理
最小二乘法通过最小化误差平方和寻找数据的最佳函数匹配。对于线性模型 ,目标是最小化残差平方和:
2、损失函数定义
损失函数通常定义为残差平方和:
3、求解最优值的步骤
展开损失函数:
对 求导并令导数为零:
解得正规方程:
若 可逆,则最优解为:
三、过拟合和欠拟合
1、过拟合(Overfitting)
过拟合指模型在训练数据上表现优异,但在新数据(测试数据或真实场景)上表现较差。通常由于模型过于复杂或训练数据量不足导致,模型过度捕捉了训练数据中的噪声或细节而非通用规律。
特点
- 训练误差低,测试误差高。
- 模型复杂度显著高于数据真实规律。
- 常见于决策树、深度学习等高容量模型中。
解决方法
- 增加训练数据量或使用数据增强。
- 降低模型复杂度(如减少神经网络层数)。
- 使用正则化技术(L1/L2正则化)。
- 采用交叉验证评估模型泛化能力。
2、欠拟合(Underfitting)
欠拟合指模型在训练数据和新数据上均表现不佳,通常因模型过于简单或特征不足,无法捕捉数据中的有效模式。
特点
- 训练误差和测试误差均较高。
- 模型无法学习数据的基本结构。
- 常见于线性模型或特征工程不充分时。
解决方法
- 增加模型复杂度(如使用更高阶多项式)。
- 改进特征工程(添加更有意义的特征)。
- 减少正则化强度(如降低L2正则化系数)。
- 延长训练时间或调整优化算法(如学习率)。
3、过拟合与欠拟合的关系
两者是模型性能与复杂度权衡的结果。理想情况是找到泛化误差最小的平衡点。
模型复杂度与误差关系
- 欠拟合区:模型过于简单,训练和测试误差均高。
- 平衡区:模型复杂度适中,测试误差最低。
- 过拟合区:模型过于复杂,训练误差低但测试误差高。
可通过学习曲线或验证曲线直观判断当前模型状态。
四、L1正则和L2正则
1、L1正则(Lasso正则)
L1正则通过在损失函数中添加权重参数的绝对值之和作为惩罚项,公式表示为:
其中, 是正则化系数,
为模型权重。
L1正则倾向于产生稀疏解,即部分权重会被压缩为零,适用于特征选择场景。其效果类似于对权重施加拉普拉斯先验分布。
2、L2正则(Ridge正则)
L2正则通过在损失函数中添加权重参数的平方和作为惩罚项,公式表示为:
L2正则会使得权重整体趋近于零但不为零,适用于缓解过拟合。其效果类似于对权重施加高斯先验分布。L2正则对异常值更鲁棒,因为平方项放大了大误差的惩罚。
核心区别
稀疏性:L1正则产生稀疏解,L2正则不产生。
计算特性:L1正则的优化可能需特殊算法(如坐标下降),L2正则可通过梯度下降直接求解。
几何解释:L1正则的约束区域为菱形(易触及顶点导致稀疏),L2正则的约束区域为圆形(权重均匀缩小)。