Class J48

java.lang.Object
weka.classifiers.Classifier
weka.classifiers.trees.J48
All Implemented Interfaces:
Serializable, Cloneable, Sourcable, AdditionalMeasureProducer, CapabilitiesHandler, Drawable, Matchable, OptionHandler, RevisionHandler, Summarizable, TechnicalInformationHandler, WeightedInstancesHandler

Class for generating a pruned or unpruned C4.5 decision tree. For more information, see

Ross Quinlan (1993). C4.5: Programs for Machine Learning. Morgan Kaufmann Publishers, San Mateo, CA.

BibTeX:

 @book{Quinlan1993,
    address = {San Mateo, CA},
    author = {Ross Quinlan},
    publisher = {Morgan Kaufmann Publishers},
    title = {C4.5: Programs for Machine Learning},
    year = {1993}
 }
 

Valid options are:

 -U
  Use unpruned tree.
 -C <pruning confidence>
  Set confidence threshold for pruning.
  (default 0.25)
 -M <minimum number of instances>
  Set minimum number of instances per leaf.
  (default 2)
 -R
  Use reduced error pruning.
 -N <number of folds>
  Set number of folds for reduced error
  pruning. One fold is used as pruning set.
  (default 3)
 -B
  Use binary splits only.
 -S
  Don't perform subtree raising.
 -L
  Do not clean up after the tree has been built.
 -A
  Laplace smoothing for predicted probabilities.
 -Q <seed>
  Seed for random data shuffling (default 1).
Version:
$Revision: 1.9 $
Author:
Eibe Frank (eibe@cs.waikato.ac.nz)
See Also:
  • Constructor Details

    • J48

      public J48()
  • Method Details

    • globalInfo

      public 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
    • getCapabilities

      public Capabilities getCapabilities()
      Returns default capabilities of the classifier.
      Specified by:
      getCapabilities in interface CapabilitiesHandler
      Overrides:
      getCapabilities in class Classifier
      Returns:
      the capabilities of this classifier
      See Also:
    • buildClassifier

      public void buildClassifier(Instances instances) throws Exception
      Generates the classifier.
      Specified by:
      buildClassifier in class Classifier
      Parameters:
      instances - the data to train the classifier with
      Throws:
      Exception - if classifier can't be built successfully
    • classifyInstance

      public double classifyInstance(Instance instance) throws Exception
      Classifies an instance.
      Overrides:
      classifyInstance in class Classifier
      Parameters:
      instance - the instance to classify
      Returns:
      the classification for the instance
      Throws:
      Exception - if instance can't be classified successfully
    • distributionForInstance

      public final double[] distributionForInstance(Instance instance) throws Exception
      Returns class probabilities for an instance.
      Overrides:
      distributionForInstance in class Classifier
      Parameters:
      instance - the instance to calculate the class probabilities for
      Returns:
      the class probabilities
      Throws:
      Exception - if distribution can't be computed successfully
    • graphType

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

      public String graph() throws Exception
      Returns graph describing the tree.
      Specified by:
      graph in interface Drawable
      Returns:
      the graph describing the tree
      Throws:
      Exception - if graph can't be computed
    • prefix

      public String prefix() throws Exception
      Returns tree in prefix order.
      Specified by:
      prefix in interface Matchable
      Returns:
      the tree in prefix order
      Throws:
      Exception - if something goes wrong
    • toSource

      public String toSource(String className) throws Exception
      Returns tree as an if-then statement.
      Specified by:
      toSource in interface Sourcable
      Parameters:
      className - the name of the Java class
      Returns:
      the tree as a Java if-then type statement
      Throws:
      Exception - if something goes wrong
    • listOptions

      public Enumeration listOptions()
      Returns an enumeration describing the available options. Valid options are:

      -U
      Use unpruned tree.

      -C confidence
      Set confidence threshold for pruning. (Default: 0.25)

      -M number
      Set minimum number of instances per leaf. (Default: 2)

      -R
      Use reduced error pruning. No subtree raising is performed.

      -N number
      Set number of folds for reduced error pruning. One fold is used as the pruning set. (Default: 3)

      -B
      Use binary splits for nominal attributes.

      -S
      Don't perform subtree raising.

      -L
      Do not clean up after the tree has been built. -A
      If set, Laplace smoothing is used for predicted probabilites.

      -Q
      The seed for reduced-error pruning.

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

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

       -U
        Use unpruned tree.
       -C <pruning confidence>
        Set confidence threshold for pruning.
        (default 0.25)
       -M <minimum number of instances>
        Set minimum number of instances per leaf.
        (default 2)
       -R
        Use reduced error pruning.
       -N <number of folds>
        Set number of folds for reduced error
        pruning. One fold is used as pruning set.
        (default 3)
       -B
        Use binary splits only.
       -S
        Don't perform subtree raising.
       -L
        Do not clean up after the tree has been built.
       -A
        Laplace smoothing for predicted probabilities.
       -Q <seed>
        Seed for random data shuffling (default 1).
      Specified by:
      setOptions in interface OptionHandler
      Overrides:
      setOptions in class Classifier
      Parameters:
      options - the list of options as an array of strings
      Throws:
      Exception - if an option is not supported
    • getOptions

      public String[] getOptions()
      Gets the current settings of the Classifier.
      Specified by:
      getOptions in interface OptionHandler
      Overrides:
      getOptions in class Classifier
      Returns:
      an array of strings suitable for passing to setOptions
    • seedTipText

      public String seedTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getSeed

      public int getSeed()
      Get the value of Seed.
      Returns:
      Value of Seed.
    • setSeed

      public void setSeed(int newSeed)
      Set the value of Seed.
      Parameters:
      newSeed - Value to assign to Seed.
    • useLaplaceTipText

      public String useLaplaceTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getUseLaplace

      public boolean getUseLaplace()
      Get the value of useLaplace.
      Returns:
      Value of useLaplace.
    • setUseLaplace

      public void setUseLaplace(boolean newuseLaplace)
      Set the value of useLaplace.
      Parameters:
      newuseLaplace - Value to assign to useLaplace.
    • toString

      public String toString()
      Returns a description of the classifier.
      Overrides:
      toString in class Object
      Returns:
      a description of the classifier
    • toSummaryString

      public String toSummaryString()
      Returns a superconcise version of the model
      Specified by:
      toSummaryString in interface Summarizable
      Returns:
      a summary of the model
    • measureTreeSize

      public double measureTreeSize()
      Returns the size of the tree
      Returns:
      the size of the tree
    • measureNumLeaves

      public double measureNumLeaves()
      Returns the number of leaves
      Returns:
      the number of leaves
    • measureNumRules

      public double measureNumRules()
      Returns the number of rules (same as number of leaves)
      Returns:
      the number of rules
    • enumerateMeasures

      public Enumeration enumerateMeasures()
      Returns an enumeration of the additional measure names
      Specified by:
      enumerateMeasures in interface AdditionalMeasureProducer
      Returns:
      an enumeration of the measure names
    • getMeasure

      public double getMeasure(String additionalMeasureName)
      Returns the value of the named measure
      Specified by:
      getMeasure in interface AdditionalMeasureProducer
      Parameters:
      additionalMeasureName - the name of the measure to query for its value
      Returns:
      the value of the named measure
      Throws:
      IllegalArgumentException - if the named measure is not supported
    • unprunedTipText

      public String unprunedTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getUnpruned

      public boolean getUnpruned()
      Get the value of unpruned.
      Returns:
      Value of unpruned.
    • setUnpruned

      public void setUnpruned(boolean v)
      Set the value of unpruned. Turns reduced-error pruning off if set.
      Parameters:
      v - Value to assign to unpruned.
    • confidenceFactorTipText

      public String confidenceFactorTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getConfidenceFactor

      public float getConfidenceFactor()
      Get the value of CF.
      Returns:
      Value of CF.
    • setConfidenceFactor

      public void setConfidenceFactor(float v)
      Set the value of CF.
      Parameters:
      v - Value to assign to CF.
    • minNumObjTipText

      public String minNumObjTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getMinNumObj

      public int getMinNumObj()
      Get the value of minNumObj.
      Returns:
      Value of minNumObj.
    • setMinNumObj

      public void setMinNumObj(int v)
      Set the value of minNumObj.
      Parameters:
      v - Value to assign to minNumObj.
    • reducedErrorPruningTipText

      public String reducedErrorPruningTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getReducedErrorPruning

      public boolean getReducedErrorPruning()
      Get the value of reducedErrorPruning.
      Returns:
      Value of reducedErrorPruning.
    • setReducedErrorPruning

      public void setReducedErrorPruning(boolean v)
      Set the value of reducedErrorPruning. Turns unpruned trees off if set.
      Parameters:
      v - Value to assign to reducedErrorPruning.
    • numFoldsTipText

      public String numFoldsTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getNumFolds

      public int getNumFolds()
      Get the value of numFolds.
      Returns:
      Value of numFolds.
    • setNumFolds

      public void setNumFolds(int v)
      Set the value of numFolds.
      Parameters:
      v - Value to assign to numFolds.
    • binarySplitsTipText

      public String binarySplitsTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getBinarySplits

      public boolean getBinarySplits()
      Get the value of binarySplits.
      Returns:
      Value of binarySplits.
    • setBinarySplits

      public void setBinarySplits(boolean v)
      Set the value of binarySplits.
      Parameters:
      v - Value to assign to binarySplits.
    • subtreeRaisingTipText

      public String subtreeRaisingTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getSubtreeRaising

      public boolean getSubtreeRaising()
      Get the value of subtreeRaising.
      Returns:
      Value of subtreeRaising.
    • setSubtreeRaising

      public void setSubtreeRaising(boolean v)
      Set the value of subtreeRaising.
      Parameters:
      v - Value to assign to subtreeRaising.
    • saveInstanceDataTipText

      public String saveInstanceDataTipText()
      Returns the tip text for this property
      Returns:
      tip text for this property suitable for displaying in the explorer/experimenter gui
    • getSaveInstanceData

      public boolean getSaveInstanceData()
      Check whether instance data is to be saved.
      Returns:
      true if instance data is saved
    • setSaveInstanceData

      public void setSaveInstanceData(boolean v)
      Set whether instance data is to be saved.
      Parameters:
      v - true if instance data is to be saved
    • getRevision

      public String getRevision()
      Returns the revision string.
      Specified by:
      getRevision in interface RevisionHandler
      Overrides:
      getRevision in class Classifier
      Returns:
      the revision
    • main

      public static void main(String[] argv)
      Main method for testing this class
      Parameters:
      argv - the commandline options