class Ai4r::Clusterers::MedianLinkage
Implementation of an Agglomerative Hierarchical clusterer with median linkage algorithm, aka weighted pair group method centroid or WPGMC (Everitt et al., 2001 ; Gower, 1967 ; Jain and Dubes, 1988 ). Hierarchical clusterer create one cluster per element, and then progressively merge clusters, until the required number of clusters is reached. Similar to centroid linkages, but using fix weight:
D(cx, (ci U cj)) = (1/2)*D(cx, ci) + (1/2)*D(cx, cj) - (1/4)*D(ci, cj)
Public Instance Methods
build(data_set, number_of_clusters)
click to toggle source
Build a new clusterer, using data examples found in data_set. Items will be clustered in “number_of_clusters” different clusters.
Calls superclass method
# File lib/ai4r/clusterers/median_linkage.rb, line 38 def build(data_set, number_of_clusters) super end
eval(data_item)
click to toggle source
This algorithms does not allow classification of new data items once it has been built. Rebuild the cluster including you data element.
# File lib/ai4r/clusterers/median_linkage.rb, line 44 def eval(data_item) Raise "Eval of new data is not supported by this algorithm." end
Protected Instance Methods
linkage_distance(cx, ci, cj)
click to toggle source
return distance between cluster cx and cluster (ci U cj), using median linkage
# File lib/ai4r/clusterers/median_linkage.rb, line 52 def linkage_distance(cx, ci, cj) ( 0.5 * read_distance_matrix(cx, ci) + 0.5 * read_distance_matrix(cx, cj) - 0.25 * read_distance_matrix(ci, cj)) end