|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--weka.classifiers.Classifier | +--weka.classifiers.CVParameterSelection
Class for performing parameter selection by cross-validation for any classifier. For more information, see
R. Kohavi (1995). Wrappers for Performance Enhancement and Oblivious Decision Graphs. PhD Thesis. Department of Computer Science, Stanford University.
Valid options are:
-D
Turn on debugging output.
-W classname
Specify the full class name of classifier to perform cross-validation
selection on.
-X num
Number of folds used for cross validation (default 10).
-S seed
Random number seed (default 1).
-P "N 1 5 10"
Sets an optimisation parameter for the classifier with name -N,
lower bound 1, upper bound 5, and 10 optimisation steps.
The upper bound may be the character 'A' or 'I' to substitute
the number of attributes or instances in the training data,
respectively.
This parameter may be supplied more than once to optimise over
several classifier options simultaneously.
Options after -- are passed to the designated sub-classifier.
Inner Class Summary | |
protected class |
CVParameterSelection.CVParameter
|
Field Summary | |
protected java.lang.String[] |
m_BestClassifierOptions
The set of all classifier options as determined by cross-validation |
protected double |
m_BestPerformance
The cross-validated performance of the best options |
protected Classifier |
m_Classifier
The generated base classifier |
protected java.lang.String[] |
m_ClassifierOptions
The base classifier options (not including those being set by cross-validation) |
protected FastVector |
m_CVParams
The set of parameters to cross-validate over |
protected boolean |
m_Debug
Debugging mode, gives extra output if true |
protected int |
m_NumAttributes
The number of attributes in the data |
protected int |
m_NumFolds
The number of folds used in cross-validation |
protected int |
m_Seed
Random number seed |
protected int |
m_TrainFoldSize
The number of instances in a training fold |
Constructor Summary | |
CVParameterSelection()
|
Method Summary | |
void |
addCVParameter(java.lang.String cvParam)
Adds a scheme parameter to the list of parameters to be set by cross-validation |
void |
buildClassifier(Instances instances)
Generates the classifier. |
double |
classifyInstance(Instance instance)
Predicts the class value for the given test instance. |
protected java.lang.String[] |
createOptions()
Create the options array to pass to the classifier. |
protected void |
findParamsByCrossValidation(int depth,
Instances trainData)
Finds the best parameter combination. |
Classifier |
getClassifier()
Get the classifier used as the classifier |
java.lang.String |
getCVParameter(int index)
Gets the scheme paramter with the given index. |
boolean |
getDebug()
Gets whether debugging is turned on |
int |
getNumFolds()
Get the number of folds used for cross-validation. |
java.lang.String[] |
getOptions()
Gets the current settings of the Classifier. |
int |
getSeed()
Gets the random number seed. |
java.util.Enumeration |
listOptions()
Returns an enumeration describing the available options |
static void |
main(java.lang.String[] argv)
Main method for testing this class. |
void |
setClassifier(Classifier newClassifier)
Set the classifier for boosting. |
void |
setDebug(boolean debug)
Sets debugging mode |
void |
setNumFolds(int newNumFolds)
Set the number of folds used for cross-validation. |
void |
setOptions(java.lang.String[] options)
Parses a given list of options. |
void |
setSeed(int seed)
Sets the seed for random number generation. |
java.lang.String |
toString()
Returns description of the cross-validated classifier. |
java.lang.String |
toSummaryString()
Returns a string that summarizes the object. |
Methods inherited from class weka.classifiers.Classifier |
forName, makeCopies |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
protected Classifier m_Classifier
protected java.lang.String[] m_ClassifierOptions
protected java.lang.String[] m_BestClassifierOptions
protected double m_BestPerformance
protected FastVector m_CVParams
protected int m_NumAttributes
protected int m_TrainFoldSize
protected int m_NumFolds
protected int m_Seed
protected boolean m_Debug
Constructor Detail |
public CVParameterSelection()
Method Detail |
protected java.lang.String[] createOptions()
protected void findParamsByCrossValidation(int depth, Instances trainData) throws java.lang.Exception
depth
- the index of the parameter to be optimised at this leveljava.lang.Exception
- if an error occurspublic java.util.Enumeration listOptions()
listOptions
in interface OptionHandler
public void setOptions(java.lang.String[] options) throws java.lang.Exception
-D
Turn on debugging output.
-W classname
Specify the full class name of classifier to perform cross-validation
selection on.
-X num
Number of folds used for cross validation (default 10).
-S seed
Random number seed (default 1).
-P "N 1 5 10"
Sets an optimisation parameter for the classifier with name -N,
lower bound 1, upper bound 5, and 10 optimisation steps.
The upper bound may be the character 'A' or 'I' to substitute
the number of attributes or instances in the training data,
respectively.
This parameter may be supplied more than once to optimise over
several classifier options simultaneously.
Options after -- are passed to the designated sub-classifier.
setOptions
in interface OptionHandler
options
- the list of options as an array of stringsjava.lang.Exception
- if an option is not supportedpublic java.lang.String[] getOptions()
getOptions
in interface OptionHandler
public void buildClassifier(Instances instances) throws java.lang.Exception
buildClassifier
in class Classifier
instances
- set of instances serving as training datajava.lang.Exception
- if the classifier has not been generated successfullypublic double classifyInstance(Instance instance) throws java.lang.Exception
classifyInstance
in class Classifier
instance
- the instance to be classifiedjava.lang.Exception
- if an error occurred during the predictionpublic void setSeed(int seed)
seed
- the random number seedpublic int getSeed()
public void addCVParameter(java.lang.String cvParam) throws java.lang.Exception
cvParam
- the string representation of a scheme parameter. The
format is: java.lang.Exception
- if the parameter specifier is of the wrong formatpublic java.lang.String getCVParameter(int index)
public void setDebug(boolean debug)
debug
- true if debug output should be printedpublic boolean getDebug()
public int getNumFolds()
public void setNumFolds(int newNumFolds)
newNumFolds
- the number of folds used for cross-validation.public void setClassifier(Classifier newClassifier)
newClassifier
- the Classifier to use.public Classifier getClassifier()
public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String toSummaryString()
Summarizable
toSummaryString
in interface Summarizable
weka.core.Summarizable
public static void main(java.lang.String[] argv)
argv
- the options
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |