Skip to content

Commit 9d4278d

Browse files
author
Sergio Fierens
committed
Fixed cosine distance. Cosine similarity was implemented, rather than distance.
1 parent 6f0d306 commit 9d4278d

File tree

2 files changed

+4
-5
lines changed

2 files changed

+4
-5
lines changed

lib/ai4r/data/proximity.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ def self.cosine_distance(a,b)
112112
end
113113

114114
magnitude = Math.sqrt(norm_a) * Math.sqrt(norm_b)
115-
dot_product / magnitude
115+
return 1 - (dot_product / magnitude)
116116
end
117117
end
118118

test/data/proximity_test.rb

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ module Ai4r
1414
module Data
1515
class ProximityTest < Test::Unit::TestCase
1616

17-
@@delta = 0.0001
17+
@@delta = 0.0000001
1818
@@data1 = [rand*10, rand*10, rand*-10]
1919
@@data2 = [rand*10, rand*-10, rand*10]
2020

@@ -77,11 +77,10 @@ def test_simple_matching_distance
7777
end
7878

7979
def test_cosine_distance
80-
assert_equal 0, Proximity.cosine_distance(@@data1, @@data1)
80+
assert_in_delta 0.0, Proximity.cosine_distance(@@data1, @@data1), @@delta
8181
assert_equal Proximity.cosine_distance(@@data1, @@data2),
8282
Proximity.cosine_distance(@@data2, @@data1)
83-
assert 1 == Proximity.cosine_distance(@@data1, @@data1)
84-
assert_equal 1, Proximity.cosine_distance([3,0], [4,0])
83+
assert_in_delta 0.0, Proximity.cosine_distance(@@data1, @@data1), @@delta
8584
end
8685
end
8786
end

0 commit comments

Comments
 (0)