Class UserClassifier

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, CapabilitiesHandler, Drawable, OptionHandler, RevisionHandler, TechnicalInformationHandler, TreeDisplayListener, VisualizePanelListener

    public class UserClassifier
    extends Classifier
    implements Drawable, TreeDisplayListener, VisualizePanelListener, TechnicalInformationHandler
    Interactively classify through visual means. You are Presented with a scatter graph of the data against two user selectable attributes, as well as a view of the decision tree. You can create binary splits by creating polygons around data plotted on the scatter graph, as well as by allowing another classifier to take over at points in the decision tree should you see fit.

    For more information see:

    Malcolm Ware, Eibe Frank, Geoffrey Holmes, Mark Hall, Ian H. Witten (2001). Interactive machine learning: letting users build classifiers. Int. J. Hum.-Comput. Stud.. 55(3):281-292.

    BibTeX:

     @article{Ware2001,
        author = {Malcolm Ware and Eibe Frank and Geoffrey Holmes and Mark Hall and Ian H. Witten},
        journal = {Int. J. Hum.-Comput. Stud.},
        number = {3},
        pages = {281-292},
        title = {Interactive machine learning: letting users build classifiers},
        volume = {55},
        year = {2001},
        PS = {http://www.cs.waikato.ac.nz/\~ml/publications/2000/00MW-etal-Interactive-ML.ps}
     }
     

    Valid options are:

     -D
      If set, classifier is run in debug mode and
      may output additional info to the console
    Version:
    $Revision: 5535 $
    Author:
    Malcolm Ware (mfw4@cs.waikato.ac.nz)
    See Also:
    Serialized Form
    • Constructor Detail

      • UserClassifier

        public UserClassifier()
        Constructor
    • Method Detail

      • main

        public static void main​(java.lang.String[] argv)
        Main method for testing this class.
        Parameters:
        argv - should contain command line options (see setOptions)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
        Returns:
        a string that represents this objects tree.
      • userDataEvent

        public void userDataEvent​(VisualizePanelEvent e)
        This receives shapes from the data view. It then enters these shapes into the decision tree structure.
        Specified by:
        userDataEvent in interface VisualizePanelListener
        Parameters:
        e - Contains the shapes, and other info.
      • graphType

        public int graphType()
        Returns the type of graph this classifier represents.
        Specified by:
        graphType in interface Drawable
        Returns:
        Drawable.TREE
      • graph

        public java.lang.String graph()
                               throws java.lang.Exception
        Description copied from interface: Drawable
        Returns a string that describes a graph representing the object. The string should be in XMLBIF ver. 0.3 format if the graph is a BayesNet, otherwise it should be in dotty format.
        Specified by:
        graph in interface Drawable
        Returns:
        A string formatted with a dotty representation of the decision tree.
        Throws:
        java.lang.Exception - if String can't be built properly.
      • globalInfo

        public java.lang.String globalInfo()
        This will return a string describing the classifier.
        Returns:
        The string.
      • 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 i)
                             throws java.lang.Exception
        Call this function to build a decision tree for the training data provided.
        Specified by:
        buildClassifier in class Classifier
        Parameters:
        i - The training data.
        Throws:
        java.lang.Exception - if can't build classification properly.
      • distributionForInstance

        public double[] distributionForInstance​(Instance i)
                                         throws java.lang.Exception
        Call this function to get a double array filled with the probability of how likely each class type is the class of the instance.
        Overrides:
        distributionForInstance in class Classifier
        Parameters:
        i - The instance to classify.
        Returns:
        A double array filled with the probalities of each class type.
        Throws:
        java.lang.Exception - if can't classify instance.