public class Rule extends java.lang.Object implements java.io.Serializable, java.lang.Cloneable, RevisionHandler
Modifier and Type | Field and Description |
---|---|
static java.util.Comparator |
confirmationComparator
Comparator used to compare two rules according to their confirmation value.
|
static java.util.Comparator |
confirmationThenObservedComparator
Comparator used to compare two rules according to their confirmation and
then their observed number of counter-instances.
|
static java.util.Comparator |
observedComparator
Comparator used to compare two rules according to their observed number
of counter-instances.
|
static java.util.Comparator |
optimisticComparator
Comparator used to compare two rules according to their optimistic estimate.
|
static java.util.Comparator |
optimisticThenObservedComparator
Comparator used to compare two rules according to their optimistic estimate
and then their observed number of counter-instances.
|
Constructor and Description |
---|
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.
|
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.
|
Modifier and Type | Method and Description |
---|---|
boolean |
bodyContains(Literal lit)
Test if the body of the rule contains a literal.
|
void |
calculateConfirmation()
Calculate the confirmation of this rule.
|
void |
calculateOptimistic()
Calculate the optimistic estimate of this rule.
|
java.lang.Object |
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 |
getConfirmation()
Get the confirmation value of this rule.
|
double |
getExpectedFrequency()
Get the expected frequency of counter-instances of this rule.
|
double |
getExpectedNumber() |
double |
getFPRate()
Get the rate of False Positive instances of this rule.
|
double |
getObservedFrequency()
Get the observed frequency of counter-instances of this rule in the dataset.
|
int |
getObservedNumber()
Get the observed number of counter-instances of this rule in the dataset.
|
double |
getOptimistic()
Get the optimistic estimate of the confirmation obtained by refining
this rule.
|
java.lang.String |
getRevision()
Returns the revision string.
|
double |
getTPRate()
Get the rate of True Positive instances of this rule.
|
boolean |
hasFalseHead()
Test if the head of the rule is false.
|
boolean |
hasTrueBody()
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 |
numLiterals()
Give the number of literals in this rule.
|
boolean |
overFrequencyThreshold(double minFrequency)
Test if this rule is over the frequency threshold.
|
SimpleLinkedList |
refine(java.util.ArrayList predicates)
Refine a rule by adding literal from a set of predictes.
|
java.lang.String |
rocToString()
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 |
subsumes(Rule otherRule)
Test if this rule subsumes another rule.
|
java.lang.String |
toString()
Retrun a String for this rule.
|
void |
upDate(Instances instances)
Update the number of counter-instances of this rule in the dataset.
|
java.lang.String |
valuesToString()
Return a String giving the confirmation and optimistic estimate of
this rule.
|
public static java.util.Comparator confirmationComparator
public static java.util.Comparator observedComparator
public static java.util.Comparator optimisticComparator
public static java.util.Comparator confirmationThenObservedComparator
public static java.util.Comparator optimisticThenObservedComparator
public Rule(boolean repeatPredicate, int maxLiterals, boolean negBody, boolean negHead, boolean classRule, boolean horn)
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.public Rule(Instances instances, boolean repeatPredicate, int maxLiterals, boolean negBody, boolean negHead, boolean classRule, boolean horn)
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.public java.lang.Object clone()
clone
in class java.lang.Object
public boolean counterInstance(Instance instance)
instance
- The instance to test.public void upDate(Instances instances)
instances
- The dataset.public double getConfirmation()
public double getOptimistic()
public double getExpectedNumber()
public double getExpectedFrequency()
public int getObservedNumber()
public double getObservedFrequency()
public double getTPRate()
public double getFPRate()
public void calculateConfirmation()
public void calculateOptimistic()
public boolean isEmpty()
public int numLiterals()
public SimpleLinkedList refine(java.util.ArrayList predicates)
predicates
- The predicates available.public boolean subsumes(Rule otherRule)
otherRule
- The other rule.public boolean sameClauseAs(Rule otherRule)
otherRule
- The other rule.public boolean equivalentTo(Rule otherRule)
otherRule
- The other rule.public boolean bodyContains(Literal lit)
lit
- The literal to look for.public boolean headContains(Literal lit)
lit
- The literal to look for.public boolean overFrequencyThreshold(double minFrequency)
minFrequency
- The frequency threshold.public boolean hasTrueBody()
public boolean hasFalseHead()
public java.lang.String valuesToString()
public java.lang.String rocToString()
public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String getRevision()
getRevision
in interface RevisionHandler