Class MIEMDD

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, CapabilitiesHandler, MultiInstanceCapabilitiesHandler, OptionHandler, Randomizable, RevisionHandler, TechnicalInformationHandler

    public class MIEMDD
    extends RandomizableClassifier
    implements OptionHandler, MultiInstanceCapabilitiesHandler, 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:
    Serialized Form
    • Field Detail

      • 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 Detail

      • MIEMDD

        public MIEMDD()
    • Method Detail

      • globalInfo

        public java.lang.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
      • setOptions

        public void setOptions​(java.lang.String[] options)
                        throws java.lang.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:
        java.lang.Exception - if an option is not supported
      • filterTypeTipText

        public java.lang.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
      • buildClassifier

        public void buildClassifier​(Instances train)
                             throws java.lang.Exception
        Builds the classifier
        Specified by:
        buildClassifier in class Classifier
        Parameters:
        train - the training data to be used for generating the boosted classifier.
        Throws:
        java.lang.Exception - if the classifier could not be built successfully
      • distributionForInstance

        public double[] distributionForInstance​(Instance exmp)
                                         throws java.lang.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:
        java.lang.Exception - if the distribution can't be computed successfully
      • toString

        public java.lang.String toString()
        Gets a string describing the classifier.
        Overrides:
        toString in class java.lang.Object
        Returns:
        a string describing the classifer built.
      • main

        public static void main​(java.lang.String[] argv)
        Main method for testing this class.
        Parameters:
        argv - should contain the command line arguments to the scheme (see Evaluation)