支持向量机SVM(上)——分类

文章来自微信公众号“科文路”,欢迎关注、互动。转发须注明出处。

本系列文章主题为“备查手册”,旨在帮助读者快速回忆起相关技术细节。SVM 系列,按应用预计分为三个部分:分类回归单分类

本文内容主要源自 A Practical Guide to Support Vector Classification,介绍 SVM 用作分类算法的原理、可使结果更好的工作流程。

用途

使用训练数据训练产生一个模型,用于在新的数据上预测类别

The goal of SVM is to produce a model (based on the training data) which predicts the target values of the test data given only the test data attributes.

含义

支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划(convex quadratic programming)的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法。——《统计学习方法》,李航

SVM

上图来自维基百科“支持向量机”

Given a training set of instance-label pairs $(\mathbf{x}_i, y_i), i=1,\cdots,l$, where $\mathbf{x}_i \in \mathbb{R}^n$ and $y_i \in {1,-1}^l$, the support vector machines (SVM) (Boser et al., 1992; Cortes and Vapnik, 1995) require the solution of the following optimization problem:

$$
\begin{array}{c}
\min {\mathbf{w}, b, \xi} \frac{1}{2} \mathbf{w}^{T} \mathbf{w}+C \sum{i=1}^{l} \xi_{i} \
\text { subject to } y_{i}\left(\mathbf{w}^{T} \phi\left(\mathbf{x}{i}\right)+b\right) \geq 1-\xi{i} \
\xi_{i} \geq 0
\end{array}
$$

面试常考:$C$ 的作用是什么?$\phi$ 的含义是什么?如何使用 SVM 解决多分类问题?

核技巧

SVM 在 $\mathbf{x}_i$ 通过 $\phi$ 被映射到的高维空间中寻找一个最大间隔线性可分超平面。

通过核技巧可以简化计算,常用核函数($K\left(\mathbf{x}{i}, \mathbf{x}{j}\right)=\phi(\mathbf{x}{i})^\top\phi(\mathbf{x}{j})$)包括:

  • Linear, $K\left(\mathbf{x}{i}, \mathbf{x}{j}\right)=\mathbf{x}{i}^{T} \mathbf{x}{j}$
  • Polynomial, $K\left(\mathbf{x}{i}, \mathbf{x}{j}\right)=\left(\gamma \mathbf{x}{i}{ }^{T} \mathbf{x}{j}+r\right)^{d}, \gamma>0$
  • RBF, radial basis function, $K\left(\mathbf{x}{i}, \mathbf{x}{j}\right)=\exp \left(-\gamma\Vert\mathbf{x}{i}-\mathbf{x}{j}\Vert^{2}\right), \gamma>0$
  • Sigmoid, $K\left(\mathbf{x}{i}, \mathbf{x}{j}\right)=\tanh \left(\gamma \mathbf{x}{i}{ }^{T} \mathbf{x}{j}+r\right)$

推荐工作流程

可大幅提高 accuracy

  • Transform data to the format of an SVM package
  • Conduct simple scaling on the data
  • Consider the RBF kernel $K(\mathbf{x}{i}, \mathbf{x}{j})=e^{-\gamma\Vert\mathbf{x}{i}-\mathbf{x}{j}\Vert^{2}}, \gamma>0$
  • Use cross-validation to find the best parameter $C$ and $\gamma$
  • Use the best parameter $C$ and $\gamma$ to train the whole training set
  • Test

都看到这儿了,不如关注每日推送的“科文路”、互动起来~

支持向量机SVM(上)——分类

https://xlindo.com/kewenlu2022/posts/11fd9728/

Author

xlindo

Posted on

2022-01-13

Updated on

2023-05-10

Licensed under

Comments