weka.experiment

## Class DensityBasedClustererSplitEvaluator

- java.lang.Object
- - weka.experiment.DensityBasedClustererSplitEvaluator

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

      public class DensityBasedClustererSplitEvaluator
      extends java.lang.Object
      implements SplitEvaluator, OptionHandler, AdditionalMeasureProducer, RevisionHandler

  A SplitEvaluator that produces results for a density based clusterer.

  Valid options are:

       -no-size
        Skips the determination of sizes (train/test/clusterer)
        (default: sizes are determined)

       -W <class name>
        The full class name of the density based clusterer.
        eg: weka.clusterers.EM

       Options specific to clusterer weka.clusterers.EM:

       -N <num>
        number of clusters. If omitted or -1 specified, then
        cross validation is used to select the number of clusters.

       -I <num>
        max iterations.
       (default 100)

       -V
        verbose.

       -M <num>
        minimum allowable standard deviation for normal density
        computation
        (default 1e-6)

       -O
        Display model in old format (good when there are many clusters)

       -S <num>
        Random number seed.
        (default 100)

  All options after -- will be passed to the clusterer.
  Version:
    $Revision: 11323 $
  Author:
    Mark Hall (mhall{[at]}pentaho{[dot]}org
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DensityBasedClustererSplitEvaluator()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `clustererTipText()` Returns the tip text for this property
    `java.util.Enumeration<java.lang.String>` | `enumerateMeasures()` Returns an enumeration of any additional measure names that might be in the classifier
    `DensityBasedClusterer` | `getClusterer()` Get the value of clusterer
    `java.lang.Object[]` | `getKey()` Gets the key describing the current SplitEvaluator.
    `java.lang.String[]` | `getKeyNames()` Gets the names of each of the key columns produced for a single run.
    `java.lang.Object[]` | `getKeyTypes()` Gets the data types of each of the key columns produced for a single run.
    `double` | `getMeasure(java.lang.String additionalMeasureName)` Returns the value of the named measure
    `boolean` | `getNoSizeDetermination()` Returns whether the size determination (train/test/clusterer) is skipped.
    `java.lang.String[]` | `getOptions()` Gets the current settings of the Classifier.
    `java.lang.String` | `getRawResultOutput()` Gets the raw output from the classifier
    `boolean` | `getRemoveClassColumn()` Get whether the class column is to be removed.
    `java.lang.Object[]` | `getResult(Instances train, Instances test)` Gets the results for the supplied train and test datasets.
    `java.lang.String[]` | `getResultNames()` Gets the names of each of the result columns produced for a single run.
    `java.lang.Object[]` | `getResultTypes()` Gets the data types of each of the result columns produced for a single run.
    `java.lang.String` | `getRevision()` Returns the revision string.
    `java.lang.String` | `globalInfo()` Returns a string describing this split evaluator
    `java.util.Enumeration<Option>` | `listOptions()` Returns an enumeration describing the available options.
    `java.lang.String` | `noSizeDeterminationTipText()` Returns the tip text for this property
    `java.lang.String` | `removeClassColumnTipText()` Returns the tip text for this property
    `void` | `setAdditionalMeasures(java.lang.String[] additionalMeasures)` Set a list of method names for additional measures to look for in Classifiers.
    `void` | `setClusterer(DensityBasedClusterer newClusterer)` Sets the clusterer.
    `void` | `setClustererName(java.lang.String newClustererName)` Set the Clusterer to use, given it's class name.
    `void` | `setNoSizeDetermination(boolean value)` Sets whether the size determination (train/test/clusterer) is skipped.
    `void` | `setOptions(java.lang.String[] options)` Parses a given list of options.
    `void` | `setRemoveClassColumn(boolean r)` Set whether the class column should be removed from the data.
    `java.lang.String` | `toString()` Returns a text description of the split evaluator.

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

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

- - ### Constructor Detail

    - #### DensityBasedClustererSplitEvaluator

          public DensityBasedClustererSplitEvaluator()

  - ### Method Detail

    - #### globalInfo

          public java.lang.String globalInfo()

      Returns a string describing this split evaluator
      Returns:
        a description of the split evaluator suitable for displaying in the explorer/experimenter gui

    - #### listOptions

          public java.util.Enumeration<Option> listOptions()

      Returns an enumeration describing the available options.
      Specified by:
        `listOptions` in interface `OptionHandler`
      Returns:
        an enumeration of all the available options.

    - #### setOptions

          public void setOptions(java.lang.String[] options)
                          throws java.lang.Exception

      Parses a given list of options. Valid options are:

      -W classname
      Specify the full class name of the clusterer to evaluate.

      All option after -- will be passed to the classifier.

      Specified by:
        `setOptions` in interface `OptionHandler`
      Parameters:
        `options` - the list of options as an array of strings
      Throws:
        `java.lang.Exception` - if an option is not supported

    - #### getOptions

          public java.lang.String[] getOptions()

      Gets the current settings of the Classifier.
      Specified by:
        `getOptions` in interface `OptionHandler`
      Returns:
        an array of strings suitable for passing to setOptions

    - #### setAdditionalMeasures

          public void setAdditionalMeasures(java.lang.String[] additionalMeasures)

      Set a list of method names for additional measures to look for in Classifiers. This could contain many measures (of which only a subset may be produceable by the current Classifier) if an experiment is the type that iterates over a set of properties.
      Specified by:
        `setAdditionalMeasures` in interface `SplitEvaluator`
      Parameters:
        `additionalMeasures` - a list of method names

    - #### enumerateMeasures

          public java.util.Enumeration<java.lang.String> enumerateMeasures()

      Returns an enumeration of any additional measure names that might be in the classifier
      Specified by:
        `enumerateMeasures` in interface `AdditionalMeasureProducer`
      Returns:
        an enumeration of the measure names

    - #### getMeasure

          public double getMeasure(java.lang.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:
        `java.lang.IllegalArgumentException` - if the named measure is not supported

    - #### getKeyTypes

          public java.lang.Object[] getKeyTypes()

      Gets the data types of each of the key columns produced for a single run. The number of key fields must be constant for a given SplitEvaluator.
      Specified by:
        `getKeyTypes` in interface `SplitEvaluator`
      Returns:
        an array containing objects of the type of each key column. The objects should be Strings, or Doubles.

    - #### getKeyNames

          public java.lang.String[] getKeyNames()

      Gets the names of each of the key columns produced for a single run. The number of key fields must be constant for a given SplitEvaluator.
      Specified by:
        `getKeyNames` in interface `SplitEvaluator`
      Returns:
        an array containing the name of each key column

    - #### getKey

          public java.lang.Object[] getKey()

      Gets the key describing the current SplitEvaluator. For example This may contain the name of the classifier used for classifier predictive evaluation. The number of key fields must be constant for a given SplitEvaluator.
      Specified by:
        `getKey` in interface `SplitEvaluator`
      Returns:
        an array of objects containing the key.

    - #### 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`
      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`
      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.
      Specified by:
        `getResult` in interface `SplitEvaluator`
      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

    - #### removeClassColumnTipText

          public java.lang.String removeClassColumnTipText()

      Returns the tip text for this property
      Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui

    - #### setRemoveClassColumn

          public void setRemoveClassColumn(boolean r)

      Set whether the class column should be removed from the data.
      Parameters:
        `r` - true if the class column is to be removed.

    - #### getRemoveClassColumn

          public boolean getRemoveClassColumn()

      Get whether the class column is to be removed.
      Returns:
        true if the class column is to be removed.

    - #### clustererTipText

          public java.lang.String clustererTipText()

      Returns the tip text for this property
      Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui

    - #### getClusterer

          public DensityBasedClusterer getClusterer()

      Get the value of clusterer
      Returns:
        Value of clusterer.

    - #### setClusterer

          public void setClusterer(DensityBasedClusterer newClusterer)

      Sets the clusterer.
      Parameters:
        `newClusterer` - the new clusterer to use.

    - #### getNoSizeDetermination

          public boolean getNoSizeDetermination()

      Returns whether the size determination (train/test/clusterer) is skipped.
      Returns:
        true if size determination skipped

    - #### setNoSizeDetermination

          public void setNoSizeDetermination(boolean value)

      Sets whether the size determination (train/test/clusterer) is skipped.
      Parameters:
        `value` - true if to determine sizes

    - #### noSizeDeterminationTipText

          public java.lang.String noSizeDeterminationTipText()

      Returns the tip text for this property
      Returns:
        tip text for this property suitable for displaying in the explorer/experimenter gui

    - #### setClustererName

          public void setClustererName(java.lang.String newClustererName)
                                throws java.lang.Exception

      Set the Clusterer to use, given it's class name. A new clusterer will be instantiated.
      Parameters:
        `newClustererName` - the clusterer class name.
      Throws:
        `java.lang.Exception` - if the class name is invalid.

    - #### getRawResultOutput

          public java.lang.String getRawResultOutput()

      Gets the raw output from the classifier
      Specified by:
        `getRawResultOutput` in interface `SplitEvaluator`
      Returns:
        the raw output from the classifier

    - #### toString

          public java.lang.String toString()

      Returns a text description of the split evaluator.
      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        a text description of the split evaluator.

    - #### getRevision

          public java.lang.String getRevision()

      Returns the revision string.
      Specified by:
        `getRevision` in interface `RevisionHandler`
      Returns:
        the revision