1 #ifndef AVERAGELINKAGE_H
2 #define AVERAGELINKAGE_H
4 #include "../base/dissimilaritymeasure.h"
5 #include "../base/clusterdissimilaritymeasure.h"
32 virtual double dissimilarity(std::vector<T*>
const& c1, std::vector<T*>
const& c2);
68 std::vector<T*>
const& c2)
71 for (
unsigned int i=0; i<c1.size(); i++)
72 for (
unsigned int j=0; j<c2.size(); j++)
74 sum+=this->measure->dissimilarity(*c1[i], *c2[j]);
75 sum+=this->measure->dissimilarity(*c2[j], *c1[i]);
77 return sum/(c1.size()*c2.size());
Abstract base class for cluster dissimilarity measurement.
DissimilarityMeasure< T > * measure
virtual double dissimilarity(std::vector< T * > const &c1, std::vector< T * > const &c2)
Computes the average linkage dissimilarity between the two given clusters.
virtual AverageLinkage< T > * clone() const
AverageLinkage< T > & operator=(const AverageLinkage< T > &)
AverageLinkage(DissimilarityMeasure< T > const &measure)
virtual ~AverageLinkage()
Abstract base class for dissimilarity measurement.