|
MLPACK
1.0.11
|
This class implements a decision stump. More...
Public Member Functions | |
| DecisionStump (const MatType &data, const arma::Row< size_t > &labels, const size_t classes, size_t inpBucketSize) | |
| Constructor. More... | |
| DecisionStump (const DecisionStump<> &other, const MatType &data, const arma::rowvec &weights, const arma::Row< size_t > &labels) | |
| Alternate constructor which copies parameters bucketSize and numClass from an already initiated decision stump, other. More... | |
| const arma::Col< size_t > | BinLabels () const |
| Access the labels for each split bin. More... | |
| arma::Col< size_t > & | BinLabels () |
| Modify the labels for each split bin (be careful!). More... | |
| void | Classify (const MatType &test, arma::Row< size_t > &predictedLabels) |
| Classification function. More... | |
| const arma::vec & | Split () const |
| Access the splitting values. More... | |
| arma::vec & | Split () |
| Modify the splitting values (be careful!). More... | |
| int | SplitAttribute () const |
| Access the splitting attribute. More... | |
| int & | SplitAttribute () |
| Modify the splitting attribute (be careful!). More... | |
Private Member Functions | |
| template<typename LabelType , bool isWeight> | |
| double | CalculateEntropy (arma::subview_row< LabelType > labels, int begin, const arma::rowvec &tempD) |
| Calculate the entropy of the given attribute. More... | |
| template<typename rType > | |
| rType | CountMostFreq (const arma::Row< rType > &subCols) |
| Count the most frequently occurring element in subCols. More... | |
| template<typename rType > | |
| int | IsDistinct (const arma::Row< rType > &featureRow) |
| Returns 1 if all the values of featureRow are not same. More... | |
| void | MergeRanges () |
| After the "split" matrix has been set up, merge ranges with identical class labels. More... | |
| template<bool isWeight> | |
| double | SetupSplitAttribute (const arma::rowvec &attribute, const arma::Row< size_t > &labels, const arma::rowvec &weightD) |
| Sets up attribute as if it were splitting on it and finds entropy when splitting on attribute. More... | |
| template<bool isWeight> | |
| void | Train (const MatType &data, const arma::Row< size_t > &labels, const arma::rowvec &weightD) |
| Train the decision stump on the given data and labels. More... | |
| 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. More... | |
Private Attributes | |
| arma::Col< size_t > | binLabels |
| Stores the labels for each splitting bin. More... | |
| size_t | bucketSize |
| Size of bucket while determining splitting criterion. More... | |
| size_t | numClass |
| Stores the number of classes. More... | |
| arma::vec | split |
| Stores the splitting values after training. More... | |
| int | splitAttribute |
| Stores the value of the attribute on which to split. More... | |
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.
| MatType | Type of matrix that is being used (sparse or dense). |
Definition at line 44 of file decision_stump.hpp.
| mlpack::decision_stump::DecisionStump< MatType >::DecisionStump | ( | const MatType & | data, |
| const arma::Row< size_t > & | labels, | ||
| const size_t | classes, | ||
| size_t | inpBucketSize | ||
| ) |
Constructor.
Train on the provided data. Generate a decision stump from data.
| data | Input, training data. |
| labels | Labels of training data. |
| classes | Number of distinct classes in labels. |
| inpBucketSize | Minimum size of bucket when splitting. |
| mlpack::decision_stump::DecisionStump< MatType >::DecisionStump | ( | const DecisionStump<> & | other, |
| const MatType & | data, | ||
| const arma::rowvec & | weights, | ||
| const arma::Row< size_t > & | labels | ||
| ) |
Alternate constructor which copies parameters bucketSize and numClass from an already initiated decision stump, other.
It appropriately sets the weight vector.
| other | The other initiated Decision Stump object from which we copy the values. |
| data | The data on which to train this object on. |
| D | Weight vector to use while training. For boosting purposes. |
| labels | The labels of data. |
| isWeight | Whether we need to run a weighted Decision Stump. |
|
inline |
Access the labels for each split bin.
Definition at line 99 of file decision_stump.hpp.
References mlpack::decision_stump::DecisionStump< MatType >::binLabels.
|
inline |
Modify the labels for each split bin (be careful!).
Definition at line 101 of file decision_stump.hpp.
References mlpack::decision_stump::DecisionStump< MatType >::binLabels.
|
private |
Calculate the entropy of the given attribute.
| attribute | The attribute of which we calculate the entropy. |
| labels | Corresponding labels of the attribute. |
| isWeight | Whether we need to run a weighted Decision Stump. |
| 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.
| test | Testing data or data to classify. |
| predictedLabels | Vector to store the predicted classes after classifying test data. |
|
private |
Count the most frequently occurring element in subCols.
| subCols | The vector in which to find the most frequently occurring element. |
|
private |
Returns 1 if all the values of featureRow are not same.
| featureRow | The attribute which is checked for identical values. |
|
private |
After the "split" matrix has been set up, merge ranges with identical class labels.
|
private |
Sets up attribute as if it were splitting on it and finds entropy when splitting on attribute.
| attribute | A row from the training data, which might be a candidate for the splitting attribute. |
| isWeight | Whether we need to run a weighted Decision Stump. |
|
inline |
Access the splitting values.
Definition at line 94 of file decision_stump.hpp.
References mlpack::decision_stump::DecisionStump< MatType >::split.
|
inline |
Modify the splitting values (be careful!).
Definition at line 96 of file decision_stump.hpp.
References mlpack::decision_stump::DecisionStump< MatType >::split.
|
inline |
Access the splitting attribute.
Definition at line 89 of file decision_stump.hpp.
References mlpack::decision_stump::DecisionStump< MatType >::splitAttribute.
|
inline |
Modify the splitting attribute (be careful!).
Definition at line 91 of file decision_stump.hpp.
References mlpack::decision_stump::DecisionStump< MatType >::splitAttribute.
|
private |
Train the decision stump on the given data and labels.
| data | Dataset to train on. |
| labels | Labels for dataset. |
| isWeight | Whether we need to run a weighted Decision Stump. |
|
private |
After having decided the attribute on which to split, train on that attribute.
| attribute | attribute is the attribute decided by the constructor on which we now train the decision stump. |
|
private |
Stores the labels for each splitting bin.
Definition at line 117 of file decision_stump.hpp.
Referenced by mlpack::decision_stump::DecisionStump< MatType >::BinLabels().
|
private |
Size of bucket while determining splitting criterion.
Definition at line 111 of file decision_stump.hpp.
|
private |
Stores the number of classes.
Definition at line 105 of file decision_stump.hpp.
|
private |
Stores the splitting values after training.
Definition at line 114 of file decision_stump.hpp.
Referenced by mlpack::decision_stump::DecisionStump< MatType >::Split().
|
private |
Stores the value of the attribute on which to split.
Definition at line 108 of file decision_stump.hpp.
Referenced by mlpack::decision_stump::DecisionStump< MatType >::SplitAttribute().
1.8.6