Class MIOptimalBall

java.lang.Object
weka.classifiers.Classifier
weka.classifiers.mi.MIOptimalBall
All Implemented Interfaces:
Serializable, Cloneable, CapabilitiesHandler, MultiInstanceCapabilitiesHandler, OptionHandler, RevisionHandler, TechnicalInformationHandler, WeightedInstancesHandler

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:
  • Field Details

    • FILTER_NORMALIZE

      public static final int FILTER_NORMALIZE
      Normalize training data
      See Also:
    • FILTER_STANDARDIZE

      public static final int FILTER_STANDARDIZE
      Standardize training data
      See Also:
    • FILTER_NONE

      public static final int FILTER_NONE
      No normalization/standardization
      See Also:
    • 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:
    • 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:
    • 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)