Class Id3

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

    public class Id3
    extends Classifier
    implements TechnicalInformationHandler, Sourcable
    Class for constructing an unpruned decision tree based on the ID3 algorithm. Can only deal with nominal attributes. No missing values allowed. Empty leaves may result in unclassified instances. For more information see:

    R. Quinlan (1986). Induction of decision trees. Machine Learning. 1(1):81-106.

    BibTeX:

     @article{Quinlan1986,
        author = {R. Quinlan},
        journal = {Machine Learning},
        number = {1},
        pages = {81-106},
        title = {Induction of decision trees},
        volume = {1},
        year = {1986}
     }
     

    Valid options are:

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

      • Id3

        public Id3()
    • Method Detail

      • globalInfo

        public java.lang.String globalInfo()
        Returns a string describing the classifier.
        Returns:
        a description suitable for the 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 data)
                             throws java.lang.Exception
        Builds Id3 decision tree classifier.
        Specified by:
        buildClassifier in class Classifier
        Parameters:
        data - the training data
        Throws:
        java.lang.Exception - if classifier can't be built successfully
      • toString

        public java.lang.String toString()
        Prints the decision tree using the private toString method from below.
        Overrides:
        toString in class java.lang.Object
        Returns:
        a textual description of the classifier
      • toSource

        public java.lang.String toSource​(java.lang.String className)
                                  throws java.lang.Exception
        Returns a string that describes the classifier as source. The classifier will be contained in a class with the given name (there may be auxiliary classes), and will contain a method with the signature:
        
         public static double classify(Object[] i);
         
        where the array i contains elements that are either Double, String, with missing values represented as null. The generated code is public domain and comes with no warranty.
        Note: works only if class attribute is the last attribute in the dataset.
        Specified by:
        toSource in interface Sourcable
        Parameters:
        className - the name that should be given to the source class.
        Returns:
        the object source described by a string
        Throws:
        java.lang.Exception - if the source can't be computed
      • main

        public static void main​(java.lang.String[] args)
        Main method.
        Parameters:
        args - the options for the classifier