Class CostSensitiveClassifierSplitEvaluator

  • All Implemented Interfaces:
    java.io.Serializable, AdditionalMeasureProducer, OptionHandler, RevisionHandler, SplitEvaluator

    public class CostSensitiveClassifierSplitEvaluator
    extends ClassifierSplitEvaluator
    SplitEvaluator that produces results for a classification scheme on a nominal class attribute, including weighted misclassification costs.

    Valid options are:

     -W <class name>
      The full class name of the classifier.
      eg: weka.classifiers.bayes.NaiveBayes
     -C <index>
      The index of the class for which IR statistics
      are to be output. (default 1)
     -I <index>
      The index of an attribute to output in the
      results. This attribute should identify an
      instance in order to know which instances are
      in the test set of a cross validation. if 0
      no output (default 0).
     -P
      Add target and prediction columns to the result
      for each fold.
     
     Options specific to classifier weka.classifiers.rules.ZeroR:
     
     -D
      If set, classifier is run in debug mode and
      may output additional info to the console
     -D <directory>
      Name of a directory to search for cost files when loading
      costs on demand (default current directory).
    All options after -- will be passed to the classifier.
    Version:
    $Revision: 7516 $
    Author:
    Len Trigg (len@reeltwo.com)
    See Also:
    Serialized Form
    • Constructor Detail

      • CostSensitiveClassifierSplitEvaluator

        public CostSensitiveClassifierSplitEvaluator()
    • Method Detail

      • globalInfo

        public java.lang.String globalInfo()
        Returns a string describing this split evaluator
        Overrides:
        globalInfo in class ClassifierSplitEvaluator
        Returns:
        a description of the split evaluator suitable for displaying in the explorer/experimenter gui
      • setOptions

        public void setOptions​(java.lang.String[] options)
                        throws java.lang.Exception
        Parses a given list of options.

        Valid options are:

         -W <class name>
          The full class name of the classifier.
          eg: weka.classifiers.bayes.NaiveBayes
         -C <index>
          The index of the class for which IR statistics
          are to be output. (default 1)
         -I <index>
          The index of an attribute to output in the
          results. This attribute should identify an
          instance in order to know which instances are
          in the test set of a cross validation. if 0
          no output (default 0).
         -P
          Add target and prediction columns to the result
          for each fold.
         
         Options specific to classifier weka.classifiers.rules.ZeroR:
         
         -D
          If set, classifier is run in debug mode and
          may output additional info to the console
         -D <directory>
          Name of a directory to search for cost files when loading
          costs on demand (default current directory).
        All options after -- will be passed to the classifier.
        Specified by:
        setOptions in interface OptionHandler
        Overrides:
        setOptions in class ClassifierSplitEvaluator
        Parameters:
        options - the list of options as an array of strings
        Throws:
        java.lang.Exception - if an option is not supported
      • onDemandDirectoryTipText

        public java.lang.String onDemandDirectoryTipText()
        Returns the tip text for this property
        Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui
      • getOnDemandDirectory

        public java.io.File getOnDemandDirectory()
        Returns the directory that will be searched for cost files when loading on demand.
        Returns:
        The cost file search directory.
      • setOnDemandDirectory

        public void setOnDemandDirectory​(java.io.File newDir)
        Sets the directory that will be searched for cost files when loading on demand.
        Parameters:
        newDir - The cost file search directory.
      • getResultTypes

        public java.lang.Object[] getResultTypes()
        Gets the data types of each of the result columns produced for a single run. The number of result fields must be constant for a given SplitEvaluator.
        Specified by:
        getResultTypes in interface SplitEvaluator
        Overrides:
        getResultTypes in class ClassifierSplitEvaluator
        Returns:
        an array containing objects of the type of each result column. The objects should be Strings, or Doubles.
      • getResultNames

        public java.lang.String[] getResultNames()
        Gets the names of each of the result columns produced for a single run. The number of result fields must be constant for a given SplitEvaluator.
        Specified by:
        getResultNames in interface SplitEvaluator
        Overrides:
        getResultNames in class ClassifierSplitEvaluator
        Returns:
        an array containing the name of each result column
      • getResult

        public java.lang.Object[] getResult​(Instances train,
                                            Instances test)
                                     throws java.lang.Exception
        Gets the results for the supplied train and test datasets. Now performs a deep copy of the classifier before it is built and evaluated (just in case the classifier is not initialized properly in buildClassifier()).
        Specified by:
        getResult in interface SplitEvaluator
        Overrides:
        getResult in class ClassifierSplitEvaluator
        Parameters:
        train - the training Instances.
        test - the testing Instances.
        Returns:
        the results stored in an array. The objects stored in the array may be Strings, Doubles, or null (for the missing value).
        Throws:
        java.lang.Exception - if a problem occurs while getting the results
      • toString

        public java.lang.String toString()
        Returns a text description of the split evaluator.
        Overrides:
        toString in class ClassifierSplitEvaluator
        Returns:
        a text description of the split evaluator.