Skip to content

Releases: microsoft/LightGBM

v4.3.0

26 Jan 02:11
252828f
Compare
Choose a tag to compare

Changes

💡 New Features

🔨 Breaking

🚀 Efficiency Improvement

🐛 Bug Fixes

  • [R-package] [ci] remove unnecessary include in linear_tree_learner (fixes #6264) @jameslamb (#6265)
  • [cmake] [CUDA] ignore CUDA-specific source files in non-CUDA builds (fixes #6267) @sabjohnso (#6268)
  • [c++] include OpenMP-control files in MSBuild solution file (fixes #6238) @jameslamb (#6251)
  • [cmake] [swig] use CMake's built-in file-copying mechanisms instead of 'cp' @jameslamb (#6259)

📖 Documentation

🧰 Maintenance

v4.2.0

21 Dec 18:58
0a9a6bb
Compare
Choose a tag to compare

✨ v4.2.0 of the R package is now available on CRAN (link), the first major release of the R package in 2+ years.

✨ The Python package now accepts Apache Arrow Tables and Arrays (thanks @borchero!)

🔧 A critical bug in quantized training support is fixed

Changes

💡 New Features

  • [python-package] Allow to pass Arrow table for prediction @borchero (#6168)
  • [python-package] Allow to pass Arrow table and array as init scores @borchero (#6167)
  • [python-package] Allow to pass Arrow array as groups @borchero (#6166)
  • [python-package] Allow to pass Arrow array as weights @borchero (#6164)
  • [python-package] Accept numpy generators as random_state @david-cortes (#6174)
  • [python-package] Allow to pass Arrow array as labels @borchero (#6163)
  • [python-package] Allow to pass Arrow table as training data @borchero (#6034)

🔨 Breaking

  • [python-package] fix access to Dataset metadata in scikit-learn custom metrics and objectives @jameslamb (#6108)
  • [CUDA] drop CUDA 10 support, start supporting CUDA 12 (fixes #5789) @jameslamb (#6099)

🚀 Efficiency Improvement

🐛 Bug Fixes

📖 Documentation

🧰 Maintenance

v4.1.0

12 Sep 01:51
501ce1c
Compare
Choose a tag to compare

Changes

💡 New Features

🐛 Bug Fixes

  • Fix updates in random forest model using GOSS data sample strategy @mjmckp (#6017)
  • [R-package] Fix misdetected objective when passing lgb.Dataset instance to lightgbm() @david-cortes (#6005)
  • [python-package] make it possible to build wheels without internet connection (fixes #5979) @jameslamb (#6042)
  • fix percentile computation for regression objectives @zachary62 (#5848)
  • [CUDA] Set GPU device ID in threads @shiyu1994 (#6028)
  • [R-package] Fix error when passing categorical features to lightgbm() (fixes #6000) @david-cortes (#6003)
  • [R-package] limit number of threads used in tests and examples (fixes #5987) @jameslamb (#5988)

📖 Documentation

🧰 Maintenance


Note

This release of the R package was not submitted to CRAN, due to the issues documented in #5987.

v4.0.0

13 Jul 18:43
d73c6b5
Compare
Choose a tag to compare

Changes

This release contains all previously-unreleased changes since v3.3.1 over 1.5 years ago (link).

Summary of improvements:

  • totally-rewritten CUDA implementation, and more operations in the CUDA implementation performed on the GPU
  • quantized training can be used for greatly improved training speeds on CPU (paper link)
  • support for C++17
  • Python package:
    • now uses scikit-build-core (link) as its build backend
    • manylinux_2_28 Linux wheels now support GPU (OpenCL-based, not CUDA) build automatically... just pip install lightgbm then pass {"device": "gpu"} in params (thanks @jgiannuzzi!)
    • much more use of inline type hints, exported with py.typed so any code using LightGBM can benefit
    • support for Python 3.10, 3.11
    • support for pandas nullable types
    • configurable threshold (lgb.early_stopping(..., min_delta=n)) for how much eval metrics must improve to be considered "improved" for early stopping
    • custom objective functions in Dask
    • scikit-learn is no longer a required dependency
    • all callbacks are now pickleable (for better interoperability with e.g. ray, Dask) (thanks @Yard1!)
  • R package:
    • efficient support for more data types in prediction, like dgCMatrix and dsparseMatrix (thanks @david-cortes!)
    • much more idomatic interface... e.g. support for saveRDS() and readRDS() for Booster, print() and summary() methods for Dataset (thanks @david-cortes!)
    • various bug fixes related to multiple competing ways to provide parameters
    • support for R 4.2, 4.3

Summary of breaking changes:

  • Python package:
    • dropped most testing, promise of support for Python 3.6 (although it should still technically be installable)
    • dropped support for macOS Mojave (10.14)
    • made many functions and class attributes private, including significantly reducing what is pulled in by from lightgbm import *
    • removed setup.py, pip install --install-option support
    • remove support for pip install --install-option (to work with newer pip, see pypa/pip#11358)
    • dropped support for installation with MSBUild.exe ... that now requires compiling lib_lightgbm.dll separately and then building a wheel that bundles it
  • R package:
    • dropped support for Solaris
    • removed most support for passing parameters through ...
    • removed lgb.unloader()
    • switched to predict(newdata, type = ...) in predict(), for consistency with base R and most other machine learning projects

💡 New Features

🔨 Breaking

  • [python-package] make Booster and Dataset 'handle' attributes private (fixes #5313) @jameslamb (#5947)
  • [python-package] remove hard dependency on 'scikit-learn', fix minimal runtime dependencies @jameslamb (#5942)
  • [python-package] [ci] switch to PEP 517 / 518 builds (remove setup.py) (fixes #5061) @jameslamb (#5759)
  • [ci] [python-package] replace 'python setup.py' with a shell script @jameslamb (#5837)
  • [R-package] use C++17 in the CRAN package @jameslamb (#5690)
  • [python-package] make some Booster and Dataset attributes private @jameslamb (#5723)
  • [CUDA] consolidate CUDA versions @jameslamb (#5677)
  • [python-package] make public API members explicit with module-level all variables @jameslamb (#5655)
  • [ci] migrate CI from macOS 10.15 to 11 (fixes #5391) @StrikerRUS (#5396)
  • [ci] switch to manylinux_2_28 for Linux artifacts (fixes #5514, fixes #5589) @jameslamb (#5580)
  • fix: Adjust LGBM_DatasetCreateFromSampledColumn to handle distributed data @svotaw (#5344)
  • [python-package] allow custom weighing in fobj for scikit-learn API (closes #5027) @jmoralez (#5211)
  • [R-package] Use type argument to control prediction types @david-cortes (#5133)
  • [python-package] Use scikit-learn interpretation of negative n_jobs and change default to number of cores @david-cortes (#5105)
  • [python-package] remove Booster.set_attr() and Booster.attr() @jameslamb (#5272)
  • remove support for Solaris (fixes #5216) @jameslamb (#5226)
  • [R-package] stop automatically calculating eval metrics on training data in lightgbm() @jameslamb (#5209)
  • [R-package] remove lgb.unloader() @jameslamb (#5204)
  • [python-package] remove 'fobj' in favor of passing custom objective func...
Read more

v3.3.5

24 Jan 03:15
Compare
Choose a tag to compare

Changes

This is a special release, put up to prevent the R package from being archived on CRAN.

See #5661 and #5662 for context.

This release only contains the changes, relative to v3.3.4, necessary to prevent removal of the R package from CRAN.

💡 New Features

None

🔨 Breaking

None

🚀 Efficiency Improvement

None

🐛 Bug Fixes

  • [ci] [R-package] fix clang 15 warning about unqualified calls (fixes #5661) @jameslamb (#662)

📖 Documentation

None

🧰 Maintenance

None

v3.3.4

04 Jan 22:08
Compare
Choose a tag to compare

Changes

This is a special release, put up to prevent the R package from being archived on CRAN.

See #5618 and #5619 for context.

This release only contains the changes, relative to v3.3.3, necessary to prevent removal of the R package from CRAN.

💡 New Features

None

🔨 Breaking

None

🚀 Efficiency Improvement

None

🐛 Bug Fixes

📖 Documentation

None

🧰 Maintenance

v3.3.3

10 Oct 18:03
Compare
Choose a tag to compare

Changes

This is a special release, put up to prevent the R package from being archived on CRAN.

See #5502 and #5525 for context.

This release only contains the changes, relevant to v3.3.2, necessary to prevent removal of the R package from CRAN.

💡 New Features

  • [PARTIALLY: only for R-package] Add support for Visual Studio 2022 @StrikerRUS (#4889)

🔨 Breaking

None

🚀 Efficiency Improvement

None

🐛 Bug Fixes

📖 Documentation

None

🧰 Maintenance

v3.3.2

07 Jan 14:53
Compare
Choose a tag to compare

Changes

🐛 Bug Fixes

📖 Documentation

  • [docs] [R-package] update cran-comments for v3.3.1 release @jameslamb (#4738)

🧰 Maintenance

v3.3.1

27 Oct 22:59
d4851c3
Compare
Choose a tag to compare

Changes

💡 New Features

🐛 Bug Fixes

📖 Documentation

🧰 Maintenance

v3.3.0

09 Oct 02:07
fa4ecf4
Compare
Choose a tag to compare

Changes

💡 New Features

🔨 Breaking

  • [python] deprecate "auto" value of ylabel argument of plot_metric() function @StrikerRUS (#4624)
  • [python] rename print_evaluation() into log_evaluation() @StrikerRUS (#4604)
  • [RFC][python] deprecate advanced args of train() and cv() functions and sklearn wrapper @StrikerRUS (#4574)
  • [RFC][python] deprecate silent and standalone verbose args. Prefer global verbose param @StrikerRUS (#4577)
  • [python] add 'auto' value for importance_type param in plotting @StrikerRUS (#4570)
  • [dask] Make output of feature contribution predictions for sparse matrices match those from sklearn estimators (fixes #3881) @jameslamb (#4378)
  • [R-package] change default nrounds to 100 to match LightGBM core library default @david-cortes (#4197)

🚀 Efficiency Improvement

🐛 Bug Fixes

📖 Documentation

🧰 Maintenance

Read more