/federated_kmeans

Federated k-means clustering algorithm implementation and proof of concept.

Primary LanguagePythonMIT LicenseMIT

Federated K-Means Clustering Algorithm

You can find the details on the algorithm and a proof of concept in the short paper

Abstract

An algorithm to cluster distributed datasets without communicating data is introduced. It builds upon the concept of federated learning, distributed K-Means and mini-batch K-Means. Results on synthetic data and real data are presented for a non-iid setting. The algorithm is able to produce a clustering of similar or better quality than central K-Means clustering, while preserving privacy.

Results

The Federated clustering algorithm is able to match or outperform the central clustering algorithm if the hyperparameters are appropriately set.

Further preliminary experiments on real energy datasets indicated that the Algorithm is simple and effective to apply to industrial problem settings (results not included).

Note

This is unpolished work, done in May to September 2019. Nevertheless, we decided to share the findings already with the broader science community as others might find use in our simple algorithm.