机器学习两个核心任务:
定义:给定一个训练集,对新输入的未知样本,通过计算与每个训练样本的距离,找到与该实例最邻近的K个实例,这K个实例大多属于某个类,该样本就属于某个类
应用场景:分类/回归问题
算法流程:
求解方法:距离公式
优缺点:
扩展:
距离公式:
欧式距离:
d = ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 d = \sqrt{(x_1 - x_2)^2 + (y_1 - y_2)^2} d=(x1−x2)2+(y1−y2)2
d = ∣ x 1 − x 2 ∣ + ∣ y 1 − y 2 ∣ d = |x_1 - x_2| + |y_1 - y_2| d=∣x1−x2∣+∣y1−y2∣
切比雪夫距离:
d = m a x ( ∣ x 1 − x 2 ∣ , ∣ y 1 − y 2 ∣ d = max(|x_1 - x_2|, |y_1 - y_2| d=max(∣x1−x2∣,∣y1−y2∣
闵可夫斯基距离:
(不特定指某一个,是一组距离的概括)
d = ∑ i = 1 n ∣ x 1 k − x 2 k ∣ p p d = \sqrt[p]{\sum \limits_{i=1} ^{n}|x_{1k} - x_{2k}|^p} d=pi=1∑n∣x1k−x2k∣p
标准化欧氏距离:
d = ∑ i = 1 n ∣ x 1 k − x 2 k s k ∣ 2 d = \sqrt{\sum \limits_{i=1} ^{n}|\frac{x_{1k} - x_{2k}}{s_k}|^2} d=i=1∑n∣skx1k−x2k∣2
余弦距离:
c o s ( θ ) = x 1 x 2 + y 1 y 2 x 1 2 + y 1 2 x 2 2 + y 2 2 cos(\theta) = {x_1x_2 + y_1y_2\over \sqrt{x_1^2 + y_1^2} \sqrt{x_2^2 + y_2^2}} cos(θ)=x12+y12x22+y22x1x2+y1y2
汉明距离:
用来计算两个等长字符串的最小替换次数
杰卡德距离:
杰卡德相似系数:两个集合A和B的交集元素在A、B的并集中所占的比例
J ( A , B ) = ∣ A ⋂ B ∣ ∣ A ⋃ B ∣ J(A,B) = {|A \bigcap B|\over |A \bigcup B|} J(A,B)=∣A⋃B∣∣A⋂B∣
杰卡德距离:与杰卡德相似系数相反,用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度
J δ ( A , B ) = 1 − J ( A , B ) = 1 − ∣ A ⋂ B ∣ ∣ A ⋃ B ∣ = ∣ A ⋃ B ∣ − ∣ A ⋂ B ∣ ∣ A ⋃ B ∣ J_\delta(A,B) = 1- J(A,B) = 1 - {|A \bigcap B|\over |A \bigcup B|} = {|A \bigcup B| - |A \bigcap B|\over |A \bigcup B|} Jδ(A,B)=1−J(A,B)=1−∣A⋃B∣∣A⋂B∣=∣A⋃B∣∣A⋃B∣−∣A⋂B∣
马氏距离:
用来表示数据的协方差距离(或两个分布的距离),是一种有效的计算两个位置样本集的相似度的方法,考虑到各种特性之间的联系,独立于测量尺度。
kd树
定义:利用回归方程对一个或多个特征值和目标值之间的关系进行建模的一种分析方式
两种模型:线性模型和非线性模型
应用场景:回归任务(房价预测等)
损失函数:
J ( w ) = ( h ( x 1 ) − y 1 ) 2 + ( h ( x 2 ) − y 2 ) 2 + . . . + ( h ( x m ) − y m ) 2 = ∑ i = 1 m ( h ( x i ) − y i ) 2 J(w) = (h(x_1)-y_1)^2 + (h(x_2)-y_2)^2+ ...+(h(x_m)-y_m)^2 = \sum \limits_{i=1} ^{m}(h(x_i)-y_i)^2 J(w)=(h(x1)−y1)2+(h(x2)−y2)2+...+(h(xm)−ym)2=i=1∑m(h(xi)−yi)2
优化方法:
正规方程:
一次性进行求解的过程,带入公式就可以求的w的值。
J ( w ) = ( X w − y ) 2 J(w) = (Xw-y)^2 J(w)=(Xw−y)2
w = ( X T X ) − 1 ∗ X T y w = (X^TX)^{-1}*X^Ty w=(XTX)−1∗XTy
梯度下降法:
迭代式求解的方式,逐渐去计算最小值的过程
w i + 1 = w i − α ∂ J ( w ) ∂ w i w_{i+1} = w_i - \alpha\frac{ \partial J(w) }{\partial w_i} wi+1=wi−α∂wi∂J(w)
两种方法对比:
正规方程法(最小二乘法) | 梯度下降法 |
---|---|
不需要学习率 | 需要学习率 |
一次计算 | 需要迭代求解 |
需要计算方程,时间复杂度高O( n 3 n_3 n3) | 特征数量较大可以使用 |
简洁高效 | 约束条件较多,需要保证$(XTX)-1的逆矩阵存在 |
适用于小规模数据,但不能解决拟合问题 | 适用于大规模数据 |
防止过拟合策略->正则化:
原因:原始特征过多,或者存在一些异常特征
解决方法:
正则化方式:
L1正则化:
J ( w ) = M S E ( w ) + α ∑ i = 1 n ∣ w i ∣ J(w) = MSE(w) + \alpha\sum\limits_{i=1} ^{n}|w_i| J(w)=MSE(w)+αi=1∑n∣wi∣
L2正则化:
J ( w ) = M S E ( w ) + α ∑ i = 1 n w i 2 J(w) = MSE(w) + \alpha\sum\limits_{i=1} ^{n}w_i^2 J(w)=MSE(w)+αi=1∑nwi2
定义:在线性回归的输出端加上sigmoid激活函数,使得输出>0.5判为1类别,<0.5判为0类别
应用场景:分类问题(广告点击率、是否为垃圾邮件等)
损失函数:
对数似然损失,表示的所有样本被分类正确的最大化概率。
c o s t ( h w ( x ) , y ) = − ∑ i = 1 n y i l o g ( P i ) + ( 1 − y i ) l o g ( 1 − P i ) cost(h_w(x), y) = -\sum\limits_{i=1}^{n}y_ilog(P_i) + (1-y_i)log(1-P_i) cost(hw(x),y)=−i=1∑nyilog(Pi)+(1−yi)log(1−Pi)
优化:梯度下降法
将 P i = 1 1 + e − w x − b P_i= \frac1{1+e^{-wx-b}} Pi=1+e−wx−b1代入损失函数中,使得对w的导数等于0,解得:
w i = w − α ( y i − P ) x w_i = w - \alpha(y_i - P)x wi=w−α(yi−P)x
优缺点:
优点:模型简单
缺点:sigmoid存在饱和区,容易梯度消失或梯度爆炸
分类评估方法:
精确率: 预测结果为正的样本中真正为正的比例
P r e c i s i o n = T P T P + F P Precision = \frac {TP}{TP + FP} Precision=TP+FPTP
召回率:真实为正例的样本中预测结果为正例的比例
R e c a l l = T P T P + F N Recall = \frac {TP}{TP + FN} Recall=TP+FNTP
F1-score:
模型的精度、召回率是一对矛盾的存在,如果我们想要提高模型的精度,则需要减少样本的数量,如果我们想要提高模型的召回率,则需要增加样本数量,F1-使用的是精度、召回率的调和平均数,综合考虑精确率和召回率。
F 1 = 2 T P 2 T P + F N + F P = 2 ∗ P r e c i s i o n ∗ R e c a l l P r e c i s o n + R e c a l l F1 = \frac{2TP}{2TP+FN+FP} = \frac{2*Precision*Recall}{Precison+Recall} F1=2TP+FN+FP2TP=Precison+Recall2∗Precision∗Recall
ROC曲线
T P R = T P T P + F N TPR = \frac{TP}{TP+FN} TPR=TP+FNTP ->正样本中被预测为正样本的概率
F P R = F P F P + T N FPR= \frac{FP}{FP+TN} FPR=FP+TNFP -> 负样本中被预测为正样本的概率
AUC指标:
随机取一对正负样本,正样本得分大于负样本得分概率。
是一种不直接考虑阈值的评估模型,衡量的是模型的排序能力(对正负样本的辨别能力),希望真正正样本都在左边,负样本都在右边。
定义:一种树形结构,本质上是一颗有多个判断节点组成的树
原理:根据一种分类规则,不断的由根节点向下分裂的过程,其中每一个内部节点表示一个属性上的判断,每一个分支代表一个判断结果的输出,最后的叶子节点代表一种分类结果。某一个分支的纯度越高越好,越能给出预测类别。
应用场景:分类/回归问题
分裂标准:
信息增益:
信息熵:是一个变量(特征)包含信息多少的方式,熵值越大信息种类越多,代表系统的混乱程度越大,纯度越低。
条件熵:在某种条件下的信息熵的大小
信息增益:以某特征进行划分数据集前后的熵值的差值,表示得知特征X的信息而使得类Y的信息熵减少的程度,从而用来衡量使用当前特征对于样本集合D划分效果的好坏,纯度提升大就是好,对应的增益越大。
信息增益 = 信息熵-条件熵
缺点:倾向于选择种类较多的特征进行分裂,倾向于选择信息增益值大的特征
ID3算法:多叉树,喜欢种类多的特征,会使得树构建的过于简单
信息增益率:
信息增益倾向于选择取值数目较多的属性作为下一次分裂节点。
信息增益率= 信 息 增 益 固 有 值 \frac{信息增益} {固有值} 固有值信息增益, 固有值一般取属性熵值,若一个特征值种类较多则让该特征信息增益除以一个较大的系数,以此调整种类多的特征值的重要性。一般固有值为信息熵
缺点:信息增益率一般情况下优先考虑值种类较少特征优先进行分裂,倾向于选择信息增益率大的特征
C4.5算法
优点:1. 克服了用信息增益来选择属性时偏向选择值多的属性的不足
2. 避免树的高度无节制的增长,避免过度拟合数据(后剪枝)
3. 通过赋给它结点n所对应的训练实例中该属性的最常见值,来处理缺失值
基尼指数:
基尼指数也是评估数据集纯度的一个指标,gini值越小,纯度越高,选择值小的特征作为分裂特征
CART树
构建的是二叉树
CART回归树:
1.将特征值x进行排序,并取相邻特征值x的均值作为待划分点
2.计算每个划分点的平方损失,损失值最小的为最优划分点,划分为左右子树两部分
3.并分别对左右子树重复进行上述操作
与线性回归区别:
线性回归模型使用一条直线来拟合训练样本,决策树使用一条折线来拟合训练样本
分裂结束条件:1.节点只有一个样本 2.节点上的样本为同一个类别
解决过拟合方法:
预剪枝:指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点;
后剪枝:先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。
后剪枝一般保留了更多的分支,所以欠拟合风险更小,泛化性能更高,但训练开销比预剪枝要大。
优缺点:
优点:拟合能力强
缺点:如果样本发生一点点改动,整个树的结构都会发生剧烈变化。
集成学习通过构建多个模型共同解决预测问题,其工作原理是:
集成学习核心思想:
通过建立几个模型来解决单一预测问题
弱弱变强 -> boosting
互相遏制变壮 -> bagging
集成学习方法能够带来什么好处:
基习器使用不同的学习方法还是相同的?
基础学习器可以使用不同的学习模型,比如:支持向量机、神经网络、决策树整合到一起作为一个集成学习系统
也可以使用相同的学习模型,比如,多个基学习器都使用决策树
一般情况下,我们倾向于使用相同的学习模型
这些基学习器应该注意哪些?
集成学习集成策略:bagging、boosting
bagging集成过程【知道】
随机森林:
定义:包含多个决策树的分类项目,并且输出类别由个别树输出的类别的众数来决定
本质:bagging + 决策树
随机森林构造流程:
一次随机选出一个样本,有放回的抽样,重复N次(有可能出现重复的样本)(自助法)
随机去选出m个特征, m < ```
1.为什么要随机抽样训练集?
如果不进行随机抽样,每棵树的训练集都一样,那么最终训练出的树分类结果也是完全一样的
2.为什么要有放回地抽样?
如果不是有放回的抽样,那么每棵树的训练样本都是不同的,都是没有交集的,这样每棵树都是“有偏的”,都是绝对“片面的”(当然这样说可能不对),也就是说每棵树训练出来都是有很大的差异的;而随机森林最后分类取决于多棵树(弱分类器)的投票表决。
```
包外估计:包外数据是指在整个训练过程中没有被选中用来训练的数据。大概占整个样本的36.8%。
bagging集成学习优点:
评估标准 -> 交叉熵:
l o g l o s s = − 1 N ∑ i = 1 N ∑ j = 1 M y i j l o g ( p i j ) logloss = -\frac1N\sum\limits_{i=1}^N\sum\limits_{j=1}^My_{ij}log(p_{ij}) logloss=−N1i=1∑Nj=1∑Myijlog(pij)
随着积累从弱到强,体现了提升的思想:
每个训练器重点关注前一个训练器不足的地方进行训练
通过加权投票的方式,得出预测结果
bagging于boosting区别:
数据方面:
投票方面:
学习顺序:
主要作用:
代表算法:Adaboost,GBDT,XGBoost,LightGBM
定义:自适应提升,是一种用于分类问题的算法,它用弱分类器的线性组合来构造分类器。
特点:训练时,样本具有权重,并且在训练过程中动态调整,被分错的样本会加大权重,算法更加关注难分的样本。
工作原理:
adaboost构建过程:
特点:不改变的目标值的分布
无论处理回归问题还是分类问题,使用的CART回归树
为什么不用CART分类树呢?
提升树的原理:迭代的拟合残差,不断的接近真实目标值
GBDT原理:沿着损失函数对之前已经训练得到的强学习器预测值的负梯度方向迭代,依次构造样本的标签值训练每一个弱学习器。
GBDT树构建过程:
1)初始化弱学习器
2)对每个样本计算负梯度,获得残差,并将上一步获得残差作为目标值
3)更新强学习器,直到达到指定的学习器个数
4)得到最终学习器 f ( x ) = f 0 ( x ) + ∑ i = 1 m ∑ j = 1 n Υ j i I ( x ∈ R j i ) f(x) = f_0(x)+\sum\limits_{i=1}^m\sum\limits_{j=1}^n\Upsilon_{ji}I(x\in R_{ji}) f(x)=f0(x)+i=1∑mj=1∑nΥjiI(x∈Rji)
BDT(提升树) -> GBDT(梯度提升树) -> XGBoost(极端梯度提升树)
XGBoost 是对梯度提升算法的改进:
我们在前面已经知道,构建最优模型的一般方法是最小化训练数据的损失函数。
min 1 N ∑ i = 1 N L ( y i , f ( x i ) ) \min \frac{1}{N} \sum_{i=1}^{N} L\left(y_{i}, f\left(x_{i}\right)\right) minN1i=1∑NL(yi,f(xi))
预测值和真实值经过某个函数计算出损失,并求解所有样本的平均损失,并且使得损失最小。
上面的式子称为 经验风险最小化,如果仅仅追求经验风险最小化,那么训练得到的模型复杂度较高,很容易出现过拟合。因此,为了降低模型的复杂度,常采用下式:
min 1 N ∑ i = 1 N L ( y i , f ( x i ) ) + Ω ( f ) \min \frac{1}{N} \sum_{i=1}^{N} L\left(y_{i}, f\left(x_{i}\right)\right)+\Omega (f) minN1i=1∑NL(yi,f(xi))+Ω(f)
上面的式子称为结构风险最小化,结构风险最小化的模型往往对训练数据以及未知的测试数据都有较好的预测 。
XGBoost的决策树生成是结构风险最小化的结果。
目标函数:
XGBoost(Extreme Gradient Boosting)是对梯度提升树的改进,并且在损失函数中加入了正则化项。
obj ( θ ) = ∑ i n L ( y i , y ^ i ) + ∑ k = 1 K Ω ( f k ) \operatorname{obj}(\theta)=\sum_{i}^{n} L\left(y_{i}, \hat{y}_{i}\right)+\sum_{k=1}^{K} \Omega\left(f_{k}\right) obj(θ)=i∑nL(yi,y^i)+k=1∑KΩ(fk)
目标函数的第一项表示整个强学习器的损失,第二部分表示强学习器中 K 个弱学习器的复杂度。
XGBoost与GBDT区别:
区别一:
区别二:
通过对 XGBoost 算法多方面的优化,提升训练速度、减少内存占用
原理:
直方图算法
直方图算法是以 bin 为粒度计算分裂增益,而 GBDT 是以单个分裂点粒度计算分类增益
leaf-wise
直接支持类别特征
支持高效并行
特征维度并行:
数据维度并行:
基于投票的并行:
每一个 worker 在本地构建直方图找出 Top K 个分裂特征
在全局将 K 个特征特征合并并选出全局最优分裂特征
互斥特征捆绑 : 将一些特征进行进行合并,减少特征的数量
单边梯度采样:从原来的所有样本中通过一定的策略选取部分样本的梯度
无监督学习算法,主要用于将相似的样本自动归到一个类别中
原理:计算不同样本之间的相似性,常见的相似度计算方法有欧式距离法
实现流程:
随机选择 K 个样本点作为初始聚类中心
计算每个样本到 K 个中心的距离,选择最近的聚类中心点作为标记类别
根据每个类别中的样本点,重新计算出新的聚类中心点(平均值)
1)如果计算得出的新中心点与原中心点一样则停止聚类
2)否则重新进行第 2 步过程,直到聚类中心不再变化
评估方法:(簇内内聚程度、簇外分离程度、尽量少的簇中心三个角度)
S S E = ∑ i = 1 k ∑ p ∈ C i ∣ p − m i ∣ 2 S S E=\sum_{i=1}^{\mathrm{k}} \sum_{p \in C_{i}}\left|p-m_{i}\right|^{2} SSE=i=1∑kp∈Ci∑∣p−mi∣2
k–质心个数 p–某个簇内的样本 m–质心点
SSE越大说明聚类效果越不好
肘方法
通过SSE方法确定n_clusters的值,记录SSE变化的拐点,下降率突然变换时即认为是最佳n_clusters的值
轮廓系数法SC
CH系数
CH 系数考虑簇内的内聚程度、簇外的离散程度、质心的个数,类别内部数据的协方差越小越好,类别之间的协方差越大越好
计算方法:
C H ( k ) = S S B S S W m − k k − 1 S S W = ∑ i = 1 m ∥ x i − C p i ∥ 2 S S B = ∑ j = 1 k n j ∥ C j − X ˉ ∥ 2 \begin{array}{l} \mathrm{CH}(\mathrm{k})=\frac{S S B}{S S W}\frac{m-k}{k-1} \\ S S W=\sum_{i=1}^{m}\left\|x_{i}-C_{p i}\right\|^{2} \\ S S B=\sum_{j=1}^{k} n_{j}\left\|C_{j}-\bar{X}\right\|^{2} \end{array} CH(k)=SSWSSBk−1m−kSSW=∑i=1m∥xi−Cpi∥2SSB=∑j=1knj∥∥Cj−Xˉ∥∥2
m 表示样本数量
k 表示质心个数
CH 系数越大越好,其表示用尽量少的类别聚类尽量多的样本,同时获得较好的聚类效果。
优缺点:
优点:
缺点:
算法优化:
K-means 算法聚类效果受到了簇的个数、初始质心位置、离群点影响,并且不太容易进行增量计算,算法优化主要通过簇内的个数、初始质心位置、抵抗噪声的角度来优化
Cannopy算法
kmeans++算法(是kmeans中参数选项)
二分 K-means算法
主要从减少误差平方和的角度来来进行质心的选择,并每次对方差较大的簇进行二分。
K-medoids 算法
选取质心的时候使用的是中位数,是一个实实在在的中心点(是真实的样本),而 K-means 使用的可能是一个虚拟的中心点,从这一点来讲,k-medoids 有很强的抗噪特点(对离群点处理效果较好)。
Kernel k-means算法
主要是从低维空间有时无法对数据进行聚类,无法区分,此时可以将其映射到高维空间,再进行 k-means 聚类
Mini batch k-means 算法(单独API)
主要针对数据量大的时候,k-means 算法效率较低,此时使用部分样本点来更新质心。提高聚类效果。【重点】
isodata算法
在聚类的过程中,如果某一类别的样本比较少,或者类别间的距离较近,则将其合并。如果类别内部的方差超过阈值则将其分裂
P ( C ∣ W ) = P ( W ∣ C ) P ( C ) P ( W ) P(C \mid W)=\frac{P(W \mid C) P(C)}{P(W)} P(C∣W)=P(W)P(W∣C)P(C)
原理:先由目标值作出先验猜测,再由测试样本特征和训练集的分布情况共同关注训练集中特征的联合概率
应用场景:分类或回归,一般用在NLP中
朴素:特征条件独立性假设【排除了特征之间的线性相关性、选择相对较为独立的特征】
拉普拉斯平滑系数:为了避免概率值为 0,我们在分子和分母分别加上一个数值
P ( F 1 ∣ C ) = N i + α N + α m P(F 1 \mid C)=\frac{N i+\alpha}{N+\alpha m} P(F1∣C)=N+αmNi+α
预测过程:
优点:
缺点:
朴素贝叶斯与LR的区别
使用方式:
定义:寻找一个N维超平面使样本分成两类,并且间隔最大,并保证样本被分类正确
应用场景:线性/非线性分类/回归;异常值检测任务
划分超平面的两个问题:
惩罚参数C:用来平衡间隔违例样本损失、最大间隔。
SVM公式:f(x) = sign(wTx + b)。如果 f(x) >= 0,判定为 +1 类,否则判定为 -1 类
SVM目标函数:
SVM 我们要求解的目标是:在能够将所有样本能够正确分割开的基础上,求解最大间隔。
最大间隔距离表示:
2 ∥ w ∥ \frac{2}{\|\boldsymbol{w}\|} ∥w∥2
训练样本能够正确分类:
{ w T x i + b ⩾ + 1 , y i = + 1 w T x i + b ⩽ − 1 , y i = − 1 \left\{\begin{array}{ll} \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b \geqslant+1, & y_{i}=+1 \\ \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b \leqslant-1, & y_{i}=-1 \end{array}\right. {wTxi+b⩾+1,wTxi+b⩽−1,yi=+1yi=−1
我们希望在将所有样本正确分类的情况,实现间隔最大化。所以,我们的目标函数可以写为:
max w , b = 2 ∥ w ∥ s.t. y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ⋯ , m \begin{array}{l} \max _{w, b}=\frac{2}{\|w\|} \\ \text { s.t. } y_{i}\left(w^{T} x_{i}+b\right) \geq 1, i=1,2, \cdots, m \end{array} maxw,b=∥w∥2 s.t. yi(wTxi+b)≥1,i=1,2,⋯,m
min w , b = 1 2 ∥ w ∥ 2 s.t. y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ⋯ , m \begin{aligned} &\min _{w, b}=\frac{1}{2}\|w\|^{2}\\ &\text { s.t. } y_{i}\left(w^{T} x_{i}+b\right) \geq 1, i=1,2, \cdots, m \end{aligned} w,bmin=21∥w∥2 s.t. yi(wTxi+b)≥1,i=1,2,⋯,m
1)||w|| 范数为:sqrt( w12+w22+…+wn2 ),加上平方之后将根号去掉,不影响优化目标。
2)1/2 是为了求导的时候,能够将系数去掉。
利用拉格朗日乘子法取消约束项:
约束条件转换为: y i ( w T x i + b ) ≥ 1 , i = 1 , 2 , ⋯ , m y_{i}\left(w^{T} x_{i}+b\right) \geq 1, i=1,2, \cdots, m yi(wTxi+b)≥1,i=1,2,⋯,m
即 ∑ i = 1 n ( 1 − y i ( w T ⋅ Φ ( x i ) + b ) ) \sum_{i=1}^{n} \left(1 - y_{i}\left(w^{T} \cdot \Phi\left(x_{i}\right)+b\right)\right) ∑i=1n(1−yi(wT⋅Φ(xi)+b))
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 n α i ( y i ( w T ⋅ Φ ( x i ) + b ) − 1 ) L(w, b, \alpha)=\frac{1}{2}\|w\|^{2}-\sum_{i=1}^{n} \alpha_{i}\left(y_{i}\left(w^{T} \cdot \Phi\left(x_{i}\right)+b\right)-1\right) L(w,b,α)=21∥w∥2−i=1∑nαi(yi(wT⋅Φ(xi)+b)−1)
此时问题是在满足所有样本都能正确分类的情况下,求解极小极大值问题:
min w , b max α L ( w , b , α ) < = = > max α min w , b L ( w , b , α ) \min _{w, b} \max _{\alpha} L(w, b, \alpha) <==> \max _{\alpha} \min _{w, b} L(w, b, \alpha) w,bminαmaxL(w,b,α)<==>αmaxw,bminL(w,b,α)
对偶问题转换:
对 w 求偏导,并令其等于 0:
∂ L ∂ w = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 n α i ( y i w T φ ( x i ) + y i b − 1 ) = 0 = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 n α i y i w T φ ( x i ) + α i y i b − α i = 0 = w − ∑ i = 1 n α i y i φ ( x i ) = 0 \begin{aligned} \frac{\partial L}{\partial w} &=\frac{1}{2}|| w||^{2}-\sum_{i=1}^{n} \alpha_{i}\left(y_{i} w^{T} \varphi\left(x_{i}\right)+y_{i} b-1\right)=0 \\ &=\frac{1}{2}|| w||^{2}-\sum_{i=1}^{n} \alpha_{i} y_{i} w^{T} \varphi\left(x_{i}\right)+\alpha_{i} y_{i} b-\alpha_{i}=0 \\ &=w-\sum_{i=1}^{n} \alpha_{i} y_{i} \varphi\left(x_{i}\right)=0 \end{aligned} ∂w∂L=21∣∣w∣∣2−i=1∑nαi(yiwTφ(xi)+yib−1)=0=21∣∣w∣∣2−i=1∑nαiyiwTφ(xi)+αiyib−αi=0=w−i=1∑nαiyiφ(xi)=0
得出:
w = ∑ i = 1 n α i y i φ ( x i ) w=\sum_{i=1}^{n} \alpha_{i} y_{i} \varphi\left(x_{i}\right) w=i=1∑nαiyiφ(xi)
对 b 求偏导:
∂ L ∂ w = 1 2 ∥ w ∥ 2 − ∑ i = 1 n α i y i w T φ ( x i ) + α i y i b − α i = ∑ i = 1 n α i y i = 0 \begin{aligned} \frac{\partial L}{\partial w} &=\frac{1}{2}\|w\|^{2}-\sum_{i=1}^{n} \alpha_{i} y_{i} w^{T} \varphi\left(x_{i}\right)+\alpha_{i} y_{i} b-\alpha_{i} \\ &=\sum_{i=1}^{n} \alpha_{i} y_{i}=0 \end{aligned} ∂w∂L=21∥w∥2−i=1∑nαiyiwTφ(xi)+αiyib−αi=i=1∑nαiyi=0
将w、b代入4中公式:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 n α i ( y i ( w T ⋅ Φ ( x i ) + b ) − 1 ) = 1 2 w T w − ∑ i = 1 n α i y i w T ϕ ( x i ) + α i y i b − α i = 1 2 w T w − ∑ i = 1 n α i y i w T ϕ ( x i ) − b ∑ i = 1 n α i y i + ∑ i = 1 n α i = 1 2 w T w − ∑ i = 1 n α i y i w T ϕ ( x i ) + ∑ i = 1 n α i = 1 2 w T ∑ i = 1 n α i y i ϕ ( x i ) − w T ∑ i = 1 n α i y i ϕ ( x i ) + ∑ i = 1 n α i = − 1 2 w T ∑ i = 1 n α i y i ϕ ( x i ) + ∑ i = 1 n α i = ∑ i = 1 n α i − 1 2 ( ∑ i = 1 n α i y i ϕ ( x i ) ) T ∑ i = 1 n α i y i ϕ ( x i ) = ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j ϕ ( x i ) ϕ ( x j ) L(w, b, \alpha)=\frac{1}{2}\|w\|^{2}-\sum_{i=1}^{n} \alpha_{i}\left(y_{i}\left(w^{T} \cdot \Phi\left(x_{i}\right)+b\right)-1\right) \\ =\frac{1}{2}w^Tw - \sum_{i=1}^{n}\alpha_iy_iw^T\phi(x_i)+\alpha_iy_ib - \alpha_i \\ =\frac{1}{2}w^Tw -\sum_{i=1}^{n}\alpha_iy_iw^T\phi(x_i)-b\sum_{i=1}^{n}\alpha_iy_i+\sum_{i=1}^{n}\alpha_i \\ =\frac{1}{2}w^Tw -\sum_{i=1}^{n}\alpha_iy_iw^T\phi(x_i)+\sum_{i=1}^{n}\alpha_i \\ =\frac{1}{2}w^T\sum_{i=1}^{n}\alpha_iy_i\phi(x_i)-w^T\sum_{i=1}^{n}\alpha_iy_i\phi(x_i)+\sum_{i=1}^{n}\alpha_i \\ =-\frac{1}{2}w^T\sum_{i=1}^{n}\alpha_iy_i\phi(x_i) + \sum_{i=1}^{n}\alpha_i \\ = \sum_{i=1}^{n}\alpha_i -\frac{1}{2}(\sum_{i=1}^{n}\alpha_iy_i\phi(x_i))^T\sum_{i=1}^{n}\alpha_iy_i\phi(x_i) \\ =\sum_{i=1}^{n}\alpha_i -\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}\alpha_i\alpha_jy_iy_j\phi(x_i)\phi(x_j) L(w,b,α)=21∥w∥2−i=1∑nαi(yi(wT⋅Φ(xi)+b)−1)=21wTw−i=1∑nαiyiwTϕ(xi)+αiyib−αi=21wTw−i=1∑nαiyiwTϕ(xi)−bi=1∑nαiyi+i=1∑nαi=21wTw−i=1∑nαiyiwTϕ(xi)+i=1∑nαi=21wTi=1∑nαiyiϕ(xi)−wTi=1∑nαiyiϕ(xi)+i=1∑nαi=−21wTi=1∑nαiyiϕ(xi)+i=1∑nαi=i=1∑nαi−21(i=1∑nαiyiϕ(xi))Ti=1∑nαiyiϕ(xi)=i=1∑nαi−21i=1∑nj=1∑nαiαjyiyjϕ(xi)ϕ(xj)
求解当 α \alpha α是什么值时,该值会变得很大,当求出 α \alpha α时,再求出w,b值
确定超平面
a ∗ = arg max α ( ∑ i = 1 n α i − 1 2 ∑ i , j = 1 n α i α j y i y j Φ T ( x i ) Φ ( x j ) ) a^{*}=\underset{\alpha}{\arg \max }\left(\sum_{i=1}^{n} \alpha_{i}-\frac{1}{2} \sum_{i, j=1}^{n} \alpha_{i} \alpha_{j} y_{i} y_{j} \Phi^{T}\left(x_{i}\right) \Phi\left(x_{j}\right)\right) a∗=αargmax(i=1∑nαi−21i,j=1∑nαiαjyiyjΦT(xi)Φ(xj))
将上面的问题转换为极小值问题:
min α 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j ( Φ ( x i ) ⋅ Φ ( x j ) ) − ∑ i = 1 n α i s.t. ∑ i = 1 n α i y i = 0 α i ≥ 0 , i = 1 , 2 , … , n \begin{array}{l} \min _{\alpha} \frac{1}{2} \sum_{i=1}^{n} \sum_{j=1}^{n} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(\Phi\left(x_{i}\right) \cdot \Phi\left(x_{j}\right)\right)-\sum_{i=1}^{n} \alpha_{i} \\ \\ \text { s.t. } \sum_{i=1}^{n} \alpha_{i} y_{i}=0 \\ \\ \alpha_{i} \geq 0, \quad i=1,2, \ldots, n \end{array} minα21∑i=1n∑j=1nαiαjyiyj(Φ(xi)⋅Φ(xj))−∑i=1nαi s.t. ∑i=1nαiyi=0αi≥0,i=1,2,…,n
将训练样本带入上面公式,求解出 α 值。然后,将 α 值代入下面公式计算 w, b 的值:
w ∗ = ∑ i = 1 N α i ∗ y i Φ ( x i ) b ∗ = y i − ∑ i = 1 N α i ∗ y i ( Φ ( x i ) ⋅ Φ ( x j ) ) \begin{aligned} w^{*} &=\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} \Phi\left(x_{i}\right) \\ b^{*} &=y_{i}-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}\left(\Phi\left(x_{i}\right) \cdot \Phi\left(x_{j}\right)\right) \end{aligned} w∗b∗=i=1∑Nαi∗yiΦ(xi)=yi−i=1∑Nαi∗yi(Φ(xi)⋅Φ(xj))
最后求得分离超平面:
w ∗ Φ ( x ) + b ∗ = 0 w^{*} \Phi(x)+b^{*}=0 w∗Φ(x)+b∗=0
求得分类决策函数:
f ( x ) = sign ( w ∗ Φ ( x ) + b ∗ ) f(x)=\operatorname{sign}\left(w^{*} \Phi(x)+b^{*}\right) f(x)=sign(w∗Φ(x)+b∗)
α i ≠ 0 \alpha_i\ne0 αi=0的样本会落在最大间隔直线上,被称为支持向量
SVM损失函数:
SVM 的三种损失函数衡量模型的性能。
SVM核方法:
当存在线性不可分的场景时,我们需要使用核函数来提高训练样本的维度、或者将训练样本投向高维
SVM 默认使用 RBF 核函数,将低维空间样本投射到高维空间,再寻找分割超平面
SVM回归:
在允许误差范围内求间隔最大化,找平方误差最小的w,b
SVM的优点:
SVM的缺点:
如果特征数量比样本数量大得多,在选择核函数时要避免过拟合;
对缺失数据敏感;
对于核函数的高维映射解释力不强