【机器学习】鲁棒(健壮)回归-Theil-Sen估计(Theil-Sen Estimator)

Theil-Sen估计

Theil-Sen估计是一种用于线性回归的非参数方法,其优点是对离群点具有鲁棒性。它通过计算数据点之间所有可能斜率的中位数来估计回归线的斜率,随后使用这些斜率估算截距。


核心思想

  1. 斜率估计 : 对于给定的一组数据点 ,Theil-Sen 方法计算每对数据点之间的斜率:

    斜率 m 的估计值为这些 的中位数:

  2. 截距估计: 截距 b 的估计值是使得中位残差最小的值。通常计算为:

  3. 回归方程: 最终的回归方程为:


优缺点

优点:
  • 鲁棒性:对离群点不敏感,适用于数据中包含异常值的场景。
  • 非参数性:不需要对误差分布作假设。
缺点:
  • 计算复杂度 :由于需要计算所有点对的斜率,其复杂度为 ,对于大数据集可能较慢。
  • 仅限一维:适用于单变量回归,不适合多元回归。

Theil-Sen估计的Python实现

以下是使用 scipy.stats 库实现 Theil-Sen 回归的代码示例:

python 复制代码
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import TheilSenRegressor

# 示例数据
np.random.seed(42)
X = np.random.rand(100) * 10  # 随机生成自变量
y = 2 * X + np.random.normal(0, 1, 100)  # 线性关系 + 噪声

# 添加一些离群点
X = np.append(X, [8, 9, 10])
y = np.append(y, [30, 35, 40])

plt.rcParams['font.sans-serif'] = ['SimHei']
# 解决负号'-'显示为方块的问题
plt.rcParams['axes.unicode_minus'] = False

# 可视化数据
plt.scatter(X, y, color="blue", label="数据点")
plt.xlabel("X")
plt.ylabel("y")
plt.title("带离群点的数据")
plt.show()

# 使用 Theil-Sen 方法进行回归
X = X.reshape(-1, 1)  # 调整为二维数组
model = TheilSenRegressor(random_state=42)
model.fit(X, y)

# 获取拟合结果
y_pred = model.predict(X)
print(f"斜率 (m): {model.coef_[0]:.2f}")
print(f"截距 (b): {model.intercept_:.2f}")

# 绘制结果
plt.scatter(X, y, color="blue", label="数据点")
plt.plot(X, y_pred, color="red", label="Theil-Sen回归线")
plt.xlabel("X")
plt.ylabel("y")
plt.legend()
plt.title("Theil-Sen 回归结果")
plt.show()

**输出示例

**

  1. 回归方程:

    • 输出拟合直线的斜率和截距,例如:

      Matlab 复制代码
      斜率 (m): 1.95
      截距 (b): 0.25
  2. 图形结果 :

    • 数据点(含离群点)用蓝色散点表示。
    • Theil-Sen拟合的回归线用红色直线表示。

应用领域

  1. 经济学 :
    • 分析具有极值或异常值的时间序列数据。
  2. 环境科学 :
    • 估计气候趋势或环境变量的变化。
  3. 计算机视觉 :
    • 图像配准中的鲁棒线性模型拟合。

Theil-Sen 估计常用场景包括需要处理离群点或非正态分布误差的数据。

相关推荐
阿里云大数据AI技术9 分钟前
PAI 模型蒸馏全新发布「场景化蒸馏」:把最佳实践装进模板,让大模型能力"轻装上阵"
人工智能
亚川楼宇自控系统数据中心厂家15 分钟前
机房 3D 可视化技术:从平面监控到立体化管理的升级
大数据·数据库·人工智能
LaughingZhu16 分钟前
任务在飞书创建,开发在 Orca 继续:我把飞书项目接到了 Linear
大数据·人工智能·深度学习·神经网络·飞书
一水鉴天29 分钟前
UML/MOF 元层级与 Model & Notation:整体设计核心术语的定稿探讨 20261012(豆包“查看聊天内容”继续)
人工智能·机器学习
陈嘿萌34 分钟前
TIP 2026|没有分割标签,也能做任务导向图像融合:SSVIF的自监督语义注入
图像处理·人工智能·深度学习·计算机视觉·图像融合·学术研究与理论基础
森山冶仁35 分钟前
把专家抽检变成分钟级全量初审:科学数据审核智能体的召回率与证据链怎么设计
人工智能·数据治理·数据质量·元数据
空 白II36 分钟前
10.12 大语言模型研究简报:美国恢复英国对前沿AI模型的预发布安全测试合作
人工智能·语言模型·自然语言处理
xier_ran44 分钟前
【infra之路】AI 编译器学习笔记(四):PatternRewriter 与贪心 driver
人工智能·笔记·学习
智享 AI 科技1 小时前
2026年AI私域系统怎么选?从功能到服务的全维度对比
大数据·人工智能·经验分享
镜象科技1 小时前
AI心理健康解决方案服务商行业趋势:镜象科技如何引领校园心理健康数字化升级
人工智能·科技