Package weka.classifiers.mi

# Class MIOptimalBall

java.lang.Object
weka.classifiers.Classifier
weka.classifiers.mi.MIOptimalBall

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `CapabilitiesHandler`, `MultiInstanceCapabilitiesHandler`, `OptionHandler`, `RevisionHandler`, `TechnicalInformationHandler`, `WeightedInstancesHandler`

public class MIOptimalBall extends Classifier implements OptionHandler, WeightedInstancesHandler, MultiInstanceCapabilitiesHandler, TechnicalInformationHandler
This classifier tries to find a suitable ball in the multiple-instance space, with a certain data point in the instance space as a ball center. The possible ball center is a certain instance in a positive bag. The possible radiuses are those which can achieve the highest classification accuracy. The model selects the maximum radius as the radius of the optimal ball.
For more information about this algorithm, see:
Peter Auer, Ronald Ortner: A Boosting Approach to Multiple Instance Learning. In: 15th European Conference on Machine Learning, 63-74, 2004.

BibTeX:

     @inproceedings{Auer2004,
        author = {Peter Auer and Ronald Ortner},
        booktitle = {15th European Conference on Machine Learning},
        note = {LNAI 3201},
        pages = {63-74},
        publisher = {Springer},
        title = {A Boosting Approach to Multiple Instance Learning},
        year = {2004}
     }

Valid options are:

     -N <num>
      Whether to 0=normalize/1=standardize/2=neither.
      (default 0=normalize)

Version:
  $Revision: 9144 $
Author:
  Lin Dong (ld21@cs.waikato.ac.nz)
See Also:
  - Serialized Form

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`FILTER_NONE`
No normalization/standardization
`static final int`
`FILTER_NORMALIZE`
Normalize training data
`static final int`
`FILTER_STANDARDIZE`
Standardize training data
`static final Tag[]`
`TAGS_FILTER`
The filter to apply to the training data

## Constructor Summary

Constructors
Constructor
Description
`MIOptimalBall()`

## Method Summary

Modifier and Type
Method
Description
`void`
`buildClassifier(Instances data)`
Builds the classifier
`void`
`calculateDistance(Instances train)`
calculate the distances from each instance in a positive bag to each bag.
`double[]`
`distributionForInstance(Instance newBag)`
Computes the distribution for a given multiple instance
`String`
`filterTypeTipText()`
Returns the tip text for this property
`void`
`findRadius(Instances train)`
Find the maximum radius for the optimal ball.
`Capabilities`
`getCapabilities()`
Returns default capabilities of the classifier.
`SelectedTag`
`getFilterType()`
Gets how the training data will be transformed.
`Capabilities`
`getMultiInstanceCapabilities()`
Returns the capabilities of this multi-instance classifier for the relational data.
`String[]`
`getOptions()`
Gets the current settings of the classifier.
`String`
`getRevision()`
Returns the revision string.
`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.
`String`
`globalInfo()`
Returns a string describing this filter
`Enumeration`
`listOptions()`
Returns an enumeration describing the available options.
`static void`
`main(String[] argv)`
Main method for testing this class.
`double`
`minBagDistance(Instance center, Instance bag)`
Calculate the distance from one data point to a bag
`void`
`setFilterType(SelectedTag newType)`
Sets how the training data will be transformed.
`void`
`setOptions(String[] options)`
Parses a given list of options.
`double[]`
`sortArray(double[] distance)`
Sort the array.

### Methods inherited from class weka.classifiers.Classifier

`classifyInstance, debugTipText, forName, getDebug, makeCopies, makeCopy, setDebug`

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

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

## Field Details

### FILTER_NORMALIZE

public static final int FILTER_NORMALIZE
Normalize training data

See Also:
  - Constant Field Values

### FILTER_STANDARDIZE

public static final int FILTER_STANDARDIZE
Standardize training data

See Also:
  - Constant Field Values

### FILTER_NONE

public static final int FILTER_NONE
No normalization/standardization

See Also:
  - Constant Field Values

### TAGS_FILTER

public static final Tag[] TAGS_FILTER
The filter to apply to the training data

## Constructor Details

### MIOptimalBall

public MIOptimalBall()

## Method Details

### globalInfo

public String globalInfo()
Returns a string describing this filter

Returns:
  a description of the filter suitable for displaying in the explorer/experimenter gui

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

### getCapabilities

public Capabilities getCapabilities()
Returns default capabilities of the classifier.

Specified by:
  `getCapabilities` in interface `CapabilitiesHandler`
Overrides:
  `getCapabilities` in class `Classifier`
Returns:
  the capabilities of this classifier
See Also:
  - `Capabilities`

### getMultiInstanceCapabilities

public Capabilities getMultiInstanceCapabilities()
Returns the capabilities of this multi-instance classifier for the relational data.

Specified by:
  `getMultiInstanceCapabilities` in interface `MultiInstanceCapabilitiesHandler`
Returns:
  the capabilities of this object
See Also:
  - `Capabilities`

### buildClassifier

public void buildClassifier(Instances data) throws Exception
Builds the classifier

Specified by:
  `buildClassifier` in class `Classifier`
Parameters:
  `data` - the training data to be used for generating the boosted classifier.
Throws:
  `Exception` - if the classifier could not be built successfully

### calculateDistance

public void calculateDistance(Instances train)
calculate the distances from each instance in a positive bag to each bag. All result distances are stored in m_Distance[i][j][k], where m_Distance[i][j][k] refers the distances from the jth instance in ith bag to the kth bag

Parameters:
  `train` - the multi-instance dataset (with relational attribute)

### minBagDistance

public double minBagDistance(Instance center, Instance bag)
Calculate the distance from one data point to a bag

Parameters:
  `center` - the data point in instance space
  `bag` - the bag
Returns:
  the double value as the distance.

### findRadius

public void findRadius(Instances train)
Find the maximum radius for the optimal ball.

Parameters:
  `train` - the multi-instance data

### sortArray

public double[] sortArray(double[] distance)
Sort the array.

Parameters:
  `distance` - the array need to be sorted
Returns:
  sorted array

### distributionForInstance

public double[] distributionForInstance(Instance newBag) throws Exception
Computes the distribution for a given multiple instance

Overrides:
  `distributionForInstance` in class `Classifier`
Parameters:
  `newBag` - the instance for which distribution is computed
Returns:
  the distribution
Throws:
  `Exception` - if the distribution can't be computed successfully

### listOptions

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

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

### getOptions

public String[] getOptions()
Gets the current settings of the classifier.

Specified by:
  `getOptions` in interface `OptionHandler`
Overrides:
  `getOptions` in class `Classifier`
Returns:
  an array of strings suitable for passing to setOptions

### setOptions

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

Valid options are:

     -N <num>
      Whether to 0=normalize/1=standardize/2=neither.
      (default 0=normalize)

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

### filterTypeTipText

public String filterTypeTipText()
Returns the tip text for this property

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

### setFilterType

public void setFilterType(SelectedTag newType)
Sets how the training data will be transformed. Should be one of FILTER_NORMALIZE, FILTER_STANDARDIZE, FILTER_NONE.

Parameters:
  `newType` - the new filtering mode

### getFilterType

public SelectedTag getFilterType()
Gets how the training data will be transformed. Will be one of FILTER_NORMALIZE, FILTER_STANDARDIZE, FILTER_NONE.

Returns:
  the filtering mode

### getRevision

public String getRevision()
Returns the revision string.

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

### main

public static void main(String[] argv)
Main method for testing this class.

Parameters:
  `argv` - should contain the command line arguments to the scheme (see Evaluation)