机器学习中规则学习的一些知识

机器学习中的"规则" (rule) 通常是指语义明确、能描述数据分布所 隐含的客观规律或领域概念、可写成"若……,则……"形式的逻辑规则 [Fürnkranz et al., 2012 J . "规则学习" (rule learning) 是从训练数据中学习出 一组能用于对未见示例进行判别的规则.

 

其中逻辑蕴含符号"←"右边部分称为"规则件" (body) ,表示该条规则的前 提,左边部分称为"规则头" (head) ,表示该条规则的结果.规则体是由逻辑 艾字(literal) fk 组成的合取式(conjunction) ,其中合取符号"^"用来表示"井 且"每个文字 fk 都是对示例属性进行检验的布尔表达式,例如"(色泽工乌 黑)"或" -,(根蒂=硬挺)" . 是规则体中逻辑文字的个数,称为规则的长度. 规则头的"E9"同样是逻辑文字?一般用来表示规则所判定的目标类别或概念, 例如"好瓜"这样的逻辑规则也被称为 "iιthen 规则"

与神经网络、支持向量机这样的"黑箱模型"相比,规则学习具有更好的 时解释性,能使用户更直观地对判别过程有所了解.另一方面?数理逻辑具有 极强的表达能力,绝大多数人类知识都能通过数理逻辑进行简洁的刻画和表达.显然,规则集合中的每条规则都可看作一个子模型,规则集合是这些子模 型的一个集成.当同一个示例被判别结果不同的多条规则覆盖时,称发生了 "忡突" (confl. ict) ,解决冲突的办法称为"冲突消解" (confl.ict resolution). 用的冲突消解策略有投票法、排序法、元规则法等.投票法是将判别相同的规 则数最多的结果作为最终结果.排序法是在规则集合上定义一个顺序,在发生 冲突时使用排序最前的规则;相应的规则学习过程称为"带序规则" (ordered rule) 学习或"优先级规则" (priority rule) 学习.元规则法是根据领域知识事先 设定一些"元规则" (meta-rule) ,即关于规则的规则'例如"发生忡突时使吏用 长度最小的规则

此夕外卡'从训练集学得的规则集合也许不能覆盖所有可能的未见示例,例如 前述规则集合冗无法对"根蒂=蜷缩"、 "脐部:稍凹"且"纹理=清晰"的 示例进行判别;这种情况在属性数目很多时常出现.因此,规则学习算法通常会 设置一条"默认规则" (default rule) ,由'自来处理规则集合未覆盖的样本;例如 为冗增加一条默认规则"未被规则 覆盖的都不是好瓜" 

规则学习的目标是产生一个能覆盖尽可能多的样例的规则集.最直接 的做法是"序贯覆盖" (sequential covering) ,即遥条归纣:在训练集上每学 到一条规则,就将该规则覆盖的训练样例去除,然后以剩下的训练样例组 成训练集重复仁述过程.由于每次只处理一部分数据,因此也被称为"分 治" (separate-and-conquer) 策略.

 规则生成过程中涉及一个评估规则优劣的标准,在上面的例子中使用的标 准是:先考虑、规则准确率,准确率相同时考虑覆盖样例数,再相同时考虑属性次 序.现实应用中可根据具体任务情况设计适当的标准.

由于序贯覆盖法简单有效?几乎所有规则学习算法都以它为基本框架.它 能方便地推广到多分类问题上?只需将每类分别处理即可:当学习关于第 的规则时,将所有属于类别 的样本作为正例,其他类别的样本作为反例.

规则生成本质上是一个贪心搜索过程,需有一定的机制来缓解过拟合的风 险,最常见的做法是剪枝(pruning). 与决策树相似?剪枝可发生在规则生长过 程中,即"预剪枝'\也可发生在规则产生后,即"后剪枝"通常是基于某种 性能度量指标来评估增/删逻辑文字前后的规则性能,或增/删规则前后的规则 集性能,从而判断是否要进行剪枝.

剪枝还可借助统计显著性检验来进行.例如 CN2 算法 [Clark and Niblett, 1989J 在预剪枝时,假设用规则集 草行预测必须显著优于直接基于训练样例集 后验概率分布进行预测.为便于计算, CN2 使用了似然率统计量(Likelihood Ratio St l1tistics ,简称 LRS). m+ 一分别表示训练样例集中的正、反例数 目,仇十,仇一分别表示规则(集)覆盖的正、反例数日,则有

若将剪枝机制与其他一些后处理手段结合起来对规则集进行优化,则往往 能获得更好的效果.以著名的规则学习算法 RIPPER [Cohen, 1995] 为例,其泛 化性能超过很多决策树算法?而且学习速度也比大多数决策树算法更快,奥妙 就在于将剪枝与后处理优化相结合. 

为什么 RIPPER 的优化策略会有效呢?原因很简单:最初生成 毛的时候, 规则是按序生成的,每条规则都没有对其后产生的规则加以考虑,这样的贪心 算法本质常导致算法陷入局部最优 RIPPER 的后处理优化过程将冗中的所 有规则放在一起重新加以优化,恰是通过全局的考虑来缓解贪心算法的局部性, 从而往往能得到更好的效果 [Für ranz et al., 2012].

受限于命题逻辑表达能力命题规则学习难以处理对象之间的"关 系" (relation) ,而关系信息在很多任务中非常重要.例如,我们在现实世界挑 选西瓜时?通常很难把水果摊上所有西瓜的特征用属性值描站出来,因为我们 很难判断:色泽看起来多深才叫"色泽青绿" ?敲起来声音多低才叫"敲声沉 闷" ?比较现实的做法是将西瓜进行相互比较,例如,"瓜 的颜色比瓜 深,并且瓜 的根蒂比瓜 更蜷",因此"瓜 比瓜 更好"然而,这己超越 了命题逻辑的表达能力,需用一阶逻辑表示?并且要使用一阶规则学习.

归纳逻辑程序设计采用自底向上的规则生成策略,直接将一个或多个正例 所对应的具体事实(grounded fact) 作为初始规则,再对规则逐步进行泛化以增 加其对样例的覆盖率.泛化操作可以是将规则中的常量替换为逻辑变量,也可 以是删除规则体中的某个文字.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值