[mlpack] 51/207: Fix -Wuninitialized and handle NoRecursion correctly.
Barak A. Pearlmutter
barak+git at pearlmutter.net
Thu Mar 23 17:53:40 UTC 2017
This is an automated email from the git hooks/post-receive script.
bap pushed a commit to branch master
in repository mlpack.
commit 41f57e35e1a48f772113b652e5b4d8ca17c285ce
Author: Ryan Curtin <ryan at ratml.org>
Date: Mon Jan 23 17:27:32 2017 -0500
Fix -Wuninitialized and handle NoRecursion correctly.
---
.../methods/decision_tree/decision_tree_impl.hpp | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/src/mlpack/methods/decision_tree/decision_tree_impl.hpp b/src/mlpack/methods/decision_tree/decision_tree_impl.hpp
index 00070d6..78afddc 100644
--- a/src/mlpack/methods/decision_tree/decision_tree_impl.hpp
+++ b/src/mlpack/methods/decision_tree/decision_tree_impl.hpp
@@ -236,7 +236,7 @@ void DecisionTree<FitnessFunction,
size_t bestDim = datasetInfo.Dimensionality(); // This means "no split".
for (size_t i = 0; i < datasetInfo.Dimensionality(); ++i)
{
- double dimGain;
+ double dimGain = -DBL_MAX;
if (datasetInfo.Type(i) == data::Datatype::categorical)
dimGain = CategoricalSplit::SplitIfBetter(bestGain, data.row(i),
datasetInfo.NumMappings(i), labels, numClasses, minimumLeafSize,
@@ -307,8 +307,12 @@ void DecisionTree<FitnessFunction,
}
// Now build the child recursively.
- children.push_back(new DecisionTree(childPoints, childLabels, numClasses,
- minimumLeafSize));
+ if (NoRecursion)
+ children.push_back(new DecisionTree(childPoints, datasetInfo,
+ childLabels, numClasses, childPoints.n_cols));
+ else
+ children.push_back(new DecisionTree(childPoints, datasetInfo,
+ childLabels, numClasses, minimumLeafSize));
}
}
else
@@ -318,7 +322,7 @@ void DecisionTree<FitnessFunction,
CategoricalAuxiliarySplitInfo::operator=(CategoricalAuxiliarySplitInfo());
// Calculate class probabilities because we are a leaf.
- CalculateClassProbabilities(labels);
+ CalculateClassProbabilities(labels, numClasses);
}
}
@@ -406,8 +410,12 @@ void DecisionTree<FitnessFunction,
}
// Now build the child recursively.
- children.push_back(new DecisionTree(childPoints, childLabels, numClasses,
- minimumLeafSize));
+ if (NoRecursion)
+ children.push_back(new DecisionTree(childPoints, childLabels,
+ numClasses, childPoints.n_cols));
+ else
+ children.push_back(new DecisionTree(childPoints, childLabels,
+ numClasses, minimumLeafSize));
}
}
else
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/mlpack.git
More information about the debian-science-commits
mailing list