13 #ifndef MLPACK_METHODS_DECISION_TREE_GINI_GAIN_HPP 14 #define MLPACK_METHODS_DECISION_TREE_GINI_GAIN_HPP 37 template<
typename RowType>
39 const size_t numClasses)
42 if (labels.n_elem == 0)
45 arma::Col<size_t> counts(numClasses);
47 for (
size_t i = 0; i < labels.n_elem; ++i)
51 double impurity = 0.0;
52 for (
size_t i = 0; i < numClasses; ++i)
54 const double f = ((double) counts[i] / (
double) labels.n_elem);
55 impurity += f * (1.0 - f);
68 static double Range(
const size_t numClasses)
73 return 1.0 - (1.0 / double(numClasses));
static double Range(const size_t numClasses)
Return the range of the Gini impurity for the given number of classes.
Linear algebra utility functions, generally performed on matrices or vectors.
Include all of the base components required to write MLPACK methods, and the main MLPACK Doxygen docu...
The Gini gain, a measure of set purity usable as a fitness function (FitnessFunction) for decision tr...
static double Evaluate(const RowType &labels, const size_t numClasses)
Evaluate the Gini impurity on the given set of labels.