Class MIEMDD

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

EMDD model builds heavily upon Dietterich's Diverse Density (DD) algorithm.
It is a general framework for MI learning of converting the MI problem to a single-instance setting using EM. In this implementation, we use most-likely cause DD model and only use 3 random selected postive bags as initial starting points of EM.

For more information see:

Qi Zhang, Sally A. Goldman: EM-DD: An Improved Multiple-Instance Learning Technique. In: Advances in Neural Information Processing Systems 14, 1073-108, 2001.

BibTeX:

 @inproceedings{Zhang2001,
    author = {Qi Zhang and Sally A. Goldman},
    booktitle = {Advances in Neural Information Processing Systems 14},
    pages = {1073-108},
    publisher = {MIT Press},
    title = {EM-DD: An Improved Multiple-Instance Learning Technique},
    year = {2001}
 }
 

Valid options are:

 -N <num>
  Whether to 0=normalize/1=standardize/2=neither.
  (default 1=standardize)
 -S <num>
  Random number seed.
  (default 1)
 -D
  If set, classifier is run in debug mode and
  may output additional info to the console
Version:
$Revision: 9144 $
Author:
Eibe Frank (eibe@cs.waikato.ac.nz), 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

    • MIEMDD

      public MIEMDD()
  • 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
    • listOptions

      public Enumeration listOptions()
      Returns an enumeration describing the available options
      Specified by:
      listOptions in interface OptionHandler
      Overrides:
      listOptions in class RandomizableClassifier
      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:

       -N <num>
        Whether to 0=normalize/1=standardize/2=neither.
        (default 1=standardize)
       -S <num>
        Random number seed.
        (default 1)
       -D
        If set, classifier is run in debug mode and
        may output additional info to the console
      Specified by:
      setOptions in interface OptionHandler
      Overrides:
      setOptions in class RandomizableClassifier
      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 RandomizableClassifier
      Returns:
      an array of strings suitable for passing to setOptions
    • 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
    • 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
    • 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
    • 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 train) throws Exception
      Builds the classifier
      Specified by:
      buildClassifier in class Classifier
      Parameters:
      train - the training data to be used for generating the boosted classifier.
      Throws:
      Exception - if the classifier could not be built successfully
    • distributionForInstance

      public double[] distributionForInstance(Instance exmp) throws Exception
      Computes the distribution for a given exemplar
      Overrides:
      distributionForInstance in class Classifier
      Parameters:
      exmp - the exemplar for which distribution is computed
      Returns:
      the distribution
      Throws:
      Exception - if the distribution can't be computed successfully
    • toString

      public String toString()
      Gets a string describing the classifier.
      Overrides:
      toString in class Object
      Returns:
      a string describing the classifer built.
    • 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)