Sha256: eb5e724cc9ee73aab1a67db16e07b31c5cfacaeb24714b2efa6a4e59bfbd6825
Contents?: true
Size: 841 Bytes
Versions: 17
Compression:
Stored size: 841 Bytes
Contents
module DbClustering module DistanceMetrics class EuclideanDistance include Math def initialize(min_dimensions: 1) @min_dimensions = min_dimensions end def distance(vector1, vector2) vector1_array = vector1.array_for_comparison(vector2) vector2_array = vector2.array_for_comparison(vector1) if vector1_array.count != vector2_array.count raise "Vectors with different sizes cannot be compared" end if vector1_array.count < @min_dimensions return Float::INFINITY end # see here for calculation formula: http://en.wikipedia.org/wiki/Euclidean_distance sum = 0 vector1_array.count.times do |i| sum += (vector1_array[i] - vector2_array[i]) ** 2 end sqrt sum end end end end
Version data entries
17 entries across 17 versions & 1 rubygems