文章目录
前言
支持向量机是一种二分类模型。使特征空间上的间隔最大的线性分类器(与感知机的不同)。加入核技巧,就可以实现非线性分类器。学习策略可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。
支持向量机主要分为三类:线性可分支持向量机(通过硬间隔最大化学习一个线性分类器,也称为硬间隔支持向量机[前提是原始数据线性可分]);线性支持向量机(训练数据近似线性可分时,通过软间隔最大化学习一个线性分类器,也称为软间隔支持向量机);非线性支持向量机(训练数据线性不可分时,通过使用核技巧及软间隔最大化学习非线性支持向量机)。
基本概念
【核函数】当输入空间为欧式空间或离散集合,特征空间为希尔伯特空间时,核函数表示将输入从输入空间映射到特征空间得到的特征向量之间的内积。
【核技巧】通过使用核函数可以学习非线性支持向量机,等价于隐式的在高维的特征空间中学习线性支持向量机,这样的方法成为核技巧。
线性可分支持向量机
1.间隔
一般来说,一个点距离超平面的远近可以表示分类预测的确信程度。点到超平面的距离
∣
w
⋅
x
+
b
∣
∣
∣
w
∣
∣
\frac{|w\cdot x+b|}{||w||}
∣∣w∣∣∣w⋅x+b∣
⟶
\longrightarrow
⟶
∣
w
⋅
x
+
b
∣
|w\cdot x+b|
∣w⋅x+b∣能够相对地表示点x距离超平面的远近。而
w
⋅
x
+
b
w\cdot x+b
w⋅x+b的符号与类标记y的符号是否一致能够表示分类是否正确,所以y(wx+b)(恒大于0表示分类正确)表示分类的正确性及确信度。这就是函数间隔。
只有函数间隔还不够,因为只要成比例地改变w和b,例如2w和2b,超平面没变,但函数间隔却成为原来的2倍,于是对分离超平面的法向量w加些约束,如规范化,使得||w||=1,即间隔确定,这时的函数间隔成为几何间隔。
【函数间隔】
y
i
(
w
⋅
x
i
+
b
)
y_i(w\cdot x_i+b)
yi(w⋅xi+b)
【几何间隔】
y
i
(
w
∣
∣
w
∣
∣
⋅
x
i
+
b
∣
∣
w
∣
∣
)
y_i(\frac{w}{||w||}\cdot x_i+\frac{b}{||w||})
yi(∣∣w∣∣w⋅xi+∣∣w∣∣b)
集合间隔=
1
∣
∣
w
∣
∣
\frac{1}{||w||}
∣∣w∣∣1函数间隔,||w||=1时,函数间隔=几何间隔。
2.硬间隔最大化
(1)最大间隔分离超平面
表示为约束最优化问题:
max
w
,
b
γ
s
.
t
.
y
i
(
w
∣
∣
w
∣
∣
⋅
x
i
+
b
∣
∣
w
∣
∣
)
≥
γ
\mathop{\max}\limits_{w,b} \gamma \ \ \ s.t. \ \ y_i(\frac{w}{||w||}\cdot x_i+\frac{b}{||w||})\geq \gamma
w,bmaxγ s.t. yi(∣∣w∣∣w⋅xi+∣∣w∣∣b)≥γ
令
γ
^
∣
∣
w
∣
∣
=
γ
\frac{\hat{\gamma}}{||w||}=\gamma
∣∣w∣∣γ^=γ得:
max
w
,
b
γ
^
∣
∣
w
∣
∣
s
.
t
.
y
i
(
w
⋅
x
i
+
b
)
≥
γ
^
\mathop{\max}\limits_{w,b} \frac{\hat{\gamma}}{||w||}\ \ s.t.\ \ \ y_i(w\cdot x_i+b)\geq\hat{\gamma}
w,bmax∣∣w∣∣γ^ s.t. yi(w⋅xi+b)≥γ^ ,i=1,2,…,N
令
γ
^
=
1
\hat{\gamma}=1
γ^=1得到:
max
w
,
b
1
∣
∣
w
∣
∣
s
.
t
.
y
i
(
w
⋅
x
i
+
b
)
≥
1
\mathop{\max}\limits_{w,b} \frac{1}{||w||}\ \ s.t.\ \ \ y_i(w\cdot x_i+b)\geq1
w,bmax∣∣w∣∣1 s.t. yi(w⋅xi+b)≥1,
max
w
,
b
1
∣
∣
w
∣
∣
↔
min
w
,
b
1
2
∣
∣
w
∣
∣
2
\mathop{\max}\limits_{w,b} \frac{1}{||w||}\leftrightarrow \mathop{\min}\limits_{w,b}\frac{1}{2}||w||^2
w,bmax∣∣w∣∣1↔w,bmin21∣∣w∣∣2
此时转化为一个凸二次规划的问题。求解此优化问题的解
w
∗
,
b
∗
w^*,b^*
w∗,b∗,可得到最大间隔分离超平面
w
∗
x
+
b
∗
=
0
w^*x+b^*=0
w∗x+b∗=0,及分类决策函数
f
(
x
)
=
s
i
g
n
(
w
∗
⋅
x
+
b
∗
)
f(x)=sign(w^*\cdot x+b^*)
f(x)=sign(w∗⋅x+b∗),即线性可分支持向量机模型。
(2)最大间隔分离超平面的存在唯一性
(3)支持向量
(4)对偶算法
【待补充】
【待补充】
线性支持向量机
【待补充】
非线性支持向量机
【待补充】
sklearn.svm.SVC参数详解
官方文档
class sklearn.svm.SVC(C=1.0, kernel=’rbf’, degree=3, gamma=’auto_deprecated’, coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, decision_function_shape=’ovr’, random_state=None)
参数 | 解释 | 数值类型(默认值) | 选项 |
---|
[待补充]
属性:
属性 | 解释 |
---|---|
coef_ | array,shape(1,n_features)/(n_classes,n_features) ,输入模型的系数(权重) |
【待补充】
感知机
感知机代码实现
SVM代码实现
适用场景
[待补充]
参考资料
《统计学习方法》 李航
深入浅出机器学习技法(一):线性支持向量机(LSVM)
深入浅出机器学习技法(二):对偶支持向量机(DSVM)