---
name: "mlpack_decision_stump_DecisionStump"
section: "3"
platform: "linux"
package: "mlpack-doc"
version: "1.0.10-1"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/mlpack_decision_stump_DecisionStump"
---

# mlpack\_decision\_stump\_DecisionStump(3)

This class implements a decision stump.

## NAME

mlpack::decision\_stump::DecisionStump\< MatType \> -

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.
