【第二章:机器学习与神经网络概述】04.回归算法理论与实践 -(2)支持向量回归(SVR)

第二章: 机器学习与神经网络概述

第四部分:回归算法理论与实践

第二节:支持向量回归(SVR)

内容:核函数、软间隔与容忍参数。

支持向量回归(Support Vector Regression)是支持向量机(SVM)在回归任务中的扩展。它在保留最大间隔思想的同时,引入间隔容忍度(ε)软间隔,实现对回归问题的建模。


一、SVR 的基本思想

SVR 的目标是找到一个函数 f(x),使预测值与真实值的误差尽量在 ε 以内:

f(x) = \mathbf{w}^T \mathbf{x} + b

并且对在 ε 范围外的预测误差惩罚较大。


二、SVR 的核心概念

1. ε-不敏感损失函数(ε-insensitive loss)
  • 在误差小于 ε 时,不计算损失。

  • 误差超过 ε 时,才进行惩罚。

公式表示如下:

L_\varepsilon(y, f(x)) = \begin{cases} 0 & \text{if } |y - f(x)| \leq \varepsilon \\ |y - f(x)| - \varepsilon & \text{otherwise} \end{cases}

2. 软间隔与松弛变量(Slack Variables)
  • 引入 \xi_i, \xi_i^* 处理不可避免的预测偏差。

  • 容许部分样本落在 ε 管道外,提升鲁棒性。

3. 正则化目标函数:

\min \frac{1}{2} \|\mathbf{w}\|^2 + C \sum (\xi_i + \xi_i^*)

其中:

  • C:控制模型复杂度和容忍度的惩罚系数

  • \xi_i, \xi_i^*:预测误差超过 ε 的松弛变量


三、核函数(Kernel)机制

与 SVM 一样,SVR 可通过核技巧在高维空间建模非线性关系。

常见核函数:

名称形式用途
线性核K(x, x') = x^T x'简单线性关系
多项式核K(x, x') = (x^T x' + 1)^d高阶非线性
RBF核(高斯核)K(x, x') = \exp(-\gamma \|x - x'\|^2)常用非线性映射

四、Python 实现示例(使用 RBF 核)

from sklearn.svm import SVR
import numpy as np
import matplotlib.pyplot as plt

# 构造样本
X = np.sort(np.random.rand(40))
y = np.sin(2 * np.pi * X) + np.random.randn(40) * 0.1
X = X.reshape(-1, 1)

# 训练 SVR 模型
svr_rbf = SVR(kernel='rbf', C=100, epsilon=0.1)
svr_rbf.fit(X, y)

# 预测与可视化
x_plot = np.linspace(0, 1, 100).reshape(-1, 1)
y_pred = svr_rbf.predict(x_plot)

plt.figure(figsize=(8, 5))
plt.scatter(X, y, color='darkorange', label='Data')
plt.plot(x_plot, y_pred, color='navy', lw=2, label='SVR (RBF kernel)')
plt.title("SVR 回归曲线示意图")
plt.xlabel("X")
plt.ylabel("y")
plt.legend()
plt.grid(True)
plt.tight_layout()
plt.show()

 


参数解释与调优

参数说明
C惩罚系数,越大越关注训练误差,可能导致过拟合
epsilonε 管道宽度,越大越“容忍”误差,适当控制模型复杂度
kernel指定核函数类型
gammaRBF 核中高斯函数宽度,值越小模型越复杂

以下是一个简明清晰的 SVR(支持向量回归)模型调参分析表,涵盖关键参数、其作用、默认值、调参建议及常见影响:


支持向量回归(SVR)模型调参分析表

参数名说明默认值调参建议与影响
kernel核函数类型:'linear', 'poly', 'rbf', 'sigmoid''rbf'- 通常优先选择 rbf;- 高维线性可试 'linear';- 'poly'适合周期性/交互性特征
C惩罚系数:控制模型在训练集上的拟合程度1.0- 值越大越强调拟合训练集,风险过拟合;- 小值提升泛化能力但可能欠拟合
epsilonε 不敏感间隔:误差小于该值不计入损失0.1- 控制模型对小误差的容忍度;- 小值捕捉细节但风险过拟合;- 大值提高鲁棒性
gammaRBF核宽度(对多项式核也适用):控制单个支持向量的影响范围scale- 值越小,模型复杂度越高,可能过拟合;- 可调为 'auto', 0.01, 0.1, 1
degree多项式核的阶数3- 仅对 'poly' 核有效;- 高阶可能产生震荡、欠拟合或过拟合问题
coef0核函数中的常数项:仅用于 'poly', 'sigmoid'0.0- 改变核函数输出偏移量,可用于调整非线性度(仅对部分核有效)
shrinking是否启用启发式收缩优化算法True- 通常保持为 True 可获得更快的训练速度
tol停止迭代的容忍误差1e-3- 控制收敛精度;较小值提升精度但训练慢
max_iter最大迭代次数(-1 表示不限制)-1- 控制训练时间;训练不收敛时建议限制或调节学习参数

实用调参建议

  1. 核心组合推荐(适用于多数非线性回归):

    • kernel='rbf'

    • C=10~100

    • epsilon=0.01~0.2

    • gamma='scale'0.1

  2. 调参顺序建议

    • 首调 Cepsilon 控制偏差与容差;

    • 后调 gamma 以调节核复杂度;

    • 使用网格搜索(GridSearchCV)+交叉验证获取最优组合。

  3. 可视化辅助

    • 结合预测曲线图、残差图和学习曲线判断模型表现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值