0

I'm running a machine learning algorithm in federated settings where participants collaboratively build a model by participating in the training rounds.

At each training round, I need to sample a fixed number of participants, say 100 out of a total population of 500 to participate in the training.

The selection of participants should be based on poisson subsampling such that each participants is drawn with subsampling probability of 100/500.

I perform poisson subsampling with randomly selected lambda from the range [0,500], and keep subsampling with random lambda values until the 100 participants are drawn.

A small python snippet below

sampled_ids = []
participants_size = 100
population_size = 500

while len(sampled_ids) < participants_size:

lambda_value = np.random.random_integers(low=0, high=population_size, size=1)

subsampling = np.random.poisson(lam=lambda_value, size=participants_size)

for i in range(len(subsampling)): if len(sampled_ids) < participants_size: sampled_ids.append(instance)

Is there any better strategy for setting the lambda other than random selection so the 100 participants are drawn with probability p = participants_size/population_size ?

ABHS
  • 1
  • Welcome to MSE. Your question is phrased as an isolated problem, without any further information or context. This does not match many users' quality standards, so it may attract downvotes, or closed. To prevent that, please [edit] the question. This will help you recognise and resolve the issues. Concretely: please provide context, and include your work and thoughts on the problem. These changes can help in formulating more appropriate answers. – José Carlos Santos Mar 04 '21 at 07:03
  • @JoséCarlosSantos Thanks for the info, question updated. – ABHS Mar 04 '21 at 20:17

0 Answers0