naywhayare 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/
andrewmw94 has left #mlpack []
sumedh_ has quit [Ping timeout: 260 seconds]
koderok has joined #mlpack
sumedh_ has joined #mlpack
koderok has quit [Ping timeout: 240 seconds]
udit_s has joined #mlpack
Anand has joined #mlpack
Anand has quit [Ping timeout: 240 seconds]
naywhayare has quit [Ping timeout: 240 seconds]
naywhayare has joined #mlpack
Anand has joined #mlpack
marcus_zoq has joined #mlpack
sumedh_ has quit [Ping timeout: 276 seconds]
Anand has quit [Ping timeout: 240 seconds]
< jenkins-mlpack>
Starting build #1935 for job mlpack - svn checkin test (previous build: SUCCESS)
< jenkins-mlpack>
andrewmw94: Rectangle Tree Traversal implementation.
sumedh__ has joined #mlpack
sumedh_ has quit [Ping timeout: 252 seconds]
Anand has quit [Ping timeout: 240 seconds]
sumedh__ has quit [Ping timeout: 276 seconds]
udit_s has quit [Quit: Leaving]
udit_s has joined #mlpack
udit_s has quit [Quit: Leaving]
govg has joined #mlpack
andrewmw94 has joined #mlpack
govg has quit [Quit: leaving]
oldbeardo has joined #mlpack
< oldbeardo>
naywhayare: I just sent you the latest version of the code, please review it
Anand_ has joined #mlpack
< naywhayare>
oldbeardo: ok, I will get to it probably tomorrow
< oldbeardo>
okay
sumedh__ has joined #mlpack
< oldbeardo>
naywhayare: I have a question
< oldbeardo>
if you look at point 2 of Lemma 1
< oldbeardo>
the ExtractSVD() function returns the decomposition of A * V_hat * V_hat'
sumedh__ has quit [Ping timeout: 252 seconds]
< oldbeardo>
how do we get the decomposition of the original matrix?
govg has joined #mlpack
< naywhayare>
oldbeardo: what do you mean, for testing?
< oldbeardo>
no, the cosine tree does not construct A_hat = A * V_hat * V_hat'
< oldbeardo>
I mean the obtained basis is not successful in reconstructing the original matrix
< oldbeardo>
the Monte Carlo estimation algorithm especially doesn't make sense to me
< naywhayare>
I am going to have to wait to look into this
< naywhayare>
but I will see what I can find out later
< Anand_>
Marcus : I have added the tests. Have a look. It seems like we are done with class conversions for all metrics!
< marcus_zoq>
Anand: Okay, great ... do you mind if I look at it tomorrow?
< Anand_>
No. It will be fine!
Anand_ has quit [Ping timeout: 240 seconds]
< andrewmw94>
naywhayare: what is the secondBound in neighbor_search/neighbor_search_stat.hpp
oldbeardo has quit [Quit: Page closed]
govg has quit [Quit: leaving]
govg has joined #mlpack
govg has quit [Changing host]
govg has joined #mlpack
< naywhayare>
andrewmw94: basically, that's an undocumented nightmare. I'm sorry you've come across it
< andrewmw94>
ahh.
< naywhayare>
let me see what that bound actually is
< andrewmw94>
do I want to know more?
< naywhayare>
well, probably? if you take a look at the tree-independent dual-tree algorithms paper, there's this incredibly complex B(N_q) function defined in the section on nearest neighbor search
< naywhayare>
so the firstBound and secondBound statistics are cached information that allows fast calculation of B(N_q)
< naywhayare>
this is all used in NeighborSearchRules::CalculateBound()
< naywhayare>
however, it is possible that the comments at the top of the function are out of date. I have not yet gotten to my NeighborSearchRules overhaul because it's still very experimental code
< andrewmw94>
right
< naywhayare>
according to my comments, and I think this is actually correct, FirstBound is a bound on "the worst candidate distance of any descendants of this node."
< andrewmw94>
I got that part. I couldn't understand the second comment though
< naywhayare>
SecondBound is a bound on "the worst distance of any descendants of this node assembled using the best descendant candidate distance modified using the furthest descendant distance."
< naywhayare>
yeah
< naywhayare>
I just wrote that and I am not sure I understand it completely either
< naywhayare>
the paper assembles B(N_q) from two functions B_1(N_q) and B_2(N_q)
< naywhayare>
the second bound is based on the triangle inequality
< naywhayare>
so suppose there's some descendant point with nearest neighbor candidate distance x
< naywhayare>
and call that descendant point p_i. then, thanks to the triangle inequality, it must be true that every other descendant point p_j has a nearest neighbor with distance less than or equal to (x + d(p_i, p_j))
< naywhayare>
and d(p_i, p_j) is bounded by 2 * furthestDescendantDistance
< naywhayare>
maybe that makes more sense?
< andrewmw94>
ahh, now it does
< naywhayare>
ok. I am going to have to find some way to write better comments, because that comment on SecondBound is definitely WTF
< andrewmw94>
"assembled" is a bit weird there, but I'm not sure what I would call it
govg has quit [Quit: leaving]
govg has joined #mlpack
govg has quit [Changing host]
govg has joined #mlpack
govg has quit [Quit: leaving]
govg has joined #mlpack
govg has quit [Client Quit]
govg has joined #mlpack
govg has quit [Changing host]
govg has joined #mlpack
andrewmw94 has quit [Remote host closed the connection]