annoy icon indicating copy to clipboard operation
annoy copied to clipboard

change metric in create_split

Open goodloop opened this issue 6 years ago • 6 comments

correct me if I'm wrong.

I think the create_split() method is used to find two mean points p,q. and we will split the nodes later with method to compare the distance difference between p,node[i] and q,node[i] for each node in current hyperplane.

and we will use dot(n, node[i]) for quick calculation. because n=p-q, so dot(n, node[i]) = dot(p, node[i]) - dot(q, node[i])

if we can keep p and q are normalized. dot(n, node[i]) may be better for representing the node i is near p or q in Angular metric.

goodloop avatar May 29 '18 16:05 goodloop

interesting – let me take a look later this week

erikbern avatar May 29 '18 17:05 erikbern

@erikbern any thoughts about this?

goodloop avatar Jun 13 '18 06:06 goodloop

Hey I completely forgot about this one. Just rebased it. Let me see if it works and if it impacts performance.

erikbern avatar Oct 08 '18 02:10 erikbern

sounds great! Pls remind me if any result you get.

goodloop avatar Oct 08 '18 06:10 goodloop

@erikbern any problem about this pr?

goodloop avatar Jan 07 '19 06:01 goodloop

sorry forgot about this one, will take a look

erikbern avatar Jan 07 '19 13:01 erikbern