Class KStar

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, KStarConstants, UpdateableClassifier, CapabilitiesHandler, OptionHandler, RevisionHandler, TechnicalInformationHandler

    public class KStar
    extends Classifier
    implements KStarConstants, UpdateableClassifier, TechnicalInformationHandler
    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. It differs from other instance-based learners in that it uses an entropy-based distance function.

    For more information on K*, see

    John G. Cleary, Leonard E. Trigg: K*: An Instance-based Learner Using an Entropic Distance Measure. In: 12th International Conference on Machine Learning, 108-114, 1995.

    BibTeX:

     @inproceedings{Cleary1995,
        author = {John G. Cleary and Leonard E. Trigg},
        booktitle = {12th International Conference on Machine Learning},
        pages = {108-114},
        title = {K*: An Instance-based Learner Using an Entropic Distance Measure},
        year = {1995}
     }
     

    Valid options are:

     -B <num>
      Manual blend setting (default 20%)
     
     -E
      Enable entropic auto-blend setting (symbolic class only)
     
     -M <char>
      Specify the missing value treatment mode (default a)
      Valid options are: a(verage), d(elete), m(axdiff), n(ormal)
     
    Version:
    $Revision: 5525 $
    Author:
    Len Trigg (len@reeltwo.com), Abdelaziz Mahoui (am14@cs.waikato.ac.nz) - Java port
    See Also:
    Serialized Form
    • 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
      • getTechnicalInformation

        public TechnicalInformation getTechnicalInformation()
        Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.
        Specified by:
        getTechnicalInformation in interface TechnicalInformationHandler
        Returns:
        the technical information about this class
      • 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:

         -B <num>
          Manual blend setting (default 20%)
         
         -E
          Enable entropic auto-blend setting (symbolic class only)
         
         -M <char>
          Specify the missing value treatment mode (default a)
          Valid options are: a(verage), d(elete), m(axdiff), n(ormal)
         
        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)