Module: Carmenere::KMeans

Defined in:
lib/carmenere/kmeans/cluster.rb,
lib/carmenere/kmeans/algorithm.rb

Defined Under Namespace

Classes: Algorithm, Cluster

Class Method Summary collapse

Class Method Details

.centroids_eql?(old_centroids, new_centroids) ⇒ Boolean

Returns:

  • (Boolean)


5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/carmenere/kmeans/algorithm.rb', line 5

def self.centroids_eql? old_centroids, new_centroids
  [old_centroids, new_centroids].each do |i|
    unless i.is_a?(Set) and i.all?{ |j| j.is_a?(Carmenere::Node) }
      raise TypeError.new("#{i.class} is not Set of Node")
    end
  end
  old_centroids.count == new_centroids.count and old_centroids.all? do |i|
    new_centroids.any? do |j|
      i.attr_eql? j
    end
  end
end