verne.freenode.net changed the topic of #mlpack to: http://www.mlpack.org/ -- We don't respond instantly... but we will respond. Give it a few minutes. Or hours. -- Channel logs: http://www.mlpack.org/irc/
govg has quit [Ping timeout: 258 seconds]
govg has joined #mlpack
sumedhghaisas has joined #mlpack
sumedhghaisas has quit [Client Quit]
govg has quit [Ping timeout: 250 seconds]
govg has joined #mlpack
marcosirc has quit [Quit: WeeChat 1.4]
govg has quit [Ping timeout: 240 seconds]
mentekid has joined #mlpack
mentekid has quit [Remote host closed the connection]
mentekid has joined #mlpack
govg has joined #mlpack
nilay has joined #mlpack
< mentekid> rcurtin: I think you're right, having k as a constant and solving for k^b makes no sense...
< mentekid> I guess it's a 2-d space (x, k) mapping to y
< rcurtin> yeah, otherwise it would only make sense to fit d * x^c (where d = k^b)
< rcurtin> er, d = a*k^b
< mentekid> this makes a few things simpler
< mentekid> also the implementation more likely to be correct :P
< rcurtin> :)
nilay has quit [Ping timeout: 250 seconds]
nilay has joined #mlpack
nilay has quit [Quit: Page closed]
< mentekid> rcurtin: So, what I've done so far works
< mentekid> or it appears to
< mentekid> I still need to do the integration, binary search and input/output modules, but it's progressing.
< mentekid> should I open a PR so you can see the code? Maybe you'll catch mistakes I haven't seen (like the non-constant k for example)
< rcurtin> sure, that sounds good to me
< rcurtin> I think you have already opened that PR so I will look when I have a chance
< mentekid> Yeah I did a few minutes ago
marcosirc has joined #mlpack
sumedhghaisas has joined #mlpack
govg has quit [Ping timeout: 240 seconds]
sumedhghaisas has quit [Ping timeout: 260 seconds]
marcosirc has quit [Ping timeout: 244 seconds]
mentekid has quit [Ping timeout: 244 seconds]
marcosirc has joined #mlpack
sumedhghaisas has joined #mlpack
< marcosirc> sumedhghaisas: Hi
< sumedhghaisas> marcosirc: Hey marcos...
< marcosirc> Hi sumedh! how are you?
< sumedhghaisas> so sorry for yesterday... I started reviewing your code...
< sumedhghaisas> but I was very tired...
< marcosirc> Ok, no problem. I can imagine.
< sumedhghaisas> Very big PR it is :)
< marcosirc> Yes! Because I have been working many weeks in this
< marcosirc> I couldn't make a PR before, because it was not ready...
< sumedhghaisas> yeah... I know :)
< marcosirc> I have madea big change in the last commits :)
< marcosirc> I think this week is very important
< sumedhghaisas> I got scared ... looking at the number of commits :P
< marcosirc> Haha
< sumedhghaisas> I am still checking the entire thing...
< marcosirc> Because next week I think I should focus on testing.
< sumedhghaisas> the design looks good...
< marcosirc> Ok.
< marcosirc> I have made an important change in the design in the last commits
< sumedhghaisas> I have almost finished with single tree traversal...
< sumedhghaisas> I am looking at the whole changes...
< sumedhghaisas> so commit level won;t matter...
< sumedhghaisas> also tests were failing...
< marcosirc> I am checking the appveyor failure right now
< sumedhghaisas> ohh okay...
< rcurtin> I haven't looked over the commits yet (I will when I have a chance), so maybe this point is already taken care of, but we should be sure that we can use defeatist search with other types of trees too
< marcosirc> rcurtin: Ok. Do you mean pure defeatist search? Removing the backtracking step?
< marcosirc> I can implement a new tree traverser
< marcosirc> But in that case we would be considering the decision boundary as I mentioned in the previous pdf file. Not the splitting hyperplane.
< marcosirc> I think this is not a problem. Just something to take into account.
< rcurtin> marcosirc: hmm, let me take a look at the code and I'll let you know what I think
< rcurtin> I have a long flight tomorrow which should be perfect for reviewing code :)
< marcosirc> OK! :) Great!!
< marcosirc> I think we could implemente a new tree traverser: "DefeatistSearchTraverser" which simply avoids the "rescore" step.
< marcosirc> But for the actual implementation of spill trees, I consider a more complicated traverser
< marcosirc> because it implements "hybrid spill search"
< rcurtin> yeah; I'll take a look and let you know what I think. I'll probably need to review the paper again too :)
< marcosirc> rcurtin: Ok, great!
< marcosirc> I have to add many tests for all the code developed.
< marcosirc> rcurtin: Also, I have been thinking about the implementation of NeighborSearch class.
< marcosirc> I think we should define a enum type
< marcosirc> with three members: NAIVE, SINGLE_MODE and DUAL_MODE
< marcosirc> this way, constructors will be clearer.
< marcosirc> instead of using combinations of boolean values
< marcosirc> in the future we could add a new member
< marcosirc> DEFEATIST_MODE
< rcurtin> sure, I don't have any issue with that
< rcurtin> again reverse compatibility is the only thing to keep in mind
< rcurtin> so I think in some cases, maybe it is better to open the ticket saying it should be done, then when 3.0.0 release comes close, do it then
< rcurtin> it's hard to have a "stable API" when there is always so much to improve :)
mentekid has joined #mlpack
< marcosirc> Ok, yeah I agree. I was thinking about reverse compatibility too..
< marcosirc> Ok, I will open a new ticket about this.
< marcosirc> Also, I have been thinking about tree's implementation (if you are busy now we can talk in another moment :) ).
< marcosirc> I think we should have a general class for each tree type, and an internal class which represents the Node class.
< marcosirc> So we can hold the tree's specific information in the main class, like the value of some parameters, etc.
< marcosirc> Also, for BinarySpaceTrees, we could hold the information of oldFromNewReferences in that class.
< rcurtin> I've thought about that at length; but it doesn't make it easy to use a subtree
< marcosirc> Ok, yes, I understand. I am not sure it will be a good option, but with the current approach we have some disadvantages..
< marcosirc> Given a tree, we can't have any information about "how it was built".
< marcosirc> I mean, the parameters, like: leafSize, tau (overlapping size), etc.
< rcurtin> that's true; but if the user builds the tree themselves, then they already know the parameters
< rcurtin> and in many other cases, the class holding the tree might hold those parameters
< rcurtin> I agree it is not necessarily ideal, but I think that we can't encapsulate a tree in its own class, because then "tree.Child(0)" won't return the same type
< rcurtin> unless we have a separate "TreeType" and "NodeType" class, and I'd like to avoid that complexity
< marcosirc> Yeah, I understand. I started thinking about this when working with the neighbor search class, when we want to transmit ownership of a reference tree. Now, we have to make NSModel a friend class of NeighborSearch class, to set the oldFromNewReferences. I was thinking how to avoid this "friendship".
sumedhghaisas has quit [Ping timeout: 250 seconds]
< marcosirc> Yeah, I agree. I was thinking of having 2 separate classes, like you mention.
< marcosirc> TreeType and NodeType. NodeType could be a nested class of TreeType.
< marcosirc> I agree that it could increase the complexity...
< marcosirc> I will continue thinking about this!
< rcurtin> I spent a long time thinking about it over the years, and the conclusion I came to is that the TreeType (with no NodeType) design was the most flexible and straightforward
sumedhghaisas has joined #mlpack
< marcosirc> lozhnikov: Hi, how are you? I am adding a new tree trait: "HasDuplicatedPoints" to determine if a given point can be included in more than one node.
< marcosirc> I can see that RectangleTree's traits include: HasOverlappingChildren = true
< marcosirc> Does it only means that the nodes's bounding box can overlap, or it also means that nodes can share points?
< lozhnikov> marcosirc: Hi, no the R tree has not got duplicated points
< marcosirc> Ok, thanks!
< marcosirc> I mean every rectangle tree flavour.
< lozhnikov> yes, I understand. The original implementation of the R+ tree allows that behavior. But the algorithm that I've implemented avoids duplicated points.
< marcosirc> lozhnikov: Ok.
nilay has joined #mlpack
sumedhghaisas has quit [Ping timeout: 258 seconds]
marcosirc has quit [Quit: WeeChat 1.4]
mentekid has quit [Ping timeout: 260 seconds]
govg has joined #mlpack