IF-THEN 规则
基于规则的分类做出一套分级IF-THEN规则的使用。我们可以表达的规则,在以下选项:
让我们考虑一个规则,R1,
R1: IF age=youth AND student=yes THEN buy_computer=yes
要记住的要点:
-
规则的IF部分称为规则先决条件或前提。
-
规则的THEN部分称为规则的结论。
-
前事件部分的条件包括一个或多个属性的测试和这些测试逻辑与。
-
随之而来的部分包括类的预测。
注:
我们也可以写规则R1如下:R1: (age = youth) ^ (student = yes))(buys computer = yes)
如果该条件成立的真正对于一个给定的元组,那么前提是满意的。
规则提取
在这里,我们将学习如何建立一个基于规则的分类器通过提取IF-THEN规则的决策树。要记住的要点从决策树提取规则:
-
一个规则是从根到叶节点的每条路径创建。
-
从规则的前提每个分裂标准逻辑AND运算。
-
叶节点包含类预测,形成规则的结论。
感应条使用顺序覆盖算法
连续的覆盖算法可以用来提取IF-THEN规则形成训练数据。我们不要求首先生成一个决策树。在该算法中每条规则对于一个给定的类包含了很多该类的元组。
一些连续覆盖算法是AQ,CN2和RIPPER。按照一般的策略规则都学会了一次。对于每个时间规则了解到,包括的规则的元组将被删除,该过程继续进行的元组的其余部分。这是因为路径在决策树每个叶子对应的规则。
注:决策树归纳可以被看作是同时学习一组规则。
以下是排序学习算法,其中规则是在同一时间学会了一课。当学习从一类词的规则,我们希望规则涵盖了从C级只有所有元组和元组没有任何形式的其他类。
Algorithm: Sequential Covering Input: D, a data set class-labeled tuples, Att_vals, the set of all attributes and their possible values. Output: A Set of IF-THEN rules. Method: Rule_set={ }; // initial set of rules learned is empty for each class c do repeat Rule = Learn_One_Rule(D, Att_valls, c); remove tuples covered by Rule form D; until termination condition; Rule_set=Rule_set+Rule; // add a new rule to rule-set end for return Rule_Set;
修剪规则
被修剪的原则是由于以下原因:
-
质量的评估是对原训练数据集进行。该规则可在训练数据,但不那么后续数据表现良好。这就是为什么该规则的修剪是必要的。
-
该规则是通过消除相合修剪。规则R被修剪,如果R的修剪版本有什么比被评估在一个独立的元组集更高的质量。
FOIL是规则修剪的简单有效的方法之一。对于给定的规则R,
pos和neg是由R覆盖,分别为正元组数。
注: 此值将增加与R对修剪集的准确性。因此,如果FOIL_Prune值是对R的修剪版本高,那么我们修剪R。