Rocchio算法

来源:互联网 发布:台达plc编程软件win7 编辑:程序博客网 时间:2024/06/05 22:33

   

 

来源:互联网

收集:刘伟民
毕业于:中科院计算所
职业:搜索工程师

感谢原作者

 

 

    其基本思想是使用训练集为每个类构造一个原型向量,构造方法如下:给定一个类,训练集中所有属于这个类的文档对应向量的分量用正数表示,所有不属于这个类的文档对应向量的分量用负数表示,然后把所有的正向量加起来,得到的和向量就是这个类的原型向量。

    这里介绍一下我的理解。比如类别中有很多文档,分别为{a1,a2,...,an}.其中ai都是用向量表示的形式。如果这个文档属于类别A,则将这个向量的分量全部取绝对值(也就是取正值),否则就全部用负数表示。将所有的正向量相加,也就是求得各个分量的质心。

    定义两个向量的相似度为这两个向量夹角的余弦,逐一计算训练集中所有文档和原型向量的相似度,然后按一定的算法从中挑选某个相似度作为界。给定一篇文档,如果这篇文档与原型向量的相似度比界大,则这篇文档属于这个类,否则这篇文档就不属于这个类。Rocchio算法的突出优点是容易实现,计算(训练和分类)特别简单,它通常用来实现衡量分类系统性能的基准系统,而实用的分类系统很少采用这种算法解决具体的分类问题。
    其基本思想不难解释,对于一个词集,和一个分类,总有某些词,这些词一旦出现属于这个分类的可能性就会增加,而另一些词一旦出现属于这个分类的可能性就会降低,那么累计这些正面的,和负面的影响因素,最后由文档分离出的词向量可以得到对于每个类的一个打分,打分越高属于该类的可能性就越大.
    对于某种非此即彼的分类特别合适,比如有两个类别, A, ~A, 任给一个文档,判断属于分类A还是分类~A,可以认为A的特征项均给与正值,~A都给与负值,那么给定一个合理阈值,就很容易做出这种类型的分类.

原创粉丝点击