Class MedianLinkage
- java.lang.Object
-
- elki.clustering.hierarchical.linkage.MedianLinkage
-
- All Implemented Interfaces:
GeometricLinkage,Linkage
@Reference(authors="J. C. Gower", title="A comparison of some methods of cluster analysis", booktitle="Biometrics (1967)", url="https://doi.org/10.2307/2528417", bibkey="doi:10.2307/2528417") @Alias({"wpgmc","WPGMC","weighted-centroid"}) public class MedianLinkage extends java.lang.Object implements GeometricLinkage
Median-linkage — weighted pair group method using centroids (WPGMC).Similar to
WeightedAverageLinkage(WPGMA), the weight of points in this method decreases with the depth of the tree. This yields to difficult to understand semantics of the result, as it does not yield the distance of medians. The method is best defined recursively: \[d_{\text{WPGMC}}(A\cup B,C):=\tfrac{1}{2}d(A,C)+\tfrac{1}{2}d(B,C) -\tfrac{1}{4}d(A,B)\]Reference:
J. C. Gower
A comparison of some methods of cluster analysis
Biometrics (1967): 623-637.- Since:
- 0.6.0
- Author:
- Erich Schubert
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classMedianLinkage.ParClass parameterizer.
-
Field Summary
Fields Modifier and Type Field Description static MedianLinkageSTATICStatic instance of class.
-
Constructor Summary
Constructors Constructor Description MedianLinkage()Deprecated.use the static instanceSTATICinstead.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description doublecombine(int sizex, double dx, int sizey, double dy, int sizej, double dxy)Compute combined linkage for two clusters.doubledistance(double[] x, int sizex, double[] y, int sizey)Distance of two aggregated clusters.double[]merge(double[] x, int sizex, double[] y, int sizey)Merge the aggregated vectors.
-
-
-
Field Detail
-
STATIC
public static final MedianLinkage STATIC
Static instance of class.
-
-
Constructor Detail
-
MedianLinkage
@Deprecated public MedianLinkage()
Deprecated.use the static instanceSTATICinstead.Constructor.
-
-
Method Detail
-
combine
public double combine(int sizex, double dx, int sizey, double dy, int sizej, double dxy)Description copied from interface:LinkageCompute combined linkage for two clusters.- Specified by:
combinein interfaceLinkage- Parameters:
sizex- Size of first cluster x before mergingdx- Distance of cluster x to j before mergingsizey- Size of second cluster y before mergingdy- Distance of cluster y to j before mergingsizej- Size of candidate cluster jdxy- Distance between clusters x and y before merging- Returns:
- Combined distance
-
merge
public double[] merge(double[] x, int sizex, double[] y, int sizey)Description copied from interface:GeometricLinkageMerge the aggregated vectors.- Specified by:
mergein interfaceGeometricLinkage- Parameters:
x- Center of the first clustersizex- Weight of the first clustery- Center of the second clustersizey- Weight of the second cluster- Returns:
- Combined vector
-
distance
public double distance(double[] x, int sizex, double[] y, int sizey)Description copied from interface:GeometricLinkageDistance of two aggregated clusters.- Specified by:
distancein interfaceGeometricLinkage- Parameters:
x- Center of the first clustersizex- Weight of the first clustery- Center of the second clustersizey- Weight of the second cluster- Returns:
- Distance
-
-