Package weka.classifiers.lazy
Class LWLSynchroSplit
- java.lang.Object
-
- weka.classifiers.AbstractClassifier
-
- weka.classifiers.SingleClassifierEnhancer
-
- weka.classifiers.lazy.LWL
-
- weka.classifiers.lazy.LWLSynchroSplit
-
- All Implemented Interfaces:
Stoppable,StoppableWithFeedback,Serializable,Cloneable,weka.classifiers.Classifier,ThreadSafeClassifier,weka.classifiers.UpdateableClassifier,weka.core.BatchPredictor,weka.core.CapabilitiesHandler,weka.core.CapabilitiesIgnorer,weka.core.CommandlineRunnable,weka.core.OptionHandler,weka.core.RevisionHandler,weka.core.TechnicalInformationHandler,weka.core.WeightedInstancesHandler
public class LWLSynchroSplit extends weka.classifiers.lazy.LWL implements ThreadSafeClassifier, StoppableWithFeedback
Locally weighted learning. Uses an instance-based algorithm to assign instance weights which are then used by a specified WeightedInstancesHandler.
Can do classification (e.g. using naive Bayes) or regression (e.g. using linear regression).
For more info, see
Eibe Frank, Mark Hall, Bernhard Pfahringer: Locally Weighted Naive Bayes. In: 19th Conference in Uncertainty in Artificial Intelligence, 249-256, 2003.
C. Atkeson, A. Moore, S. Schaal (1996). Locally weighted learning. AI Review..
This version of LWL applies two filters to the incoming training data:
- search filter: generates the data use for the neighborhood search algorithm
- train filter: generates the data to use for building the base classifierThe dataset indices determined by the search algorithm are used to compile the subset from the train filter dataset which is used for building the base classifier.
BibTeX:@inproceedings{Frank2003, author = {Eibe Frank and Mark Hall and Bernhard Pfahringer}, booktitle = {19th Conference in Uncertainty in Artificial Intelligence}, pages = {249-256}, publisher = {Morgan Kaufmann}, title = {Locally Weighted Naive Bayes}, year = {2003} } @article{Atkeson1996, author = {C. Atkeson and A. Moore and S. Schaal}, journal = {AI Review}, title = {Locally weighted learning}, year = {1996} }
Valid options are:-filter-search <filter specification> The filter to use for generating the data for the search. (default: weka.filters.AllFilter)
-filter-train <filter specification> The filter to use for generating the data for training the base classifier. (default: weka.filters.AllFilter)
-no-update Suppresses the update of the nearest neighbor search (nns) algorithm with the data that is to be classified. (default: nns gets updated).
-A The nearest neighbour search algorithm to use (default: weka.core.neighboursearch.LinearNNSearch).
-K <number of neighbours> Set the number of neighbours used to set the kernel bandwidth. (default all)
-U <number of weighting method> Set the weighting kernel shape to use. 0=Linear, 1=Epanechnikov, 2=Tricube, 3=Inverse, 4=Gaussian. (default 0 = Linear)
-W <classifier name> Full name of base classifier. (default: weka.classifiers.functions.GPD)
-output-debug-info If set, classifier is run in debug mode and may output additional info to the console
-do-not-check-capabilities If set, classifier capabilities are not checked before classifier is built (use with caution).
-num-decimal-places The number of decimal places for the output of numbers in the model (default 2).
-batch-size The desired batch size for batch prediction (default 100).
Options specific to classifier weka.classifiers.functions.GPD:
-output-debug-info If set, classifier is run in debug mode and may output additional info to the console
-do-not-check-capabilities If set, classifier capabilities are not checked before classifier is built (use with caution).
-num-decimal-places The number of decimal places for the output of numbers in the model (default 2).
-batch-size The desired batch size for batch prediction (default 100).
-L <double> Level of Gaussian Noise. (default: 0.01)
-G <double> Gamma for the RBF kernel. (default: 0.01)
-N Whether to 0=normalize/1=standardize/2=neither. (default: 0=normalize)
-output-debug-info If set, classifier is run in debug mode and may output additional info to the console
-do-not-check-capabilities If set, classifier capabilities are not checked before classifier is built (use with caution).
-num-decimal-places The number of decimal places for the output of numbers in the model (default 2).
-batch-size The desired batch size for batch prediction (default 100).
Note: thebuild(Instance)needs manual syncing with the original WEKA classifier (distributionForInstance(Instance)method).- Author:
- Len Trigg ([email protected]), Eibe Frank ([email protected]), Ashraf M. Kibriya (amk14[at-the-rate]cs[dot]waikato[dot]ac[dot]nz), Dale (dale at waikato dot ac dot nz), FracPete (fracpete at waikato dot ac dot nz)
- See Also:
LWL.distributionForInstance(Instance), Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected weka.core.Instancesm_DataSearchthe data to use for the search.protected weka.core.Instancesm_DataTrainthe data to use for building the base classifier.protected weka.filters.Filterm_FilterSearchthe filter to apply to the search data.protected weka.filters.Filterm_FilterTrainthe filter to apply to the neighborhood data before training the base classifier.protected booleanm_NoUpdatewhether to suppress the update of the nearest-neighbor search algorithm when making predictions.protected booleanm_Stoppedwhether the classifier was stopped.
-
Constructor Summary
Constructors Constructor Description LWLSynchroSplit()Initializes the classifier.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidbuild(weka.core.Instance instance)Builds the classifier.voidbuildClassifier(weka.core.Instances instances)Generates a classifier.protected StringdefaultClassifierString()Default classifier classname.double[]distributionForInstance(weka.core.Instance instance)Calculates the class membership probabilities for the given test instance.StringfilterSearchTipText()Returns the tip text for this property.StringfilterTrainTipText()Returns the tip text for this property.weka.filters.FiltergetFilterSearch()Returns the filter to generate the data for the search.weka.filters.FiltergetFilterTrain()Returns the filter to use for to generate the training data for the base classifier.booleangetNoUpdate()Returns whether to suppress the update of the nearest-neighbor search algorithm when making predictions.String[]getOptions()Gets the current settings of the classifier.StringgetRevision()Returns the revision string.StringglobalInfo()Returns a string describing classifier.booleanisStopped()Whether the execution has been stopped.EnumerationlistOptions()Returns an enumeration describing the available options.static voidmain(String[] argv)Main method for testing this class.StringnoUpdateTipText()Returns the tip text for this property.voidsetFilterSearch(weka.filters.Filter value)Sets filter to generate the data for the search.voidsetFilterTrain(weka.filters.Filter value)Sets filter to use for to generate the training data for the base classifier.voidsetNearestNeighbourSearchAlgorithm(weka.core.neighboursearch.NearestNeighbourSearch nearestNeighbourSearchAlgorithm)Sets the nearestNeighbourSearch algorithm to be used for finding nearest neighbour(s).voidsetNoUpdate(boolean value)Sets whether to suppress updating the nearest-neighbor search algorithm when making predictions.voidsetOptions(String[] options)Parses a given list of options.voidstopExecution()Stops the execution.StringtoString()Returns a description of this classifier.-
Methods inherited from class weka.classifiers.lazy.LWL
enumerateMeasures, getCapabilities, getKNN, getMeasure, getNearestNeighbourSearchAlgorithm, getTechnicalInformation, getWeightingKernel, KNNTipText, nearestNeighbourSearchAlgorithmTipText, setKNN, setWeightingKernel, updateClassifier, weightingKernelTipText
-
Methods inherited from class weka.classifiers.SingleClassifierEnhancer
classifierTipText, defaultClassifierOptions, getClassifier, getClassifierSpec, postExecution, preExecution, setClassifier
-
Methods inherited from class weka.classifiers.AbstractClassifier
batchSizeTipText, classifyInstance, debugTipText, distributionsForInstances, doNotCheckCapabilitiesTipText, forName, getBatchSize, getDebug, getDoNotCheckCapabilities, getNumDecimalPlaces, implementsMoreEfficientBatchPrediction, makeCopies, makeCopy, numDecimalPlacesTipText, run, runClassifier, setBatchSize, setDebug, setDoNotCheckCapabilities, setNumDecimalPlaces
-
-
-
-
Field Detail
-
m_NoUpdate
protected boolean m_NoUpdate
whether to suppress the update of the nearest-neighbor search algorithm when making predictions.
-
m_Stopped
protected boolean m_Stopped
whether the classifier was stopped.
-
m_FilterSearch
protected weka.filters.Filter m_FilterSearch
the filter to apply to the search data.
-
m_FilterTrain
protected weka.filters.Filter m_FilterTrain
the filter to apply to the neighborhood data before training the base classifier.
-
m_DataSearch
protected weka.core.Instances m_DataSearch
the data to use for the search.
-
m_DataTrain
protected weka.core.Instances m_DataTrain
the data to use for building the base classifier.
-
-
Method Detail
-
globalInfo
public String globalInfo()
Returns a string describing classifier.- Overrides:
globalInfoin classweka.classifiers.lazy.LWL- Returns:
- a description suitable for displaying in the explorer/experimenter gui
-
defaultClassifierString
protected String defaultClassifierString()
Default classifier classname.- Overrides:
defaultClassifierStringin classweka.classifiers.lazy.LWL- Returns:
- the classname
-
listOptions
public Enumeration listOptions()
Returns an enumeration describing the available options.- Specified by:
listOptionsin interfaceweka.core.OptionHandler- Overrides:
listOptionsin classweka.classifiers.lazy.LWL- Returns:
- an enumeration of all the available options.
-
setOptions
public void setOptions(String[] options) throws Exception
Parses a given list of options.- Specified by:
setOptionsin interfaceweka.core.OptionHandler- Overrides:
setOptionsin classweka.classifiers.lazy.LWL- Parameters:
options- the list of options as an array of strings- Throws:
Exception- if an option is not supported
-
getOptions
public String[] getOptions()
Gets the current settings of the classifier.- Specified by:
getOptionsin interfaceweka.core.OptionHandler- Overrides:
getOptionsin classweka.classifiers.lazy.LWL- Returns:
- an array of strings suitable for passing to setOptions
-
setNearestNeighbourSearchAlgorithm
public void setNearestNeighbourSearchAlgorithm(weka.core.neighboursearch.NearestNeighbourSearch nearestNeighbourSearchAlgorithm)
Sets the nearestNeighbourSearch algorithm to be used for finding nearest neighbour(s).- Overrides:
setNearestNeighbourSearchAlgorithmin classweka.classifiers.lazy.LWL- Parameters:
nearestNeighbourSearchAlgorithm- - The NearestNeighbourSearch class.
-
setNoUpdate
public void setNoUpdate(boolean value)
Sets whether to suppress updating the nearest-neighbor search algorithm when making predictions.- Parameters:
value- if true then no update happens.
-
getNoUpdate
public boolean getNoUpdate()
Returns whether to suppress the update of the nearest-neighbor search algorithm when making predictions.- Returns:
- true if the update is suppressed
-
noUpdateTipText
public String noUpdateTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setFilterSearch
public void setFilterSearch(weka.filters.Filter value)
Sets filter to generate the data for the search.- Parameters:
value- the filter
-
getFilterSearch
public weka.filters.Filter getFilterSearch()
Returns the filter to generate the data for the search.- Returns:
- the filter
-
filterSearchTipText
public String filterSearchTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setFilterTrain
public void setFilterTrain(weka.filters.Filter value)
Sets filter to use for to generate the training data for the base classifier.- Parameters:
value- the filter
-
getFilterTrain
public weka.filters.Filter getFilterTrain()
Returns the filter to use for to generate the training data for the base classifier.- Returns:
- the filter
-
filterTrainTipText
public String filterTrainTipText()
Returns the tip text for this property.- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
buildClassifier
public void buildClassifier(weka.core.Instances instances) throws ExceptionGenerates a classifier. Must initialize all fields of the classifier that are not being set via options (ie. multiple calls of buildClassifier must always lead to the same result). Must not change the dataset in any way.- Specified by:
buildClassifierin interfaceweka.classifiers.Classifier- Overrides:
buildClassifierin classweka.classifiers.lazy.LWL- Parameters:
instances- set of instances serving as training data- Throws:
Exception- if the classifier has not been generated successfully
-
build
protected void build(weka.core.Instance instance) throws ExceptionBuilds the classifier.
Note: needs manual syncing with the distributionForInstance method of the original WEKA classifier.- Parameters:
instance- the instance to make prediction for- Throws:
Exception- if build fails- See Also:
LWL.distributionForInstance(Instance)
-
distributionForInstance
public double[] distributionForInstance(weka.core.Instance instance) throws ExceptionCalculates the class membership probabilities for the given test instance.- Specified by:
distributionForInstancein interfaceweka.classifiers.Classifier- Overrides:
distributionForInstancein classweka.classifiers.lazy.LWL- Parameters:
instance- the instance to be classified- Returns:
- predicted class probability distribution
- Throws:
Exception- if distribution can't be computed successfully
-
toString
public String toString()
Returns a description of this classifier.- Overrides:
toStringin classweka.classifiers.lazy.LWL- Returns:
- a description of this classifier as a string.
-
stopExecution
public void stopExecution()
Stops the execution.- Specified by:
stopExecutionin interfaceStoppable
-
isStopped
public boolean isStopped()
Whether the execution has been stopped.- Specified by:
isStoppedin interfaceStoppableWithFeedback- Returns:
- true if stopped
-
getRevision
public String getRevision()
Returns the revision string.- Specified by:
getRevisionin interfaceweka.core.RevisionHandler- Overrides:
getRevisionin classweka.classifiers.lazy.LWL- Returns:
- the revision
-
main
public static void main(String[] argv)
Main method for testing this class.- Parameters:
argv- the options
-
-