zoukankan      html  css  js  c++  java
  • 基于规则的分类——RIPPER算法

           在《分类:基于规则的分类技术》中已经比较详细的介绍了基于规则的分类方法,RIPPER算法则是其中一种具体构造基于规则的分类器的方法。在RIPPER算法中,有几个点是算法的重要构成部分,需要强调一下

    • 规则排序方式

           RIPPER算法中采用的仍然是基于类的规则排序方式,不过独特的地方是,它先将各个类按频率(即类中包含的样本占总样本数的比例)从低到高排序,设(y_{1},y_{2},...,y_{c})是排序后的类,y_{1}是最不频繁的类,y_{c}是最频繁的类,按照《分类:基于规则的分类技术》中介绍的规则生成方法,生成类y_{1},y_{2},...的规则,直至剩下类y_{c},然后类y_{c}作为默认类,这样做的好处是减少数据在作类预测时的比较次数,因为概率最大的类是默认类,这样多数数据只需要做少量的规则比较。

    • 规则的增长

            RIPPER算法使用FOIL信息增益来选择最有的合取项来添加到规则前件中,当规则开始覆盖反例时即停止添加合取项,此时采用IREP剪枝方法,将规则在验证集上剪枝,是否剪枝则需要依据如下度量参数来决定

                                                                                                      frac{p-n}{p+n}

    其中pn分别表示规则在验证集上所覆盖的正例和反例个数,若剪枝后改度量增大,则保留剪枝结果,否则不进行剪枝。剪枝时,从规则末尾的合取项开始。尽管剪枝前规则只覆盖正例,但剪枝后的规则可能会覆盖训练集中部分反例。

    • 建立规则集

    ​​​​​​​       一条规则生成后,是否能够添加到规则集中还需要经过两个条件判断首先,该规则不违反最小描述长度原则(MDL);其次,规则在验证集上的错误率不超过50%。关于最小描述长度原则,这里稍微说明一下。根据维基百科中的解释,最小描述长度原则是奥卡姆剃刀原则形式化后的描述,当,其背后的思想是:在任一给定的资料集内的任何规律性都可用来压缩,也即是在描述资料时,与逐字逐句来描述资料的方式相比,能使用比所需还少的符号,既然如此,总有一种描述方式长度最小,这里长度用计算机中二进制的比特位(bit)来表示。

          不违反最小描述长度原则,指的是在添加规则后,整个规则集的长度增加不超过一定比特位数,默认是64位。

          

    转载于:https://www.cnblogs.com/hgz-dm/p/10886175.html

  • 相关阅读:
    hdu1874 畅通project续 最短路 floyd或dijkstra或spfa
    基于Linux环境Tomcat-MySQL的server搭建
    C++中 pair 的使用方法
    UI 经常用法总结之--- UIWindow UIView (不断更新中)
    LeetCode题解 || Longest Substring Without Repeating Characters (O(n)算法)问题
    HDU 1874 畅通project续 (最短路径)
    android studio 导入第三方库的记录
    android创建桌面快捷键shortcut
    Eclipse:Cannot complete the install because of a conflicting dependency.问题解决
    js保留两位小数的解决的方法
  • 原文地址:https://www.cnblogs.com/twodog/p/12134865.html
Copyright © 2011-2022 走看看