支持向量回归(Support Vector Regression, SVR)详解
支持向量回归(Support Vector Regression,简称 SVR)是一种基于支持向量机(SVM)的回归分析方法,广泛应用于预测和模式识别领域。SVR通过在高维空间中寻找一个最优超平面,以最大化数据点与超平面的间隔,从而实现对连续型变量的预测。本文将深入探讨SVR的理论基础、数学原理、模型构建、参数选择、训练与优化、应用场景以及其优势与局限。
目录
支持向量回归简介
支持向量回归(SVR)是支持向量机(SVM)在回归分析中的应用。与传统的回归方法不同,SVR不仅关注预测值与实际值之间的误差,还致力于在高维空间中寻找一个能够容忍一定误差范围内的最优超平面。SVR具有良好的泛化能力,能够有效处理高维数据和非线性关系,广泛应用于金融预测、工程建模、生物医学等多个领域。
SVR的数学原理
SVR的核心思想是通过在高维特征空间中寻找一个最优超平面,使得大部分数据点位于该平面的ε-不敏感带(ε-insensitive tube)内,同时最大化该带的宽度。以下将详细阐述SVR的数学原理。
最大间隔原理
SVR的目标是找到一个函数 f ( x ) f(x) f(x),使得:
f ( x ) = ⟨ w , x ⟩ + b f(x) = \langle w, x \rangle + b f(x)=⟨w,x⟩+b
其中:
- w w w 是权重向量。
- b b b 是偏置项。
- ⟨ w , x ⟩ \langle w, x \rangle ⟨w,x⟩ 表示 w w w 和 x x x 的内积。
SVR旨在最小化 w w w 的范数 ∥ w ∥ \|w\| ∥w∥,从而最大化间隔,同时允许部分数据点位于间隔带之外,通过引入松弛变量来处理这些违背间隔带的点。
损失函数
SVR采用ε-不敏感损失函数(ε-insensitive loss function),定义为:
L ϵ ( y , f ( x ) ) = { 0 if ∣ y − f ( x ) ∣ ≤ ϵ ∣ y − f ( x ) ∣ − ϵ otherwise L_{\epsilon}(y, f(x)) = \begin{cases} 0 & \text{if } |y - f(x)| \leq \epsilon \\ |y - f(x)| - \epsilon & \text{otherwise} \end{cases} Lϵ(y,f(x))={ 0∣y−f(x)∣−ϵif ∣y−f(x)∣≤ϵotherwise
其中:
- y y y 是实际值。
- f ( x ) f(x) f(x) 是预测值。
- ϵ \epsilon ϵ 是一个预设的阈值,决定了模型对误差的容忍度。
该损失函数的特点是,当预测值与实际值的差距在ε范围内时,损失为零;当差距超过ε时,损失与差距成正比。
优化问题
基于最大间隔原理和ε-不敏感损失函数,SVR的优化问题可以表述为:
min w , b , ξ , ξ ∗ 1 2 ∥ w ∥ 2 + C ∑ i = 1 n ( ξ i + ξ i ∗ ) \min_{w, b, \xi, \xi^*} \frac{1}{2} \|w\|^2 + C \sum_{i=1}^{n} (\xi_i + \xi_i^*) w,b,ξ,ξ∗min21∥w∥2+Ci=1∑n(ξi+ξi∗)
受限于:
y i − ⟨ w , x i ⟩ − b ≤ ϵ + ξ i ⟨ w , x i ⟩ + b − y i ≤ ϵ + ξ i ∗ ξ i , ξ i ∗ ≥ 0 ∀ i \begin{aligned} y_i - \langle w, x_i \rangle - b &\leq \epsilon + \xi_i \\ \langle w, x_i \rangle + b - y_i &\leq \epsilon + \xi_i^* \\ \xi_i, \xi_i^* &\geq 0 \quad \forall i \end{aligned} yi−⟨w,xi⟩−b⟨w,xi⟩+b−yiξi,ξi∗≤ϵ+ξi≤ϵ+ξi∗≥0∀i
其中:
- ξ i , ξ i ∗ \xi_i, \xi_i^* ξi,ξi∗ 是松弛变量,用于处理不满足ε-不敏感带的样本。
- C C C 是惩罚参数,用于平衡模型复杂度和训练误差。
对偶问题与拉格朗日对偶
为了求解上述优化问题,通常采用拉格朗日对偶方法。引入拉格朗日乘子 α i , α i ∗ , η i , η i ∗ \alpha_i, \alpha_i^*, \eta_i, \eta_i^* αi,αi∗,ηi,ηi∗,构建拉格朗日函数:
L ( w , b , ξ , ξ ∗ , α , α ∗ , η , η ∗ ) = 1 2 ∥ w ∥ 2 + C ∑ i = 1 n ( ξ i + ξ i ∗ ) − ∑ i = 1 n α i [ y i − ⟨ w , x i ⟩ − b − ϵ − ξ i ] − ∑ i = 1 n α i ∗ [ ⟨ w , x i ⟩ + b − y i − ϵ − ξ i ∗ ] − ∑ i = 1 n η i ξ i − ∑ i =