什么是 RIPPER 算法?

它是一种广泛使用的规则归纳算法,称为 RIPPER。该算法几乎与几个训练实例呈线性扩展,特别适合从具有重载类分布的数据集构建模型。RIPPER 也适用于嘈杂的数据集,因为它使用验证集来防止模型过度拟合。

RIPPER 选择多数类作为其默认类,并了解识别少数类的规则。对于多类问题,这些类根据其频率是系列。

令 (y 1 y 2 ...y c ) 为有序类,其中 y 1是最不频繁的类,而 y c是最频繁的类。在第一次迭代中,属于 y 1的实例被标记为正例,而属于其他类的实例被标记为负例。

顺序覆盖方法可用于生成区分正例和负例的规则。接下来,RIPPER 提取将 y 2与其他剩余类区分开来的规则。重复这个过程,直到剩下 y c,它被指定为默认类。

RIPPER 使用从通用到特定的方法来增加规则和 FOIL 的数据增益度量来选择要插入到规则前件中的最佳连接。当规则开始覆盖否定实例时,它会停止插入连词。

新规则根据其在验证集上的实现进行修剪。计算以下指标以确定是否需要修剪 - (pn)/(p+n),其中p(n)是规则涵盖的验证集中正(负)示例的数量。

该指标与规则在验证集上的准确性单调相关。如果在剪枝后度量得到增强,则连词被消除。修剪从插入规则的最后一个连接开始完成。例如,给定规则 ABCD → y,RIPPER 检查是否应首先修剪 D,然后是 CD、BCD 等。虽然初始规则仅涵盖正例,但修剪后的规则可以涵盖训练集中的多个负例。

制定规则后,该规则涵盖的一些正面和负面实例被移除。只要不违反基于最小描述长度原则的停止条件,该规则就会被添加到规则集中。

如果新规则将规则集的总表示长度提高了最小 d 位,则 RIPPER 停止将规则插入其规则集中(默认情况下,d 选择为 64 位)。RIPPER 使用的另一个停止条件是规则在验证集上的错误率不能超过 50%。RIPPER 实现了更多的优化步骤来决定规则集中的几个现有规则是否可以被更多的替代规则恢复。

以上是 什么是 RIPPER 算法? 的全部内容, 来源链接: utcz.com/z/297102.html

回到顶部