昨天介绍完SMO算法第一步,今天就要来写这个方法第二步,
而第2步步骤:选取两个点,并计算上下界H和L
C是自定义容许值,之前有说:
现在帮他加一个上限C,所以就会变成
(免得ai 发散)
并且依照
和
可以得知
另外
所以
也就是在每次跌代都要保持这等式,这时上下界为
所以以二维为例,可能结果为: (y要是1或-1)-->类别不一样
(令a1=c(最大值))
最大值H:
(令a1=0(最小值))
最小值L:
和类别一样
所以以此类推
(令a1=0(最大值))
最大值H:
(令a1=c(最小值))
最小值L:
把上述分两组,每一组各3个方程序解联立
1.
2.
就可以得到一开始式子
程序码如下:
一开始先创建选择函数:
import random
def select_J(i, m): #选择i不等於j
j = i
while (j == i):
j = int(random.uniform(0, m))
return j
之後来创建上下界,并设定c
#设定a上界C
C=0.6
#第二步:计算上下界(每个i都要做)
j=select_J(i,len(full_label_data))
#不同边
if (y[i] != y[j]):
L = max(0, a[0][j] - a[0][i])
H = min(C, C + a[0][j] - a[0][i])
#同边
else:
L = max(0, a[0][j] + a[0][i] - C)
H = min(C, a[0][j] + a[0][i])
print("第",i+1,"笔H:",H)
print("第",i+1,"笔L:",L)
这样子就可以求到
第 1 笔H: 0.6
第 1 笔L: 0
第 2 笔H: 0.6
第 2 笔L: 0
第 3 笔H: 0.0
第 3 笔L: 0
第 4 笔H: 0.6
第 4 笔L: 0
第 5 笔H: 0.6
第 5 笔L: 0
第 6 笔H: 0.0
第 6 笔L: 0
第 7 笔H: 0.6
第 7 笔L: 0
第 8 笔H: 0.0
第 8 笔L: 0
第 9 笔H: 0.0
第 9 笔L: 0
第 10 笔H: 0.0
第 10 笔L: 0
第 11 笔H: 0.6
第 11 笔L: 0
第 12 笔H: 0.0
第 12 笔L: 0
第 13 笔H: 0.6
第 13 笔L: 0
第 14 笔H: 0.0
第 14 笔L: 0
第 15 笔H: 0.0
第 15 笔L: 0
第 16 笔H: 0.0
第 16 笔L: 0
第 17 笔H: 0.0
第 17 笔L: 0
第 18 笔H: 0.0
第 18 笔L: 0
第 19 笔H: 0.0
第 19 笔L: 0
第 20 笔H: 0.0
当然这边是没有更新a,所以L和H会是0(之後会更新),另外如果L等於H这样就可以确定a
好,今天支持SMO算法第二步算是完成了,明天就开始写第三部分
视角转回男人身上,男人用轻快的步伐来到森林入口,他看到了入口处的告示牌,只不过上面文字似乎和男孩看到的不太一样,上面写着:请勿进入, 男人笑了笑,随即用手放在告示牌,只见告示牌突然烧了起来,并发出凄惨的尖叫声,然後随即消失在空气中, 男人随即踏着轻快步伐,继续往森林里走
--|我遵守了约定,只是更改了内容,甚麽都不剩|-- CS.MM
<<: 【在 iOS 开发路上的大小事-Day14】Firebase 的登入验证服务介绍
Jconsole介绍 Jconsole是一个JMX相容的监视工具。它使用Java虚拟机器的JMX机制...
“原始密码(Raw password)”和“散列密码(hashed password)”是可行的解决...
如果可以 希望一年只想你一次 可惜 那有一天不想你 如果思念 是你身边空气 可不可以 让我也...
前言 接下来聊聊 Python 中的模组 (Module) ,毕竟 JavaScript 也有所谓的...
前言 相信大家看完上一篇之後,对於HTTP有一个基本的认识了,从这篇开始会介绍一些跟HTTP相关名字...