diff --git a/src/mlpack/methods/decision_tree/decision_tree_main.cpp b/src/mlpack/methods/decision_tree/decision_tree_main.cpp index 0e4be96c0c..f8eee66c4d 100644 --- a/src/mlpack/methods/decision_tree/decision_tree_main.cpp +++ b/src/mlpack/methods/decision_tree/decision_tree_main.cpp @@ -180,13 +180,22 @@ static void mlpackMain() { arma::Row weights = std::move(CLI::GetParam>("weights")); - model->tree = DecisionTree<>(trainingSet, model->info, labels, - numClasses, weights, minLeafSize, minimumGainSplit); + if (CLI::HasParam("print_training_error")) + model->tree = DecisionTree<>(trainingSet, model->info, labels, + numClasses, std::move(weights), minLeafSize, minimumGainSplit); + else + model->tree = DecisionTree<>(std::move(trainingSet), model->info, + std::move(labels), numClasses, std::move(weights), minLeafSize, + minimumGainSplit); } else { - model->tree = DecisionTree<>(trainingSet, model->info, labels, - numClasses, minLeafSize, minimumGainSplit); + if (CLI::HasParam("print_training_error")) + model->tree = DecisionTree<>(trainingSet, model->info, labels, + numClasses, minLeafSize, minimumGainSplit); + else + model->tree = DecisionTree<>(std::move(trainingSet), model->info, + std::move(labels), numClasses, minLeafSize, minimumGainSplit); } // Do we need to print training error?