nvflare.app_common.statistics.hierarchical_numeric_stats module¶
- accumulate_hierarchical_metrics(metric: str, client_name: str, metrics: dict, global_metrics: dict, hierarchy_config: dict) dict[source]¶
Accumulate metrics at each hierarchical level.
- Parameters:
metric – Metric to accumulate.
client_name – Client name.
metrics – Client metrics.
global_metrics – The current global metrics.
hierarchy_config – Hierarchy configuration for the global stats.
- Returns:
A dict containing accumulated hierarchical global statistics.
- bins_to_dict(bins: List[Bin]) Dict[BinRange, float][source]¶
Convert histogram bins to a ‘dict’.
- Parameters:
bins – Histogram bins.
- Returns:
A dict containing histogram bins.
- create_output_structure(client_metrics: dict, metric_task: str, ordered_metrics: dict, hierarchy_config: dict) dict[source]¶
Recursively calculate the hierarchical global stats structure from the given hierarchy config.
- Parameters:
client_metrics – Local stats for each client.
metric_task – Statistics task.
ordered_metrics – Ordered target metrics.
hierarchy_config – Hierarchy configuration for the global stats.
- Returns:
A dict containing hierarchical global stats structure.
- filter_numeric_features(ds_features: Dict[str, List[Feature]]) Dict[str, List[Feature]][source]¶
Filter numeric features.
- Parameters:
ds_features – A features dict.
- Returns:
A dict containing numeric features.
- get_client_hierarchy(hierarchy_config: dict, client_name: str, path=None) list[source]¶
Calculate hierarchy for the given client name.
- Parameters:
hierarchy_config – Hierarchy configuration for the global stats.
client_name – Client name.
path – The accumulated hierarchy path (used for recursive calls).
- Returns:
A list containing hierarchy levels for the client.
- get_global_stats(global_metrics: dict, client_metrics: dict, metric_task: str, hierarchy_config: dict) dict[source]¶
Get global hierarchical statistics for the given hierarchy config.
- Parameters:
global_metrics – The current global metrics.
client_metrics – Local stats for each client.
metric_task – Statistics task.
hierarchy_config – Hierarchy configuration for the global stats.
- Returns:
A dict containing global hierarchical statistics.
- get_hierarchical_histograms(metric: str, client_name: str, metrics: dict, global_metrics: dict, hierarchy_config: dict) dict[source]¶
Calculate histograms at each hierarchical level.
- Parameters:
metric – Metric to accumulate.
client_name – Client name.
metrics – Client metrics.
global_metrics – The current global metrics.
hierarchy_config – Hierarchy configuration for the global stats.
- Returns:
A dict containing updated hierarchical global statistics with accumulated histograms.
- get_hierarchical_levels(data: dict, level: int = 0, levels_dict: dict | None = None) dict[source]¶
Calculate number of hierarchical levels from the given hierarchy config.
- Parameters:
data – Hierarchy configuration for the global stats.
level – The current hierarchical level (used for recursive calls).
levels_dict – The accumulated levels dict (used for recursive calls).
- Returns:
A dict containing containing hierarchical levels.
- get_hierarchical_means(metric: str, global_metrics: dict) dict[source]¶
Calculate means at each hierarchical level.
- Parameters:
metric – Metric to accumulate.
global_metrics – The current global metrics.
- Returns:
A dict containing updated hierarchical global statistics with accumulated means.
- get_hierarchical_mins_or_maxs(metric: str, client_name: str, metrics: dict, global_metrics: dict, hierarchy_config: dict) dict[source]¶
Calculate min or max at each hierarchical level.
- Parameters:
metric – Metric to accumulate.
client_name – Client name.
metrics – Client metrics.
global_metrics – The current global metrics.
hierarchy_config – Hierarchy configuration for the global stats.
- Returns:
A dict containing updated hierarchical global statistics with accumulated mins or maxs.
- get_hierarchical_stddevs(global_metrics: dict) dict[source]¶
Calculate stddevs at each hierarchical level.
- Parameters:
global_metrics – The current global metrics.
- Returns:
A dict containing updated hierarchical global statistics with accumulated stddevs.
- get_initial_structure(client_metrics: dict, ordered_metrics: dict) dict[source]¶
Calculate initial output structure that is common at all the hierarchical levels.
- Parameters:
client_metrics – Local stats for each client.
ordered_metrics – Ordered target metrics.
- Returns:
A dict containing initial output structure.
- get_output_structure(client_metrics: dict, metric_task: str, ordered_metrics: dict, hierarchy_config: dict) dict[source]¶
Create required global statistics hierarchical output structure.
- Parameters:
client_metrics – Local stats for each client.
metric_task – Statistics task.
ordered_metrics – Ordered target metrics.
hierarchy_config – Hierarchy configuration for the global stats.
- Returns:
A dict containing hierarchical global stats structure that also includes top level global stats structure.
- update_output_strcture(client_metrics: dict, metric_task: str, ordered_metrics: dict, global_metrics: dict) None[source]¶
Update global statistics hierarchical output structure with the new ordered metrics.
- Parameters:
client_metrics – Local stats for each client.
metric_task – Statistics task.
ordered_metrics – Ordered target metrics.
global_metrics – The current global metrics.
- Returns:
A dict containing updated hierarchical global stats.