Skip to content

Commit

Permalink
add euclidean and manhattan similarity
Browse files Browse the repository at this point in the history
  • Loading branch information
GreatYYX committed Jun 3, 2020
1 parent 1885a45 commit 4490f7a
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 2 deletions.
5 changes: 3 additions & 2 deletions rltk/similarity/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# distance
from rltk.similarity.distance import euclidean_distance, manhattan_distance
# common distance
from rltk.similarity.distance import euclidean_distance, euclidean_similarity, \
manhattan_distance, manhattan_similarity

# normal
from rltk.similarity.equal import string_equal, number_equal
Expand Down
14 changes: 14 additions & 0 deletions rltk/similarity/distance.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,13 @@ def euclidean_distance(vec1, vec2, weights=None):
return euclidean(vec1, vec2, weights)


def euclidean_similarity(vec1, vec2, weights=None):
"""
Computed as 1 / (1 + euclidean_distance)
"""
return 1.0 / (1.0 + float(euclidean_distance(vec1, vec2, weights)))


def manhattan_distance(vec1, vec2, weights=None):
"""
Manhattan distance.
Expand All @@ -47,3 +54,10 @@ def manhattan_distance(vec1, vec2, weights=None):
raise ValueError('vec1 and vec2 should have same length')

return cityblock(vec1, vec2, weights)


def manhattan_similarity(vec1, vec2, weights=None):
"""
Computed as 1 / (1 + manhattan_distance)
"""
return 1.0 / (1.0 + manhattan_distance(vec1, vec2, weights))

0 comments on commit 4490f7a

Please sign in to comment.