probabilityMachine
Class VPMMDLEntropyTypeDistMetaLearner

java.lang.Object
  |
  +--weka.classifiers.Classifier
        |
        +--probabilityMachine.VennProbabilityClassifier
              |
              +--probabilityMachine.VPMMDLEntropyTypeDistMetaLearner
All Implemented Interfaces:
java.lang.Cloneable, OptionHandler, java.io.Serializable

public class VPMMDLEntropyTypeDistMetaLearner
extends VennProbabilityClassifier
implements OptionHandler

The first implementation of a VPM Distribution Classifier Meta Learner. Uses Gaussians to model types!

Version:
$Revision: 1.0 $
Author:
David Lindsay (davidl@cs.rhul.ac.uk)
See Also:
Serialized Form

Constructor Summary
VPMMDLEntropyTypeDistMetaLearner()
          The amazing VPMBartsRMI classifier
VPMMDLEntropyTypeDistMetaLearner(int vennt)
          The amazing VPMMDLEntropyTypeDistMetaLearner classifier, used to show how to adapt a classifer to the VPM meta learning framework!
 
Method Summary
 void buildClassifier(Instances instances)
          Generates the classifier.
 java.lang.String[] calculateTypesForExamples(Instances train, Instances classPreds)
          This function will calculate the types for each example using the Gaussians calculated above.
 java.lang.String createTypeDetailString(int[] closestGaussianVennType, int[] typeDetails, int classAssigned)
          Output type membership details
 boolean getBetterMDL()
          Returns if better MDL is used.
 boolean getKononekoMDL()
          Returns if Kononeko MDL is used.
 java.lang.String[] getOptions()
          Gets the current settings of VPM.
 java.util.Enumeration listOptions()
          Returns an enumeration describing the available options
static void main(java.lang.String[] argv)
          Main method for testing this class.
 java.lang.String printArray(int[] array)
          Debugging function
 java.lang.String printArray(java.lang.String[] array)
          Debugging function
 void setBetterMDL(boolean better)
          Set better MDL to be used.
 void setKononekoMDL(boolean kon)
          Set Kononeko MDL to be used.
 void setOptions(java.lang.String[] options)
          Parses a given list of options.
 java.lang.String toString()
          Returns a description of this classifier.
 Matrix vennProbsForInstance(Instance instance)
          Returns the Venn probability matrix for a given test instance.
 
Methods inherited from class probabilityMachine.VennProbabilityClassifier
classifyInstance, computeRowOfVPMMatrix, distributionForInstance, printArray, returnDistribution, returnUpperAndLowerProbability
 
Methods inherited from class weka.classifiers.Classifier
debugTipText, forName, getDebug, makeCopies, setDebug
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

VPMMDLEntropyTypeDistMetaLearner

public VPMMDLEntropyTypeDistMetaLearner(int vennt)
The amazing VPMMDLEntropyTypeDistMetaLearner classifier, used to show how to adapt a classifer to the VPM meta learning framework!

The options for this wonderful algorithm are as follows:
-E use better MDL
Uses better MDL criterion to find splits.

-W classifier name
Specify the name of the distribution classifier name that you wish to specify -K Konenkos MDL criterion is used

Parameters:
vennt - the number of Venn probability types used

VPMMDLEntropyTypeDistMetaLearner

public VPMMDLEntropyTypeDistMetaLearner()
The amazing VPMBartsRMI classifier

Method Detail

setBetterMDL

public void setBetterMDL(boolean better)
Set better MDL to be used.


getBetterMDL

public boolean getBetterMDL()
Returns if better MDL is used.


setKononekoMDL

public void setKononekoMDL(boolean kon)
Set Kononeko MDL to be used.


getKononekoMDL

public boolean getKononekoMDL()
Returns if Kononeko MDL is used.


buildClassifier

public void buildClassifier(Instances instances)
                     throws java.lang.Exception
Generates the classifier.

Specified by:
buildClassifier in class Classifier
Parameters:
instances - set of instances serving as training data
Throws:
java.lang.Exception - if the classifier has not been generated successfully

listOptions

public java.util.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

setOptions

public void setOptions(java.lang.String[] options)
                throws java.lang.Exception
Parses a given list of options. Valid options are:

-y num Venn types
Sets the number of types used for the VPM

-E use better MDL
Uses better MDL criterion to find splits.

-W classifier name
Specify the name of the distribution classifier name that you wish to specify -K Konenkos MDL criterion is used

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

getOptions

public java.lang.String[] getOptions()
Gets the current settings of VPM.

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

calculateTypesForExamples

public java.lang.String[] calculateTypesForExamples(Instances train,
                                                    Instances classPreds)
                                             throws java.lang.Exception
This function will calculate the types for each example using the Gaussians calculated above.

Parameters:
train - this is the training data
Returns:
the type definitions for each example
java.lang.Exception

vennProbsForInstance

public Matrix vennProbsForInstance(Instance instance)
                            throws java.lang.Exception
Returns the Venn probability matrix for a given test instance.

Specified by:
vennProbsForInstance in class VennProbabilityClassifier
Parameters:
instance - the instance to be classified
Returns:
the Venn probability matrix
Throws:
java.lang.Exception - no training instances

printArray

public java.lang.String printArray(java.lang.String[] array)
Debugging function


printArray

public java.lang.String printArray(int[] array)
Debugging function

Overrides:
printArray in class VennProbabilityClassifier

createTypeDetailString

public java.lang.String createTypeDetailString(int[] closestGaussianVennType,
                                               int[] typeDetails,
                                               int classAssigned)
Output type membership details


toString

public java.lang.String toString()
Returns a description of this classifier.

Overrides:
toString in class java.lang.Object
Returns:
a description of this classifier as a string.

main

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

Parameters:
argv - should contain command line arguments for evaluation (see Evaluation).


Copyright (c) 2003 David Lindsay, Computer Learning Research Centre, Dept. Computer Science, Royal Holloway, University of London