mlpack::decision_stump::DecisionStump< MatType >(3) This class implements a decision stump.

SYNOPSIS


Public Member Functions


DecisionStump (const MatType &data, const arma::Row< size_t > &labels, const size_t classes, size_t inpBucketSize)
Constructor.
DecisionStump (const DecisionStump<> &ds)

const arma::Col< size_t > BinLabels () const
Access the labels for each split bin.
arma::Col< size_t > & BinLabels ()
Modify the labels for each split bin (be careful!).
void Classify (const MatType &test, arma::Row< size_t > &predictedLabels)
Classification function.
const arma::vec & Split () const
Access the splitting values.
arma::vec & Split ()
Modify the splitting values (be careful!).
int SplitAttribute () const
ModifyData(MatType& data, const arma::Row<double>& D);.
int & SplitAttribute ()
Modify the splitting attribute (be careful!).

Private Member Functions


template<typename AttType , typename LabelType > double CalculateEntropy (arma::subview_row< LabelType > labels)
Calculate the entropy of the given attribute.
template<typename rType > rType CountMostFreq (const arma::Row< rType > &subCols)
Count the most frequently occurring element in subCols.
template<typename rType > int IsDistinct (const arma::Row< rType > &featureRow)
Returns 1 if all the values of featureRow are not same.
void MergeRanges ()
After the 'split' matrix has been set up, merge ranges with identical class labels.
double SetupSplitAttribute (const arma::rowvec &attribute, const arma::Row< size_t > &labels)
Sets up attribute as if it were splitting on it and finds entropy when splitting on attribute.
template<typename rType > void TrainOnAtt (const arma::rowvec &attribute, const arma::Row< size_t > &labels)
After having decided the attribute on which to split, train on that attribute.

Private Attributes


arma::Col< size_t > binLabels
Stores the labels for each splitting bin.
size_t bucketSize
Size of bucket while determining splitting criterion.
size_t numClass
Stores the number of classes.
arma::vec split
Stores the splitting values after training.
int splitAttribute
Stores the value of the attribute on which to split.

Detailed Description

template<typename MatType = arma::mat>class mlpack::decision_stump::DecisionStump< MatType >

This class implements a decision stump.

It constructs a single level decision tree, i.e., a decision stump. It uses entropy to decide splitting ranges.

The stump is parameterized by a splitting attribute (the dimension on which points are split), a vector of bin split values, and a vector of labels for each bin. Bin i is specified by the range [split[i], split[i + 1]). The last bin has range up to (split[i + 1] does not exist in that case). Points that are below the first bin will take the label of the first bin.

Template Parameters:

MatType Type of matrix that is being used (sparse or dense).

Definition at line 44 of file decision_stump.hpp.

Constructor & Destructor Documentation

template<typename MatType = arma::mat> mlpack::decision_stump::DecisionStump< MatType >::DecisionStump (const MatType &data, const arma::Row< size_t > &labels, const size_tclasses, size_tinpBucketSize)

Constructor. Train on the provided data. Generate a decision stump from data.

Parameters:

data Input, training data.
labels Labels of training data.
classes Number of distinct classes in labels.
inpBucketSize Minimum size of bucket when splitting.

template<typename MatType = arma::mat> mlpack::decision_stump::DecisionStump< MatType >::DecisionStump (const DecisionStump<> &ds)

Member Function Documentation

template<typename MatType = arma::mat> const arma::Col<size_t> mlpack::decision_stump::DecisionStump< MatType >::BinLabels () const [inline]

Access the labels for each split bin.

Definition at line 100 of file decision_stump.hpp.

References mlpack::decision_stump::DecisionStump< MatType >::binLabels.

template<typename MatType = arma::mat> arma::Col<size_t>& mlpack::decision_stump::DecisionStump< MatType >::BinLabels () [inline]

Modify the labels for each split bin (be careful!).

Definition at line 102 of file decision_stump.hpp.

References mlpack::decision_stump::DecisionStump< MatType >::binLabels.

template<typename MatType = arma::mat> template<typename AttType , typename LabelType > double mlpack::decision_stump::DecisionStump< MatType >::CalculateEntropy (arma::subview_row< LabelType >labels) [private]

Calculate the entropy of the given attribute.

Parameters:

attribute The attribute of which we calculate the entropy.
labels Corresponding labels of the attribute.

template<typename MatType = arma::mat> void mlpack::decision_stump::DecisionStump< MatType >::Classify (const MatType &test, arma::Row< size_t > &predictedLabels)

Classification function. After training, classify test, and put the predicted classes in predictedLabels.

Parameters:

test Testing data or data to classify.
predictedLabels Vector to store the predicted classes after classifying test data.

template<typename MatType = arma::mat> template<typename rType > rType mlpack::decision_stump::DecisionStump< MatType >::CountMostFreq (const arma::Row< rType > &subCols) [private]

Count the most frequently occurring element in subCols.

Parameters:

subCols The vector in which to find the most frequently occurring element.

template<typename MatType = arma::mat> template<typename rType > int mlpack::decision_stump::DecisionStump< MatType >::IsDistinct (const arma::Row< rType > &featureRow) [private]

Returns 1 if all the values of featureRow are not same.

Parameters:

featureRow The attribute which is checked for identical values.

template<typename MatType = arma::mat> void mlpack::decision_stump::DecisionStump< MatType >::MergeRanges () [private]

After the 'split' matrix has been set up, merge ranges with identical class labels.

template<typename MatType = arma::mat> double mlpack::decision_stump::DecisionStump< MatType >::SetupSplitAttribute (const arma::rowvec &attribute, const arma::Row< size_t > &labels) [private]

Sets up attribute as if it were splitting on it and finds entropy when splitting on attribute.

Parameters:

attribute A row from the training data, which might be a candidate for the splitting attribute.

template<typename MatType = arma::mat> const arma::vec& mlpack::decision_stump::DecisionStump< MatType >::Split () const [inline]

Access the splitting values.

Definition at line 95 of file decision_stump.hpp.

References mlpack::decision_stump::DecisionStump< MatType >::split.

template<typename MatType = arma::mat> arma::vec& mlpack::decision_stump::DecisionStump< MatType >::Split () [inline]

Modify the splitting values (be careful!).

Definition at line 97 of file decision_stump.hpp.

References mlpack::decision_stump::DecisionStump< MatType >::split.

template<typename MatType = arma::mat> int mlpack::decision_stump::DecisionStump< MatType >::SplitAttribute () const [inline]

ModifyData(MatType& data, const arma::Row<double>& D);. Access the splitting attribute.

Definition at line 90 of file decision_stump.hpp.

template<typename MatType = arma::mat> int& mlpack::decision_stump::DecisionStump< MatType >::SplitAttribute () [inline]

Modify the splitting attribute (be careful!).

Definition at line 92 of file decision_stump.hpp.

References mlpack::decision_stump::DecisionStump< MatType >::splitAttribute.

template<typename MatType = arma::mat> template<typename rType > void mlpack::decision_stump::DecisionStump< MatType >::TrainOnAtt (const arma::rowvec &attribute, const arma::Row< size_t > &labels) [private]

After having decided the attribute on which to split, train on that attribute.

Parameters:

attribute attribute is the attribute decided by the constructor on which we now train the decision stump.

Member Data Documentation

template<typename MatType = arma::mat> arma::Col<size_t> mlpack::decision_stump::DecisionStump< MatType >::binLabels [private]

Stores the labels for each splitting bin.

Definition at line 118 of file decision_stump.hpp.

Referenced by mlpack::decision_stump::DecisionStump< MatType >::BinLabels().

template<typename MatType = arma::mat> size_t mlpack::decision_stump::DecisionStump< MatType >::bucketSize [private]

Size of bucket while determining splitting criterion.

Definition at line 112 of file decision_stump.hpp.

template<typename MatType = arma::mat> size_t mlpack::decision_stump::DecisionStump< MatType >::numClass [private]

Stores the number of classes.

Definition at line 106 of file decision_stump.hpp.

template<typename MatType = arma::mat> arma::vec mlpack::decision_stump::DecisionStump< MatType >::split [private]

Stores the splitting values after training.

Definition at line 115 of file decision_stump.hpp.

Referenced by mlpack::decision_stump::DecisionStump< MatType >::Split().

template<typename MatType = arma::mat> int mlpack::decision_stump::DecisionStump< MatType >::splitAttribute [private]

Stores the value of the attribute on which to split.

Definition at line 109 of file decision_stump.hpp.

Referenced by mlpack::decision_stump::DecisionStump< MatType >::SplitAttribute().

Author

Generated automatically by Doxygen for MLPACK from the source code.