weka.associations
Class PredictiveApriori

java.lang.Object
  extended byweka.associations.Associator
      extended byweka.associations.PredictiveApriori
All Implemented Interfaces:
CARuleMiner, java.lang.Cloneable, OptionHandler, java.io.Serializable

public class PredictiveApriori
extends Associator
implements OptionHandler, CARuleMiner

Class implementing the predictive apriori algorithm to mine association rules. It searches with an increasing support threshold for the best n<\i> rules concerning a support-based corrected confidence value. Reference: T. Scheffer (2001). Finding Association Rules That Trade Support Optimally against Confidence. Proc of the 5th European Conf. on Principles and Practice of Knowledge Discovery in Databases (PKDD'01), pp. 424-435. Freiburg, Germany: Springer-Verlag.

The implementation follows the paper expect for adding a rule to the output of the n<\i> best rules. A rule is added if: the expected predictive accuracy of this rule is among the n<\i> best and it is not subsumed by a rule with at least the same expected predictive accuracy (out of an unpublished manuscript from T. Scheffer). Valid option is:

-N required number of rules
The required number of rules (default: 100).

-A
If set class association rules are mined.

-c class index for class association rule mining
Sets the class attribute (default last).

Version:
$Revision: 1.2 $
Author:
Stefan Mutter (mutter@cs.waikato.ac.nz)
See Also:
Serialized Form

Constructor Summary
PredictiveApriori()
          Constructor that allows to sets default values for the minimum confidence and the maximum number of rules the minimum confidence.
 
Method Summary
 void buildAssociations(Instances instances)
          Method that generates all large itemsets with a minimum support, and from these all association rules.
 java.lang.String carTipText()
          Returns the tip text for this property
 java.lang.String classIndexTipText()
          Returns the tip text for this property
 boolean getCar()
          Gets whether class association ruels are mined
 int getClassIndex()
          Gets the index of the class attribute
 Instances getInstancesNoClass()
          Gets the instances without the class attribute
 Instances getInstancesOnlyClass()
          Gets the class attribute of all instances
 int getNumRules()
          Get the value of the number of required rules.
 java.lang.String[] getOptions()
          Gets the current settings of the PredictiveApriori object.
 java.lang.String globalInfo()
          Returns a string describing this associator
 java.util.Enumeration listOptions()
          Returns an enumeration describing the available options.
static void main(java.lang.String[] options)
          Main method for testing this class.
 java.lang.String metricString()
          Returns the metric string for the chosen metric type.
 FastVector[] mineCARs(Instances data)
          Method that mines the n best class association rules.
 java.lang.String numRulesTipText()
          Returns the tip text for this property
 void resetOptions()
          Resets the options to the default values.
 void setCar(boolean flag)
          Sets class association rule mining
 void setClassIndex(int index)
          Sets the class index
 void setNumRules(int v)
          Set the value of required rules.
 void setOptions(java.lang.String[] options)
          Parses a given list of options.
 java.lang.String toString()
          Outputs the association rules.
 
Methods inherited from class weka.associations.Associator
forName, makeCopies
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

PredictiveApriori

public PredictiveApriori()
Constructor that allows to sets default values for the minimum confidence and the maximum number of rules the minimum confidence.

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

resetOptions

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


buildAssociations

public void buildAssociations(Instances instances)
                       throws java.lang.Exception
Method that generates all large itemsets with a minimum support, and from these all association rules.

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

mineCARs

public FastVector[] mineCARs(Instances data)
                      throws java.lang.Exception
Method that mines the n best class association rules.

Specified by:
mineCARs in interface CARuleMiner
Parameters:
data - the instances for which class association rules should be mined
Returns:
an sorted array of FastVector (depending on the expected predictive accuracy) containing the rules and metric information
Throws:
java.lang.Exception - if rules can't be built successfully

getInstancesNoClass

public Instances getInstancesNoClass()
Gets the instances without the class attribute

Specified by:
getInstancesNoClass in interface CARuleMiner
Returns:
instances without class attribute

getInstancesOnlyClass

public Instances getInstancesOnlyClass()
Gets the class attribute of all instances

Specified by:
getInstancesOnlyClass in interface CARuleMiner
Returns:
Instances containing only the class attribute

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 option is:

-N required number of rules
The required number of rules (default: 10).

-A
If set class association rules are mined.

-c class index for class association rule mining
Sets the class attribute (default last).

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 PredictiveApriori object.

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

toString

public java.lang.String toString()
Outputs the association rules.


numRulesTipText

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

Returns:
tip text for this property suitable for displaying in the explorer/experimenter gui

getNumRules

public int getNumRules()
Get the value of the number of required rules.

Returns:
Value of the number of required rules.

setNumRules

public void setNumRules(int v)
Set the value of required rules.

Parameters:
v - Value to assign to number of required rules.

setClassIndex

public void setClassIndex(int index)
Sets the class index

Specified by:
setClassIndex in interface CARuleMiner
Parameters:
index - the index of the class attribute

getClassIndex

public int getClassIndex()
Gets the index of the class attribute

Returns:
the index of the class attribute

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

setCar

public void setCar(boolean flag)
Sets class association rule mining


getCar

public boolean getCar()
Gets whether class association ruels are mined

Returns:
true if class association rules are mined, false otherwise

carTipText

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

Returns:
tip text for this property suitable for displaying in the explorer/experimenter gui

metricString

public java.lang.String metricString()
Returns the metric string for the chosen metric type. Predictive apriori uses the estimated predictive accuracy. Therefore the metric string is "acc".

Specified by:
metricString in interface CARuleMiner
Returns:
string "acc"

main

public static void main(java.lang.String[] options)
Main method for testing this class.