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: 15521 $
- Author:
- Len Trigg (trigg@cs.waikato.ac.nz), FracPete (fracpete at waikato dot ac dot nz)
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
class that contains info about the attribute types the estimator can estimate estimator work on one attribute onlystatic class
public class that contains info about the chosen attribute type estimator work on one attribute onlyclass
a class for postprocessing the test-data -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
doTests()
Begin the tests, reporting results to System.outboolean
getDebug()
Get whether debugging is turned onGet the estimator used as the estimatorstatic int
Find the minimum and the maximum of the attribute and return it in the last parameter..int
Gets 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.boolean
Get whether silent mode is turned onboolean
returns TRUE if the estimator returned a "not in classpath" ExceptionReturns an enumeration describing the available options.static void
Test method for this classvoid
setDebug
(boolean debug) Set debugging modevoid
setEstimator
(Estimator newEstimator) Set the estimator for boosting.void
setNumInstances
(int value) Sets the number of instances to use in the datasets (some estimators might require more instances).void
setOptions
(String[] options) Parses a given list of options.void
sets the PostProcessor to usevoid
setSilent
(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:
listOptions
in 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:
setOptions
in 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:
getOptions
in 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:
getRevision
in interfaceRevisionHandler
- Returns:
- the revision
-
main
Test method for this class- Parameters:
args
- the commandline parameters
-