|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectweka.classifiers.Classifier
weka.classifiers.functions.LeastMedSq
Implements a least median sqaured linear regression utilising the existing weka LinearRegression class to form predictions. The basis of the algorithm is Robust regression and outlier detection Peter J. Rousseeuw, Annick M. Leroy. c1987
Field Summary | |
private double |
m_bestMedian
|
private LinearRegression |
m_bestRegression
|
private LinearRegression |
m_currentRegression
|
private Instances |
m_Data
|
private boolean |
m_debug
|
private boolean |
m_israndom
|
private LinearRegression |
m_ls
|
private ReplaceMissingValues |
m_MissingFilter
|
private java.util.Random |
m_random
|
private long |
m_randomseed
|
private double[] |
m_Residuals
|
private Instances |
m_RLSData
|
private int |
m_samples
|
private int |
m_samplesize
|
private double |
m_scalefactor
|
private RemoveRange |
m_SplitFilter
|
private double |
m_SSR
|
private Instances |
m_SubSample
|
private NominalToBinary |
m_TransformFilter
|
private double[] |
m_weight
|
Fields inherited from class weka.classifiers.Classifier |
m_Debug |
Constructor Summary | |
LeastMedSq()
|
Method Summary | |
void |
buildClassifier(Instances data)
Build lms regression |
private void |
buildRLSRegression()
Builds a new LinearRegression without the 'bad' data found by buildWeight |
private void |
buildWeight()
Builds a weight function removing instances with an abnormally high scaled residual |
double |
classifyInstance(Instance instance)
Classify a given instance using the best generated LinearRegression Classifier. |
private void |
cleanUpData(Instances data)
Cleans up data |
static int |
combinations(int n,
int r)
Produces the combination nCr |
private void |
findBestRegression()
Finds the best regression generated from m_samples random samples from the training data |
private void |
findResiduals()
Finds residuals (squared) for the current regression. |
private void |
genRegression()
Generates a LinearRegression classifier from the current m_SubSample |
boolean |
getDebug()
Returns whether or not debugging output shouild be printed |
private void |
getMedian()
finds the median residual squared for the current regression |
java.lang.String[] |
getOptions()
Gets the current option settings for the OptionHandler. |
long |
getRandomSeed()
get the seed for the random number generator |
private void |
getSamples()
Gets the number of samples to use. |
int |
getSampleSize()
gets number of samples |
java.lang.String |
globalInfo()
Returns a string describing this classifier |
java.util.Enumeration |
listOptions()
Returns an enumeration of all the available options.. |
static void |
main(java.lang.String[] argv)
generate a Linear regression predictor for testing |
private static int |
partition(double[] a,
int l,
int r)
Partitions an array of numbers such that all numbers less than that at index r, between indexes l and r will have a smaller index and all numbers greater than will have a larger index |
java.lang.String |
randomSeedTipText()
Returns the tip text for this property |
java.lang.String |
sampleSizeTipText()
Returns the tip text for this property |
private static void |
select(double[] a,
int l,
int r,
int k)
Finds the kth number in an array |
private java.lang.String |
selectIndices(Instances data)
Returns a string suitable for passing to RemoveRange consisting of m_samplesize indices. |
private void |
selectSubSample(Instances data)
Produces a random sample from m_Data in m_SubSample |
void |
setDebug(boolean debug)
sets whether or not debugging output shouild be printed |
void |
setOptions(java.lang.String[] options)
Sets the OptionHandler's options using the given list. |
private void |
setRandom()
Set up the random number generator |
void |
setRandomSeed(long randomseed)
Set the seed for the random number generator |
void |
setSampleSize(int samplesize)
sets number of samples |
java.lang.String |
toString()
Returns a string representing the best LinearRegression classifier found. |
Methods inherited from class weka.classifiers.Classifier |
debugTipText, distributionForInstance, forName, makeCopies |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
private double[] m_Residuals
private double[] m_weight
private double m_SSR
private double m_scalefactor
private double m_bestMedian
private LinearRegression m_currentRegression
private LinearRegression m_bestRegression
private LinearRegression m_ls
private Instances m_Data
private Instances m_RLSData
private Instances m_SubSample
private ReplaceMissingValues m_MissingFilter
private NominalToBinary m_TransformFilter
private RemoveRange m_SplitFilter
private int m_samplesize
private int m_samples
private boolean m_israndom
private boolean m_debug
private java.util.Random m_random
private long m_randomseed
Constructor Detail |
public LeastMedSq()
Method Detail |
public java.lang.String globalInfo()
public void buildClassifier(Instances data) throws java.lang.Exception
buildClassifier
in class Classifier
data
- training data
java.lang.Exception
- if an error occurspublic double classifyInstance(Instance instance) throws java.lang.Exception
classifyInstance
in class Classifier
instance
- instance to be classified
java.lang.Exception
- if an error occursprivate void cleanUpData(Instances data) throws java.lang.Exception
data
- data to be cleaned up
java.lang.Exception
- if an error occursprivate void getSamples() throws java.lang.Exception
java.lang.Exception
private void setRandom()
private void findBestRegression() throws java.lang.Exception
java.lang.Exception
- if an error occursprivate void genRegression() throws java.lang.Exception
java.lang.Exception
- if an error occursprivate void findResiduals() throws java.lang.Exception
java.lang.Exception
- if an error occursprivate void getMedian() throws java.lang.Exception
java.lang.Exception
- if an error occurspublic java.lang.String toString()
private void buildWeight() throws java.lang.Exception
java.lang.Exception
private void buildRLSRegression() throws java.lang.Exception
java.lang.Exception
private static void select(double[] a, int l, int r, int k)
a
- an array of numbersl
- left pointerr
- right pointerk
- position of number to be foundprivate static int partition(double[] a, int l, int r)
a
- an array of numbersl
- left pointerr
- right pointer
private void selectSubSample(Instances data) throws java.lang.Exception
data
- data from which to take sample
java.lang.Exception
- if an error occursprivate java.lang.String selectIndices(Instances data)
data
- dataset from which to take indicese
public java.lang.String sampleSizeTipText()
public void setSampleSize(int samplesize)
samplesize
- valuepublic int getSampleSize()
public java.lang.String randomSeedTipText()
public void setRandomSeed(long randomseed)
randomseed
- the seedpublic long getRandomSeed()
public void setDebug(boolean debug)
setDebug
in class Classifier
debug
- true if debugging output selectedpublic boolean getDebug()
getDebug
in class Classifier
public java.util.Enumeration listOptions()
listOptions
in interface OptionHandler
listOptions
in class Classifier
public void setOptions(java.lang.String[] options) throws java.lang.Exception
setOptions
in interface OptionHandler
setOptions
in class Classifier
options
- the list of options as an array of strings
java.lang.Exception
- if an option is not supportedpublic java.lang.String[] getOptions()
getOptions
in interface OptionHandler
getOptions
in class Classifier
public static int combinations(int n, int r) throws java.lang.Exception
n
-
java.lang.Exception
- if r is greater than npublic static void main(java.lang.String[] argv)
argv
- options
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |