[mlpack] #251

Ryan Curtin gth671b at mail.gatech.edu
Sun Jan 12 10:27:16 EST 2014


On Sat, Jan 11, 2014 at 11:33:40PM -0800, Rafi Kamal wrote:
> Hi
> I'm Rafi from Bangladesh. I'm an undergraduate student from Bangladesh
> University of Engineering & Technology. Like Abhinav, I've recently
> started looking at the ML pack codebase. I might participate in
> upcoming GSoC 2014, and as I've interest in machine learning, I've
> chosen MLPack. I was following your discussion and I think it's a good
> time to join :)
> 
> I've looked into the BSP tree codes. To answer Abhinav's query: I
> think what is needed here is to pull out the splitNode function from
> BinarySpaceTree class and wrap it in a separate class (say,
> BSPNodeSplitterMaxWIdth). Then this BSPNodeSplitterMaxWIdth class will
> be passed as a template argument to the BinarySpaceTree class. 
> 
> The reason for why it is needed: if you look at the splitNode class,
> you can see that the node is being split in it's maximum width
> position. According to ticket #235, there might be other ways to split
> the node. So, we can create another class which split the node based
> on another criteria; say for example, BSPNodeSplitterMid, which splits
> the node in the middle point. And then we can pass this class as a
> template argument to BinarySpaceTree class. So

> BinarySpaceTree<SomeBound, SomeStateType, SomeMatType, BSPNodeSplitterMaxWIdth> tree; // nodes of this class will be split in maximum width position
> 
> BinarySpaceTree<SomeBound, SomeStateType, SomeMatType, BSPNodeSplitterMid> tree; // nodes of this class will be split in the middle position
> 
> 
> That's what I've understood by looking at the source and the ticket,
> Ryan can correct me if I'm wrong.

Hello Rafi and Abhinav,

This is basically correct although I do want to clarify the terminology
a little bit: currently, the BinarySpaceTree class splits points into a
left and right node by finding the mean and splitting on that (this
could probably be refactored into a 'MeanSplit' class).  However in some
cases it may be useful to split on other criteria, such as a median
split.  I think this is the same thing you were saying, just using
different words. :)

Thanks,

Ryan

-- 
Ryan Curtin    | "Get off my lawn!"
ryan at ratml.org |   - Kowalski


More information about the mlpack mailing list