1.4.支持向量机#

休闲活动 9869

1.4.7.2. SVR#

给定训练向量 \(x_i \in \mathbb{R}^p\),i=1,…, n,以及向量 \(y \in \mathbb{R}^n\),\(\varepsilon\)-SVR 求解以下原始问题:

\[ \begin{align}\begin{aligned}\min_ {w, b, \zeta, \zeta^*} \frac{1}{2} w^T w + C \sum_{i=1}^{n} (\zeta_i + \zeta_i^*)\\\begin{split}\textrm {subject to } & y_i - w^T \phi (x_i) - b \leq \varepsilon + \zeta_i,\\ & w^T \phi (x_i) + b - y_i \leq \varepsilon + \zeta_i^*,\\ & \zeta_i, \zeta_i^* \geq 0, i=1, ..., n\end{split}\end{aligned}\end{align} \]

在这里,我们对预测值与真实目标值相差至少 \(\varepsilon\) 的样本进行惩罚。这些样本根据其预测值位于 \(\varepsilon\) 管道上方还是下方,通过 \(\zeta_i\) 或 \(\zeta_i^*\) 来惩罚目标函数。

对偶问题是:

\[ \begin{align}\begin{aligned}\min_{\alpha, \alpha^*} \frac{1}{2} (\alpha - \alpha^*)^T Q (\alpha - \alpha^*) + \varepsilon e^T (\alpha + \alpha^*) - y^T (\alpha - \alpha^*)\\\begin{split} \textrm {subject to } & e^T (\alpha - \alpha^*) = 0\\ & 0 \leq \alpha_i, \alpha_i^* \leq C, i=1, ..., n\end{split}\end{aligned}\end{align} \]

其中 \(e\) 是全 1 向量,\(Q\) 是一个 \(n \times n\) 的半正定矩阵,\(Q_{ij} \equiv K(x_i, x_j) = \phi (x_i)^T \phi (x_j)\) 是核函数。这里,训练向量通过函数 \(\phi\) 被隐式映射到更高(可能是无限)维空间。

预测结果为:

\[\sum_{i \in SV}(\alpha_i - \alpha_i^*) K(x_i, x) + b\]

这些参数可以通过属性 dual_coef_(保存差值 \(\alpha_i - \alpha_i^*\))、 support_vectors_(保存支持向量)和 intercept_(保存独立项 \(b\))进行访问。

LinearSVR#

原始问题可以等价地表述为:

\[\min_ {w, b} \frac{1}{2} w^T w + C \sum_{i=1}^{n}\max(0, |y_i - (w^T \phi(x_i) + b)| - \varepsilon),\]

其中我们使用了 epsilon 不敏感损失(epsilon-insensitive loss),即小于 \(\varepsilon\) 的误差被忽略。这是直接由 LinearSVR 优化的形式。