class AgglomerativeClustering::Linkage::Center
Public Instance Methods
calculate_distance(cluster1, cluster2)
click to toggle source
# File lib/agglomerative_clustering/linkage/center.rb, line 5 def calculate_distance(cluster1, cluster2) point1, point2 = center_point(cluster1), center_point(cluster2) euclidean_distance(point1, point2) end
center_point(cluster)
click to toggle source
# File lib/agglomerative_clustering/linkage/center.rb, line 10 def center_point cluster return cluster.points.first if cluster.points.size == 1 cluster.points.first.zip(*cluster.points[1..cluster.points.size-1]).map { |a| a.inject(:+).to_f/a.size.to_f } end