All Packages Class Hierarchy This Package Previous Next Index WEKA's home
Class weka.classifiers.IBk
java.lang.Object
|
+----weka.classifiers.Classifier
|
+----weka.classifiers.DistributionClassifier
|
+----weka.classifiers.IBk
- public class IBk
- extends DistributionClassifier
- implements OptionHandler, UpdateableClassifier, WeightedInstancesHandler
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)
- Version:
- $Revision: 1.13 $
- Author:
- Stuart Inglis (singlis@cs.waikato.ac.nz), Len Trigg (trigg@cs.waikato.ac.nz), Eibe Frank (eibe@cs.waikato.ac.nz)
-
TAGS_WEIGHTING
-
-
WEIGHT_INVERSE
-
-
WEIGHT_NONE
-
-
WEIGHT_SIMILARITY
-
-
IBk()
- IB1 classifer.
-
IBk(int)
- IBk classifier.
-
buildClassifier(Instances)
- Generates the classifier.
-
distributionForInstance(Instance)
- Calculates the class membership probabilities for the given test instance.
-
getAttributeMax(int)
- Get an attributes maximum observed value
-
getAttributeMin(int)
- Get an attributes minimum observed value
-
getCrossValidate()
- Gets whether hold-one-out cross-validation will be used
to select the best k value
-
getDebug()
- Get the value of Debug.
-
getDistanceWeighting()
- Gets the distance weighting method used.
-
getKNN()
- Gets the number of neighbours the learner will use.
-
getMeanSquared()
- Gets whether the mean squared error is used rather than mean
absolute error when doing cross-validation.
-
getNumTraining()
- Get the number of training instances the classifier is currently using
-
getOptions()
- Gets the current settings of IBk.
-
getWindowSize()
- Gets the maximum number of instances allowed in the training
pool.
-
listOptions()
- Returns an enumeration describing the available options
-
main(String[])
- Main method for testing this class.
-
setCrossValidate(boolean)
- Sets whether hold-one-out cross-validation will be used
to select the best k value
-
setDebug(boolean)
- Set the value of Debug.
-
setDistanceWeighting(SelectedTag)
- Sets the distance weighting method used.
-
setKNN(int)
- Set the number of neighbours the learner is to use.
-
setMeanSquared(boolean)
- Sets whether the mean squared error is used rather than mean
absolute error when doing cross-validation.
-
setOptions(String[])
- Parses a given list of options.
-
setWindowSize(int)
- Sets the maximum number of instances allowed in the training
pool.
-
toString()
- Returns a description of this classifier.
-
updateClassifier(Instance)
- Adds the supplied instance to the training set
WEIGHT_NONE
public static final int WEIGHT_NONE
WEIGHT_INVERSE
public static final int WEIGHT_INVERSE
WEIGHT_SIMILARITY
public static final int WEIGHT_SIMILARITY
TAGS_WEIGHTING
public static final Tag TAGS_WEIGHTING[]
IBk
public IBk(int k)
- IBk classifier. Simple instance-based learner that uses the class
of the nearest k training instances for the class of the test
instances.
- Parameters:
- k - the number of nearest neighbors to use for prediction
IBk
public IBk()
- IB1 classifer. Instance-based learner. Predicts the class of the
single nearest training instance for each test instance.
getDebug
public boolean getDebug()
- Get the value of Debug.
- Returns:
- Value of Debug.
setDebug
public void setDebug(boolean newDebug)
- Set the value of Debug.
- Parameters:
- newDebug - Value to assign to Debug.
setKNN
public void setKNN(int k)
- Set the number of neighbours the learner is to use.
- Parameters:
- k - the number of neighbours.
getKNN
public int getKNN()
- Gets the number of neighbours the learner will use.
- Returns:
- the number of neighbours.
getWindowSize
public int getWindowSize()
- Gets the maximum number of instances allowed in the training
pool. The addition of new instances above this value will result
in old instances being removed. A value of 0 signifies no limit
to the number of training instances.
- Returns:
- Value of WindowSize.
setWindowSize
public void setWindowSize(int newWindowSize)
- Sets the maximum number of instances allowed in the training
pool. The addition of new instances above this value will result
in old instances being removed. A value of 0 signifies no limit
to the number of training instances.
- Parameters:
- newWindowSize - Value to assign to WindowSize.
getDistanceWeighting
public SelectedTag getDistanceWeighting()
- Gets the distance weighting method used. Will be one of
WEIGHT_NONE, WEIGHT_INVERSE, or WEIGHT_SIMILARITY
- Returns:
- the distance weighting method used.
setDistanceWeighting
public void setDistanceWeighting(SelectedTag newMethod)
- Sets the distance weighting method used. Values other than
WEIGHT_NONE, WEIGHT_INVERSE, or WEIGHT_SIMILARITY will be ignored.
- Parameters:
- newDistanceWeighting - the distance weighting method to use
getMeanSquared
public boolean getMeanSquared()
- Gets whether the mean squared error is used rather than mean
absolute error when doing cross-validation.
- Returns:
- true if so.
setMeanSquared
public void setMeanSquared(boolean newMeanSquared)
- Sets whether the mean squared error is used rather than mean
absolute error when doing cross-validation.
- Parameters:
- newMeanSquared - true if so.
getCrossValidate
public boolean getCrossValidate()
- Gets whether hold-one-out cross-validation will be used
to select the best k value
- Returns:
- true if cross-validation will be used.
setCrossValidate
public void setCrossValidate(boolean newCrossValidate)
- Sets whether hold-one-out cross-validation will be used
to select the best k value
- Parameters:
- newCrossValidate - true if cross-validation should be used.
getNumTraining
public int getNumTraining()
- Get the number of training instances the classifier is currently using
getAttributeMin
public double getAttributeMin(int index)
- Get an attributes minimum observed value
getAttributeMax
public double getAttributeMax(int index)
- Get an attributes maximum observed value
buildClassifier
public void buildClassifier(Instances instances) throws Exception
- Generates the classifier.
- Parameters:
- instances - set of instances serving as training data
- Throws: Exception
- if the classifier has not been generated successfully
- Overrides:
- buildClassifier in class Classifier
updateClassifier
public void updateClassifier(Instance instance) throws Exception
- Adds the supplied instance to the training set
- Parameters:
- instance - the instance to add
- Throws: Exception
- if instance could not be incorporated
successfully
distributionForInstance
public double[] distributionForInstance(Instance instance) throws Exception
- Calculates the class membership probabilities for the given test instance.
- Parameters:
- instance - the instance to be classified
- Returns:
- predicted class probability distribution
- Throws: Exception
- if an error occurred during the prediction
- Overrides:
- distributionForInstance in class DistributionClassifier
listOptions
public Enumeration listOptions()
- Returns an enumeration describing the available options
- Returns:
- an enumeration of all the available options
setOptions
public void setOptions(String options[]) throws Exception
- Parses a given list of options. 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
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)
- 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 IBk.
- Returns:
- an array of strings suitable for passing to setOptions()
toString
public String toString()
- Returns a description of this classifier.
- Returns:
- a description of this classifier as a string.
- Overrides:
- toString in class Object
main
public static void main(String argv[])
- Main method for testing this class.
- Parameters:
- argv - should contain command line options (see setOptions)
All Packages Class Hierarchy This Package Previous Next Index WEKA's home