KDTrees class and its options (can only use the same distance function
as XMeans).
- See Also:
- Serialized Form
Field Summary |
protected int |
m_ClassType
The class attribute type |
protected boolean |
m_CrossValidate
Whether to select k by cross validation |
protected DistanceFunction |
m_DistanceF
Distance functions |
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 boolean |
m_MeanSquared
Whether to minimise mean squared error rather than mean absolute
error when cross-validating on numeric prediction tasks |
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 double[][] |
m_Ranges
Ranges of the universe of data, lowest value, highest value and width |
protected Instances |
m_Train
The training instances used for classification. |
protected int |
m_WindowSize
The maximum number of training instances allowed. |
protected static int |
R_MAX
|
protected static int |
R_MIN
Index in ranges for LOW and HIGH and WIDTH |
protected static int |
R_WIDTH
|
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. |
KDTree |
getKDTree()
Gets the KDTree class. |
protected java.lang.String |
getKDTreeSpec()
Gets the KDTree specification string, which contains the class name of
the KDTree class and any options to the KDTree |
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 |
setKDTree(KDTree k)
Sets the KDTree class. |
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 java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
m_Train
protected Instances m_Train
- The training instances used for classification.
m_NumClasses
protected int m_NumClasses
- The number of class values (or 1 if predicting numeric)
m_ClassType
protected int m_ClassType
- The class attribute type
m_kNN
protected int m_kNN
- The number of neighbours to use for classification (currently)
m_DistanceF
protected DistanceFunction m_DistanceF
- Distance functions
m_kNNUpper
protected int m_kNNUpper
- The value of kNN provided by the user. This may differ from
m_kNN if cross-validation is being used
m_kNNValid
protected boolean m_kNNValid
- Whether the value of k selected by cross validation has
been invalidated by a change in the training instances
m_WindowSize
protected int m_WindowSize
- The maximum number of training instances allowed. When
this limit is reached, old training instances are removed,
so the training data is "windowed". Set to 0 for unlimited
numbers of instances.
m_DistanceWeighting
protected int m_DistanceWeighting
- Whether the neighbours should be distance-weighted
m_CrossValidate
protected boolean m_CrossValidate
- Whether to select k by cross validation
m_MeanSquared
protected boolean m_MeanSquared
- Whether to minimise mean squared error rather than mean absolute
error when cross-validating on numeric prediction tasks
m_DontNormalize
protected boolean m_DontNormalize
- True if normalization is turned off
WEIGHT_NONE
public static final int WEIGHT_NONE
- See Also:
- Constant Field Values
WEIGHT_INVERSE
public static final int WEIGHT_INVERSE
- See Also:
- Constant Field Values
WEIGHT_SIMILARITY
public static final int WEIGHT_SIMILARITY
- See Also:
- Constant Field Values
TAGS_WEIGHTING
public static final Tag[] TAGS_WEIGHTING
m_NumAttributesUsed
protected double m_NumAttributesUsed
- The number of attributes the contribute to a prediction
m_Ranges
protected double[][] m_Ranges
- Ranges of the universe of data, lowest value, highest value and width
R_MIN
protected static int R_MIN
- Index in ranges for LOW and HIGH and WIDTH
R_MAX
protected static int R_MAX
R_WIDTH
protected static int R_WIDTH
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 neighbours 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.
setKDTree
public void setKDTree(KDTree k)
- Sets the KDTree class.
- Parameters:
k
- a KDTree object with all options set
getKDTree
public KDTree getKDTree()
- Gets the KDTree class.
- Returns:
- flag if KDTrees are used
getKDTreeSpec
protected java.lang.String getKDTreeSpec()
- Gets the KDTree specification string, which contains the class name of
the KDTree class and any options to the KDTree
- Returns:
- the KDTree string.
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.
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)
throws java.lang.Exception
- Get an attributes minimum observed value
- Throws:
java.lang.Exception
getAttributeMax
public double getAttributeMax(int index)
throws java.lang.Exception
- Get an attributes maximum observed value
- Throws:
java.lang.Exception
getNoNormalization
public boolean getNoNormalization()
- Gets whether normalization is turned off.
- Returns:
- Value of DontNormalize.
setNoNormalization
public void setNoNormalization(boolean v)
- Set whether normalization is turned off.
- Parameters:
v
- Value to assign to DontNormalize.
buildClassifier
public void buildClassifier(Instances instances)
throws java.lang.Exception
- Generates the classifier.
- Specified by:
buildClassifier
in class Classifier
- Parameters:
instances
- set of instances serving as training data
- Throws:
java.lang.Exception
- if the classifier has not been generated successfully
updateClassifier
public void updateClassifier(Instance instance)
throws java.lang.Exception
- Adds the supplied instance to the training set
- Specified by:
updateClassifier
in interface UpdateableClassifier
- Parameters:
instance
- the instance to add
- Throws:
java.lang.Exception
- if instance could not be incorporated
successfully
distributionForInstance
public double[] distributionForInstance(Instance instance)
throws java.lang.Exception
- Calculates the class membership probabilities for the given test instance.
- Specified by:
distributionForInstance
in class DistributionClassifier
- Parameters:
instance
- the instance to be classified
- Returns:
- predicted class probability distribution
- Throws:
java.lang.Exception
- if an error occurred during the prediction
listOptions
public java.util.Enumeration listOptions()
- Returns an enumeration describing the available options.
- Specified by:
listOptions
in interface OptionHandler
- Returns:
- an enumeration of all the available options.
setOptions
public void setOptions(java.lang.String[] options)
throws java.lang.Exception
- Parses a given list of options. Valid options are:
-K num
Set the number of nearest neighbours 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
Neighbours will be weighted by the inverse of their distance
when voting. (default equal weighting)
-F
Neighbours will be weighted by their similarity when voting.
(default equal weighting)
-X
Select the number of neighbours 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)
- Specified by:
setOptions
in interface OptionHandler
- 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 settings of IBk.
- Specified by:
getOptions
in interface OptionHandler
- Returns:
- an array of strings suitable for passing to setOptions()
toString
public java.lang.String toString()
- Returns a description of this classifier.
- Returns:
- a description of this classifier as a string.
main
public static void main(java.lang.String[] argv)
- Main method for testing this class.
- Parameters:
argv
- should contain command line options (see setOptions)