Class FlexibleBetaLinkage

  • All Implemented Interfaces:
    Linkage

    @Reference(authors="G. N. Lance, W. T. Williams",
               title="A general theory of classificatory sorting strategies 1. Hierarchical systems",
               booktitle="The Computer Journal 9.4",
               url="https://doi.org/10.1093/comjnl/9.4.373",
               bibkey="doi:10.1093/comjnl/9.4.373")
    @Alias({"flex","beta"})
    @Priority(-2)
    public class FlexibleBetaLinkage
    extends java.lang.Object
    implements Linkage
    Flexible-beta linkage as proposed by Lance and Williams.

    Beta values larger than 0 cause chaining, and are thus not recommended. Instead, choose a value between -1 and 0.

    The general form of the recursive definition is: \[d_{\text{Flexible},\beta}(A\cup B, C) := \tfrac{1-\beta}{2} d(A,C) + \tfrac{1-\beta}{2} d(B,C) + \beta d(A,B) \]

    Reference:

    G. N. Lance, W. T. Williams
    A general theory of classificatory sorting strategies
    1. Hierarchical systems
    The Computer Journal 9.4

    Since:
    0.7.5
    Author:
    Erich Schubert
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  FlexibleBetaLinkage.Par
      Parameterization class.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      (package private) double alpha
      Alpha parameter, derived from beta.
      (package private) double beta
      Beta parameter
    • Constructor Summary

      Constructors 
      Constructor Description
      FlexibleBetaLinkage​(double beta)
      Constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      double combine​(int sizex, double dx, int sizey, double dy, int sizej, double dxy)
      Compute combined linkage for two clusters.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • alpha

        double alpha
        Alpha parameter, derived from beta.
      • beta

        double beta
        Beta parameter
    • Constructor Detail

      • FlexibleBetaLinkage

        public FlexibleBetaLinkage​(double beta)
        Constructor.
        Parameters:
        beta - Beta parameter
    • Method Detail

      • combine

        public double combine​(int sizex,
                              double dx,
                              int sizey,
                              double dy,
                              int sizej,
                              double dxy)
        Description copied from interface: Linkage
        Compute combined linkage for two clusters.
        Specified by:
        combine in interface Linkage
        Parameters:
        sizex - Size of first cluster x before merging
        dx - Distance of cluster x to j before merging
        sizey - Size of second cluster y before merging
        dy - Distance of cluster y to j before merging
        sizej - Size of candidate cluster j
        dxy - Distance between clusters x and y before merging
        Returns:
        Combined distance