[mlpack-git] [mlpack/mlpack] Spill trees (#747)

Ryan Curtin notifications at github.com
Sat Aug 13 01:00:21 EDT 2016


> So, I think it only make sense to create a new DefeatistTreeTraverser if we want to do defeatist search with other tree types, different to SpillTrees. Would you agree?

Yes, I agree, I think that is the right approach.  We can do that in a different PR, like you suggested.  I think single-tree defeatist search is fine, unless you want to try and implement dual-tree defeatist search.  I don't think anyone has derived a way to do that, though I think it wouldn't be too difficult.

> In that case I don't think we need to implement a new method: GetNearestChild() for each Tree Type. We could continue considering the Score() method, evaluating each child and choosing the one with lowest score.

You are right that that would work, but in many cases (like vantage-point trees and random projection trees) we will be able to calculate which node a query point is closer to in less time.  I think it is possible to make the calculation more quickly for kd-trees too but I have not thought about that too in-depth.  Another (ugly) option is to use template metaprogramming along with TreeTraits in order to mark when a tree has a `GetNearestChild()` method available and use it, otherwise use the approach of scoring all the children.  But I am fine with adding another method to the `TreeType` API since I think that will be useful for more than just defeatist search in the future.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/mlpack/mlpack/pull/747#issuecomment-239602549
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.cc.gatech.edu/pipermail/mlpack-git/attachments/20160812/6fdc7926/attachment.html>


More information about the mlpack-git mailing list