感知机对偶形式手算过程

李航《统计学习方法》第二章

 

 手算过程开始

符号说明:(A,B)表示A与B的内积 

首先\alpha _{i}都是0,因为每个都没有误分,因此b=\alpha_{i}*y_{i}=0*1+0*1+0*-1=0,所以这就是表2.2的第一列

接着,就是进入迭代过程,首先计算第一个点

\\y_{i}(\sum \alpha yx_{i} *x_{j}+b)\\=1*(0*1*(3,3)+0*1*(4,3)+0*-1*(1,1),(3,3))+0\\=0

那么就出现误分类,则此时\alpha_{1}=1,\alpha_{2}=0,\alpha_{3}=0,而b=1*1+0*,+0*-1=1,这就是表2.2的第二列

接着进行判断,第二个点,发现没有误分类,进行判断第三个点

\\y_{i}(\sum \alpha yx_{i} *x_{j}+b)\\=-1*((1*1*(3,3)+0*1*(4,3)+0*-1*(1,1),(1,1))+1)\\=-1*(((3,3),(1,1))+1)\\=-(6+1)\\=-7<0 

因此该点为误分类点,此时\alpha_{1}=1,\alpha_{2}=0,\alpha_{3}=1,而b=1*1+0*,+1*-1=0,这就是表2.2的第三列

接着进行判断该样本是否被正常分类

\\y_{i}(\sum \alpha yx_{i} *x_{j}+b)\\=-1*((1*1*(3,3)+0*1*(4,3)+1*-1*(1,1),(1,1))+0)\\=-1*(((2,2),(1,1))+0)\\=-(4+0)\\=-4<0

因此该点 仍为误分类点,此时 \alpha_{1}=1,\alpha_{2}=0,\alpha_{3}=2,而b=1*1+0*,+2*-1=-1,这就是表2.2的第四列 

因为这个点仍然没有被分类正确,所以接着还进行判断该点,

\\y_{i}(\sum \alpha yx_{i} *x_{j}+b)\\=-1*((1*1*(3,3)+0*1*(4,3)+2*-1*(1,1),(1,1))-1)\\=-1*(((1,1),(1,1))-1)\\=-(2-1)\\=-1<0 

因此该点仍然被错分,此时\alpha_{1}=1,\alpha_{2}=0,\alpha_{3}=3,而b=1*1+0*,+3*-1=-2,emm,电子版这里出错了,纸质版没问题,下面是纸质版的表格,,手打出来

k 0 1 2 3 4 5 6 7
    x_{1} x_{3} x3 x3 x1 x3 x3
\alpha_{1}

0

1 1 1 1 2 2 2
\alpha_{2} 0 0 0 0 0 0 0 0
\alpha_{3} 0 0 1 2 3 3 4 5
b 0 1 0 -1 -2 -1 -2 3

这才是对的,和我算的一致。后面的部分不算了,就这个意思。至于书上说Gram矩阵是干什么的,我的理解是编程时候,先算出来,然后进行计算内积的时候,不用先相加在算内积,而是先算内积再相加,这样能减少计算过程。

猜你喜欢

转载自blog.csdn.net/bingfeiqiji/article/details/82877670