Dynamically Weighted Federated k-Means

Patrick Holzer, Tania Jacob, Shubham Kavane
10/23/2023
cs.LG

Official code: PatrickITWM/DWF-k-means (1 star, MIT, last commit 2025-06-30).

Abstract

Federated clustering, an integral aspect of federated machine learning, enables multiple data sources to collaboratively cluster their data, maintaining decentralization and preserving privacy. In this paper, we introduce a novel federated clustering algorithm named Dynamically Weighted Federated k-means (DWF k-means) based on Lloyd's method for k-means clustering, to address the challenges associated with distributed data sources and heterogeneous data. Our proposed algorithm combines the benefits of traditional clustering techniques with the privacy and scalability benefits offered by federated learning. The algorithm facilitates collaborative clustering among multiple data owners, allowing them to cluster their local data collectively while exchanging minimal information with the central coordinator. The algorithm optimizes the clustering process by adaptively aggregating cluster assignments and centroids from each data source, thereby learning a global clustering solution that reflects the collective knowledge of the entire federated network. We address the issue of empty clusters, which commonly arises in the context of federated clustering. We conduct experiments on multiple datasets and data distribution settings to evaluate the performance of our algorithm in terms of clustering score, accuracy, and v-measure. The results demonstrate that our approach can match the performance of the centralized classical k-means baseline, and outperform existing federated clustering methods like k-FED in realistic scenarios.

View on arXivView PDF

Code Implementations(1)

MIT
10Python, Jupyter NotebookSep 25, 20231 years agoMIT

Similar Papers

Cite this paper

@article{holzer2023dynamically,
  title  = {Dynamically Weighted Federated k-Means},
  author = {Patrick Holzer and Tania Jacob and Shubham Kavane},
  year   = {2023},
  eprint = {2310.14858},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2310.14858v2}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2310.14858.svg)](https://codeofpaper.com/paper/2310.14858)

Discussion