基于数据挖掘的分类规则

IF-THEN 规则

基于规则的分类做出一套分级IF-THEN规则的使用。我们可以表达的规则,在以下选项:

 

IF condition THEN conclusion

 

让我们考虑一个规则,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,

 

FOIL_Prune = pos-neg/ pos+neg

 

pos和neg是由R覆盖,分别为正元组数。

注:  此值将增加与R对修剪集的准确性。因此,如果FOIL_Prune值是对R的修剪版本高,那么我们修剪R。


上一篇: 数据挖掘贝叶斯分类 下一篇: 数据挖掘分类方法