201119西瓜书系列博客---15、规则学习
一、总结
一句话总结:
【规则学习】是【从训练数据中】学习出一组【能用于对未见示例进行判别的规则】
【规则】本身是一个【贪心的搜索过程】
形式化地看,一条规则形如:$$oplus leftarrow f _ { 1 } wedge f _ { 2 } wedge cdots wedge f _ { L }$$
1、【15.1、基本概念】 规则学习的 规则集合和默认规则?
【规则集合】:规则集合中的【每条规则】都可以看作一个【子模型】,【规则集合】是这些子模型的一个【集合】
【默认规则】:规则集合也许【不能覆盖所有的未知示例】,故可【设置一条默认规则】,由它【处理未被规则集合覆盖的示例】。
2、【15.1、基本概念】 规则学习的冲突?
当【同一条示例】被判别结果【不同的多条规则覆盖】时,称发生了【冲突】
尝试解决冲突的方法为【冲突消解】,方法有:【投票法】,【排序法】,【元规则法】
3、【15.1、基本概念】 规则学习的优点?
与【神经网络、SVM】这样的【黑箱模型比】,规则学习具有【更好的解释性】,能使用户【更加直观】地对判别过程有所了解。
数理逻辑具有【极强的表达能力】,【绝大数人类知识】都可通过数理逻辑进行【简洁的刻画和表达】
【逻辑规则的抽象描述】在处理一些【高度复杂的AI任务】时具有【显著的优势】
4、【15.2、序列覆盖】 规则学习的序列覆盖?
【序列覆盖】是指:在训练集上,【每学到一条规则】,就【将该规则覆盖的训练样例去除】,然后剩下的训练样例组成训练集重复以上过程
5、【15.2、序列覆盖】 规则学习产生规则的策略?
【自顶向下】:从比较【一般的规则】开始,【逐渐添加新文字】以【缩小规则覆盖范围】,直到【满足预定条件】为止;也称为【生成-测试】,是规则逐渐特化的过程;【更容易产生泛化性能较好的规则】,对噪声的鲁棒性比后者强得多,常用于【命名规则】。
【自底向上】:从比较【特殊的规则】开始,【逐渐删除文字】以【扩散规则覆盖范围】,直到满足条件为止。亦称【数据驱动方法】,是【规则逐渐泛化】的过程;更【适合训练样本较少】的情形。常用于【一阶规则学习】。
6、【15.3、剪枝优化】 规则学习 剪枝优化?
【剪枝优化】的【目的】是【缓解过拟合风险】,方法有【预剪枝】,【后剪枝】。
后剪枝最常用策略是【减错剪枝(REP)】,其基本做法是:将样例集分为【训练集和验证集】,从训练集上学得规则集后进行【多轮剪枝】,在每一轮穷举所有可能的剪枝操作,然后用验证集【对剪枝产生的所有候选规则进行评估】,【保留最好的那个规则集进行下一轮剪枝】,如此继续,直到剪枝不能在验证集上提高效果为止。
【REP剪枝通常很有效】,但其复杂度是 【O ( m 4 ) O(m^4) O(m4)】,m为训练样例数目。
【IREP(Incremental REP)】将复杂度降到 【O ( m l o g 2 m ) O(mlog^2m) O(mlog2m)】,其做法是:在生成每条规则前,先将当前样例集划分训练集和验证集,在训练集上【生成一条规则r】,立即在验证集上对其进行【REP剪枝】,得到【规则r’】,将其覆盖的样例【删掉】,在更新后的样例集上重复上述过程。
7、【15.4、一阶规则学习】 规则学习 一阶规则学习?
当【超越了命题逻辑的表达能力】,需要用【一阶逻辑】表示,并且要使用【一阶规则学习】。
一阶规则有【强大的表达能力】,能简洁地表达【递归】概念,如:$$( X , Y ) leftarrow ext { 更好 } ( X , Z ) wedge ext { 更好 } ( Z , Y )$$
同时,一阶规则学习很容易【引入领域知识】
8、【15.4、一阶规则学习】 FOIL算法?
【FOIL】是著名的【一阶规则学习算法】,它遵循序贯覆盖框架且采用【自顶向下】的规则归纳策略,与命题规则学习过程类似。由于逻辑变量的存在,FOIL算法在 规则生成时需要【考虑不同的变量组合】。
【使用FOIL增益来选择文字】:$$F _ { - } ext { Gain } = hat { m } _ { + } imes ( log _ { 2 } frac { hat { m } _ { + } } { hat { m } _ { + } + hat { m } _ { - } } - log _ { 2 } frac { m _ { + } } { m _ { + } + m _ { - } } )$$
FOIL可大致看作命题规则学习与归纳逻辑程序设计之间的【过渡】,其自顶向下的规则生成过程不能支持函数和逻辑表达式嵌套,因此规则能力仍有不足;但它是把命题规则学习过程通过变量替换等操作直接转化为一阶规则学习,因此比一般归纳逻辑程序设计技术更【高效】。
9、【15.5、归纳逻辑程序设计】 规则学习 归纳逻辑程序设计?
【归纳逻辑程序设计】在一阶规则学习中引入了【函数和逻辑表达式嵌套】:使得机器学习系统具备了【更为强大的表达能力】,ILP可看作用机器学习技术来解决基于背景知识的逻辑程序归纳,其学得的规则可被PROLOG等逻辑程序设计语言直接使用。
【归纳逻辑程序】设计采用【自底向上】的规则生成策略,直接将一个或多个正例所对应的具体事例作为【初始规则】,再对规则进行【逐步泛化】以增加其对样例的覆盖率。
二、15、规则学习
转自或参考:西瓜书学习笔记——第十五章:规则学习
https://blog.csdn.net/shichensuyu/article/details/99587447