ABLE 2.3.0 07/13/2005 14:21:00

com.ibm.able.beans.knn
Class AbleNaiveBayes

java.lang.Object
  extended bycom.ibm.able.AbleObject
      extended bycom.ibm.able.beans.knn.AbleNaiveBayes
All Implemented Interfaces:
AbleBean, AbleDataBufferManager, AbleEventListener, AbleEventListenerManager, AbleEventQueueManager, AbleEventQueueProcessor, AblePropertyChangeManager, AbleSerializable, AbleTranslateTemplateProvider, java.io.Serializable

public class AbleNaiveBayes
extends AbleObject
implements AbleTranslateTemplateProvider, java.io.Serializable

See Also:
Serialized Form

Field Summary
static java.lang.String defaultName
          Value assigned to name by default.
 double[] inNum
          The numeric input buffer.
static java.lang.String[] MODE_NAMES
          Labels for the train, test and run modes for GUI use.
 double[] outNum
          The numeric output buffer.
static java.lang.String PropertyDiscr
           
static int PropertyDiscrId
           
static java.lang.String PropertyM
           
static int PropertyMId
           
static int RUN
          Application or Run mode output is produced.
static int TEST
          Test mode performance is tested (errors are computed).
static int TRAIN
          Training mode training data is stored.
 
Fields inherited from class com.ibm.able.AbleObject
changed, chgSupport, comment, dataFlowEnabled, destBufferConnections, eventQueue, fileName, inputBuffer, listeners, logger, name, outputBuffer, parent, properties, propertyConnectionMgr, sourceBufferConnections, state, stateChgSupport, trace
 
Constructor Summary
AbleNaiveBayes()
          Default constructor.
AbleNaiveBayes(java.lang.String aName)
          Construct a naive bayes bean with specified name.
AbleNaiveBayes(java.lang.String aName, int args)
           
 
Method Summary
 void calcPosteriorProb()
          Calculate posterior probability for all the elements of the attribute-value-class table.
 double[] calcPriorClassProb()
          Calculate prior class probability from training data.
 void calcPriorProb()
          Calculate prior probability for all the elements of the attribute-value-class table (uniform distribution is assumed).
 void generateTranslateTemplates(AbleFilter inFilt, AbleFilter outFilt, java.util.Vector fields)
          The next three methods change the default behaviour of the ABLE filters, making them appropriate for Naive Bayes algorithm.
 double getAccuracy()
          Get the accuracy.
 double getClass(double[] x)
          Find to which class the current test example is assigned by Naive Bayes algorithm.
 double getCurrentActualClass()
          Get the current actual classes corresponding to the current test example.
 double getCurrentLearnedClass()
          Get the current learned classes corresponding to the current test/run example.
 double[] getCurrentTestExample()
          Get the current test example.
 double[] getCurrentTrainExample()
          Get the current training example.
 int getDiscretization()
          Get metric parameter.
 AttributeValueClass getElement(java.util.Vector v, int attr, int val, int cl)
          Find an Attribute-Value-Class element in a Vector of Attribute-Value-Class elements and return it.
 double getError()
          Get the error.
 double[] getInNum()
           
 int getM()
          Get metric parameter.
 int getMaxProbIndex(double[] prob)
          Given an array of class probabilities, get the index corresponding to the class with the largest probability value.
 int getNaiveBayesMode()
          Get the current operating mode of the naive bayes bean.
 int getNumAttributes()
          Get numAttr parameter.
 int getNumClasses()
          Get numClasses parameter.
 long getNumCorrectTestExamples()
          Get the number of correctly classified test examples.
 int getNumInstances(int clasS)
          Calculates the number of instances in the training data set belonging to a given class based on information stored in the attribute-value-class table.
 long getNumRecords()
          Get numRecords parameter.
 long getNumTestExamples()
          Get the number of test examples seen so far.
 double[] getOutNum()
           
 void init()
          Get ready to process - init all the bean members.
 void process()
          Performs the main, synchronous, standard processing function performed by this bean.
 void reset()
          Reset the naive bayes bean.
 java.util.Vector setAllTable()
          Constructs the vector containing all the possible attribute-value-class combinations, not just those found in the training data set (some of them may be found in the test data set and need to be initialized to 0).
protected  void setDefaults()
          Set up the event queue behavior.
 void setDiscretization(int newDiscr)
          Set discretization parameter.
 void setM(int newM)
          Set m parameter - weight given to prior.
 void setNaiveBayesMode(int mode)
          Set the operating mode of the naive bayes bean.
 void setNaiveBayesParameters(int newAttr, int newCl, long newRec)
          Set the number records, number attributes and number classes for naive bayes bean.
 
Methods inherited from class com.ibm.able.AbleObject
addAbleEventListener, addDestBufferConnection, addPropertyChangeListener, addPropertyConnection, addSourceBufferConnection, addStateChangeListener, dataChanged, firePropertyChange, flushAbleEventQueue, getAbleEventListeners, getAbleEventProcessingEnabled, getAbleEventQueueSize, getComment, getDestBufferConnections, getFileName, getInputBuffer, getInputBuffer, getInputBufferAsString, getInputBufferAsStringArray, getInputBufferContents, getLogger, getName, getOutputBuffer, getOutputBuffer, getOutputBufferAsString, getOutputBufferAsStringArray, getOutputBufferContents, getParent, getProperties, getProperty, getPropertyChangeListeners, getPropertyConnectionManager, getSleepTime, getSourceBufferConnections, getState, getTraceLogger, handleAbleEvent, hasInputBuffer, hasOutputBuffer, init, isAbleEventPostingEnabled, isAbleEventProcessingEnabled, isChanged, isConnectable, isDataFlowEnabled, isTimerEventProcessingEnabled, notifyAbleEventListeners, process, processAbleEvent, processBufferConnections, processNoEventProcessingEnabledSituation, processTimerEvent, quitAll, quitEnabledEventProcessing, removeAbleEventListener, removeAllAbleEventListeners, removeAllBufferConnections, removeAllConnections, removeAllPropertyConnections, removeDestBufferConnection, removeProperty, removePropertyChangeListener, removePropertyConnection, removeSourceBufferConnection, removeStateChangeListener, restartEnabledEventProcessing, restoreFromFile, restoreFromFile, restoreFromSerializedFile, restoreFromStream, resumeAll, resumeEnabledEventProcessing, saveToFile, saveToFile, setAbleEventProcessingEnabled, setChanged, setComment, setDataFlowEnabled, setFileName, setInputBuffer, setInputBuffer, setLogger, setName, setOutputBuffer, setOutputBuffer, setParent, setProperties, setProperty, setSleepTime, setState, setTimerEventProcessingEnabled, setTraceLogger, sourceConnectionsOK, startEnabledEventProcessing, suspendAll, suspendEnabledEventProcessing
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

defaultName

public static final java.lang.String defaultName
Value assigned to name by default.


PropertyMId

public static final int PropertyMId
See Also:
Constant Field Values

PropertyM

public static final java.lang.String PropertyM
See Also:
Constant Field Values

PropertyDiscrId

public static final int PropertyDiscrId
See Also:
Constant Field Values

PropertyDiscr

public static final java.lang.String PropertyDiscr
See Also:
Constant Field Values

inNum

public double[] inNum
The numeric input buffer.


outNum

public double[] outNum
The numeric output buffer.


TRAIN

public static final int TRAIN
Training mode training data is stored.

See Also:
Constant Field Values

TEST

public static final int TEST
Test mode performance is tested (errors are computed).

See Also:
Constant Field Values

RUN

public static final int RUN
Application or Run mode output is produced.

See Also:
Constant Field Values

MODE_NAMES

public static final java.lang.String[] MODE_NAMES
Labels for the train, test and run modes for GUI use.

Constructor Detail

AbleNaiveBayes

public AbleNaiveBayes()
               throws AbleException
Default constructor.


AbleNaiveBayes

public AbleNaiveBayes(java.lang.String aName)
               throws AbleException
Construct a naive bayes bean with specified name.

Parameters:
aName - The object name

AbleNaiveBayes

public AbleNaiveBayes(java.lang.String aName,
                      int args)
               throws AbleException
Method Detail

getInNum

public double[] getInNum()

getOutNum

public double[] getOutNum()

setDefaults

protected void setDefaults()
                    throws AbleException
Set up the event queue behavior. No timer processing and no asynch event processing.

Throws:
AbleException

getNaiveBayesMode

public int getNaiveBayesMode()
Get the current operating mode of the naive bayes bean.

Returns:
int.

setNaiveBayesMode

public void setNaiveBayesMode(int mode)
Set the operating mode of the naive bayes bean.

Parameters:
mode - The current operating mode, train/test/run

setNaiveBayesParameters

public void setNaiveBayesParameters(int newAttr,
                                    int newCl,
                                    long newRec)
Set the number records, number attributes and number classes for naive bayes bean.

Parameters:
newAttr - that defines the number of attributes
newCl - that defines the number of classes
newRec - that defines the number of records

setM

public void setM(int newM)
          throws AbleException
Set m parameter - weight given to prior.

Parameters:
newM -
Throws:
AbleException

getM

public int getM()
Get metric parameter.


setDiscretization

public void setDiscretization(int newDiscr)
                       throws AbleException
Set discretization parameter.

Throws:
AbleException

getDiscretization

public int getDiscretization()
Get metric parameter.


getNumRecords

public long getNumRecords()
Get numRecords parameter.


getNumAttributes

public int getNumAttributes()
Get numAttr parameter.


getNumClasses

public int getNumClasses()
Get numClasses parameter.


getNumTestExamples

public long getNumTestExamples()
Get the number of test examples seen so far.


getNumCorrectTestExamples

public long getNumCorrectTestExamples()
Get the number of correctly classified test examples.


getAccuracy

public double getAccuracy()
Get the accuracy.


getError

public double getError()
Get the error.


getCurrentTrainExample

public double[] getCurrentTrainExample()
Get the current training example.


getCurrentTestExample

public double[] getCurrentTestExample()
Get the current test example.


getCurrentLearnedClass

public double getCurrentLearnedClass()
Get the current learned classes corresponding to the current test/run example.


getCurrentActualClass

public double getCurrentActualClass()
Get the current actual classes corresponding to the current test example.


init

public void init()
          throws AbleException
Get ready to process - init all the bean members.

Specified by:
init in interface AbleBean
Overrides:
init in class AbleObject
Throws:
AbleException - If an error occurs.
See Also:
AbleObject.startEnabledEventProcessing()

reset

public void reset()
           throws AbleException
Reset the naive bayes bean.

Specified by:
reset in interface AbleBean
Overrides:
reset in class AbleObject
Throws:
AbleException - If an error occurs.
See Also:
AbleBean.reset()

getMaxProbIndex

public int getMaxProbIndex(double[] prob)
Given an array of class probabilities, get the index corresponding to the class with the largest probability value.


getElement

public AttributeValueClass getElement(java.util.Vector v,
                                      int attr,
                                      int val,
                                      int cl)
Find an Attribute-Value-Class element in a Vector of Attribute-Value-Class elements and return it. Returns null if the searched element is not in the Vector already.


getClass

public double getClass(double[] x)
                throws AbleException
Find to which class the current test example is assigned by Naive Bayes algorithm.

Throws:
AbleException

calcPriorClassProb

public double[] calcPriorClassProb()
                            throws AbleException
Calculate prior class probability from training data. Looks at the parent's data source to find the fields. Can return null if the parent is null.

Throws:
AbleException

setAllTable

public java.util.Vector setAllTable()
                             throws AbleException
Constructs the vector containing all the possible attribute-value-class combinations, not just those found in the training data set (some of them may be found in the test data set and need to be initialized to 0). Looks at the parent's data source to find the fields. Can return null if the parent is null.

Throws:
AbleException

calcPriorProb

public void calcPriorProb()
                   throws AbleException
Calculate prior probability for all the elements of the attribute-value-class table (uniform distribution is assumed).

Throws:
AbleException

getNumInstances

public int getNumInstances(int clasS)
Calculates the number of instances in the training data set belonging to a given class based on information stored in the attribute-value-class table.


calcPosteriorProb

public void calcPosteriorProb()
                       throws AbleException
Calculate posterior probability for all the elements of the attribute-value-class table.

Throws:
AbleException

process

public void process()
             throws AbleException
Description copied from class: AbleObject
Performs the main, synchronous, standard processing function performed by this bean.

This base method implementation provides tracing only.

Specified by:
process in interface AbleBean
Overrides:
process in class AbleObject
Throws:
AbleException
See Also:
AbleObject.inputBuffer, AbleObject.outputBuffer, AbleBean.process()

generateTranslateTemplates

public void generateTranslateTemplates(AbleFilter inFilt,
                                       AbleFilter outFilt,
                                       java.util.Vector fields)
                                throws AbleException
The next three methods change the default behaviour of the ABLE filters, making them appropriate for Naive Bayes algorithm. Thus, for discrete and categorical attributes, the possible values are converted to consecutive numbers starting from 1 till the number of values. For continuous attributes, the values are discretized, so that they take values from 1 to the number of intervals used for discretization. The class attribute is always discrete or categorical.

Specified by:
generateTranslateTemplates in interface AbleTranslateTemplateProvider
Parameters:
inFilt - The AbleFilter used to convert incoming data.
outFilt - The AbleFilter used to convert outgoing data.
fields - A vector of AbleFields from which to derive the translation template.
Returns:
An array containing two AbleFilter objectshe translation template.
Throws:
AbleException

ABLE 2.3.0 07/13/2005 14:21:00

(C) Copyright IBM Corporation 1999, 2005