probabilityMachine
Class VPMDistMetaLearner

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

public class VPMDistMetaLearner
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
VPMDistMetaLearner()
          The amazing VPMBartsRMI classifier
VPMDistMetaLearner(int vennt)
          The amazing VPMDistMetaLearner 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, double[][] tempProbHolder)
          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
 double getNumberVennTypes()
          Gets the number of Venn probability types used!
 java.lang.String[] getOptions()
          Gets the current settings of VPM.
 java.util.Enumeration listOptions()
          Returns an enumeration describing the available options
 double mahanobolisDistanceFrom(double mean, double var, double x)
          Finds the number of standard deviations from the mean of a Gaussian
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
 double probGaussian(double mean, double var, double x)
          Computes prob from a Gaussian!
 void setNumberVennTypes(double vennt)
          Sets the number of Venn probability types 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

VPMDistMetaLearner

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

The options for this wonderful algorithm are as follows:
-y num Venn types
Sets the number of types used for the VPM

Parameters:
vennt - the number of Venn probability types used

VPMDistMetaLearner

public VPMDistMetaLearner()
The amazing VPMBartsRMI classifier

Method Detail

setNumberVennTypes

public void setNumberVennTypes(double vennt)
Sets the number of Venn probability types used!


getNumberVennTypes

public double getNumberVennTypes()
Gets the number of Venn probability types 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

-W classifier name
Specify the name of the distribution classifier name that you wish to specify

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()

probGaussian

public double probGaussian(double mean,
                           double var,
                           double x)
Computes prob from a Gaussian!


mahanobolisDistanceFrom

public double mahanobolisDistanceFrom(double mean,
                                      double var,
                                      double x)
Finds the number of standard deviations from the mean of a Gaussian


calculateTypesForExamples

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

Parameters:
train - this is the training data
tempProbHolder - this is the set of probabilities output by the Naive Bayes classifier for training data
Returns:
the type definitions for each example

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