机器学习实战 简化SMO算法 对第一个alpha选择条件的解读
2018-03-13 00:02
239 查看
在看简化版SMO算法的时候,刚开始没懂第一个变量的选择依据,在网上也没有找到解释。所以在搞懂后把选择依据分享出来~~~
SMO称选择第一个变量的过程为外层循环,外层循环在训练样本中选择违反KKT条件最严重的样本点,其KKT条件为:
αi=0⇔yig(xi)≥1αi=0⇔yig(xi)≥1
0<αi<C⇔yig(xi)=10<αi<C⇔yig(xi)=1
αi=C⇔yig(xi)≤1αi=C⇔yig(xi)≤1
其中,
g(xi)=∑Nj=1αjyjK(xi,xj)+bg(xi)=∑j=1NαjyjK(xi,xj)+b
违反KKT条件时,
αi=0时,yig(xi)<1αi=0时,yig(xi)<1
0<αi<C时,yig(xi)<10<αi<C时,yig(xi)<1或0<αi<C时,yig(xi)>10<αi<C时,yig(xi)>1
αi=C时,yig(xi)>1αi=C时,yig(xi)>1
先考虑yig(xi)yig(xi),违反KKT条件的公式等价于
yig(xi)<1时,0≤αi<Cyig(xi)<1时,0≤αi<C ……….(1)
yig(xi)>1时,0<αi≤Cyig(xi)>1时,0<αi≤C……….(2)
需要注意的是,yig(xi)=1yig(xi)=1时,0≤αi≤C0≤αi≤C总是满足KTT条件的。
对应公式为
((yi∗(g(xi)−yi)<−δyi∗(g(xi)−yi)<−δ) and (αi<Cαi<C))
or ((yi∗(g(xi)−yi)>δyi∗(g(xi)−yi)>δ) and (αi>0αi>0))
因为yi∗yi)=1yi∗yi)=1且0≤αi0≤αi,化简,即:
yig(xi)<1−δ时,0≤αi<Cyig(xi)<1−δ时,0≤αi<C
yig(xi)>1+δ时,0<αi≤Cyig(xi)>1+δ时,0<αi≤C
和公式(1)(2)相比,多出的δδ为一个误差项
1.第一个变量的选择方法
这里不再叙述公式推导及证明,只是简单给出SMO算法第一个变量的选择方法。SMO称选择第一个变量的过程为外层循环,外层循环在训练样本中选择违反KKT条件最严重的样本点,其KKT条件为:
αi=0⇔yig(xi)≥1αi=0⇔yig(xi)≥1
0<αi<C⇔yig(xi)=10<αi<C⇔yig(xi)=1
αi=C⇔yig(xi)≤1αi=C⇔yig(xi)≤1
其中,
g(xi)=∑Nj=1αjyjK(xi,xj)+bg(xi)=∑j=1NαjyjK(xi,xj)+b
违反KKT条件时,
αi=0时,yig(xi)<1αi=0时,yig(xi)<1
0<αi<C时,yig(xi)<10<αi<C时,yig(xi)<1或0<αi<C时,yig(xi)>10<αi<C时,yig(xi)>1
αi=C时,yig(xi)>1αi=C时,yig(xi)>1
先考虑yig(xi)yig(xi),违反KKT条件的公式等价于
yig(xi)<1时,0≤αi<Cyig(xi)<1时,0≤αi<C ……….(1)
yig(xi)>1时,0<αi≤Cyig(xi)>1时,0<αi≤C……….(2)
需要注意的是,yig(xi)=1yig(xi)=1时,0≤αi≤C0≤αi≤C总是满足KTT条件的。
2.书中给出的关于第一个变量的判断解释
再看书中给出的关于第一个变量的判断@sky_kkk if ((labelMat[i]*Ei < -toler) and (alphas[i] < C)) or ((labelMat[i]*Ei > toler) and (alphas[i] > 0))
对应公式为
((yi∗(g(xi)−yi)<−δyi∗(g(xi)−yi)<−δ) and (αi<Cαi<C))
or ((yi∗(g(xi)−yi)>δyi∗(g(xi)−yi)>δ) and (αi>0αi>0))
因为yi∗yi)=1yi∗yi)=1且0≤αi0≤αi,化简,即:
yig(xi)<1−δ时,0≤αi<Cyig(xi)<1−δ时,0≤αi<C
yig(xi)>1+δ时,0<αi≤Cyig(xi)>1+δ时,0<αi≤C
和公式(1)(2)相比,多出的δδ为一个误差项
相关文章推荐
- 机器学习实战-14利用SVD简化数据-改进推荐系统
- 机器学习实战 - 读书笔记(14) - 利用SVD简化数据
- 机器学习实战-利用PCA来简化数据
- 机器学习实战第十三章-利用PCA来简化数据
- 机器学习实战 - 读书笔记(13) - 利用PCA来简化数据
- 机器学习实战-13利用PCA来简化数据
- 机器学习实战之决策树(2)---选择最好的特征来划分数据集
- 机器学习实战 -> 利用PCA&&SVD来简化数据
- 《ASP.NET MVC 4 实战》学习笔记 1:第一个MVC用程序(上)
- 机器学习实战-KNN算法
- 机器学习实战之使用k-邻近算法改进约会网站的配对效果
- python机器学习实战:Adaboost
- 机器学习实战之数回归,CART算法
- 机器学习实战——岭回归、缩减法
- 机器学习实战:朴素贝叶斯分类(二)
- 机器学习实战笔记之二(k-近邻算法)
- 机器学习实战之knn算法pandas实现
- 机器学习实战 - 读书笔记(06) – SVM支持向量机
- 机器学习实战-logistic回归随机梯度上升浅见
- 机器学习实战python版第四章基于概率论的分类方法 朴素贝叶斯