SVM
1. svm是干什么的
支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;SVM还包括核技巧,这使它成为实质上的非线性分类器。SVM的的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。SVM的的学习算法就是求解凸二次规划的最优化算法。分类算法
2. 支持向量
虚线上的点到划分超平面的距离都是一样的,实际上只有这几个点共同确定了超平面的位置,因此被称作 “支持向量(support vectors)”,“支持向量机” 也是由此来的。
3.怎么做
给定数据点,这些数据点分别属于两个不同类,需要找到一个分类器将数据分成两类。
分类器的目标是在n维数据空间中找到超平面,将数据点分成两类,且超平面距离两边的数据间隔最大。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C5VnIZMy-1630054270155)(C:\Users\MSI\AppData\Roaming\Typora\typora-user-images\image-20210827152626750.png)]
只要确定w和b就能确定超平面,利用KKT和拉格朗日乘数法,可表示为:
d
(
X
T
)
=
∑
i
=
1
l
y
i
α
i
X
i
X
T
+
b
0
d\left(X^{T}\right)=\sum_{i=1}^{l} y_{i} \alpha_{i} X_{i} X^{T}+b_{0}
d(XT)=i=1∑lyiαiXiXT+b0
此方程就确定了边际最大化的划分超平面、
4. 核方法
在线性 SVM 中转化为最优化问题时求解的公式计算都是以内积(dot product)形式出现的,其中 ϕ ( X ) 是把训练集中的向量点转化到高维的非线性映射函数,因为内积的算法复杂度非常大,所以我们利用核函数来取代计算非线性映射函数的内积。
常用核函数:
-
h 度多项式核函数
K ( X i , X j ) = ( X i , X j + 1 ) h K\left(X_{i}, X_{j}\right)=\left(X_{i}, X_{j}+1\right)^{h} K(Xi,Xj)=(Xi,Xj+1)h -
高斯径向基核函数
K ( X i , X j ) = e − ∥ X i − X j ∥ 2 / 2 σ 2 K\left(X_{i}, X_{j}\right)=e^{-\left\|X_{i}-X_{j}\right\|^{2} / 2 \sigma^{2}} K(Xi,Xj)=e−∥Xi−Xj∥2/2σ2 -
S 型核函数
K ( X i , X j ) = tanh ( k X i ⋅ X j − δ ) K\left(X_{i}, X_{j}\right)=\tanh \left(k X_{i} \cdot X_{j}-\delta\right) K(Xi,Xj)=tanh(kXi⋅Xj−δ)