nvflare.app_opt.xgboost.data_loader module

class XGBDataLoader[source]

Bases: ABC

property client_id
property data_split_mode
initialize(client_id: str, rank: int, data_split_mode: DataSplitMode = DataSplitMode.ROW)[source]

Initialize the data loader with client-specific parameters.

This method is automatically called by the NVFlare framework at runtime for each client. You do not need to call this method manually. The framework will inject the appropriate client_id, rank, and data_split_mode for each client site.

Parameters:
  • client_id – Unique identifier for the client (e.g., ‘site-1’, ‘site-2’). This is set automatically by the framework based on which client is running.

  • rank – Client’s rank in the federation (0-indexed). In vertical mode, rank 0 is typically the label owner.

  • data_split_mode – XGBoost data split mode (ROW for horizontal, COLUMN for vertical). This is set automatically based on the recipe configuration.

Note

Even though you create the same data loader instance for all clients in your job script, each client will receive different values for these parameters at runtime, enabling client-specific data loading.

abstract load_data() Tuple[DMatrix, DMatrix][source]

Loads data for xgboost.

Returns:

A tuple of train_data, validation_data

property rank