Here is the code…
template<
typename FitnessFunction,
typename DimensionSelectionType,
template<typename> class NumericSplitType,
template<typename> class CategoricalSplitType,
typename ElemType
>
template<typename MatType>
double RandomForest<
FitnessFunction,
DimensionSelectionType,
NumericSplitType,
CategoricalSplitType,
ElemType
>::Train(const MatType& dataset,
const data::DatasetInfo& datasetInfo,
const arma::Row<size_t>& labels,
const size_t numClasses,
const size_t numTrees,
const size_t minimumLeafSize,
const double minimumGainSplit,
const size_t maximumDepth,
DimensionSelectionType dimensionSelector)
{
// Pass off to Train().
arma::rowvec weights; // Ignored by Train().
return Train<false, true>(dataset, datasetInfo, labels, numClasses, weights,
numTrees, minimumLeafSize, minimumGainSplit, maximumDepth,
dimensionSelector);
}
Can someone tell me how full template
is working?