LGBMClassifier
LightGBM gradient boosting classifier for tabular data.
LightGBM grows trees leaf-wise (choosing the leaf with the largest loss
reduction at each step) instead of level-wise, combined with
histogram-based feature binning, which typically yields faster training
and lower memory usage than level-wise boosting methods on large tabular
datasets, at the cost of being more prone to overfitting on small ones
(mitigated via num_leaves and min_child_samples).
Key hyperparameters include n_estimators (number of boosting rounds),
num_leaves, learning_rate, subsample, colsample_bytree,
reg_alpha, reg_lambda, and min_child_samples. The
implementation wraps lightgbm.LGBMClassifier.
References
- [1] Ke, G. et al. (2017). "LightGBM: A Highly Efficient Gradient Boosting Decision Tree." Advances in Neural Information Processing Systems 30. https://proceedings.neurips.cc/paper/2017/hash/6449f44a102fde848669bdd9eb6b76fa-Abstract.html
- [2] https://lightgbm.readthedocs.io/en/latest/pythonapi/lightgbm.LGBMClassifier.html
Parameters
- n_estimators : integer, default=
100 - The number of boosting rounds, i.e. the number of trees to fit sequentially. Must be an integer greater than or equal to 1.
- num_leaves : integer, default=
31 - The maximum number of leaves per tree. This is LightGBM's main capacity control, since it grows trees leaf-wise rather than level-wise. Must be an integer greater than 1.
- learning_rate : number, default=
0.1 - Step size shrinkage applied to each tree's contribution. Lower values need more estimators but generalise better.
- subsample : number, default=
1.0 - Fraction of training samples randomly drawn to grow each tree (bagging fraction). Values below 1.0 introduce randomness that helps prevent overfitting.
- colsample_bytree : number, default=
1.0 - Fraction of features randomly sampled when building each tree. Values below 1.0 decorrelate the trees, reducing overfitting.
- reg_alpha : number, default=
0.0 - L1 regularization term on the tree leaf weights. Use 0 for none.
- reg_lambda : number, default=
0.0 - L2 regularization term on the tree leaf weights. Use 0 for none.
- min_child_samples : integer, default=
20 - The minimum number of samples required in a leaf. LightGBM's main safeguard against overfitting on small datasets, since it grows trees leaf-wise.
- class_weight, default=
None - Weights associated with classes, used to correct for class imbalance. 'balanced' automatically adjusts weights inversely proportional to class frequencies. Use None for no weighting. Only applies to multiclass problems, or binary problems where
is_unbalance/scale_pos_weightis not set.
Methods
calculate_metrics(self, split: DashAI.back.core.enums.metrics.SplitEnum = <SplitEnum.VALIDATION: 'validation'>, level: DashAI.back.core.enums.metrics.LevelEnum = <LevelEnum.LAST: 'last'>, log_index: int = None, x_data: 'DashAIDataset' = None, y_data: 'DashAIDataset' = None)
BaseModelCalculate and save metrics for a given data split and level.
Parameters
- split : SplitEnum
- The data split to evaluate (TRAIN, VALIDATION, or TEST). Defaults to SplitEnum.VALIDATION.
- level : LevelEnum
- The metric granularity level (LAST, TRIAL, STEP, or BATCH). Defaults to LevelEnum.LAST.
- log_index : int, optional
- Explicit step index for the metric entry. If None, the next step index is computed automatically. Defaults to None.
- x_data : DashAIDataset, optional
- Input features. If None, the dataset stored in the model for the given split is used. Defaults to None.
- y_data : DashAIDataset, optional
- Target labels. If None, the labels stored in the model for the given split are used. Defaults to None.
get_metadata(cls) -> Dict[str, Any]
BaseModelGet metadata values for the current model.
Returns
- Dict[str, Any]
- Dictionary containing UI metadata such as the model icon used in the DashAI frontend.
get_schema(cls) -> dict
ConfigObjectGenerates the component related Json Schema.
Returns
- dict
- Dictionary representing the Json Schema of the component.
load(filename: str) -> None
SklearnLikeModelDeserialise a model from disk using joblib.
Parameters
- filename : str
- Path to the file previously written by :meth:
save.
Returns
- SklearnLikeModel
- The loaded model instance.
predict(self, x_pred: 'DashAIDataset') -> 'ndarray'
SklearnLikeClassifierMake a prediction with the model
Parameters
- x_pred : DashAIDataset
- Dataset with the input data columns.
Returns
- np.ndarray
- Array with the predicted target values for x_pred
prepare_dataset(self, dataset: 'DashAIDataset', is_fit: bool = False) -> 'DashAIDataset'
CategoricalEncoderMixinEncode categorical feature columns into a numeric representation.
Parameters
- dataset : DashAIDataset
- The input dataset to preprocess.
- is_fit : bool
- If True, fit the encoders on the data. If False, apply previously fitted encoders. Defaults to False.
Returns
- DashAIDataset
- The dataset with categorical columns converted to numeric columns.
prepare_output(self, dataset: 'DashAIDataset', is_fit: bool = False) -> 'DashAIDataset'
CategoricalEncoderMixinPrepare output targets using label encoding.
Parameters
- dataset : DashAIDataset
- The output dataset to be transformed.
- is_fit : bool, optional
- If True, fit the encoder. If False, use existing encodings.
Returns
- DashAIDataset
- Dataset with categorical columns converted to integers.
save(self, filename: str) -> None
SklearnLikeModelSerialise the model to disk using joblib.
Parameters
- filename : str
- Destination file path where the model will be written.
train(self, x_train, y_train, x_validation=None, y_validation=None)
SklearnLikeModelTrain the sklearn model on the provided dataset.
Parameters
- x_train : DashAIDataset
- The input features for training.
- y_train : DashAIDataset
- The target labels for training.
- x_validation : DashAIDataset, optional
- Validation input features (unused in sklearn models). Defaults to None.
- y_validation : DashAIDataset, optional
- Validation target labels (unused in sklearn models). Defaults to None.
Returns
- BaseModel
- The fitted scikit-learn estimator (self).
validate_and_transform(self, raw_data: dict) -> dict
ConfigObjectIt takes the data given by the user to initialize the model and returns it with all the objects that the model needs to work.
Parameters
- raw_data : dict
- A dictionary with the data provided by the user to initialize the model.
Returns
- dict
- A validated dictionary with the necessary objects.