支持向量机的回归用法详解

支持向量机的回归用法详解

在机器学习的广阔领域中,支持向量机(SVM)是一种极具影响力的算法,它不仅在分类任务上表现出色,在回归任务中同样有着独特的应用价值。本文将深入探讨 SVM 的回归用法,包括其基本原理与代码实现。

一、SVM 回归的基本原理

SVM 作为一种强大的机器学习算法,其能力不仅局限于分类任务,在线性回归和非线性回归领域同样有着出色的表现。在分类任务中,SVM 的目标函数旨在最小化某个特定值(如\(\frac{\lambda}{2}||w||^2\) ),同时让训练集中的点尽可能远离自己类别一侧的支持向量,以实现分类边界的最大化间隔。而在 SVM 回归中,虽然目标函数的形式与分类类似,但其核心目标发生了转变:训练集中的点需要尽量拟合到一个线性模型中。

在常规的回归模型里,均方误差(MSE)是常用的损失度量方式。然而,SVM 回归采用了一种独特的损失计算方式。在 SVM 回归中,我们需要预先定义一个常量\(\epsilon > 0\)。对于任意一个数据点\((x_i, y_i)\) ,如果\(|y_i - f(x_i)| \leq \epsilon\)(其中\(f(x_i)=w^Tx_i + b\)),那么该点完全没有损失;只有当\(|y_i - f(x_i)| > \epsilon\)时,才会产生损失,且对应的损失值为\(|y_i - f(x_i)| - \epsilon\) 。

从图形上直观理解,存在一个以回归超平面为中心、宽度为\(2\epsilon\)的蓝色条带。位于条带内的点由于误差在\(\epsilon\)范围内,所以没有损失;而位于条带外的点则会产生损失,损失大小可以用从该点到条带边界的红色线长度来表示。

SVM 回归模型的核心思想在于:在保证所有样本点在\(\epsilon\)偏差范围内的前提下,让回归超平面尽可能地平缓。这样做的目的是使得超平面两侧的数据样本之间的相对距离达到最小,从而实现更好的回归拟合效果。例如,在不同的回归超平面选择中,能让更多样本点处于\(\epsilon\)范围内且超平面更平缓的那一个,就是更优的选择。

但在实际应用场景中,数据往往存在异常点。为了应对这种情况,SVM 回归引入了与分类类似的软间隔机制,允许一部分样本点位于间隔边界之外,从而增强模型的鲁棒性和泛化能力。

二、SVM 回归代码实现

在 Python 的 Scikit-learn 库中,提供了便捷的函数来实现 SVM 回归。其中,SVR类支持核方法,类似于分类问题中的SVC类;LinearSVR类则对应分类中的LinearSVC类,适用于线性回归场景。

1. 线性 SVM 回归

以下代码展示了如何使用LinearSVR进行线性回归,并通过设置不同的\(\epsilon\)值来观察模型效果:

 

import numpy as np

from sklearn.svm import LinearSVR

np.random.seed(42)

m = 50

X = 2 * np.random.randn(m, 1)

y = (4 + 3 * X + np.random.randn(m, 1)).ravel()

svm_reg1 = LinearSVR(epsilon=1.5, random_state=42)

svm_reg2 = LinearSVR(epsilon=0.5, random_state=42)

svm_reg1.fit(X, y)

svm_reg2.fit(X, y)

运行上述代码后,得到两个线性 SVM 回归模型。其中,设置\(\epsilon = 1.5\)的模型具有较大的间隔,意味着它对数据点的拟合要求相对宽松;而\(\epsilon = 0.5\)的模型间隔较小,对数据点的拟合更加严格。

2. 非线性 SVM 回归

当处理非线性回归问题时,需要指定合适的核函数。以多项式核函数为例,通过设置kernel="poly" 、degree=2(多项式阶次)、C=100(惩罚系数)、epsilon=0.1等参数,可以构建非线性 SVM 回归模型,具体代码如下:

 

from sklearn.svm import SVR

svm_poly_reg1 = SVR(kernel="poly", degree=2, C=100, epsilon=0.1, gamma="auto")

svm_poly_reg2 = SVR(kernel="poly", degree=2, C=0.01, epsilon=0.1, gamma="auto")

svm_poly_reg1.fit(X, y)

svm_poly_reg2.fit(X, y)

运行结果显示,超参数C的值对模型的正则化程度有着显著影响。C值较大(如C=100)时,模型的正则化程度较小,几乎不对模型复杂度进行约束;而C值较小(如C=0.01)时,模型的正则化程度较大,容易出现过度正则化现象,导致模型对训练数据拟合过度,在新数据上的泛化能力下降 。

综上所述,SVM 回归通过独特的原理和灵活的参数设置,在回归任务中展现出强大的适应性。无论是线性回归还是非线性回归问题,都能通过合理调整模型参数,找到合适的解决方案。但在实际应用中,也需要根据数据特点谨慎选择参数,避免出现过拟合或欠拟合的情况,以充分发挥 SVM 回归的优势。

上述文章全面解析了 SVM 回归,若你觉得某些部分需要展开,或有其他补充需求,欢迎随时和我说。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万能小贤哥

感谢大捞

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值