SYNOPSIS

Public Member Functions

NaiveBayesClassifier (const MatType &data, const arma::Col< size_t > &labels, const size_t classes, const bool incrementalVariance=false)

Initializes the classifier as per the input and then trains it by calculating the sample mean and variances. void Classify (const MatType &data, arma::Col< size_t > &results)

Given a bunch of data points, this function evaluates the class of each of those data points, and puts it in the vector 'results'. const MatType & Means () const

Get the sample means for each class. MatType & Means ()

Modify the sample means for each class. const arma::vec & Probabilities () const

Get the prior probabilities for each class. arma::vec & Probabilities ()

Modify the prior probabilities for each class. const MatType & Variances () const

Get the sample variances for each class. MatType & Variances ()

Modify the sample variances for each class.

Private Attributes

MatType means

Sample mean for each class. arma::vec probabilities

Class probabilities. MatType variances

Sample variances for each class.

Detailed Description

template<typename MatType = arma::mat>class mlpack::naive_bayes::NaiveBayesClassifier< MatType >

The simple Naive Bayes classifier.

This class trains on the data by calculating the sample mean and variance of the features with respect to each of the labels, and also the class probabilities. The class labels are assumed to be positive integers (starting with 0), and are expected to be the last row of the data input to the constructor.

Mathematically, it computes P(X_i = x_i | Y = y_j) for each feature X_i for each of the labels y_j. Alongwith this, it also computes the classs probabilities P(Y = y_j).

For classifying a data point (x_1, x_2, ..., x_n), it computes the following: arg max_y(P(Y = y)*P(X_1 = x_1 | Y = y) * ... * P(X_n = x_n | Y = y))

Example use:

extern arma::mat training_data, testing_data;
NaiveBayesClassifier<> nbc(training_data, 5);
arma::vec results;

nbc.Classify(testing_data, results);

Definition at line 58 of file naive_bayes_classifier.hpp.

Constructor & Destructor Documentation

template<typename MatType = arma::mat> \fBmlpack::naive_bayes::NaiveBayesClassifier\fP< MatType >::\fBNaiveBayesClassifier\fP (const MatType &data, const arma::Col< size_t > &labels, const size_tclasses, const boolincrementalVariance = \fCfalse\fP)

Initializes the classifier as per the input and then trains it by calculating the sample mean and variances. The input data is expected to have integer labels as the last row (starting with 0 and not greater than the number of classes).

Example use:

extern arma::mat training_data, testing_data;
extern arma::Col<size_t> labels;
NaiveBayesClassifier nbc(training_data, labels, 5);

Parameters:

data Training data points.

labels Labels corresponding to training data points.

classes Number of classes in this classifier.

incrementalVariance If true, an incremental algorithm is used to calculate the variance; this can prevent loss of precision in some cases, but will be somewhat slower to calculate.

Member Function Documentation

template<typename MatType = arma::mat> void \fBmlpack::naive_bayes::NaiveBayesClassifier\fP< MatType >::Classify (const MatType &data, arma::Col< size_t > &results)

Given a bunch of data points, this function evaluates the class of each of those data points, and puts it in the vector 'results'.

arma::mat test_data; // each column is a test point
arma::Col<size_t> results;
...
nbc.Classify(test_data, &results);

Parameters:

data List of data points.

results Vector that class predictions will be placed into.

template<typename MatType = arma::mat> const MatType& \fBmlpack::naive_bayes::NaiveBayesClassifier\fP< MatType >::Means () const\fC [inline]\fP

Get the sample means for each class.

Definition at line 113 of file naive_bayes_classifier.hpp.

References mlpack::naive_bayes::NaiveBayesClassifier< MatType >::means.

template<typename MatType = arma::mat> MatType& \fBmlpack::naive_bayes::NaiveBayesClassifier\fP< MatType >::Means ()\fC [inline]\fP

Modify the sample means for each class.

Definition at line 115 of file naive_bayes_classifier.hpp.

References mlpack::naive_bayes::NaiveBayesClassifier< MatType >::means.

template<typename MatType = arma::mat> const arma::vec& \fBmlpack::naive_bayes::NaiveBayesClassifier\fP< MatType >::Probabilities () const\fC [inline]\fP

Get the prior probabilities for each class.

Definition at line 123 of file naive_bayes_classifier.hpp.

References mlpack::naive_bayes::NaiveBayesClassifier< MatType >::probabilities.

template<typename MatType = arma::mat> arma::vec& \fBmlpack::naive_bayes::NaiveBayesClassifier\fP< MatType >::Probabilities ()\fC [inline]\fP

Modify the prior probabilities for each class.

Definition at line 125 of file naive_bayes_classifier.hpp.

References mlpack::naive_bayes::NaiveBayesClassifier< MatType >::probabilities.

template<typename MatType = arma::mat> const MatType& \fBmlpack::naive_bayes::NaiveBayesClassifier\fP< MatType >::Variances () const\fC [inline]\fP

Get the sample variances for each class.

Definition at line 118 of file naive_bayes_classifier.hpp.

References mlpack::naive_bayes::NaiveBayesClassifier< MatType >::variances.

template<typename MatType = arma::mat> MatType& \fBmlpack::naive_bayes::NaiveBayesClassifier\fP< MatType >::Variances ()\fC [inline]\fP

Modify the sample variances for each class.

Definition at line 120 of file naive_bayes_classifier.hpp.

References mlpack::naive_bayes::NaiveBayesClassifier< MatType >::variances.

Member Data Documentation

template<typename MatType = arma::mat> MatType \fBmlpack::naive_bayes::NaiveBayesClassifier\fP< MatType >::means\fC [private]\fP

Sample mean for each class.

Definition at line 62 of file naive_bayes_classifier.hpp.

Referenced by mlpack::naive_bayes::NaiveBayesClassifier< MatType >::Means().

template<typename MatType = arma::mat> arma::vec \fBmlpack::naive_bayes::NaiveBayesClassifier\fP< MatType >::probabilities\fC [private]\fP

Class probabilities.

Definition at line 68 of file naive_bayes_classifier.hpp.

Referenced by mlpack::naive_bayes::NaiveBayesClassifier< MatType >::Probabilities().

template<typename MatType = arma::mat> MatType \fBmlpack::naive_bayes::NaiveBayesClassifier\fP< MatType >::variances\fC [private]\fP

Sample variances for each class.

Definition at line 65 of file naive_bayes_classifier.hpp.

Referenced by mlpack::naive_bayes::NaiveBayesClassifier< MatType >::Variances().

Author

Generated automatically by Doxygen for MLPACK from the source code.