Package weka.associations.tertius
Class Rule
java.lang.Object
weka.associations.tertius.Rule
- All Implemented Interfaces:
Serializable
,Cloneable
,RevisionHandler
Class representing a rule with a body and a head.
- Version:
- $Revision: 1.7 $
- Author:
- Amelie Deltour
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic Comparator
Comparator used to compare two rules according to their confirmation value.static Comparator
Comparator used to compare two rules according to their confirmation and then their observed number of counter-instances.static Comparator
Comparator used to compare two rules according to their observed number of counter-instances.static Comparator
Comparator used to compare two rules according to their optimistic estimate.static Comparator
Comparator used to compare two rules according to their optimistic estimate and then their observed number of counter-instances. -
Constructor Summary
ConstructorsConstructorDescriptionRule
(boolean repeatPredicate, int maxLiterals, boolean negBody, boolean negHead, boolean classRule, boolean horn) Constructor for a rule when the counter-instances are not stored, giving all the constraints applied to this rule.Rule
(Instances instances, boolean repeatPredicate, int maxLiterals, boolean negBody, boolean negHead, boolean classRule, boolean horn) Constructor for a rule when the counter-instances are stored, giving all the constraints applied to this rule. -
Method Summary
Modifier and TypeMethodDescriptionboolean
bodyContains
(Literal lit) Test if the body of the rule contains a literal.void
Calculate the confirmation of this rule.void
Calculate the optimistic estimate of this rule.clone()
Returns a shallow copy of this rule.boolean
counterInstance
(Instance instance) Test if an instance is a counter-instance of this rule.boolean
equivalentTo
(Rule otherRule) Test if this rule is equivalent to another rule.double
Get the confirmation value of this rule.double
Get the expected frequency of counter-instances of this rule.double
double
Get the rate of False Positive instances of this rule.double
Get the observed frequency of counter-instances of this rule in the dataset.int
Get the observed number of counter-instances of this rule in the dataset.double
Get the optimistic estimate of the confirmation obtained by refining this rule.Returns the revision string.double
Get the rate of True Positive instances of this rule.boolean
Test if the head of the rule is false.boolean
Test if the body of the rule is true.boolean
headContains
(Literal lit) Test if the head of the rule contains a literal.boolean
isEmpty()
Test if this rule is empty.int
Give the number of literals in this rule.boolean
overFrequencyThreshold
(double minFrequency) Test if this rule is over the frequency threshold.Refine a rule by adding literal from a set of predictes.Return a String giving the TP-rate and FP-rate of this rule.boolean
sameClauseAs
(Rule otherRule) Test if this rule and another rule correspond to the same clause.boolean
Test if this rule subsumes another rule.toString()
Retrun a String for this rule.void
Update the number of counter-instances of this rule in the dataset.Return a String giving the confirmation and optimistic estimate of this rule.
-
Field Details
-
confirmationComparator
Comparator used to compare two rules according to their confirmation value. -
observedComparator
Comparator used to compare two rules according to their observed number of counter-instances. -
optimisticComparator
Comparator used to compare two rules according to their optimistic estimate. -
confirmationThenObservedComparator
Comparator used to compare two rules according to their confirmation and then their observed number of counter-instances. -
optimisticThenObservedComparator
Comparator used to compare two rules according to their optimistic estimate and then their observed number of counter-instances.
-
-
Constructor Details
-
Rule
public Rule(boolean repeatPredicate, int maxLiterals, boolean negBody, boolean negHead, boolean classRule, boolean horn) Constructor for a rule when the counter-instances are not stored, giving all the constraints applied to this rule.- Parameters:
repeatPredicate
- True if predicates can be repeated.maxLiterals
- Maximum number of literals.negBody
- True if negation is allowed in the body.negHead
- True if negation is allowed in the head.classRule
- True if the rule is a classification rule.horn
- True if the rule is a horn clause.
-
Rule
public Rule(Instances instances, boolean repeatPredicate, int maxLiterals, boolean negBody, boolean negHead, boolean classRule, boolean horn) Constructor for a rule when the counter-instances are stored, giving all the constraints applied to this rule. The counter-instances are initialized to all the instances in the dataset.- Parameters:
instances
- The dataset.repeatPredicate
- True if predicates can be repeated.maxLiterals
- Maximum number of literals.negBody
- True if negation is allowed in the body.negHead
- True if negation is allowed in the head.classRule
- True if the rule is a classification rule.horn
- True if the rule is a horn clause.
-
-
Method Details
-
clone
Returns a shallow copy of this rule. The structured is copied but the literals themselves are not copied.- Returns:
- A copy of this Rule.
-
counterInstance
Test if an instance is a counter-instance of this rule.- Parameters:
instance
- The instance to test.- Returns:
- True if the instance is a counter-instance.
-
upDate
Update the number of counter-instances of this rule in the dataset. This method should be used is the rule does not store its counter-instances.- Parameters:
instances
- The dataset.
-
getConfirmation
public double getConfirmation()Get the confirmation value of this rule.- Returns:
- The confirmation.
-
getOptimistic
public double getOptimistic()Get the optimistic estimate of the confirmation obtained by refining this rule.- Returns:
- The optimistic estimate.
-
getExpectedNumber
public double getExpectedNumber() -
getExpectedFrequency
public double getExpectedFrequency()Get the expected frequency of counter-instances of this rule.- Returns:
- The expected frequency of counter-instances.
-
getObservedNumber
public int getObservedNumber()Get the observed number of counter-instances of this rule in the dataset.- Returns:
- The observed number of counter-instances.
-
getObservedFrequency
public double getObservedFrequency()Get the observed frequency of counter-instances of this rule in the dataset.- Returns:
- The expected frequency of counter-instances.
-
getTPRate
public double getTPRate()Get the rate of True Positive instances of this rule.- Returns:
- The TP-rate.
-
getFPRate
public double getFPRate()Get the rate of False Positive instances of this rule.- Returns:
- The FP-rate.
-
calculateConfirmation
public void calculateConfirmation()Calculate the confirmation of this rule. -
calculateOptimistic
public void calculateOptimistic()Calculate the optimistic estimate of this rule. -
isEmpty
public boolean isEmpty()Test if this rule is empty.- Returns:
- True if it is the empty rule.
-
numLiterals
public int numLiterals()Give the number of literals in this rule.- Returns:
- The number of literals.
-
refine
Refine a rule by adding literal from a set of predictes.- Parameters:
predicates
- The predicates available.- Returns:
- The list of the children obtained by refining the rule.
-
subsumes
Test if this rule subsumes another rule.- Parameters:
otherRule
- The other rule.- Returns:
- True if the other rule is subsumed.
-
sameClauseAs
Test if this rule and another rule correspond to the same clause.- Parameters:
otherRule
- The other rule.- Returns:
- True if both rules correspond to the same clause.
-
equivalentTo
Test if this rule is equivalent to another rule.- Parameters:
otherRule
- The other rule.- Returns:
- True if both rules are equivalent.
-
bodyContains
Test if the body of the rule contains a literal.- Parameters:
lit
- The literal to look for.- Returns:
- True if the literal is contained in the body of the rule.
-
headContains
Test if the head of the rule contains a literal.- Parameters:
lit
- The literal to look for.- Returns:
- True if the literal is contained in the head of the rule.
-
overFrequencyThreshold
public boolean overFrequencyThreshold(double minFrequency) Test if this rule is over the frequency threshold.- Parameters:
minFrequency
- The frequency threshold.- Returns:
- True if the rule is over the threshold.
-
hasTrueBody
public boolean hasTrueBody()Test if the body of the rule is true.- Returns:
- True if the body is always satisfied.
-
hasFalseHead
public boolean hasFalseHead()Test if the head of the rule is false.- Returns:
- True if the body is never satisfied.
-
valuesToString
Return a String giving the confirmation and optimistic estimate of this rule.- Returns:
- A String with the values of the rule.
-
rocToString
Return a String giving the TP-rate and FP-rate of this rule.- Returns:
- A String with the values of the rule.
-
toString
Retrun a String for this rule. -
getRevision
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Returns:
- the revision
-