|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object
|
+--weka.classifiers.Classifier
|
+--weka.classifiers.DistributionClassifier
|
+--weka.classifiers.IBk
K-nearest neighbour classifier. For more information, see
Aha, D., and D. Kibler (1991) "Instance-based learning algorithms", Machine Learning, vol.6, pp. 37-66.
Valid options are:
-K num
Set the number of nearest neighbors to use in prediction
(default 1)
-W num
Set a fixed window size for incremental train/testing. As
new training instances are added, oldest instances are removed
to maintain the number of training instances at this size.
(default no window)
-D
Neighbors will be weighted by the inverse of their distance
when voting. (default equal weighting)
-F
Neighbors will be weighted by their similarity when voting.
(default equal weighting)
-X
Selects the number of neighbors to use by hold-one-out cross
validation, with an upper limit given by the -K option.
-S
When k is selected by cross-validation for numeric class attributes,
minimize mean-squared error. (default mean absolute error)
-N
Turns off normalization.
| Field Summary | |
protected int |
m_ClassType
The class attribute type |
protected boolean |
m_CrossValidate
Whether to select k by cross validation |
protected int |
m_DistanceWeighting
Whether the neighbours should be distance-weighted |
protected boolean |
m_DontNormalize
True if normalization is turned off |
protected int |
m_kNN
The number of neighbours to use for classification (currently) |
protected int |
m_kNNUpper
The value of kNN provided by the user. |
protected boolean |
m_kNNValid
Whether the value of k selected by cross validation has been invalidated by a change in the training instances |
protected double[] |
m_Max
The maximum values for numeric attributes. |
protected boolean |
m_MeanSquared
Whether to minimise mean squared error rather than mean absolute error when cross-validating on numeric prediction tasks |
protected double[] |
m_Min
The minimum values for numeric attributes. |
protected double |
m_NumAttributesUsed
The number of attributes the contribute to a prediction |
protected int |
m_NumClasses
The number of class values (or 1 if predicting numeric) |
protected Instances |
m_Train
The training instances used for classification. |
protected int |
m_WindowSize
The maximum number of training instances allowed. |
static Tag[] |
TAGS_WEIGHTING
|
static int |
WEIGHT_INVERSE
|
static int |
WEIGHT_NONE
|
static int |
WEIGHT_SIMILARITY
|
| Constructor Summary | |
IBk()
IB1 classifer. |
|
IBk(int k)
IBk classifier. |
|
| Method Summary | |
void |
buildClassifier(Instances instances)
Generates the classifier. |
double[] |
distributionForInstance(Instance instance)
Calculates the class membership probabilities for the given test instance. |
double |
getAttributeMax(int index)
Get an attributes maximum observed value |
double |
getAttributeMin(int index)
Get an attributes minimum observed value |
boolean |
getCrossValidate()
Gets whether hold-one-out cross-validation will be used to select the best k value |
boolean |
getDebug()
Get the value of Debug. |
SelectedTag |
getDistanceWeighting()
Gets the distance weighting method used. |
int |
getKNN()
Gets the number of neighbours the learner will use. |
boolean |
getMeanSquared()
Gets whether the mean squared error is used rather than mean absolute error when doing cross-validation. |
boolean |
getNoNormalization()
Gets whether normalization is turned off. |
int |
getNumTraining()
Get the number of training instances the classifier is currently using |
java.lang.String[] |
getOptions()
Gets the current settings of IBk. |
int |
getWindowSize()
Gets the maximum number of instances allowed in the training pool. |
java.util.Enumeration |
listOptions()
Returns an enumeration describing the available options |
static void |
main(java.lang.String[] argv)
Main method for testing this class. |
void |
setCrossValidate(boolean newCrossValidate)
Sets whether hold-one-out cross-validation will be used to select the best k value |
void |
setDebug(boolean newDebug)
Set the value of Debug. |
void |
setDistanceWeighting(SelectedTag newMethod)
Sets the distance weighting method used. |
void |
setKNN(int k)
Set the number of neighbours the learner is to use. |
void |
setMeanSquared(boolean newMeanSquared)
Sets whether the mean squared error is used rather than mean absolute error when doing cross-validation. |
void |
setNoNormalization(boolean v)
Set whether normalization is turned off. |
void |
setOptions(java.lang.String[] options)
Parses a given list of options. |
void |
setWindowSize(int newWindowSize)
Sets the maximum number of instances allowed in the training pool. |
java.lang.String |
toString()
Returns a description of this classifier. |
void |
updateClassifier(Instance instance)
Adds the supplied instance to the training set |
| Methods inherited from class weka.classifiers.DistributionClassifier |
classifyInstance |
| Methods inherited from class weka.classifiers.Classifier |
forName, makeCopies |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
protected Instances m_Train
protected int m_NumClasses
protected int m_ClassType
protected double[] m_Min
protected double[] m_Max
protected int m_kNN
protected int m_kNNUpper
protected boolean m_kNNValid
protected int m_WindowSize
protected int m_DistanceWeighting
protected boolean m_CrossValidate
protected boolean m_MeanSquared
protected boolean m_DontNormalize
public static final int WEIGHT_NONE
public static final int WEIGHT_INVERSE
public static final int WEIGHT_SIMILARITY
public static final Tag[] TAGS_WEIGHTING
protected double m_NumAttributesUsed
| Constructor Detail |
public IBk(int k)
k - the number of nearest neighbors to use for predictionpublic IBk()
| Method Detail |
public boolean getDebug()
public void setDebug(boolean newDebug)
newDebug - Value to assign to Debug.public void setKNN(int k)
k - the number of neighbours.public int getKNN()
public int getWindowSize()
public void setWindowSize(int newWindowSize)
newWindowSize - Value to assign to WindowSize.public SelectedTag getDistanceWeighting()
public void setDistanceWeighting(SelectedTag newMethod)
newDistanceWeighting - the distance weighting method to usepublic boolean getMeanSquared()
public void setMeanSquared(boolean newMeanSquared)
newMeanSquared - true if so.public boolean getCrossValidate()
public void setCrossValidate(boolean newCrossValidate)
newCrossValidate - true if cross-validation should be used.public int getNumTraining()
public double getAttributeMin(int index)
throws java.lang.Exception
public double getAttributeMax(int index)
throws java.lang.Exception
public boolean getNoNormalization()
public void setNoNormalization(boolean v)
v - Value to assign to DontNormalize.
public void buildClassifier(Instances instances)
throws java.lang.Exception
buildClassifier in class Classifierinstances - set of instances serving as training datajava.lang.Exception - if the classifier has not been generated successfully
public void updateClassifier(Instance instance)
throws java.lang.Exception
updateClassifier in interface UpdateableClassifierinstance - the instance to addjava.lang.Exception - if instance could not be incorporated
successfully
public double[] distributionForInstance(Instance instance)
throws java.lang.Exception
distributionForInstance in class DistributionClassifierinstance - the instance to be classifiedjava.lang.Exception - if an error occurred during the predictionpublic java.util.Enumeration listOptions()
listOptions in interface OptionHandler
public void setOptions(java.lang.String[] options)
throws java.lang.Exception
-K num
Set the number of nearest neighbors to use in prediction
(default 1)
-W num
Set a fixed window size for incremental train/testing. As
new training instances are added, oldest instances are removed
to maintain the number of training instances at this size.
(default no window)
-D
Neighbors will be weighted by the inverse of their distance
when voting. (default equal weighting)
-F
Neighbors will be weighted by their similarity when voting.
(default equal weighting)
-X
Select the number of neighbors to use by hold-one-out cross
validation, with an upper limit given by the -K option.
-S
When k is selected by cross-validation for numeric class attributes,
minimize mean-squared error. (default mean absolute error)
setOptions in interface OptionHandleroptions - the list of options as an array of stringsjava.lang.Exception - if an option is not supportedpublic java.lang.String[] getOptions()
getOptions in interface OptionHandlerpublic java.lang.String toString()
toString in class java.lang.Objectpublic static void main(java.lang.String[] argv)
argv - should contain command line options (see setOptions)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||