一.间隔与支持向量
- 最优超平面(直线): 对训练样本局部扰动的“容忍性”最好,即最具鲁棒性。
1.最优平面公式推导
最优超平面: WTXi+b=0
正类: WTXi+b≥+1,yi=+1
负类: WTXi+b≥-1,yi=-1
最小距离推导
γ = 2 W 1 2 ∗ W 2 2 = 2 ∣ ∣ W ∣ ∣ γ=\frac{2}{\sqrt{{W_1^2}*{W_2^2}}}=\frac{2}{||W||} γ=W12∗W222=∣∣W∣∣2
-
W 1 = ( W T X i + b = − 1 ) − ( W T X i + b = 0 ) W_1=(W^TX_i+b=-1)-(W^TX_i+b=0) W1=(WTXi+b=−1)−(WTXi+b=0)
-
W 2 = ( W T X i + b = 1 ) − ( W T X i + b = 0 ) W_2=(W^TX_i+b=1)-(W^TX_i+b=0) W2=(WTXi+b=1)−(WTXi+b=0)
-
W = ( W T X i + b = 1 ) − ( W T X i + b = − 1 ) W=(W^TX_i+b=1)-(W^TX_i+b=-1) W=(WTXi+b=1)−(WTXi+b=−1)
max:
γ = 2 ∣ ∣ W ∣ ∣ γ=\frac{2}{||W||} γ=∣∣W∣∣2
s . t:
y i ( w T x i + b ) > 1 y_i(w^Tx_i+b)>1 yi(wTxi+b)>1
最优平面求解公式:
min:
γ = 1 2 ∗ ∣ ∣ W ∣ ∣ γ=\frac{1}{2}*||W|| γ=21∗∣∣W∣∣
s . t:
y i ( w T x i + b ) > 1 y_i(w^Tx_i+b)>1 yi(wTxi+b)>1
二.公式求解
1.求解
f = 2 x 1 2 + 3 x 2 2 + 7 x 3 2 f=2x_1^2+3x_2^2+7x_3^2 f=2x12+3x22+7x32
的最小值.其中
2 x 1 + x 2 = 1 , 2 x 2 + 3 x 3 = 2 2x_1+x_2=1,2x_2+3x_3=2 2x1+x2=1,2x2+3x3=2
2.统一自变量
x 1 = 1 − x 2 2 x_1=\frac{1-x_2}{2} x1=21−x2
x 3 = 2 − 2 x 2 3 x_3=\frac{2-2x_2}{3} x3=32−2x2
f = 2 ( 1 − x 2 2 ) 2 + 3 x 2 2 + 7 ( 2 − 2 x 2 3 ) 2 f=2(\frac{1-x_2}{2})^2+3x_2^2+7(\frac{2-2x_2}{3})^2 f=2(21−x2)2+3x22+7(32−2x2)2
3.求最小值
令
α f α x 2 = = 0 \frac{αf}{αx_2}==0 αx2αf==0
将
x 2 x_2 x2
的值代入方程
5.凸函数
凸函数: 开口朝向(上或下)
数学条件:
f ( x 1 ) + f ( x 2 ) 2 > f x 1 + x 2 2 , f ( x 1 ) + f ( x 2 ) 2 < f x 1 + x 2 2 \frac{f(x_1)+f(x_2)}{2}>f\frac{x_1+x_2}{2},\frac{f(x_1)+f(x_2)}{2}<f\frac{x_1+x_2}{2} 2f(x1)+f(x2)>f2x1+x2,2f(x1)+f(x2)<f2x1+x2
6.拉格朗日乘值法
拉格朗日乘公式推导,设
α 1 , α 2 α_1,α_2 α1,α2
为拉格朗日乘子
- 1.公式转换
$$
f=2x_12+3x_22+7x_3^2+α_1(2x_1+x_2-1)+α_2(2x_2+3x_3-2)
$$
-
2.公式计算
-
x1:
δ f δ x 1 = 4 x 1 + 2 α 1 = 0 → x 1 = − 0.5 α 1 \frac{δf}{δx_1}=4x_1+2α_1=0 → x_1=-0.5 α_1 δx1δf=4x1+2α1=0→x1=−0.5α1
-
x2:
δ f δ x 2 = 6 x 2 + α 1 + 2 α 2 = 0 → x 2 = α 1 + 2 α 2 6 \frac{δf}{δx_2}=6x_2+α_1+2α_2=0 → x_2=\frac{α_1+2α_2}{6} δx2δf=6x2+α1+2α2=0→x2=6α1+2α2
-
x3:
δ f δ x 3 = 14 x 3 + 3 α 2 = 0 → x 3 = − 3 α 2 14 \frac{δf}{δx_3}=14x_3+3α_2=0 → x_3=-\frac{3α_2}{14} δx3δf=14x3+3α2=0→x3=−143α2
-
-
结果:
α 1 = − 0.39 , α 2 = − 1.63 α_1=-0.39,α_2=-1.63 α1=−0.39,α2=−1.63
三.优化
min:
γ = 1 2 ∣ ∣ W ∣ ∣ 2 = 1 2 ( W 1 2 + W 2 2 ) γ=\frac{1}{2}||W||^2=\frac{1}{2}(W_1^2+W_2^2) γ=21∣∣W∣∣2=21(W12+W22)
s . t:
y i ( w T x i + b ) ≥ 1 y_i(w^Tx_i+b)≥1 yi(wTxi+b)≥1
1.拉格朗日优化
引入α得
$$
L(w,b,α)=\frac{1}{2}||w||2+\sum_{i=1}{m}{α_i(1-y_i(w^Tx_i+b))}
$$
令
w w w
求偏导:
∑ i = 1 m α i y i x i \sum_{i=1}^{m}{α_iy_ix_i} ∑i=1mαiyixi
,令
b b b
求偏导:
∑ i = 1 m α i y i \sum_{i=1}^{m}{α_iy_i} ∑i=1mαiyi
2.对偶问题求αi(SMO算法)
max:
w ( α ) = L ( w , b , a ) = ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j w(α)=L(w,b,a)=\sum_{i=1}^{m}{α_i}-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}{α_iα_jy_iy_jx_i^Tx_j} w(α)=L(w,b,a)=∑i=1mαi−21∑i=1m∑j=1mαiαjyiyjxiTxj
s . t.:
∑ j = 1 m α i y i = = 0 ( α i j > 0 ) \sum_{j=1}^{m}{α_iy_i}==0(α_{ij}>0) ∑j=1mαiyi==0(αij>0)
最优超平面:
f ( x ) = ( ∑ i = 1 m α i y i x i ) T x + b f(x)=(\sum_{i=1}^{m}{α_iy_ix_i})^Tx+b f(x)=(∑i=1mαiyixi)Tx+b
-
**
∑ i = 1 m α i y i x i \sum_{i=1}^{m}{α_iy_ix_i} ∑i=1mαiyixi
结合
f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b
四.核函数
线性不可分问题(找不到最优平面)
1.升维操作
2.参数升维表达
Φ ( x ) Φ(x) Φ(x)
表示
x x x
映射在高维空间的
3.最优平面公式:
f ( x ) = w T Φ ( x ) + b f(x)=w^TΦ(x)+b f(x)=wTΦ(x)+b
min:
γ = 1 2 ∣ ∣ w ∣ ∣ 2 γ=\frac{1}{2}||w||^2 γ=21∣∣w∣∣2
s.t. :
y i ( w T Φ ( x ) + b ) > 1 y_i(w^TΦ(x)+b)>1 yi(wTΦ(x)+b)>1
4.1对偶公式-1:
max:
w ( α ) = L ( w , b , a ) = ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j Φ ( x i ) T Φ ( x j ) w(α)=L(w,b,a)=\sum_{i=1}^{m}{α_i}-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}{α_iα_jy_iy_jΦ(x_i)^TΦ(x_j)} w(α)=L(w,b,a)=∑i=1mαi−21∑i=1m∑j=1mαiαjyiyjΦ(xi)TΦ(xj)
s . t.:
∑ j = 1 m α i y i = = 0 ( α i j > 0 ) \sum_{j=1}^{m}{α_iy_i}==0(α_{ij}>0) ∑j=1mαiyi==0(αij>0)
由于研究人员肝不出来:
Φ ( x i ) T Φ ( x j ) Φ(x_i)^TΦ(x_j) Φ(xi)TΦ(xj)
故使用替代:
k ( x i , x j ) = Φ ( x i ) T Φ ( x j ) k(x_i,x_j)=Φ(x_i)^TΦ(x_j) k(xi,xj)=Φ(xi)TΦ(xj)
4.2对偶函数-2:
max:
w ( α ) = L ( w , b , a ) = ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j k ( x i , x j ) w(α)=L(w,b,a)=\sum_{i=1}^{m}{α_i}-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}{α_iα_jy_iy_jk(x_i,x_j)} w(α)=L(w,b,a)=∑i=1mαi−21∑i=1m∑j=1mαiαjyiyjk(xi,xj)
s . t.:
∑ j = 1 m α i y i = = 0 ( α i j > 0 ) \sum_{j=1}^{m}{α_iy_i}==0(α_{ij}>0) ∑j=1mαiyi==0(αij>0)
**!!!此时
k ( x i , x j ) k(x_i,x_j) k(xi,xj)
叫核函数!!!**
5.常用核函数
五.参数
分类器(离散数据)-通用
from sklearn.svm import LinearSVC
回归器(连续数据)
from sklearn.svm import LinearSVR
参数名 | 意义 | 接收 | 默认 |
---|---|---|---|
penalty | 惩罚中使用的规范 | “ l2”: SVC标准惩罚 “ l1”: 会导致稀疏的coef_向量 | “ l2” |
loss | 指定损失函数 | hinge: 标准的SVM损失(如SVC类使用的), squared_hinge: hinge损失的平方 | ’squared_hinge’ |
dual | 选择算法来解决对偶或原始优化问题 | bool, | True |
tol | 设置停止的条件 | float, default | 0.0001 |
C | 正则化参数 | float, default | 1.0 |
multi_class | 多维数据方案 | “ ovr”: 训练n_class一对多的静态分类器 “ crammer_singer”: 优化所有类别的联合目标。 准确性低,并且计算成本更高 | ’ovr’ |
fit_intercept | 是否计算此模型的截距 | bool | True |
intercept_scaling | 具有等于intercept_scaling的恒定值的“合成”特征附加到实例向量 | float, default | 1 |
class_weight | 权重设置 | dict or ‘balanced’,default | None |
verbose | 启用详细输出 | int, default | 0 |
random_state | 控制伪随机数生成 | int or RandomState instance | None |
max_iter | 最大迭代次数 | int | 1000 |