感知机模型的对偶形式
感知机模型 python感知机实现代码
感知机模型的对偶形式也称累积形式,相对于之前的感知机多了一个 ɑi = nɧ ,n表示使用某实例作为误分类点更新参数w,b的次数,如果未被选择为误分类点去更新参数则n=0,ɧ :步长(由最开始给定,表示更新参数的快慢);
w
<
—
—
w
+
ɧ
∗
y
i
∗
x
i
w <—— w + ɧ*yi*xi
w<——w+ɧ∗yi∗xi
b < — — b + ɧ ∗ y i b <—— b + ɧ*yi b<——b+ɧ∗yi
使用xi这一误分类点更新参数的值:
∆
w
=
n
∗
ɧ
∗
y
i
∗
x
i
∆w = n*ɧ*yi*xi
∆w=n∗ɧ∗yi∗xi
∆ b = n ∗ ɧ ∗ y i ∆b = n*ɧ*yi ∆b=n∗ɧ∗yi
则将所有参与更新参数w,b的点累积得:
w
=
w
0
+
n
1
∗
ɧ
∗
y
1
∗
x
1
+
n
2
∗
ɧ
∗
y
2
∗
x
2
+
⋅
⋅
⋅
+
n
i
∗
ɧ
∗
y
i
∗
x
i
w = w~0~ + n~1~*ɧ*y~1~*x~1~+n~2~*ɧ*y~2~*x~2~+···+ni*ɧ*yi*xi
w=w 0 +n 1 ∗ɧ∗y 1 ∗x 1 +n 2 ∗ɧ∗y 2 ∗x 2 +⋅⋅⋅+ni∗ɧ∗yi∗xi
将ni*ɧ使用ɑi表示,则:
w
=
∑
ɑ
i
∗
y
i
∗
x
i
(
i
=
1
−
−
>
i
=
N
;
N
为
训
练
感
知
机
模
型
的
实
例
数
量
,
也
就
是
点
的
个
数
)
w = ∑ ɑi*yi*xi (i=1 --> i=N;N为训练感知机模型的实例数量,也就是点的个数)
w=∑ɑi∗yi∗xi(i=1−−>i=N;N为训练感知机模型的实例数量,也就是点的个数)
算法
(1) 选取初值ɑ = 0,b = 0
(2) 训练集中遍历选取数据(xi,yi)
(3) 判断是否为误分类点,若:
y
j
∗
(
∑
ɑ
i
∗
y
i
∗
x
i
•
x
j
+
b
)
<
=
0
yj*(∑ ɑi*yi*xi•xj+b)<=0
yj∗(∑ɑi∗yi∗xi•xj+b)<=0
则为误分类点,则更新参数
ɑ
i
<
—
—
ɑ
i
+
ɧ
ɑi <—— ɑi + ɧ
ɑi<——ɑi+ɧ
b < — — b + ɧ ∗ y i b <——b+ɧ*yi b<——b+ɧ∗yi
(4) 否则转至(2),直到训练集中无误分类点
- 最终得到参数ɑi,b进而得到w,b,即求得感知机模型
例题2.2
与2.1为同一题,但迭代过程不同
解: