Affinity propagation

Similar to k-medoids, affinity propagation finds "exemplars," members of the input set that are representative of clusters.

[1] Let x1 through xn be a set of data points, with no assumptions made about their internal structure, and let s be a function that quantifies the similarity between any two points, such that s(i, j) > s(i, k) if and only if xi is more similar to xj than to xk.

The exemplars are extracted from the final matrices as those whose 'responsibility + availability' for themselves is positive (i.e.

The inventors of affinity propagation showed it is better for certain computer vision and computational biology tasks, e.g. clustering of pictures of human faces and identifying regulated transcripts, than k-means,[1] even when k-means was allowed many random restarts and initialized using PCA.

[2] A study comparing affinity propagation and Markov clustering on protein interaction graph partitioning found Markov clustering to work better for that problem.

[4] Another recent application was in economics, when the affinity propagation was used to find some temporal patterns in the output multipliers of the US economy between 1997 and 2017.