weka.attributeSelection
Class CfsSubsetEval

java.lang.Object
  |
  +--weka.attributeSelection.ASEvaluation
        |
        +--weka.attributeSelection.SubsetEvaluator
              |
              +--weka.attributeSelection.CfsSubsetEval
All Implemented Interfaces:
OptionHandler, java.io.Serializable

public class CfsSubsetEval
extends SubsetEvaluator
implements OptionHandler

CFS attribute subset evaluator. For more information see:

Hall, M. A. (1998). Correlation-based Feature Subset Selection for Machine Learning. Thesis submitted in partial fulfilment of the requirements of the degree of Doctor of Philosophy at the University of Waikato.

Valid options are: -M
Treat missing values as a seperate value.

-L
Include locally predictive attributes.

Author:
Mark Hall (mhall@cs.waikato.ac.nz)
See Also:
Serialized Form

Constructor Summary
CfsSubsetEval()
          Constructor
 
Method Summary
 void buildEvaluator(Instances data)
          Generates a attribute evaluator.
 double evaluateSubset(java.util.BitSet subset)
          evaluates a subset of attributes
 boolean getLocallyPredictive()
          Return true if including locally predictive attributes
 boolean getMissingSeperate()
          Return true is missing is treated as a seperate value
 java.lang.String[] getOptions()
          Gets the current settings of CfsSubsetEval
 java.lang.String globalInfo()
          Returns a string describing this attribute evaluator
 java.util.Enumeration listOptions()
          Returns an enumeration describing the available options
 java.lang.String locallyPredictiveTipText()
          Returns the tip text for this property
static void main(java.lang.String[] args)
          Main method for testing this class.
 java.lang.String missingSeperateTipText()
          Returns the tip text for this property
 int[] postProcess(int[] attributeSet)
          Calls locallyPredictive in order to include locally predictive attributes (if requested).
protected  void resetOptions()
           
 void setLocallyPredictive(boolean b)
          Include locally predictive attributes
 void setMissingSeperate(boolean b)
          Treat missing as a seperate value
 void setOptions(java.lang.String[] options)
          Parses and sets a given list of options.
 java.lang.String toString()
          returns a string describing CFS
 
Methods inherited from class weka.attributeSelection.ASEvaluation
forName, makeCopies
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CfsSubsetEval

public CfsSubsetEval()
Constructor
Method Detail

globalInfo

public java.lang.String globalInfo()
Returns a string describing this attribute evaluator
Returns:
a description of the evaluator suitable for displaying in the explorer/experimenter gui

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 and sets a given list of options.

Valid options are: -M
Treat missing values as a seperate value.

-L
Include locally predictive attributes.

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

locallyPredictiveTipText

public java.lang.String locallyPredictiveTipText()
Returns the tip text for this property
Returns:
tip text for this property suitable for displaying in the explorer/experimenter gui

setLocallyPredictive

public void setLocallyPredictive(boolean b)
Include locally predictive attributes
Parameters:
b - true or false

getLocallyPredictive

public boolean getLocallyPredictive()
Return true if including locally predictive attributes
Returns:
true if locally predictive attributes are to be used

missingSeperateTipText

public java.lang.String missingSeperateTipText()
Returns the tip text for this property
Returns:
tip text for this property suitable for displaying in the explorer/experimenter gui

setMissingSeperate

public void setMissingSeperate(boolean b)
Treat missing as a seperate value
Parameters:
b - true or false

getMissingSeperate

public boolean getMissingSeperate()
Return true is missing is treated as a seperate value
Returns:
true if missing is to be treated as a seperate value

getOptions

public java.lang.String[] getOptions()
Gets the current settings of CfsSubsetEval
Specified by:
getOptions in interface OptionHandler
Returns:
an array of strings suitable for passing to setOptions()

buildEvaluator

public void buildEvaluator(Instances data)
                    throws java.lang.Exception
Generates a attribute evaluator. Has to initialize all fields of the evaluator that are not being set via options. CFS also discretises attributes (if necessary) and initializes the correlation matrix.
Overrides:
buildEvaluator in class ASEvaluation
Parameters:
data - set of instances serving as training data
Throws:
java.lang.Exception - if the evaluator has not been generated successfully

evaluateSubset

public double evaluateSubset(java.util.BitSet subset)
                      throws java.lang.Exception
evaluates a subset of attributes
Overrides:
evaluateSubset in class SubsetEvaluator
Parameters:
subset - a bitset representing the attribute subset to be evaluated
Throws:
java.lang.Exception - if the subset could not be evaluated

toString

public java.lang.String toString()
returns a string describing CFS
Overrides:
toString in class java.lang.Object
Returns:
the description as a string

postProcess

public int[] postProcess(int[] attributeSet)
                  throws java.lang.Exception
Calls locallyPredictive in order to include locally predictive attributes (if requested).
Overrides:
postProcess in class ASEvaluation
Parameters:
attributeSet - the set of attributes found by the search
Returns:
a possibly ranked list of postprocessed attributes
Throws:
java.lang.Exception - if postprocessing fails for some reason

resetOptions

protected void resetOptions()

main

public static void main(java.lang.String[] args)
Main method for testing this class.
Parameters:
args - the options