Skip to content

blaserethan/HetoFedBandit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Code for "Federated Linear Contextual Bandits with Heterogeneous Clients"

This repository contains implementation of the proposed algorithms HetoFedBandit and HetoFedBandit-Enhanced, and baseline algorithms for comparison:

  • FCLUB_DC
  • DisLinUCB
  • N-IndependentLinUCB
  • DyClu

For experiments on the synthetic dataset, directly run:

python Simulation.py --T 2500 --n 30 --m 5

To experiment with different environment settings, specify parameters:

  • T: number of iterations to run
  • n: number of users
  • m: number of clusters
  • sigma: standard deviation of Gaussian noise in observed reward

Detailed description of how the simulation environment works can be found in Section 4 of the paper.

Experiment results for the simulated environment can be found in the "./Results/SimulationResults/" folder, which contains:

  • "[namelabel]_[startTime].png": plot of accumulated regret over iteration for each algorithm
  • "[namelabel]_AccRegret_[startTime].csv": regret at each iteration for each algorithm
  • "[namelabel]_ParameterEstimation_[startTime].csv": l2 norm between estimated and ground-truth parameter at each iteration for each algorithm
  • "Config_[startTime].json": stores hyper parameters of all algorithms for this experiment

For experiments on the already pre-processed LastFM dataset, directly run:

python Simulation_Realworld.py --dataset LastFM

If you want to preprocess the dataset from LastFM yourself, with different random shuffling of the events, you can utilize Dataset/getProcessedEvents.py to re-process the dataset using the procedure described in Section 4.3 of the paper. The original dasetet can be downloaded at LastFM-2011 Dataset.

About

Repository for HetoFedBandit

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages