Project idea · ungraded

Federated Training across Departments

Simulate several college departments that want a shared model (for example, predicting which students need extra support) without pooling their records. Compare federated training with central training, and see how uneven, non-IID data across departments affects the result.

You will use

Milestones

Build the smallest working version first. Ticks are saved in this browser only.

Stretch goals

  • Implement FedProx in PyTorch and compare on the most uneven split.
  • Run the same experiment with the Flower framework, with clients as separate processes.
  • Personalise: fine-tune the global model on each department and report per-department accuracy.

Data

Synthetic data from sklearn.datasets.make_classification works well; split it by a feature to create non-IID departments. See the Flower framework documentation for running real federated clients.

Run it yourself

pip install torch scikit-learn flwr
python simulate.py --clients 5 --rounds 30