weka.associations
Class Tertius

java.lang.Object
  extended by weka.associations.AbstractAssociator
      extended by weka.associations.Tertius
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.lang.Runnable, Associator, CapabilitiesHandler, OptionHandler, RevisionHandler, TechnicalInformationHandler

public class Tertius
extends AbstractAssociator
implements OptionHandler, java.lang.Runnable, TechnicalInformationHandler

Finds rules according to confirmation measure (Tertius-type algorithm).

For more information see:

P. A. Flach, N. Lachiche (1999). Confirmation-Guided Discovery of first-order rules with Tertius. Machine Learning. 42:61-95.

BibTeX:

 @article{Flach1999,
    author = {P. A. Flach and N. Lachiche},
    journal = {Machine Learning},
    pages = {61-95},
    title = {Confirmation-Guided Discovery of first-order rules with Tertius},
    volume = {42},
    year = {1999}
 }
 

Valid options are:

 -K <number of values in result>
  Set maximum number of confirmation  values in the result. (default: 10)
 -F <frequency threshold>
  Set frequency threshold for pruning. (default: 0)
 -C <confirmation threshold>
  Set confirmation threshold. (default: 0)
 -N <noise threshold>
  Set noise threshold : maximum frequency of counter-examples.
  0 gives only satisfied rules. (default: 1)
 -R
  Allow attributes to be repeated in a same rule.
 -L <number of literals>
  Set maximum number of literals in a rule. (default: 4)
 -G <0=no negation | 1=body | 2=head | 3=body and head>
  Set the negations in the rule. (default: 0)
 -S
  Consider only classification rules.
 -c <class index>
  Set index of class attribute. (default: last).
 -H
  Consider only horn clauses.
 -E
  Keep equivalent rules.
 -M
  Keep same clauses.
 -T
  Keep subsumed rules.
 -I <0=always match | 1=never match | 2=significant>
  Set the way to handle missing values. (default: 0)
 -O
  Use ROC analysis. 
 -p <name of file>
  Set the file containing the parts of the individual for individual-based learning.
 -P <0=no output | 1=on stdout | 2=in separate window>
  Set output of current values. (default: 0)

Version:
$Revision: 6368 $
Author:
Amelie Deltour
See Also:
Serialized Form

Field Summary
static int EXPLICIT
          Way of handling missing values: min counterinstances
static int IMPLICIT
          Way of handling missing values: max counterinstances
static int SIGNIFICANT
          Way of handling missing values: missing as a particular value
 
Constructor Summary
Tertius()
          Constructor that sets the options to the default values.
 
Method Summary
 void buildAssociations(Instances instances)
          Method that launches the search to find the rules with the highest confirmation.
 java.lang.String classificationTipText()
          Returns the tip text for this property.
 java.lang.String classIndexTipText()
          Returns the tip text for this property.
 java.lang.String confirmationThresholdTipText()
          Returns the tip text for this property.
 java.lang.String confirmationValuesTipText()
          Returns the tip text for this property.
 boolean disabled_getEquivalent()
          Get the value of equivalent.
 java.io.File disabled_getPartFile()
          Get the value of partFile.
 boolean disabled_getSameClause()
          Get the value of sameClause.
 boolean disabled_getSubsumption()
          Get the value of subsumption.
 void disabled_setEquivalent(boolean v)
          Set the value of equivalent.
 void disabled_setPartFile(java.io.File v)
          Set the value of partFile.
 void disabled_setSameClause(boolean v)
          Set the value of sameClause.
 void disabled_setSubsumption(boolean v)
          Set the value of subsumption.
 java.lang.String equivalentTipText()
          Returns the tip text for this property.
 java.lang.String frequencyThresholdTipText()
          Returns the tip text for this property.
 Capabilities getCapabilities()
          Returns default capabilities of the classifier.
 boolean getClassification()
          Get the value of classification.
 int getClassIndex()
          Get the value of classIndex.
 double getConfirmationThreshold()
          Get the value of confirmationThreshold.
 int getConfirmationValues()
          Get the value of confirmationValues.
 double getFrequencyThreshold()
          Get the value of frequencyThreshold.
 boolean getHornClauses()
          Get the value of hornClauses.
 SelectedTag getMissingValues()
          Get the value of missingValues.
 SelectedTag getNegation()
          Get the value of negation.
 double getNoiseThreshold()
          Get the value of noiseThreshold.
 int getNumberLiterals()
          Get the value of numberLiterals.
 java.lang.String[] getOptions()
          Gets the current settings of the Tertius object.
 boolean getRepeatLiterals()
          Get the value of repeatLiterals.
 SimpleLinkedList getResults()
          returns the results
 java.lang.String getRevision()
          Returns the revision string.
 boolean getRocAnalysis()
          Get the value of rocAnalysis.
 TechnicalInformation getTechnicalInformation()
          Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.
 SelectedTag getValuesOutput()
          Get the value of valuesOutput.
 java.lang.String globalInfo()
          Returns a string describing this associator.
 java.lang.String hornClausesTipText()
          Returns the tip text for this property.
 java.util.Enumeration listOptions()
          Returns an enumeration describing the available options.
static void main(java.lang.String[] args)
          Main method.
 java.lang.String missingValuesTipText()
          Returns the tip text for this property.
 java.lang.String negationTipText()
          Returns the tip text for this property.
 java.lang.String noiseThresholdTipText()
          Returns the tip text for this property.
 java.lang.String numberLiteralsTipText()
          Returns the tip text for this property.
 java.lang.String partFileTipText()
          Returns the tip text for this property.
 java.lang.String repeatLiteralsTipText()
          Returns the tip text for this property.
 void resetOptions()
          Resets the options to the default values.
 java.lang.String rocAnalysisTipText()
          Returns the tip text for this property.
 void run()
          Run the search.
 java.lang.String sameClauseTipText()
          Returns the tip text for this property.
 void search()
          Search in the space of hypotheses the rules that have the highest confirmation.
 void setClassification(boolean v)
          Set the value of classification.
 void setClassIndex(int v)
          Set the value of classIndex.
 void setConfirmationThreshold(double v)
          Set the value of confirmationThreshold.
 void setConfirmationValues(int v)
          Set the value of confirmationValues.
 void setFrequencyThreshold(double v)
          Set the value of frequencyThreshold.
 void setHornClauses(boolean v)
          Set the value of hornClauses.
 void setMissingValues(SelectedTag v)
          Set the value of missingValues.
 void setNegation(SelectedTag v)
          Set the value of negation.
 void setNoiseThreshold(double v)
          Set the value of noiseThreshold.
 void setNumberLiterals(int v)
          Set the value of numberLiterals.
 void setOptions(java.lang.String[] options)
          Parses a given list of options.
 void setRepeatLiterals(boolean v)
          Set the value of repeatLiterals.
 void setRocAnalysis(boolean v)
          Set the value of rocAnalysis.
 void setValuesOutput(SelectedTag v)
          Set the value of valuesOutput.
 java.lang.String subsumptionTipText()
          Returns the tip text for this property.
 java.lang.String toString()
          Outputs the best rules found with their confirmation value and number of counter-instances.
 java.lang.String valuesOutputTipText()
          Returns the tip text for this property.
 
Methods inherited from class weka.associations.AbstractAssociator
forName, makeCopies, makeCopy
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

EXPLICIT

public static final int EXPLICIT
Way of handling missing values: min counterinstances

See Also:
Constant Field Values

IMPLICIT

public static final int IMPLICIT
Way of handling missing values: max counterinstances

See Also:
Constant Field Values

SIGNIFICANT

public static final int SIGNIFICANT
Way of handling missing values: missing as a particular value

See Also:
Constant Field Values
Constructor Detail

Tertius

public Tertius()
Constructor that sets the options to the default values.

Method Detail

globalInfo

public java.lang.String globalInfo()
Returns a string describing this associator.

Returns:
A description of the evaluator suitable for displaying in the explorer/experimenter gui.

getTechnicalInformation

public TechnicalInformation getTechnicalInformation()
Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.

Specified by:
getTechnicalInformation in interface TechnicalInformationHandler
Returns:
the technical information about this class

resetOptions

public void resetOptions()
Resets the options to the default values.


listOptions

public java.util.Enumeration listOptions()
Returns an enumeration describing the available options.

Specified by:
listOptions in interface OptionHandler
Returns:
An enumeration of all the available options.

setOptions

public void setOptions(java.lang.String[] options)
                throws java.lang.Exception
Parses a given list of options.

Valid options are:

 -K <number of values in result>
  Set maximum number of confirmation  values in the result. (default: 10)
 -F <frequency threshold>
  Set frequency threshold for pruning. (default: 0)
 -C <confirmation threshold>
  Set confirmation threshold. (default: 0)
 -N <noise threshold>
  Set noise threshold : maximum frequency of counter-examples.
  0 gives only satisfied rules. (default: 1)
 -R
  Allow attributes to be repeated in a same rule.
 -L <number of literals>
  Set maximum number of literals in a rule. (default: 4)
 -G <0=no negation | 1=body | 2=head | 3=body and head>
  Set the negations in the rule. (default: 0)
 -S
  Consider only classification rules.
 -c <class index>
  Set index of class attribute. (default: last).
 -H
  Consider only horn clauses.
 -E
  Keep equivalent rules.
 -M
  Keep same clauses.
 -T
  Keep subsumed rules.
 -I <0=always match | 1=never match | 2=significant>
  Set the way to handle missing values. (default: 0)
 -O
  Use ROC analysis. 
 -p <name of file>
  Set the file containing the parts of the individual for individual-based learning.
 -P <0=no output | 1=on stdout | 2=in separate window>
  Set output of current values. (default: 0)

Specified by:
setOptions in interface OptionHandler
Parameters:
options - The list of options as an array of strings.
Throws:
java.lang.Exception - if an option is not supported.

getOptions

public java.lang.String[] getOptions()
Gets the current settings of the Tertius object.

Specified by:
getOptions in interface OptionHandler
Returns:
An array of strings suitable for passing to setOptions.

confirmationValuesTipText

public java.lang.String confirmationValuesTipText()
Returns the tip text for this property.

Returns:
Tip text for this property suitable for displaying in the explorer/experimenter GUI.

getConfirmationValues

public int getConfirmationValues()
Get the value of confirmationValues.

Returns:
Value of confirmationValues.

setConfirmationValues

public void setConfirmationValues(int v)
Set the value of confirmationValues.

Parameters:
v - Value to assign to confirmationValues.

frequencyThresholdTipText

public java.lang.String frequencyThresholdTipText()
Returns the tip text for this property.

Returns:
Tip text for this property suitable for displaying in the explorer/experimenter GUI.

getFrequencyThreshold

public double getFrequencyThreshold()
Get the value of frequencyThreshold.

Returns:
Value of frequencyThreshold.

setFrequencyThreshold

public void setFrequencyThreshold(double v)
Set the value of frequencyThreshold.

Parameters:
v - Value to assign to frequencyThreshold.

confirmationThresholdTipText

public java.lang.String confirmationThresholdTipText()
Returns the tip text for this property.

Returns:
Tip text for this property suitable for displaying in the explorer/experimenter GUI.

getConfirmationThreshold

public double getConfirmationThreshold()
Get the value of confirmationThreshold.

Returns:
Value of confirmationThreshold.

setConfirmationThreshold

public void setConfirmationThreshold(double v)
Set the value of confirmationThreshold.

Parameters:
v - Value to assign to confirmationThreshold.

noiseThresholdTipText

public java.lang.String noiseThresholdTipText()
Returns the tip text for this property.

Returns:
Tip text for this property suitable for displaying in the explorer/experimenter GUI.

getNoiseThreshold

public double getNoiseThreshold()
Get the value of noiseThreshold.

Returns:
Value of noiseThreshold.

setNoiseThreshold

public void setNoiseThreshold(double v)
Set the value of noiseThreshold.

Parameters:
v - Value to assign to noiseThreshold.

repeatLiteralsTipText

public java.lang.String repeatLiteralsTipText()
Returns the tip text for this property.

Returns:
Tip text for this property suitable for displaying in the explorer/experimenter GUI.

getRepeatLiterals

public boolean getRepeatLiterals()
Get the value of repeatLiterals.

Returns:
Value of repeatLiterals.

setRepeatLiterals

public void setRepeatLiterals(boolean v)
Set the value of repeatLiterals.

Parameters:
v - Value to assign to repeatLiterals.

numberLiteralsTipText

public java.lang.String numberLiteralsTipText()
Returns the tip text for this property.

Returns:
Tip text for this property suitable for displaying in the explorer/experimenter GUI.

getNumberLiterals

public int getNumberLiterals()
Get the value of numberLiterals.

Returns:
Value of numberLiterals.

setNumberLiterals

public void setNumberLiterals(int v)
Set the value of numberLiterals.

Parameters:
v - Value to assign to numberLiterals.

negationTipText

public java.lang.String negationTipText()
Returns the tip text for this property.

Returns:
Tip text for this property suitable for displaying in the explorer/experimenter GUI.

getNegation

public SelectedTag getNegation()
Get the value of negation.

Returns:
Value of negation.

setNegation

public void setNegation(SelectedTag v)
Set the value of negation.

Parameters:
v - Value to assign to negation.

classificationTipText

public java.lang.String classificationTipText()
Returns the tip text for this property.

Returns:
Tip text for this property suitable for displaying in the explorer/experimenter GUI.

getClassification

public boolean getClassification()
Get the value of classification.

Returns:
Value of classification.

setClassification

public void setClassification(boolean v)
Set the value of classification.

Parameters:
v - Value to assign to classification.

classIndexTipText

public java.lang.String classIndexTipText()
Returns the tip text for this property.

Returns:
Tip text for this property suitable for displaying in the explorer/experimenter GUI.

getClassIndex

public int getClassIndex()
Get the value of classIndex.

Returns:
Value of classIndex.

setClassIndex

public void setClassIndex(int v)
Set the value of classIndex.

Parameters:
v - Value to assign to classIndex.

hornClausesTipText

public java.lang.String hornClausesTipText()
Returns the tip text for this property.

Returns:
Tip text for this property suitable for displaying in the explorer/experimenter GUI.

getHornClauses

public boolean getHornClauses()
Get the value of hornClauses.

Returns:
Value of hornClauses.

setHornClauses

public void setHornClauses(boolean v)
Set the value of hornClauses.

Parameters:
v - Value to assign to hornClauses.

equivalentTipText

public java.lang.String equivalentTipText()
Returns the tip text for this property.

Returns:
Tip text for this property suitable for displaying in the explorer/experimenter GUI.

disabled_getEquivalent

public boolean disabled_getEquivalent()
Get the value of equivalent.

Returns:
Value of equivalent.

disabled_setEquivalent

public void disabled_setEquivalent(boolean v)
Set the value of equivalent.

Parameters:
v - Value to assign to equivalent.

sameClauseTipText

public java.lang.String sameClauseTipText()
Returns the tip text for this property.

Returns:
Tip text for this property suitable for displaying in the explorer/experimenter GUI.

disabled_getSameClause

public boolean disabled_getSameClause()
Get the value of sameClause.

Returns:
Value of sameClause.

disabled_setSameClause

public void disabled_setSameClause(boolean v)
Set the value of sameClause.

Parameters:
v - Value to assign to sameClause.

subsumptionTipText

public java.lang.String subsumptionTipText()
Returns the tip text for this property.

Returns:
Tip text for this property suitable for displaying in the explorer/experimenter GUI.

disabled_getSubsumption

public boolean disabled_getSubsumption()
Get the value of subsumption.

Returns:
Value of subsumption.

disabled_setSubsumption

public void disabled_setSubsumption(boolean v)
Set the value of subsumption.

Parameters:
v - Value to assign to subsumption.

missingValuesTipText

public java.lang.String missingValuesTipText()
Returns the tip text for this property.

Returns:
Tip text for this property suitable for displaying in the explorer/experimenter GUI.

getMissingValues

public SelectedTag getMissingValues()
Get the value of missingValues.

Returns:
Value of missingValues.

setMissingValues

public void setMissingValues(SelectedTag v)
Set the value of missingValues.

Parameters:
v - Value to assign to missingValues.

rocAnalysisTipText

public java.lang.String rocAnalysisTipText()
Returns the tip text for this property.

Returns:
Tip text for this property suitable for displaying in the explorer/experimenter GUI.

getRocAnalysis

public boolean getRocAnalysis()
Get the value of rocAnalysis.

Returns:
Value of rocAnalysis.

setRocAnalysis

public void setRocAnalysis(boolean v)
Set the value of rocAnalysis.

Parameters:
v - Value to assign to rocAnalysis.

partFileTipText

public java.lang.String partFileTipText()
Returns the tip text for this property.

Returns:
Tip text for this property suitable for displaying in the explorer/experimenter GUI.

disabled_getPartFile

public java.io.File disabled_getPartFile()
Get the value of partFile.

Returns:
Value of partFile.

disabled_setPartFile

public void disabled_setPartFile(java.io.File v)
                          throws java.lang.Exception
Set the value of partFile.

Parameters:
v - Value to assign to partFile.
Throws:
java.lang.Exception - if file cannot be opened

valuesOutputTipText

public java.lang.String valuesOutputTipText()
Returns the tip text for this property.

Returns:
Tip text for this property suitable for displaying in the explorer/experimenter GUI.

getValuesOutput

public SelectedTag getValuesOutput()
Get the value of valuesOutput.

Returns:
Value of valuesOutput.

setValuesOutput

public void setValuesOutput(SelectedTag v)
Set the value of valuesOutput.

Parameters:
v - Value to assign to valuesOutput.

getCapabilities

public Capabilities getCapabilities()
Returns default capabilities of the classifier.

Specified by:
getCapabilities in interface Associator
Specified by:
getCapabilities in interface CapabilitiesHandler
Overrides:
getCapabilities in class AbstractAssociator
Returns:
the capabilities of this classifier
See Also:
Capabilities

buildAssociations

public void buildAssociations(Instances instances)
                       throws java.lang.Exception
Method that launches the search to find the rules with the highest confirmation.

Specified by:
buildAssociations in interface Associator
Parameters:
instances - The instances to be used for generating the rules.
Throws:
java.lang.Exception - if rules can't be built successfully.

run

public void run()
Run the search.

Specified by:
run in interface java.lang.Runnable

search

public void search()
Search in the space of hypotheses the rules that have the highest confirmation. The search starts with the empty rule, other rules are generated by refinement.


getResults

public SimpleLinkedList getResults()
returns the results

Returns:
the results

toString

public java.lang.String toString()
Outputs the best rules found with their confirmation value and number of counter-instances. Also gives the number of hypotheses considered and explored, and the time needed.

Overrides:
toString in class java.lang.Object

getRevision

public java.lang.String getRevision()
Returns the revision string.

Specified by:
getRevision in interface RevisionHandler
Overrides:
getRevision in class AbstractAssociator
Returns:
the revision

main

public static void main(java.lang.String[] args)
Main method.

Parameters:
args - the commandline parameters