Light Gbm: v3.2.0 Release

Release date:
March 22, 2021
Previous version:
v3.1.1 (released December 8, 2020)
Magnitude:
16,241 Diff Delta
Contributors:
39 total committers
Data confidence:
Commits:

244 Commits in this Release

Ordered by the degree to which they evolved the repo in this version.

Authored December 24, 2020
Authored January 13, 2021
Authored December 28, 2020

Top Contributors in v3.2.0

jameslamb
StrikerRUS
btrotta
thomasjpfan
jmoralez
AlbertoEAF
SfinxCZ
ffineis
zenggyu
ShrillShrestha

Directory Browser for v3.2.0

We haven't yet finished calculating and confirming the files and directories changed in this release. Please check back soon.

Release Notes Published

Changes

πŸ’‘ New Features

  • [SWIG] Add streaming data support + cpp tests @AlbertoEAF (#3997)
  • [dask] Include support for init_score @jmoralez (#3950)
  • [dask] [python-package] include support for column array as label @jmoralez (#3943)
  • [dask] allow tight control over ports @jameslamb (#3994)
  • Run tests and build Python wheels for aarch64 architecture @StrikerRUS (#3948)
  • [dask] Add support for 'pred_leaf' in Dask estimators (fixes #3792) @jameslamb (#3919)
  • [SWIG] add size_t manipulation functions @shuttie (#3895)
  • Add new task type: "save_binary". @cyfdecyf (#3651)
  • [CUDA] added support for Clang @StrikerRUS (#3886)
  • [python] Start supporting Python 3.9 @StrikerRUS (#3693)
  • [python] Allow to register custom logger in Python-package @StrikerRUS (#3820)
  • [dask] Support pred_contrib in Dask predict() methods (fixes #3713) @jameslamb (#3774)
  • [python-package] [dask] Add DaskLGBMRanker @ffineis (#3708)
  • [R-package] Add GPU install options (fixes #3765) @jameslamb (#3779)
  • [R-package] enable use of trees with linear models at leaves (fixes #3319) @jameslamb (#3699)
  • support more filesystem as the storage for model file @htgeis (#3730)
  • [R-package] add support for non-ASCII feature names (fixes #2983) @jameslamb (#3647)
  • [R-package] allow access to params in Booster @jameslamb (#3662)
  • Trees with linear models at leaves @btrotta (#3299)
  • [python] [dask] add initial dask integration @SfinxCZ (#3515)
  • [python] Windows wheels that support GPUs via OpenCL @itamarst (#3403)

πŸ”¨ Breaking

  • [ci][SWIG] update SWIG version and use separate CI job to produce SWIG artifacts @StrikerRUS (#3727)
  • [ci] indicate support of Big Sur and drop High Sierra @StrikerRUS (#3749)
  • [python] Drop Python 2 support @StrikerRUS (#3581)

πŸš€ Efficiency Improvement

  • [dask] use random ports in network setup @jmoralez (#3823)
  • Optimize array-from-ctypes in basic.py @asford (#3927)
  • Change Dataset::CopySubrow from group-wise to column-wise @shiyu1994 (#3720)
  • [python-package] remove unused Eigen files, compile with EIGEN_MPL2_ONLY (fixes #3684) @jameslamb (#3685)

πŸ› Bug Fixes

  • Range check for DCG position discount lookup @ashok-ponnuswami-msft (#4069)
  • Fix parsing of non-finite values @mjmckp (#3942)
  • Set is_linear_ to false when it is absent from the model file @shiyu1994 (#4056)
  • Fix evalution of linear trees with a single leaf. @mjmckp (#3987)
  • Use high precision conversion from double to string in Tree::ToString() for new linear tree members @mjmckp (#3938)
  • Fix for CreatePredictor function and VS2017 Debug build @mjmckp (#3937)
  • Fix access violation exception that can occur during invocation of loop lambda function when inner_start >= inner_end in 'For' template. @mjmckp (#3936)
  • [dask] remove extra 'client' kwarg in DaskLGBMRegressor @jameslamb (#3906)
  • [CUDA] Support CUDA 9 and test different CUDA versions at CI @StrikerRUS (#3880)
  • [dask] fix Dask docstrings and mimic sklearn wrapper importing way @StrikerRUS (#3855)
  • [python-package] respect parameter aliases for network params @jameslamb (#3813)
  • Create a new TcpSocket when connection failed @wjsi (#3840)
  • [dask] Drop aliases of core network parameters @StrikerRUS (#3843)
  • Don't copy more than has been allocated to device_features. @ChipKerchner (#3752)
  • Fix thread-safety in C API's PredictSingleRow @AlbertoEAF (#3771)
  • [dask] allow parameter aliases for local_listen_port, num_threads, tree_learner (fixes #3671) @jameslamb (#3789)
  • [dask] [python-package] Search for available ports when setting up network (fixes #3753) @jameslamb (#3766)
  • Update CUDA treelearner according to changes introduced for linear trees @StrikerRUS (#3750)
  • Ensure CUDA vector length is consistent with AlignedSize @ChipKerchner (#3748)
  • Initialize any_nan_ property of LinearTreeLearner @btrotta (#3709)
  • Fix bug in corner case with histogram bin mismatch @shiyu1994 (#3694)
  • move CheckParamConflict() after LogLevel processing @h-vetinari (#3742)
  • Fix bug in ExtractFeaturesFromMemory when predidct_fun_ is used @shiyu1994 (#3721)
  • Fix compiler warnings caused by implicit type conversion (fixes #3677) @btrotta (#3729)
  • fix test_monotone_constraints often fails on MPI builds @CharlesAuguste (#3683)
  • [R-package] remove broken default for file in readRDS / saveRDS functions @jameslamb (#3664)
  • Added static cast from double to float @sisco0 (#3678)
  • [docs] fix R documentation builds (fixes #3655) @jameslamb (#3656)
  • [python] add average precision into higher_better eval @penolove (#3649)
  • Fix model locale issue and improve model R/W performance. @AlbertoEAF (#3405)

πŸ“– Documentation

  • [docs] add Yu Shi to repo maintainers @StrikerRUS (#4060)
  • [dask] add tutorial documentation (fixes #3814, fixes #3838) @jameslamb (#4030)
  • [docs] Add alt text on images in index.rst @marcelonieva7 (#4029)
  • [docs] update description of deterministic parameter @shiyu1994 (#4027)
  • [docs] Add alt text to image in Parameters-Tuning.rst @subhamagrawal7 (#4035)
  • [docs] Add FLAML for efficient hyperparameter optimization @qingyun-wu (#4013)
  • [DOCS] Update docs to note that pred_contrib is not available for linear trees @btrotta (#4006)
  • [doc] Reorganize documentation on distributed learning (fixes #3596) @jameslamb (#3951)
  • [docs] Change some 'parallel learning' references to 'distributed learning' @jameslamb (#4000)
  • [docs] fix typos in network docs @jameslamb (#3960)
  • [docs] add reference to Rust binding @StrikerRUS (#3954)
  • [R-package] fix duplicated return values in docs @philip-khor (#3955)
  • [DOCS] Update docs about linear tree and monotone constraints @btrotta (#3945)
  • [docs][dask] add versionadded note to Dask docs @jameslamb (#3935)
  • [docs][python] fix shape description of returned result for predict_proba @StrikerRUS (#3933)
  • [dask] [docs] Fix inaccuracies in API docs for Dask module (fixes #3871) @jameslamb (#3930)
  • [docs] fix typo: one-hot coding should be one-hot encoding @gauravchopracg (#3898)
  • [docs] simplify bug report template @jameslamb (#3921)
  • [docs][dask] Add type of client_ property to docs @StrikerRUS (#3902)
  • [docs] make link checks badge clickable @StrikerRUS (#3901)
  • [CUDA][docs] explicitly require CUDA 9.0 or higher @StrikerRUS (#3885)
  • [docs] improve wordings and code style @StrikerRUS (#3887)
  • [docs] document CUDA version support @StrikerRUS (#3428)
  • [dask] Add type hints in Dask package @jameslamb (#3866)
  • [docs] fix docs for machine_list_filename param @StrikerRUS (#3863)
  • [R-package][docs] improve grouping in R API reference @StrikerRUS (#3854)
  • [R-package] Remove duplicated return values from docs @philip-khor (#3850)
  • [dask] warn if attempting to use tree_learner other than data parallel @jameslamb (#3848)
  • [dask][docs] initial setup for Dask docs @StrikerRUS (#3822)
  • [docs] bump min sphinx_rtd_theme version @StrikerRUS (#3803)
  • [docs] remove unused argument in docs config @StrikerRUS (#3801)
  • [docs] fix min CMake version in docs for macOS @StrikerRUS (#3799)
  • [docs] expand documentation on 'group' for ranking task @jameslamb (#3772)
  • [docs][python] add conda-forge install instructions @raybellwaves (#3544)
  • [docs][R-package] change obsolete wordings in R README @StrikerRUS (#3728)
  • [docs] [R-package] improve R-package docs on testing @jameslamb (#3724)
  • [docs] Remove Gitter and Slack (fixes #3689) @jameslamb (#3710)
  • [docs] add doc on min_data_in_leaf approximation (fixes #3634) @jameslamb (#3690)
  • [docs] add link to optuna examples @StrikerRUS (#3680)
  • [docs] fix MLflow spelling @StrikerRUS (#3668)
  • add 'mlr3learners.lightgbm' to README @t-wojciech (#3666)
  • [docs] add link to ML Flow and treesnip in LightGBM docs @jameslamb (#3663)
  • [docs] Add details on improving training speed @jameslamb (#3628)
  • [docs] added daal4py to related projects @StrikerRUS (#3638)
  • [docs] add Kubeflow operator repo and link to example @StrikerRUS (#3632)

🧰 Maintenance

  • v3.2.0 release @guolinke (#3872)
  • store all CMake files in one place @StrikerRUS (#4087)
  • [ci] upgrade R CI scripts to work on Ubuntu 20.04 @jameslamb (#4084)
  • [dask] remove unused imports from typing @jameslamb (#4079)
  • [ci] install Dask from main conda channel @StrikerRUS (#4076)
  • [tests][dask] simplify code in Dask tests @StrikerRUS (#4075)
  • [dask] [ci] fix flaky network-setup test @jameslamb (#4071)
  • [python-package] Some mypy fixes @AlbertoEAF (#3916)
  • [python-package] add type hints on Booster.set_network() @jameslamb (#4068)
  • [ci] run Dask examples on CI @StrikerRUS (#4064)
  • [python-package] Add type hint to the libpath file @deddyjobson (#4070)
  • Add CMake option to enable sanitizers and build gtest @hcho3 (#3555)
  • [ci] set 'pending' commit status for running R Solaris optional workflow @StrikerRUS (#4061)
  • [dask] raise more informative error for duplicates in 'machines' (fixes #4057) @jameslamb (#4059)
  • [dask] include multiclass-classification task in tests @jmoralez (#4048)
  • [ci] add CMake + R 3.6 test back (fixes #3469) @jameslamb (#4053)
  • [ci] fix R CMD CHECK note about example timings (fixes #4049) @jameslamb (#4055)
  • [ci] prevent getting incompatible dask and distributed versions @jameslamb (#4054)
  • [ci] ignore untitle Jupyter notebooks in .gitignore @jameslamb (#4047)
  • [ci] [R-package] upgrade to R 4.0.4 in CI @jameslamb (#4042)
  • [dask] [ci] add support for scikit-learn 0.24+ in tests (fixes #4031) @jameslamb (#4032)
  • [tests][dask] simplify fit calls in Dask tests @StrikerRUS (#4018)
  • [tests][python] Add test for single leaf in linear tree @StrikerRUS (#4015)
  • [dask] Reuse addresses saved in variable @StrikerRUS (#4016)
  • [ci] prefer older binary to new source for R packages on Mac builds (fixes #4008) @jameslamb (#4010)
  • [dask] use more specific method names on _DaskLGBMModel @jameslamb (#4004)
  • remove commented-out code in cross-entropy metric source @jameslamb (#3999)
  • [tests][dask] add scikit-learn compatibility tests (fixes #3894) @imjwang (#3947)
  • [tests][dask] make find-open-port test more reliable @jameslamb (#3993)
  • [ci][python] hotfix imports order @StrikerRUS (#3992)
  • [ci][python] run isort in CI linting job @StrikerRUS (#3990)
  • [ci][python] apply isort to python-package/lightgbm/compat.py #3958 @zyxue (#3968)
  • [ci][python] apply isort to python-package/lightgbm/engine.py #3958 @zyxue (#3970)
  • [ci][python] apply isort to tests/python_package_test/test_engine.py #3958 @zyxue (#3981)
  • [ci][python] apply isort to python-package/lightgbm/basic.py #3958 @zyxue (#3967)
  • [ci][python] apply isort to python-package/lightgbm/init.py #3958 @zyxue (#3966)
  • [ci][python] apply isort to python-package/lightgbm/sklearn.py #3958 @zyxue (#3973)
  • [ci][python] apply isort to tests/python_package_test/test_basic.py #3958 @zyxue (#3977)
  • [ci][python] apply isort to tests/python_package_test/test_consistency.py #3958 @zyxue (#3978)
  • [ci][python] apply isort to tests/python_package_test/test_plotting.py #3958 @zyxue (#3982)
  • [ci][python] apply isort to tests/python_package_test/test_utilities.py #3958 @zyxue (#3984)
  • [ci][python] apply isort to python-package/setup.py #3958 @zyxue (#3974)
  • [ci][python] apply isort to python-package/lightgbm/plotting.py #3958 @zyxue (#3972)
  • [ci][python] apply isort to tests/cpp_test/test.py #3958 @zyxue (#3976)
  • [ci][python] apply isort to tests/c_api_test/test_.py #3958 @zyxue (#3975)
  • [ci][python] apply isort to tests/python_package_test/test_dual.py #3958 @zyxue (#3980)
  • [ci][python] apply isort to python-package/lightgbm/libpath.py #3958 @zyxue (#3971)
  • [dask] reuse len(parts) as n_parts @ffineis (#3985)
  • [ci][python] apply isort to tests/python_package_test/test_dask.py #3958 @zyxue (#3979)
  • [ci][python] apply isort to examples/python-guide/sklearn_example.py #3958 @zyxue (#3965)
  • [ci][python] apply isort to python-package/lightgbm/dask.py #3958 @zyxue (#3969)
  • [python-package] fix some warnings from mypy @tara-jawahar (#3891)
  • [ci][python] apply isort to examples/python-guide/simple_example.py #3958 @zyxue (#3964)
  • [ci][python] apply isort to examples/python-guide/plot_example.py #3958 @zyxue (#3963)
  • [ci][python] apply isort to examples/python-guide/logistic_regression.py #3958 @zyxue (#3962)
  • [ci][python] apply isort to examples/python-guide/advanced_example.py #3958 @zyxue (#3961)
  • [ci][python] apply isort to docs/conf.py (#3958) @zyxue (#3959)
  • openmp_wrapper.h stubs signature use __GOMP_NOTHROW @bsergean (#3923)
  • [dask] test that Dask automatically treats 'category' columns as categorical features @jameslamb (#3932)
  • fix compilation warnings in CUDA treelearner @StrikerRUS (#3889)
  • [ci] prefer curl to wget @StrikerRUS (#3928)
  • [dask] test training when a worker has no data @jmoralez (#3897)
  • [ci] remove unused variable from PATH @StrikerRUS (#3926)
  • [docs] fix typo in ChatOps command @StrikerRUS (#3922)
  • [ci] encode token in the same way as e-mail address for RHub @StrikerRUS (#3920)
  • [dask] Add unit tests that signatures are the same between Dask and scikit-learn estimators @GOusignu (#3911)
  • [ci] update e-mail and token for R Hub builds @StrikerRUS (#3917)
  • [ci][R-package] run R CRAN checks on Solaris by optional workflow @StrikerRUS (#3913)
  • [dask] Support Dask dataframes with 'category' columns (fixes #3861) @jameslamb (#3908)
  • fix typos in log messages @jameslamb (#3914)
  • [dask] remove unused private _client attribute @StrikerRUS (#3904)
  • [ci] Rename linkchecker job @StrikerRUS (#3903)
  • [dask] remove 'client' kwarg from fit() and predict() (fixes #3808) @jameslamb (#3883)
  • [ci] install Linkchecker only for check-links job @StrikerRUS (#3893)
  • [ci] move link checking to a cron job @jameslamb (#3890)
  • [dask] [python] client.rebalance on dask ranker test @ffineis (#3892)
  • [ci] added compiler in CUDA job name @StrikerRUS (#3888)
  • [docs][ci] drop special dependency requirements for RTD site @StrikerRUS (#3884)
  • [dask][tests] increase client close timeout for Dask tests @StrikerRUS (#3879)
  • [dask] fix teardown issues in Dask tests (fixes #3829) @jameslamb (#3869)
  • [ci][R-package] remove CI workaround with manual withr installation @StrikerRUS (#3878)
  • [ci] fall back to source installs of R packages if binary missing (fixes #3875) @jameslamb (#3876)
  • [ci] ignore CUDA-related strings in Python logger test @StrikerRUS (#3874)
  • [ci] fix R linting job (fixes #3873) @jameslamb (#3877)
  • [ci] improve and run CUDA jobs for every commit and PR @StrikerRUS (#3825)
  • [ci] add mypy to linting task @jameslamb (#3868)
  • [dask] add tests on warnings, fix incorrect variable in log @jameslamb (#3865)
  • [python] simplify param aliases handling @StrikerRUS (#3864)
  • [python] use better names for imported classes from extra libraries @StrikerRUS (#3862)
  • [python][tests] minor Python tests cleanup @StrikerRUS (#3860)
  • [dask] rename _LGBMModel to _DaskLGBMModel @jameslamb (#3859)
  • [ci] run artifacts packaging job on Ubuntu @StrikerRUS (#3757)
  • [python-package] migrate test_sklearn.py to pytest @thomasjpfan (#3844)
  • [dask] [python] Store co-local data parts as dicts instead of lists @ffineis (#3853)
  • [dask] merge local_predict tests into other tests (fixes #3833) @ShrillShrestha (#3842)
  • [dask] factor dask-ml out of tests (fixes #3796) @jameslamb (#3849)
  • [dask][tests] skip Dask tests when Dask is not installed and improve imports in Dask tests @StrikerRUS (#3852)
  • [dask][tests] reduce code duplication in Dask tests @StrikerRUS (#3828)
  • [ci] improve optional checks @StrikerRUS (#3826)
  • [dask][tests] move make_ranking into utils @StrikerRUS (#3827)
  • [ci] make sure we use documented Xcode version for producing artifacts @StrikerRUS (#3824)
  • [python][tests] transfer test_save_and_load_linear to test_engine @StrikerRUS (#3821)
  • [python-package] migrate test_plotting.py to pytest @thomasjpfan (#3811)
  • [dask] Address flaky test_ranker tests @ffineis (#3819)
  • [dask] [python-package] use keyword args for internal function calls @jameslamb (#3755)
  • [python][tests] use default tolerance for dual GPU+CPU test @StrikerRUS (#3810)
  • Move compute and eigen libraries to external_libs folder @StrikerRUS (#3809)
  • [python][tests] migrate test_engine.py to pytest @thomasjpfan (#3800)
  • [python][tests] remove unused import @StrikerRUS (#3806)
  • remove unused code @StrikerRUS (#3802)
  • [python-package] migrate test_consistency.py to pytest @thomasjpfan (#3798)
  • [dask] fix Dask import order @jameslamb (#3788)
  • [docs] fix current RTD failures @StrikerRUS (#3787)
  • [dask] reduce test times @jameslamb (#3786)
  • [ci][docs] set limit for max requests per second to one host in linkchecker @StrikerRUS (#3785)
  • Minor C API cleanup in predictor & SingleRowPredictor @AlbertoEAF (#3777)
  • [ci] revert forcing CMake to try compile static library for R-package @StrikerRUS (#3784)
  • [R-package][tests] remove unused lines in tests for the speedup @StrikerRUS (#3783)
  • [ci][docs] update linkchecker @StrikerRUS (#3773)
  • [tests][python] completely remove tempfile from test_basic @StrikerRUS (#3767)
  • [python][tests] Migrates test_basic.py to use pytest @thomasjpfan (#3764)
  • [ci] Slightly optimize optional workflows checks @StrikerRUS (#3762)
  • [ci] improve experience with optional GitHub workflows @StrikerRUS (#3740)
  • [ci] remove Travis (fixes #3519) @jameslamb (#3672)
  • [ci] move Python Mac jobs from Travis to GitHub Actions @jameslamb (#3745)
  • [ci] run Azure linux tasks on self-hosted runner pool @jameslamb (#3737)
  • [ci][docs] replace file extensions in docs during Sphinx build @StrikerRUS (#3738)
  • [ci] Move check-docs and lint jobs off Travis @jameslamb (#3726)
  • [R-package] Add explicit return statement to R functions. @zenggyu (#3703)
  • [ci] remove maxParallel limits on Azure DevOps @jameslamb (#3725)
  • [ci] remove flaky MinGW job for R @StrikerRUS (#3723)
  • [python][tests] small Python tests cleanup @StrikerRUS (#3715)
  • [python][ci] remove line in MANIFEST for nonexistent file @StrikerRUS (#3711)
  • [R-package] remove unused R_AS_INT64 @jameslamb (#3686)
  • [R-package] fix incorrect passing builds in valgrind checks (fixes #3704) @jameslamb (#3705)
  • [ci] fix deprecated 'brew cask install' call @jameslamb (#3692)
  • small code and docs refactoring @StrikerRUS (#3681)
  • [ci] remove unused CI checks, other small simplifications @jameslamb (#3688)
  • [ci] speed up files downloading for Windows CI @StrikerRUS (#3682)
  • [docs][ci] added docs about GPU support out of the box for Windows wheels and small refactoring for dual test @StrikerRUS (#3660)
  • [docs] fix RTD builds @StrikerRUS (#3644)
  • [python-package] remove unnecessary files to reduce sdist size @jameslamb (#3639)
  • clarify warning about small target values with MAPE (fixes #3608) @jameslamb (#3615)
  • [ci] Bump version for development @StrikerRUS (#3633)