dac

fun dac(data: Array<DoubleArray>, k: Int, alpha: Double = 0.9, maxIter: Int = 100, tol: Double = 1.0E-4, splitTol: Double = 0.01): DeterministicAnnealing

Deterministic annealing clustering. Deterministic annealing extends soft-clustering to an annealing process. For each temperature value, the algorithm iterates between the calculation of all posteriori probabilities and the update of the centroids vectors, until convergence is reached. The annealing starts with a high temperature. Here, all centroids vectors converge to the center of the pattern distribution (independent of their initial positions). Below a critical temperature the vectors start to split. Further decreasing the temperature leads to more splittings until all centroids vectors are separate. The annealing can therefore avoid (if it is sufficiently slow) the convergence to local minima.

====References:====

  • Kenneth Rose. Deterministic Annealing for Clustering, Compression, Classification, Regression, and Speech Recognition.

Parameters

data

the data set.

k

the maximum number of clusters.

alpha

the temperature T is decreasing as T = T * alpha. alpha has to be in (0, 1).

tol

the tolerance of convergence test.

splitTol

the tolerance to split a cluster.