Class UPGMCLinkage

java.lang.Object
smile.clustering.linkage.Linkage
smile.clustering.linkage.UPGMCLinkage

public class UPGMCLinkage extends Linkage
Unweighted Pair Group Method using Centroids (also known as centroid linkage). The distance between two clusters is the Euclidean distance between their centroids, as calculated by arithmetic mean. Only valid for Euclidean distance based proximity matrix.
  • Constructor Details

    • UPGMCLinkage

      public UPGMCLinkage(double[][] proximity)
      Constructor.
      Parameters:
      proximity - the proximity matrix. Only the lower half will be referred.
    • UPGMCLinkage

      public UPGMCLinkage(int size, float[] proximity)
      Constructor. Initialize the linkage with the lower triangular proximity matrix.
      Parameters:
      size - the data size.
      proximity - the column-wise linearized proximity matrix that stores only the lower half. The length of proximity should be size * (size+1) / 2. To save space, Linkage will use this argument directly without copy. The elements may be modified.
  • Method Details

    • of

      public static UPGMCLinkage of(double[][] data)
      Computes the proximity and the linkage.
      Parameters:
      data - the data points.
      Returns:
      the linkage.
    • of

      public static <T> UPGMCLinkage of(T[] data, Distance<T> distance)
      Computes the proximity and the linkage.
      Type Parameters:
      T - the data type of points.
      Parameters:
      data - the data points.
      distance - the distance function.
      Returns:
      the linkage.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • merge

      public void merge(int i, int j)
      Description copied from class: Linkage
      Merges two clusters into one and update the proximity matrix.
      Specified by:
      merge in class Linkage
      Parameters:
      i - cluster id.
      j - cluster id.