LGBM

class dro.src.tree_model.lgbm.KLDRO_LGBM(eps=0.1, kind='classification')

Bases: object

Light GBM model with KL-Divergence Distributionally Robust Optimization (DRO)

Parameters:
  • eps (float) – KL divergence constraint parameter (ε > 0, default: 0.1)

  • kind (str) – Task type (‘classification’ or ‘regression’, default: classification)

Raises:
  • ValueError – If invalid parameters are provided

  • TypeError – If inputs have incorrect types

Note

Requires LGBM configuration via update() before training

Initialize KL-DRO LGBM model

Parameters:
  • eps (float) – Robustness parameter (must be > 0)

  • kind (str) – Task type specification

Raises:

ValueError – For eps <= 0 or invalid task type

update(config)

Update LGBM training configuration

Parameters:

config (dict) – LGBM parameters dictionary

Raises:
  • KeyError – If missing ‘num_boost_round’ parameter

  • TypeError – For non-dictionary input

Return type:

None

loss(preds, labels)

Compute base loss values

Parameters:
Returns:

Loss values array (n_samples,)

Return type:

numpy.ndarray

Raises:

NotImplementedError – For unsupported task types

fit(X, y)

Train KL-DRO LGBM model

Parameters:
Raises:
Return type:

None

predict(X)

Generate predictions

Parameters:

X (numpy.ndarray) – Input features (n_samples, n_features)

Returns:

Model predictions

Return type:

numpy.ndarray

Raises:

NotFittedError – If model is untrained

class dro.src.tree_model.lgbm.CVaRDRO_LGBM(eps=0.2, kind='classification')

Bases: object

LGBM model with Conditional Value-at-Risk (CVaR) Distributionally Robust Optimization (DRO)

Parameters:
  • eps (float) – constraint parameter (1 > ε > 0, default: 0.2)

  • kind (str) – Task type (‘classification’ or ‘regression’, default: classification)

Raises:
  • ValueError – If invalid parameters are provided

  • TypeError – If inputs have incorrect types

Note

Requires LGBM configuration via update() before training

Initialize CVaR-DRO LGBM model

Parameters:
  • eps (float) – Robustness parameter (must be > 0)

  • kind (str) – Task type specification

Raises:

ValueError – For eps <= 0 or eps >= 1 or invalid task type

update(config)

Update LGBM training configuration

Parameters:

config (dict) – LGBM parameters dictionary

Raises:
  • KeyError – If missing ‘num_boost_round’ parameter

  • TypeError – For non-dictionary input

Return type:

None

loss(preds, labels)

Compute base loss values

Parameters:
Returns:

Loss values array (n_samples,)

Return type:

numpy.ndarray

Raises:

NotImplementedError – For unsupported task types

fit(X, y)

Train CVaR-DRO LGBM model

Parameters:
Raises:
Return type:

None

predict(X)

Generate predictions

Parameters:

X (numpy.ndarray) – Input features (n_samples, n_features)

Returns:

Model predictions

Return type:

numpy.ndarray

Raises:

NotFittedError – If model is untrained