[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