10.学习规则集合

来源:互联网 发布:java工程师等级 编辑:程序博客网 时间:2024/05/01 19:23

目标是学习一个由多个if-then描述的规则。

一阶规则:有变量的谓词逻辑if-then语句。一阶horn子句。

算法十五:序列覆盖算法,通过一些正反例学习一条规则,如果规则的性能足够好,commit规则并移除学习使用过的数据。每单次学习都是学习一个合取规则,使用贪婪即可。

柱状搜索,在每次贪心时,对k个最可能成员进行下一步动作。CN2算法。

变种:只学习正例,默认否定反例;AQ算法(??)。

生成再测试与样例驱动搜索。

性能评估函数:相对频率,正确分类的比例;精度的m-估计,带先验概率的估计;熵,sum(pi*log(pi)),pi是匹配规则前件的样例的集合中目标函数取第i个值的样例所占比例。

所有表达式由常量、变量、谓词符号、函数符号组成。项是任意常量变量及其上的函数。文字是项上的谓词或否定。子句是多个文字的析取。if 子句体 then 推论。

算法十六:FOIL算法,学习一阶规则(horn去除函数符号)。整体是对总规则的泛化(增加可认证的正例),每次单个规则都是通过正反实例特化一个前件(在所有前件文字中选择最优的),此前件覆盖某些未归类的正例。

特化前件,新文字必须是包含一个已有变量和[0,n]个新变量的谓词;或已有变量上的==。

最优选择,Foil_Gain函数,描述的是编码正例的位数由于L的增加减少的位数。即特化的能力,去掉了多少正例。

归纳是演绎的逆过程。

机器学习就是 对any<xi,f(xi)>有(背景知识and假设and xi)演绎出 f(xi)。

归纳,C = (C1 - {L})U(C2 - {否L})。逆归纳,C2 = (C-(C1 - {L}))U {否L}。

原创粉丝点击