Direct Graphical Models  v.1.7.0
DirectGraphicalModels::CTrainNodeBayes Class Reference

Bayes training class. More...

#include <TrainNodeNaiveBayes.h>

Inheritance diagram for DirectGraphicalModels::CTrainNodeBayes:
Collaboration diagram for DirectGraphicalModels::CTrainNodeBayes:

Public Member Functions

 CTrainNodeBayes (byte nStates, word nFeatures)
 Constructor. More...
 
virtual ~CTrainNodeBayes (void)
 
virtual void reset (void)
 Resets class variables. More...
 
virtual void addFeatureVec (const Mat &featureVector, byte gt)
 Adds new feature vector. More...
 
virtual void train (bool doClean=false)
 Random model training. More...
 
IPDFgetPDF (byte state, word feature) const
 Returns the normalized probability density function (PDF) for specific state (class) and feature. More...
 
IPDFgetPDF2D (byte state) const
 Returns the 2D normalized probability density function (PDF) for specific state (class) More...
 
void smooth (int nIt=1)
 Smothes the underlying Probability Density Functions (PDFs) More...
 
- Public Member Functions inherited from DirectGraphicalModels::CTrainNode
 CTrainNode (byte nStates, word nFeatures)
 Constructor. More...
 
virtual ~CTrainNode (void)=default
 
void addFeatureVecs (const Mat &featureVectors, const Mat &gt)
 Adds a block of new feature vectors. More...
 
void addFeatureVecs (const vec_mat_t &featureVectors, const Mat &gt)
 Adds a block of new feature vectors. More...
 
Mat getNodePotentials (const Mat &featureVectors, const Mat &weights=Mat(), float Z=0.0f) const
 Returns a block of node potentials, based on the block of feature vector. More...
 
Mat getNodePotentials (const vec_mat_t &featureVectors, const Mat &weights=Mat(), float Z=0.0f) const
 Returns a block of node potentials, based on the block of feature vector. More...
 
Mat getNodePotentials (const Mat &featureVector, float weight, float Z=0.0f) const
 Returns the node potential, based on the feature vector. More...
 
- Public Member Functions inherited from DirectGraphicalModels::ITrain
 ITrain (byte nStates, word nFeatures)
 Constructor. More...
 
virtual ~ITrain (void)=default
 
word getNumFeatures (void) const
 Returns number of features. More...
 
- Public Member Functions inherited from DirectGraphicalModels::CBaseRandomModel
 CBaseRandomModel (byte nStates)
 Constructor. More...
 
virtual ~CBaseRandomModel (void)
 
virtual void save (const std::string &path, const std::string &name=std::string(), short idx=-1) const
 Saves the training data. More...
 
virtual void load (const std::string &path, const std::string &name=std::string(), short idx=-1)
 Loads the training data. More...
 
byte getNumStates (void) const
 Returns number of states (classes) More...
 

Protected Member Functions

virtual void saveFile (FILE *pFile) const
 Saves the random model into the file. More...
 
virtual void loadFile (FILE *pFile)
 Loads the random model from the file. More...
 
void calculateNodePotentials (const Mat &featureVector, Mat &potential, Mat &mask) const
 Calculates the node potential, based on the feature vector. More...
 
- Protected Member Functions inherited from DirectGraphicalModels::CBaseRandomModel
std::string generateFileName (const std::string &path, const std::string &name, short idx) const
 Generates name of the data file for storing random model parameters. More...
 

Private Attributes

IPDF *** m_pPDF
 The 1D PDF for node potentials [state][feature]. More...
 
IPDF ** m_pPDF2D
 The 2D data histogram for node potentials and 2 features[state]. More...
 
Mat m_prior
 The class prior probability vector. More...
 
- Private Attributes inherited from DirectGraphicalModels::CPrior
Mat m_histogramPrior
 The class cooccurance histogram. More...
 
- Private Attributes inherited from DirectGraphicalModels::CBaseRandomModel
byte m_nStates
 The number of states (classes) More...
 

Additional Inherited Members

- Static Public Member Functions inherited from DirectGraphicalModels::CTrainNode
static std::shared_ptr< CTrainNodecreate (byte nodeRandomModel, byte nStates, word nFeatures)
 Factory method returning node trainer object. More...
 
- Protected Attributes inherited from DirectGraphicalModels::CBaseRandomModel
byte m_nStates
 The number of states (classes) More...
 
- Private Member Functions inherited from DirectGraphicalModels::CPriorNode
 CPriorNode (byte nStates)
 Constructor. More...
 
 ~CPriorNode (void)
 
void addNodeGroundTruth (const Mat &gt)
 Adds ground truth values to the co-occurance histogram vector. More...
 
void addNodeGroundTruth (byte gt)
 Adds a ground truth value to the co-occurance histogram vector. More...
 
Mat calculatePrior (void) const
 Calculates the prior probabilies. More...
 
- Private Member Functions inherited from DirectGraphicalModels::CPrior
 CPrior (byte nStates, RandomModelType type)
 Constructor. More...
 
 ~CPrior (void)
 
Mat getPrior (float weight=1.0f) const
 Returns the prior probabilies. More...
 
- Private Member Functions inherited from DirectGraphicalModels::CBaseRandomModel
 CBaseRandomModel (byte nStates)
 Constructor. More...
 
virtual ~CBaseRandomModel (void)
 
virtual void save (const std::string &path, const std::string &name=std::string(), short idx=-1) const
 Saves the training data. More...
 
virtual void load (const std::string &path, const std::string &name=std::string(), short idx=-1)
 Loads the training data. More...
 
byte getNumStates (void) const
 Returns number of states (classes) More...
 
std::string generateFileName (const std::string &path, const std::string &name, short idx) const
 Generates name of the data file for storing random model parameters. More...
 

Detailed Description

Bayes training class.

This class implements the naive Bayes classifier, which is based on strong (naive) independence assumptions between the features.

Author
Sergey G. Kosov, serge.nosp@m.y.ko.nosp@m.sov@p.nosp@m.roje.nosp@m.ct-10.nosp@m..de

Definition at line 20 of file TrainNodeNaiveBayes.h.

Constructor & Destructor Documentation

◆ CTrainNodeBayes()

DirectGraphicalModels::CTrainNodeBayes::CTrainNodeBayes ( byte  nStates,
word  nFeatures 
)

Constructor.

Parameters
nStatesNumber of states (classes)
nFeaturesNumber of features

Definition at line 10 of file TrainNodeNaiveBayes.cpp.

Here is the call graph for this function:

◆ ~CTrainNodeBayes()

DirectGraphicalModels::CTrainNodeBayes::~CTrainNodeBayes ( void  )
virtual

Definition at line 32 of file TrainNodeNaiveBayes.cpp.

Here is the call graph for this function:

Member Function Documentation

◆ addFeatureVec()

void DirectGraphicalModels::CTrainNodeBayes::addFeatureVec ( const Mat &  featureVector,
byte  gt 
)
virtual

Adds new feature vector.

Used to add a featureVector, corresponding to the ground-truth state (class) gt for training

Parameters
featureVectorMulti-dimensinal point: Mat(size: nFeatures x 1; type: CV_8UC1)
gtCorresponding ground-truth state (class)

Implements DirectGraphicalModels::CTrainNode.

Definition at line 63 of file TrainNodeNaiveBayes.cpp.

Here is the call graph for this function:

◆ calculateNodePotentials()

void DirectGraphicalModels::CTrainNodeBayes::calculateNodePotentials ( const Mat &  featureVector,
Mat &  potential,
Mat &  mask 
) const
protectedvirtual

Calculates the node potential, based on the feature vector.

This function calculates the potentials of the node, described with the sample featureVector ( \( \textbf{f} \)):

\[ nodePot_s = prior_s\cdot\prod_{f\in\mathbb{F}} (H_{s,f}.data[\textbf{f}_f] / H_{s,f}.n); \forall s\in\mathbb{S}, \]

where \(\mathbb{S}\) and \(\mathbb{F}\) are sets of all states (classes) and features correspondently. In other words, the indexes: \( s \in [0; nStates) \) and \( f \in [0; nFeatures) \). Here \( H.data[256] \) is a 1D histogram, \( H.n \) is the number of entries in histogram, i.e. \( H.n = \sum^{255}_{i = 0} H.data[i] \). And \( \textbf{f}_f \in [0; 255], \forall f \in [0; nFeatures) \), i.e. has (type: CV_8UC1).

Parameters
[in]featureVectorMulti-dimensinal point \(\textbf{f}\): Mat(size: nFeatures x 1; type: CV_{XX}C1)
[in,out]potentialNode potentials: Mat(size: nStates x 1; type: CV_32FC1). This parameter should be preinitialized and set to value 0.
[in,out]maskRelevant Node potentials: Mat(size: nStates x 1; type: CV_8UC1). This parameter should be preinitialized and set to value 1 (all potentials are relevant).

Implements DirectGraphicalModels::CTrainNode.

Definition at line 125 of file TrainNodeNaiveBayes.cpp.

Here is the call graph for this function:

◆ getPDF()

IPDF* DirectGraphicalModels::CTrainNodeBayes::getPDF ( byte  state,
word  feature 
) const
inline

Returns the normalized probability density function (PDF) for specific state (class) and feature.

Parameters
stateThe state (class)
featureThe feature
Returns
The probability density function

Definition at line 42 of file TrainNodeNaiveBayes.h.

◆ getPDF2D()

IPDF* DirectGraphicalModels::CTrainNodeBayes::getPDF2D ( byte  state) const
inline

Returns the 2D normalized probability density function (PDF) for specific state (class)

Note
Used for test purposes. Use this function when only 2 features are in use.
Parameters
stateThe state (class)
Returns
The probability density function for 2 features

Definition at line 49 of file TrainNodeNaiveBayes.h.

◆ loadFile()

void DirectGraphicalModels::CTrainNodeBayes::loadFile ( FILE *  pFile)
protectedvirtual

Loads the random model from the file.

Allows to re-use the class.

Parameters
pFilePointer to the file, opened for reading.

Reimplemented from DirectGraphicalModels::CPrior.

Definition at line 112 of file TrainNodeNaiveBayes.cpp.

Here is the call graph for this function:

◆ reset()

void DirectGraphicalModels::CTrainNodeBayes::reset ( void  )
virtual

Resets class variables.

Allows to re-use the class.

Reimplemented from DirectGraphicalModels::CPrior.

Definition at line 49 of file TrainNodeNaiveBayes.cpp.

Here is the call graph for this function:

◆ saveFile()

void DirectGraphicalModels::CTrainNodeBayes::saveFile ( FILE *  pFile) const
protectedvirtual

Saves the random model into the file.

Allows to re-use the class.

Parameters
pFilePointer to the file, opened for writing.

Reimplemented from DirectGraphicalModels::CPrior.

Definition at line 100 of file TrainNodeNaiveBayes.cpp.

Here is the call graph for this function:

◆ smooth()

void DirectGraphicalModels::CTrainNodeBayes::smooth ( int  nIt = 1)

Smothes the underlying Probability Density Functions (PDFs)

Parameters
nItNumber of smooth iterations

Definition at line 89 of file TrainNodeNaiveBayes.cpp.

Here is the call graph for this function:

◆ train()

void DirectGraphicalModels::CTrainNodeBayes::train ( bool  doClean = false)
virtual

Random model training.

Auxilary function for training - some derived classes may use this function inbetween training and classification phases

Note
This function must be called inbetween the training and classification phases
Parameters
doCleanFlag indicating if the memory, keeping the trining data should be released after training

Reimplemented from DirectGraphicalModels::CTrainNode.

Definition at line 84 of file TrainNodeNaiveBayes.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ m_pPDF

IPDF*** DirectGraphicalModels::CTrainNodeBayes::m_pPDF
private

The 1D PDF for node potentials [state][feature].

Definition at line 75 of file TrainNodeNaiveBayes.h.

◆ m_pPDF2D

IPDF** DirectGraphicalModels::CTrainNodeBayes::m_pPDF2D
private

The 2D data histogram for node potentials and 2 features[state].

Definition at line 76 of file TrainNodeNaiveBayes.h.

◆ m_prior

Mat DirectGraphicalModels::CTrainNodeBayes::m_prior
private

The class prior probability vector.

Definition at line 77 of file TrainNodeNaiveBayes.h.


The documentation for this class was generated from the following files: