例证:银行发信用卡的老问题。
把客户各方面信息作为特征向量X,令总共有d个特征,每个特征的影响力作为权重w。则用综合信息的情况来判断是否发其信用卡,超过限定值threshold便发,否则不发。
利用y=sign(x)函数的特性(x大于0时,y取+1,x小于0时,y取和-1。),便转化为
又有:
这时候就转化为求W’T与0的大小比较了,大于零,y=1,小于0,y=-1.
图中xn,yn均指发现错误W时,x,y实际的值。
这个是通过大神理解的:w是直线的法向量。若令平面直线是w1x1+w2x2=0,比如x1+x2=0,其中w=(1,1),作图,则OW为法向量。
总结: 错误为:
若W’T>0,而y<0,更新为Wt-Xn;
若W’T<0,而y>0,更新为Wt+Xn.
此时PLA算法要做的事情在我看来有两件:
1.选定threshold即w0,计算内积,
2.找到错误,迭代更新。
PLA算法只适合能停下来的问题,即能全部正确分类的问题,即线性可分的问题,而对于非线性可分的问题需要用到其他。
具体分析可参见大神的文章
http://blog.csdn.net/red_stone1/article/details/70866527
我只是做做笔记、总结,写简洁点方便自己下次看。
而代码部分参考:
http://blog.csdn.net/plasticplane/article/details/17306839
我在初学模仿阶段啊,甚至都看不太懂,用他的代码,自己想办法弄懂,做做笔记。