Class: Ai4r::Clusterers::AverageLinkage
- Inherits:
-
SingleLinkage
- Object
- Clusterer
- SingleLinkage
- Ai4r::Clusterers::AverageLinkage
- Includes:
- ClusterTree
- Defined in:
- lib/ai4r/clusterers/average_linkage.rb
Overview
Implementation of a Hierarchical clusterer with group average linkage, AKA unweighted pair group method average or UPGMA (Everitt et al., 2001 ; Jain and Dubes, 1988 ; Sokal and Michener, 1958). Hierarchical clusterer create one cluster per element, and then progressively merge clusters, until the required number of clusters is reached. With average linkage, the distance between a clusters cx and cluster (ci U cj) the the average distance between cx and ci, and cx and cj.
D(cx, (ci U cj) = (D(cx, ci) + D(cx, cj)) / 2
Instance Attribute Summary
Attributes included from ClusterTree
Attributes inherited from SingleLinkage
#clusters, #data_set, #number_of_clusters
Instance Method Summary collapse
-
#build(data_set, number_of_clusters = 1, **options) ⇒ Object
Build a new clusterer, using data examples found in data_set.
-
#eval(_data_item) ⇒ Object
This algorithms does not allow classification of new data items once it has been built.
-
#supports_eval? ⇒ Object
Average linkage builds a dendrogram and cannot classify new data once built.
Methods included from ClusterTree
Methods inherited from SingleLinkage
#draw_map, #initialize, #silhouette
Methods included from Data::Parameterizable
#get_parameters, included, #set_parameters
Instance Method Details
#build(data_set, number_of_clusters = 1, **options) ⇒ Object
Build a new clusterer, using data examples found in data_set. Items will be clustered in “number_of_clusters” different clusters.
45 46 47 |
# File 'lib/ai4r/clusterers/average_linkage.rb', line 45 def build(data_set, number_of_clusters = 1, **) super end |
#eval(_data_item) ⇒ Object
This algorithms does not allow classification of new data items once it has been built. Rebuild the cluster including you data element.
53 54 55 |
# File 'lib/ai4r/clusterers/average_linkage.rb', line 53 def eval(_data_item) raise NotImplementedError, 'Eval of new data is not supported by this algorithm.' end |
#supports_eval? ⇒ Object
Average linkage builds a dendrogram and cannot classify new data once built.
60 61 62 |
# File 'lib/ai4r/clusterers/average_linkage.rb', line 60 def supports_eval? false end |