Package weka.attributeSelection
Class AttributeSelection
- java.lang.Object
-
- weka.attributeSelection.AttributeSelection
-
- All Implemented Interfaces:
java.io.Serializable
,RevisionHandler
public class AttributeSelection extends java.lang.Object implements java.io.Serializable, RevisionHandler
Attribute selection class. Takes the name of a search class and an evaluation class on the command line. Valid options are: -h
Display help. -i <name of input file>
Specify the training data file. -c <class index>
The index of the attribute to use as the class. -s <search method>
The full class name of the search method followed by search method options (if any).
Eg. -s "weka.attributeSelection.BestFirst -N 10" -x <number of folds>
Perform a cross validation. -n <random number seed>
Specify a random number seed. Use in conjuction with -x. (Default = 1). ------------------------------------------------------------------------ Example usage as the main of an attribute evaluator (called FunkyEvaluator):public static void main(String [] args) { runEvaluator(new FunkyEvaluator(), args); }
------------------------------------------------------------------------- Version:
- $Revision: 11851 $
- Author:
- Mark Hall (mhall@cs.waikato.ac.nz)
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description AttributeSelection()
constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
CrossValidateAttributes()
Perform a cross validation for attribute selection.java.lang.String
CVResultsString()
returns a string summarizing the results of repeated attribute selection runs on splits of a dataset.java.lang.String
getRevision()
Returns the revision string.static void
main(java.lang.String[] args)
Main method for testing this class.int
numberAttributesSelected()
Return the number of attributes selected from the most recent run of attribute selectiondouble[][]
rankedAttributes()
get the final ranking of the attributes.Instance
reduceDimensionality(Instance in)
reduce the dimensionality of a single instance to include only those attributes chosen by the last run of attribute selection.Instances
reduceDimensionality(Instances in)
reduce the dimensionality of a set of instances to include only those attributes chosen by the last run of attribute selection.static java.lang.String
SelectAttributes(ASEvaluation ASEvaluator, java.lang.String[] options)
Perform attribute selection with a particular evaluator and a set of options specifying search method and input file etc.static java.lang.String
SelectAttributes(ASEvaluation ASEvaluator, java.lang.String[] options, Instances train)
Perform attribute selection with a particular evaluator and a set of options specifying search method and options for the search method and evaluator.void
SelectAttributes(Instances data)
Perform attribute selection on the supplied training instances.void
selectAttributesCVSplit(Instances split)
Select attributes for a split of the data.int[]
selectedAttributes()
get the final selected set of attributes.void
setEvaluator(ASEvaluation evaluator)
set the attribute/subset evaluatorvoid
setFolds(int folds)
set the number of folds for cross validationvoid
setRanking(boolean r)
produce a ranking (if possible with the set search and evaluator)void
setSearch(ASSearch search)
set the search methodvoid
setSeed(int s)
set the seed for use in cross validationvoid
setXval(boolean x)
do a cross validationjava.lang.String
toResultsString()
get a description of the attribute selection
-
-
-
Method Detail
-
numberAttributesSelected
public int numberAttributesSelected() throws java.lang.Exception
Return the number of attributes selected from the most recent run of attribute selection- Returns:
- the number of attributes selected
- Throws:
java.lang.Exception
-
selectedAttributes
public int[] selectedAttributes() throws java.lang.Exception
get the final selected set of attributes.- Returns:
- an array of attribute indexes
- Throws:
java.lang.Exception
- if attribute selection has not been performed yet
-
rankedAttributes
public double[][] rankedAttributes() throws java.lang.Exception
get the final ranking of the attributes.- Returns:
- a two dimensional array of ranked attribute indexes and their associated merit scores as doubles.
- Throws:
java.lang.Exception
- if a ranking has not been produced
-
setEvaluator
public void setEvaluator(ASEvaluation evaluator)
set the attribute/subset evaluator- Parameters:
evaluator
- the evaluator to use
-
setSearch
public void setSearch(ASSearch search)
set the search method- Parameters:
search
- the search method to use
-
setFolds
public void setFolds(int folds)
set the number of folds for cross validation- Parameters:
folds
- the number of folds
-
setRanking
public void setRanking(boolean r)
produce a ranking (if possible with the set search and evaluator)- Parameters:
r
- true if a ranking is to be produced
-
setXval
public void setXval(boolean x)
do a cross validation- Parameters:
x
- true if a cross validation is to be performed
-
setSeed
public void setSeed(int s)
set the seed for use in cross validation- Parameters:
s
- the seed
-
toResultsString
public java.lang.String toResultsString()
get a description of the attribute selection- Returns:
- a String describing the results of attribute selection
-
reduceDimensionality
public Instances reduceDimensionality(Instances in) throws java.lang.Exception
reduce the dimensionality of a set of instances to include only those attributes chosen by the last run of attribute selection.- Parameters:
in
- the instances to be reduced- Returns:
- a dimensionality reduced set of instances
- Throws:
java.lang.Exception
- if the instances can't be reduced
-
reduceDimensionality
public Instance reduceDimensionality(Instance in) throws java.lang.Exception
reduce the dimensionality of a single instance to include only those attributes chosen by the last run of attribute selection.- Parameters:
in
- the instance to be reduced- Returns:
- a dimensionality reduced instance
- Throws:
java.lang.Exception
- if the instance can't be reduced
-
SelectAttributes
public static java.lang.String SelectAttributes(ASEvaluation ASEvaluator, java.lang.String[] options) throws java.lang.Exception
Perform attribute selection with a particular evaluator and a set of options specifying search method and input file etc.- Parameters:
ASEvaluator
- an evaluator objectoptions
- an array of options, not only for the evaluator but also the search method (if any) and an input data file- Returns:
- the results of attribute selection as a String
- Throws:
java.lang.Exception
- if no training file is set
-
CVResultsString
public java.lang.String CVResultsString() throws java.lang.Exception
returns a string summarizing the results of repeated attribute selection runs on splits of a dataset.- Returns:
- a summary of attribute selection results
- Throws:
java.lang.Exception
- if no attribute selection has been performed.
-
selectAttributesCVSplit
public void selectAttributesCVSplit(Instances split) throws java.lang.Exception
Select attributes for a split of the data. Calling this function updates the statistics on attribute selection. CVResultsString() returns a string summarizing the results of repeated calls to this function. Assumes that splits are from the same dataset--- ie. have the same number and types of attributes as previous splits.- Parameters:
split
- the instances to select attributes from- Throws:
java.lang.Exception
- if an error occurs
-
CrossValidateAttributes
public java.lang.String CrossValidateAttributes() throws java.lang.Exception
Perform a cross validation for attribute selection. With subset evaluators the number of times each attribute is selected over the cross validation is reported. For attribute evaluators, the average merit and average ranking + std deviation is reported for each attribute.- Returns:
- the results of cross validation as a String
- Throws:
java.lang.Exception
- if an error occurs during cross validation
-
SelectAttributes
public void SelectAttributes(Instances data) throws java.lang.Exception
Perform attribute selection on the supplied training instances.- Parameters:
data
- the instances to select attributes from- Throws:
java.lang.Exception
- if there is a problem during selection
-
SelectAttributes
public static java.lang.String SelectAttributes(ASEvaluation ASEvaluator, java.lang.String[] options, Instances train) throws java.lang.Exception
Perform attribute selection with a particular evaluator and a set of options specifying search method and options for the search method and evaluator.- Parameters:
ASEvaluator
- an evaluator objectoptions
- an array of options, not only for the evaluator but also the search method (if any) and an input data filetrain
- the input instances- Returns:
- the results of attribute selection as a String
- Throws:
java.lang.Exception
- if incorrect options are supplied
-
main
public static void main(java.lang.String[] args)
Main method for testing this class.- Parameters:
args
- the options
-
getRevision
public java.lang.String getRevision()
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Returns:
- the revision
-
-