Class ClassBalancedND

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

    public class ClassBalancedND
    extends RandomizableSingleClassifierEnhancer
    implements TechnicalInformationHandler
    A meta classifier for handling multi-class datasets with 2-class classifiers by building a random class-balanced tree structure.

    For more info, check

    Lin Dong, Eibe Frank, Stefan Kramer: Ensembles of Balanced Nested Dichotomies for Multi-class Problems. In: PKDD, 84-95, 2005.

    Eibe Frank, Stefan Kramer: Ensembles of nested dichotomies for multi-class problems. In: Twenty-first International Conference on Machine Learning, 2004.

    BibTeX:

     @inproceedings{Dong2005,
        author = {Lin Dong and Eibe Frank and Stefan Kramer},
        booktitle = {PKDD},
        pages = {84-95},
        publisher = {Springer},
        title = {Ensembles of Balanced Nested Dichotomies for Multi-class Problems},
        year = {2005}
     }
     
     @inproceedings{Frank2004,
        author = {Eibe Frank and Stefan Kramer},
        booktitle = {Twenty-first International Conference on Machine Learning},
        publisher = {ACM},
        title = {Ensembles of nested dichotomies for multi-class problems},
        year = {2004}
     }
     

    Valid options are:

     -S <num>
      Random number seed.
      (default 1)
     -D
      If set, classifier is run in debug mode and
      may output additional info to the console
     -W
      Full name of base classifier.
      (default: weka.classifiers.trees.J48)
     
     Options specific to classifier weka.classifiers.trees.J48:
     
     -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).
    Author:
    Lin Dong, Eibe Frank
    See Also:
    Serialized Form
    • Constructor Detail

      • ClassBalancedND

        public ClassBalancedND()
        Constructor.
    • Method Detail

      • 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
      • setHashtable

        public void setHashtable​(java.util.Hashtable table)
        Set hashtable from END.
        Parameters:
        table - the hashtable to use
      • buildClassifier

        public void buildClassifier​(Instances data)
                             throws java.lang.Exception
        Builds tree recursively.
        Specified by:
        buildClassifier in class Classifier
        Parameters:
        data - contains the (multi-class) instances
        Throws:
        java.lang.Exception - if the building fails
      • distributionForInstance

        public double[] distributionForInstance​(Instance inst)
                                         throws java.lang.Exception
        Predicts the class distribution for a given instance
        Overrides:
        distributionForInstance in class Classifier
        Parameters:
        inst - the (multi-class) instance to be classified
        Returns:
        the class distribution
        Throws:
        java.lang.Exception - if computing fails
      • getString

        public java.lang.String getString​(int[] indices)
        Returns the list of indices as a string.
        Parameters:
        indices - the indices to return as string
        Returns:
        the indices as string
      • globalInfo

        public java.lang.String globalInfo()
        Returns:
        a description of the classifier suitable for displaying in the explorer/experimenter gui
      • toString

        public java.lang.String toString()
        Outputs the classifier as a string.
        Overrides:
        toString in class java.lang.Object
        Returns:
        a string representation of the classifier
      • main

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