Package weka.classifiers.functions
Class LeastMedSq
- java.lang.Object
-
- weka.classifiers.Classifier
-
- weka.classifiers.functions.LeastMedSq
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,CapabilitiesHandler
,OptionHandler
,RevisionHandler
,TechnicalInformationHandler
public class LeastMedSq extends Classifier implements OptionHandler, TechnicalInformationHandler
Implements a least median sqaured linear regression utilising the existing weka LinearRegression class to form predictions.
Least squared regression functions are generated from random subsamples of the data. The least squared regression with the lowest meadian squared error is chosen as the final model.
The basis of the algorithm is
Peter J. Rousseeuw, Annick M. Leroy (1987). Robust regression and outlier detection. . BibTeX:@book{Rousseeuw1987, author = {Peter J. Rousseeuw and Annick M. Leroy}, title = {Robust regression and outlier detection}, year = {1987} }
Valid options are:-S <sample size> Set sample size (default: 4)
-G <seed> Set the seed used to generate samples (default: 0)
-D Produce debugging output (default no debugging output)
- Version:
- $Revision: 5523 $
- Author:
- Tony Voyle (tv6@waikato.ac.nz)
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description LeastMedSq()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
buildClassifier(Instances data)
Build lms regressiondouble
classifyInstance(Instance instance)
Classify a given instance using the best generated LinearRegression Classifier.static int
combinations(int n, int r)
Produces the combination nCrCapabilities
getCapabilities()
Returns default capabilities of the classifier.boolean
getDebug()
Returns whether or not debugging output shouild be printedjava.lang.String[]
getOptions()
Gets the current option settings for the OptionHandler.long
getRandomSeed()
get the seed for the random number generatorjava.lang.String
getRevision()
Returns the revision string.int
getSampleSize()
gets number of samplesTechnicalInformation
getTechnicalInformation()
Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.java.lang.String
globalInfo()
Returns a string describing this classifierjava.util.Enumeration
listOptions()
Returns an enumeration of all the available options..static void
main(java.lang.String[] argv)
generate a Linear regression predictor for testingjava.lang.String
randomSeedTipText()
Returns the tip text for this propertyjava.lang.String
sampleSizeTipText()
Returns the tip text for this propertyvoid
setDebug(boolean debug)
sets whether or not debugging output shouild be printedvoid
setOptions(java.lang.String[] options)
Sets the OptionHandler's options using the given list.void
setRandomSeed(long randomseed)
Set the seed for the random number generatorvoid
setSampleSize(int samplesize)
sets number of samplesjava.lang.String
toString()
Returns a string representing the best LinearRegression classifier found.-
Methods inherited from class weka.classifiers.Classifier
debugTipText, distributionForInstance, forName, makeCopies, makeCopy
-
-
-
-
Method Detail
-
globalInfo
public java.lang.String globalInfo()
Returns a string describing this classifier- Returns:
- a description of the classifier suitable for displaying in the explorer/experimenter gui
-
getTechnicalInformation
public TechnicalInformation getTechnicalInformation()
Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.- Specified by:
getTechnicalInformation
in interfaceTechnicalInformationHandler
- Returns:
- the technical information about this class
-
getCapabilities
public Capabilities getCapabilities()
Returns default capabilities of the classifier.- Specified by:
getCapabilities
in interfaceCapabilitiesHandler
- Overrides:
getCapabilities
in classClassifier
- Returns:
- the capabilities of this classifier
- See Also:
Capabilities
-
buildClassifier
public void buildClassifier(Instances data) throws java.lang.Exception
Build lms regression- Specified by:
buildClassifier
in classClassifier
- Parameters:
data
- training data- Throws:
java.lang.Exception
- if an error occurs
-
classifyInstance
public double classifyInstance(Instance instance) throws java.lang.Exception
Classify a given instance using the best generated LinearRegression Classifier.- Overrides:
classifyInstance
in classClassifier
- Parameters:
instance
- instance to be classified- Returns:
- class value
- Throws:
java.lang.Exception
- if an error occurs
-
toString
public java.lang.String toString()
Returns a string representing the best LinearRegression classifier found.- Overrides:
toString
in classjava.lang.Object
- Returns:
- String representing the regression
-
sampleSizeTipText
public java.lang.String sampleSizeTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setSampleSize
public void setSampleSize(int samplesize)
sets number of samples- Parameters:
samplesize
- value
-
getSampleSize
public int getSampleSize()
gets number of samples- Returns:
- value
-
randomSeedTipText
public java.lang.String randomSeedTipText()
Returns the tip text for this property- Returns:
- tip text for this property suitable for displaying in the explorer/experimenter gui
-
setRandomSeed
public void setRandomSeed(long randomseed)
Set the seed for the random number generator- Parameters:
randomseed
- the seed
-
getRandomSeed
public long getRandomSeed()
get the seed for the random number generator- Returns:
- the seed value
-
setDebug
public void setDebug(boolean debug)
sets whether or not debugging output shouild be printed- Overrides:
setDebug
in classClassifier
- Parameters:
debug
- true if debugging output selected
-
getDebug
public boolean getDebug()
Returns whether or not debugging output shouild be printed- Overrides:
getDebug
in classClassifier
- Returns:
- true if debuging output selected
-
listOptions
public java.util.Enumeration listOptions()
Returns an enumeration of all the available options..- Specified by:
listOptions
in interfaceOptionHandler
- Overrides:
listOptions
in classClassifier
- Returns:
- an enumeration of all available options.
-
setOptions
public void setOptions(java.lang.String[] options) throws java.lang.Exception
Sets the OptionHandler's options using the given list. All options will be set (or reset) during this call (i.e. incremental setting of options is not possible). Valid options are:-S <sample size> Set sample size (default: 4)
-G <seed> Set the seed used to generate samples (default: 0)
-D Produce debugging output (default no debugging output)
- Specified by:
setOptions
in interfaceOptionHandler
- Overrides:
setOptions
in classClassifier
- Parameters:
options
- the list of options as an array of strings- Throws:
java.lang.Exception
- if an option is not supported
-
getOptions
public java.lang.String[] getOptions()
Gets the current option settings for the OptionHandler.- Specified by:
getOptions
in interfaceOptionHandler
- Overrides:
getOptions
in classClassifier
- Returns:
- the list of current option settings as an array of strings
-
combinations
public static int combinations(int n, int r) throws java.lang.Exception
Produces the combination nCr- Parameters:
n
-r
-- Returns:
- the combination
- Throws:
java.lang.Exception
- if r is greater than n
-
getRevision
public java.lang.String getRevision()
Returns the revision string.- Specified by:
getRevision
in interfaceRevisionHandler
- Overrides:
getRevision
in classClassifier
- Returns:
- the revision
-
main
public static void main(java.lang.String[] argv)
generate a Linear regression predictor for testing- Parameters:
argv
- options
-
-