A collection of LightGBM callbacks.
Project description
LightGBM Callbacks
A collection of LightGBM callbacks.
Provides implementations of ProgressBarCallback
(#5867) and DartEarlyStoppingCallback
(#4805), as well as an LGBMDartEarlyStoppingEstimator
that automatically passes these callbacks. (#3313, #5808)
Installation
Install this via pip (or your favourite package manager):
pip install lightgbm-callbacks
Usage
SciKit-Learn API, simple
from lightgbm import LGBMRegressor
from lightgbm_callbacks import LGBMDartEarlyStoppingEstimator
from sklearn.datasets import load_diabetes
from sklearn.model_selection import train_test_split
X, y = load_diabetes(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y)
LGBMDartEarlyStoppingEstimator(
LGBMRegressor(boosting_type="dart"), # or "gbdt", ...
stopping_rounds=10, # or n_iter_no_change=10
test_size=0.2, # or validation_fraction=0.2
shuffle=False,
tqdm_cls="rich", # "auto", "autonotebook", ...
).fit(X_train, y_train)
Scikit-Learn API, manually passing callbacks
from lightgbm import LGBMRegressor
from lightgbm_callbacks import ProgressBarCallback, DartEarlyStoppingCallback
from sklearn.datasets import load_diabetes
from sklearn.model_selection import train_test_split
X, y = load_diabetes(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y)
X_train, X_val, y_train, y_val = train_test_split(X_train, y_train)
early_stopping_callback = DartEarlyStoppingCallback(stopping_rounds=10)
LGBMRegressor(
).fit(
X_train,
y_train,
eval_set=[(X_train, y_train), (X_val, y_val)],
callbacks=[
early_stopping_callback,
ProgressBarCallback(early_stopping_callback=early_stopping_callback),
],
)
Details on DartEarlyStoppingCallback
Below is a description of the DartEarlyStoppingCallback
method
parameter and lgb.plot_metric
for each lgb.LGBMRegressor(boosting_type="dart", n_estimators=1000)
trained with entire sklearn_datasets.load_diabetes()
dataset.
Method | Description | iteration | Image | Actual iteration |
---|---|---|---|---|
(Baseline) | If Early stopping is not used. | n_estimators |
1000 | |
"none" |
Do nothing and return the original estimator. | min(best_iteration + early_stopping_rounds, n_estimators) |
50 | |
"save" |
Save the best model by deepcopying the estimator and return the best model (using pickle ). |
min(best_iteration + 1, n_estimators) |
21 | |
"refit" |
Refit the estimator with the best iteration and return the refitted estimator. | min(best_iteration, n_estimators) |
20 |
Contributors ✨
Thanks goes to these wonderful people (emoji key):
34j 💻 🤔 📖 |
This project follows the all-contributors specification. Contributions of any kind welcome!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file lightgbm_callbacks-0.1.13.tar.gz
.
File metadata
- Download URL: lightgbm_callbacks-0.1.13.tar.gz
- Upload date:
- Size: 15.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.11.2 readme-renderer/44.0 requests/2.32.3 requests-toolbelt/1.0.0 urllib3/2.2.3 tqdm/4.66.6 importlib-metadata/8.5.0 keyring/25.5.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.10.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 79bd1ab0abfa172df6fdde69a5f3bcf742e7afb9e3ae23d70b5f59c3c961aa6d |
|
MD5 | 2dc6b409dc1ebf240b471dd84c0d1845 |
|
BLAKE2b-256 | dedd100c06b5346b92dbe8c750f8fe611cfc434b9c7538a326cf15e0890743ff |
File details
Details for the file lightgbm_callbacks-0.1.13-py3-none-any.whl
.
File metadata
- Download URL: lightgbm_callbacks-0.1.13-py3-none-any.whl
- Upload date:
- Size: 16.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.11.2 readme-renderer/44.0 requests/2.32.3 requests-toolbelt/1.0.0 urllib3/2.2.3 tqdm/4.66.6 importlib-metadata/8.5.0 keyring/25.5.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.10.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 938a9ae6948f856d3dc1c5e4095a761a18d8a50f53ce8246bcf7bd6f577e3779 |
|
MD5 | abdaf6989f8596672696ba69b15ccce0 |
|
BLAKE2b-256 | be74f48bd932ab1c0d7f5f2a4f8487c08214a60950e68c9929c4c5e9f16282fd |