How meghanap1305/a3-ps003-tc122 works
This repository implements traffic forecasting with a compact MLP, both centralized and simulated federated training, plus preprocessing and evaluation utilities. The main workflow loads and normalizes Parquet traffic windows, trains a model, and evaluates forecasts; the federated path partitions training rows, trains client copies, aggregates updates, and validates the global model. The README is minimal, so the architecture is grounded mainly in the indexed and excerpted source; demo wiring and other unsampled behavior are not inferred.
Main entry points: data_loader.py Window loader · federated_train.py Federated runner · train.py Central trainer · model.py Traffic MLP
Components 16
Data preparation
- Parquet splits
- Window loader
preprocessing/data_loader.py - Client partitioning
partition_data.py
Centralized forecasting
- Central trainer
src/train.py - Traffic MLP
src/model.py
Federated learning
- Client batch loader
federated/client_data_loader.py - Local client trainer
federated/client.py - Federated runner
federated/federated_train.py - FedAvg aggregation
federated/fedavg.py
Evaluation and demo
- Persistence baseline
preprocessing/baseline.py - Horizon metrics
preprocessing/baseline_horizons.py - Global evaluator
federated/evaluation.py - Demo server
demo/server.py - Demo interface
demo/static/index.html - Demo training
demo/src/train.py
Other components
- Operator
Connections 22
- Operator → Central trainer: runs training
src/train.py - Operator → Client partitioning: creates partitions
partition_data.py - Operator → Federated runner: runs rounds
federated/federated_train.py - Parquet splits → Window loader: reads batches
preprocessing/data_loader.py - Window loader → Central trainer: provides batches
src/train.py - Window loader → Persistence baseline: provides batches
preprocessing/baseline.py - Window loader → Horizon metrics: provides batches
preprocessing/baseline_horizons.py - Window loader → Client batch loader: supplies window logic
federated/client_data_loader.py - Parquet splits → Client partitioning: reads training rows
partition_data.py - Client partitioning → Client batch loader: writes client Parquet
- Central trainer → Traffic MLP: trains
src/train.py - Client batch loader → Local client trainer: yields batches
federated/client.py - Local client trainer → Traffic MLP: trains local copy
federated/client.py - Federated runner → Local client trainer: invokes clients
federated/federated_train.py - Federated runner → FedAvg aggregation: aggregates updates
federated/federated_train.py - Federated runner → Global evaluator: validates global model
federated/federated_train.py - Federated runner → Traffic MLP: initializes global model
federated/federated_train.py - Global evaluator → Window loader: reads validation batches
federated/evaluation.py - Global evaluator → Traffic MLP: evaluates forecasts
federated/evaluation.py - Operator → Demo server: opens demo
- Demo server → Demo interface: serves interface
- Demo training → Central trainer: uses training history