class Ai4r::Clusterers::WardLinkageHierarchical
Hierarchical version to store classes as merges occur.
Attributes
cluster_tree[R]
Public Class Methods
new(depth = nil)
click to toggle source
Calls superclass method
Ai4r::Clusterers::SingleLinkage.new
# File lib/ai4r/clusterers/ward_linkage_hierarchical.rb, line 16 def initialize(depth = nil) @cluster_tree = [] @depth = depth @merges_so_far = 0 super() end
Public Instance Methods
build(data_set, number_of_clusters)
click to toggle source
Calls superclass method
Ai4r::Clusterers::WardLinkage#build
# File lib/ai4r/clusterers/ward_linkage_hierarchical.rb, line 23 def build(data_set, number_of_clusters) data_len = data_set.data_items.length @total_merges = data_len - number_of_clusters super @cluster_tree << self.clusters @cluster_tree.reverse! return self end
Protected Instance Methods
merge_clusters(index_a, index_b, index_clusters)
click to toggle source
Calls superclass method
Ai4r::Clusterers::SingleLinkage#merge_clusters
# File lib/ai4r/clusterers/ward_linkage_hierarchical.rb, line 34 def merge_clusters(index_a, index_b, index_clusters) # only store if no or above depth if @depth.nil? or @merges_so_far > @total_merges - @depth # store current clusters stored_distance_matrix = @distance_matrix.dup @cluster_tree << build_clusters_from_index_clusters(index_clusters) @distance_matrix = stored_distance_matrix end @merges_so_far += 1 super end