public class SingleLinkage extends Linkage
Single linkage clustering is essentially the same as Kruskal's algorithm for minimum spanning trees. However, in single linkage clustering, the order in which clusters are formed is important, while for minimum spanning trees what matters is the set of pairs of points that form distances chosen by the algorithm.
Constructor and Description |
---|
SingleLinkage(double[][] proximity)
Constructor.
|
SingleLinkage(int size,
float[] proximity)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
merge(int i,
int j)
Merge two clusters into one and update the proximity matrix.
|
static SingleLinkage |
of(double[][] data)
Given a set of data, computes the proximity and then the linkage.
|
static <T> SingleLinkage |
of(T[] data,
smile.math.distance.Distance<T> distance)
Given a set of data, computes the proximity and then the linkage.
|
java.lang.String |
toString() |
public SingleLinkage(double[][] proximity)
proximity
- The proximity matrix to store the distance measure of
dissimilarity. To save space, we only need the lower half of matrix.public SingleLinkage(int size, float[] proximity)
size
- the data size.proximity
- 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.public static SingleLinkage of(double[][] data)
public static <T> SingleLinkage of(T[] data, smile.math.distance.Distance<T> distance)
public java.lang.String toString()
toString
in class java.lang.Object