Class LBR

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

    public class LBR
    extends Classifier
    implements TechnicalInformationHandler
    Lazy Bayesian Rules Classifier. The naive Bayesian classifier provides a simple and effective approach to classifier learning, but its attribute independence assumption is often violated in the real world. Lazy Bayesian Rules selectively relaxes the independence assumption, achieving lower error rates over a range of learning tasks. LBR defers processing to classification time, making it a highly efficient and accurate classification algorithm when small numbers of objects are to be classified.

    For more information, see:

    Zijian Zheng, G. Webb (2000). Lazy Learning of Bayesian Rules. Machine Learning. 4(1):53-84.

    BibTeX:

     @article{Zheng2000,
        author = {Zijian Zheng and G. Webb},
        journal = {Machine Learning},
        number = {1},
        pages = {53-84},
        title = {Lazy Learning of Bayesian Rules},
        volume = {4},
        year = {2000}
     }
     

    Valid options are:

     -D
      If set, classifier is run in debug mode and
      may output additional info to the console
    Version:
    $Revision: 5525 $
    Author:
    Zhihai Wang (zhw@deakin.edu.au) : July 2001 implemented the algorithm, Jason Wells (wells@deakin.edu.au) : November 2001 added instance referencing via indexes
    See Also:
    Serialized Form
    • Constructor Detail

      • LBR

        public LBR()
    • Method Detail

      • globalInfo

        public java.lang.String globalInfo()
        Returns:
        a description of the classifier 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
      • buildClassifier

        public void buildClassifier​(Instances instances)
                             throws java.lang.Exception
        For lazy learning, building classifier is only to prepare their inputs until classification time.
        Specified by:
        buildClassifier in class Classifier
        Parameters:
        instances - set of instances serving as training data
        Throws:
        java.lang.Exception - if the preparation has not been generated.
      • distributionForInstance

        public double[] distributionForInstance​(Instance testInstance)
                                         throws java.lang.Exception
        Calculates the class membership probabilities for the given test instance. This is the most important method for Lazy Bayesian Rule algorithm.
        Overrides:
        distributionForInstance in class Classifier
        Parameters:
        testInstance - the instance to be classified
        Returns:
        predicted class probability distribution
        Throws:
        java.lang.Exception - if distribution can't be computed
      • toString

        public java.lang.String toString()
        Returns a description of the classifier.
        Overrides:
        toString in class java.lang.Object
        Returns:
        a description of the classifier as a string.
      • leaveOneOut

        public int leaveOneOut​(LBR.Indexes instanceIndex,
                               int[][][] counts,
                               int[] priors,
                               boolean[] errorFlags)
                        throws java.lang.Exception
        Leave-one-out strategy. For a given sample data set with n instances, using (n - 1) instances by leaving one out and tested on the single remaining case. This is repeated n times in turn. The final "Error" is the sum of the instances to be classified incorrectly.
        Parameters:
        instanceIndex - set of instances serving as training data.
        counts - serving as all the counts of training data.
        priors - serving as the number of instances in each class.
        errorFlags - for the errors
        Returns:
        error flag array about each instance.
        Throws:
        java.lang.Exception - if something goes wrong
      • localNaiveBayes

        public void localNaiveBayes​(LBR.Indexes instanceIndex)
                             throws java.lang.Exception
        Class for building and using a simple Naive Bayes classifier. For more information, see

        Richard Duda and Peter Hart (1973).Pattern Classification and Scene Analysis. Wiley, New York. This method only get m_Counts and m_Priors.

        Parameters:
        instanceIndex - set of instances serving as training data
        Throws:
        java.lang.Exception - if m_Counts and m_Priors have not been generated successfully
      • localDistributionForInstance

        public double[] localDistributionForInstance​(Instance instance,
                                                     LBR.Indexes instanceIndex)
                                              throws java.lang.Exception
        Calculates the class membership probabilities. for the given test instance.
        Parameters:
        instance - the instance to be classified
        instanceIndex -
        Returns:
        predicted class probability distribution
        Throws:
        java.lang.Exception - if distribution can't be computed
      • binomP

        public double binomP​(double r,
                             double n,
                             double p)
                      throws java.lang.Exception
        Significance test binomp:
        Parameters:
        r -
        n -
        p -
        Returns:
        returns the probability of obtaining r or fewer out of n if the probability of an event is p.
        Throws:
        java.lang.Exception - if computation fails
      • main

        public static void main​(java.lang.String[] argv)
        Main method for testing this class.
        Parameters:
        argv - the options