Class ClientSelectionOptions
Configuration options for client selection in federated learning.
public class ClientSelectionOptions
- Inheritance
-
ClientSelectionOptions
- Inherited Members
Remarks
For Beginners: Client selection controls which devices/organizations participate in each round. In real deployments, many clients may be offline or slow, so selecting a subset per round is common.
Properties
AvailabilityThreshold
Gets or sets the minimum availability probability required for a client to be considered available.
public double AvailabilityThreshold { get; set; }
Property Value
ClientAvailabilityProbabilities
Gets or sets an optional mapping from client ID to an availability probability (0.0 to 1.0).
public Dictionary<int, double>? ClientAvailabilityProbabilities { get; set; }
Property Value
Remarks
For Beginners: Availability-aware selection prefers clients that are more likely to be online.
ClientGroupKeys
Gets or sets an optional mapping from client ID to a group key for stratified sampling.
public Dictionary<int, string>? ClientGroupKeys { get; set; }
Property Value
ClusterCount
Gets or sets the number of clusters to use for cluster-based sampling.
public int ClusterCount { get; set; }
Property Value
ExplorationRate
Gets or sets the exploration probability for performance-aware sampling (0.0 to 1.0).
public double ExplorationRate { get; set; }
Property Value
Remarks
For Beginners: A value of 0.1 means "10% of the time, pick random clients to explore; 90% of the time, pick the best-known clients."
KMeansIterations
Gets or sets the number of k-means iterations for cluster-based sampling.
public int KMeansIterations { get; set; }
Property Value
Strategy
Gets or sets the selection strategy.
public FederatedClientSelectionStrategy Strategy { get; set; }
Property Value
Remarks
For Beginners: This selects the "rule" used to choose clients each round.