[mlpack] #251

Abhinav Pathak abhi.pat93 at gmail.com
Fri Jan 17 01:37:13 EST 2014


Hey,
sorry for the delay, now i would be continuing with the work.

So basically i'm going to shift the split node function from the
BinarySpaceTree class and put it in a new function. I wanted to ask that
should i create a new class which would for now split the data as it is
doing now and later we can add more methods for splitting the data in this
new class.
But can i let the splitnode be there in BinarySpaceTree class and inside it
remove the splitting code and rather instantiate the object of the new
class and use the splitting method? Is it the correct approach for it?

Regards,
Abhinav.





On Sun, Jan 12, 2014 at 11:00 PM, Abhinav Pathak <abhi.pat93 at gmail.com>wrote:

> Yeah, thanks for clarifying :)
> I'll ask more details if i would need.
>
> Regards,
> Abhinav
>
>
> On Sun, Jan 12, 2014 at 10:35 PM, Rafi Kamal <rafikamal93 at yahoo.com>wrote:
>
>> Thanks Ryan for clarifying :) I misunderstood the current method of
>> splitting the nodes.
>>
>> Regards
>> Rafi Kamal
>>
>>
>>   On Sunday, January 12, 2014 9:27 PM, Ryan Curtin <
>> gth671b at mail.gatech.edu> wrote:
>>  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
>>
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.cc.gatech.edu/pipermail/mlpack/attachments/20140117/5b4d8741/attachment-0003.html>


More information about the mlpack mailing list