Affinity Propagation
Affinity propagation is a clustering algorithm based on message passing between data points. Similar to K-medoids, it looks at the (dis)similarities in the data, picks one exemplar data point for each cluster, and assigns every point in the data set to the cluster with the closest exemplar.
Clustering.affinityprop
— Functionaffinityprop(S::AbstractMatrix; [maxiter=200], [tol=1e-6], [damp=0.5],
- [display=:none]) -> AffinityPropResult
Perform affinity propagation clustering based on a similarity matrix S
.
$S_{ij}$ ($i ≠ j$) is the similarity (or the negated distance) between the $i$-th and $j$-th points, $S_{ii}$ defines the availability of the $i$-th point as an exemplar.
Arguments
damp::Real
: the dampening coefficient, $0 ≤ \mathrm{damp} < 1$. Larger values indicate slower (and probably more stable) update. $\mathrm{damp} = 0$ disables dampening.maxiter
,tol
,display
: see common options
References
Brendan J. Frey and Delbert Dueck. Clustering by Passing Messages Between Data Points. Science, vol 315, pages 972-976, 2007.
Clustering.AffinityPropResult
— TypeAffinityPropResult <: ClusteringResult
The output of affinity propagation clustering (affinityprop
).
Fields
exemplars::Vector{Int}
: indices of exemplars (cluster centers)assignments::Vector{Int}
: cluster assignments for each data pointiterations::Int
: number of iterations executedconverged::Bool
: converged or not