JavaML
Class NaiveBayes

java.lang.Object
  extended by JavaML.NaiveBayes
All Implemented Interfaces:
IClassifier, IOnlineClassifier

public class NaiveBayes
extends java.lang.Object
implements IOnlineClassifier

An Online implementation of a two-class Naive Bayes Classifier, Compiler warnings are due to the generics implementation in Java not allowing arrays of a generic collection


Field Summary
 
Fields inherited from interface JavaML.IClassifier
negativeClass, positiveClass
 
Constructor Summary
NaiveBayes()
          Constructor, by default without psuedoCounts
NaiveBayes(boolean newCounts)
          Constructor, pseudoCounts is set to the value of newCounts
 
Method Summary
 int[] classifyDataset(IDataset testingData)
          Returns the classifications made by the trained classifier on the testing data
 int classifySample(double[] sample)
          Returns the classification for a single example
 IOnlineClassifier copyClassifier()
          Copy constructor, used by the ensemble algorithms
 int[] getFeatureList()
           
 boolean getIsTrained()
           
 int onlineTrain(double[] trainingData, int target)
          Is the online train function, which takes a single example and trains on it then returns the classification.
 void setupClassifier(java.lang.String arguments)
          setupClassifier is used to modify classifiers after they have been constructed through the copy constructor, at that point you could either do reflection to figure out the class and reconstruct it, or you could pass it a string of arguments and have it reconfigure itself.
 boolean supportsMultiClassData()
           
 boolean supportsWeightedData()
           
 double test(IDataset testingData)
          Is the main offline test function, which takes an dataset and returns the testing error on that dataset
 double train(IDataset trainingData, int iterations)
          Is the main offline train function, which takes an dataset and trains on it in this classifier, iterations does nothing
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NaiveBayes

public NaiveBayes()
Constructor, by default without psuedoCounts


NaiveBayes

public NaiveBayes(boolean newCounts)
Constructor, pseudoCounts is set to the value of newCounts

Parameters:
newCounts - a boolean value for the pseudoCount implementation
Method Detail

copyClassifier

public IOnlineClassifier copyClassifier()
Copy constructor, used by the ensemble algorithms

Specified by:
copyClassifier in interface IClassifier
Specified by:
copyClassifier in interface IOnlineClassifier

setupClassifier

public void setupClassifier(java.lang.String arguments)
setupClassifier is used to modify classifiers after they have been constructed through the copy constructor, at that point you could either do reflection to figure out the class and reconstruct it, or you could pass it a string of arguments and have it reconfigure itself. This classifier accepts "PseudoCounts="

Specified by:
setupClassifier in interface IClassifier
Parameters:
arguments - a space separated list of parameter=value tuples.

train

public double train(IDataset trainingData,
                    int iterations)
Is the main offline train function, which takes an dataset and trains on it in this classifier, iterations does nothing

Specified by:
train in interface IClassifier
Parameters:
trainingData - A training dataset
iterations - Does nothing (there for IClassifier support for Boosting)

onlineTrain

public int onlineTrain(double[] trainingData,
                       int target)
Is the online train function, which takes a single example and trains on it then returns the classification.

Specified by:
onlineTrain in interface IOnlineClassifier
Parameters:
trainingData - A training sample
target - class label for the sample

test

public double test(IDataset testingData)
Is the main offline test function, which takes an dataset and returns the testing error on that dataset

Specified by:
test in interface IClassifier
Parameters:
testingData - A testing dataset

classifyDataset

public int[] classifyDataset(IDataset testingData)
Returns the classifications made by the trained classifier on the testing data

Specified by:
classifyDataset in interface IClassifier
Parameters:
testingData - A testing dataset

classifySample

public int classifySample(double[] sample)
Returns the classification for a single example

Specified by:
classifySample in interface IClassifier
Parameters:
sample - A testing sample

getFeatureList

public int[] getFeatureList()
Specified by:
getFeatureList in interface IClassifier

getIsTrained

public boolean getIsTrained()
Specified by:
getIsTrained in interface IClassifier

supportsWeightedData

public boolean supportsWeightedData()
Specified by:
supportsWeightedData in interface IClassifier

supportsMultiClassData

public boolean supportsMultiClassData()
Specified by:
supportsMultiClassData in interface IClassifier