weka.classifiers.lazy
Class KStar

java.lang.Object
  |
  +--weka.classifiers.Classifier
        |
        +--weka.classifiers.lazy.KStar
All Implemented Interfaces:
java.lang.Cloneable, KStarConstants, OptionHandler, java.io.Serializable, UpdateableClassifier

public class KStar
extends Classifier
implements KStarConstants, UpdateableClassifier

K* is an instance-based classifier, that is the class of a test instance is based upon the class of those training instances similar to it, as determined by some similarity function. The underlying assumption of instance-based classifiers such as K*, IB1, PEBLS, etc, is that similar instances will have similar classes. For more information on K*, see

John, G. Cleary and Leonard, E. Trigg (1995) "K*: An Instance- based Learner Using an Entropic Distance Measure", Proceedings of the 12th International Conference on Machine learning, pp. 108-114.

Version:
$Revision 1.0 $
Author:
Len Trigg (len@reeltwo.com), Abdelaziz Mahoui (am14@cs.waikato.ac.nz)
See Also:
Serialized Form

Field Summary
static Tag[] TAGS_MISSING
          Define possible missing value handling methods
 
Fields inherited from interface weka.classifiers.lazy.kstar.KStarConstants
B_ENTROPY, B_SPHERE, EPSILON, FLOOR, FLOOR1, INITIAL_STEP, LOG2, M_AVERAGE, M_DELETE, M_MAXDIFF, M_NORMAL, NUM_RAND_COLS, OFF, ON, ROOT_FINDER_ACCURACY, ROOT_FINDER_MAX_ITER
 
Constructor Summary
KStar()
           
 
Method Summary
 void buildClassifier(Instances instances)
          Generates the classifier.
 double[] distributionForInstance(Instance instance)
          Calculates the class membership probabilities for the given test instance.
 java.lang.String entropicAutoBlendTipText()
          Returns the tip text for this property
 boolean getEntropicAutoBlend()
          Get whether entropic blending being used
 int getGlobalBlend()
          Get the value of the global blend parameter
 SelectedTag getMissingMode()
          Gets the method to use for handling missing values.
 java.lang.String[] getOptions()
          Gets the current settings of K*.
 java.lang.String globalBlendTipText()
          Returns the tip text for this property
 java.lang.String globalInfo()
          Returns a string describing classifier
 java.util.Enumeration listOptions()
          Returns an enumeration describing the available options.
static void main(java.lang.String[] argv)
          Main method for testing this class.
 java.lang.String missingModeTipText()
          Returns the tip text for this property
 void setEntropicAutoBlend(boolean e)
          Set whether entropic blending is to be used.
 void setGlobalBlend(int b)
          Set the global blend parameter
 void setMissingMode(SelectedTag newMode)
          Sets the method to use for handling missing values.
 void setOptions(java.lang.String[] options)
          Parses a given list of options.
 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.Classifier
classifyInstance, debugTipText, forName, getDebug, makeCopies, setDebug
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

TAGS_MISSING

public static final Tag[] TAGS_MISSING
Define possible missing value handling methods

Constructor Detail

KStar

public KStar()
Method Detail

globalInfo

public java.lang.String globalInfo()
Returns a string describing classifier

Returns:
a description suitable for displaying in the explorer/experimenter gui

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.

Overrides:
distributionForInstance in class Classifier
Parameters:
instance - the instance to be classified
Returns:
predicted class probability distribution
Throws:
java.lang.Exception - if an error occurred during the prediction

missingModeTipText

public java.lang.String missingModeTipText()
Returns the tip text for this property

Returns:
tip text for this property suitable for displaying in the explorer/experimenter gui

getMissingMode

public SelectedTag getMissingMode()
Gets the method to use for handling missing values. Will be one of M_NORMAL, M_AVERAGE, M_MAXDIFF or M_DELETE.

Returns:
the method used for handling missing values.

setMissingMode

public void setMissingMode(SelectedTag newMode)
Sets the method to use for handling missing values. Values other than M_NORMAL, M_AVERAGE, M_MAXDIFF and M_DELETE will be ignored.

Parameters:
newMode - the method to use for handling missing values.

listOptions

public java.util.Enumeration listOptions()
Returns an enumeration describing the available options.

Specified by:
listOptions in interface OptionHandler
Overrides:
listOptions in class Classifier
Returns:
an enumeration of all the available options.

globalBlendTipText

public java.lang.String globalBlendTipText()
Returns the tip text for this property

Returns:
tip text for this property suitable for displaying in the explorer/experimenter gui

setGlobalBlend

public void setGlobalBlend(int b)
Set the global blend parameter

Parameters:
b - the value for global blending

getGlobalBlend

public int getGlobalBlend()
Get the value of the global blend parameter

Returns:
the value of the global blend parameter

entropicAutoBlendTipText

public java.lang.String entropicAutoBlendTipText()
Returns the tip text for this property

Returns:
tip text for this property suitable for displaying in the explorer/experimenter gui

setEntropicAutoBlend

public void setEntropicAutoBlend(boolean e)
Set whether entropic blending is to be used.

Parameters:
e - true if entropic blending is to be used

getEntropicAutoBlend

public boolean getEntropicAutoBlend()
Get whether entropic blending being used

Returns:
true if entropic blending is used

setOptions

public void setOptions(java.lang.String[] options)
                throws java.lang.Exception
Parses a given list of options. Valid options are: ...

Specified by:
setOptions in interface OptionHandler
Overrides:
setOptions in class Classifier
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 K*.

Specified by:
getOptions in interface OptionHandler
Overrides:
getOptions in class Classifier
Returns:
an array of strings suitable for passing to setOptions()

toString

public java.lang.String toString()
Returns a description of this classifier.

Overrides:
toString in class java.lang.Object
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)


Copyright (c) 2003 David Lindsay, Computer Learning Research Centre, Dept. Computer Science, Royal Holloway, University of London