This repo contains the implementation of the clustering algorithm, Affinity Propagation, in Java. Affinity propagaion is a clustering algorithm that finds a set of exemplar data points, and the corresponding clusters, based on a similarity measure between pairs of data points.
Affinity Propagation is explained in details in this journal article by Brenan Frey and Delbert Dueck from the University of Toronto. The authors tested the algorithm to cluster images of faces, detect genes in microarray data, identify representative sentences in the manuscript, and identify cities that are efficiently accessed by airline travel. In this project, I implemented Affinity Propagation from scratch and used it for indoor localization based on the received signal strength (RSS) on mobile devices.
On you machine, navigate to the directory you would like to clone the project to. Clone the project using the following git bash command:
git clone https://github.com/tarhang/AffinityPropagation.git