|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectweka.classifiers.Classifier
weka.classifiers.SingleClassifierEnhancer
weka.classifiers.lazy.LWL
Locally-weighted learning. Uses an instance-based algorithm to assign instance weights which are then used by a specified WeightedInstancesHandler. A good choice for classification is NaiveBayes. LinearRegression is suitable for regression problems. For more information, see
Eibe Frank, Mark Hall, and Bernhard Pfahringer (2003). Locally Weighted Naive Bayes. Working Paper 04/03, Department of Computer Science, University of Waikato. Atkeson, C., A. Moore, and S. Schaal (1996) Locally weighted learning download postscript.
Valid options are:
-D
Produce debugging output.
-K num
Set the number of neighbours used for setting kernel bandwidth.
(default all)
-W num
Set the weighting kernel shape to use. 1 = Inverse, 2 = Gaussian.
(default 0 = Linear)
-B classname
Specify the full class name of a base classifier (which needs
to be a WeightedInstancesHandler).
Field Summary | |
protected static int |
GAUSS
|
protected static int |
INVERSE
|
protected static int |
LINEAR
The available kernel weighting methods |
protected int |
m_kNN
The number of neighbours used to select the kernel bandwidth |
protected double[] |
m_Max
The maximum values for numeric attributes. |
protected double[] |
m_Min
The minimum values for numeric attributes. |
protected Instances |
m_Train
The training instances used for classification. |
protected boolean |
m_UseAllK
True if m_kNN should be set to all instances |
protected int |
m_WeightKernel
The weighting kernel method currently selected |
Fields inherited from class weka.classifiers.SingleClassifierEnhancer |
m_Classifier |
Fields inherited from class weka.classifiers.Classifier |
m_Debug |
Constructor Summary | |
LWL()
Constructor. |
Method Summary | |
void |
buildClassifier(Instances instances)
Generates the classifier. |
protected java.lang.String |
defaultClassifierString()
String describing default classifier. |
private double |
difference(int index,
double val1,
double val2)
Computes the difference between two given attribute values. |
private double |
distance(Instance first,
Instance second)
Calculates the distance between two instances |
double[] |
distributionForInstance(Instance instance)
Calculates the class membership probabilities for the given test instance. |
protected double |
getAttributeMax(int index)
Gets an attributes maximum observed value |
protected double |
getAttributeMin(int index)
Gets an attributes minimum observed value |
int |
getKNN()
Gets the number of neighbours used for kernel bandwidth setting. |
java.lang.String[] |
getOptions()
Gets the current settings of the classifier. |
int |
getWeightingKernel()
Gets the kernel weighting method to use. |
java.lang.String |
globalInfo()
Returns a string describing classifier |
java.lang.String |
KNNTipText()
Returns the tip text for this property |
java.util.Enumeration |
listOptions()
Returns an enumeration describing the available options. |
static void |
main(java.lang.String[] argv)
Main method for testing this class. |
private double |
norm(double x,
int i)
Normalizes a given value of a numeric attribute. |
void |
setKNN(int knn)
Sets the number of neighbours used for kernel bandwidth setting. |
void |
setOptions(java.lang.String[] options)
Parses a given list of options. |
void |
setWeightingKernel(int kernel)
Sets the kernel weighting method to use. |
java.lang.String |
toString()
Returns a description of this classifier. |
void |
updateClassifier(Instance instance)
Adds the supplied instance to the training set |
private void |
updateMinMax(Instance instance)
Updates the minimum and maximum values for all the attributes based on a new instance. |
java.lang.String |
weightingKernelTipText()
Returns the tip text for this property |
Methods inherited from class weka.classifiers.SingleClassifierEnhancer |
classifierTipText, getClassifier, getClassifierSpec, setClassifier |
Methods inherited from class weka.classifiers.Classifier |
classifyInstance, debugTipText, forName, getDebug, makeCopies, setDebug |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
protected Instances m_Train
protected double[] m_Min
protected double[] m_Max
protected int m_kNN
protected int m_WeightKernel
protected boolean m_UseAllK
protected static final int LINEAR
protected static final int INVERSE
protected static final int GAUSS
Constructor Detail |
public LWL()
Method Detail |
public java.lang.String globalInfo()
protected java.lang.String defaultClassifierString()
defaultClassifierString
in class SingleClassifierEnhancer
public java.util.Enumeration listOptions()
listOptions
in interface OptionHandler
listOptions
in class SingleClassifierEnhancer
public void setOptions(java.lang.String[] options) throws java.lang.Exception
-D
Produce debugging output.
-K num
Set the number of neighbours used for setting kernel bandwidth.
(default all)
-W num
Set the weighting kernel shape to use. 1 = Inverse, 2 = Gaussian.
(default 0 = Linear)
-B classname
Specify the full class name of a base classifier (which needs
to be a WeightedInstancesHandler).
setOptions
in interface OptionHandler
setOptions
in class SingleClassifierEnhancer
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 SingleClassifierEnhancer
public java.lang.String KNNTipText()
public void setKNN(int knn)
knn
- the number of neighbours included inside the kernel
bandwidth, or 0 to specify using all neighbors.public int getKNN()
public java.lang.String weightingKernelTipText()
public void setWeightingKernel(int kernel)
kernel
- the new kernel method to use. Must be one of LINEAR,
INVERSE, or GAUSSpublic int getWeightingKernel()
protected double getAttributeMin(int index)
index
- the index of the attribute
protected double getAttributeMax(int index)
index
- the index of the attribute
public void buildClassifier(Instances instances) throws java.lang.Exception
buildClassifier
in class Classifier
instances
- set of instances serving as training data
java.lang.Exception
- if the classifier has not been generated successfullypublic void updateClassifier(Instance instance) throws java.lang.Exception
updateClassifier
in interface UpdateableClassifier
instance
- the instance to add
java.lang.Exception
- if instance could not be incorporated
successfullypublic double[] distributionForInstance(Instance instance) throws java.lang.Exception
distributionForInstance
in class Classifier
instance
- the instance to be classified
java.lang.Exception
- if distribution can't be computed successfullypublic java.lang.String toString()
private double distance(Instance first, Instance second)
private double difference(int index, double val1, double val2)
private double norm(double x, int i)
x
- the value to be normalizedi
- the attribute's indexprivate void updateMinMax(Instance instance)
instance
- the new instancepublic static void main(java.lang.String[] argv)
argv
- the options
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |