Voted Perceptron(投票感知器算法)

来源:互联网 发布:计算多个excel表格数据 编辑:程序博客网 时间:2024/06/05 12:47

方法说明:

       Voted Perceptron算法基于Rosenblatt and Frank在1957年提出的感知器算法,它充分利用了具有大分界面的线性可分数据。该算法具有实现简单,比SVM更高效的特点,也被运用于使用核函数的高维空间问题中。有人[Manabu Sassano, IJCNLP]在自然语言处理实验中比较了Voted Perceptron和SVM的分类效率,发现Voted Perceptron与SVM准确性相当,但学习时间和预测速度略胜一筹。

方法简介:

       假设特征向量为X,|X|表示X的欧氏长度,X的标签y的取值为{-1,1}。该算法初始一个0预测向量V,V用于以后预测新的特征向量X的标签。即y'=sign(v.x)。如果预测值y'不同于真实值y,则更新预测向量v,即v=v+yx。如果y与y'相同,则v不变。这个过程反复进行。如果数据是线性可分,该算法已被证明为只会预测有限次错误。因此,如果反复训练数据,V将会收敛到一个能正确分类所有X的向量。预测错误的次数是O(|#y1-#y-1|)的,即错误的次数与y为1与y为-1的次数差有关。

      在训练过程中,可以存储更多信息可以在测试集上产生更好的预测效果。在发现预测错误后,记录此时的预测向量V。当下一个预测错误产生时,我们计算该V预测正确的次数。将预测正确的次数作为预测向量V的权重。当测试过程中预测一个向量的标签时,计算每个预测向量的预测值-1或1,然后用权重组合这些预测值,得到一个最终的预测值。该方法基于这样的直觉:既然某个预测向量能产生更多的正确预测值,那就应该有更大的权重。

      详细算法如下图:


原文:http://malt.ml.cmu.edu/mw/index.php/Voted_Perceptron