[mlpack-git] master: Optimize GetNearestChild for Spill Trees. (657e0eb)
gitdub at mlpack.org
gitdub at mlpack.org
Sat Aug 20 14:56:07 EDT 2016
Repository : https://github.com/mlpack/mlpack
On branch : master
Link : https://github.com/mlpack/mlpack/compare/3274b05fcc545c3b36f783316fea2e22f79c3d03...1c77230c7d3b9c45fb102cd3c632d9c7248e085e
>---------------------------------------------------------------
commit 657e0eb8fb46b3dc756ed7609013f878c2ecb2ce
Author: MarcosPividori <marcos.pividori at gmail.com>
Date: Fri Aug 19 12:57:34 2016 -0300
Optimize GetNearestChild for Spill Trees.
>---------------------------------------------------------------
657e0eb8fb46b3dc756ed7609013f878c2ecb2ce
src/mlpack/core/tree/spill_tree/spill_tree_impl.hpp | 21 +++++++++++++++++----
1 file changed, 17 insertions(+), 4 deletions(-)
diff --git a/src/mlpack/core/tree/spill_tree/spill_tree_impl.hpp b/src/mlpack/core/tree/spill_tree/spill_tree_impl.hpp
index a5774af..815fb23 100644
--- a/src/mlpack/core/tree/spill_tree/spill_tree_impl.hpp
+++ b/src/mlpack/core/tree/spill_tree/spill_tree_impl.hpp
@@ -325,9 +325,21 @@ SpillTree<MetricType, StatisticType, MatType, HyperplaneType, SplitType>::
{
if (IsLeaf())
return *this;
- if (left && (!right || left->MinDistance(point) <= right->MinDistance(point)))
- return *left;
- return *right;
+
+ if (overlappingNode)
+ {
+ if (left && (!right || hyperplane.Left(point)))
+ return *left;
+ else
+ return *right;
+ }
+ else
+ {
+ if (left && (!right ||
+ left->MinDistance(point) <= right->MinDistance(point)))
+ return *left;
+ return *right;
+ }
}
/**
@@ -349,8 +361,9 @@ SpillTree<MetricType, StatisticType, MatType, HyperplaneType, SplitType>::
{
if (IsLeaf())
return *this;
+
if (left && (!right || left->MaxDistance(point) > right->MaxDistance(point)))
- return *left;
+ return *left;
return *right;
}
More information about the mlpack-git
mailing list