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.
Project idea · ungraded
Federated Training across Departments
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