Package weka.estimators
Class CheckEstimator
java.lang.Object
weka.estimators.CheckEstimator
- All Implemented Interfaces:
OptionHandler,RevisionHandler
Class for examining the capabilities and finding problems with estimators. If
you implement a estimator using the WEKA.libraries, you should run the checks
on it to ensure robustness and correct operation. Passing all the tests of
this object does not mean bugs in the estimator don't exist, but this will
help find some common ones.
Typical usage:
java weka.estimators.CheckEstimator -W estimator_name
estimator_options
This class uses code from the CheckEstimatorClass ATTENTION! Current
estimators can only 1. split on a nominal class attribute 2. build estimators
for nominal and numeric attributes 3. build estimators independendly of the
class type The functionality to test on other class and attribute types is
left in big parts in the code.
CheckEstimator reports on the following:
- Estimator abilities
- Possible command line options to the estimator
- Whether the estimator can predict nominal, numeric, string, date or relational class attributes. Warnings will be displayed if performance is worse than ZeroR
- Whether the estimator can be trained incrementally
- Whether the estimator can build estimates for numeric attributes
- Whether the estimator can handle nominal attributes
- Whether the estimator can handle string attributes
- Whether the estimator can handle date attributes
- Whether the estimator can handle relational attributes
- Whether the estimator build estimates for multi-instance data
- Whether the estimator can handle missing attribute values
- Whether the estimator can handle missing class values
- Whether a nominal estimator only handles 2 class problems
- Whether the estimator can handle instance weights
- Correct functioning
- Correct initialisation during addvalues (i.e. no result changes when addValues called repeatedly)
- Whether incremental training produces the same results as during non-incremental training (which may or may not be OK)
- Whether the estimator alters the data pased to it (number of instances, instance order, instance weights, etc)
- Degenerate cases
- building estimator with zero training instances
- all but one attribute attribute values missing
- all attribute attribute values missing
- all but one class values missing
- all class values missing
weka.estimators.AbstractEstimatorTest uses this class to
test all the estimators. Any changes here, have to be checked in that
abstract test class, too.
Valid options are:
-D Turn on debugging output.
-S Silent mode - prints nothing to stdout.
-N <num> The number of instances in the datasets (default 100).
-W Full name of the estimator analysed. eg: weka.estimators.NormalEstimator
Options specific to estimator weka.estimators.NormalEstimator:
-D If set, estimator is run in debug mode and may output additional info to the consoleOptions after -- are passed to the designated estimator.
- Version:
- $Revision: 15522 $
- Author:
- Len Trigg (trigg@cs.waikato.ac.nz), FracPete (fracpete at waikato dot ac dot nz)
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classclass that contains info about the attribute types the estimator can estimate estimator work on one attribute onlystatic classpublic class that contains info about the chosen attribute type estimator work on one attribute onlyclassa class for postprocessing the test-data -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoiddoTests()Begin the tests, reporting results to System.outbooleangetDebug()Get whether debugging is turned onGet the estimator used as the estimatorstatic intFind the minimum and the maximum of the attribute and return it in the last parameter..intGets the current number of instances to use for the datasets.String[]Gets the current settings of the CheckEstimator.returns the current PostProcessor, can be nullReturns the revision string.booleanGet whether silent mode is turned onbooleanreturns TRUE if the estimator returned a "not in classpath" ExceptionReturns an enumeration describing the available options.static voidTest method for this classvoidsetDebug(boolean debug) Set debugging modevoidsetEstimator(Estimator newEstimator) Set the estimator for boosting.voidsetNumInstances(int value) Sets the number of instances to use in the datasets (some estimators might require more instances).voidsetOptions(String[] options) Parses a given list of options.voidsets the PostProcessor to usevoidsetSilent(boolean value) Set slient mode, i.e., no output at all to stdout
-
Constructor Details
-
CheckEstimator
public CheckEstimator()
-
-
Method Details
-
listOptions
Returns an enumeration describing the available options.- Specified by:
listOptionsin interfaceOptionHandler- Returns:
- an enumeration of all the available options.
-
setOptions
Parses a given list of options. Valid options are:-D Turn on debugging output.
-S Silent mode - prints nothing to stdout.
-N <num> The number of instances in the datasets (default 100).
-W Full name of the estimator analysed. eg: weka.estimators.NormalEstimator
Options specific to estimator weka.estimators.NormalEstimator:
-D If set, estimator is run in debug mode and may output additional info to the console
- Specified by:
setOptionsin interfaceOptionHandler- Parameters:
options- the list of options as an array of strings- Throws:
Exception- if an option is not supported
-
getOptions
Gets the current settings of the CheckEstimator.- Specified by:
getOptionsin interfaceOptionHandler- Returns:
- an array of strings suitable for passing to setOptions
-
setPostProcessor
sets the PostProcessor to use- Parameters:
value- the new PostProcessor- See Also:
-
m_PostProcessor
-
getPostProcessor
returns the current PostProcessor, can be null- Returns:
- the current PostProcessor
-
hasClasspathProblems
public boolean hasClasspathProblems()returns TRUE if the estimator returned a "not in classpath" Exception- Returns:
- true if CLASSPATH problems occurred
-
doTests
public void doTests()Begin the tests, reporting results to System.out -
setDebug
public void setDebug(boolean debug) Set debugging mode- Parameters:
debug- true if debug output should be printed
-
getDebug
public boolean getDebug()Get whether debugging is turned on- Returns:
- true if debugging output is on
-
setSilent
public void setSilent(boolean value) Set slient mode, i.e., no output at all to stdout- Parameters:
value- whether silent mode is active or not
-
getSilent
public boolean getSilent()Get whether silent mode is turned on- Returns:
- true if silent mode is on
-
setNumInstances
public void setNumInstances(int value) Sets the number of instances to use in the datasets (some estimators might require more instances).- Parameters:
value- the number of instances to use
-
getNumInstances
public int getNumInstances()Gets the current number of instances to use for the datasets.- Returns:
- the number of instances
-
setEstimator
Set the estimator for boosting.- Parameters:
newEstimator- the Estimator to use.
-
getEstimator
Get the estimator used as the estimator- Returns:
- the estimator used as the estimator
-
getMinMax
Find the minimum and the maximum of the attribute and return it in the last parameter..- Parameters:
inst- instances used to build the estimatorattrIndex- index of the attributeminMax- the array to return minimum and maximum in- Returns:
- number of not missing values
- Throws:
Exception- if parameter minMax wasn't initialized properly
-
getRevision
Returns the revision string.- Specified by:
getRevisionin interfaceRevisionHandler- Returns:
- the revision
-
main
Test method for this class- Parameters:
args- the commandline parameters
-