Data Mining 简明教程
Data Mining - Rule Based Classification
IF-THEN Rules
基于规则的分类器使用了一系列的 IF-THEN 规则来进行分类。我们可以使用下面的方式表达规则:
让我们考虑规则 R1,
R1: IF age = youth AND student = yes
THEN buy_computer = yes
Points to remember −
-
规则的 IF 部分称为 rule antecedent 或 precondition 。
-
规则的 THEN 部分称为 rule consequent 。
-
条件的前提部分包括一个或多个属性测试,并且这些测试在逻辑上是 AND 关系。
-
结果部分包括类预测。
Note − 我们还可以将规则 R1 写成:
R1: (age = youth) ^ (student = yes))(buys computer = yes)
如果一个给定的元组的条件成立,则前件得到满足。
Rule Extraction
这里我们将学习如何通过从决策树中提取 IF-THEN 规则来构建基于规则的分类器。
Points to remember −
从决策树中提取规则的步骤:
-
为从根节点到叶节点的每条路径创建一个规则。
-
要形成规则前件,每个分裂标准在逻辑上都是 ANDed。
-
叶节点持有类预测,形成规则结果。
Rule Induction Using Sequential Covering Algorithm
顺序覆盖算法可用于提取 IF-THEN 规则形成训练数据。我们不需要首先生成决策树。在此算法中,给定类的每个规则都涵盖了该类的许多元组。
一些顺序覆盖算法是 AQ、CN2 和 RIPPER。根据一般策略,规则是一次学到的。每次规则被学到时,规则所覆盖的元组都会被移除并继续处理剩余的元组。这是因为决策树中到每个叶子的路径都对应一条规则。
Note - 决策树归纳可以被认为是同时学习一组规则。
以下是用于一次为一个类学习规则的顺序学习算法。当从类 Ci 中学习规则时,我们希望规则仅涵盖类 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;