本文共 1357 字,大约阅读时间需要 4 分钟。
在线性回归中,共线性是指特征变量之间存在线性相关关系。当特征之间存在共线性时,设计矩阵 ( X^T X ) 会出现秩-deficient(秩不足)的问题,从而使得正规方程无法直接应用。
L2正则化(即岭回归)通过在损失函数中添加一个缩放项 ( λI )(其中 ( λ ) 是超参数),解决了这一问题。这种方法能够使得模型系数的绝对值变小,同时降低模型对单个特征的依赖。需要注意的是,L2正则化在一元线性回归中并不是必要的,通常只在多元线性回归或多项式回归中使用。
在L2正则化的框架下,目标函数变为: [ w = (X^T X + λI)^{-1} X^T y ] 其中 ( I ) 是单位矩阵。
Lasso回归(L1正则化)与岭回归类似,但使用的正则化项是L1范数。其目标函数为: [ w = (X^T X + λI)^{-1} X^T y ] 与岭回归不同的是,L1正则化能够同时控制特征的非零数量和稀疏性。
多任务学习是指使用相同的特征向量对多个目标变量进行预测。多任务Lasso回归对每个任务都应用Lasso回归的框架,其目标函数为: [ \min_w \sum_{i=1}^m \frac{1}{2} (y_i - w^T x_i)^2 + \lambda \sum_{j=1}^n |w_j| ] 其中 ( m ) 是任务数量,( n ) 是特征数量。
弹性网络结合了L1和L2范数的优点,其目标函数为: [ w = (X^T X + λI)^{-1} X^T y ] 与Lasso回归不同的是,弹性网络允许某些特征的系数为0(L1正则化)或很小(L2正则化),从而实现特征的自动选择。
随机梯度下降(SGD)是一种优化算法,在每次迭代中仅使用一个样本的梯度信息更新参数。与批量梯度下降相比,SGD的时间复杂度显著降低,但可能收敛速度较慢。
在Scikit-learn中,随机梯度下降的实现为 sklearn.linear_model.SGDRegressor(),支持多种正则化方法和学习率调度策略。
在回归问题中,R²(决定系数)是最常用的评价标准。R²的值越接近1,模型预测效果越好。R²的计算方式为: [ R^2 = 1 - \frac{\text{误差平方和}}{\text{目标值平方和}} ]
与分类问题不同,回归模型不能直接使用准确率来评估模型性能。Scikit-learn提供了 sklearn.metrics.r2_score() 函数来计算R²值。
在岭回归中,正则化参数 ( λ ) 的选择是至关重要的。常用的方法是交叉验证。例如,可以使用逻辑均分生成 ( λ ) 的候选值序列: [ \log \lambda = \frac{\ln \alpha_{\text{min}} + \ln \alpha_{\text{max}}}{2} \cdot \frac{\log n}{k} ] 其中 ( \alpha_{\text{min}} ) 和 ( \alpha_{\text{max}} ) 是最小和最大候选值,( n ) 是样本数量,( k ) 是折叠次数。
转载地址:http://hnqh.baihongyu.com/