机器学习算法总结
一、Bagging之决策树、随机森林原理与案例
二、boosting之GBDT、XGBT原理推导与案例
三、SVM原理推导与案例
四、逻辑回归与反欺诈检测案例
五、聚类之K-means
三、SVM
1. 原理推导(硬间隔)
1.1分类问题代数化
**svm原理一句话概括:找出一个最优的直线(或超平面)去隔离不同类别样本数据,达到分类目的。**
图1 图2
图1: 找出一条直线将样本完美地划分成两类(注意这样的直线有很多,称为决策边界)。
图2:最优的划分直线满足虚线(超平面)之间距离d最大(容错性高,直观体现支持向量(虚线上的点)的重要性)。
图1:设设x1,x2为决策边界上w^T*x+b=0的两个点,则:
w
T
∗
X
1
+
b
=
0
w
T
∗
X
2
+
b
=
0
w
T
∗
(
X
1
−
X
2
)
=
0
w
⃗
⊥
(
X
1
⃗
−
X
2
⃗
)
即
垂
直
于
决
策
边
界
w^T*X_1+b=0\\w^T*X_2+b=0\\w^T*(X_1-X_2)=0\\\vec{w}\perp(\vec{X_1}-\vec{X_2})即垂直于决策边界
wT∗X1+b=0wT∗X2+b=0wT∗(X1−X2)=0w⊥(X1−X2)即垂直于决策边界
图2:将决策边界向上平移和向下平移k得到虚线超平面,则
w
T
∗
X
+
b
=
k
w
T
∗
X
+
b
=
−
k
等
式
两
边
除
以
k
w
T
∗
X
+
b
=
1
w
T
∗
X
+
b
=
1
注
:
1
、
−
1
分
别
表
示
平
行
于
决
策
边
界
的
虚
线
到
决
策
边
界
的
相
对
距
离
,
不
是
具
体
距
离
w^T*X+b=k\\w^T*X+b=-k\\等式两边除以k\\w^T*X+b=1\\w^T*X+b=1\\注:1、-1分别表示平行于决策边界的虚线到决策边界的相对距离,不是具体距离
wT∗X+b=kwT∗X+b=−k等式两边除以kwT∗X+b=1wT∗X+b=1注:1、−1分别表示平行于决策边界的虚线到决策边界的相对距离,不是具体距离
**图2:**设Xp、Xn分别为正例和负例样本的支持向量,则:
w
T
∗
X
p
+
b
=
1
w
T
∗
X
n
+
b
=
−
1
w
T
∗
(
X
p
−
X
n
)
=
2
d
=
(
X
p
−
X
n
)
∗
w
⃗
∣
w
⃗
∣
=
2
∣
w
⃗
∣
因
为
一
个
向
量
(
X
p
−
X
n
)
点
乘
一
个
单
位
向
量
w
⃗
∣
w
⃗
∣
等
于
在
单
位
向
量
上
的
投
影
w^T*X_p+b=1\\w^T*X_n+b=-1\\w^T*(X_p-X_n)=2\\d=(X_p-X_n)*\frac{\vec{w}}{|\vec{w}|}=\frac{2}{|\vec{w}|} \\因为一个向量(X_p-X_n)点乘一个单位向量\frac{\vec{w}}{|\vec{w}|}等于在单位向量上的投影
wT∗Xp+b=1wT∗Xn+b=−1wT∗(Xp−Xn)=2d=(Xp−Xn)∗∣w∣w=∣w∣2因为一个向量(Xp−Xn)点乘一个单位向量∣w∣w等于在单位向量上的投影
为了最优的分类效果和容错性,需求解满足分类正确前提下距离d的最大值。
分
类
正
确
:
f
(
w
,
b
)
=
{
w
x
i
+
b
≥
1
,
i
f
y
i
=
1
w
x
i
+
b
≤
−
1
,
i
f
y
i
=
−
1
x
i
、
y
i
真
实
样
本
特
征
和
标
签
简
化
表
示
:
y
i
(
w
x
i
+
b
)
≥
1
1
−
y
i
(
w
x
i
+
b
)
≤
0
分类正确:f(w,b) = \begin{cases} wx_i+b\geq1, & if y_i=1 \\ wx_i+b\leq-1, & if y_i=-1 \end{cases} \\x_i、y_i真实样本特征和标签\\ 简化表示:y_i(wx_i+b)\geq1\\1-y_i(wx_i+b)\leq0
分类正确:f(w,b)={wxi+b≥1,wxi+b≤−1,ifyi=1ifyi=−1xi、yi真实样本特征和标签简化表示:yi(wxi+b)≥11−yi(wxi+b)≤0
求解最优决策边界代数化问题为:
d
m
a
x
=
m
i
n
1
2
∣
w
⃗
∣
=
m
i
n
1
2
w
⃗
2
s
.
t
:
1
−
y
i
(
w
x
i
+
b
)
≤
0
d_{max}=min\frac{1}{2}|\vec{w}|=min\frac{1}{2}\vec{w}^2\\ s.t:1-y_i(wx_i+b)\leq0
dmax=min21∣w∣=min21w2s.t:1−yi(wxi+b)≤0
1.2 带有约束的凸优化最优解问题
最优决策边界的代数化表示是一个带有约束的凸优化最优解问题,使用拉格朗日因子法求解(专门求解带约束的最优化问题的方法)。
原始问题对应拉格朗日函数为:
L
(
w
,
b
,
λ
)
=
1
2
w
T
∗
w
+
∑
i
=
0
n
λ
i
[
1
−
y
i
(
w
T
∗
x
i
+
b
)
]
λ
≥
0
L(w,b,\lambda)=\frac{1}{2}w^T*w+\sum_{i=0}^n\lambda_i[1-y_i(w^T*x_i+b)]\\\lambda\geq0
L(w,b,λ)=21wT∗w+i=0∑nλi[1−yi(wT∗xi+b)]λ≥0
且有:
原
始
问
题
:
m
i
n
1
2
w
⃗
2
=
=
=
m
i
n
w
,
b
m
a
x
λ
L
(
w
,
b
,
λ
)
(
λ
≥
0
)
原始问题:min\frac{1}{2}\vec{w}^2===min_{w,b}max_\lambda L(w,b,\lambda)(\lambda\geq0)
原始问题:min21w2===minw,bmaxλL(w,b,λ)(λ≥0)
证明:
∵
m
a
x
λ
L
(
w
,
b
,
λ
)
=
{
+
∞
,
i
f
约
束
不
满
足
时
即
1
−
y
i
(
w
t
∗
x
i
+
b
)
>
0
1
2
w
T
∗
w
,
i
f
约
束
满
足
时
即
1
−
y
i
(
w
t
∗
x
i
+
b
)
≤
0
∴
m
i
n
w
,
b
m
a
x
λ
L
(
w
,
b
,
λ
)
=
m
i
n
w
,
b
{
+
∞
,
1
2
w
T
∗
w
}
=
m
i
n
1
2
w
T
∗
w
且
约
束
条
件
满
足
\because max_\lambda L(w,b,\lambda) = \begin{cases} +\infty, & if 约束不满足时即1-y_i(w_t*x_i+b)>0 \\ \frac{1}{2}w^T*w, & if 约束满足时即1-y_i(w_t*x_i+b)\leq0 \end{cases}\\ \therefore min_{w,b}max_\lambda L(w,b,\lambda)=min_{w,b}\{+\infty,\frac{1}{2}w^T*w\}=min\frac{1}{2}w^T*w且约束条件满足
∵maxλL(w,b,λ)={+∞,21wT∗w,if约束不满足时即1−yi(wt∗xi+b)>0if约束满足时即1−yi(wt∗xi+b)≤0∴minw,bmaxλL(w,b,λ)=minw,b{+∞,21wT∗w}=min21wT∗w且约束条件满足
所以:原始问题可以表示为:
求
解
极
小
极
大
值
问
题
:
m
i
n
w
,
b
m
a
x
λ
L
(
w
,
b
,
λ
)
(
λ
≥
0
)
求解极小极大值问题:min_{w,b}max_\lambda L(w,b,\lambda)(\lambda\geq0)
求解极小极大值问题:minw,bmaxλL(w,b,λ)(λ≥0)
1.3 对偶问题
极小极大值转化为对偶问题再求解。
好处:
-
改变算法复杂度. 对偶问题往往更容易求解.(原始问题求解与特征维度相关,对偶问题计算量与样本量相关)
-
转化为对偶问题得到内积的形式, 引入核函数, 进而推广到非线性分类问题.
原始问题对应的对偶问题:
求
解
极
大
极
小
值
问
题
:
m
a
x
λ
m
i
n
w
,
b
L
(
w
,
b
,
λ
)
(
λ
≥
0
)
求解极大极小值问题:max_\lambda min_{w,b}L(w,b,\lambda)(\lambda\geq0)
求解极大极小值问题:maxλminw,bL(w,b,λ)(λ≥0)
原始问题与对偶问题之间关系:原始问题>=对偶问题
证明:
m
a
x
λ
L
(
w
,
b
,
λ
)
≥
L
(
w
,
b
,
λ
)
≥
m
i
n
w
,
b
L
(
w
,
b
,
λ
)
设
P
=
m
a
x
λ
L
(
w
,
b
,
λ
)
;
Q
=
m
i
n
w
,
b
L
(
w
,
b
,
λ
)
P
≥
Q
恒
成
立
m
i
n
w
,
b
P
≥
m
a
x
λ
Q
即
:
m
i
n
w
,
b
m
a
x
λ
L
(
w
,
b
,
λ
)
(
λ
≥
0
)
≥
m
a
x
λ
m
i
n
w
,
b
L
(
w
,
b
,
λ
)
(
λ
≥
0
)
max_\lambda L(w,b,\lambda)\geq L(w,b,\lambda)\geq min_{w,b} L(w,b,\lambda)\\ 设P=max_\lambda L(w,b,\lambda);Q=min_{w,b} L(w,b,\lambda)\\P\geq Q恒成立\\ min_{w,b}P\geq max_\lambda Q\\即:min_{w,b}max_\lambda L(w,b,\lambda)(\lambda\geq0)\geq max_\lambda min_{w,b}L(w,b,\lambda)(\lambda\geq0)
maxλL(w,b,λ)≥L(w,b,λ)≥minw,bL(w,b,λ)设P=maxλL(w,b,λ);Q=minw,bL(w,b,λ)P≥Q恒成立minw,bP≥maxλQ即:minw,bmaxλL(w,b,λ)(λ≥0)≥maxλminw,bL(w,b,λ)(λ≥0)
当原问题为凸优化问题,约束条件线性,满足KKT条件时:原始问题===对偶问题(具体深入了解百度拉格朗日对偶问题,最好先学习拉格朗日因子法,对偶函数,再学习SVM,才能完全理解)
1.4 求解对偶问题
1. 先 求 m i n w , b L ( w , b , λ ) L ( w , b , λ ) = 1 2 w T ∗ w + ∑ i = 0 n λ i [ 1 − y i ( w T ∗ x i + b ) ] ( λ ≥ 0 ) L ( w , b , λ ) = 1 2 w T ∗ w + ∑ i = 0 n λ i [ 1 − y i ( w T ∗ x i + b ) ] = 1 2 w T ∗ w + ∑ i = 0 n λ i − ∑ i = 0 n λ i y i x i w t − ∑ i = 0 n λ i y i b δ L ( w , b , λ ) δ w = w − ∑ i = 0 n λ i x i y i = 0 − − > w = ∑ i = 0 n λ i x i y i δ L ( w , b , λ ) δ b = − ∑ i = 0 n λ i y i = 0 带 入 w 、 b 一 阶 导 m i n w , b L ( w , b , λ ) = − 1 2 w T ∗ w + ∑ i = 0 n λ i = − 1 2 w T ∗ w + ∑ i = 0 n λ i = − 1 2 ∑ i = 0 n ∑ j = 0 n λ i λ j y i y j x i x j + ∑ i = 0 n λ i \begin{array}{l} 1.先求 min_{w,b} L(w,b,\lambda)\\L(w,b,\lambda)=\frac{1}{2}w^T*w+\sum_{i=0}^n\lambda_i[1-y_i(w^T*x_i+b)](\lambda\geq0)\\L(w,b,\lambda)=\frac{1}{2}w^T*w+\sum_{i=0}^n\lambda_i[1-y_i(w^T*x_i+b)]=\frac{1}{2}w^T*w+\sum_{i=0}^n\lambda_i-\sum_{i=0}^n\lambda_iy_ix_iw^t-\sum_{i=0}^n\lambda_iy_ib\\ \frac{\delta L(w,b,\lambda)}{\delta w}=w-\sum_{i=0}^n\lambda_ix_iy_i=0-->w=\sum_{i=0}^n\lambda_ix_iy_i\\ \frac{\delta L(w,b,\lambda)}{\delta b}=-\sum_{i=0}^n\lambda_iy_i=0\\带入w、b一阶导\\min_{w,b} L(w,b,\lambda)=-\frac{1}{2}w^T*w+\sum_{i=0}^n\lambda_i=-\frac{1}{2}w^T*w+\sum_{i=0}^n\lambda_i=-\frac{1}{2}\sum_{i=0}^n\sum_{j=0}^n\lambda_i\lambda_j y_iy_jx_ix_j+\sum_{i=0}^n\lambda_i \end{array} 1.先求minw,bL(w,b,λ)L(w,b,λ)=21wT∗w+∑i=0nλi[1−yi(wT∗xi+b)](λ≥0)L(w,b,λ)=21wT∗w+∑i=0nλi[1−yi(wT∗xi+b)]=21wT∗w+∑i=0nλi−∑i=0nλiyixiwt−∑i=0nλiyibδwδL(w,b,λ)=w−∑i=0nλixiyi=0−−>w=∑i=0nλixiyiδbδL(w,b,λ)=−∑i=0nλiyi=0带入w、b一阶导minw,bL(w,b,λ)=−21wT∗w+∑i=0nλi=−21wT∗w+∑i=0nλi=−21∑i=0n∑j=0nλiλjyiyjxixj+∑i=0nλi
2. 再 求 m a x λ m i n w , b L ( w , b , λ ) m a x λ L ( λ ) = − 1 2 ∑ i = 1 n ∑ j = 1 n λ i λ j y i y j x i ⃗ x j ⃗ + ∑ i = 1 n λ i \begin{array}{l}\hspace{100cm}\\ 2. 再求max_\lambda min_{w,b} L(w,b,\lambda)\\ \begin{matrix}max \\\lambda\end{matrix} L(\lambda)=-\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\lambda_i\lambda_jy_iy_j\vec{x_i}\vec{x_j}+\sum_{i=1}^n\lambda_i \end{array} 2.再求maxλminw,bL(w,b,λ)maxλL(λ)=−21∑i=1n∑j=1nλiλjyiyjxixj+∑i=1nλi
重要结论1:w、b结果与λ相关,λ结果与样本特征内积相关*
1.5 smo(Sequential minimal optimization)快速求解λ
λi的个数与样本量相关,样本量大时,计算量很大,采用计算更快的smo算法。
S
M
O
是
一
种
解
决
此
类
支
持
向
量
机
优
化
问
题
的
迭
代
算
法
。
由
于
目
标
函
数
为
凸
函
数
,
一
般
的
优
化
算
法
都
通
过
梯
度
方
法
一
次
优
化
一
个
变
量
求
解
二
次
规
划
问
题
的
最
大
值
,
但
是
,
对
于
以
上
问
题
,
由
于
限
制
条
件
−
∑
i
=
0
n
λ
i
y
i
=
0
存
在
,
当
某
个
λ
从
λ
o
l
d
更
新
到
λ
n
e
w
时
,
上
述
限
制
条
件
即
被
打
破
。
为
了
克
服
以
上
的
困
难
,
S
M
O
采
用
一
次
更
新
两
个
变
量
的
方
法
。
最
后
根
据
λ
求
出
w
、
b
。
\begin{array}{l} SMO是一种解决此类支持向量机优化问题的迭代算法。由于目标函数为凸函数,\\ 一般的优化算法都通过梯度方法一次优化一个变量求解二次规划问题的最大值,\\ 但是,对于以上问题,由于限制条件 -\sum_{i=0}^n\lambda_iy_i=0存在,\\ 当某个\lambda从 λ^{old}更新到λ^{new}时,上述限制条件即被打破。\\ 为了克服以上的困难,SMO采用一次更新两个变量的方法。最后根据λ求出w、b。 \end{array}
SMO是一种解决此类支持向量机优化问题的迭代算法。由于目标函数为凸函数,一般的优化算法都通过梯度方法一次优化一个变量求解二次规划问题的最大值,但是,对于以上问题,由于限制条件−∑i=0nλiyi=0存在,当某个λ从λold更新到λnew时,上述限制条件即被打破。为了克服以上的困难,SMO采用一次更新两个变量的方法。最后根据λ求出w、b。
5.1 关于λ的最大化问题,转化为最小化问题
m
a
x
λ
L
(
λ
)
=
−
1
2
∑
i
=
1
n
∑
j
=
1
n
λ
i
λ
j
y
i
y
j
x
i
⃗
x
j
⃗
+
∑
i
=
1
n
λ
i
m
i
n
λ
L
(
λ
)
=
1
2
∑
i
=
1
n
∑
j
=
1
n
λ
i
λ
j
y
i
y
j
x
i
⃗
x
j
⃗
−
∑
i
=
1
n
λ
i
已
知
条
件
:
λ
≥
0
;
w
=
∑
i
=
1
n
λ
i
y
i
x
i
(
上
一
步
对
w
求
导
所
得
)
;
∑
i
=
1
n
λ
i
y
i
=
0
(
上
一
步
对
b
求
导
所
得
)
\begin{array}{l}\hspace{100cm}\\ max_\lambda L(\lambda)=-\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\lambda_i\lambda_jy_iy_j\vec{x_i}\vec{x_j}+\sum_{i=1}^n\lambda_i \\ min_\lambda L(\lambda)=\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\lambda_i\lambda_jy_iy_j\vec{x_i}\vec{x_j}-\sum_{i=1}^n\lambda_i\\ 已知条件:\lambda\geq0;\\ w=\sum_{i=1}^n\lambda_iy_ix_i(上一步对w求导所得);\sum_{i=1}^n\lambda_iy_i=0(上一步对b求导所得) \end{array}
maxλL(λ)=−21∑i=1n∑j=1nλiλjyiyjxixj+∑i=1nλiminλL(λ)=21∑i=1n∑j=1nλiλjyiyjxixj−∑i=1nλi已知条件:λ≥0;w=∑i=1nλiyixi(上一步对w求导所得);∑i=1nλiyi=0(上一步对b求导所得)
5.2 设λ1、λ2为变量,其他λ为定值,则:
∵
∑
i
=
1
n
λ
i
y
i
=
0
∴
λ
1
y
1
+
λ
2
y
2
+
∑
i
=
3
n
λ
i
y
i
=
0
设
∑
i
=
3
n
=
−
C
,
则
λ
1
y
1
+
λ
2
y
2
=
C
(
C
为
常
数
)
∴
λ
1
=
(
C
−
λ
2
y
2
)
y
1
(
公
式
3
下
面
会
使
用
)
注
意
y
i
∈
[
1
,
−
1
]
,
y
i
2
=
1
,
消
去
y
1
时
,
要
等
式
两
边
乘
以
y
1
,
不
要
除
\begin{array}{l}\hspace{100cm}\\ \because \sum_{i=1}^n\lambda_iy_i=0\\ \therefore\lambda_1y_1+\lambda_2y_2+\sum_{i=3}^n\lambda_iy_i=0\\ 设\sum_{i=3}^n=-C,则\lambda_1y_1+\lambda_2y_2=C(C为常数)\\ \therefore \lambda_1=(C-\lambda_2y_2)y_1(公式3下面会使用)\\ 注意y_i\in[1,-1],y_i^2=1,消去y_1时,要等式两边乘以y_1,不要除 \end{array}
∵∑i=1nλiyi=0∴λ1y1+λ2y2+∑i=3nλiyi=0设∑i=3n=−C,则λ1y1+λ2y2=C(C为常数)∴λ1=(C−λ2y2)y1(公式3下面会使用)注意yi∈[1,−1],yi2=1,消去y1时,要等式两边乘以y1,不要除
决 策 函 数 : f ( x i ) = w T x i + b ∵ w = ∑ i = 1 n λ i y i x i ∴ f ( x 1 ) = ∑ i = 1 n λ i y i x i T ∗ x 1 + b = λ 1 y 1 x 1 T ∗ x 1 + λ 2 y 2 x 2 T ∗ x 1 + ∑ i = 3 n λ i y i x i T ∗ x 1 + b ∴ f ( x 2 ) = ∑ i = 1 n λ i y i x i T ∗ x 2 + b = λ 1 y 1 x 1 T ∗ x 2 + λ 2 y 2 x 2 T ∗ x 2 + ∑ i = 3 n λ i y i x i T ∗ x 2 + b ∑ i = 3 n λ i y i x i ⃗ . x 1 ⃗ = f ( x 1 ) − λ 1 y 1 x 1 ⃗ . x 1 ⃗ − λ 2 y 2 x 2 ⃗ . x 1 ⃗ − b ( 公 式 1 下 面 会 使 用 ) ∑ i = 3 n λ i y i x i ⃗ . x 2 ⃗ = f ( x 2 ) − λ 1 y 1 x 1 ⃗ . x 2 ⃗ − λ 2 y 2 x 2 ⃗ . x 2 ⃗ − b ( 公 式 2 下 面 会 使 用 ) \begin{array}{l}\hspace{100cm}\\ 决策函数:f(x_i)=w^Tx_i+b\\ \because w=\sum_{i=1}^n\lambda_iy_ix_i\\ \therefore f(x_1)=\sum_{i=1}^n\lambda_iy_ix_i^T*x_1+b=\lambda_1y_1x_1^T*x_1+\lambda_2y_2x_2^T*x_1+\sum_{i=3}^n\lambda_iy_ix_i^T*x_1+b\\ \therefore f(x_2)=\sum_{i=1}^n\lambda_iy_ix_i^T*x_2+b=\lambda_1y_1x_1^T*x_2+\lambda_2y_2x_2^T*x_2+\sum_{i=3}^n\lambda_iy_ix_i^T*x_2+b\\ \sum_{i=3}^n\lambda_iy_i\vec{x_i}.\vec{x_1}=f(x_1)-\lambda_1y_1\vec{x_1}.\vec{x_1}-\lambda_2y_2\vec{x_2}.\vec{x_1}-b(公式1下面会使用)\\ \sum_{i=3}^n\lambda_iy_i\vec{x_i}.\vec{x_2}=f(x_2)-\lambda_1y_1\vec{x_1}.\vec{x_2}-\lambda_2y_2\vec{x_2}.\vec{x_2}-b(公式2下面会使用) \end{array} 决策函数:f(xi)=wTxi+b∵w=∑i=1nλiyixi∴f(x1)=∑i=1nλiyixiT∗x1+b=λ1y1x1T∗x1+λ2y2x2T∗x1+∑i=3nλiyixiT∗x1+b∴f(x2)=∑i=1nλiyixiT∗x2+b=λ1y1x1T∗x2+λ2y2x2T∗x2+∑i=3nλiyixiT∗x2+b∑i=3nλiyixi.x1=f(x1)−λ1y1x1.x1−λ2y2x2.x1−b(公式1下面会使用)∑i=3nλiyixi.x2=f(x2)−λ1y1x1.x2−λ2y2x2.x2−b(公式2下面会使用)
5.3 提取λ1、λ2进行求解
1.
化
简
求
λ
的
代
数
式
m
i
n
λ
L
(
λ
)
=
1
2
∑
i
=
1
n
∑
j
=
1
n
λ
i
λ
j
y
i
y
j
x
i
⃗
x
j
⃗
−
∑
i
=
1
n
λ
i
m
i
n
λ
L
(
λ
1
,
λ
2
)
=
1
2
λ
1
λ
1
y
1
y
1
x
1
⃗
x
1
⃗
+
1
2
λ
1
λ
2
y
1
y
2
x
1
⃗
x
2
⃗
+
1
2
∑
j
=
3
n
λ
1
λ
j
y
1
y
j
x
1
⃗
x
j
⃗
+
1
2
λ
2
λ
1
y
2
y
1
x
2
⃗
x
1
⃗
+
1
2
λ
2
λ
2
y
2
y
2
x
2
⃗
x
2
⃗
+
1
2
∑
j
=
3
n
λ
2
λ
j
y
2
y
j
x
2
⃗
x
j
⃗
+
1
2
∑
i
=
3
n
λ
i
λ
1
y
i
y
1
x
i
⃗
x
1
⃗
+
1
2
∑
i
=
3
n
λ
i
λ
2
y
i
y
2
x
i
⃗
x
2
⃗
+
1
2
∑
i
=
3
n
∑
j
=
3
n
λ
i
λ
j
y
i
y
j
k
i
j
−
λ
1
−
λ
2
−
∑
i
=
3
n
λ
i
1.1
设
x
i
⃗
x
j
⃗
=
k
i
j
m
i
n
λ
L
(
λ
1
,
λ
2
)
=
1
2
λ
1
2
k
11
+
1
2
λ
1
λ
2
y
1
y
2
k
12
+
1
2
∑
j
=
3
n
λ
1
λ
j
y
1
y
j
k
1
j
+
1
2
λ
2
λ
1
y
2
y
1
k
21
+
1
2
λ
2
2
k
22
+
1
2
∑
j
=
3
n
λ
2
λ
j
y
2
y
j
k
2
j
+
1
2
∑
i
=
3
n
λ
i
λ
1
y
i
y
1
k
i
1
+
1
2
∑
i
=
3
n
λ
i
λ
2
y
i
y
2
k
i
2
+
1
2
∑
i
=
3
n
∑
j
=
3
n
λ
i
λ
j
y
i
y
j
k
i
j
−
λ
1
−
λ
2
−
∑
i
=
3
n
λ
i
1.2
删
除
常
量
,
合
并
相
等
项
m
i
n
λ
L
(
λ
1
,
λ
2
)
=
1
2
λ
1
2
k
11
+
2
∗
1
2
λ
1
λ
2
y
1
y
2
k
12
+
1
2
λ
2
2
k
22
+
2
∗
1
2
∑
i
=
3
n
λ
i
λ
1
y
i
y
1
k
i
1
+
2
∗
1
2
∑
i
=
3
n
λ
i
λ
2
y
i
y
2
k
i
2
−
λ
1
−
λ
2
m
i
n
λ
L
(
λ
1
,
λ
2
)
=
1
2
λ
1
2
k
11
+
λ
1
λ
2
y
1
y
2
k
12
+
1
2
λ
2
2
k
22
+
λ
1
y
1
∑
i
=
3
n
λ
i
y
i
k
i
1
+
λ
2
y
2
∑
i
=
3
n
λ
i
y
i
k
i
2
−
λ
1
−
λ
2
2.
带
入
公
式
3
m
i
n
λ
L
(
λ
2
)
=
1
2
(
C
−
λ
2
y
2
)
2
k
11
+
(
C
−
λ
2
y
2
)
λ
2
y
2
k
12
+
1
2
λ
2
2
k
22
+
(
C
−
λ
2
y
2
)
∑
i
=
3
n
λ
i
y
i
k
i
1
+
λ
2
y
2
∑
i
=
3
n
λ
i
y
i
k
i
2
−
(
C
−
λ
2
y
2
)
y
1
−
λ
2
δ
′
L
(
λ
2
)
δ
λ
2
=
−
C
y
2
k
11
+
k
11
λ
2
+
C
y
2
k
12
−
2
k
12
λ
2
+
k
22
λ
2
−
y
2
∑
i
=
3
n
λ
i
y
i
k
i
1
+
y
2
∑
i
=
3
n
λ
i
y
i
k
i
2
+
y
1
y
2
−
1
=
0
k
11
λ
2
−
2
k
12
λ
2
+
k
22
λ
2
=
1
+
C
y
2
k
11
−
C
y
2
k
12
+
y
2
∑
i
=
3
n
λ
i
y
i
k
i
1
−
y
2
∑
i
=
3
n
λ
i
y
i
k
i
2
−
y
1
y
2
(
k
11
−
2
k
12
+
k
22
)
λ
2
=
y
2
(
y
2
+
C
k
11
−
C
k
12
+
∑
i
=
3
n
λ
i
y
i
k
i
1
−
∑
i
=
3
n
λ
i
y
i
k
i
2
−
y
1
)
(
其
中
:
1
⇒
y
2
y
2
)
3.
代
入
公
式
1
、
公
式
2
∑
i
=
3
n
λ
i
y
i
k
i
1
−
∑
i
=
3
n
λ
i
y
i
k
i
2
=
(
f
(
x
1
)
−
λ
1
o
l
d
y
1
x
1
⃗
.
x
1
⃗
−
λ
2
o
l
d
y
2
x
2
⃗
.
x
1
⃗
−
b
)
−
(
f
(
x
2
)
−
λ
1
o
l
d
y
1
x
1
⃗
.
x
2
⃗
−
λ
2
o
l
d
y
2
x
2
⃗
.
x
2
⃗
−
b
)
=
f
(
x
1
)
−
λ
1
o
l
d
y
1
k
11
−
λ
2
o
l
d
y
2
k
21
−
f
(
x
2
)
+
λ
1
o
l
d
y
1
k
12
+
λ
2
o
l
d
y
2
k
22
λ
1
o
l
d
y
1
+
λ
2
o
l
d
y
2
=
C
(
k
11
−
2
k
12
+
k
22
)
λ
2
n
e
w
=
y
2
(
y
2
+
(
λ
1
o
l
d
y
1
+
λ
2
o
l
d
y
2
)
k
11
−
(
λ
1
o
l
d
y
1
+
λ
2
o
l
d
y
2
)
k
12
+
f
(
x
1
)
−
λ
1
o
l
d
y
1
k
11
−
λ
2
o
l
d
y
2
k
21
−
f
(
x
2
)
+
λ
1
o
l
d
y
1
k
12
+
λ
2
o
l
d
y
2
k
22
−
y
1
)
λ
2
n
e
w
=
y
2
[
y
2
−
f
(
x
2
)
−
(
y
1
−
f
(
x
1
)
)
+
λ
2
o
l
d
y
2
(
k
11
−
2
k
12
+
k
22
)
]
k
11
−
2
K
12
+
k
22
=
λ
2
o
l
d
+
y
2
[
y
2
−
f
(
x
2
)
−
(
y
1
−
f
(
x
1
)
]
k
11
−
2
K
12
+
k
22
λ
2
n
e
w
=
λ
2
o
l
d
+
y
2
(
E
2
−
E
1
)
k
11
−
2
K
12
+
k
22
(
E
1
、
E
2
真
实
标
签
与
决
策
函
数
结
果
之
差
)
\begin{array}{l}\hspace{100cm}\\ 1.化简求\lambda的代数式\\ \begin{matrix}min \\\lambda\end{matrix} L(\lambda)=\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\lambda_i\lambda_jy_iy_j\vec{x_i}\vec{x_j}-\sum_{i=1}^n\lambda_i\\ \begin{matrix}min \\\lambda\end{matrix} L(\lambda_1,\lambda_2)=\frac{1}{2}\lambda_1\lambda_1y_1y_1\vec{x_1}\vec{x_1}+\frac{1}{2}\lambda_1\lambda_2y_1y_2\vec{x_1}\vec{x_2}+\frac{1}{2}\sum_{j=3}^n\lambda_1\lambda_jy_1y_j\vec{x_1}\vec{x_j}+ \frac{1}{2}\lambda_2\lambda_1y_2y_1\vec{x_2}\vec{x_1}+\frac{1}{2}\lambda_2\lambda_2y_2y_2\vec{x_2}\vec{x_2}+\frac{1}{2}\sum_{j=3}^n\lambda_2\lambda_jy_2y_j\vec{x_2}\vec{x_j}+\frac{1}{2}\sum_{i=3}^n\lambda_i\lambda_1y_iy_1\vec{x_i}\vec{x_1}+\frac{1}{2}\sum_{i=3}^n\lambda_i\lambda_2y_iy_2\vec{x_i}\vec{x_2}+\frac{1}{2}\sum_{i=3}^n\sum_{j=3}^n\lambda_i\lambda_jy_iy_jk_{ij} -\lambda_1-\lambda_2-\sum_{i=3}^n\lambda_i\\ \\ 1.1 设\vec{x_i}\vec{x_j}=k_{ij}\\ \begin{matrix}min \\\lambda\end{matrix} L(\lambda_1,\lambda_2)=\frac{1}{2}\lambda_1^2k_{11}+\frac{1}{2}\lambda_1\lambda_2y_1y_2k_{12}+\frac{1}{2}\sum_{j=3}^n\lambda_1\lambda_jy_1y_jk_{1j}+\frac{1}{2}\lambda_2\lambda_1y_2y_1k_{21}+\frac{1}{2}\lambda_2^2k_{22}+\frac{1}{2}\sum_{j=3}^n\lambda_2\lambda_jy_2y_jk_{2j}+\frac{1}{2}\sum_{i=3}^n\lambda_i\lambda_1y_iy_1k_{i1}+\frac{1}{2}\sum_{i=3}^n\lambda_i\lambda_2y_iy_2k_{i2}+\frac{1}{2}\sum_{i=3}^n\sum_{j=3}^n\lambda_i\lambda_jy_iy_jk_{ij} -\lambda_1-\lambda_2-\sum_{i=3}^n\lambda_i\\ \\ 1.2 删除常量,合并相等项\\ \begin{matrix}min \\\lambda\end{matrix} L(\lambda_1,\lambda_2)=\frac{1}{2}\lambda_1^2k_{11}+2*\frac{1}{2}\lambda_1\lambda_2y_1y_2k_{12}+\frac{1}{2}\lambda_2^2k_{22}+2*\frac{1}{2}\sum_{i=3}^n\lambda_i\lambda_1y_iy_1k_{i1}+2*\frac{1}{2}\sum_{i=3}^n\lambda_i\lambda_2y_iy_2k_{i2} -\lambda_1-\lambda_2\\ \begin{matrix}min \\\lambda\end{matrix} L(\lambda_1,\lambda_2)=\frac{1}{2}\lambda_1^2k_{11}+\lambda_1\lambda_2y_1y_2k_{12}+\frac{1}{2}\lambda_2^2k_{22}+\lambda_1y_1\sum_{i=3}^n\lambda_iy_ik_{i1}+\lambda_2y_2\sum_{i=3}^n\lambda_iy_ik_{i2} -\lambda_1-\lambda_2\\ \\ 2.带入公式3\\ \begin{matrix}min \\\lambda\end{matrix} L(\lambda_2)=\frac{1}{2}(C-\lambda_2y_2)^2k_{11}+(C-\lambda_2y_2)\lambda_2y_2k_{12}+\frac{1}{2}\lambda_2^2k_{22}+(C-\lambda_2y_2)\sum_{i=3}^n\lambda_iy_ik_{i1}+\lambda_2y_2\sum_{i=3}^n\lambda_iy_ik_{i2} -(C-\lambda_2y_2)y_1-\lambda_2\\ \frac{\delta'L(\lambda_2)}{\delta \lambda_2}=-Cy_2k_{11}+k_{11}\lambda_2+Cy_2k_{12}-2k_{12}\lambda_2+k_{22}\lambda_2-y_2\sum_{i=3}^n\lambda_iy_ik_{i1}+y_2\sum_{i=3}^n\lambda_iy_ik_{i2}+y_1y_2-1=0\\ k_{11}\lambda_2-2k_{12}\lambda_2+k_{22}\lambda_2=1+Cy_2k_{11}-Cy_2k_{12}+y_2\sum_{i=3}^n\lambda_iy_ik_{i1}-y_2\sum_{i=3}^n\lambda_iy_ik_{i2}-y_1y_2\\ (k_{11}-2k_{12}+k_{22})\lambda_2=y_2(y_2+Ck_{11}-Ck_{12}+\sum_{i=3}^n\lambda_iy_ik_{i1}-\sum_{i=3}^n\lambda_iy_ik_{i2}-y_1)(其中:1\Rightarrow y_2y_2)\\ \\ 3.代入公式1、公式2\\ \sum_{i=3}^n\lambda_iy_ik_{i1}-\sum_{i=3}^n\lambda_iy_ik_{i2}=(f(x_1)-\lambda_1^{old}y_1\vec{x_1}.\vec{x_1}-\lambda_2^{old}y_2\vec{x_2}.\vec{x_1}-b)-(f(x_2)-\lambda_1^{old}y_1\vec{x_1}.\vec{x_2}-\lambda_2^{old}y_2\vec{x_2}.\vec{x_2}-b)=f(x_1)-\lambda_1^{old}y_1k_{11}-\lambda_2^{old}y_2k_{21}-f(x_2)+\lambda_1^{old}y_1k_{12}+\lambda_2^{old}y_2k_{22}\\ \lambda_1^{old}y_1+\lambda_2^{old}y_2=C\\ (k_{11}-2k_{12}+k_{22})\lambda_2^{new}=y_2(y_2+(\lambda_1^{old}y_1+\lambda_2^{old}y_2)k_{11}-(\lambda_1^{old}y_1+\lambda_2^{old}y_2)k_{12}+f(x_1)-\lambda_1^{old}y_1k_{11}-\lambda_2^{old}y_2k_{21}-f(x_2)+\lambda_1^{old}y_1k_{12}+\lambda_2^{old}y_2k_{22}-y_1)\\ \lambda_2^{new}=\frac{y_2[y_2-f(x_2)-(y_1-f(x_1))+\lambda_2^{old}y_2(k_{11}-2k_{12}+k_{22})]}{k_{11}-2K_{12}+k_{22}}=\lambda_2^{old}+\frac{y_2[y2-f(x_2)-(y_1-f(x_1)]}{k_{11}-2K_{12}+k_{22}}\\\\ \lambda_2^{new}=\lambda_2^{old}+\frac{y_2(E_2-E_1)}{k_{11}-2K_{12}+k_{22}} (E_1、E_2真实标签与决策函数结果之差) \end{array}
1.化简求λ的代数式minλL(λ)=21∑i=1n∑j=1nλiλjyiyjxixj−∑i=1nλiminλL(λ1,λ2)=21λ1λ1y1y1x1x1+21λ1λ2y1y2x1x2+21∑j=3nλ1λjy1yjx1xj+21λ2λ1y2y1x2x1+21λ2λ2y2y2x2x2+21∑j=3nλ2λjy2yjx2xj+21∑i=3nλiλ1yiy1xix1+21∑i=3nλiλ2yiy2xix2+21∑i=3n∑j=3nλiλjyiyjkij−λ1−λ2−∑i=3nλi1.1设xixj=kijminλL(λ1,λ2)=21λ12k11+21λ1λ2y1y2k12+21∑j=3nλ1λjy1yjk1j+21λ2λ1y2y1k21+21λ22k22+21∑j=3nλ2λjy2yjk2j+21∑i=3nλiλ1yiy1ki1+21∑i=3nλiλ2yiy2ki2+21∑i=3n∑j=3nλiλjyiyjkij−λ1−λ2−∑i=3nλi1.2删除常量,合并相等项minλL(λ1,λ2)=21λ12k11+2∗21λ1λ2y1y2k12+21λ22k22+2∗21∑i=3nλiλ1yiy1ki1+2∗21∑i=3nλiλ2yiy2ki2−λ1−λ2minλL(λ1,λ2)=21λ12k11+λ1λ2y1y2k12+21λ22k22+λ1y1∑i=3nλiyiki1+λ2y2∑i=3nλiyiki2−λ1−λ22.带入公式3minλL(λ2)=21(C−λ2y2)2k11+(C−λ2y2)λ2y2k12+21λ22k22+(C−λ2y2)∑i=3nλiyiki1+λ2y2∑i=3nλiyiki2−(C−λ2y2)y1−λ2δλ2δ′L(λ2)=−Cy2k11+k11λ2+Cy2k12−2k12λ2+k22λ2−y2∑i=3nλiyiki1+y2∑i=3nλiyiki2+y1y2−1=0k11λ2−2k12λ2+k22λ2=1+Cy2k11−Cy2k12+y2∑i=3nλiyiki1−y2∑i=3nλiyiki2−y1y2(k11−2k12+k22)λ2=y2(y2+Ck11−Ck12+∑i=3nλiyiki1−∑i=3nλiyiki2−y1)(其中:1⇒y2y2)3.代入公式1、公式2∑i=3nλiyiki1−∑i=3nλiyiki2=(f(x1)−λ1oldy1x1.x1−λ2oldy2x2.x1−b)−(f(x2)−λ1oldy1x1.x2−λ2oldy2x2.x2−b)=f(x1)−λ1oldy1k11−λ2oldy2k21−f(x2)+λ1oldy1k12+λ2oldy2k22λ1oldy1+λ2oldy2=C(k11−2k12+k22)λ2new=y2(y2+(λ1oldy1+λ2oldy2)k11−(λ1oldy1+λ2oldy2)k12+f(x1)−λ1oldy1k11−λ2oldy2k21−f(x2)+λ1oldy1k12+λ2oldy2k22−y1)λ2new=k11−2K12+k22y2[y2−f(x2)−(y1−f(x1))+λ2oldy2(k11−2k12+k22)]=λ2old+k11−2K12+k22y2[y2−f(x2)−(y1−f(x1)]λ2new=λ2old+k11−2K12+k22y2(E2−E1)(E1、E2真实标签与决策函数结果之差)
重要结论2:
λ
2
n
e
w
=
λ
2
o
l
d
+
y
2
(
E
2
−
E
1
)
k
11
−
2
K
12
+
k
22
λ
i
更
新
只
与
真
实
标
签
y
i
、
真
实
标
签
y
i
与
预
测
值
f
(
x
i
)
差
值
和
样
本
x
i
x
j
内
积
相
关
\lambda_2^{new}=\lambda_2^{old}+\frac{y_2(E_2-E_1)}{k_{11}-2K_{12}+k_{22}}\\ \lambda_i更新只与真实标签y_i、真实标签y_i与预测值f(x_i)差值和样本x_ix_j内积相关
λ2new=λ2old+k11−2K12+k22y2(E2−E1)λi更新只与真实标签yi、真实标签yi与预测值f(xi)差值和样本xixj内积相关
1.6 核函数
6.1 分类中问题
有 些 分 类 问 题 不 是 线 性 可 分 的 ( 如 左 图 异 或 问 题 ) , 进 行 高 维 映 射 后 ( 右 图 ) ( x 1 , x 2 ) − − > ( x 1 , x 2 , x 1 ∗ x 2 ) 线 性 可 分 。 \begin{array}{l}有些分类问题不是线性可分的(如左图异或问题), \\进行高维映射后(右图) (x_1,x_2)--> (x_1,x_2,x_1*x_2)\\线性可分。 \end{array} 有些分类问题不是线性可分的(如左图异或问题),进行高维映射后(右图)(x1,x2)−−>(x1,x2,x1∗x2)线性可分。
对偶问题求λ的极值亦随之变化。
m
i
n
λ
L
(
λ
)
=
1
2
∑
i
=
1
n
∑
j
=
1
n
λ
i
λ
j
y
i
y
j
x
i
⃗
x
j
⃗
−
∑
i
=
1
n
λ
i
\begin{matrix}min \\\lambda\end{matrix} L(\lambda)=\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\lambda_i\lambda_jy_iy_j\vec{x_i}\vec{x_j}-\sum_{i=1}^n\lambda_i
minλL(λ)=21i=1∑nj=1∑nλiλjyiyjxixj−i=1∑nλi
− − > m i n λ L ( λ ) = 1 2 ∑ i = 1 n ∑ j = 1 n λ i λ j y i y j ϕ ( x i ⃗ ) ϕ ( x j ⃗ ) − ∑ i = 1 n λ i ϕ ( X ) 是 样 本 X 的 高 维 映 射 函 数 注 : 缺 陷 样 本 进 行 高 维 映 射 后 , 可 以 解 决 线 性 不 可 分 问 题 , 但 计 算 量 大 大 增 加 ( 需 先 高 维 映 射 再 求 样 本 点 内 积 ) --> \begin{matrix}min \\\lambda\end{matrix} L(\lambda)=\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\lambda_i\lambda_jy_iy_j\phi(\vec{x_i})\phi(\vec{x_j})-\sum_{i=1}^n\lambda_i \\ \phi(X)是样本X的高维映射函数 \\ 注:缺陷样本进行高维映射后,可以解决线性不可分问题,但计算量大大增加(需先高维映射再求样本点内积) −−>minλL(λ)=21i=1∑nj=1∑nλiλjyiyjϕ(xi)ϕ(xj)−i=1∑nλiϕ(X)是样本X的高维映射函数注:缺陷样本进行高维映射后,可以解决线性不可分问题,但计算量大大增加(需先高维映射再求样本点内积)
6.2 核函数作用 :将高维特征的计算转化到低维计算
样
本
1
:
(
x
1
,
x
2
)
−
−
>
(
x
1
2
,
x
2
2
,
2
x
1
x
2
)
样
本
2
:
(
z
1
,
z
2
)
−
−
>
(
z
1
2
,
z
2
2
,
2
z
1
z
2
)
ϕ
(
X
)
ϕ
(
Z
)
=
x
1
2
z
1
2
+
x
2
2
z
2
2
+
2
x
1
x
2
z
2
z
2
K
<
X
,
Z
>
(
核
函
数
)
=
(
X
∗
Z
)
2
=
x
1
2
z
1
2
+
x
2
2
z
2
2
+
2
x
2
x
2
z
1
z
2
ϕ
(
x
)
ϕ
(
z
)
=
K
<
X
,
Z
>
特
征
高
维
映
射
后
,
再
求
内
积
和
直
接
使
用
核
函
数
带
入
样
本
点
求
解
结
果
一
样
则
求
λ
最
优
解
问
题
,
可
改
写
如
下
:
m
i
n
λ
L
(
λ
)
=
1
2
∑
i
=
1
n
∑
j
=
1
n
λ
i
λ
j
y
i
y
j
K
<
x
i
⃗
,
x
j
⃗
>
−
∑
i
=
1
n
λ
i
核
函
数
巧
妙
的
避
过
了
样
本
特
征
先
进
行
高
维
映
射
,
再
求
内
积
的
过
程
,
只
需
要
将
核
函
数
K
带
入
最
优
化
问
题
求
解
即
可
\begin{array}{l} 样本1:(x_1,x_2) -->(x_1^2,x_2^2,\sqrt{2}x_1x_2)\\ 样本2:(z_1,z_2) -->(z_1^2,z_2^2,\sqrt{2}z_1z_2)\\ \phi(X)\phi(Z)=x_1^2z_1^2+x_2^2z_2^2+2x_1x_2z_2z_2\\ K<X,Z>(核函数)=(X*Z)^2=x_1^2z_1^2+x_2^2z_2^2+2x_2x_2z_1z_2\\ \\ \phi(x)\phi(z)=K<X,Z>\\ 特征高维映射后,再求内积和直接使用核函数带入样本点求解结果一样\\ \\ 则求λ最优解问题,可改写如下: \begin{matrix}min \\\lambda\end{matrix} L(\lambda)=\frac{1}{2}\sum_{i=1}^n\sum_{j=1}^n\lambda_i\lambda_jy_iy_jK<\vec{x_i},\vec{x_j}>-\sum_{i=1}^n\lambda_i \\核函数巧妙的避过了样本特征先进行高维映射,再求内积的过程,只需要将核函数K带入最优化问题求解即可 \end{array}
样本1:(x1,x2)−−>(x12,x22,2x1x2)样本2:(z1,z2)−−>(z12,z22,2z1z2)ϕ(X)ϕ(Z)=x12z12+x22z22+2x1x2z2z2K<X,Z>(核函数)=(X∗Z)2=x12z12+x22z22+2x2x2z1z2ϕ(x)ϕ(z)=K<X,Z>特征高维映射后,再求内积和直接使用核函数带入样本点求解结果一样则求λ最优解问题,可改写如下:minλL(λ)=21∑i=1n∑j=1nλiλjyiyjK<xi,xj>−∑i=1nλi核函数巧妙的避过了样本特征先进行高维映射,再求内积的过程,只需要将核函数K带入最优化问题求解即可
6.3 常用核函数(sklearn)
1.
线
性
核
:
处
理
线
性
问
题
k
e
r
n
e
l
=
′
l
i
n
e
a
r
′
K
<
x
,
y
>
=
x
T
∗
y
=
x
.
y
2.
多
项
式
核
:
处
理
偏
线
性
问
题
k
e
r
n
e
l
=
′
p
o
l
y
′
K
<
x
,
y
>
=
(
γ
(
x
.
y
)
+
Υ
)
d
3.
双
曲
正
切
核
:
处
理
非
线
性
问
题
k
e
r
n
e
l
=
′
s
i
g
m
i
o
d
′
K
<
x
,
y
>
=
t
a
n
h
(
γ
(
x
.
y
)
+
Υ
)
4.
高
斯
径
向
基
:
处
理
偏
非
线
性
问
题
(
s
k
l
e
a
r
n
默
认
)
k
e
r
n
e
l
=
′
r
b
f
′
K
<
x
,
y
>
=
e
−
γ
∣
x
−
y
∣
2
,
γ
>
0
高
斯
核
函
数
参
数
γ
理
解
:
设
d
为
两
个
样
本
点
高
维
映
射
后
的
距
离
;
ϕ
(
x
)
为
映
射
函
数
d
=
∣
ϕ
(
x
1
)
−
ϕ
(
x
2
)
∣
2
=
ϕ
(
x
1
)
ϕ
(
x
1
)
+
ϕ
(
x
2
)
ϕ
(
x
2
)
−
2
ϕ
(
x
1
)
ϕ
(
x
2
)
=
e
−
γ
∣
x
1
−
x
1
∣
2
+
e
−
γ
∣
x
2
−
x
2
∣
2
−
2
e
−
γ
∣
x
1
−
x
2
∣
2
d
=
2
−
2
e
−
γ
∣
x
1
−
x
2
∣
2
=
{
2
−
2
0
=
0
,
i
f
γ
趋
近
于
0
时
2
−
2
e
−
∞
=
2
,
i
f
γ
趋
近
于
+
∞
时
当
γ
趋
近
于
0
时
,
d
=
2
−
2
∗
e
0
=
0
,
样
本
间
距
离
趋
近
0
,
不
易
区
分
,
易
欠
拟
合
;
当
γ
趋
近
于
+
∞
时
,
d
=
2
−
2
∗
e
−
∞
=
2
,
样
本
间
距
离
变
大
,
更
易
区
分
,
容
易
过
拟
合
其
中
:
k
e
r
n
e
l
、
d
、
γ
、
Υ
分
别
对
应
s
v
c
中
参
数
k
e
r
n
e
l
、
d
e
g
r
e
e
、
g
a
m
m
a
、
c
o
f
0
(
选
取
不
同
核
函
数
需
调
优
不
同
的
参
数
)
\begin{array}{l} 1.线性核: 处理线性问题\\ kernel='linear'\\ K<x,y>=x^T*y=x.y\\ \\ 2.多项式核:处理偏线性问题\\ kernel='poly'\\ K<x,y>=(\gamma(x.y)+\Upsilon)^d\\ \\ 3.双曲正切核:处理非线性问题\\ kernel='sigmiod'\\ K<x,y>=tanh(\gamma(x.y)+\Upsilon)\\ \\ 4.高斯径向基:处理偏非线性问题(sklearn 默认)\\ kernel='rbf'\\ K<x,y>=e^{-\gamma|x-y|^2},\gamma>0\\ 高斯核函数参数\gamma理解:\\ 设d为两个样本点高维映射后的距离;\phi(x)为映射函数\\ d=|\phi(x_1)-\phi(x_2)|^2=\phi(x_1)\phi(x_1)+\phi(x_2)\phi(x_2)-2\phi(x_1)\phi(x_2)\\ =e^{-\gamma|x_1-x_1|^2}+e^{-\gamma|x_2-x_2|^2}-2e^{-\gamma|x_1-x_2|^2}\\ d=2-2e^{-\gamma|x_1-x_2|^2}=\begin{cases} 2-2^0=0, & if \gamma 趋近于0时 \\ 2-2e^{-∞}=2, & if \gamma 趋近于+∞时 \end{cases}\\ 当\gamma趋近于0时,d=2-2*e^0=0,样本间距离趋近0,不易区分,易欠拟合;\\ 当\gamma趋近于+∞时,d=2-2*e^{-∞}=2,样本间距离变大,更易区分,容易过拟合\\ \\ 其中:kernel、d、\gamma、\Upsilon分别对应svc中参数kernel、degree、gamma、cof0(选取不同核函数需调优不同的参数) \end{array}
1.线性核:处理线性问题kernel=′linear′K<x,y>=xT∗y=x.y2.多项式核:处理偏线性问题kernel=′poly′K<x,y>=(γ(x.y)+Υ)d3.双曲正切核:处理非线性问题kernel=′sigmiod′K<x,y>=tanh(γ(x.y)+Υ)4.高斯径向基:处理偏非线性问题(sklearn默认)kernel=′rbf′K<x,y>=e−γ∣x−y∣2,γ>0高斯核函数参数γ理解:设d为两个样本点高维映射后的距离;ϕ(x)为映射函数d=∣ϕ(x1)−ϕ(x2)∣2=ϕ(x1)ϕ(x1)+ϕ(x2)ϕ(x2)−2ϕ(x1)ϕ(x2)=e−γ∣x1−x1∣2+e−γ∣x2−x2∣2−2e−γ∣x1−x2∣2d=2−2e−γ∣x1−x2∣2={2−20=0,2−2e−∞=2,ifγ趋近于0时ifγ趋近于+∞时当γ趋近于0时,d=2−2∗e0=0,样本间距离趋近0,不易区分,易欠拟合;当γ趋近于+∞时,d=2−2∗e−∞=2,样本间距离变大,更易区分,容易过拟合其中:kernel、d、γ、Υ分别对应svc中参数kernel、degree、gamma、cof0(选取不同核函数需调优不同的参数)
1.7 软间隔
如图:不是每个样本都能被正确划分。
软间隔是处理线性不可分问题、减少噪点影响时引入的方法,其通过牺牲某些点必须正确划分的限制,以换取更大分割间隔的方法,其特点在分类时为了整体效果会存在错误点。
7.1 软间隔处理方案
设
分
类
损
失
变
量
ξ
ξ
i
≥
1
−
y
i
(
w
x
i
+
b
)
(
ξ
≥
0
)
ξ
i
≥
m
a
x
{
0
,
1
−
y
i
(
w
x
i
+
b
)
}
\begin{array}{l} 设分类损失变量\xi\\ \xi_i\geq1-y_i(wx_i+b)(\xi\geq0)\\ \xi_i\geq max\{0,1-y_i(wx_i+b)\}\\ \end{array}
设分类损失变量ξξi≥1−yi(wxi+b)(ξ≥0)ξi≥max{0,1−yi(wxi+b)}
如 图 : 当 y i ( w x i + b ) ≥ 1 即 分 类 正 确 且 样 本 在 虚 线 超 平 面 之 外 时 , 损 失 ξ i 为 0 ; 当 1 > y i ( w x i + b ) ≥ 0 即 分 类 正 确 但 样 本 在 虚 线 超 平 面 与 决 策 边 界 之 间 时 , 损 失 ξ i ∈ ( 0 , 1 ) ; 如 图 , 当 y i ( w x i + b ) < 0 即 样 本 分 类 错 误 时 , 损 失 ξ i ≥ 1 。 原 始 问 题 求 解 最 大 几 何 间 隔 , 添 加 损 失 项 如 下 : m i n 1 2 w ⃗ 2 + C ∑ i = 1 n ξ i 参 数 C 惩 罚 系 数 越 大 , 要 求 尽 量 全 部 分 类 正 确 , 且 在 虚 线 超 平 面 之 外 , 容 易 造 成 过 拟 合 \begin{array}{l} 如图:\\ 当y_i(wx_i+b)\geq1即分类正确且样本在虚线超平面之外时,损失\xi_i为0;\\ 当1> y_i(wx_i+b)\geq0即分类正确但样本在虚线超平面与决策边界之间时,损失\xi_i \in(0,1);\\ 如图,当y_i(wx_i+b)< 0即样本分类错误时,损失\xi_i\geq 1。\\ \\ 原始问题求解最大几何间隔,添加损失项如下:\\ min\frac{1}{2}\vec{w}^2+C\sum_{i=1}^n\xi_i\\ 参数C惩罚系数越大,要求尽量全部分类正确,且在虚线超平面之外,容易造成过拟合 \end{array} 如图:当yi(wxi+b)≥1即分类正确且样本在虚线超平面之外时,损失ξi为0;当1>yi(wxi+b)≥0即分类正确但样本在虚线超平面与决策边界之间时,损失ξi∈(0,1);如图,当yi(wxi+b)<0即样本分类错误时,损失ξi≥1。原始问题求解最大几何间隔,添加损失项如下:min21w2+C∑i=1nξi参数C惩罚系数越大,要求尽量全部分类正确,且在虚线超平面之外,容易造成过拟合
2. 案例
-
导入模块
import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import make_classification,make_moons,make_circles from sklearn.svm import SVC from sklearn.preprocessing import StandardScaler
-
创建样本数据
# 生成测试数据 data1 = make_classification( n_redundant=0,n_repeated=0,n_classes=2,n_clusters_per_class=1,weights=None, random_state=1) # 生成月亮型样本数据 data2 = make_moons(random_state=1) # 生成环形数据 data3 = make_circles(random_state=1) scaler = StandardScaler() x1=scaler.fit_transform(data1[0]);y1=data1[1] x2=scaler.fit_transform(data2[0]);y2=data2[1] x3=scaler.fit_transform(data3[0]);y3=data3[1] plt.figure(figsize=(12,5)) plt.subplot(1,3,1) plt.scatter(x=x1[y1==0,0],y=x1[y1==0,1],c='r') plt.scatter(x=x1[y1==1,0],y=x1[y1==1,1],c='b') plt.xticks([]);plt.yticks([]) # 绘制月亮型数据图像 plt.subplot(1,3,2) plt.scatter(x=x2[y2==0,0],y=x2[y2==0,1],c='r') plt.scatter(x=x2[y2==1,0],y=x2[y2==1,1],c='b') plt.xticks([]);plt.yticks([]) # 绘制环形数据图像 plt.subplot(1,3,3) plt.scatter(x=x3[y3==0,0],y=x3[y3==0,1],c='r') plt.scatter(x=x3[y3==1,0],y=x3[y3==1,1],c='b') plt.xticks([]);plt.yticks([])
-
绘制svm分类决策边界
x = np.arange(-1.5,1.5,0.1) y = np.arange(-1.5,1.5,0.1) x,y = np.meshgrid(x,y) # 样本数据1,样本可分使用 'linear'线性核函数 svc1 = SVC(kernel='linear') svc1.fit(x1,y1) def1 = svc1.decision_function z1 = def1(np.hstack((x.reshape(-1,1),y.reshape(-1,1)))).reshape(30,30) # 样本数据2,样本非线性 使用偏非线性'rbf'高斯核函数 svc2 = SVC(kernel='rbf',gamma=2) svc2.fit(x2,y2) def2 = svc2.decision_function z2 = def2(np.hstack((x.reshape(-1,1),y.reshape(-1,1)))).reshape(30,30) # 样本数据1,样本非线性 使用偏非线性'rbf'高斯核函数 svc3 = SVC(kernel='rbf') svc3.fit(x3,y3) def3 = svc3.decision_function z3 = def3(np.hstack((x.reshape(-1,1),y.reshape(-1,1)))).reshape(30,30) # 绘制决策边界 plt.figure(figsize=(12,5)) plt.subplot(1,3,1) plt.scatter(x=x1[y1==0,0],y=x1[y1==0,1],c='r') plt.scatter(x=x1[y1==1,0],y=x1[y1==1,1],c='b') plt.contour(x,y,z1,levels=[0]) plt.xticks([]);plt.yticks([]) # 绘制月亮型数据图像 plt.subplot(1,3,2) plt.scatter(x=x2[y2==0,0],y=x2[y2==0,1],c='r') plt.scatter(x=x2[y2==1,0],y=x2[y2==1,1],c='b') plt.contour(x,y,z2,levels=[0]) plt.xticks([]);plt.yticks([]) # 绘制环形数据图像 plt.subplot(1,3,3) plt.scatter(x=x3[y3==0,0],y=x3[y3==0,1],c='r') plt.scatter(x=x3[y3==1,0],y=x3[y3==1,1],c='b') plt.contour(x,y,z3,levels=[0]) plt.xticks([]);plt.yticks([])