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.

Version:
$Revision: 1.19 $
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).
 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
equals, 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.

Specified by:
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

Specified by:
evaluateSubset in class SubsetEvaluator
Parameters:
subset - a bitset representing the attribute subset to be evaluated
Returns:
the "merit" of the subset
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

main

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

Parameters:
args - the options


Copyright (c) 2003 David Lindsay, Computer Learning Research Centre, Dept. Computer Science, Royal Holloway, University of London