Package weka.experiment

# Class CostSensitiveClassifierSplitEvaluator

java.lang.Object
weka.experiment.ClassifierSplitEvaluator
weka.experiment.CostSensitiveClassifierSplitEvaluator

All Implemented Interfaces:
  `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 Summary

Constructors
Constructor
Description
`CostSensitiveClassifierSplitEvaluator()`

## Method Summary

Modifier and Type
Method
Description
`File`
`getOnDemandDirectory()`
Returns the directory that will be searched for cost files when loading on demand.
`String[]`
`getOptions()`
Gets the current settings of the Classifier.
`Object[]`
`getResult(Instances train, Instances test)`
Gets the results for the supplied train and test datasets.
`String[]`
`getResultNames()`
Gets the names of each of the result columns produced for a single run.
`Object[]`
`getResultTypes()`
Gets the data types of each of the result columns produced for a single run.
`String`
`getRevision()`
Returns the revision string.
`String`
`globalInfo()`
Returns a string describing this split evaluator
`Enumeration`
`listOptions()`
Returns an enumeration describing the available options..
`String`
`onDemandDirectoryTipText()`
Returns the tip text for this property
`void`
`setOnDemandDirectory(File newDir)`
Sets the directory that will be searched for cost files when loading on demand.
`void`
`setOptions(String[] options)`
Parses a given list of options.
`String`
`toString()`
Returns a text description of the split evaluator.

### Methods inherited from class weka.experiment.ClassifierSplitEvaluator

`classifierTipText, enumerateMeasures, getAttributeID, getClassForIRStatistics, getClassifier, getKey, getKeyNames, getKeyTypes, getMeasure, getPredTargetColumn, getRawResultOutput, setAdditionalMeasures, setAttributeID, setClassForIRStatistics, setClassifier, setClassifierName, setPredTargetColumn`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Constructor Details

### CostSensitiveClassifierSplitEvaluator

public CostSensitiveClassifierSplitEvaluator()

## Method Details

### globalInfo

public 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

### listOptions

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

Specified by:
  `listOptions` in interface `OptionHandler`
Overrides:
  `listOptions` in class `ClassifierSplitEvaluator`
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:

     -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:
  `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 `ClassifierSplitEvaluator`
Returns:
  an array of strings suitable for passing to setOptions

### onDemandDirectoryTipText

public 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 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(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 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 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 Object[] getResult(Instances train, Instances test) throws 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:
  `Exception` - if a problem occurs while getting the results

### toString

public String toString()
Returns a text description of the split evaluator.

Overrides:
  `toString` in class `ClassifierSplitEvaluator`
Returns:
  a text description of the split evaluator.

### getRevision

public String getRevision()
Returns the revision string.

Specified by:
  `getRevision` in interface `RevisionHandler`
Overrides:
  `getRevision` in class `ClassifierSplitEvaluator`
Returns:
  the revision