机器学习总结三:SVM原理推导与案例

机器学习算法总结

一、Bagging之决策树、随机森林原理与案例

二、boosting之GBDT、XGBT原理推导与案例

三、SVM原理推导与案例

四、逻辑回归与反欺诈检测案例

五、聚类之K-means


三、SVM

1. 原理推导(硬间隔)

1.1分类问题代数化

**svm原理一句话概括:找出一个最优的直线(或超平面)去隔离不同类别样本数据,达到分类目的。**

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NLPBT27F-1665456037176)(D:\soft_data\jupyterlab_data\机器学习总结\markdown_image\SVM决策边界(硬间隔)].png)

                图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})即垂直于决策边界 wTX1+b=0wTX2+b=0wT(X1X2)=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分别表示平行于决策边界的虚线到决策边界的相对距离,不是具体距离 wTX+b=kwTX+b=kkwTX+b=1wTX+b=111线
**图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}|}等于在单位向量上的投影 wTXp+b=1wTXn+b=1wT(XpXn)=2d=(XpXn)w w =w 2(XpXn)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+b1,wxi+b1,ifyi=1ifyi=1xiyiyi(wxi+b)11yi(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=min21w =min21w 2s.t1yi(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,λ)=21wTw+i=0nλi[1yi(wTxi+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) min21w 2===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,λ)={+,21wTw,if1yi(wtxi+b)>0if1yi(wtxi+b)0minw,bmaxλL(w,b,λ)=minw,b{+,21wTw}=min21wTw
所以:原始问题可以表示为:
求 解 极 小 极 大 值 问 题 : 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 对偶问题

极小极大值转化为对偶问题再求解

好处:

  1. 改变算法复杂度. 对偶问题往往更容易求解.(原始问题求解与特征维度相关,对偶问题计算量与样本量相关)

  2. 转化为对偶问题得到内积的形式, 引入核函数, 进而推广到非线性分类问题.

原始问题对应的对偶问题
求 解 极 大 极 小 值 问 题 : 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,λ)PQminw,bPmaxλQminw,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,λ)=21wTw+i=0nλi[1yi(wTxi+b)]λ0L(w,b,λ)=21wTw+i=0nλi[1yi(wTxi+b)]=21wTw+i=0nλii=0nλiyixiwti=0nλiyibδwδL(w,b,λ)=wi=0nλixiyi=0>w=i=0nλixiyiδbδL(w,b,λ)=i=0nλiyi=0wbminw,bL(w,b,λ)=21wTw+i=0nλi=21wTw+i=0nλi=21i=0nj=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(λ)=21i=1nj=1nλiλjyiyjxi xj +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} SMOi=0nλiyi=0λλoldλnewSMOλwb
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(λ)=21i=1nj=1nλiλjyiyjxi xj +i=1nλiminλL(λ)=21i=1nj=1nλiλjyiyjxi xj i=1nλiλ0w=i=1nλiyixiw;i=1nλiyi=0b
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=0i=3n=C,λ1y1+λ2y2=C(C)λ1=(Cλ2y2)y1(3使)yi[1,1],yi2=1,y1y1

决 策 函 数 : 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+bw=i=1nλiyixif(x1)=i=1nλiyixiTx1+b=λ1y1x1Tx1+λ2y2x2Tx1+i=3nλiyixiTx1+bf(x2)=i=1nλiyixiTx2+b=λ1y1x1Tx2+λ2y2x2Tx2+i=3nλiyixiTx2+bi=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(λ)=21i=1nj=1nλiλjyiyjxi xj i=1nλiminλL(λ1,λ2)=21λ1λ1y1y1x1 x1 +21λ1λ2y1y2x1 x2 +21j=3nλ1λjy1yjx1 xj +21λ2λ1y2y1x2 x1 +21λ2λ2y2y2x2 x2 +21j=3nλ2λjy2yjx2 xj +21i=3nλiλ1yiy1xi x1 +21i=3nλiλ2yiy2xi x2 +21i=3nj=3nλiλjyiyjkijλ1λ2i=3nλi1.1xi xj =kijminλL(λ1,λ2)=21λ12k11+21λ1λ2y1y2k12+21j=3nλ1λjy1yjk1j+21λ2λ1y2y1k21+21λ22k22+21j=3nλ2λjy2yjk2j+21i=3nλiλ1yiy1ki1+21i=3nλiλ2yiy2ki2+21i=3nj=3nλiλjyiyjkijλ1λ2i=3nλi1.2minλL(λ1,λ2)=21λ12k11+221λ1λ2y1y2k12+21λ22k22+221i=3nλiλ1yiy1ki1+221i=3nλiλ2yiy2ki2λ1λ2minλL(λ1,λ2)=21λ12k11+λ1λ2y1y2k12+21λ22k22+λ1y1i=3nλiyiki1+λ2y2i=3nλiyiki2λ1λ22.3minλL(λ2)=21(Cλ2y2)2k11+(Cλ2y2)λ2y2k12+21λ22k22+(Cλ2y2)i=3nλiyiki1+λ2y2i=3nλiyiki2(Cλ2y2)y1λ2δλ2δL(λ2)=Cy2k11+k11λ2+Cy2k122k12λ2+k22λ2y2i=3nλiyiki1+y2i=3nλiyiki2+y1y21=0k11λ22k12λ2+k22λ2=1+Cy2k11Cy2k12+y2i=3nλiyiki1y2i=3nλiyiki2y1y2(k112k12+k22)λ2=y2(y2+Ck11Ck12+i=3nλiyiki1i=3nλiyiki2y1)(1y2y2)3.12i=3nλiyiki1i=3nλiyiki2=(f(x1)λ1oldy1x1 .x1 λ2oldy2x2 .x1 b)(f(x2)λ1oldy1x1 .x2 λ2oldy2x2 .x2 b)=f(x1)λ1oldy1k11λ2oldy2k21f(x2)+λ1oldy1k12+λ2oldy2k22λ1oldy1+λ2oldy2=C(k112k12+k22)λ2new=y2(y2+(λ1oldy1+λ2oldy2)k11(λ1oldy1+λ2oldy2)k12+f(x1)λ1oldy1k11λ2oldy2k21f(x2)+λ1oldy1k12+λ2oldy2k22y1)λ2new=k112K12+k22y2[y2f(x2)(y1f(x1))+λ2oldy2(k112k12+k22)]=λ2old+k112K12+k22y2[y2f(x2)(y1f(x1)]λ2new=λ2old+k112K12+k22y2(E2E1)E1E2

重要结论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+k112K12+k22y2(E2E1)λiyiyif(xi)xixj

1.6 核函数

6.1 分类中问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c6onigY6-1665456037178)(D:\soft_data\jupyterlab_data\机器学习总结\SVM\markdown_image\image-20221011084101768.png)]

有 些 分 类 问 题 不 是 线 性 可 分 的 ( 如 左 图 异 或 问 题 ) , 进 行 高 维 映 射 后 ( 右 图 ) ( 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,x1x2线

对偶问题求λ的极值亦随之变化。
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=1nj=1nλiλjyiyjxi xj i=1nλ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=1nj=1nλiλjyiyjϕ(xi )ϕ(xj )i=1nλ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,2 x1x2)2(z1,z2)>(z12,z22,2 z1z2)ϕ(X)ϕ(Z)=x12z12+x22z22+2x1x2z2z2K<X,Z>()=(XZ)2=x12z12+x22z22+2x2x2z1z2ϕ(x)ϕ(z)=K<X,Z>使λminλL(λ)=21i=1nj=1nλiλjyiyjK<xi ,xj >i=1nλiK
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=linearK<x,y>=xTy=x.y2.线kernel=polyK<x,y>=(γ(x.y)+Υ)d3.线kernel=sigmiodK<x,y>=tanh(γ(x.y)+Υ)4.线(sklearn)kernel=rbfK<x,y>=eγxy2,γ>0γdϕ(x)d=ϕ(x1)ϕ(x2)2=ϕ(x1)ϕ(x1)+ϕ(x2)ϕ(x2)2ϕ(x1)ϕ(x2)=eγx1x12+eγx2x222eγx1x22d=22eγx1x22={220=0,22e=2,ifγ0ifγ+γ0d=22e0=00;γ+d=22e=2kerneldγΥsvckerneldegreegammacof0()

1.7 软间隔

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bRxyxrYr-1665456037178)(D:\soft_data\jupyterlab_data\机器学习总结\SVM\markdown_image\image-20221011094846716.png)]

如图:不是每个样本都能被正确划分。

软间隔是处理线性不可分问题、减少噪点影响时引入的方法,其通过牺牲某些点必须正确划分的限制,以换取更大分割间隔的方法,其特点在分类时为了整体效果会存在错误点。

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} ξξi1yi(wxi+b)ξ0ξimax{0,1yi(wxi+b)}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gadcgk6X-1665456037179)(D:\soft_data\jupyterlab_data\机器学习总结\SVM\markdown_image\image-20221011095214507.png)]

如 图 : 当 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线ξi01>yi(wxi+b)0线ξi(0,1)yi(wxi+b)<0ξi1min21w 2+Ci=1nξiC线

2. 案例

  1. 导入模块

    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
    
  2. 创建样本数据

    # 生成测试数据
    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([])
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eC7XWwFU-1665456037181)(D:\soft_data\jupyterlab_data\机器学习总结\SVM\markdown_image\image-20221011101147813.png)]

  3. 绘制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([])
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kH48V7ZD-1665456037182)(D:\soft_data\jupyterlab_data\机器学习总结\SVM\markdown_image\image-20221011101235673.png)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值