Data Mining: Practical Machine Learning Tools and Techniques, Second Edition

(Brent) #1

4.4 COVERING ALGORITHMS: CONSTRUCTING RULES 111


that it assigns cases to the class in question that actually do not have that class.
PRISM continues adding clauses to each rule until it is perfect: its accuracy is
100%. Figure 4.8 gives a summary of the algorithm. The outer loop iterates over
the classes, generating rules for each class in turn. Note that we reinitialize to
the full set of examples each time round. Then we create rules for that class and
remove the examples from the set until there are none of that class left. When-
ever we create a rule, start with an empty rule (which covers all the examples),
and then restrict it by adding tests until it covers only examples of the desired
class. At each stage choose the most promising test, that is, the one that maxi-
mizes the accuracy of the rule. Finally, break ties by selecting the test with great-
est coverage.

Rules versus decision lists


Consider the rules produced for a particular class, that is, the algorithm in Figure
4.8 with the outer loop removed. It seems clear from the way that these rules
are produced that they are intended to be interpreted in order, that is, as a deci-
sion list, testing the rules in turn until one applies and then using that. This is
because the instances covered by a new rule are removed from the instance set
as soon as the rule is completed (in the third line from the end of the code in
Figure 4.8): thus subsequent rules are designed for instances that are notcovered
by the rule. However, although it appears that we are supposed to check the rules
in turn, we do not have to do so. Consider that any subsequent rules generated
for this class will have the same effect—they all predict the same class. This
means that it does not matter what order they are executed in: either a rule will

For each class C
Initialize E to the instance set
While E contains instances in class C
Create a rule R with an empty left-hand side that predicts class C
Until R is perfect (or there are no more attributes to use) do
For each attribute A not mentioned in R, and each value v,
Consider adding the condition A=v to the LHS of R
Select A and v to maximize the accuracy p/t
(break ties by choosing the condition with the largest p)
Add A=v to R
Remove the instances covered by R from E

Figure 4.8Pseudocode for a basic rule learner.

Free download pdf