Releases: microsoft/LightGBM
Releases · microsoft/LightGBM
v3.3.1
Changes
💡 New Features
- [R-package] Expand user paths in file names @david-cortes (#4687)
🐛 Bug Fixes
- [python][sklearn] Allow non-serializable objects in callbacks argument @StrikerRUS (#4723)
- Fix ASAN issues with
std::function
usage @david-cortes (#4673) - fix behavior for default objective and metric @StrikerRUS (#4660)
📖 Documentation
- [docs] Add Tong Wu and Zhiyuan He as code owners @shiyu1994 (#4717)
- [docs] fix R API link to point to the current version of docs @StrikerRUS (#4691)
- [docs] update comment about pre-installed Java version for SWIG build @StrikerRUS (#4710)
- [docs] fix C API docs rendering @StrikerRUS (#4688)
- [docs] Add avatar to Yu Shi in R docs @StrikerRUS (#4690)
🧰 Maintenance
- release v3.3.1 @jameslamb (#4715)
- [ci] introduce CI jobs that mimic CRAN gcc-ASAN and clang-ASAN tests (fixes #4674) @jameslamb (#4678)
- [R-package][test] add reference to the original issue in R-package test @StrikerRUS (#4720)
- [python] Improve error message for plot_metric with Booster @js850 (#4709)
- [R-package] allow for small numerical differences in Booster test @jameslamb (#4714)
- Fix some paramater hints when loading from binary file @hzy46 (#4701)
- [ci] fix CI Windows script to use downloaded SWIG, not the pre-installed one @StrikerRUS (#4711)
- [ci] Rename RTD config file @StrikerRUS (#4689)
- [ci] Bump Google Test version from
1.10.0
to1.11.0
@StrikerRUS (#4683) - [python] fix mypy error in engine.py @rakki-18 (#4675)
- [python] fix mypy error in setup.py @rakki-18 (#4671)
- update Guolin's e-mail in
setup.py
@StrikerRUS (#4663) - Replace deprecated
licenseUrl
field withlicense
one in.nuspec
file @StrikerRUS (#4669) - [python][sklearn] use
__sklearn_is_fitted__()
in all estimator fitness checks @StrikerRUS (#4654) - [ci] Bump version for development @StrikerRUS (#4662)
v3.3.0
Changes
💡 New Features
- allow inclusion in C programs @drewmiller (#4608)
- add param aliases from scikit-learn @StrikerRUS (#4637)
- [python] add placeholders to titles in plotting functions @StrikerRUS (#4614)
- [python-package] Support 2d collections as input for
init_score
in multiclass classification task @jmoralez (#4150) - [python] add parameter object_hook to method dump_model @xadupre (#4533)
- [python] support Dataset.get_data for Sequence input. @cyfdecyf (#4472)
- [python] allow to pass some params as pathlib.Path objects @StrikerRUS (#4440)
- [python-package] Create Dataset from multiple data files @cyfdecyf (#4089)
- [dask] add support for eval sets and custom eval functions @ffineis (#4101)
- Add linear leaf models to json output (fixes #4186) @btrotta (#4329)
- [dask] run Dask tests on aarch64 architecture @StrikerRUS (#3996)
- [python] handle arbitrary length feature names in Python-package @StrikerRUS (#4293)
- Precise text file parsing @cyfdecyf (#4081)
- added aliases to params @StrikerRUS (#4205)
- [swig] add wrapper for LGBM_DatasetGetFeatureNames @shuttie (#4103)
🔨 Breaking
- [python] deprecate "auto" value of
ylabel
argument ofplot_metric()
function @StrikerRUS (#4624) - [python] rename
print_evaluation()
intolog_evaluation()
@StrikerRUS (#4604) - [RFC][python] deprecate advanced args of
train()
andcv()
functions and sklearn wrapper @StrikerRUS (#4574) - [RFC][python] deprecate
silent
and standaloneverbose
args. Prefer globalverbose
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
- simplify and speed up comparisons for splits with identical gains @jameslamb (#4542)
- factor out .size() checks in GetDataType() @jameslamb (#4541)
- consolidate duplicate conditions in TextReader @jameslamb (#4530)
- [python] replace numpy.zeros with numpy.empty for the speedup @StrikerRUS (#4410)
- [R-package] avoid unnecessary computation of std deviations in lgb.cv() @jameslamb (#4360)
- Replace division of exponential in Gamma loss @lorentzenchr (#4289)
🐛 Bug Fixes
- [R-package] fix segfaults caused by missing Booster and Dataset handles (fixes #4208) @jameslamb (#4586)
- move Network method implementations from network.h to network.cpp (fixes #4464) @jameslamb (#4496)
- [R-package] prevent memory leak if pointer fails to allocate @david-cortes (#4613)
- [R-package] Fix R memory leaks (fixes #4282, fixes #3462) @david-cortes (#4597)
- [python][sklearn] respect
eval_at
aliases in keyword arguments @StrikerRUS (#4599) - [dask] Fixed Dask type annotation @StrikerRUS (#4558)
- [R-package] allow construction of Dataset from CSV without header (fixes #4553) @jameslamb (#4554)
- [R-package] fix OpenMP checking on macOS (fixes #4131) @jameslamb (#4507)
- [R-package] pass R-configured compiler flags to checks in configure @jameslamb (#4506)
- [R-package] use C++ compiler for pre-compile checks on Windows @jameslamb (#4504)
- [dask] find all needed ports in each host at once (fixes #4458) @jmoralez (#4498)
- Fix undefined behavior with NaN input in CategoricalDecision() @hcho3 (#4468)
- [dask] determine output shape of array in predict (fixes #4285) @jmoralez (#4351)
- [fix] fix Reservoir Sampling in Sample of random.h (fix #4371 and #4134) @shiyu1994 (#4450)
- [CUDA] fix CUDA memory error by reducing block number (#4315) @RobinDong (#4327)
- [R-package] fix protection stack imbalance and unprotected objects (fixes #4390) @fabsig (#4391)
- [dask] pass additional predict() parameters through when input is a Dask Array @jameslamb (#4399)
- fix param aliases @StrikerRUS (#4387)
- sync for init score of binary objective function @loveclj (#4332)
- Fix undefined behavior in ArrayArgs::Partition() when interval size is 1 (fixes #4272) @kruda (#4280)
- Log warning instead of fatal when parsing float get under/overflow. @cyfdecyf (#4336)
- [fix] fix Sample when sampling only one element (fix #4134) @shiyu1994 (#4324)
- [R-package] move more finalizer logic into C++ side to address memory leaks @jameslamb (#4353)
- [tests][python] fix f-string in test_dask.py @StrikerRUS (#4373)
- [fix] skip empty bins when calculating cnt_in_bin in BinMapper::FindBin (fix #4301) @shiyu1994 (#4325)
- [fix] fix GatherInfoForThresholdNumerical boundary (fix #4286) @shiyu1994 (#4322)
- fix calculation of weighted gamma loss (fixes #4174) @mayer79 (#4283)
- [R-package] prevent symbol lookup conflicts (fixes #4045) @jameslamb (#4155)
- [R-package] avoid misleading warnings when using interaction constraints (fixes #4108) @jameslamb (#4232)
- [fix] Fix bug in data distributed learning with local empty leaf @shiyu1994 (#4185)
- fix: Dataset::CreateValid init fields which saves to binary. @cyfdecyf (#4177)
📖 Documentation
- [docs] add Mars to docs @StrikerRUS (#4616)
- [docs] update link to MinGW-w64 site @StrikerRUS (#4606)
- [docs] add lightgbm_ray to docs @jameslamb (#4584)
- [docs][python] Refer to functions as
callable
in docstrings @StrikerRUS (#4575) - [R-package] fix warnings in demos @jameslamb (#4569)
- [R-package] fix warnings in examples @jameslamb (#4568)
- [python][docs] Refer to string type as
str
in docstrings @StrikerRUS (#4565) - [docs] add José Morales to repo maintainers @StrikerRUS (#4563)
- [docs] update links to SynapseML (former MMLSpark) @StrikerRUS (#4564)
- [python][docs] Refer to string type as
str
and add commas inlist of ...
types @StrikerRUS (#4557) - [docs][python] Improve description of
eval_result
argument inrecord_evaluation()
@StrikerRUS (#4559) - [doc] Add link to Neptune hyperparam tuning guide @Blaizzy (#4529)
- [docs] Update link to
daal4py
in README @StrikerRUS (#4532) - [docs] Add notes in installation guide, including ones about OpenMP @StrikerRUS (#4520)
- [docs] [R-package] use CRAN-style builds when building pkgdown site @jameslamb (#4513)
- [docs] Update link to mlr3-compliant interface in README @StrikerRUS (#4509)
- [docs] document CLI behavior when label_column is omitted @jameslamb (#4485)
- [docs] clarify description of prediction early stopping @StrikerRUS (#4411)
- [docs][python] add versionadded to Sequence class in Python wrapper @StrikerRUS (#4441)
- [docs] add lleaves to README @StrikerRUS (#4431)
- [docs] Add shapash to the list of related projects @StrikerRUS (#4408)
- [docs] update link to LightGBM example in MMLSpark repo @StrikerRUS (#4401)
- [docs][R-package] add authors in R-package description @StrikerRUS (#4395)
- fix: typo in python class _InnerPredictor docstring @cyfdecyf (#4389)
- [dask] Dask Vector types for group, init_score, sample_weights (fixes #4375) @ffineis (#4380)
- [docs] document sanitizers @StrikerRUS (#4365)
- [docs][python] enhance
keep_training_booster
param description @StrikerRUS (#4364) - [docs] add anchor for nightly builds in docs @StrikerRUS (#4366)
- [docs] document how to pass multi-value params from Python and R (fixes #4345) @jameslamb (#4346)
- [docs] make building of C++ tests section collapsable @StrikerRUS (#4340)
- [docs] replace broken mmlspark notebook link in docs @jameslamb (#4303)
- [docs] clarify docs for LGBM_BoosterGetEvalNames and LGBM_BoosterGetEvalCounts (fixes #4264) @jameslamb (#4270)
- [docs][R-package] update docs on C++ interface @jameslamb (#4257)
- [docs][python] update some docs related to custom objective @StrikerRUS (#4245)
- [docs][python][scikit-learn] added note for LGBMRanker @StrikerRUS (#4243)
- [docs] fix broken MS MPI link in Installation Guide @jameslamb (#4224)
- [R-package] clarify parameter documentation (fixes #4193) @jameslamb (#4202)
- [docs][R-package] Update the explanation of num_threads (fixes #4192) @issactoast (#4199)
- [docs] add working dir to R package docker run examples @jameslamb (#4190)
- [docs] fix markdown in docs @StrikerRUS (#4191)
- [docs] Add changes to gcc-tips @akshitadixit (#4187)
- [docs] bring back macOS installation method with Homebrew formula in docs @StrikerRUS (#4182)
🧰 Maintenance
- v3.3.0 release (fixes #4310) @jameslamb (#4633)
- fix possible precision loss in xentropy and fair loss objectives @jameslamb (#4651)
- [tests][python-package] refactor list_to_1d_numpy test to run without pandas installed @jmoralez (#4639)
- [python] add type hints to _safe_call @strobelTha (#4641)
- remove unused DCGCalculator::CalDCGAtK() @jameslamb (#4650)
- [python][sklearn] add
__sklearn_is_fitted__()
method to be better compatible with scikit-learn API @StrikerRUS (#4636) - [ci] Use the latest gcc version in macOS CI jobs @StrikerRUS (#4640)
- remove duplicated debug printing in
CMakeLists.txt
for MPI @StrikerRUS (#4644) - remove unused BinMapper::SizeForSpecificBin() @jameslamb (#4643)
- [ci] ignore certificates for kitware apt channel in CUDA jobs (fixes #4646) @jameslamb (#4648)
- [ci] bump CUDA version from 11.4.0 to 11.4.2 at CI @StrikerRUS (#4628)
- [R-package] introduce Dataset methods set_field() and get_field() @jameslamb (#4571)
- [ci] Recover running CUDA tests at CI (fixed #4611) @shiyu1994 (#4621)
- [ci] Run cmakelint at CI and fix some errors @StrikerRUS (#4617)
- [python] initialize installation options with boolean values in
setup.py
@StrikerRUS (#4620) - [python] fix mypy error in
dask.py
@StrikerRUS (#4615) - [ci] Stop running CUDA tests at CI @StrikerRUS (#4611)
- [R-package] avoid unnecessary computation and add tests for Dataset set_reference() method @jameslamb (#4587)
- [ci] fix link to LightGBM public e-mail @StrikerRUS (#4603)
- [tests][dask] Use workers hostname in tests (fixes #4594) @jmoralez (#4595)
- p...
v3.2.1
Changes
💡 New Features
- [tests][dask] Add voting_parallel algorithm in tests (fixes #3834) @jmoralez (#4088)
- [dask] Include support for raw_score in predict (fixes #3793) @jmoralez (#4024)
🔨 Breaking
- [docs] remove macOS installation method with Homebrew formula @StrikerRUS (#4122)
🐛 Bug Fixes
- enforce interaction constraints with monotone_constraints_method = intermediate/advanced @ChristophAymannsQC (#4043)
- [dask] make random port search more resilient to random collisions (fixes #4057) @jameslamb (#4133)
- [dask] run one training task on each worker @jameslamb (#4132)
- Fix tcp_no_deplay setting by using int type @htgeis (#4058)
📖 Documentation
- [docs] update link to Boost binaries @StrikerRUS (#4157)
- [docs] add missed CUDA device type in docs @StrikerRUS (#4130)
- [docs] Add alt text on images (related to #4036) @akshitadixit (#4038)
- [docs] add dtreeviz to the list of external projects @StrikerRUS (#4098)
- [docs] add Hummingbird to the list of external projects @StrikerRUS (#4096)
🧰 Maintenance
- v3.2.1 release @jameslamb (#4169)
- [python] Migrated to f-strings for ..nuget\create_nuget.py #4136 @coldkillerr (#4162)
- [ci] Add debian-clang-devel CI job for the R package @jameslamb (#4164)
- [python-package] Add type hints to the callback file @deddyjobson (#4093)
- [ci] Restrict breathe version at CI @StrikerRUS (#4168)
- [ci] upgrade R to 4.0.5 in CI @jameslamb (#4158)
- [ci] Stop running CUDA tests at CI @StrikerRUS (#4167)
- [tests][dask] replace client fixture with cluster fixture @jmoralez (#4159)
- [python] added f-strings to docs/conf.py @NovusEdge (#4147)
- [ci] run 'brew update' in macOS jobs (fixes #4160) @jameslamb (#4161)
- clarify DEBUG-level log about tree depth @jameslamb (#4126)
- [tests][dask] use dy_true mean in denominator for _r2_score @jmoralez (#4151)
- [ci] use GitHub Actions to re-generate R configure @StrikerRUS (#4140)
- [python] added f-strings to python-package/setup.py @NovusEdge (#4145)
- [docs] fix param name typo in comments @StrikerRUS (#4139)
- [tests][dask] test all boosting types (fixes #3896) @jmoralez (#4119)
- [ci] use f-strings in
libpath.py
@StrikerRUS (#4137) - update CODEOWNERS @jameslamb (#4127)
- [ci] Added curl library to the installed packages list inside dockerfile-python installation @hemanth171 (#4129)
- [ci] apply cpplint to cpp tests @StrikerRUS (#4092)
- [ci] remove output parametrization from two Dask tests @StrikerRUS (#4123)
- [ci] build CRAN R-package on Azure with every commit and attach it to releases @StrikerRUS (#4117)
- [tests][dask] Create an informative categorical feature @jmoralez (#4113)
- [ci] bump CUDA version and pull dockers from NVIDIA NGC @StrikerRUS (#4112)
- [ci] attach archives with complete source code of the repo to releases @StrikerRUS (#4111)
- [R-package] fix typo in linear learner test @jameslamb (#4109)
- [ci] restrict CMake version for CUDA+Clang jobs @StrikerRUS (#4104)
- [ci] fix flaky Azure Pipelines jobs (2) @StrikerRUS (#4097)
- [ci] fix flaky Azure Pipelines jobs @StrikerRUS (#4095)
- [ci] Bump version for development @StrikerRUS (#4094)
v3.2.0
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 @jamesla...
v3.1.1
Changes
💡 New Features
- [R-package] {lightgbm} is now available on CRAN (fixes #629) @jameslamb (#3612)
- [R-package] Use command-line args to customize CMake builds (fixes #2441) @jameslamb (#3574)
- [python] Allow to build Python wheel package @dolfinus (#3594)
🚀 Efficiency Improvement
- [R-package] use as.factor() instead of factor() in lgb.cv() @jameslamb (#3560)
🐛 Bug Fixes
- [R-package] fix partial matching of keyword arguments in lgb.cv() (fixes #3629) @jameslamb (#3630)
- fix typo in dataset checks @StrikerRUS (#3631)
- Check max_bin, etc. match config when using binary @cyfdecyf (#3592)
- [R-package] construct dataset earlier in lgb.train and lgb.cv (fixes #3583) @tonyk7440 (#3598)
- [python] fix regex in MANIFEST file @StrikerRUS (#3593)
- Fix #3557 and potential issue with dense multi-val feature groups. @shiyu1994 (#3590)
- fix deterministic, part2 @guolinke (#3578)
- remove max_block_size_ in train states (fix #3570) @shiyu1994 (#3575)
📖 Documentation
- [python] more detailed docs for trees_to_dataframe(), create_tree_digraph(), plot_tree() @jameslamb (#3618)
- [docs] update documentation with AUC-mu, average precision @jameslamb (#3627)
- [docs] Add new badges @StrikerRUS (#3610)
- [docs][R-package] fix typo @StrikerRUS (#3609)
- [docs] add link to lightgbm4j to readme @shuttie (#3597)
🧰 Maintenance
- release 3.1.1 @jameslamb (#3611)
- [ci] add credentials to gitignore @jameslamb (#3620)
- [R-package] Update remaining internal function calls to use keyword arguments @zenggyu (#3617)
- [R package] update lgb.Dataset.R to use keyword arguments @zenggyu (#3607)
- [R-package] Update lgb.model.dt.tree.R to use keyword arguments @zenggyu (#3605)
- [R-package] use keyword arguments for internal functions in utils.R @mfrasco6 (#3604)
- [ci] remove unnecessary environment variables in R-package CI @jameslamb (#3602)
- [R-package][tests] update values in valgrind test @StrikerRUS (#3600)
- [refactor] Reduce code duplication in c_api.cpp @AlbertoEAF (#3539)
- [refactor] SWIG - Split pointer manipulation to individual .i file @AlbertoEAF (#3538)
- [ci] test 32-bit R in CI @jameslamb (#3588)
- [ci] Fix missing git install in R artifact job (fixes #3567) @jameslamb (#3587)
- [R-package] Remove CLI-only objects @jameslamb (#3566)
- small R Docker cleanup @StrikerRUS (#3582)
- [python] remove unnecessary files to reduce sdist size @jameslamb (#3579)
- bump version for development @guolinke (#3568)
- [ci] remove conda from R CI jobs @jameslamb (#3573)
v3.1.0
Changes
💡 New Features
- Support deterministic @guolinke (#3494)
- Add support to optimize for NDCG at a given truncation level @metpavel (#3425)
- Add support for cuda version less then 10.0 @shipengfei92 (#3431)
- Updated network retry delay strategy to scale @aakarshg (#3306)
- added new GPU docker files @StrikerRUS (#3408)
- Average precision score @btrotta (#3347)
- Advanced method monotone constraints @CharlesAuguste (#3264)
- Build integrated Python package library @tpboudreau (#3144)
- Add support for CUDA-based GPU @ChipKerchner (#3160)
- [Python] Refactors scikit-learn API to allow a list of evaluation metrics @gramirezespinoza (#3254)
- [R-package] added support for first_metric_only (fixes #2368) @jameslamb (#2912)
- [python][sklearn] be compatible with check_is_fitted sklearn function @StrikerRUS (#3329)
🔨 Breaking
- [python] mark 3.1 version is the last one with Python 2 support @StrikerRUS (#3565)
- bump minimal CMake version @StrikerRUS (#3501)
- [R-package] Remove ability to install precompiled lib_lightgbm (fixes #3320) @jameslamb (#3360)
- [python] Drop Python 3.5 support @StrikerRUS (#3395)
🚀 Efficiency Improvement
- Optimization of row-wise histogram construction @shiyu1994 (#3522)
- Add support to optimize for NDCG at a given truncation level @metpavel (#3425)
- fix address alignment, required by cran @guolinke (#3415)
🐛 Bug Fixes
- [ci] Use different PATH based on Rtools version @jameslamb (#3558)
- [ci] fix CUDA CI builds @StrikerRUS (#3549)
- fix constant hessian for huber objective @guolinke (#3545)
- [R-package] [ci] Fix failures with R 3.6 and CMake (fixes #3469) @jameslamb (#3541)
- [R-package] fix learning-to-rank tests on Solaris @jameslamb (#3534)
- [R-package] fix MM_PREFETCH and MM_MALLOC checks in configure.ac @jameslamb (#3510)
- avoid min_data and min_hessian are zeros at the same time @guolinke (#3492)
- Fix add features @guolinke (#2754)
- remove std::move @StrikerRUS (#3478)
- [ci] [R-package] Fix memory leaks found by valgrind @jameslamb (#3443)
- [R-package] Suppresses unknown pragma warnings during CRAN build @cctechwiz (#3460)
- pin Ubuntu version in distroless docker file @StrikerRUS (#3449)
- Move Tree destructor to header file @lcsdavid (#3417)
- [R-package] miscellaneous changes to comply with CRAN requirements @jameslamb (#3338)
- fix type casting warning @StrikerRUS (#3437)
- [R-package] [ci] Make Windows CI fail if R CMD check fails @jameslamb (#3435)
- [python] Use ctypes for parameters of DLL functions for Dataset @StrikerRUS (#3423)
- Use ctypes to pass parameters (fixes #3398) @btrotta (#3419)
- disable monotone constraint in objective functions with renew_tree_output @guolinke (#3368
- [R-package] Fix incorrect num_iterations, early_stopping_round in saved models (fixes #2208, #2468) @jameslamb (#3368)
- Improve performance of path smoothing @btrotta (#3396)
- fix sparse multiclass local feature contributions and add test @imatiach-msft (#3382)
- Auc mu weights @btrotta (#3349)
- improve subfeature_bynode @guolinke (#3384)
- Fix typo in ResetConfig @btrotta (#3392)
- Avoid segment fault in ResetConfig for GBDT in prediction (fix #3317) @shiyu1994 (#3373)
📖 Documentation
- [docs] simplify RTD config and use latest Sphinx @StrikerRUS (#3554)
- Add note on LightGBM/OpenMP hanging on AWS Batch @cvsmith (#3553)
- Fix #2898: Clearer warning message for user (2^max_depth > num_leaves). @AlbertoEAF (#3537)
- better document for bin_construct_sample_cnt @guolinke (#3521)
- [R-package] [docs] fix broken plots in pkgdown site (fixes #3276) @jameslamb (#3508)
- [docs] added Data Science Bowl Comp Solution 2019 @nabokovas (#3503)
- [docs] fix param docs @StrikerRUS (#3495)
- [docs] update GitHub Actions badge @StrikerRUS (#3446)
- [docs] Change doc link to monotone constraints report to HAL document @CharlesAuguste (#3410)
- [R-package] add new copyright holder in DESCRIPTION @jameslamb (#3409)
- [docs] Simplify the python installation instruction @guolinke (#3378)
- [docs] remove unrelated entry from winning solutions list @StrikerRUS (#3370)
- [python][examples] updated examples with multiple custom metrics @StrikerRUS (#3367)
- [docs] update list of winning solutions in data science competitions @Juniper-23 (#3358)
- [R-package] fix typo in R installation instructions @daviddalpiaz (#3350)
🧰 Maintenance
- fix compilation warning @StrikerRUS (#3564)
- fix warning @guolinke (#3563)
- [R-package] fix install warning @jameslamb (#3552)
- TST make sklearn integration test compatible with 0.24 @glemaitre (#3533)
- move APPLE_OUTPUT_DYLIB option closer to the rest options @StrikerRUS (#3547)
- [ci] simplify R CI scripts @jameslamb (#3535)
- [ci] Make valgrind check stricter @jameslamb (#3536)
- fix invalid read detected by valgrind @guolinke (#3526)
- ignore files from local Dask work @jameslamb (#3527)
- [ci] upgrade GitHub Actions third-party actions to newest versions @jameslamb (#3524)
- [R-package] remove Makefile hack in install.libs.R @jameslamb (#3528)
- [R-package] [ci] add correct path for mingw32-make in CI @jameslamb (#3523)
- [ci] fix check-docs error with AMD support website (fixes #3529) @jameslamb (#3530)
- [R-package] remove unused variables in configure.ac @jameslamb (#3509)
- [R-package] Updated lgb.Booster.R with keyword arguments @Pey-crypto (#3496)
- [ci] automate building CRAN package @jameslamb (#3497)
- [tests][python] remove excess iterations @nabokovas (#3504)
- [ci] Update MacOS version at Travis @nabokovas (#3505)
- [ci] [python] reduce unnecessary data loading in tests @jameslamb (#3486)
- setup CUDA CI job @StrikerRUS (#3424)
- [ci] update SWIG installation on macOS @StrikerRUS (#3477)
- [R-package] Improves logging in lint_r_code.R (fixes #3471) @sinAshish (#3472)
- [R-package] Updated lgb.Predictor.R with keyword arguments @AnshuTrivedi (#3464)
- [ci] ignore R CMD CHECK warnings on new R version @jameslamb (#3468)
- [R-package] remove deprecation warnings on lgb.prepare() functions @jameslamb (#3444)
- [R-package] Updated lgb.train.R with keyword arguments @iadi7ya (#3452)
- [R-package] [ci] Add test on R package with sanitizers @jameslamb (#3439)
- [R-package] add 'cleanup' script to handle left-behind Makevars @jameslamb (#3434)
- [R-package] Update callback.R with keyword arguments @philip-khor (#3430)
- [ci] rename R-package GitHub Actions workflow @StrikerRUS (#3429)
- fix warnings @guolinke (#3399)
- [python] fix dangerous default for eval_at in LGBMRanker @jameslamb (#3377)
- [ci] removed unused environment variable CONDA_ENV @jameslamb (#3411)
- [R-package] use keyword arguments in internal function calls @jameslamb (#3391)
- [R-package] mark CMake option for building R package as private @StrikerRUS (#3397)
- [ci] Use Ubuntu Focal image at Travis @StrikerRUS (#3393)
- [ci] update Boost version @StrikerRUS (#3389)
- [R-package] ignore temp files created by R on Mac @jameslamb (#3388)
- [python] remove unused variable @jameslamb (#3376)
- [R-package] remove unnecessary comments @jameslamb (#3356)
- [ci] host some artifacts needed by R Windows CI jobs @jameslamb (#3359)
- [ci] remove Azure checks from R CI @jameslamb (#3355)
- [ci] add an allgood job for easy [required] builds @graingert (#3351)
- bump version @guolinke (#3344)
v3.0.0
Changes
💡 New Features
- [python] add return_cvbooster flag to cv func and publish _CVBooster (#283,#2105,#1445) @momijiame (#3204)
- [R-package] make package installable with CRAN toolchain (fixes #2960) @jameslamb (#3188)
- feat: Change locking strategy of Booster, allow for share and unique locks @JoanFM (#2760)
- feature importance type in saved model file @guolinke (#3220)
- [R-package] Interface for interaction constraints @btrotta (#3136)
- adding sparse support to TreeSHAP in lightgbm @imatiach-msft (#3000)
- Adding static library option @dpayne (#3171)
- Interaction constraints @btrotta (#3126)
- [R-package] Add support for R 4.0 (fixes #3064, fixes #3024) @jameslamb (#3065)
- [python][scikit-learn] add new attribute for used number of features @a-wozniakowski (#3129)
- redirect log to python console @guolinke (#3090)
- Path smoothing @btrotta (#2950)
- [SWIG][mmlspark] allow allocating more than int max array @imatiach-msft (#2859)
- Support UTF-8 characters in feature name again @henry0312 (#2976)
- [python] Re-enable scikit-learn 0.22+ support @StrikerRUS (#2949)
- Pr3 monotone constraints splits penalization @CharlesAuguste (#2939)
- [R-package] adding routine registration in R package (fixes #1910) @jameslamb (#2911)
- [R-package] Use Rprintf for logging in the R package (fixes #1440, fixes #1909) @jameslamb (#2901)
- Improving monotone constraints ("Fast" method; linked to #2305, #2717) @CharlesAuguste (#2770)
- [python] handle RandomState object in Scikit-learn Api @lpfann (#2904)
- Debug flags @guolinke (#2825)
- added feature infos to JSON dump @StrikerRUS (#2660)
- Add capability to get possible max and min values for a model @JoanFM (#2737)
- Extremely randomized trees @btrotta (#2671)
- [python] add property: feature_name_ in lgb sklearn api @zhangqibot (#2740)
- Implementation of XE_NDCG_MART for the ranking task @sbruch (#2620)
- [python] Output model to a pandas DataFrame @pford221 (#2592)
- option to disable the shape checking in prediction. @guolinke (#2669)
- added feature importance to JSON dump @StrikerRUS (#2656)
- [python] allow to specify orientation of a tree @StrikerRUS (#2605)
- auc-mu @btrotta (#2567)
- [python] Allow python sklearn interface's fit() to pass init_model to train() @aaiyer (#2447)
- Add more debug logging to show data load progress. @ashok-ponnuswami-msft (#2587)
🔨 Breaking
- [Python] add start_iteration to python predict interface (#3058) @shiyu1994 (#3272)
- [R-package] refactor and improvements to lgb.convert() functions (fixes #2678, #2681) @jameslamb (#3269)
- [R-package] deprecate lgb.prepare() and lgb.prepare2() @jameslamb (#3095)
- [R-package] Add version floor of R 3.5 (fixes #3212) @jameslamb (#3216)
- refactor LGBM_DatasetGetFeatureNames @StrikerRUS (#3022)
- Fix SWIG methods that return char** @AlbertoEAF (#2850)
- Code refactoring for ranking objective & Faster ndcg_xendcg @guolinke (#2801)
- decouple bagging with num_threads @guolinke (#2804)
- remove init-score parameter @guolinke (#2776)
- [python] [R-package] refine the parameters for Dataset @guolinke (#2594)
- Support both row-wise and col-wise multi-threading @guolinke (#2699)
- [ci] indicate support only for the last 3 macOS versions in wheel name @StrikerRUS (#2691)
- removed OpenMP ugly fix for Mojave @StrikerRUS (#2674)
- [python] specify the last supported version of scikit-learn @StrikerRUS (#2637)
🚀 Efficiency Improvement
- Feat/optimize single prediction @AlbertoEAF (#2992)
- Optimize the computation of the cross-entropy ranking loss @sbruch (#3080)
- Speed-up "Split" and some code refactorings @guolinke (#2883)
- speed up
FindBestThresholdFromHistogram
@guolinke (#2867) - speed up for const hessian @guolinke (#2857)
- reduce the overhead of OMP_NUM_THREADS in training @guolinke (#2852)
- speed up multi-val bin subset for bagging @guolinke (#2827)
- speed up sub-feature in row-wise parallelism @guolinke (#2764)
- slightly reduce the cost of multi-val bin construct. @guolinke (#2728)
- more efficient sampling k from n @guolinke (#2693)
- support most frequent bin @guolinke (#2689)
- prefetch hint (1.3x speed-up) @guolinke (#2677)
🐛 Bug Fixes
- [R] Fix 32-bit build @guolinke (#3307)
- fix zero bin in categorical split @guolinke (#3305)
- [R-package] DESCRIPTION changes to address CRAN feedback @jameslamb (#3298)
- create buffer for gradients and hessians with goss and customized objective (fixes #3243) @shiyu1994 (#3263)
- update multi-class objective (softmax) @guolinke (#3256)
- Fast single row predict API v2 @AlbertoEAF (#3268)
- [R-package] fix early_stopping_round <= 0 @jameslamb (#3259)
- fix bug in CEGB when reset training data or config @guolinke (#3246)
- fix possible problem in getting number of columns from libsvm file. @guolinke (#3242)
- set num_threads of share_state (#3151) @shiyu1994 (#3238)
- Upcast index to size_t in Refit @jtilly (#3228)
- [python][scikit-learn] Fixes a bug that prevented using multiple eval_metrics in LGBMClassifier @gramirezespinoza (#3222)
- [python] fix early_stopping_round = 0 @guolinke (#3211)
- Fix integer overflow in auc_mu (fixes #3201) @btrotta (#3209)
- Store the true split gain (without subtracting min_split_gain) in tree models (fix Issue #3054) @shiyu1994 (#3196)
- Fix bug with interaction constraints @btrotta (#3189)
- [R-package] [ci] update to R 4.0.2 for Windows CI jobs (fixes #3191) @jameslamb (#3193)
- fix str2double for
leaf_weights
@guolinke (#3148) - fix error C3861: '_BitScanReverse': identifier not found @StrikerRUS (#3141)
- [R-package] fix best_score using custom evaluation (fixes #3112) @jameslamb (#3117)
- [R-package] Turn matrix to storage mode "double" @mayer79 (#3140)
- memory corruption fix for distributed data parallel version before SyncUpGlobalBestSplit @imatiach-msft (#3110)
- [R-package] fix issue where early stopping thinks higher MAPE is desirable (fixes #3099) @jameslamb (#3101)
- fix a bug when we set the default score @guanqun (#3114)
- fix MSVC warning about control paths (fixes #3067) @jameslamb (#3068)
- Fixed machine list parsing: s/find_first_of/find @odimka (#3108)
- fix refactoring bug in voting parallel @guolinke (#3089)
- fix goss with constant hessian @guolinke (#3077)
- [docs] update link to GitHub anchor conventions @jameslamb (#3085)
- fix goss bug @guolinke (#3063)
- [R-package] add conda dir for LIBR_CORE_LIBRARY (fixes #3045) @jameslamb (#3046)
- [R-package] CMake fixes to support MSVC @jameslamb (#2963)
- Fix loss computation in rank cross-entropy objective @sbruch (#3031)
- [R-package] fixed best_iter and best_score when training data is passed (fixes #2295, #2525) @jameslamb (#2961)
- [R-package] fix R examples and lgb.plot.interpretation() @jameslamb (#3002)
- Revert "Fix Booster read/write locale dependency (#2891)" @henry0312 (#2980)
- [SWIG][mmlspark] fix seg fault in LGBM_BoosterGetEvalNamesSWIG @imatiach-msft (#2958)
- fix inf in json model dump @StrikerRUS (#2940)
- [R-package] fixed evaluation on valids in lightgbm() (fixes #2915) @jameslamb (#2916)
- Fix IsZero in tree.h @AlbertoEAF (#2932)
- [R-package] fixed handling of multiple evaluation metrics (fixes #2913) @jameslamb (#2914)
- Fix Booster read/write locale dependency @AlbertoEAF (#2891)
- [python] Fix continued train by reusing the same dataset @guolinke (#2906)
- [python] fix the bug when use different params with reference @guolinke (#2907)
- fix ResetConfig in FeatureHistogram @guolinke (#2882)
- fixed cpplint errors and VS project files @StrikerRUS (#2873)
- fix possible bug related num_threads @guolinke (#2876)
- [python] save all param values into model file @StrikerRUS (#2589)
- shrinkage to internal values @guolinke (#2853)
- fix bug in parallel learning @guolinke (#2851)
- don't save num_thread as possible @guolinke (#2839)
- fix bug for multi-val-bin construction @guolinke (#2841)
- fix forced split @guolinke (#2838)
- avoid most_freq_bin to be 0 in categorical features @guolinke (#2824)
- fix index and remove unused includes @StrikerRUS (#2829)
- support larger element size for multi-val bin @guolinke (#2817)
- fix random threshold for categorical features @guolinke (#2802)
- fix bug when nan bin is most freq bin @guolinke (#2811)
- Fix SingleRowPredictor::IsPredictorEqual comparison (invert) @AlbertoEAF (#2799)
- [R-package] Fixed R implementation of upper_bound() and lower_bound() for lgb.Booster @jameslamb (#2785)
- [R-package] fixed R Dataset aliases @StrikerRUS (#2775)
- fix max_depth in CEGB @guolinke (#2751)
- fix subset bug @guolinke (#2748)
- Config static initialization @jcipar (#2743)
- Preventing denormal leaf values @jpkoponen (#2724)
- [python][R-package][docs] fix support of XE_NDCG_MART obj in language wrappers and docs @StrikerRUS (#2726)
- add is_sparse back @guolinke (#2729)
- fix #2696 @sh1ng (#2700)
- [R-package] fixed sorting issues in lgb.cv() when using a model with observation weights (fixes #2572) @jameslamb (#2573)
- [python] fix trees_to_dataframe and enhance test @StrikerRUS (#2690)
- [python] [R-package] Use the same address when updated label/weight/query @guolinke (#2662)
- fix predict with header @guolinke (#2643)
- [python][sklearn] do not modify args in fit function and minor code cleanup @StrikerRUS (#2619)
- [python] Variable Typo: redictor -> predictor @duckladydinh (#2622)
- LightGBM would hang on MPI run if only some nodes have a fatal error. @ashok-ponnuswami-msft (#2600)
📖 Documentation
- [R-package] Add R logo (fixes #3331, #3332) @jameslamb (#3336)
- [docs][python][sklearn] remove excess fit arguments from docstrings @StrikerRUS (#3330)
- [docs] added logo to docs @StrikerRUS (#3327)
- Added winning solution using LightGBM @julioasotodv (#3314)
- [R-package] Add docs on building and using precompiled binaries for the R package @jameslamb (#3285)
- [docs] Fix repetition of `tree_me...
v3.0.0rc1
Changes
💡 New Features
- [python] add return_cvbooster flag to cv func and publish _CVBooster (#283,#2105,#1445) @momijiame (#3204)
- [R-package] make package installable with CRAN toolchain (fixes #2960) @jameslamb (#3188)
- feat: Change locking strategy of Booster, allow for share and unique locks @JoanFM (#2760)
- feature importance type in saved model file @guolinke (#3220)
- [R-package] Interface for interaction constraints @btrotta (#3136)
- adding sparse support to TreeSHAP in lightgbm @imatiach-msft (#3000)
- Adding static library option @dpayne (#3171)
- Interaction constraints @btrotta (#3126)
- [R-package] Add support for R 4.0 (fixes #3064, fixes #3024) @jameslamb (#3065)
- [python][scikit-learn] add new attribute for used number of features @a-wozniakowski (#3129)
- redirect log to python console @guolinke (#3090)
- Path smoothing @btrotta (#2950)
- [SWIG][mmlspark] allow allocating more than int max array @imatiach-msft (#2859)
- Support UTF-8 characters in feature name again @henry0312 (#2976)
- [python] Re-enable scikit-learn 0.22+ support @StrikerRUS (#2949)
- Pr3 monotone constraints splits penalization @CharlesAuguste (#2939)
- [R-package] adding routine registration in R package (fixes #1910) @jameslamb (#2911)
- [R-package] Use Rprintf for logging in the R package (fixes #1440, fixes #1909) @jameslamb (#2901)
- Improving monotone constraints ("Fast" method; linked to #2305, #2717) @CharlesAuguste (#2770)
- [python] handle RandomState object in Scikit-learn Api @lpfann (#2904)
- Debug flags @guolinke (#2825)
- added feature infos to JSON dump @StrikerRUS (#2660)
- Add capability to get possible max and min values for a model @JoanFM (#2737)
- Extremely randomized trees @btrotta (#2671)
- [python] add property: feature_name_ in lgb sklearn api @zhangqibot (#2740)
- Implementation of XE_NDCG_MART for the ranking task @sbruch (#2620)
- [python] Output model to a pandas DataFrame @pford221 (#2592)
- option to disable the shape checking in prediction. @guolinke (#2669)
- added feature importance to JSON dump @StrikerRUS (#2656)
- [python] allow to specify orientation of a tree @StrikerRUS (#2605)
- auc-mu @btrotta (#2567)
- [python] Allow python sklearn interface's fit() to pass init_model to train() @aaiyer (#2447)
- Add more debug logging to show data load progress. @ashok-ponnuswami-msft (#2587)
🔨 Breaking
- [Python] add start_iteration to python predict interface (#3058) @shiyu1994 (#3272)
- [R-package] refactor and improvements to lgb.convert() functions (fixes #2678, #2681) @jameslamb (#3269)
- [R-package] deprecate lgb.prepare() and lgb.prepare2() @jameslamb (#3095)
- [R-package] Add version floor of R 3.5 (fixes #3212) @jameslamb (#3216)
- refactor LGBM_DatasetGetFeatureNames @StrikerRUS (#3022)
- Fix SWIG methods that return char** @AlbertoEAF (#2850)
- Code refactoring for ranking objective & Faster ndcg_xendcg @guolinke (#2801)
- decouple bagging with num_threads @guolinke (#2804)
- remove init-score parameter @guolinke (#2776)
- [python] [R-package] refine the parameters for Dataset @guolinke (#2594)
- Support both row-wise and col-wise multi-threading @guolinke (#2699)
- [ci] indicate support only for the last 3 macOS versions in wheel name @StrikerRUS (#2691)
- removed OpenMP ugly fix for Mojave @StrikerRUS (#2674)
- [python] specify the last supported version of scikit-learn @StrikerRUS (#2637)
🚀 Efficiency Improvement
- Feat/optimize single prediction @AlbertoEAF (#2992)
- Optimize the computation of the cross-entropy ranking loss @sbruch (#3080)
- Speed-up "Split" and some code refactorings @guolinke (#2883)
- speed up
FindBestThresholdFromHistogram
@guolinke (#2867) - speed up for const hessian @guolinke (#2857)
- reduce the overhead of OMP_NUM_THREADS in training @guolinke (#2852)
- speed up multi-val bin subset for bagging @guolinke (#2827)
- speed up sub-feature in row-wise parallelism @guolinke (#2764)
- slightly reduce the cost of multi-val bin construct. @guolinke (#2728)
- more efficient sampling k from n @guolinke (#2693)
- support most frequent bin @guolinke (#2689)
- prefetch hint (1.3x speed-up) @guolinke (#2677)
🐛 Bug Fixes
- create buffer for gradients and hessians with goss and customized objective (fixes #3243) @shiyu1994 (#3263)
- update multi-class objective (softmax) @guolinke (#3256)
- Fast single row predict API v2 @AlbertoEAF (#3268)
- [R-package] fix early_stopping_round <= 0 @jameslamb (#3259)
- fix bug in CEGB when reset training data or config @guolinke (#3246)
- fix possible problem in getting number of columns from libsvm file. @guolinke (#3242)
- set num_threads of share_state (#3151) @shiyu1994 (#3238)
- Upcast index to size_t in Refit @jtilly (#3228)
- [python][scikit-learn] Fixes a bug that prevented using multiple eval_metrics in LGBMClassifier @gramirezespinoza (#3222)
- [python] fix early_stopping_round = 0 @guolinke (#3211)
- Fix integer overflow in auc_mu (fixes #3201) @btrotta (#3209)
- Store the true split gain (without subtracting min_split_gain) in tree models (fix Issue #3054) @shiyu1994 (#3196)
- Fix bug with interaction constraints @btrotta (#3189)
- [R-package] [ci] update to R 4.0.2 for Windows CI jobs (fixes #3191) @jameslamb (#3193)
- fix str2double for
leaf_weights
@guolinke (#3148) - fix error C3861: '_BitScanReverse': identifier not found @StrikerRUS (#3141)
- [R-package] fix best_score using custom evaluation (fixes #3112) @jameslamb (#3117)
- [R-package] Turn matrix to storage mode "double" @mayer79 (#3140)
- memory corruption fix for distributed data parallel version before SyncUpGlobalBestSplit @imatiach-msft (#3110)
- [R-package] fix issue where early stopping thinks higher MAPE is desirable (fixes #3099) @jameslamb (#3101)
- fix a bug when we set the default score @guanqun (#3114)
- fix MSVC warning about control paths (fixes #3067) @jameslamb (#3068)
- Fixed machine list parsing: s/find_first_of/find @odimka (#3108)
- fix refactoring bug in voting parallel @guolinke (#3089)
- fix goss with constant hessian @guolinke (#3077)
- [docs] update link to GitHub anchor conventions @jameslamb (#3085)
- fix goss bug @guolinke (#3063)
- [R-package] add conda dir for LIBR_CORE_LIBRARY (fixes #3045) @jameslamb (#3046)
- [R-package] CMake fixes to support MSVC @jameslamb (#2963)
- Fix loss computation in rank cross-entropy objective @sbruch (#3031)
- [R-package] fixed best_iter and best_score when training data is passed (fixes #2295, #2525) @jameslamb (#2961)
- [R-package] fix R examples and lgb.plot.interpretation() @jameslamb (#3002)
- Revert "Fix Booster read/write locale dependency (#2891)" @henry0312 (#2980)
- [SWIG][mmlspark] fix seg fault in LGBM_BoosterGetEvalNamesSWIG @imatiach-msft (#2958)
- fix inf in json model dump @StrikerRUS (#2940)
- [R-package] fixed evaluation on valids in lightgbm() (fixes #2915) @jameslamb (#2916)
- Fix IsZero in tree.h @AlbertoEAF (#2932)
- [R-package] fixed handling of multiple evaluation metrics (fixes #2913) @jameslamb (#2914)
- Fix Booster read/write locale dependency @AlbertoEAF (#2891)
- [python] Fix continued train by reusing the same dataset @guolinke (#2906)
- [python] fix the bug when use different params with reference @guolinke (#2907)
- fix ResetConfig in FeatureHistogram @guolinke (#2882)
- fixed cpplint errors and VS project files @StrikerRUS (#2873)
- fix possible bug related num_threads @guolinke (#2876)
- [python] save all param values into model file @StrikerRUS (#2589)
- shrinkage to internal values @guolinke (#2853)
- fix bug in parallel learning @guolinke (#2851)
- don't save num_thread as possible @guolinke (#2839)
- fix bug for multi-val-bin construction @guolinke (#2841)
- fix forced split @guolinke (#2838)
- avoid most_freq_bin to be 0 in categorical features @guolinke (#2824)
- fix index and remove unused includes @StrikerRUS (#2829)
- support larger element size for multi-val bin @guolinke (#2817)
- fix random threshold for categorical features @guolinke (#2802)
- fix bug when nan bin is most freq bin @guolinke (#2811)
- Fix SingleRowPredictor::IsPredictorEqual comparison (invert) @AlbertoEAF (#2799)
- [R-package] Fixed R implementation of upper_bound() and lower_bound() for lgb.Booster @jameslamb (#2785)
- [R-package] fixed R Dataset aliases @StrikerRUS (#2775)
- fix max_depth in CEGB @guolinke (#2751)
- fix subset bug @guolinke (#2748)
- Config static initialization @jcipar (#2743)
- Preventing denormal leaf values @jpkoponen (#2724)
- [python][R-package][docs] fix support of XE_NDCG_MART obj in language wrappers and docs @StrikerRUS (#2726)
- add is_sparse back @guolinke (#2729)
- fix #2696 @sh1ng (#2700)
- [R-package] fixed sorting issues in lgb.cv() when using a model with observation weights (fixes #2572) @jameslamb (#2573)
- [python] fix trees_to_dataframe and enhance test @StrikerRUS (#2690)
- [python] [R-package] Use the same address when updated label/weight/query @guolinke (#2662)
- fix predict with header @guolinke (#2643)
- [python][sklearn] do not modify args in fit function and minor code cleanup @StrikerRUS (#2619)
- [python] Variable Typo: redictor -> predictor @duckladydinh (#2622)
- LightGBM would hang on MPI run if only some nodes have a fatal error. @ashok-ponnuswami-msft (#2600)
📖 Documentation
- [doc] better doc for
keep_training_booster
@guolinke (#3275) - [docs] improve params docs @StrikerRUS (#3252)
- typo fix @guanqun (#3174)
- [docs] Improve some phrasing in the installation guide @Lewington-pitsos (#3214)
- [docs] document option to build a static library @StrikerRUS (#3190)
- [docs][scikit-learn] removed duplicated docstrings @StrikerRUS (#3164)
- [ci][docs] fix broken links @StrikerRUS (#3176)
- [R-package] [docs] fix warnings in pkgdown site building @jameslamb (#3086)
- [R-package] [docs] Removed outdated language about the R package @jamesl...
v2.3.1
Changes:
- 471d0aa update release date for R-package
- 102893a [R-package] fixed minor issues with tests and documentation (#2581)
- 16c551c [docs] updated instructions in examples to match ones from ranking example (#2585)
- 49df9e6 [docs] Update LambdaRank example documentation (#2548)
- 6a3e27d Avoid the issue is labeled to bug by default.
- a6ba859 [R-package] fixed parameter-name typo in lgb.cv() (#2576)
- 1f7b06b [R-package][ci] Added more R linters (fixes #2477) (#2533)
- 11f9682 Fix build error when HDFS is enabled. (#2540)
- 26ff099 explicitly import
std::max
from (#2562) - a8dc032 [ci] fixed cpplint warning about parenthesis placement (#2563)
See More
- 41c366e [R-package] [ci] pin roxygen2 version for RTD (#2568)
- cf8c8c0 Fix detecting alias of objective in loading from model strings (#2565) [ #2564 ]
- 3e3d76f [Java] MMLSPARK-ISSUE-720 - Create SWIG version of BoosterDumpModel that returns string to be used in Java (#2560)
- 7feaaef [docs][docker] cleaned up CODEOWNERS and fixed build warning in dockerfile-python (#2555)
- 31bec2f addressed linting items about empty statements (#2545)
- a942751 [R-package] removed unnecessary Suggests dependencies (#2543)
- b2da19b check feature names for special JSON chars (#2557)
- 83ecb38 [docker] install ca certificates package on ubuntu image (#2554)
- 76bda1e support Catalina (#2556)
- 785e477 [ci] removed temp fix for Graphviz from conda (#2551)
- 7cfb492 [ci][R-package] removed outdated comment in lint_r_code.R (#2541)
- 516bd37 renamed variables from bias to offset (#2539)
- bd7e184 [docs] refactored News section in README (#2529)
- a36eb7e remove many vector.at()
- 8f7199a [docs] update MS-MPI link (#2528)
- 1f1dc45 [tests][python] refined python tests (#2483)
- 00d1e69 [python] removed unused pylint directives (#2466)
- f1d4e44 fixed casting warning (#2523)
- 85be04a [R-package] Disabled early stopping when using 'dart' boosting strategy (#2443)
- fc991c9 [R-package] added R linting and changed R code to comma-first (fixes #2373) (#2437)
- b4bb38d [R-package] Added unit tests (#2498)
- bdc310a [R-package] Sort indices in lgb.cv() (fixes #2503) #2524
- 44b0aca [ci] removed temp fix #2522
- 5dcd4be [python] handle params aliases centralized (#2489)
- fbf9568 [ci] reduced number of commits cloned to CI environments (#2495)
- 465d126 check sorted indices in Subset (#2510)
- 198d0f3 [docs] added m2cgen in README (#2512)
- 7202703 [docs] removed misleading section about pep8 in python's readme (#2507)
- 2c3ebd9 [ci] miniconda installer hotfix (#2511)
- b1c50d0 [docs] added logos to badges (#2506)
- 40e56ca reduce the buffer when using high dimensional data in distributed mode. (#2485)
- 4848776 [docs] clarified support of LibSVM zero-based format files (#2504)
- b0500dd [python] DPI arg in plotting functions (#2491)
- dc58407 fix bug in parser
- fdb3923 updated dockers (#2459)
- d7f8aa5 [docs] fixed miscellaneous typos in comments and documentation (#2496)
- ff4e48c reworked GitHub issue templates (#2492)
- 780a3fd [ci] removed temp fix for missing package (#2493)
- dee7215 check the shape for mat, csr and csc in prediction (#2464)
- dc65e0a [ci] fixed whitespace cpplint issue in auto-config (#2488)
- 67099ff [ci] added build/c++11 to cpplint filter (#2487)
- c1a7b29 [python] removed deprecated code (#2474)
- 9b61166 fixed cpplint errors about spaces and newlines (#2481)
- 6036e07 [ci] move Clang linking into docker (#2476)
- e650541 [ci] removed outdated code (#2475)
- 54be420 [docs] updated problem link #2473
- 5c0daca [ci] use the latest versions of OSes at Travis (#2467)
- 3d407b6 new version number after release (#2469)
- 42204c4 [R-package] factored dependency 'magrittr' out of R package (#2334)
This list of changes was auto generated.
v2.3.0
Changes:
- b3c1266 v2.3.0 realese (#2138)
- cc7a1e2 Predefined bin thresholds (#2325) [ #2342 ]
- f2632a6 [docs] added installation guide with Homebrew (#2414)
- 1f88721 Fix Integer Overflow #2357 (#2400)
- d064019 [python] avoid data copy where possible (#2383)
- 7a8c4e5 fix bug in reset config for dataset (#2453)
- 70fc45b code refactoring: cost effective gradient boosting (#2407)
- e771538 Force bin json (#2456)
- a0d7313 fixed docstrings (#2451)
- 7b2963d [Java] add missing JNI exception checks to fix warnings (#2405)
See More
- a0a117a [python] make dump_text() private (#2434)
- 2bf9a0f remove the duplicate data path (#2432)
- fe9f292 added new early_stopping param alias (#2431)
- be206a9 refined order of includes (#2436)
- 2e9f255 [docs] refer to RTD site directly (#2415)
- e47d941 [ci] temp fix for missing dependency on Windows (#2440)
- e776582 Update setup.sh (#2421)
- f1fbc2f added JAVA codeowner (#2430)
- 4fee582 fix codeowners (#2429)
- f1a1486 fix many cpp lint errors (#2426)
- 4f89cc1 [ci] added build/include_subdir check to filter for cpplint (#2427)
- 306c6db [ci] added cpplint check (#2416)
- a3a353d At least 2 features are chosen in subcolumn (#2409)
- a119639 fix the objective init issues in distributed mode (#2420)
- 0237492 added editorconfig (#2403)
- 8475439 [python] Bug fix for first_metric_only on earlystopping. (#2209) [ #2273 ]
- 939a024 fixed C API SetField description (#2406)
- 1556642 [examples] Update example notebook (#2391)
- ad8e8cc update feature_fraction_bynode (#2381)
- a1a4103 [examples] really use weights in example (#2378)
- b310fb4 [ci] add if-else job to Travis (#2389)
- 9f6e441 [python] keep consistent state for Dataset fields (#2390)
- f52be9b [python] Improved python tree plots (#2304)
- b6d4ad8 added JS file (#2387)
- 33d0378 avoid nan and inf in weight/label/init_score (#2377)
- de1f3cb [python] removed excess condition (#2385)
- 22cd39e [python] fixed typo (#2386)
- 7509ec8 [python] fix group type in lgb.cv (#2384)
- 29525ff [docs] added reference to leaves Go package (#2379)
- 4c8418e [docs] R docs cleanup (#2375)
- df26b65 [ci][tests] install joblib for test directly (#2374)
- bbbad73 sub-features for node level (#2330)
- 288ba0a Added link to Ruby gem [skip ci] (#2367)
- e7c6e67 [tests] simplified test and added dumped data to gitignore (#2372)
- 0f9720b [docs] fix version type in the R-package tooltip (#2370)
- faba6ca [docs][R] added R-package docs generation routines (#2176)
- 317b1bf [java][mmlspark] Fix cached predictor causing bad values for predicted probabilities (#2356)
- 254a869 [java][mmlspark] fix lightgbm on windows (#2364)
- 0551f77 change network retry delay strategy (#2354)
- 5f5dcff [python] correctly handle full path to compiler in CC and CXX env vars (#2345)
- 4fc0416 [docs] Clarify LightGBM on Spark Reference (#2358)
- 76e57c5 informative error for custom obj in RF (#2355)
- 0dfda82 normalize the lambdas in lambdamart objective (#2331)
- 5e60224 fixed compiler check regex in install.libs.R (#2346)
- 15d861c [R-package] fixed overly-strict compiler check in install.libs.R (fixes #2259) (#2339)
- 20f94c5 fix the bug in bin with small values (#2342)
- 86c6a2d [R-package] trimmed whitespace in R code (#2338)
- 8415924 [R-package] corrected typo in R unit tests (fixes #2336) (#2337)
- c0883f1 Fixed keep-empty-dirs flag in build_r.R (fixes #2332) (#2333)
- 686b0cc [docs][python] allow usage and compilation of 32-bit library (#2188)
- aee92f6 sigmoid_ in grad and hess for rank objective (#2322)
- c421f89 Bug fix: small values of max_bin cause program to crash (#2299)
- 9558417 fix nan in tree model (#2303)
- 578a8c8 updated docker folder (#2316)
- b0b4591 updated R-package authors (#2321)
- 8f446be [python] add sparsity support for new version of pandas and check Series for bad dtypes (#2318)
- 9cf6b82 add Dockerfile for R (#2308)
- 5cff4e8 [python] Deep copy params in _update_params of DataSet (#2310)
- a8d8b07 [docs] remove aliases from options in params and remove separators in FAQ (#2296)
- 6b94c8e [docs] generate contents in Installation guide automatically (#2298)
- 28dc333 [docs] fixed params description (#2306)
- 0197dba [ci][docs] update the list of ignoring sites for linkchecker (#2307)
- f68e1b5 [docs] limit number of files to scan for autosummary generation and reorganize conf.py (#2297)
- 55656f2 delete the variable which is never used (#2294)
- c17a5f5 Refine the description of
is_unbalance
- 6c21020 change the priority of init_score and init_model. (#2291)
- 04a5601 [docs] 📝 FAQ overhaul for linking to individual questions (#2293) [ #2268 ]
- 11c24cf [docs] added FAQ on early stopping (fixes #2270) (#2272)
- 274f340 allow passing empty value in parameters (#2289)
- 207bb3e [docs] 🎨 Sphinx Autosummary for generating Python-API documentation (#2286)
- 5dc1507 [docs] updated js file attaching mechanism (#2287)
- 5d3a3ea fix metric alias (#2273)
- 716fe4d fixed cpplint errors about spaces and indents (#2282)
- ee28ea3 [ci] remove temp fix and fix activation for conda (#2280)
- e1d7a7b add weight in tree model output (#2269)
- 86a9578 fix MissingType::Zero in categorical features. (#2275)
- 7189743 Update README.md
- 0d59859 throw error when meet non ascii (#2229)
- 0d02499 [ci] added CODEOWNERS (fixes #2194) (#2196)
- 7360cff fix init_model with subset (#2252)
- ebc831b fix bug when using dart with init_model (#2251)
- 291752d Max bin by feature (#2190)
- 1bd15b9 fix refit decay rate in python (#2254)
- bf78008 switch name and alias of rmse metric (#2257)
- 4ca85fb turn on release notes (#2256)
- 16751b3 [ci] downgrade conda (#2245)
- 62935f5 updated boost (#2218)
- 86269ee [tests] use numpy.testing.assert_allclose (#2207)
- 5b24834 avoid the bad_alloc when overflow.
- cdba714 balanced bagging (#2214)
- 7da11ff [docs] add "download" badge (#2224)
- 21e356d [doc] updated links in README (#2231)
- c4cd65f [R-package] mojave install r openmp fix (#2164)
- 8ecae56 [ci] add OpenMPI link to ignore list (#2227)
- dace050 consider max_depth for histogram_pool_size (#2216)
- b6f6578 [python] fix class_weight (#2199)
- 7d03ced [python] removed unused import and variable (#2213)
- de70c7d [Python] Fix typo in engine.py (#2211)
- 520247c fix unsorted eval_a...