Python 中用于 ML 的鲁棒回归2025 年 6 月 25 日 | 阅读 8 分钟 引言鲁棒回归是一种特殊的回归分析形式,它能在存在非理想数据的情况下进行强大的校正。确切地说,它旨在在存在异常值、缺失值或噪声的情况下,也能产生可靠和准确的结果。与非常容易受异常值影响的普通 OLS 方法相比,鲁棒回归采用定制的损失函数或算法来最大限度地减少异常值的影响。 关键重要性
传统回归技术的挑战具体来说,OLS 传统回归方法基于输入数据遵循某些属性的信念。
如果这些假设不成立,那么传统回归可能产生有偏或误导性的结果。一个简单的应用是,如果数据集中存在几个极端异常值,OLS 会倾向于生成更契合异常值而不是大部分数据点的系数。通常,这种敏感性需要预处理步骤来去除或减弱异常值的影响,这会限制时间和潜在地引入错误。 鲁棒回归在机器学习中的应用在机器学习中,有许多情况需要使用鲁棒回归技术,以确保在存在噪声或非理想数据集时模型不会失去其准确性和鲁棒性。
鲁棒回归的关键概念异常值及其对回归模型的影响异常值数据点是指与数据集的整体模式显著不同的点。异常值问题经常影响经典回归模型(如普通最小二乘法 OLS)的系数估计,导致预测可能出错以及模型可靠性下降。 为什么会出现异常值?
异常值的影响
鲁棒回归方法试图减弱异常值的影响,以获得对噪声或不规则数据更具泛化能力的模型。 鲁棒损失函数鲁棒回归技术最小化损失函数,从而生成不受异常值影响的鲁棒回归方程。通过使这些损失函数对极端偏差不敏感,模型性能会更稳定。 Huber 损失: 结合了 L1 和 L2 损失函数的最佳特性。对于小残差,它表现为 L2 损失;对于大残差,它切换为 L1 损失,以控制异常值的影响。 数学表达式 ![]() 主要特点
Tukey 的双平方损失 一种鲁棒的损失函数,其中大于阈值的残差被赋予零权重。 数学表达式 ![]() 主要特点
分位数损失 可以容纳目标变量特定分位数的预测,因此非常适合具有偏斜或异方差分布的数据集。 数学表达式 ![]() 其中 τ 是期望的分位数(例如,0.5 表示中位数)。 主要特点
与普通最小二乘法 (OLS) 的比较
流行的鲁棒回归方法RANSAC (Random Sample Consensus)RANSAC 是一种鲁棒的回归算法,能够可靠地处理输入数据中的大量异常值。它通过选择数据的随机子集来估计模型参数,然后评估估计模型与所有数据部分的共识。 RANSAC 算法的步骤
优点:
缺点:
Theil-Sen 估计器基于中位数的回归方法 Theil-Sen 估计器是一种非参数估计器,它计算数据集中所有数据点对斜率的中位数。这是一种对异常值鲁棒的方法,因为中位数不会对极端值做出剧烈反应。 Theil-Sen 估计器的步骤
在高维数据中的应用 在处理存在异常值的高维数据时,Theil-Sen 估计器特别有效。例如,在环境科学或金融领域,它被用于需要鲁棒线性关系的情况。 Huber 回归平衡对异常值的敏感性 Huber 回归是一种结合了平均绝对误差 (MAE) 的鲁棒性和平均平方误差 (MSE) 的效率的混合方法。它是一个分段损失函数。
该方法对小的变化敏感,但对异常值不敏感。这是因为存在一个阈值参数(可以调整)对于实现所需的鲁棒性水平至关重要。 分位数回归与经典回归相反,分位数回归预测响应变量的条件分位数,而不是均值。因此,它适用于具有异方差(即方差不恒定)的数据集,以及当您有兴趣了解分布的尾部时。 分位数回归的应用包括
由于它不假设残差的方差恒定,因此分位数回归是鲁棒的,并且适合复杂现实世界的数据集。 在 Python 中实现鲁棒回归Scikit-LearnScikit-learn 的回归技术是鲁棒的,例如 HuberRegressor 和 RANSACRegressor,它们效率高且易于使用。它将这些方法无缝集成到库中,使得预处理数据、创建管道和评估模型成为可能。
Statsmodels将使用 Statsmodels 中鲁棒回归的高级功能,这是一个强大的统计建模库。该库支持
PyTorch/TensorFlow 用于自定义实现要构建自定义鲁棒回归模型,这些是最佳选择:PyTorch 和 TensorFlow。
分步代码示例1. 数据准备和预处理 数据集的准备包括数据的清理和分割、处理缺失值的位置以及识别潜在的异常值。 2. 拟合鲁棒回归模型 并分别使用 Scikit-Learn 的 HuberRegressor 和 RANSACRegressor 处理异常值。 3. 可视化结果 对鲁棒回归模型与模型预测之间的比较。 代码 输出 ![]() 下一个主题机器学习中的几何模型 |
我们请求您订阅我们的新闻通讯以获取最新更新。