支持向量回归(Support Vector Regression, SVR)是支持向量机(SVM)的一种扩展,用于回归分析,即用于预测连续数值型目标。它的原理与分类任务中的支持向量机类似,SVR 通过最大化回归模型的间隔,同时允许部分样本违反一定的误差范围,以提高模型的鲁棒性。
1. 支持向量回归的基本概念
与分类中的 SVM 相似,SVR 也试图在数据点中找到一个“最优超平面”,但在回归问题中,这个超平面是一个回归函数,它尽可能接近数据点,并在允许误差的范围内做出预测。
在 SVR 中,我们需要找到一个函数 f ( x ) f(x) f(x),使得它能够预测样本的输出值,并且误差尽可能地小。同时,允许误差在一定的范围内,而不去惩罚这些误差。这种允许误差的范围由一个参数 ϵ \epsilon ϵ 控制,这就是 SVR 的 ϵ \epsilon ϵ -不敏感损失函数。
2. ϵ \epsilon ϵ-不敏感损失函数
在 SVR 中,引入了一个 ϵ \epsilon ϵ 参数,用来表示误差的容忍范围。如果预测值与真实值之间的差异小于 ϵ \epsilon ϵ,则认为没有损失。如果差异大于 ϵ \epsilon ϵ,则产生损失。
损失函数:
对于每个样本 ( x i , y i ) (x_i, y_i) (xi,yi),SVR 的损失函数定义为:
L ϵ ( y i , f ( x i ) ) = max ( 0 , ∣ y i − f ( x i ) ∣ − ϵ ) L_{\epsilon}(y_i, f(x_i)) = \max(0, |y_i - f(x_i)| - \epsilon) Lϵ(yi,f(xi))=max(0,∣yi−f(xi)∣−ϵ)
- 当预测值 f ( x i ) f(x_i) f(xi) 与真实值 y i y_i yi 之间的差异小于 ϵ \epsilon ϵ 时,损失为零,即不惩罚误差。
- 当差异大于 ϵ \epsilon ϵ 时,损失为 ∣ y i − f ( x i ) ∣ − ϵ |y_i - f(x_i)| - \epsilon ∣yi−f(xi)∣−ϵ。
这种损失函数叫做 ϵ \epsilon ϵ-不敏感损失( ϵ \epsilon ϵ-insensitive loss),它允许一定范围内的误差,而不对模型产生惩罚。
3. 支持向量回归的优化目标
SVR 的目标是找到一个函数 f ( x ) = w T x + b f(x) = w^T x + b f(x)=wTx+b,使得大多数样本的预测误差不超过 ϵ \epsilon ϵ,同时尽量使模型简单(即最大化回归函数的间隔)。因此,SVR 的优化目标可以写作:
优化问题:
min w , b , ξ i , ξ i ∗ 1 2 ∥ w ∥ 2 + C ∑ i = 1 n ( ξ i + ξ i ∗ ) \min_{w, b, \xi_i, \xi_i^*} \ \frac{1}{2} \|w\|^2 + C \sum_{i=1}^n (\xi_i + \xi_i^*) w,b,ξi,ξi∗min 21∥w∥2+Ci=1∑n(ξi+ξi∗)
其中:
- 1 2 ∥ w ∥ 2 \frac{1}{2} \|w\|^2 21∥w∥2:用于控制模型的复杂度,保持函数的平滑性。
- C ∑ i = 1 n ( ξ i + ξ i ∗ ) C \sum_{i=1}^n (\xi_i + \xi_i^*) C∑i=1n(ξi+ξi∗):对违反 ϵ \epsilon ϵ 不敏感损失函数的样本施加惩罚,控制误差。
- ξ i \xi_i ξi 和 ξ i ∗ \xi_i^* ξi∗:松弛变量,用于处理误差大于 ϵ \epsilon ϵ 的样本,分别表示预测值高于或低于真实值时的误差。
约束条件:
对于每个样本
(
x
i
,
y
i
)
(x_i, y_i)
(xi,yi),约束条件是:
y
i
−
(
w
T
x
i
+
b
)
≤
ϵ
+
ξ
i
∗
y_i - (w^T x_i + b) \leq \epsilon + \xi_i^*
yi−(wTxi+b)≤ϵ+ξi∗
(
w
T
x
i
+
b
)
−
y
i
≤
ϵ
+
ξ
i
(w^T x_i + b) - y_i \leq \epsilon + \xi_i
(wTxi+b)−yi≤ϵ+ξi
ξ
i
,
ξ
i
∗
≥
0
\xi_i, \xi_i^* \geq 0
ξi,ξi∗≥0
这些约束条件保证了大部分数据点的预测值 f ( x i ) = w T x i + b f(x_i) = w^T x_i + b f(xi)=wTxi+b 距离真实值 y i y_i yi 的误差不超过 ϵ \epsilon ϵ,允许有一部分样本的误差通过松弛变量 ξ i \xi_i ξi 和 ξ i ∗ \xi_i^* ξi∗ 来表示。
4. 对偶问题的推导
为了求解 SVR 的优化问题,通常会将其转化为对偶问题。SVR 的对偶问题与支持向量分类器的对偶问题类似:
拉格朗日函数
我们引入拉格朗日乘子 α i , α i ∗ , λ i , λ i ∗ \alpha_i, \alpha_i^*, \lambda_i, \lambda_i^* αi,αi∗,λi,λi∗ 来处理约束条件,构造拉格朗日函数:
L ( w , b , ξ i , ξ i ∗ , α i , α i ∗ , λ i , λ i ∗ ) = 1 2 ∥ w ∥ 2 + C ∑ i = 1 n ( ξ i + ξ i ∗ ) − ∑ i = 1 n α i [ ϵ + ξ i − y i + w T x i + b ] − ∑ i = 1 n α i ∗ [ ϵ + ξ i ∗ + y i − w T x i − b ] − ∑ i = 1 n ( λ i ξ i + λ i ∗ ξ i ∗ ) L(w, b, \xi_i, \xi_i^*, \alpha_i, \alpha_i^*, \lambda_i, \lambda_i^*) = \frac{1}{2} \|w\|^2 + C \sum_{i=1}^n (\xi_i + \xi_i^*) - \sum_{i=1}^n \alpha_i [\epsilon + \xi_i - y_i + w^T x_i + b] - \sum_{i=1}^n \alpha_i^* [\epsilon + \xi_i^* + y_i - w^T x_i - b] - \sum_{i=1}^n (\lambda_i \xi_i + \lambda_i^* \xi_i^*) L(w,b,ξi,ξi∗,αi,αi∗,λi,λi∗)=21∥w∥2+Ci=1∑n(ξi+ξi∗)−i=1∑nαi[ϵ+ξi−yi+wTxi+b]−i=1∑nαi∗[ϵ+ξi∗+yi−wTxi−b]−i=1∑n(λiξi+λi∗ξi∗)
通过对 w w w、 b b b、 ξ i \xi_i ξi、 ξ i ∗ \xi_i^* ξi∗ 求偏导并消去这些变量,可以得到 SVR 的对偶问题。
对偶优化问题:
max α i , α i ∗ − 1 2 ∑ i , j = 1 n ( α i − α i ∗ ) ( α j − α j ∗ ) x i T x j − ϵ ∑ i = 1 n ( α i + α i ∗ ) + ∑ i = 1 n y i ( α i − α i ∗ ) \max_{\alpha_i, \alpha_i^*} \ - \frac{1}{2} \sum_{i,j=1}^n (\alpha_i - \alpha_i^*) (\alpha_j - \alpha_j^*) x_i^T x_j - \epsilon \sum_{i=1}^n (\alpha_i + \alpha_i^*) + \sum_{i=1}^n y_i (\alpha_i - \alpha_i^*) αi,αi∗max −21i,j=1∑n(αi−αi∗)(αj−αj∗)xiTxj−ϵi=1∑n(αi+αi∗)+i=1∑nyi(αi−αi∗)
约束条件:
- 0 ≤ α i , α i ∗ ≤ C 0 \leq \alpha_i, \alpha_i^* \leq C 0≤αi,αi∗≤C
- ∑ i = 1 n ( α i − α i ∗ ) = 0 \sum_{i=1}^n (\alpha_i - \alpha_i^*) = 0 ∑i=1n(αi−αi∗)=0
5. 支持向量回归的最终决策函数
通过求解对偶问题中的拉格朗日乘子 α i \alpha_i αi 和 α i ∗ \alpha_i^* αi∗,最终的决策函数可以表示为:
f ( x ) = ∑ i = 1 n ( α i − α i ∗ ) x i T x + b f(x) = \sum_{i=1}^n (\alpha_i - \alpha_i^*) x_i^T x + b f(x)=i=1∑n(αi−αi∗)xiTx+b
这表明预测值是基于训练数据中的一些关键样本(支持向量)计算的。
6. 总结
支持向量回归(SVR)是对 SVM 的扩展,用于回归问题。它通过引入 ϵ \epsilon ϵ-不敏感损失函数,允许预测值与真实值在一定范围内存在误差,并通过优化模型复杂度和误差的折中,找到一个最优回归模型。SVR 的最终决策函数类似于 SVM,仍然依赖于支持向量。