Package adams.data.evaluator.instance
Class CrossValidatedPrediction
- java.lang.Object
-
- adams.core.logging.LoggingObject
-
- adams.core.logging.CustomLoggingLevelObject
-
- adams.core.option.AbstractOptionHandler
-
- adams.data.evaluator.instance.AbstractEvaluator
-
- adams.data.evaluator.instance.AbstractSerializableEvaluator
-
- adams.data.evaluator.instance.AbstractNearestNeighborBasedEvaluator
-
- adams.data.evaluator.instance.CrossValidatedPrediction
-
- All Implemented Interfaces:
adams.core.CleanUpHandler,adams.core.Destroyable,adams.core.GlobalInfoSupporter,adams.core.logging.LoggingLevelHandler,adams.core.logging.LoggingSupporter,adams.core.option.OptionHandler,adams.core.Randomizable,adams.core.SerializableObject,adams.core.ShallowCopySupporter<Evaluator>,adams.core.SizeOfHandler,Evaluator,WekaClassifierBasedEvaluator,Serializable,Comparable
public class CrossValidatedPrediction extends AbstractNearestNeighborBasedEvaluator implements adams.core.Randomizable, WekaClassifierBasedEvaluator
Evaluator that (kind of) cross-validates the specified classifier on the neighborhood determined for the instance under evaluation.
A classifier is built on each of the training sets that is generated for the cross-validation. Each classifier makes a prediction for the Instance that is currently being evaluated, recording the prediction. From the recorded predictions the statistic is computed and output as evaluation value.
Statistics:
- STDEV
standard deviation
- STDEV_NORMALIZED
standard deviation of normalized predictions
predNew = (pred - minClass) / (maxClass - minClass)
minClass/maxClass the min/max of the class value in the training set
- RANGE
outputs range (max - min) of predictions
-logging-level <OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST> (property: loggingLevel) The logging level for outputting errors and debugging output. default: WARNING
-missing-evaluation <float> (property: missingEvaluation) The value to use as replacement for missing evaluations. default: NaN
-serialization-file <adams.core.io.PlaceholderFile> (property: serializationFile) The file to serialize the generated internal model to. default: ${CWD}-override-serialized-file <boolean> (property: overrideSerializedFile) If set to true, then any serialized file will be ignored and the setup for serialization will be regenerated. default: false
-search <weka.core.neighboursearch.NearestNeighbourSearch> (property: search) The nearest neighbor search to use. default: weka.core.neighboursearch.LinearNNSearch -A \"weka.core.EuclideanDistance -R first-last\"
-classifier <weka.classifiers.Classifier> (property: classifier) The classifier to evaluate on the neighborhood. default: weka.classifiers.functions.LinearRegression -S 1 -C -R 1.0E-8 -num-decimal-places 4
-num-neighbors <int> (property: numNeighbors) The number of neighbors to use in the neighborhood. default: 100 minimum: 1
-folds <int> (property: folds) The number of folds to use for cross-validation; performs leave-one-out cross-validation if less than 2. default: 10 minimum: -1
-seed <long> (property: seed) The seed value for the cross-validation. default: 1
-statistic <STDEV|STDEV_NORMALIZED|RANGE> (property: statistic) The statistic to use as evaluation output. default: STDEV
- Version:
- $Revision: 2242 $
- Author:
- fracpete (fracpete at waikato dot ac dot nz)
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classCrossValidatedPrediction.StatisticTypeThe type of statistic to return.
-
Field Summary
Fields Modifier and Type Field Description protected weka.classifiers.Classifierm_Classifierthe classifier to cross-validate.protected weka.core.AttributeStatsm_ClassStatsthe attribute statistics of the class attribute.protected intm_Foldsthe number of folds.protected intm_NumNeighborsthe size of the neighborhood.protected longm_Seedthe seed value.protected CrossValidatedPrediction.StatisticTypem_Statisticthe measure to output as evaluation.-
Fields inherited from class adams.data.evaluator.instance.AbstractNearestNeighborBasedEvaluator
m_ActualSearch, m_Header, m_Search, m_TrainingData
-
Fields inherited from class adams.data.evaluator.instance.AbstractSerializableEvaluator
m_OverrideSerializationFile, m_SerializableObjectHelper, m_SerializationFile
-
Fields inherited from class adams.data.evaluator.instance.AbstractEvaluator
DEFAULT_METRIC, m_MissingEvaluation
-
-
Constructor Summary
Constructors Constructor Description CrossValidatedPrediction()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StringclassifierTipText()Returns the tip text for this property.voiddefineOptions()Adds options to the internal list of options.StringfoldsTipText()Returns the tip text for this property.weka.classifiers.ClassifiergetClassifier()Returns the classifier in use.protected weka.classifiers.ClassifiergetDefaultClassifier()Returns the default classifier.protected weka.core.neighboursearch.NearestNeighbourSearchgetDefaultSearch()Returns the default search algorithm to use.intgetFolds()Returns the number of folds.intgetNumNeighbors()Returns the number of neighbors to use in the neighborhood.longgetSeed()Returns the seed value for cross-validation.CrossValidatedPrediction.StatisticTypegetStatistic()Returns the statistic used as evaluation output.StringglobalInfo()Returns a string describing the object.StringnumNeighborsTipText()Returns the tip text for this property.protected booleanperformBuild(weka.core.Instances data)Builds the evaluator.protected FloatperformEvaluate(weka.core.Instance data)Performs the actual evaluation.Object[]retrieveSerializationSetup()Returns the member variables to serialize to a file.StringseedTipText()Returns the tip text for this property.voidsetClassifier(weka.classifiers.Classifier value)Sets the classifier to use.voidsetFolds(int value)Sets the number of folds.voidsetNumNeighbors(int value)Sets the number of neighbors to use in the neighborhood.voidsetSeed(long value)Sets the seed value for cross-validation.voidsetSerializationSetup(Object[] value)Updates the member variables with the provided objects obtained from deserialization.voidsetStatistic(CrossValidatedPrediction.StatisticType value)Sets the statistic to use as evaluation output.StringstatisticTipText()Returns the tip text for this property.-
Methods inherited from class adams.data.evaluator.instance.AbstractNearestNeighborBasedEvaluator
cleanUp, getDefaultMissingEvaluation, getSearch, initSearch, initSerializationSetup, searchTipText, setSearch
-
Methods inherited from class adams.data.evaluator.instance.AbstractSerializableEvaluator
destroy, getOverrideSerializedFile, getSerializationFile, initialize, isSetupLoadedOrGenerated, overrideSerializedFileTipText, preCheck, reset, serializationFileTipText, setLoggingLevel, setOverrideSerializedFile, setSerializationFile, setSetupLoadedOrGenerated
-
Methods inherited from class adams.data.evaluator.instance.AbstractEvaluator
build, compareTo, equals, evaluate, forCommandLine, forName, getEvaluators, getMissingEvaluation, missingEvaluationTipText, performMultiEvaluate, preCheck, setMissingEvaluation, shallowCopy, shallowCopy
-
Methods inherited from class adams.core.option.AbstractOptionHandler
cleanUpOptions, finishInit, getDefaultLoggingLevel, getOptionManager, loggingLevelTipText, newOptionManager, toCommandLine, toString
-
Methods inherited from class adams.core.logging.LoggingObject
configureLogger, getLogger, getLoggingLevel, initializeLogging, isLoggingEnabled, sizeOf
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.lang.Comparable
compareTo
-
Methods inherited from interface adams.data.evaluator.instance.Evaluator
build, evaluate, getMissingEvaluation, missingEvaluationTipText, setMissingEvaluation
-
-
-
-
Field Detail
-
m_NumNeighbors
protected int m_NumNeighbors
the size of the neighborhood.
-
m_Classifier
protected weka.classifiers.Classifier m_Classifier
the classifier to cross-validate.
-
m_Folds
protected int m_Folds
the number of folds.
-
m_Seed
protected long m_Seed
the seed value.
-
m_Statistic
protected CrossValidatedPrediction.StatisticType m_Statistic
the measure to output as evaluation.
-
m_ClassStats
protected weka.core.AttributeStats m_ClassStats
the attribute statistics of the class attribute.
-
-
Method Detail
-
globalInfo
public String globalInfo()
Returns a string describing the object.- Specified by:
globalInfoin interfaceadams.core.GlobalInfoSupporter- Specified by:
globalInfoin classadams.core.option.AbstractOptionHandler- Returns:
- a description suitable for displaying in the gui
-
defineOptions
public void defineOptions()
Adds options to the internal list of options.- Specified by:
defineOptionsin interfaceadams.core.option.OptionHandler- Overrides:
defineOptionsin classAbstractNearestNeighborBasedEvaluator
-
getDefaultSearch
protected weka.core.neighboursearch.NearestNeighbourSearch getDefaultSearch()
Returns the default search algorithm to use.- Specified by:
getDefaultSearchin classAbstractNearestNeighborBasedEvaluator- Returns:
- the default
-
setNumNeighbors
public void setNumNeighbors(int value)
Sets the number of neighbors to use in the neighborhood.- Parameters:
value- the number of neighbors
-
getNumNeighbors
public int getNumNeighbors()
Returns the number of neighbors to use in the neighborhood.- Returns:
- the number of neighbors
-
numNeighborsTipText
public String numNeighborsTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
getDefaultClassifier
protected weka.classifiers.Classifier getDefaultClassifier()
Returns the default classifier.- Returns:
- the default
-
setClassifier
public void setClassifier(weka.classifiers.Classifier value)
Sets the classifier to use.- Specified by:
setClassifierin interfaceWekaClassifierBasedEvaluator- Parameters:
value- the classifier
-
getClassifier
public weka.classifiers.Classifier getClassifier()
Returns the classifier in use.- Specified by:
getClassifierin interfaceWekaClassifierBasedEvaluator- Returns:
- the classifier
-
classifierTipText
public String classifierTipText()
Returns the tip text for this property.- Specified by:
classifierTipTextin interfaceWekaClassifierBasedEvaluator- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setFolds
public void setFolds(int value)
Sets the number of folds.- Parameters:
value- the number of folds, LOO if < 2
-
getFolds
public int getFolds()
Returns the number of folds.- Returns:
- the number of folds, LOO if < 2
-
foldsTipText
public String foldsTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setSeed
public void setSeed(long value)
Sets the seed value for cross-validation.- Specified by:
setSeedin interfaceadams.core.Randomizable- Parameters:
value- the seed
-
getSeed
public long getSeed()
Returns the seed value for cross-validation.- Specified by:
getSeedin interfaceadams.core.Randomizable- Returns:
- the seed
-
seedTipText
public String seedTipText()
Returns the tip text for this property.- Specified by:
seedTipTextin interfaceadams.core.Randomizable- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setStatistic
public void setStatistic(CrossValidatedPrediction.StatisticType value)
Sets the statistic to use as evaluation output.- Parameters:
value- the statistic
-
getStatistic
public CrossValidatedPrediction.StatisticType getStatistic()
Returns the statistic used as evaluation output.- Returns:
- the statistic
-
statisticTipText
public String statisticTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
retrieveSerializationSetup
public Object[] retrieveSerializationSetup()
Returns the member variables to serialize to a file.- Specified by:
retrieveSerializationSetupin interfaceadams.core.SerializableObject- Returns:
- the objects to serialize
-
setSerializationSetup
public void setSerializationSetup(Object[] value)
Updates the member variables with the provided objects obtained from deserialization.- Specified by:
setSerializationSetupin interfaceadams.core.SerializableObject- Parameters:
value- the deserialized objects
-
performBuild
protected boolean performBuild(weka.core.Instances data)
Builds the evaluator.- Specified by:
performBuildin classAbstractEvaluator- Parameters:
data- the instance to check- Returns:
- always true
-
performEvaluate
protected Float performEvaluate(weka.core.Instance data)
Performs the actual evaluation.- Overrides:
performEvaluatein classAbstractEvaluator- Parameters:
data- the instance to check- Returns:
- evaluation metric,
AbstractEvaluator.m_MissingEvaluationin case the class value is missing
-
-