## milk.experiment
Interface MISplitEvaluator

All Superinterfaces:
  java.io.Serializable

All Known Implementing Classes:
  MIClassifierSplitEvaluator

public interface MISplitEvaluator
extends java.io.Serializable

Interface to objects able to generate a fixed set of results for a particular split of a dataset. The set of results should contain fields related to any settings of the MISplitEvaluator (not including the dataset name. For example, one field for the classifier used to get the results, another for the classifier options, etc).

Possible implementations of MISplitEvaluator:

- StdClassification results
- StdRegression results

Method Summary
`java.lang.Object[]` `getKey()` Gets the key describing the current MISplitEvaluator.
`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.
`java.lang.String` `getRawResultOutput()` Returns the raw output for the most recent call to getResult.
`java.lang.Object[]` `getResult(Exemplars train, Exemplars 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.
`void` `setAdditionalMeasures(java.lang.String[] additionalMeasures)` Sets a list of method names for additional measures to look for in MISplitEvaluators.

Method Detail

### setAdditionalMeasures

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

  Sets a list of method names for additional measures to look for in MISplitEvaluators.

  Parameters:
    `additionalMeasures` - a list of method names

### getKeyNames

    public java.lang.String[] getKeyNames()

  Gets the names of each of the key columns produced for a single run. The names should not contain spaces (use '_' instead for easy translation.) The number of key fields must be constant for a given MISplitEvaluator.

  Returns:
    an array containing the name of each key column

### 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 MISplitEvaluator.

  Returns:
    an array containing objects of the type of each key 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 names should not contain spaces (use '_' instead for easy translation.) The number of result fields must be constant for a given MISplitEvaluator.

  Returns:
    an array containing the name of each result column

### 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 MISplitEvaluator.

  Returns:
    an array containing objects of the type of each result column. The objects should be Strings, or Doubles.

### getKey

    public java.lang.Object[] getKey()

  Gets the key describing the current MISplitEvaluator. 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 MISplitEvaluator.

  Returns:
    a value of type 'Object'

### getResult

    public java.lang.Object[] getResult(Exemplars train,
                                        Exemplars test)
                                 throws java.lang.Exception

  Gets the results for the supplied train and test datasets.

  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

### getRawResultOutput

    public java.lang.String getRawResultOutput()

  Returns the raw output for the most recent call to getResult. Useful for debugging splitEvaluators.

  Returns:
    the raw output corresponding to the most recent call to getResut