支持向量机-Support Vector Machine
Posted dqhl1990
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了支持向量机-Support Vector Machine相关的知识,希望对你有一定的参考价值。
支持向量机-Support Vector Machine
将在SVM之前
初窥SVM,没想到其涉及了诸多最优化问题的内容,特此在理解SVM的同时,整理了会用到的最优化相关知识,都在这里了。
关于SVM的讲解,我看到了两种方法。一种是网上最多的最优超平面方法求解;另一种是Andrew Ng在Coursera上通过逻辑回归延伸出来的方法。这里我先整理根据网上看到的方法。
1. 什么是超平面?
维基百科上讲:在几何学中,一个超平面,是一个比它所在环境空间维度小1的子空间(余维度为1)。例如,三维空间的超平面是一个二维平面,二维空间的超平面是一个一维线。
对于
n
n
n维空间,其内的超平面为:
(1.1)
w
1
x
1
+
w
2
x
2
+
⋯
+
w
n
x
n
=
b
w_1x_1 + w_2x_2+\\cdots + w_nx_n = b\\tag1.1
w1x1+w2x2+⋯+wnxn=b(1.1)定义的子集
X
X
X,其中
w
1
,
w
2
,
…
,
w
n
w_1,w_2,\\dots,w_n
w1,w2,…,wn为不全为0的常数,并且为该超平面的法向量。
超平面将其所在的空间分成了两个部分,分别对应的是:
w 1 x 1 + w 2 x 2 + ⋯ + w n x n > b a n d w 1 x 1 + w 2 x 2 + ⋯ + w n x n < b w_1x_1 + w_2x_2+\\cdots + w_nx_n > b\\\\ and\\\\ w_1x_1 + w_2x_2+\\cdots + w_nx_n < b w1x1+w2x2+⋯+wnxn>bandw1x1+w2x2+⋯+wnxn<b
用向量形式表示超平面公式为:
(1.2)
x
=
(
x
1
,
x
2
,
…
,
x
n
)
T
w
=
(
w
1
,
w
2
,
…
,
w
n
)
T
w
T
x
+
b
=
0
x=(x_1,x_2,\\dots,x_n)^T\\\\ w=(w_1,w_2,\\dots,w_n)^T\\\\ \\ \\\\ w^Tx +b = 0\\tag1.2
x=(x1,x2,…,xn)Tw=(w1,w2,…,wn)T wTx+b=0(1.2)
其同样可以用不等式将所在的空间分成两部分:
w
T
x
+
b
>
0
a
n
d
w
T
x
+
b
<
0
w^Tx +b > 0\\\\and\\\\w^Tx +b < 0
wTx+b>0andwTx+b<0
以二维空间为例,如图能直观地看出超平面(线)将二维平面分成了两部分:
问题定义
在进行推导之前,我们想对问题进行定义。假设给定一个特征空间上的训练数据集
T
=
(
x
1
,
y
x
)
,
(
x
2
,
y
2
)
,
…
,
(
x
n
,
y
n
)
T = \\(x_1,y_x),(x_2,y_2),\\dots,(x_n,y_n)\\
T=(x1,yx),(x2,y2),…,(xn,yn)其中,
x
i
∈
R
n
,
y
i
∈
+
1
,
−
1
,
i
=
1
,
2
,
…
,
n
x_i\\in \\Bbb R^n,y_i \\in \\+1,-1\\, i = 1,2,\\dots,n
xi∈Rn,yi∈+1,−1,i=1,2,…,n。
我们的问题就是要找到空间中的一个超平面,能够最优的将不同类别的样本区分开来。
2. 函数间隔(Functional Margin)与几何间隔(Geometrical Margin)
函数间隔
当在一个超平面 w T x + b = 0 w^Tx+b=0 wTx+b=0确定的情况下,我们可以看到 ∣ w T x i + b ∣ |w^Tx_i+b| ∣wTxi+b∣能够反映点 x i x_i xi到超平面的远近(但不是实际的欧几里得距离),通过观察 w T x i + b w^Tx_i+b wTxi+b和类标记 y i y_i yi符号是否一致,可以判断分类结果是否正确。因此,同时考虑 w T x i + b w^Tx_i+b wTxi+b和 y i y_i yi,即 y i ( w T x i + b ) y_i(w^Tx_i +b) yi(wTxi+b)能到的一种对于分类结果正确与否的度量(可信度)。
所以,我们定义间隔函数为:
(2.1)
γ
i
^
=
y
i
(
w
T
x
i
+
b
)
\\hat\\gamma_i = y_i(w^Tx_i +b)\\tag2.1
γi^=yi(wTxiSpark MLlib模型 支持向量机Support Vector Machine
支持向量机(SVM:support vector machine)
支持向量机(support vector machines, SVM)
机器学习之支持向量机(Support Vector Machine)(更新中...)