A fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms, used for ranking, classification and many other machine learning tasks.

Overview

Light Gradient Boosting Machine

Python-package GitHub Actions Build Status R-package GitHub Actions Build Status CUDA Version GitHub Actions Build Status Static Analysis GitHub Actions Build Status Azure Pipelines Build Status Appveyor Build Status Documentation Status Link checks License Python Versions PyPI Version CRAN Version

LightGBM is a gradient boosting framework that uses tree based learning algorithms. It is designed to be distributed and efficient with the following advantages:

  • Faster training speed and higher efficiency.
  • Lower memory usage.
  • Better accuracy.
  • Support of parallel, distributed, and GPU learning.
  • Capable of handling large-scale data.

For further details, please refer to Features.

Benefitting from these advantages, LightGBM is being widely-used in many winning solutions of machine learning competitions.

Comparison experiments on public datasets show that LightGBM can outperform existing boosting frameworks on both efficiency and accuracy, with significantly lower memory consumption. What's more, distributed learning experiments show that LightGBM can achieve a linear speed-up by using multiple machines for training in specific settings.

Get Started and Documentation

Our primary documentation is at https://lightgbm.readthedocs.io/ and is generated from this repository. If you are new to LightGBM, follow the installation instructions on that site.

Next you may want to read:

Documentation for contributors:

News

Please refer to changelogs at GitHub releases page.

Some old update logs are available at Key Events page.

External (Unofficial) Repositories

FLAML (AutoML library for hyperparameter optimization): https://github.com/microsoft/FLAML

Optuna (hyperparameter optimization framework): https://github.com/optuna/optuna

Julia-package: https://github.com/IQVIA-ML/LightGBM.jl

JPMML (Java PMML converter): https://github.com/jpmml/jpmml-lightgbm

Treelite (model compiler for efficient deployment): https://github.com/dmlc/treelite

cuML Forest Inference Library (GPU-accelerated inference): https://github.com/rapidsai/cuml

daal4py (Intel CPU-accelerated inference): https://github.com/IntelPython/daal4py

m2cgen (model appliers for various languages): https://github.com/BayesWitnesses/m2cgen

leaves (Go model applier): https://github.com/dmitryikh/leaves

ONNXMLTools (ONNX converter): https://github.com/onnx/onnxmltools

SHAP (model output explainer): https://github.com/slundberg/shap

MMLSpark (LightGBM on Spark): https://github.com/Azure/mmlspark

Kubeflow Fairing (LightGBM on Kubernetes): https://github.com/kubeflow/fairing

Kubeflow Operator (LightGBM on Kubernetes): https://github.com/kubeflow/xgboost-operator

ML.NET (.NET/C#-package): https://github.com/dotnet/machinelearning

LightGBM.NET (.NET/C#-package): https://github.com/rca22/LightGBM.Net

Ruby gem: https://github.com/ankane/lightgbm

LightGBM4j (Java high-level binding): https://github.com/metarank/lightgbm4j

lightgbm-rs (Rust binding): https://github.com/vaaaaanquish/lightgbm-rs

MLflow (experiment tracking, model monitoring framework): https://github.com/mlflow/mlflow

{treesnip} (R {parsnip}-compliant interface): https://github.com/curso-r/treesnip

{mlr3learners.lightgbm} (R {mlr3}-compliant interface): https://github.com/mlr3learners/mlr3learners.lightgbm

Support

How to Contribute

Check CONTRIBUTING page.

Microsoft Open Source Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

Reference Papers

Guolin Ke, Qi Meng, Thomas Finley, Taifeng Wang, Wei Chen, Weidong Ma, Qiwei Ye, Tie-Yan Liu. "LightGBM: A Highly Efficient Gradient Boosting Decision Tree". Advances in Neural Information Processing Systems 30 (NIPS 2017), pp. 3149-3157.

Qi Meng, Guolin Ke, Taifeng Wang, Wei Chen, Qiwei Ye, Zhi-Ming Ma, Tie-Yan Liu. "A Communication-Efficient Parallel Algorithm for Decision Tree". Advances in Neural Information Processing Systems 29 (NIPS 2016), pp. 1279-1287.

Huan Zhang, Si Si and Cho-Jui Hsieh. "GPU Acceleration for Large-scale Tree Boosting". SysML Conference, 2018.

Note: If you use LightGBM in your GitHub projects, please add lightgbm in the requirements.txt.

License

This project is licensed under the terms of the MIT license. See LICENSE for additional details.

Comments
  • Add support for CUDA-based GPU build

    Add support for CUDA-based GPU build

    This is the initial CUDA work. It should work similarly to the GPU/OCL work.

    To compile use - 'USE_CUDA=1'. Python unit tests should include 'device': 'cuda' where needed.

    All unit tests pass for CPU, GPU/OCL and CUDA. CPU & CUDA were tested on ppc64le and GPU/OCL was tested on x86_64

    feature 
    opened by ChipKerchner 127
  • Fix model locale issue and improve model R/W performance.

    Fix model locale issue and improve model R/W performance.

    When Java is used, the default C++ locale is broken. This is true for Java providers that use the C API or even Python models that require JEP.

    This patch solves that issue making the model reads/writes insensitive to such settings. To achieve it, within the model read/write codebase:

    • C++ streams are imbued with the classic locale
    • Calls to functions that are dependent on the locale are replaced
    • The default locale is not changed!

    This approach means:

    • The user's locale is never tampered with, avoiding issues such as https://github.com/microsoft/LightGBM/issues/2979 with the previous approach https://github.com/microsoft/LightGBM/pull/2891
    • Datasets can still be read according the user's locale
    • The model file has a single format independent of locale

    Changes:

    • Performance improvements: More than 35% faster model read/writes. Use fast libraries for locale-agnostic conversion:
      • value->string: https://github.com/fmtlib/fmt
      • string->double: https://github.com/lemire/fast_double_parser (10x faster double parsing according to their benchmark)
    • Add CommonC namespace which provides faster locale-independent versions of Common's methods as if using the "C" locale
    • Model code makes conversions through CommonC
    • Cleanup unused Common methods

    Bugfixes:

    • https://github.com/microsoft/LightGBM/issues/3267
    • https://github.com/microsoft/LightGBM/issues/2500
    • https://github.com/microsoft/LightGBM/issues/2890
    • https://github.com/ninia/jep/issues/205 (as it is related to LGBM as well)
    fix 
    opened by AlbertoEAF 119
  • [R-package] miscellaneous changes to comply with CRAN requirements

    [R-package] miscellaneous changes to comply with CRAN requirements

    This PR attempts to address the most recent request for changes from CRAN, https://github.com/microsoft/LightGBM/issues/3293#issuecomment-682001047, on our way to #629

    See changes to cran-comments.md for details.

    fix 
    opened by jameslamb 119
  • [python] [setup] improving installation

    [python] [setup] improving installation

    This PR makes installation of python package more clear. Should fix #874 . Adds possibility to install without CMake on Windows from existing .sln-file and Visual Studio.

    Am I right that existing solution file hasn't configuration with GPU support?

    opened by StrikerRUS 73
  • [python] Bug fix for first_metric_only on earlystopping.

    [python] Bug fix for first_metric_only on earlystopping.

    1. Order of metric list is not fixed even if it is defined by list. So explicitly indicating which metric is used on early stopping.
    2. Due to introducing eval_train_metric feature, if the feature is enabled, then the first metric became train score of the metrics, so it does not appropriate for early stopping. So until the specified metrics of validation is coming, skipping to check early stopping in the loop.

    (This PR is latest version of #2127. Once this PR is activated #2127 should be closed.)

    opened by matsuken92 72
  • [R-Package] CRAN issues

    [R-Package] CRAN issues

    Environment info

    Operating System: Windows 8.1 Pro CPU: i7-4600U R version: 3.4

    To make a release on CRAN, we will need first to fix all the errors / warnings / notes. Currently testing on Windows, but we will also need to test on Linux. If some of them cannot be fixed, we will need to have an explanation for each of those which will not be fixed by us. @guolinke

    Maybe time to add some vignettes @coforfe if you want to work on them.

    • [x] Fix CRAN errors
    • [x] Fix CRAN warnings
    • [x] Fix CRAN notes
    • [x] Add vignettes
    • [x] Make examples runnable for tests
    • [x] Switch to MinGW by default on Windows (it falls to MinGW if VS fails to be found)
    • [x] Clean install everytime when not using precompiled dll/lib
    • [x] Pass CRAN checks on Windows
    • [x] Pass CRAN checks on Linux
    • [x] Make CRAN-valid portable installation configuration (#2960)
    • [x] Submit to CRAN
    • [x] Get accepted on CRAN

    00install.out:

    * installing *source* package 'lightgbm' ...
    ** libs
    installing via 'install.libs.R' to C:/tmp/RtmpG2NQSv/lightgbm.Rcheck/lightgbm
    Warning in file.copy("./../../include", "./", overwrite = TRUE, recursive = TRUE) :
      problem copying .\..\..\include to .\include: No such file or directory
    Error in eval(ei, envir) : Cannot find folder LightGBM/include
    * removing 'C:/tmp/RtmpG2NQSv/lightgbm.Rcheck/lightgbm'
    

    Windows (fake) CRAN log:

    R version 3.4.0 (2017-04-21) -- "You Stupid Darkness"
    Copyright (C) 2017 The R Foundation for Statistical Computing
    Platform: x86_64-w64-mingw32/x64 (64-bit)
    
    R is free software and comes with ABSOLUTELY NO WARRANTY.
    You are welcome to redistribute it under certain conditions.
    Type 'license()' or 'licence()' for distribution details.
    
    R is a collaborative project with many contributors.
    Type 'contributors()' for more information and
    'citation()' on how to cite R or R packages in publications.
    
    Type 'demo()' for some demos, 'help()' for on-line help, or
    'help.start()' for an HTML browser interface to help.
    Type 'q()' to quit R.
    
    > library(devtools)
    > library(roxygen2) # devtools::install_github("klutometis/roxygen")
    > setwd("C:/LightGBM/R-package")
    > devtools::check()
    Updating lightgbm documentation
    Loading lightgbm
    Re-compiling lightgbm
    "C:/PROGRA~1/R/R-34~1.0/bin/x64/R" --no-site-file --no-environ --no-save --no-restore --quiet CMD INSTALL "C:\LightGBM\R-package"  \
      --library="C:\tmp\RtmpG2NQSv\devtools_install_19fa019043416" --no-R --no-data --no-help --no-demo --no-inst --no-docs --no-exec --no-multiarch  \
      --no-test-load --preclean 
    
    * installing *source* package 'lightgbm' ...
    ** libs
    installing via 'install.libs.R' to C:/tmp/RtmpG2NQSv/devtools_install_19fa019043416/lightgbm
    -- Building for: Visual Studio 15 2017
    -- The C compiler identification is MSVC 19.11.25303.0
    -- The CXX compiler identification is MSVC 19.11.25303.0
    -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/Preview/Community/VC/Tools/MSVC/14.11.25301/bin/HostX86/x64/cl.exe
    -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/Preview/Community/VC/Tools/MSVC/14.11.25301/bin/HostX86/x64/cl.exe -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/Preview/Community/VC/Tools/MSVC/14.11.25301/bin/HostX86/x64/cl.exe
    -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/Preview/Community/VC/Tools/MSVC/14.11.25301/bin/HostX86/x64/cl.exe -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Try OpenMP C flag = [/openmp]
    -- Performing Test OpenMP_FLAG_DETECTED
    -- Performing Test OpenMP_FLAG_DETECTED - Success
    -- Try OpenMP CXX flag = [/openmp]
    -- Performing Test OpenMP_FLAG_DETECTED
    -- Performing Test OpenMP_FLAG_DETECTED - Success
    -- Found OpenMP: /openmp  
    -- Configuring done
    -- Generating done
    -- Build files have been written to: C:/LightGBM/R-package/src/build
    Microsoft (R) Build Engine version 15.3.118.39484
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    Build started 16/06/2017 07:00:42 PM.
    Project "C:\LightGBM\R-package\src\build\_lightgbm.vcxproj" on node 1 (default targets).
    Project "C:\LightGBM\R-package\src\build\_lightgbm.vcxproj" (1) is building "C:\LightGBM\R-package\src\build\ZERO_CHECK.vcxproj" (2) on node 1 (default targets).
    PrepareForBuild:
      Creating directory "x64\Release\ZERO_CHECK\".
      Creating directory "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\".
    InitializeBuildStatus:
      Creating "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
    CustomBuild:
      Checking Build System
      CMake does not need to re-run because C:/LightGBM/R-package/src/build/CMakeFiles/generate.stamp is up-to-date.
    FinalizeBuildStatus:
      Deleting file "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\unsuccessfulbuild".
      Touching "x64\Release\ZERO_CHECK\ZERO_CHECK.tlog\ZERO_CHECK.lastbuildstate".
    Done Building Project "C:\LightGBM\R-package\src\build\ZERO_CHECK.vcxproj" (default targets).
    PrepareForBuild:
      Creating directory "_lightgbm.dir\Release\".
      Creating directory "C:\LightGBM\R-package\src\Release\".
      Creating directory "_lightgbm.dir\Release\_lightgbm.tlog\".
    InitializeBuildStatus:
      Creating "_lightgbm.dir\Release\_lightgbm.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
    CustomBuild:
      Building Custom Rule C:/LightGBM/R-package/src/CMakeLists.txt
      CMake does not need to re-run because C:/LightGBM/R-package/src/build/CMakeFiles/generate.stamp is up-to-date.
    ClCompile:
      C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\VC\Tools\MSVC\14.11.25301\bin\HostX86\x64\CL.exe /c /I"C:\LightGBM\R-package\src\include" /nologo /W4 /WX- /diagnostics:classic /O2 /Ob2 /Oi /Ot /Oy /GL /D WIN32 /D _WINDOWS /D NDEBUG /D USE_SOCKET /D "CMAKE_INTDIR=\"Release\"" /D _lightgbm_EXPORTS /D _WINDLL /D _MBCS /UNDEBUG /Gm- /EHsc /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR /openmp /Fo"_lightgbm.dir\Release\\" /Fd"_lightgbm.dir\Release\vc141.pdb" /Gd /TP /errorReport:queue   -pedantic -g -O0 "C:\LightGBM\R-package\src\src\c_api.cpp" "C:\LightGBM\R-package\src\src\lightgbm_R.cpp" "C:\LightGBM\R-package\src\src\application\application.cpp" "C:\LightGBM\R-package\src\src\boosting\boosting.cpp" "C:\LightGBM\R-package\src\src\boosting\gbdt.cpp" "C:\LightGBM\R-package\src\src\boosting\gbdt_prediction.cpp" "C:\LightGBM\R-package\src\src\boosting\prediction_early_stop.cpp" "C:\LightGBM\R-package\src\src\io\bin.cpp" "C:\LightGBM\R-package\src\src\io\config.cpp" "C:\LightGBM\R-package\src\src\io\dataset.cpp" "C:\LightGBM\R-package\src\src\io\dataset_loader.cpp" "C:\LightGBM\R-package\src\src\io\metadata.cpp" "C:\LightGBM\R-package\src\src\io\parser.cpp" "C:\LightGBM\R-package\src\src\io\tree.cpp" "C:\LightGBM\R-package\src\src\metric\dcg_calculator.cpp" "C:\LightGBM\R-package\src\src\metric\metric.cpp" "C:\LightGBM\R-package\src\src\objective\objective_function.cpp" "C:\LightGBM\R-package\src\src\network\linker_topo.cpp" "C:\LightGBM\R-package\src\src\network\linkers_mpi.cpp" "C:\LightGBM\R-package\src\src\network\linkers_socket.cpp" "C:\LightGBM\R-package\src\src\network\network.cpp" "C:\LightGBM\R-package\src\src\treelearner\data_parallel_tree_learner.cpp" "C:\LightGBM\R-package\src\src\treelearner\feature_parallel_tree_learner.cpp" "C:\LightGBM\R-package\src\src\treelearner\gpu_tree_learner.cpp" "C:\LightGBM\R-package\src\src\treelearner\serial_tree_learner.cpp" "C:\LightGBM\R-package\src\src\treelearner\tree_learner.cpp" "C:\LightGBM\R-package\src\src\treelearner\voting_parallel_tree_learner.cpp"
    cl : Command line warning D9025: overriding '/DNDEBUG' with '/UNDEBUG' [C:\LightGBM\R-package\src\build\_lightgbm.vcxproj]
      c_api.cpp
    cl : Command line warning D9002: ignoring unknown option '-pedantic' [C:\LightGBM\R-package\src\build\_lightgbm.vcxproj]
    cl : Command line warning D9002: ignoring unknown option '-g' [C:\LightGBM\R-package\src\build\_lightgbm.vcxproj]
    cl : Command line warning D9002: ignoring unknown option '-O0' [C:\LightGBM\R-package\src\build\_lightgbm.vcxproj]
      lightgbm_R.cpp
      application.cpp
      boosting.cpp
      gbdt.cpp
      gbdt_prediction.cpp
      prediction_early_stop.cpp
      bin.cpp
      config.cpp
      dataset.cpp
      dataset_loader.cpp
      metadata.cpp
      parser.cpp
      tree.cpp
      dcg_calculator.cpp
      metric.cpp
      objective_function.cpp
      linker_topo.cpp
      linkers_mpi.cpp
      linkers_socket.cpp
      Compiling...
      network.cpp
      data_parallel_tree_learner.cpp
      feature_parallel_tree_learner.cpp
      gpu_tree_learner.cpp
      serial_tree_learner.cpp
      tree_learner.cpp
      voting_parallel_tree_learner.cpp
    Link:
      C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\VC\Tools\MSVC\14.11.25301\bin\HostX86\x64\link.exe /ERRORREPORT:QUEUE /OUT:"C:\LightGBM\R-package\src\Release\lib_lightgbm.dll" /INCREMENTAL:NO /NOLOGO kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /PDB:"C:/LightGBM/R-package/src/Release/lib_lightgbm.pdb" /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"C:/LightGBM/R-package/src/Release/lib_lightgbm.lib" /MACHINE:X64   /machine:x64 /DLL _lightgbm.dir\Release\c_api.obj
      _lightgbm.dir\Release\lightgbm_R.obj
      _lightgbm.dir\Release\application.obj
      _lightgbm.dir\Release\boosting.obj
      _lightgbm.dir\Release\gbdt.obj
      _lightgbm.dir\Release\gbdt_prediction.obj
      _lightgbm.dir\Release\prediction_early_stop.obj
      _lightgbm.dir\Release\bin.obj
      _lightgbm.dir\Release\config.obj
      _lightgbm.dir\Release\dataset.obj
      _lightgbm.dir\Release\dataset_loader.obj
      _lightgbm.dir\Release\metadata.obj
      _lightgbm.dir\Release\parser.obj
      _lightgbm.dir\Release\tree.obj
      _lightgbm.dir\Release\dcg_calculator.obj
      _lightgbm.dir\Release\metric.obj
      _lightgbm.dir\Release\objective_function.obj
      _lightgbm.dir\Release\linker_topo.obj
      _lightgbm.dir\Release\linkers_mpi.obj
      _lightgbm.dir\Release\linkers_socket.obj
      _lightgbm.dir\Release\network.obj
      _lightgbm.dir\Release\data_parallel_tree_learner.obj
      _lightgbm.dir\Release\feature_parallel_tree_learner.obj
      _lightgbm.dir\Release\gpu_tree_learner.obj
      _lightgbm.dir\Release\serial_tree_learner.obj
      _lightgbm.dir\Release\tree_learner.obj
      _lightgbm.dir\Release\voting_parallel_tree_learner.obj
      c_api.obj : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance
         Creating library C:/LightGBM/R-package/src/Release/lib_lightgbm.lib and object C:/LightGBM/R-package/src/Release/lib_lightgbm.exp
      Generating code
      Finished generating code
      _lightgbm.vcxproj -> C:\LightGBM\R-package\src\Release\lib_lightgbm.dll
    FinalizeBuildStatus:
      Deleting file "_lightgbm.dir\Release\_lightgbm.tlog\unsuccessfulbuild".
      Touching "_lightgbm.dir\Release\_lightgbm.tlog\_lightgbm.lastbuildstate".
    Done Building Project "C:\LightGBM\R-package\src\build\_lightgbm.vcxproj" (default targets).
    
    Build succeeded.
    
    "C:\LightGBM\R-package\src\build\_lightgbm.vcxproj" (default target) (1) ->
    (ClCompile target) -> 
      cl : Command line warning D9025: overriding '/DNDEBUG' with '/UNDEBUG' [C:\LightGBM\R-package\src\build\_lightgbm.vcxproj]
      cl : Command line warning D9002: ignoring unknown option '-pedantic' [C:\LightGBM\R-package\src\build\_lightgbm.vcxproj]
      cl : Command line warning D9002: ignoring unknown option '-g' [C:\LightGBM\R-package\src\build\_lightgbm.vcxproj]
      cl : Command line warning D9002: ignoring unknown option '-O0' [C:\LightGBM\R-package\src\build\_lightgbm.vcxproj]
    
        4 Warning(s)
        0 Error(s)
    
    Time Elapsed 00:00:44.73
    Found library file: C:/LightGBM/R-package/src/Release/lib_lightgbm.dll to move to C:/tmp/RtmpG2NQSv/devtools_install_19fa019043416/lightgbm/libs/x64* DONE (lightgbm)
    Loading required package: R6
    Writing NAMESPACE
    Writing predict.lgb.Booster.Rd
    Setting env vars -------------------------------------------------------------------------------------------------------------------------------------------
    CFLAGS  : -Wall -pedantic
    CXXFLAGS: -Wall -pedantic
    Building lightgbm ------------------------------------------------------------------------------------------------------------------------------------------
    "C:/PROGRA~1/R/R-34~1.0/bin/x64/R" --no-site-file --no-environ --no-save --no-restore --quiet CMD build "C:\LightGBM\R-package" --no-resave-data  \
      --no-manual 
    
    * checking for file 'C:\LightGBM\R-package/DESCRIPTION' ... OK
    * preparing 'lightgbm':
    * checking DESCRIPTION meta-information ... OK
    * cleaning src
    * checking for LF line-endings in source and make files
    * checking for empty or unneeded directories
    Removed empty directory 'lightgbm/src/build/CMakeFiles/3.8.0/CompilerIdC/tmp'
    Removed empty directory 'lightgbm/src/build/CMakeFiles/3.8.0/CompilerIdCXX/tmp'
    Removed empty directory 'lightgbm/src/build/CMakeFiles/CMakeTmp'
    * looking to see if a 'data/datalist' file should be added
    * building 'lightgbm_0.2.tar.gz'
    Warning in utils::tar(filepath, pkgname, compression = "gzip", compression_level = 9L,  :
      storing paths of more than 100 bytes is not portable:
      'lightgbm/src/build/CMakeFiles/3.8.0/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CompilerIdCXX.lastbuildstate'
    
    Setting env vars -------------------------------------------------------------------------------------------------------------------------------------------
    _R_CHECK_CRAN_INCOMING_ : FALSE
    _R_CHECK_FORCE_SUGGESTS_: FALSE
    Checking lightgbm ------------------------------------------------------------------------------------------------------------------------------------------
    "C:/PROGRA~1/R/R-34~1.0/bin/x64/R" --no-site-file --no-environ --no-save --no-restore --quiet CMD check "C:\tmp\RtmpG2NQSv/lightgbm_0.2.tar.gz" --as-cran  \
      --timings --no-manual 
    
    * using log directory 'C:/tmp/RtmpG2NQSv/lightgbm.Rcheck'
    * using R version 3.4.0 (2017-04-21)
    * using platform: x86_64-w64-mingw32 (64-bit)
    * using session charset: ISO8859-1
    * using options '--no-manual --as-cran'
    * checking for file 'lightgbm/DESCRIPTION' ... OK
    * checking extension type ... Package
    * this is package 'lightgbm' version '0.2'
    * checking package namespace information ... OK
    * checking package dependencies ... OK
    * checking if this is a source package ... WARNING
    Subdirectory 'src' contains:
      CMakeLists.txt
    These are unlikely file names for src files.
    
    In addition to the above warning(s), found the following notes:
    
    Found the following apparent object files/libraries:
      src/Release/lib_lightgbm.dll
      src/build/CMakeFiles/3.8.0/CompilerIdC/Debug/CMakeCCompilerId.obj
      src/build/CMakeFiles/3.8.0/CompilerIdCXX/Debug/CMakeCXXCompilerId.obj
      src/build/_lightgbm.dir/Release/application.obj
      src/build/_lightgbm.dir/Release/bin.obj
      src/build/_lightgbm.dir/Release/boosting.obj
      src/build/_lightgbm.dir/Release/c_api.obj
      src/build/_lightgbm.dir/Release/config.obj
      src/build/_lightgbm.dir/Release/data_parallel_tree_learner.obj
      src/build/_lightgbm.dir/Release/dataset.obj
      src/build/_lightgbm.dir/Release/dataset_loader.obj
      src/build/_lightgbm.dir/Release/dcg_calculator.obj
      src/build/_lightgbm.dir/Release/feature_parallel_tree_learner.obj
      src/build/_lightgbm.dir/Release/gbdt.obj
      src/build/_lightgbm.dir/Release/gbdt_prediction.obj
      src/build/_lightgbm.dir/Release/gpu_tree_learner.obj
      src/build/_lightgbm.dir/Release/lightgbm_R.obj
      src/build/_lightgbm.dir/Release/linker_topo.obj
      src/build/_lightgbm.dir/Release/linkers_mpi.obj
      src/build/_lightgbm.dir/Release/linkers_socket.obj
      src/build/_lightgbm.dir/Release/metadata.obj
      src/build/_lightgbm.dir/Release/metric.obj
      src/build/_lightgbm.dir/Release/network.obj
      src/build/_lightgbm.dir/Release/objective_function.obj
      src/build/_lightgbm.dir/Release/parser.obj
      src/build/_lightgbm.dir/Release/prediction_early_stop.obj
      src/build/_lightgbm.dir/Release/serial_tree_learner.obj
      src/build/_lightgbm.dir/Release/tree.obj
      src/build/_lightgbm.dir/Release/tree_learner.obj
      src/build/_lightgbm.dir/Release/voting_parallel_tree_learner.obj
    Object files/libraries should not be included in a source package.
    * checking if there is a namespace ... OK
    * checking for executable files ... WARNING
    Found the following executable files:
      src/Release/lib_lightgbm.dll
      src/build/CMakeFiles/3.8.0/CMakeDetermineCompilerABI_C.bin
      src/build/CMakeFiles/3.8.0/CMakeDetermineCompilerABI_CXX.bin
      src/build/CMakeFiles/3.8.0/CompilerIdC/CompilerIdC.exe
      src/build/CMakeFiles/3.8.0/CompilerIdCXX/CompilerIdCXX.exe
      src/build/CMakeFiles/FindOpenMP/ompver_C.bin
      src/build/CMakeFiles/FindOpenMP/ompver_CXX.bin
      src/build/CMakeFiles/feature_tests.bin
    Source packages should not contain undeclared executable files.
    See section 'Package structure' in the 'Writing R Extensions' manual.
    * checking for hidden files and directories ... OK
    * checking for portable file names ... NOTE
    Found the following non-portable file path:
      lightgbm/src/build/CMakeFiles/3.8.0/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CompilerIdCXX.lastbuildstate
    
    Tarballs are only required to store paths of up to 100 bytes and cannot
    store those of more than 256 bytes, with restrictions including to 100
    bytes for the final component.
    See section 'Package structure' in the 'Writing R Extensions' manual.
    * checking whether package 'lightgbm' can be installed ...Warning: running command '"C:/PROGRA~1/R/R-34~1.0/bin/x64/Rcmd.exe" INSTALL -l "C:/tmp/RtmpG2NQSv/lightgbm.Rcheck" --no-html --no-multiarch "C:\tmp\RTMPG2~1\LIGHTG~1.RCH\00_PKG~1\lightgbm"' had status 1
     ERROR
    Installation failed.
    See 'C:/tmp/RtmpG2NQSv/lightgbm.Rcheck/00install.out' for details.
    * DONE
    
    Status: 1 ERROR, 2 WARNINGs, 1 NOTE
    See
      'C:/tmp/RtmpG2NQSv/lightgbm.Rcheck/00check.log'
    for details.
    
    R CMD check results
    1 error  | 2 warnings | 1 note 
    checking whether package 'lightgbm' can be installed ... ERROR
    Installation failed.
    See 'C:/tmp/RtmpG2NQSv/lightgbm.Rcheck/00install.out' for details.
    
    checking if this is a source package ... WARNING
    Subdirectory 'src' contains:
      CMakeLists.txt
    These are unlikely file names for src files.
    
    In addition to the above warning(s), found the following notes:
    
    Found the following apparent object files/libraries:
      src/Release/lib_lightgbm.dll
      src/build/CMakeFiles/3.8.0/CompilerIdC/Debug/CMakeCCompilerId.obj
    ... 19 lines ...
      src/build/_lightgbm.dir/Release/metadata.obj
      src/build/_lightgbm.dir/Release/metric.obj
      src/build/_lightgbm.dir/Release/network.obj
      src/build/_lightgbm.dir/Release/objective_function.obj
      src/build/_lightgbm.dir/Release/parser.obj
      src/build/_lightgbm.dir/Release/prediction_early_stop.obj
      src/build/_lightgbm.dir/Release/serial_tree_learner.obj
      src/build/_lightgbm.dir/Release/tree.obj
      src/build/_lightgbm.dir/Release/tree_learner.obj
      src/build/_lightgbm.dir/Release/voting_parallel_tree_learner.obj
    Object files/libraries should not be included in a source package.
    
    checking for executable files ... WARNING
    Found the following executable files:
      src/Release/lib_lightgbm.dll
      src/build/CMakeFiles/3.8.0/CMakeDetermineCompilerABI_C.bin
      src/build/CMakeFiles/3.8.0/CMakeDetermineCompilerABI_CXX.bin
      src/build/CMakeFiles/3.8.0/CompilerIdC/CompilerIdC.exe
      src/build/CMakeFiles/3.8.0/CompilerIdCXX/CompilerIdCXX.exe
      src/build/CMakeFiles/FindOpenMP/ompver_C.bin
      src/build/CMakeFiles/FindOpenMP/ompver_CXX.bin
      src/build/CMakeFiles/feature_tests.bin
    Source packages should not contain undeclared executable files.
    See section 'Package structure' in the 'Writing R Extensions' manual.
    
    checking for portable file names ... NOTE
    Found the following non-portable file path:
      lightgbm/src/build/CMakeFiles/3.8.0/CompilerIdCXX/Debug/CompilerIdCXX.tlog/CompilerIdCXX.lastbuildstate
    
    Tarballs are only required to store paths of up to 100 bytes and cannot
    store those of more than 256 bytes, with restrictions including to 100
    bytes for the final component.
    See section 'Package structure' in the 'Writing R Extensions' manual.
    
    help wanted feature request in progress r-package 
    opened by Laurae2 71
  • Added LightGBM JAVA SWIG wrapper support for windows

    Added LightGBM JAVA SWIG wrapper support for windows

    Added LightGBM JAVA SWIG wrapper support for windows OS TODO: Add to Mac OS (need to find a Mac to validate this on)

    To validate on windows (note, you must have SWIG and java sdk installed and JAVA_HOME environment variable must be set):

    mkdir build cd build cmake -DCMAKE_GENERATOR_PLATFORM=x64 -DUSE_SWIG=ON .. cmake --build . --target ALL_BUILD --config Release

    opened by imatiach-msft 67
  • [R-package] make package installable with CRAN toolchain (fixes #2960)

    [R-package] make package installable with CRAN toolchain (fixes #2960)

    This pull request contains a proposal for the next step to get the LightGBM R package onto CRAN: building without CMake.

    See conversation in #629 for some background.

    Essentially, CRAN very particular about how source packages with C++ code are built. It enforces a lot of checks to ensure portability, and will reject packages that require any of the following:

    • non-portable flags
    • non-standard / non-open-source build tools

    The R package does not currently comply with CRAN's preferred build toolchain. This PR fixes that 😀

    Overview

    As of this PR, LightGBM's R package gains a CRAN-compliant installation toolchain using autoconf. From "Writing R Extensions"

    If your package needs some system-dependent configuration before installation you can include an executable (Bourne25) shell script configure in your package which (if present) is executed by R CMD INSTALL before any other action is performed. This can be a script created by the Autoconf mechanism, but may also be a script written by yourself...the full power of Autoconf is available for your extension package (including variable substitution, searching for libraries, etc.).

    The details of how this is used are explained in the proposed changes to R-package/README.md added to this PR.

    Notes for Reviewers

    • I have been testing this in PR on my fork for the last few months (most recent one: https://github.com/jameslamb/LightGBM/pull/31). Some CI jobs are still failing but I think this is close enough that it's ready for the review process to start.
    • Ignore the commented-out CI jobs for now. I've commented out some non-R CI jobs to minimize the burden that this PR puts on our CI while it is still in development.

    Thanks in advance for your time and thorough reviews!

    feature 
    opened by jameslamb 62
  • v3.2.0 release

    v3.2.0 release

    This is a stable release. The next release may is 4.0.0, for many breaking changes. And it may take a long time to finish. So it better to fix the critical bugs in 3.2.0.

    Please list the PR need to be merged in this release.

    maintenance 
    opened by guolinke 60
  • Dart - very poor accuracy

    Dart - very poor accuracy

    When I use dart as a booster I always get very poor performance in term of l2 result for regression task. Even If I use small drop_rate = 0.01 or big like 0.3.

    When I use dart in xgboost on same dataset, with similar setting (same learning rate, similiar num_trees) dart alwasy give me boost for accuracy (small but always).

    But here accuracy is poor badly, like there is a bug, not just dart is not suitable for my task.

    Can anyone confirm that dart is working for regression task in term of better accuracy?

    My setting is as follows (part of the Python code for ramdom search of params):

    lr = np.random.choice([0.01, 0.005, 0.0025]) list_count = np.random.choice([250, 500, 750, 1000]) min_in_leaf = np.random.choice([25, 50, 100]) subF = np.random.choice([0.15, 0.22, 0.3, 0.5, 0.66, 0.75]) subR = np.random.choice([0.66, 0.75, 0.83, 0.9]) max_depth = np.random.choice([9, 11, 15, 25, 45, 100, -1]) dart_rate = np.random.choice([0, 0, 0, 0.01, 0.03, 0.1]) max_bin = np.random.choice([63, 127, 255, 511]) lambda_l1 = np.random.choice([0, 1., 10., 100.]) lambda_l2 = np.random.choice([0, 1., 10., 100.])

    iterace = 10000 if only_testing: min_in_leaf = 25 iterace = 10

    boost_type = 'gbdt' if dart_rate > 0: boost_type = 'dart'

    params = { 'task' : 'train', 'boosting_type' : boost_type, 'objective' : 'regression', 'metric' : 'l2', 'max_depth' : int(max_depth), 'num_leaves' : int(list_count), 'min_data_in_leaf' : int(min_in_leaf), 'learning_rate' : lr, 'feature_fraction' : subF,
    'bagging_fraction' : subR, 'bagging_freq': 1, 'verbose' : 0, 'nthread' : nthread, 'drop_rate': dart_rate, 'max_bin': max_bin, 'lambda_l1' : lambda_l1, 'lambda_l2' : lambda_l2 }

    model = lg.train( params, (matrix_learn, target_learn), num_boost_round = iterace, valid_datas = (matrix_test, target_test), early_stopping_rounds = 50 )

    opened by gugatr0n1c 59
  • [ci] remove Travis (fixes #3519)

    [ci] remove Travis (fixes #3519)

    ~This is a draft PR to move CI jobs from Travis to Azure DevOps.~

    This PR moves remaining Mac + Linux jobs that are currently running on Travis to GitHub Actions. This project is ending its reliance on Travis based on Travis's strategic decision to offer only very very limited support for open source projects. See #3519 for full background and discussion.

    maintenance 
    opened by jameslamb 58
  • Tuning LambdaRank Objective with Sklearn's GroupKFold (RandomSearch)

    Tuning LambdaRank Objective with Sklearn's GroupKFold (RandomSearch)

    Description

    For the lambdarank objective, the Scikit-learn GroupKFold does not work. Is there a way to make this work? Below is a simple example.

    Reproducible example

    import numpy as np 
    import pandas as pd 
    import os 
    from sklearn.model_selection import RandomizedSearchCV, GroupKFold
    from sklearn.metrics import make_scorer, ndcg_score
    import lightgbm
    
    
    X = [[0.  , 0.  , 0.01],
        [1.  , 0.  , 1.  ],
        [0.43, 0.  , 0.  ],
        [0.43, 0.  , 0.4 ],
        [0.  , 0.  , 0.01],
        [0.  , 0.  , 0.31],
        [0.  , 0.  , 1.  ],
        [0.  , 0.  , 0.  ],
        [0.  , 0.  , 0.15]]
    
    y = [0, 0, 1, 0, 3, 0, 4, 0, 0]
    groups = np.array([0, 0, 0, 0, 0, 0, 0, 1, 1]).astype(int)  
    flat_group = [7, 2]
    
    ## Training on the data works
    gbm = lightgbm.LGBMRanker(objective='lambdarank')
    gbm.fit(X=X, y=y,group=flat_group)
    
    ### Random hyperparameter tuning doesn't work
    hyper_params = {
        'n_estimators': [10, 20, 30, 40],
        'num_leaves': [20, 50, 100, 200],
        'max_depth': [5,10,15,20],
        'learning_rate': [0.01, 0.02, 0.03]
    }
    
    gkf = GroupKFold(n_splits=2)
    folds = gkf.split(X, groups=groups)
    
    
    grid = RandomizedSearchCV(gbm, hyper_params, n_iter=2, 
            cv=folds, verbose=3, scoring=make_scorer(ndcg_score), 
            error_score='raise')
    
    def group_gen(groups, folds):
        for train, _ in folds:
            yield np.unique(groups[train], return_counts=True)[1]
    
    gen = group_gen(groups, folds)
    
    grid.fit(X, y, group=next(gen))
    
    
    

    Which produces the following error:

    ---------------------------------------------------------------------------
    StopIteration                             Traceback (most recent call last)
    Cell In[102], line 1
    ----> 1 grid.fit(X, y, group=next(gen))
    
    StopIteration: 
    

    Environment info

    Sklearn: 1.1.3 LightGBM: 3.2.1

    Additional Comments

    The code I pasted is inspired by the solution given in https://github.com/microsoft/LightGBM/issues/1137 which refers to https://github.com/Microsoft/LightGBM/blob/4df7b21dcf2ca173a812f9667e30a21ef827104e/python-package/lightgbm/engine.py#L267-L274. However, this does not work in our case.

    Any help would be appreciated.

    question 
    opened by amir-rahnama 0
  • [ci] [python-package] enforce flake8 checks (fixes #5566)

    [ci] [python-package] enforce flake8 checks (fixes #5566)

    Fixes #5566.

    Proposes enforcing flake8 checks on all Python code maintained in this repo, for the reasons described in #5566.

    This also fixes the following warnings found by flake8

    ./tests/python_package_test/test_engine.py:2906:9: F841 local variable 'bst' is assigned to but never used
    ./tests/python_package_test/test_callback.py:6:1: F401 '.utils.pickle_obj' imported but unused
    ./tests/python_package_test/test_callback.py:6:1: F401 '.utils.unpickle_obj' imported but unused
    ./tests/python_package_test/test_dask.py:1727:29: F841 local variable 'client' is assigned to but never used
    ./tests/python_package_test/test_dask.py:1806:29: F841 local variable 'client' is assigned to but never used
    ./tests/python_package_test/test_sklearn.py:447:5: F841 local variable 'gbm_clone' is assigned to but never used
    ./python-package/setup.py:99:5: F841 local variable 'err' is assigned to but never used
    ./python-package/lightgbm/compat.py:39:5: F401 'matplotlib' imported but unused
    ./python-package/lightgbm/compat.py:46:5: F401 'graphviz' imported but unused
    ./docs/conf.py:108:5: F401 'sklearn' imported but unused
    

    Notes for Reviewers

    In a followup PR, I might also propose also adding some flake8 plugins like flake8-bugbear. But didn't want to make this PR any larger.

    awaiting review maintenance 
    opened by jameslamb 0
  • [python-package] remove `Dataset.feature_penalty`

    [python-package] remove `Dataset.feature_penalty`

    Contributes to #5313.

    Proposes removing public attribute Dataset.feature_penalty. It was added in #2006 to support method Dataset.get_feature_penalty().

    Dataset.get_feature_penalty() was removed in #2594, which moved feature_penalty into params (instead of having it be a top-level attribute of Dataset).

    Notes for Reviewers

    This is technically "breaking" because it removes a public attribute that user code could reference, but this attribute doesn't actually do anything and hasn't since get_feature_penalty() was removed back in #2594.

    So I chose the label maintenance, to not add more noise to the breaking section of the release notes for something that I think very few users are likely to be depending on.

    awaiting review maintenance 
    opened by jameslamb 0
  • [python-package] make public API members explicit with module-level __all__ variables

    [python-package] make public API members explicit with module-level __all__ variables

    Contributes to #5313.

    Proposes adding module-level __all__ blocks in each module in the Python package.

    From https://docs.python.org/3/reference/simple_stmts.html#import (thanks @jmoralez for sharing that link in https://github.com/microsoft/LightGBM/issues/5313#issuecomment-1165757690)....

    The public names defined by a module are determined by checking the module’s namespace for a variable named __all__... __all__ should contain the entire public API.

    It is intended to avoid accidentally exporting items that are not part of the API (such as library modules which were imported and used within the module).

    Benefits of this change

    Reduces the set of imports pulled in by statements like from lightgbm.basic import * to only those that maintainers intend to be part of LightGBM's public API.

    That will hopefully discourage some users from depending on details that are expected to be private, and therefore subject to breaking changes.

    How I tested this

    used dir() to check what was imported by different import paths (click me)

    Wrote a little shell function that prints the incremental objects added into the current Python environment by an import.

    print_incremental_imports() {
        python -c "orig = set(dir()); from ${1} import *; print((set(dir()) - orig) - set(['orig']))"
    }
    
    print_incremental_imports "lightgbm.basic"
    

    from lightgbm import * (unchanged)

    (unchanged)
    

    from lightgbm.basic import *

    # before
    {'abc', 'Union', 'C_API_PREDICT_NORMAL', 'FIELD_TYPE_MAPPER', 'C_API_DTYPE_FLOAT32',
    'LightGBMError', 'SEEK_END', 'pd_DataFrame', 'Optional', 'C_API_DTYPE_INT32', 'json_default_with_numpy',
    'pd_CategoricalDtype', 'deepcopy', 'Dataset', 'LGBMDeprecationWarning', 'pd_Series', 'json', 'scipy',
    'C_API_FEATURE_IMPORTANCE_SPLIT', 'OrderedDict', 'Any', 'wraps', 'Path', 'List', 'C_API_PREDICT_CONTRIB',
    'C_API_MATRIX_TYPE_CSC', 'C_API_PREDICT_RAW_SCORE', 'param_dict_to_str', 'C_API_PREDICT_LEAF_INDEX', 'environ',
    'C_API_DTYPE_INT64', 'getsize', 'Sequence', 'Dict', 'C_API_IS_ROW_MAJOR', 'Booster', 'concat', 'Callable',
    'NamedTemporaryFile', 'ctypes', 'MAX_INT32', 'warnings', 'C_API_DTYPE_FLOAT64', 'PANDAS_INSTALLED', 'Enum',
    'C_API_FEATURE_IMPORTANCE_GAIN', 'FEATURE_IMPORTANCE_TYPE_MAPPER', 'Set', 'C_API_MATRIX_TYPE_CSR', 'np',
    'Tuple', 'Iterable', 'dt_DataTable', 'register_logger', 'find_lib_path', 'ZERO_THRESHOLD'}
    
    # after
    {'LightGBMError', 'LGBMDeprecationWarning', 'Sequence', 'Dataset', 'Booster', 'register_logger'}
    

    from lightgbm.callback import *

    # before
    {'List', 'Callable', 'record_evaluation', 'Union', 'partial', 'Any', 'reset_parameter', 'collections',
    'early_stopping', 'EarlyStopException', 'Tuple', 'CallbackEnv', 'Dict', 'log_evaluation'}
    
    # after
    {'early_stopping', 'reset_parameter', 'record_evaluation', 'log_evaluation'}
    

    from lightgbm.compat import *

    # before
    {'SKLEARN_INSTALLED', 'PANDAS_INSTALLED', 'LabelEncoder', 'delayed', 'wait', 'BaseEstimator', 'pd_Series',
    'StratifiedKFold', 'dask_Array', 'LGBMNotFittedError', 'MATPLOTLIB_INSTALLED', 'DATATABLE_INSTALLED',
    'DASK_INSTALLED', 'pd_DataFrame', 'ClassifierMixin', 'NotFittedError', 'concat', 'dt_DataTable',
    'GroupKFold', 'default_client', 'check_array', 'dask_array_from_delayed', 'assert_all_finite',
    'dask_Series', 'check_classification_targets', 'RegressorMixin', 'dask_DataFrame', 'pd_CategoricalDtype',
    'dask_bag_from_delayed', 'compute_sample_weight', 'BaseCrossValidator', 'Client', 'matplotlib',
    'cpu_count', 'check_X_y', 'datatable', 'GRAPHVIZ_INSTALLED'}
    
    # after
    set()
    

    from lightgbm.dask import *

    # before
    {'List', 'dask_Series', 'LGBMModel', 'urlparse', 'Any', 'PANDAS_INSTALLED', 'delayed', 'Type', 'ss',
    'LGBMRanker', 'concat', 'np', 'DaskLGBMClassifier', 'namedtuple', 'defaultdict', 'DaskLGBMRanker',
    'LGBMRegressor', 'Union', 'Client', 'Optional', 'DaskLGBMRegressor', 'partial', 'auto', 'socket',
    'pd_Series', 'LGBMClassifier', 'dask_bag_from_delayed', 'Enum', 'deepcopy', 'SKLEARN_INSTALLED',
    'dask_DataFrame', 'wait', 'LGBMNotFittedError', 'Dict', 'LightGBMError', 'Tuple', 'DASK_INSTALLED',
    'dask_array_from_delayed', 'dask_Array', 'Iterable', 'pd_DataFrame', 'default_client'}
    
    # after
    {'DaskLGBMClassifier', 'DaskLGBMRegressor', 'DaskLGBMRanker'}
    

    from lightgbm.engine import *

    # before
    {'collections', 'SKLEARN_INSTALLED', 'Booster', 'train', 'Iterable', 'np', 'Tuple', 'Dict', 'callback',
    'Union', 'Any', 'Dataset', 'copy', 'Callable', 'cv', 'CVBooster', 'attrgetter', 'json', 'List',
    'LightGBMError', 'Path', 'Optional'}
    
    # after
    {'train', 'cv', 'CVBooster'}
    

    from lightgbm.libpath import *

    # before
    {'List', 'system', 'find_lib_path', 'Path'}
    
    # after
    set()
    

    from lightgbm.plotting import *

    # before
    {'math', 'Any', 'List', 'plot_split_value_histogram', 'Optional', 'LGBMModel', 'Booster',
    'pd_DataFrame', 'plot_tree', 'plot_metric', 'BytesIO', 'GRAPHVIZ_INSTALLED', 'deepcopy',
    'create_tree_digraph', 'MATPLOTLIB_INSTALLED', 'np', 'Tuple', 'plot_importance', 'Union', 'Dict'}
    
    # after
    {'plot_tree', 'plot_split_value_histogram', 'plot_metric', 'plot_importance', 'create_tree_digraph'
    

    from lightgbm.sklearn import *

    # before
    {'SKLEARN_INSTALLED', 'np', 'LGBMModel', 'Path', 'Booster', 'Callable', 'Optional', 'pd_DataFrame',
    'LGBMClassifier', 'List', 'copy', 'Union', 'Any', 'train', 'dt_DataTable', 'record_evaluation',
    'LGBMNotFittedError', 'LGBMRegressor', 'Dataset', 'Dict', 'LGBMRanker', 'signature', 'Tuple', 'LightGBMError'}
    
    # after
    {'LGBMClassifier', 'LGBMModel', 'LGBMRegressor', 'LGBMRanker'}
    

    Temporarily enabled this branch on readthedocs, to be sure that this doesn't break doc-building.

    • successful build: https://readthedocs.org/projects/lightgbm/builds/19036637/
    • docs link: https://lightgbm.readthedocs.io/en/python-module-all/Python-API.html#training-api
    awaiting review breaking 
    opened by jameslamb 0
  • [docs] [R-package] mention {bonsai} in the docs

    [docs] [R-package] mention {bonsai} in the docs

    Proposes some small updates to the R docs.

    Fixes a typo in R-package/cran-comments.md (noted in https://github.com/microsoft/LightGBM/pull/5646#discussion_r1056987577).

    Adds {bonsai} to the list of unofficial repositories and removing {treesnip}. Per https://github.com/curso-r/treesnip/commit/b9265ae514b182e0fca90a384db438a2b0642591, {bonsai} has replaced {treesnip}.

    Removes references to lightgbm.py, which was last updated in April 2020 and has been marked "archived".

    Removes the R-specific External Repositories section, in favor of just listing all of those in the main README.

    Notes for Reviewers

    Tagging the {bonsai} folks @simonpcouch @topepo so they're aware our docs here are going to start pointing people to {bonsai}.

    awaiting review doc 
    opened by jameslamb 0
Releases(v3.3.3)
  • v3.3.3(Oct 10, 2022)

    Changes

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

    See https://github.com/microsoft/LightGBM/issues/5502 and https://github.com/microsoft/LightGBM/pull/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

    • Check existence of inet_pton for win32 in CMakeLists.txt (fixes #5019) @shiyu1994 (#5159)
    • [ci] [R-package] use R 4.2.1 in Windows CI jobs (fixes #4881) @jameslamb (#5503)
    • [R-package] fix test on non-ASCII features in non-UTF8 locales @jameslamb (#5526)

    📖 Documentation

    None

    🧰 Maintenance

    • [ci] run Appveyor checks on PRs targeting release/ branches @jameslamb (#5528)
    • [ci] run CI on pull requests targeting release/ branches @jameslamb (#5527)
    • [ci] [R-package] ensure that MSVC jobs fail when tests fail (fixes #5439) @jameslamb (#5448)
    Source code(tar.gz)
    Source code(zip)
    commit.txt(41 bytes)
    lib_lightgbm.dll(2.00 MB)
    lib_lightgbm.dylib(3.61 MB)
    lib_lightgbm.so(5.32 MB)
    lightgbm-3.3.3-py3-none-macosx_10_15_x86_64.macosx_11_6_x86_64.macosx_12_0_x86_64.whl(1.20 MB)
    lightgbm-3.3.3-py3-none-manylinux1_x86_64.whl(1.90 MB)
    lightgbm-3.3.3-py3-none-manylinux2014_aarch64.whl(2.00 MB)
    lightgbm-3.3.3-py3-none-win_amd64.whl(1000.59 KB)
    lightgbm-3.3.3-r-cran.tar.gz(1.38 MB)
    lightgbm-3.3.3.tar.gz(1.43 MB)
    LightGBM-complete_source_code_tar_gz.tar.gz(160.39 MB)
    LightGBM-complete_source_code_zip.zip(162.13 MB)
    LightGBM.3.3.3.nupkg(4.46 MB)
    lightgbm.exe(1.89 MB)
    lightgbmlib_linux.jar(1.85 MB)
    lightgbmlib_macos.jar(1.13 MB)
    lightgbmlib_win.jar(837.74 KB)
  • v3.3.1(Oct 27, 2021)

    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 to 1.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 with license 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)
    Source code(tar.gz)
    Source code(zip)
    lib_lightgbm.dll(2.08 MB)
    lib_lightgbm.dylib(3.60 MB)
    lib_lightgbm.so(5.32 MB)
    lightgbm-3.3.1-py3-none-macosx_10_14_x86_64.macosx_10_15_x86_64.macosx_11_0_x86_64.whl(1.16 MB)
    lightgbm-3.3.1-py3-none-manylinux1_x86_64.whl(1.90 MB)
    lightgbm-3.3.1-py3-none-manylinux2014_aarch64.whl(2.00 MB)
    lightgbm-3.3.1-py3-none-win_amd64.whl(994.51 KB)
    lightgbm-3.3.1-r-cran.tar.gz(1.38 MB)
    lightgbm-3.3.1.tar.gz(1.43 MB)
    LightGBM-complete_source_code_tar_gz.tar.gz(156.60 MB)
    LightGBM-complete_source_code_zip.zip(158.34 MB)
    LightGBM.3.3.1.nupkg(4.39 MB)
    lightgbm.exe(1.94 MB)
    lightgbmlib_linux.jar(1.85 MB)
    lightgbmlib_macos.jar(1.10 MB)
    lightgbmlib_win.jar(826.35 KB)
  • v3.3.0(Oct 9, 2021)

    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 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

    • 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 in list of ... types @StrikerRUS (#4557)
    • [docs][python] Improve description of eval_result argument in record_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)
    • prefer spaces to tabs in CMakeLists.txt @jameslamb (#4593)
    • [ci] skip Dask tests on QEMU builds @jameslamb (#4600)
    • [ci] simplify docker info parsing in QEMU builds @StrikerRUS (#4592)
    • [ci] explicitly set --platform when running aarch64 image in QEMU builds @jameslamb (#4579)
    • [R-package] fix inaccurate error message in Dataset get_colnames() method @jameslamb (#4588)
    • [R-package] preserve uses of '...' in Dataset slice() method @jameslamb (#4581)
    • [R-package] fix inaccurate comments, remove unnecessary comments @jameslamb (#4582)
    • [R-package] deprecate the use of 'info' in Dataset @jameslamb (#4573)
    • [R-package] deprecate uses of '...' in Dataset slice() method @jameslamb (#4572)
    • [R-package] use {testthat} SummaryReporter in tests @jameslamb (#4567)
    • [python] Use double type for init_score array when set by predictor @StrikerRUS (#4510)
    • [ci] upgrade R to 4.1.1 @jameslamb (#4560)
    • [python] add type hints on train() in engine.py @jameslamb (#4544)
    • [R-package] add deprecation warnings on uses of '...' in predict() and reset_parameter() @jameslamb (#4548)
    • [docs] Clarify the fact that predict() on a file does not support saved Datasets (fixes #4034) @jameslamb (#4545)
    • [ci] Check for MM_PREFETCH and MM_MALLOC not only in CRAN builds @StrikerRUS (#4540)
    • [ci] Add checks that OpenMP is used in R-package builds @StrikerRUS (#4538)
    • [ci] Add checks that MM_PREFETCH and MM_MALLOC are used in CRAN builds @StrikerRUS (#4536)
    • [python] add type hints to logging functions in basic.py @jameslamb (#4527)
    • [python] add type hints in docs/conf.py @jameslamb (#4526)
    • [R-package] remove unused '...' in Booster constructor @jameslamb (#4523)
    • [R-package] add deprecation warnings about some uses of '...' @jameslamb (#4522)
    • [ci] use flag '--allow-releaseinfo-change' in some 'apt-get update' calls @jameslamb (#4524)
    • [ci] replace uses of backticks in test.sh with $() @jameslamb (#4519)
    • [ci] move Solaris and valgrind test steps into scripts @jameslamb (#4503)
    • [tests][dask] reduce number of collisions tests @jmoralez (#4501)
    • [R-package] remove unused variable R_SCRIPT in configure.win @jameslamb (#4505)
    • Update c_api LGBM_SampleIndices() comment. @cyfdecyf (#4490)
    • [R-package] quote path variables in build-cran-package.sh @jameslamb (#4499)
    • [python][tests] refactor tests with Sequence input @StrikerRUS (#4495)
    • [R-package] limit exported symbols in DLL @jameslamb (#4494)
    • [docs][ci] bump versions of R-package dependencies at RTD @StrikerRUS (#4488)
    • remove examples/.gitignore @jameslamb (#4486)
    • [python] Add type hints to helpers/parameter_generator.py @sagnik1511 (#4474)
    • [refactor] Use CreateSampleIndices() in c_api.cpp @cyfdecyf (#4478)
    • [python] parallelize MinGW make similarly to Unix make command @StrikerRUS (#4462)
    • [ci] remove preinstalled possibly conflicting software from PATH in CI jobs @StrikerRUS (#4463)
    • [ci] Add CI job running rchk on the R package (fixes #4400) @jameslamb (#4449)
    • [python] migrate to pathlib in setup.py and use absolute() on paths first @StrikerRUS (#4444)
    • [ci] add support for 8.0 and 8.6 CUDA archs @StrikerRUS (#4454)
    • [tests][python] added tests for early stop in prediction in ranking task @StrikerRUS (#4457)
    • [ci] bump CUDA version from 11.2.2 to 11.4.0 at CI @StrikerRUS (#4453)
    • [tests] clarify RuntimeError in distributed tests @StrikerRUS (#4452)
    • [python-package] use toarray() instead of todense() in tests and examples @jameslamb (#4446)
    • [python] migrate to pathlib in distributed tests @StrikerRUS (#4443)
    • [python] minor refactoring of Python code @StrikerRUS (#4442)
    • [tests][python] refactor file loading routine in C API test @StrikerRUS (#4437)
    • [tests] fix deprecation numpy warning @StrikerRUS (#4439)
    • [python-package] convert string concatenation to f-strings in test_engine.py (fixes #4136) @jameslamb (#4436)
    • [python] migrate to pathlib in python examples @StrikerRUS (#4428)
    • [python] migrate to pathlib in helper scripts @StrikerRUS (#4434)
    • [tests][cli] distributed training @jmoralez (#4254)
    • [python] migrate to pathlib in python tests @StrikerRUS (#4435)
    • [python] migrate to f-strings in interactive_plot_example.ipynb @StrikerRUS (#4430)
    • [ci] ensure interactive_plot_example notebook is run in interactive mode at CI @StrikerRUS (#4432)
    • [ci] add h5 files into .gitignore @StrikerRUS (#4429)
    • [python] migrate to pathlib in conf.py @StrikerRUS (#4427)
    • [python-package] f-string format updated in plot_example.py @amanjha8100 (#4421)
    • [python] migrate to pathlib in create_nuget.py @StrikerRUS (#4422)
    • [python-package] Add type hints to init for LGBMModel @seanytak (#4420)
    • [SWIG] fix compiler warning about unused variable in SWIG @StrikerRUS (#4419)
    • [tests] fix compiler warning about types conversion in cpp tests @StrikerRUS (#4418)
    • [dask] fix typehint on _pad_eval_names() @jameslamb (#4413)
    • [python] Add type hints to python-package/lightgbm/plotting.py @WestonKing-Leatham (#4367)
    • [tests][dask] add missing compute() in Dask test @jameslamb (#4412)
    • [tests][ci] run cpp tests with sanitizers on Linux and macOS @StrikerRUS (#4330)
    • [ci] [R-package] increase timeout on valgrind job @jameslamb (#4404)
    • [python] Improving the syntax of the fstrings in the file: .\examples\python-guide\advanced_example.py @sayantan1410 (#4386)
    • [python] Improving the syntax of prints in simple_example.py and sklearn_example.py @StrikerRUS (#4396)
    • [R-package] remove unnecessary comments @jameslamb (#4383)
    • [ci] Increase timeout value for QEMU builds @StrikerRUS (#4385)
    • [R-package] consolidate duplicate lists of Dataset info keys @jameslamb (#4381)
    • [tests] replace pytest.parametrize @StrikerRUS (#4377)
    • [ci] [R-package] add unit tests on monotone constraints @jameslamb (#4352)
    • [python] add type hints to check_dynamic_dependencies.py @greyhere (#4382)
    • [python] add type hints to python-package/setup.py @greyhere (#4376)
    • [R-package] remove defaults in internal functions @jameslamb (#4361)
    • [python] improving the syntax of the fstring in the file : tests/python_package_test/test_dask.py @sayantan1410 (#4358)
    • Updated tests/python_package_test/test_plotting.py to use f-strings @WestonKing-Leatham (#4359)
    • [R-package] remove unnecessary library() calls in tests @jameslamb (#4354)
    • [python-package] use f-strings for concatenation in examples/python-guide/logistic_regression.py @sagnik1511 (#4356)
    • [python-package] updated test_consistency.py to use f-strings @sayantan1410 (#4348)
    • [R-package] resolve test warning about is.na() and handles @jameslamb (#4341)
    • [R-package] factor out lgb.check.r6.class() @jameslamb (#4343)
    • [R-package] remove lgb.last_error() and LGBM_GetLastError_R() @jameslamb (#4344)
    • [R-package] remove unused argument in early stopping callback @jameslamb (#4342)
    • [R-package] remove uses of ... in Predictor constructor @jameslamb (#4338)
    • [R-package] remove unused code in lgb.params2str() @jameslamb (#4337)
    • [ci] upgrade R to 4.1.0 in CI @StrikerRUS (#4328)
    • [ci] cmake: remove linking to sanitizer library @cyfdecyf (#4176)
    • [ci] Increase timeout value for QEMU builds @StrikerRUS (#4326)
    • [python] improving the syntax of the fstring in the file : tests/python_package_test/test_basic.py @sayantan1410 (#4312)
    • [docs][python] fix LGBMRanker docstring @StrikerRUS (#4306)
    • [python] improve error message for required packages @StrikerRUS (#4304)
    • [tests][python] Handle data types more accurate in C API test @StrikerRUS (#4297)
    • [python-package] Improve Graphviz import error message (fixes #4299) @AngelikaAntsmae (#4302)
    • [python] Handle integer types more accurate in Python-to-C interface @StrikerRUS (#4292)
    • [python] Improving the syntax of the f-strings in the file: tests/c_api_test/test.py @sayantan1410 (#4294)
    • [CUDA] Add CUDA_ARCHITECTURES to fix CMake warnings (#3754) @RobinDong (#4268)
    • [R-package] Handle integer types more accurate in R-to-C interface @StrikerRUS (#4291)
    • [R-package] suppress Wcast-function-type warning in CMake-based gcc and MinGW builds (fixes #4273) @jameslamb (#4274)
    • [python] added f-string to python-package/lightgbm/basic.py @NovusEdge (#4143)
    • [python] added f-strings to python-package/lightgbm/dask.py @NovusEdge (#4144)
    • [ci] pin dask and distributed in CI jobs @jameslamb (#4288)
    • Migrate to f-strings in python-package\lightgbm\plotting.py (#4136) @akshitadixit (#4279)
    • [python] added f-strings to helpers/parameter_generator.py @NovusEdge (#4146)
    • [python] added f-string to python-package/lightgbm/callback.py @NovusEdge (#4142)
    • [R-package] manage Dataset and Booster handles as R external pointers (fixes #3016) @jameslamb (#4265)
    • [ci][docs] Unpin Sphinx version @StrikerRUS (#4277)
    • [docs] remove extra spaces in comments and docs @jameslamb (#4269)
    • [R-package] move creation of character vectors in some methods to C++ side @jameslamb (#4256)
    • [ci][docs] Restrict Sphinx version @StrikerRUS (#4267)
    • [python] added f-strings to python-package/lightgbm/engine.py @kantajitshaw (#4258)
    • fix param name @StrikerRUS (#4253)
    • [R-package] Use R standard routines to access character data in C++ @jameslamb (#4252)
    • [ci] Delete lock.yml @StrikerRUS (#4251)
    • Correct spelling @az0 (#4250)
    • [R-package] Use R standard routines to access numeric and integer array data in C++ @jameslamb (#4247)
    • [R-package] use R standard routine to access read-only ints passed to C++ @jameslamb (#4246)
    • [R-package] move Rinternals.h closer to where it is used @jameslamb (#4248)
    • [R-package] Convert LGBM_GetLastError_R to use R built-in types @jameslamb (#4242)
    • [R-package] remove pre-allocated call_state in C++ calls @jameslamb (#4244)
    • [ci] Install graphviz system-widely @StrikerRUS (#4238)
    • show specific error message in TCP accept/send/receive logs @jameslamb (#4128)
    • [ci] [python-package] remove unused import in tests @jameslamb (#4233)
    • Fix typo in binary file already exists error message. @cyfdecyf (#4231)
    • [R-package] fix warnings in unit tests @jameslamb (#4225)
    • [python][scikit-learn] change MRO @StrikerRUS (#3192)
    • [ci][docs] Unpin Breathe version in requirements.txt @StrikerRUS (#4222)
    • [R-package] Move error handling into C++ side @jameslamb (#4163)
    • [R-package] fix grammar in comments @david-cortes (#4215)
    • [dask] Fix typo mentioned in 4101 @ffineis (#4214)
    • [ci] parallelize R package installs in CI jobs @jameslamb (#4198)
    • [python] Migrate to f-strings in python-package/lightgbm/sklearn.py @akshitadixit (#4188)
    • [R-package] Make returned feature importances from lgb.importance() visible by default @david-cortes (#4194)
    • [ci] run cpp tests at CI @StrikerRUS (#4166)
    • [ci] unpin CMake version for CUDA + Clang toolchain @StrikerRUS (#4183)
    • [ci] Restore CUDA jobs at CI @StrikerRUS (#4172)
    • [ci] Bump version for development @StrikerRUS (#4171)
    Source code(tar.gz)
    Source code(zip)
    lib_lightgbm.dll(2.08 MB)
    lib_lightgbm.dylib(3.60 MB)
    lib_lightgbm.so(5.32 MB)
    lightgbm-3.3.0-py3-none-macosx_10_14_x86_64.macosx_10_15_x86_64.macosx_11_0_x86_64.whl(1.16 MB)
    lightgbm-3.3.0-py3-none-manylinux1_x86_64.whl(1.90 MB)
    lightgbm-3.3.0-py3-none-manylinux2014_aarch64.whl(2.00 MB)
    lightgbm-3.3.0-py3-none-win_amd64.whl(994.19 KB)
    lightgbm-3.3.0-r-cran.tar.gz(1.38 MB)
    lightgbm-3.3.0.tar.gz(1.43 MB)
    LightGBM-complete_source_code_tar_gz.tar.gz(153.23 MB)
    LightGBM-complete_source_code_zip.zip(154.96 MB)
    LightGBM.3.3.0.nupkg(4.39 MB)
    lightgbm.exe(1.93 MB)
    lightgbmlib_linux.jar(1.86 MB)
    lightgbmlib_macos.jar(1.10 MB)
    lightgbmlib_win.jar(826.14 KB)
  • v3.2.1(Apr 12, 2021)

    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)
    Source code(tar.gz)
    Source code(zip)
    lib_lightgbm.dll(2.06 MB)
    lib_lightgbm.dylib(3.59 MB)
    lib_lightgbm.so(5.32 MB)
    lightgbm-3.2.1-py3-none-macosx_10_14_x86_64.macosx_10_15_x86_64.macosx_11_0_x86_64.whl(1.15 MB)
    lightgbm-3.2.1-py3-none-manylinux1_x86_64.whl(1.89 MB)
    lightgbm-3.2.1-py3-none-manylinux2014_aarch64.whl(2.02 MB)
    lightgbm-3.2.1-py3-none-win_amd64.whl(980.42 KB)
    lightgbm-3.2.1-r-cran.tar.gz(1.37 MB)
    lightgbm-3.2.1.tar.gz(1.42 MB)
    LightGBM-complete_source_code_tar_gz.tar.gz(154.46 MB)
    LightGBM-complete_source_code_zip.zip(156.20 MB)
    LightGBM.3.2.1.nupkg(4.38 MB)
    lightgbm.exe(1.92 MB)
    lightgbmlib_linux.jar(1.85 MB)
    lightgbmlib_macos.jar(1.09 MB)
    lightgbmlib_win.jar(822.64 KB)
  • v3.2.0(Mar 22, 2021)

    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)
    Source code(tar.gz)
    Source code(zip)
    lib_lightgbm.dll(2.06 MB)
    lib_lightgbm.dylib(3.59 MB)
    lib_lightgbm.so(5.32 MB)
    lightgbm-3.2.0-py3-none-macosx_10_14_x86_64.macosx_10_15_x86_64.macosx_11_0_x86_64.whl(1.15 MB)
    lightgbm-3.2.0-py3-none-manylinux1_x86_64.whl(1.89 MB)
    lightgbm-3.2.0-py3-none-manylinux2014_aarch64.whl(2.01 MB)
    lightgbm-3.2.0-py3-none-win_amd64.whl(979.68 KB)
    lightgbm-3.2.0-r-cran.tar.gz(1.37 MB)
    lightgbm-3.2.0.tar.gz(1.42 MB)
    LightGBM-complete_source_code_tar_gz.tar.gz(178.07 MB)
    LightGBM-complete_source_code_zip.zip(181.58 MB)
    LightGBM.3.2.0.nupkg(4.38 MB)
    lightgbm.exe(1.92 MB)
    lightgbmlib_linux.jar(1.85 MB)
    lightgbmlib_macos.jar(1.09 MB)
    lightgbmlib_win.jar(822.55 KB)
  • v3.1.1(Dec 8, 2020)

    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)
    Source code(tar.gz)
    Source code(zip)
    lib_lightgbm.dll(1.86 MB)
    lib_lightgbm.dylib(3.25 MB)
    lib_lightgbm.so(4.79 MB)
    lightgbm-3.1.1-py2.py3-none-macosx_10_13_x86_64.macosx_10_14_x86_64.macosx_10_15_x86_64.whl(1022.85 KB)
    lightgbm-3.1.1-py2.py3-none-manylinux1_x86_64.whl(1.68 MB)
    lightgbm-3.1.1-py2.py3-none-win_amd64.whl(737.15 KB)
    lightgbm-3.1.1-r-cran.tar.gz(531.81 KB)
    lightgbm-3.1.1.tar.gz(574.58 KB)
    LightGBM.3.1.1.nupkg(3.84 MB)
    lightgbm.exe(1.72 MB)
    lightgbmlib_linux.jar(1.63 MB)
    lightgbmlib_macos.jar(974.62 KB)
    lightgbmlib_win.jar(714.47 KB)
  • v3.1.0(Nov 16, 2020)

    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)
    Source code(tar.gz)
    Source code(zip)
    lib_lightgbm.dll(1.86 MB)
    lib_lightgbm.dylib(3.26 MB)
    lib_lightgbm.so(4.83 MB)
    lightgbm-3.1.0-py2.py3-none-macosx_10_13_x86_64.macosx_10_14_x86_64.macosx_10_15_x86_64.whl(1.00 MB)
    lightgbm-3.1.0-py2.py3-none-manylinux1_x86_64.whl(1.69 MB)
    lightgbm-3.1.0-py2.py3-none-win_amd64.whl(733.63 KB)
    lightgbm-3.1.0-r-cran.tar.gz(533.91 KB)
    lightgbm-3.1.0.tar.gz(736.46 KB)
    LightGBM.3.1.0.nupkg(3.86 MB)
    lightgbm.exe(1.72 MB)
    lightgbmlib_linux.jar(1.65 MB)
    lightgbmlib_macos.jar(975.83 KB)
    lightgbmlib_win.jar(711.96 KB)
  • v3.0.0(Sep 1, 2020)

    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_method hyper-parameter in xgboost_hist @Shihab-Shahriar (#3296)
    • [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 @jameslamb (#3070)
    • [docs] document one more workaround for CMake and MinGW build and fix typos @StrikerRUS (#3081)
    • [docs] Document cmake+MinGW (fixes #3060) @Laurae2 (#3078)
    • [docs] updated docs about output values @StrikerRUS (#3037)
    • [docs] updated bug report template @jameslamb (#3032)
    • [R-package] Remove lgbdl from docs until fix @Laurae2 (#3035)
    • [R-package] [docs] remove unnecessary build in test coverage @jameslamb (#3004)
    • [docs] update link to Julia wrapper @StrikerRUS (#3021)
    • [docs] updated core team list @StrikerRUS (#3001)
    • [R-package] [docs] Simplified examples to cut example run time (fixes #2988) @jameslamb (#2989)
    • [docs] Add LightGBM Tuner by Optuna links to README.md @Crissman (#2893)
    • [docs] add link to blog post about Optuna to Parameters-Tuning.rst @Crissman (#2896)
    • [docs] update latest benchmark results @guolinke (#2887)
    • [R-package] [docs] Added documentation on lgb.dl() and data.table version (fixes #2715) @jameslamb (#2846)
    • fixed cpplint issues and updated docs @StrikerRUS (#2830)
    • [docs] Added subsections into param list @StrikerRUS (#2779)
    • Better documentation for Contributing @guolinke (#2781)
    • [docs] fixed metric_freq param description @StrikerRUS (#2780)
    • [docs] removed mentions of sparse_threshold @StrikerRUS (#2758)
    • [R-package] clarified error messages and documentation for lgb.get.eval.result() @jameslamb (#2686)
    • [R-package][docs] made roxygen2 tags explicit and cleaned up documentation @jameslamb (#2688)
    • [R-package] Added instructions for generating R test coverage @jameslamb (#2664)
    • [R-package] [docs] Added reference to unofficial R extensions (fixes #2640) @jameslamb (#2670)
    • warning for init_score in save_binary @guolinke (#2649)
    • [docs] provide link to m2cgen from convert_model_language param description @StrikerRUS (#2591)
    • [docs] added link to cuML in external repos section of README @StrikerRUS (#2634)
    • [docs] added search key words for artifacts @StrikerRUS (#2631)
    • [docs] enhanced description of cat features param @StrikerRUS (#2627)
    • [docs] updated records of kaggle competitions @jameslamb (#2621)
    • [docs] added link to kubeflow fairing and enhanced parallel guide @StrikerRUS (#2602)

    🧰 Maintenance

    • [ci] fix R CMD check issue 'unable to verify current time' @jameslamb (#3341)
    • [R-package] [ci] Reduce manual effort for version updates @jameslamb (#3335)
    • [R-package] update roles in DESCRIPTION @jameslamb (#3333)
    • Add Logo to readme @guolinke (#3322)
    • [ci] bump Xcode version at Travis @StrikerRUS (#3323)
    • [ci][docs] update Doxygen link in docs @StrikerRUS (#3324)
    • [R-package] remove blank lines and not-really-comments from .Rbuildignore @jameslamb (#3318)
    • [ci][docs] explicitly recuire fresh versions of RTD stuff @StrikerRUS (#3315)
    • [ci] Test 32-bit builds for R package @jameslamb (#3311)
    • fix typo @StrikerRUS (#3309)
    • [ci] fix flaky R CMD check test about library size @jameslamb (#3308)
    • fix vc project @guolinke (#3304)
    • simplify start_iteration param for predict in Python and some code cleanup for start_iteration @StrikerRUS (#3288)
    • [python] try to use bundled distutils to setuptools during setup @StrikerRUS (#3294)
    • [ci][python] fix sklearn FutureWarning about positional args @StrikerRUS (#3295)
    • [ci][docs] fix current master failures for docs test @StrikerRUS (#3297)
    • [R-package] suppress warning about empty 'compute' directory and fix Rtools installation @jameslamb (#3277)
    • bump version for development @guolinke (#3281)
    • [CI] fix R's installation @guolinke (#3279)
    • [R-package] move all examples to dontrun() to fix R CMD CHECK notes @jameslamb (#3270)
    • [R-package] add some R build files to gitignore @jameslamb (#3271)
    • [tests][python][scikit-learn] New unit tests and maintenance @a-wozniakowski (#3253)
    • [ci] run Travis and Azure Pipelines only for master branch @StrikerRUS (#3265)
    • [R-package] allow R to pick between -fPIC and -fpic for CRAN package @jameslamb (#3261)
    • [TYPO] DatasetLoader::ConstructFromSampleData @lcsdavid (#3258)
    • remove unnecessary semicolon @jameslamb (#3260)
    • [ci] partly remove macOS temp CI fix @StrikerRUS (#3251)
    • [R-package] remove duplicated test @jameslamb (#3250)
    • update gitignore to ignore files created by clion @zhengruifeng (#3248)
    • [R-package] Add tests on lgb.check.eval, lgb.unloader, and lgb.encode.char @jameslamb (#3235)
    • [ci] remove unnecessary R_CHECK_FORCE_SUGGESTS in CI scripts @jameslamb (#3240)
    • typo fix @guolinke (#3239)
    • [SWIG] removed commented code @StrikerRUS (#3233)
    • [R-package] add test on importance types @jameslamb (#3231)
    • [R-package] factor out {ggplot2} @jameslamb (#3224)
    • add rules for tests/ in CODEOWNERS @jameslamb (#3226)
    • [ci] bump R 4 version @StrikerRUS (#3225)
    • [R-package] remove xlen_t in custom R-to-C++ interface @jameslamb (#3223)
    • [R-package] remove unused Suggests dependencies @jameslamb (#3217)
    • Remove extra semicolons @AIshb (#3215)
    • [ci] [R-package] catch builds that have not updated docs @jameslamb (#3205)
    • [ci] bump gcc version for macOS @StrikerRUS (#3208)
    • Allow the minimal feature to 1 in column sampling @guolinke (#3197)
    • [R-package] [ci] Fix MiKTeX downloads (fixes #3198) @jameslamb (#3199)
    • [python][scikit-learn] new stacking tests and make number of features a property @a-wozniakowski (#3173)
    • [R-package] fix R CMD check NOTE about leftover files @jameslamb (#3181)
    • [ci][docs] added GitHub Actions badge and simplified condition in config @StrikerRUS (#3179)
    • [R-package] [ci] cut nrounds in unit tests @jameslamb (#3169)
    • [ci] update Boost version @StrikerRUS (#3175)
    • [ci] Move R Windows CI to GitHub Actions @jameslamb (#3168)
    • [ci] avoid VS warning for R builds @StrikerRUS (#3162)
    • [ci][docs] temporarily pin Sphinx version @StrikerRUS (#3157)
    • Revert "re-order includes (fixes #3132) (#3133)" @StrikerRUS (#3153)
    • [ci] make MiKTeX downloads more reliable @jameslamb (#3124)
    • [ci] use GitHub Actions for R CI jobs (fixes #2353) @jameslamb (#3119)
    • re-order includes (fixes #3132) @jameslamb (#3133)
    • [ci] remove unused environment variable in CI setups @jameslamb (#3125)
    • [R-package] move R source files into R-package, reduce duplication in build_r.R @jameslamb (#3087)
    • [ci] fix add-apt-repository warning @jameslamb (#3104)
    • [R-package] characterize all cmake messages @jameslamb (#3105)
    • [R-package] [docs] replace build_r_site.R with pkgdown::build_site() @jameslamb (#3098)
    • [ci] bump XCode version at Travis @StrikerRUS (#3097)
    • [ci] avoid duplicate AppVeyor builds @jameslamb (#3096)
    • [R-package] [ci] Fix CI timeouts for Mac builds on Travis (fixes #3091) @jameslamb (#3092)
    • [R-package] fix warnings in tests @jameslamb (#3069)
    • [R-package] [docs] remove devtools dependency for docs builds (fixes #3036) @jameslamb (#3072)
    • [R-package] speed up installation with Visual Studio @jameslamb (#2965)
    • Update CODEOWNERS rule about CMakeLists.txt @jameslamb (#3079)
    • removed deprecated code @StrikerRUS (#3073)
    • [R-package] added tests on LGBM_BoosterResetTrainingData_R @jameslamb (#3020)
    • [python-package] Use set for OS check @jameslamb (#3059)
    • typo fix @guanqun (#3055)
    • [ci] fix flaky test @StrikerRUS (#3056)
    • [docs] update ROCm link in docs @StrikerRUS (#3050)
    • [R-package] [ci] Add Windows CI for R package (fixes #2335) @jameslamb (#2936)
    • [python][tests] unused and missing imports @jameslamb (#3023)
    • [R-package] added tests on LGBM_BoosterRollbackOneIter_R @jameslamb (#3006)
    • [R-package] Added tests on LGBM_GetLastError_R @jameslamb (#3005)
    • [R-package] Added tests on creating a Booster from a Dataset @jameslamb (#3007)
    • [ci] minor CI scripts update @StrikerRUS (#3019)
    • [R-package] [ci] added echoing of R CMD check logs to CI @jameslamb (#3009)
    • [ci][docs] Fix RTD builds @StrikerRUS (#3015)
    • [ci][docs] be compatible with Sphinx 3 @StrikerRUS (#3013)
    • [ci] Changed use of strcpy to snprintf (fixes #1990) @jameslamb (#2973)
    • [R-package] Updated package metadata in DESCRIPTION @jameslamb (#2993)
    • [R-package] Removed unused constant in R_object_helper.h @jameslamb (#2994)
    • Update CODEOWNERS @StrikerRUS (#2996)
    • more cpp lints @guolinke (#2985)
    • [python][ci] start to support Python 3.8 @StrikerRUS (#2713)
    • [ci] fixed r-lintr version constraint @StrikerRUS (#2990)
    • [R-package] Added unit tests on creating Booster from file or string @jameslamb (#2945)
    • fix cpp lint in json11 @guolinke (#2975)
    • [ci][docs] downgrade breathe @StrikerRUS (#2982)
    • [docs] update URL in docs @StrikerRUS (#2978)
    • [ci][docs] downdrage sphinx and fix LaTeX error in R-package tests @StrikerRUS (#2977)
    • fixed cpplint errors about string& members @jameslamb (#2929)
    • fixed cpplint errors @StrikerRUS (#2971)
    • [ci] upgrade to R 3.6.3 in CI @jameslamb (#2969)
    • replace built-in assert with own CHECK macro @StrikerRUS (#2938)
    • Cleanup MissingType enum constants @AlbertoEAF (#2931)
    • [ci] reduce duplication in Python Windows CI @jameslamb (#2962)
    • [R-package] [ci] Add option to skip installation in build_r.R @jameslamb (#2957)
    • [ci][docs] fixed broken link @StrikerRUS (#2956)
    • [ci] changed CRAN mirror to fix failing installs @jameslamb (#2954)
    • [R-package] [ci] added check on number of R CMD CHECK notes @jameslamb (#2942)
    • changed sprintf uses to snprintf @jameslamb (#2920)
    • [R-package] fixed some minor issues with testing on Windows @jameslamb (#2908)
    • [R-package] added test on uncovered line of lgb.plot.importance() @jameslamb (#2903)
    • [ci] fixed cpplint errors about namespace using-directives @jameslamb (#2927)
    • [R-package] fixed NOTE about unrecognized global variable @jameslamb (#2928)
    • [ci] fix VS project files @StrikerRUS (#2924)
    • [R-package] [ci] added more linters @jameslamb (#2803)
    • [R-package] removed duplicated code figuring out build_dir in install.libs.R @jameslamb (#2917)
    • [R-package] added command to remove build/ dir in install.libs.R @jameslamb (#2909)
    • fix release-drafter.yml @guolinke (#2895)
    • [R-package] removed unnecessary flag in tests @jameslamb (#2910)
    • fixed cpplint errors and disable warning only for VS @StrikerRUS (#2888)
    • [R-package] cleaned up formatting in R C/C++ files @jameslamb (#2844)
    • [R-package] Introduce R-specific control of lib_lightgbm @jameslamb (#2837)
    • add more bots @guolinke (#2843)
    • [ci] fixed cpplint warnings about braces @jameslamb (#2869)
    • use specific checks in auto config @StrikerRUS (#2864)
    • fix warnings in debug mode about that not all control paths return a value @StrikerRUS (#2866)
    • fixed cpplint issues @StrikerRUS (#2863)
    • [R-package] [ci] added tests on early_stopping @jameslamb (#2848)
    • [docs] update link to MS MPI @StrikerRUS (#2861)
    • [R-package] removed unused imports from R-specific lib_lightgbm components @jameslamb (#2845)
    • [docs] Fix description according to markdownlint @daikikatsuragawa (#2865)
    • [ci] fix R tests for macOS on Azure Pipelines @StrikerRUS (#2856)
    • [R-package] added test on training with sparse features @jameslamb (#2847)
    • introduced specific CHECKs @StrikerRUS (#2849)
    • update lockbot @StrikerRUS (#2842)
    • fixed cpplint error about namespace using-directives @StrikerRUS (#2836)
    • Update BUG_REPORT.md @guolinke (#2833)
    • Add lock bot @guolinke (#2815)
    • No LinkTimeCodeGeneration in VS @guolinke (#2812)
    • [ci] bump Azure image versions @StrikerRUS (#2822)
    • [tests][python] fixed pandas deprecation warning in tests @StrikerRUS (#2819)
    • replace std::runtime_error with Log::Fatal @StrikerRUS (#2816)
    • Make timer thread-safe @guolinke (#2800)
    • fixed cpplint issues @StrikerRUS (#2809)
    • fix clang warning for GPU @guolinke (#2807)
    • [R-package] [docker] Added ability to build LightGBM in an R container with different R versions @jameslamb (#2787)
    • [docs] fixed broken links @StrikerRUS (#2795)
    • some code refactoring @guolinke (#2769)
    • fixed cpplint issues @StrikerRUS (#2771)
    • [python] in sklearn wrapper pass cat features to Dataset constructor @StrikerRUS (#2763)
    • fixed cpplint issues @StrikerRUS (#2756)
    • Refactoring monotone constraints (linked to #2305) @CharlesAuguste (#2717)
    • various minor style, docs and cpplint improvements @StrikerRUS (#2747)
    • [ci] avoid Appveyor failures @StrikerRUS (#2753)
    • warning for testing col-wise and row-wise @guolinke (#2727)
    • no omp_set_nested @guolinke (#2734)
    • [python][tests] fixed typo @StrikerRUS (#2732)
    • removed AVX2 from VS config and reset PlatformToolset values back @StrikerRUS (#2731)
    • [ci] swap compilers back for CI services @StrikerRUS (#2730)
    • [python][R-package] removed duplicated code from language wrappers @StrikerRUS (#2606)
    • [docs] fix RTD builds due to conda's problems @StrikerRUS (#2725)
    • [ci] use raw strings in NuGet helper script @StrikerRUS (#2710)
    • [R-package] moved parameter validations up earlier in function calls @jameslamb (#2663)
    • [R-package] added test that Dataset$setinfo() converts 'group' input to integer @jameslamb (#2687)
    • [R-package] added tests on lgb.plot.importance and clarified documentation @jameslamb (#2692)
    • check _mm_prefetch in cmake @guolinke (#2694)
    • [R-package] added tests on lgb.prepare function @jameslamb (#2685)
    • [R-package] [ci] removed TODOs in code @jameslamb (#2667)
    • [R-package] simplified lgb.check.eval() @jameslamb (#2654)
    • [R-package] removed function lgb.check.params @jameslamb (#2652)
    • [R-package] fixed typo for variable valid_contain_train @jameslamb (#2653)
    • [ci] bump XCode version for Travis @StrikerRUS (#2646)
    • fixed some cpplint issues @StrikerRUS (#2635)
    • [R-package][ci] added CI stage for R package (fixes #2335, fixes #2569) @jameslamb (#2530)
    • [docs] fixed broken link in docs @StrikerRUS (#2623)
    • [python][R-package] warn users about untransformed values in case of custom obj @StrikerRUS (#2611)
    • [docs] fixed broken link in docs @StrikerRUS (#2601)
    • fix compile warning for HDFS version @StrikerRUS (#2586)
    • bump version for development @StrikerRUS (#2599)
    Source code(tar.gz)
    Source code(zip)
    lib_lightgbm.dll(1.82 MB)
    lib_lightgbm.dylib(3.10 MB)
    lib_lightgbm.so(4.71 MB)
    lightgbm-3.0.0-py2.py3-none-macosx_10_13_x86_64.macosx_10_14_x86_64.macosx_10_15_x86_64.whl(984.27 KB)
    lightgbm-3.0.0-py2.py3-none-manylinux1_x86_64.whl(1.66 MB)
    lightgbm-3.0.0-py2.py3-none-win_amd64.whl(720.06 KB)
    lightgbm-3.0.0-r-cran.tar.gz(494.07 KB)
    lightgbm-3.0.0.tar.gz(694.58 KB)
    LightGBM.3.0.0.nupkg(3.77 MB)
    lightgbm.exe(1.68 MB)
    lightgbmlib_linux.jar(1.62 MB)
    lightgbmlib_macos.jar(932.23 KB)
    lightgbmlib_win.jar(699.26 KB)
  • v3.0.0rc1(Aug 7, 2020)

    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 @jameslamb (#3070)
    • [docs] document one more workaround for CMake and MinGW build and fix typos @StrikerRUS (#3081)
    • [docs] Document cmake+MinGW (fixes #3060) @Laurae2 (#3078)
    • [docs] updated docs about output values @StrikerRUS (#3037)
    • [docs] updated bug report template @jameslamb (#3032)
    • [R-package] Remove lgbdl from docs until fix @Laurae2 (#3035)
    • [R-package] [docs] remove unnecessary build in test coverage @jameslamb (#3004)
    • [docs] update link to Julia wrapper @StrikerRUS (#3021)
    • [docs] updated core team list @StrikerRUS (#3001)
    • [R-package] [docs] Simplified examples to cut example run time (fixes #2988) @jameslamb (#2989)
    • [docs] Add LightGBM Tuner by Optuna links to README.md @Crissman (#2893)
    • [docs] add link to blog post about Optuna to Parameters-Tuning.rst @Crissman (#2896)
    • [docs] update latest benchmark results @guolinke (#2887)
    • [R-package] [docs] Added documentation on lgb.dl() and data.table version (fixes #2715) @jameslamb (#2846)
    • fixed cpplint issues and updated docs @StrikerRUS (#2830)
    • [docs] Added subsections into param list @StrikerRUS (#2779)
    • Better documentation for Contributing @guolinke (#2781)
    • [docs] fixed metric_freq param description @StrikerRUS (#2780)
    • [docs] removed mentions of sparse_threshold @StrikerRUS (#2758)
    • [R-package] clarified error messages and documentation for lgb.get.eval.result() @jameslamb (#2686)
    • [R-package][docs] made roxygen2 tags explicit and cleaned up documentation @jameslamb (#2688)
    • [R-package] Added instructions for generating R test coverage @jameslamb (#2664)
    • [R-package] [docs] Added reference to unofficial R extensions (fixes #2640) @jameslamb (#2670)
    • warning for init_score in save_binary @guolinke (#2649)
    • [docs] provide link to m2cgen from convert_model_language param description @StrikerRUS (#2591)
    • [docs] added link to cuML in external repos section of README @StrikerRUS (#2634)
    • [docs] added search key words for artifacts @StrikerRUS (#2631)
    • [docs] enhanced description of cat features param @StrikerRUS (#2627)
    • [docs] updated records of kaggle competitions @jameslamb (#2621)
    • [docs] added link to kubeflow fairing and enhanced parallel guide @StrikerRUS (#2602)

    🧰 Maintenance

    • [CI] fix R's installation @guolinke (#3279)
    • [R-package] move all examples to dontrun() to fix R CMD CHECK notes @jameslamb (#3270)
    • [R-package] add some R build files to gitignore @jameslamb (#3271)
    • [tests][python][scikit-learn] New unit tests and maintenance @a-wozniakowski (#3253)
    • [ci] run Travis and Azure Pipelines only for master branch @StrikerRUS (#3265)
    • [R-package] allow R to pick between -fPIC and -fpic for CRAN package @jameslamb (#3261)
    • [TYPO] DatasetLoader::ConstructFromSampleData @lcsdavid (#3258)
    • remove unnecessary semicolon @jameslamb (#3260)
    • [ci] partly remove macOS temp CI fix @StrikerRUS (#3251)
    • [R-package] remove duplicated test @jameslamb (#3250)
    • update gitignore to ignore files created by clion @zhengruifeng (#3248)
    • [R-package] Add tests on lgb.check.eval, lgb.unloader, and lgb.encode.char @jameslamb (#3235)
    • [ci] remove unnecessary R_CHECK_FORCE_SUGGESTS in CI scripts @jameslamb (#3240)
    • typo fix @guolinke (#3239)
    • [SWIG] removed commented code @StrikerRUS (#3233)
    • [R-package] add test on importance types @jameslamb (#3231)
    • [R-package] factor out {ggplot2} @jameslamb (#3224)
    • add rules for tests/ in CODEOWNERS @jameslamb (#3226)
    • [ci] bump R 4 version @StrikerRUS (#3225)
    • [R-package] remove xlen_t in custom R-to-C++ interface @jameslamb (#3223)
    • [R-package] remove unused Suggests dependencies @jameslamb (#3217)
    • Remove extra semicolons @AIshb (#3215)
    • [ci] [R-package] catch builds that have not updated docs @jameslamb (#3205)
    • [ci] bump gcc version for macOS @StrikerRUS (#3208)
    • Allow the minimal feature to 1 in column sampling @guolinke (#3197)
    • [R-package] [ci] Fix MiKTeX downloads (fixes #3198) @jameslamb (#3199)
    • [python][scikit-learn] new stacking tests and make number of features a property @a-wozniakowski (#3173)
    • [R-package] fix R CMD check NOTE about leftover files @jameslamb (#3181)
    • [ci][docs] added GitHub Actions badge and simplified condition in config @StrikerRUS (#3179)
    • [R-package] [ci] cut nrounds in unit tests @jameslamb (#3169)
    • [ci] update Boost version @StrikerRUS (#3175)
    • [ci] Move R Windows CI to GitHub Actions @jameslamb (#3168)
    • [ci] avoid VS warning for R builds @StrikerRUS (#3162)
    • [ci][docs] temporarily pin Sphinx version @StrikerRUS (#3157)
    • Revert "re-order includes (fixes #3132) (#3133)" @StrikerRUS (#3153)
    • [ci] make MiKTeX downloads more reliable @jameslamb (#3124)
    • [ci] use GitHub Actions for R CI jobs (fixes #2353) @jameslamb (#3119)
    • re-order includes (fixes #3132) @jameslamb (#3133)
    • [ci] remove unused environment variable in CI setups @jameslamb (#3125)
    • [R-package] move R source files into R-package, reduce duplication in build_r.R @jameslamb (#3087)
    • [ci] fix add-apt-repository warning @jameslamb (#3104)
    • [R-package] characterize all cmake messages @jameslamb (#3105)
    • [R-package] [docs] replace build_r_site.R with pkgdown::build_site() @jameslamb (#3098)
    • [ci] bump XCode version at Travis @StrikerRUS (#3097)
    • [ci] avoid duplicate AppVeyor builds @jameslamb (#3096)
    • [R-package] [ci] Fix CI timeouts for Mac builds on Travis (fixes #3091) @jameslamb (#3092)
    • [R-package] fix warnings in tests @jameslamb (#3069)
    • [R-package] [docs] remove devtools dependency for docs builds (fixes #3036) @jameslamb (#3072)
    • [R-package] speed up installation with Visual Studio @jameslamb (#2965)
    • Update CODEOWNERS rule about CMakeLists.txt @jameslamb (#3079)
    • removed deprecated code @StrikerRUS (#3073)
    • [R-package] added tests on LGBM_BoosterResetTrainingData_R @jameslamb (#3020)
    • [python-package] Use set for OS check @jameslamb (#3059)
    • typo fix @guanqun (#3055)
    • [ci] fix flaky test @StrikerRUS (#3056)
    • [docs] update ROCm link in docs @StrikerRUS (#3050)
    • [R-package] [ci] Add Windows CI for R package (fixes #2335) @jameslamb (#2936)
    • [python][tests] unused and missing imports @jameslamb (#3023)
    • [R-package] added tests on LGBM_BoosterRollbackOneIter_R @jameslamb (#3006)
    • [R-package] Added tests on LGBM_GetLastError_R @jameslamb (#3005)
    • [R-package] Added tests on creating a Booster from a Dataset @jameslamb (#3007)
    • [ci] minor CI scripts update @StrikerRUS (#3019)
    • [R-package] [ci] added echoing of R CMD check logs to CI @jameslamb (#3009)
    • [ci][docs] Fix RTD builds @StrikerRUS (#3015)
    • [ci][docs] be compatible with Sphinx 3 @StrikerRUS (#3013)
    • [ci] Changed use of strcpy to snprintf (fixes #1990) @jameslamb (#2973)
    • [R-package] Updated package metadata in DESCRIPTION @jameslamb (#2993)
    • [R-package] Removed unused constant in R_object_helper.h @jameslamb (#2994)
    • Update CODEOWNERS @StrikerRUS (#2996)
    • more cpp lints @guolinke (#2985)
    • [python][ci] start to support Python 3.8 @StrikerRUS (#2713)
    • [ci] fixed r-lintr version constraint @StrikerRUS (#2990)
    • [R-package] Added unit tests on creating Booster from file or string @jameslamb (#2945)
    • fix cpp lint in json11 @guolinke (#2975)
    • [ci][docs] downgrade breathe @StrikerRUS (#2982)
    • [docs] update URL in docs @StrikerRUS (#2978)
    • [ci][docs] downdrage sphinx and fix LaTeX error in R-package tests @StrikerRUS (#2977)
    • fixed cpplint errors about string& members @jameslamb (#2929)
    • fixed cpplint errors @StrikerRUS (#2971)
    • [ci] upgrade to R 3.6.3 in CI @jameslamb (#2969)
    • replace built-in assert with own CHECK macro @StrikerRUS (#2938)
    • Cleanup MissingType enum constants @AlbertoEAF (#2931)
    • [ci] reduce duplication in Python Windows CI @jameslamb (#2962)
    • [R-package] [ci] Add option to skip installation in build_r.R @jameslamb (#2957)
    • [ci][docs] fixed broken link @StrikerRUS (#2956)
    • [ci] changed CRAN mirror to fix failing installs @jameslamb (#2954)
    • [R-package] [ci] added check on number of R CMD CHECK notes @jameslamb (#2942)
    • changed sprintf uses to snprintf @jameslamb (#2920)
    • [R-package] fixed some minor issues with testing on Windows @jameslamb (#2908)
    • [R-package] added test on uncovered line of lgb.plot.importance() @jameslamb (#2903)
    • [ci] fixed cpplint errors about namespace using-directives @jameslamb (#2927)
    • [R-package] fixed NOTE about unrecognized global variable @jameslamb (#2928)
    • [ci] fix VS project files @StrikerRUS (#2924)
    • [R-package] [ci] added more linters @jameslamb (#2803)
    • [R-package] removed duplicated code figuring out build_dir in install.libs.R @jameslamb (#2917)
    • [R-package] added command to remove build/ dir in install.libs.R @jameslamb (#2909)
    • fix release-drafter.yml @guolinke (#2895)
    • [R-package] removed unnecessary flag in tests @jameslamb (#2910)
    • fixed cpplint errors and disable warning only for VS @StrikerRUS (#2888)
    • [R-package] cleaned up formatting in R C/C++ files @jameslamb (#2844)
    • [R-package] Introduce R-specific control of lib_lightgbm @jameslamb (#2837)
    • add more bots @guolinke (#2843)
    • [ci] fixed cpplint warnings about braces @jameslamb (#2869)
    • use specific checks in auto config @StrikerRUS (#2864)
    • fix warnings in debug mode about that not all control paths return a value @StrikerRUS (#2866)
    • fixed cpplint issues @StrikerRUS (#2863)
    • [R-package] [ci] added tests on early_stopping @jameslamb (#2848)
    • [docs] update link to MS MPI @StrikerRUS (#2861)
    • [R-package] removed unused imports from R-specific lib_lightgbm components @jameslamb (#2845)
    • [docs] Fix description according to markdownlint @daikikatsuragawa (#2865)
    • [ci] fix R tests for macOS on Azure Pipelines @StrikerRUS (#2856)
    • [R-package] added test on training with sparse features @jameslamb (#2847)
    • introduced specific CHECKs @StrikerRUS (#2849)
    • update lockbot @StrikerRUS (#2842)
    • fixed cpplint error about namespace using-directives @StrikerRUS (#2836)
    • Update BUG_REPORT.md @guolinke (#2833)
    • Add lock bot @guolinke (#2815)
    • No LinkTimeCodeGeneration in VS @guolinke (#2812)
    • [ci] bump Azure image versions @StrikerRUS (#2822)
    • [tests][python] fixed pandas deprecation warning in tests @StrikerRUS (#2819)
    • replace std::runtime_error with Log::Fatal @StrikerRUS (#2816)
    • Make timer thread-safe @guolinke (#2800)
    • fixed cpplint issues @StrikerRUS (#2809)
    • fix clang warning for GPU @guolinke (#2807)
    • [R-package] [docker] Added ability to build LightGBM in an R container with different R versions @jameslamb (#2787)
    • [docs] fixed broken links @StrikerRUS (#2795)
    • some code refactoring @guolinke (#2769)
    • fixed cpplint issues @StrikerRUS (#2771)
    • [python] in sklearn wrapper pass cat features to Dataset constructor @StrikerRUS (#2763)
    • fixed cpplint issues @StrikerRUS (#2756)
    • Refactoring monotone constraints (linked to #2305) @CharlesAuguste (#2717)
    • various minor style, docs and cpplint improvements @StrikerRUS (#2747)
    • [ci] avoid Appveyor failures @StrikerRUS (#2753)
    • warning for testing col-wise and row-wise @guolinke (#2727)
    • no omp_set_nested @guolinke (#2734)
    • [python][tests] fixed typo @StrikerRUS (#2732)
    • removed AVX2 from VS config and reset PlatformToolset values back @StrikerRUS (#2731)
    • [ci] swap compilers back for CI services @StrikerRUS (#2730)
    • [python][R-package] removed duplicated code from language wrappers @StrikerRUS (#2606)
    • [docs] fix RTD builds due to conda's problems @StrikerRUS (#2725)
    • [ci] use raw strings in NuGet helper script @StrikerRUS (#2710)
    • [R-package] moved parameter validations up earlier in function calls @jameslamb (#2663)
    • [R-package] added test that Dataset$setinfo() converts 'group' input to integer @jameslamb (#2687)
    • [R-package] added tests on lgb.plot.importance and clarified documentation @jameslamb (#2692)
    • check _mm_prefetch in cmake @guolinke (#2694)
    • [R-package] added tests on lgb.prepare function @jameslamb (#2685)
    • [R-package] [ci] removed TODOs in code @jameslamb (#2667)
    • [R-package] simplified lgb.check.eval() @jameslamb (#2654)
    • [R-package] removed function lgb.check.params @jameslamb (#2652)
    • [R-package] fixed typo for variable valid_contain_train @jameslamb (#2653)
    • [ci] bump XCode version for Travis @StrikerRUS (#2646)
    • fixed some cpplint issues @StrikerRUS (#2635)
    • [R-package][ci] added CI stage for R package (fixes #2335, fixes #2569) @jameslamb (#2530)
    • [docs] fixed broken link in docs @StrikerRUS (#2623)
    • [python][R-package] warn users about untransformed values in case of custom obj @StrikerRUS (#2611)
    • [docs] fixed broken link in docs @StrikerRUS (#2601)
    • fix compile warning for HDFS version @StrikerRUS (#2586)
    • bump version for development @StrikerRUS (#2599)
    Source code(tar.gz)
    Source code(zip)
    lib_lightgbm.dll(1.81 MB)
    lib_lightgbm.dylib(3.09 MB)
    lib_lightgbm.so(4.60 MB)
    lightgbm-3.0.0-1-r-cran.tar.gz(491.18 KB)
    lightgbm-3.0.0-1-r40-linux.tgz(15.96 MB)
    lightgbm-3.0.0-1-r40-macos.tgz(1.43 MB)
    lightgbm-3.0.0-1-r40-windows.zip(1.59 MB)
    lightgbm-3.0.0rc1-py2.py3-none-macosx_10_13_x86_64.macosx_10_14_x86_64.macosx_10_15_x86_64.whl(978.30 KB)
    lightgbm-3.0.0rc1-py2.py3-none-manylinux1_x86_64.whl(1.65 MB)
    lightgbm-3.0.0rc1-py2.py3-none-win_amd64.whl(716.75 KB)
    lightgbm-3.0.0rc1.tar.gz(694.71 KB)
    LightGBM.3.0.0-rc1.nupkg(3.75 MB)
    lightgbm.exe(1.67 MB)
    lightgbmlib_linux.jar(1.61 MB)
    lightgbmlib_macos.jar(926.25 KB)
    lightgbmlib_win.jar(696.12 KB)
    lightgbm_3.0.0-1-r-cran.tar.gz(491.18 KB)
  • v2.3.1(Nov 28, 2019)

    Changes:

    • 471d0aaaaa8574b9a1da2302e992f61b01e3d155 update release date for R-package
    • 102893a11c1dd712bb70d87b3b129ddf42daf06f [R-package] fixed minor issues with tests and documentation (#2581)
    • 16c551c13d49c03fd4d871418257b1d89569d95b [docs] updated instructions in examples to match ones from ranking example (#2585)
    • 49df9e60d742ca7be8a7aad65f9a6b2519883819 [docs] Update LambdaRank example documentation (#2548)
    • 6a3e27df0348a727c5b02a18b13579129da01102 Avoid the issue is labeled to bug by default.
    • a6ba859ed5ec19e8af0704c1b9ab7c65684b3f35 [R-package] fixed parameter-name typo in lgb.cv() (#2576)
    • 1f7b06b98391395b6fd2f0bd7937353254718956 [R-package][ci] Added more R linters (fixes #2477) (#2533)
    • 11f9682bb72dea34313758f054ccf37886dc7e6e Fix build error when HDFS is enabled. (#2540)
    • 26ff099ab47cd98f7613503ff5976f7359e3465b explicitly import std::max from (#2562)
    • a8dc03250e235a00baf3ecefe4155023624dd239 [ci] fixed cpplint warning about parenthesis placement (#2563)
    See More
    • 41c366ee6b69571202ffbdca5965219cb6cf0ac4 [R-package] [ci] pin roxygen2 version for RTD (#2568)
    • cf8c8c0b9bdedb9c0226123b6d0d716da108e3be Fix detecting alias of objective in loading from model strings (#2565) [ #2564 ]
    • 3e3d76f64bfa3d95f9769bd82be7124158ff3df7 [Java] MMLSPARK-ISSUE-720 - Create SWIG version of BoosterDumpModel that returns string to be used in Java (#2560)
    • 7feaaefb5b730524d12449e48d93a862a668a024 [docs][docker] cleaned up CODEOWNERS and fixed build warning in dockerfile-python (#2555)
    • 31bec2fb3dd7f20ea995734bace8b378467949b8 addressed linting items about empty statements (#2545)
    • a94275120f37e3bbb74d63f50a6838b8926c7fec [R-package] removed unnecessary Suggests dependencies (#2543)
    • b2da19b88df1a8d014a9e1b46086e2def20ad4d8 check feature names for special JSON chars (#2557)
    • 83ecb38600e99fb017c51af805b32b13f262d764 [docker] install ca certificates package on ubuntu image (#2554)
    • 76bda1e25740d79d03aadbaeba5aecd0551bde6c support Catalina (#2556)
    • 785e477856b9e9e9e69123caf175dbb8455c3b11 [ci] removed temp fix for Graphviz from conda (#2551)
    • 7cfb492e7733f73526fbf8958d850bbb94af83ed [ci][R-package] removed outdated comment in lint_r_code.R (#2541)
    • 516bd37a28a0dfa7c2bc4a24587dbbcb8a697eb2 renamed variables from bias to offset (#2539)
    • bd7e1842042ff38dfe3f89e67021479cf2d21f0d [docs] refactored News section in README (#2529)
    • a36eb7e76f7ff6e80358aabfd2b6f1b2c04ad41d remove many vector.at()
    • 8f7199a44b290a13e8b4a82eb45f7389785c26fe [docs] update MS-MPI link (#2528)
    • 1f1dc4521e2556f79664274b61da0e2d78325964 [tests][python] refined python tests (#2483)
    • 00d1e6938a3f8566526d470057f8d26ec1289208 [python] removed unused pylint directives (#2466)
    • f1d4e449b7f7b8b20fa04b694a976961f81a3728 fixed casting warning (#2523)
    • 85be04a62a961ed8f1a4012d6480e3b2c986880a [R-package] Disabled early stopping when using 'dart' boosting strategy (#2443)
    • fc991c9d7e07fd8e460ea24d1f5609f61fd2af3f [R-package] added R linting and changed R code to comma-first (fixes #2373) (#2437)
    • b4bb38d9267ccc966f0bb8cdd6e2eece2b4c08e3 [R-package] Added unit tests (#2498)
    • bdc310a8a4860772327aae539eff30f9db8fd673 [R-package] Sort indices in lgb.cv() (fixes #2503) #2524
    • 44b0acacb2ddcd25482c6002e9ed68ce4a711c91 [ci] removed temp fix #2522
    • 5dcd4be924b54dfa36bd564338a4199e61bb17ed [python] handle params aliases centralized (#2489)
    • fbf95687adfe1518bfff722bced1cd5d1c30cb54 [ci] reduced number of commits cloned to CI environments (#2495)
    • 465d1262eb1d8eb3cfa7cc505140c035e52c8118 check sorted indices in Subset (#2510)
    • 198d0f3bf1d7f183aabaa6ee7d9cc145dd944dcc [docs] added m2cgen in README (#2512)
    • 72027036a978e0f455304ae9963b7bf3b9c2eb4c [docs] removed misleading section about pep8 in python's readme (#2507)
    • 2c3ebd94dc959259ebb3703737e6029d77b63b30 [ci] miniconda installer hotfix (#2511)
    • b1c50d07cee4f6042a5d50c2c92ca81b321b000b [docs] added logos to badges (#2506)
    • 40e56ca7aea0d385c149ff3da4cad7067221df38 reduce the buffer when using high dimensional data in distributed mode. (#2485)
    • 4848776fb1940adb4423ba27d7c152bba06cd9cf [docs] clarified support of LibSVM zero-based format files (#2504)
    • b0500dde9a108701623cb80ef5e92006aca35c10 [python] DPI arg in plotting functions (#2491)
    • dc5840709909bc18df437cddf62677f7be2915a4 fix bug in parser
    • fdb39237f69ea82091d27d2504da08abd323b4dc updated dockers (#2459)
    • d7f8aa53b8be5212887e97e474c90bc5d8beac19 [docs] fixed miscellaneous typos in comments and documentation (#2496)
    • ff4e48ce53f20f8546d7067b6804810ca5f79c07 reworked GitHub issue templates (#2492)
    • 780a3fdf2fd06c39c3d93230bce99c3d4174fd17 [ci] removed temp fix for missing package (#2493)
    • dee72159d36a66d72372ec7fa783d1682eef1411 check the shape for mat, csr and csc in prediction (#2464)
    • dc65e0ac6ee8faa5790263a8dc2d9cc2a8dd7c4b [ci] fixed whitespace cpplint issue in auto-config (#2488)
    • 67099ff8a79681a1965160efcbec76ca8f7a2c30 [ci] added build/c++11 to cpplint filter (#2487)
    • c1a7b291c5621030c43cba4a8182e9199ed08e67 [python] removed deprecated code (#2474)
    • 9b61166fccab1edc92edebc97ef6714018736b18 fixed cpplint errors about spaces and newlines (#2481)
    • 6036e07d1fa049b184bd70f23ec9923038b6d88c [ci] move Clang linking into docker (#2476)
    • e6505417eff10d1bae863d72d2a08469afc19e04 [ci] removed outdated code (#2475)
    • 54be4204a02384a6c9655b8290845174600af54b [docs] updated problem link #2473
    • 5c0daca0a1ae601aa2bdcaa0d2fc16bcf3be150a [ci] use the latest versions of OSes at Travis (#2467)
    • 3d407b67e5006deb1a63d2ded8a9e430ff86cafb new version number after release (#2469)
    • 42204c43da08ddacd0fa98a9e43d2c56ec8b9fb9 [R-package] factored dependency 'magrittr' out of R package (#2334)

    This list of changes was auto generated.

    Source code(tar.gz)
    Source code(zip)
    lib_lightgbm.dll(1.15 MB)
    lib_lightgbm.dylib(1.75 MB)
    lib_lightgbm.so(3.04 MB)
    lightgbm-2.3.1-py2.py3-none-macosx_10_9_x86_64.macosx_10_10_x86_64.macosx_10_11_x86_64.macosx_10_12_x86_64.macosx_10_13_x86_64.macosx_10_14_x86_64.macosx_10_15_x86_64.whl(663.89 KB)
    lightgbm-2.3.1-py2.py3-none-manylinux1_x86_64.whl(1.18 MB)
    lightgbm-2.3.1-py2.py3-none-win_amd64.whl(531.61 KB)
    lightgbm-2.3.1.tar.gz(663.40 KB)
    LightGBM.2.3.1.nupkg(2.63 MB)
    lightgbm.exe(1.02 MB)
    lightgbmlib_linux.jar(1.15 MB)
    lightgbmlib_macos.jar(629.69 KB)
    lightgbmlib_win.jar(511.45 KB)
  • v2.3.0(Sep 29, 2019)

    Changes:

    • b3c126629ee5ce83c4d9b5111eaec678af8de421 v2.3.0 realese (#2138)
    • cc7a1e27398d86e9befdf6eb08141359882f3d49 Predefined bin thresholds (#2325) [ #2342 ]
    • f2632a6e1eb1088ea3f462724e61d70f7131c784 [docs] added installation guide with Homebrew (#2414)
    • 1f88721a7982a804731b1dc108ee40625405639c Fix Integer Overflow #2357 (#2400)
    • d064019f2214c3e0fe21762a8788da39d50f5e13 [python] avoid data copy where possible (#2383)
    • 7a8c4e52b6c3d32057fba363408ab72e8bfede88 fix bug in reset config for dataset (#2453)
    • 70fc45b0e7299aaa0ac35019d06575d0ed0f61c3 code refactoring: cost effective gradient boosting (#2407)
    • e771538f5fb5e00618e64e570d32a70914425cdf Force bin json (#2456)
    • a0d7313b81a85754a0549bbd0354f9e74d832672 fixed docstrings (#2451)
    • 7b2963d9a5c4d6b90ce7bbf58eefb86ca089b229 [Java] add missing JNI exception checks to fix warnings (#2405)
    See More
    • a0a117aab8687ca3dffa98e4de790b4ce21599ab [python] make dump_text() private (#2434)
    • 2bf9a0f10c60e7f62cfc6eaa9fce78ae119a4eb2 remove the duplicate data path (#2432)
    • fe9f292cb3403861f0f755688d1e94fd981ce207 added new early_stopping param alias (#2431)
    • be206a96e7be553b0918805f6641e91285ce89d1 refined order of includes (#2436)
    • 2e9f255e91016f0b4133d4436d2ea49ad9e1d0be [docs] refer to RTD site directly (#2415)
    • e47d9414282ab93bd4e1e582cb17632a711643a6 [ci] temp fix for missing dependency on Windows (#2440)
    • e77658205d3b1bc5c19e4ba3821f4222f5be8c05 Update setup.sh (#2421)
    • f1fbc2f1eed48318aeb83117d9606c1e3d145052 added JAVA codeowner (#2430)
    • 4fee5821eeec82521a1e58ca275982b3abcd68b9 fix codeowners (#2429)
    • f1a1486929f8e981c44cba45132f5b4929453f8a fix many cpp lint errors (#2426)
    • 4f89cc10785318f051602f5fa7fa9d61bc805980 [ci] added build/include_subdir check to filter for cpplint (#2427)
    • 306c6dbfd507c2d89b0d593cc2a42cd72a14e777 [ci] added cpplint check (#2416)
    • a3a353d6832b3653f222886f912293998ff8ae69 At least 2 features are chosen in subcolumn (#2409)
    • a119639a5bfaa78887a4867da611da977fc072f2 fix the objective init issues in distributed mode (#2420)
    • 023749239ebf390b5d56e08f227a013cbd972eb0 added editorconfig (#2403)
    • 84754399a6b5575906628d457559ff6fb5aca2c2 [python] Bug fix for first_metric_only on earlystopping. (#2209) [ #2273 ]
    • 939a02482bda2ff5e15887549a8ddfbe9865b087 fixed C API SetField description (#2406)
    • 15566421bcc96d46bac353dee17b981a12827604 [examples] Update example notebook (#2391)
    • ad8e8ccc9c9a5f8acb192b28715827ebc28dcc07 update feature_fraction_bynode (#2381)
    • a1a4103797fd320f5379f9ad399affd34e50c6a5 [examples] really use weights in example (#2378)
    • b310fb417e4078cc30b153a5ef8f60c06d9ca9cf [ci] add if-else job to Travis (#2389)
    • 9f6e4413bddb7395f9dd1b2678df4820bcb65483 [python] keep consistent state for Dataset fields (#2390)
    • f52be9be5091d300078f0b4fa3641a165ed3f905 [python] Improved python tree plots (#2304)
    • b6d4ad8361379a902091e3a584491c39fa89ef2d added JS file (#2387)
    • 33d0378ffe1c7d51adb9ac20ea137b94841d0677 avoid nan and inf in weight/label/init_score (#2377)
    • de1f3cb3e2e71dd83913447fe70b52b59ad8aaea [python] removed excess condition (#2385)
    • 22cd39e89a9139f7fb74aec7b612cef57ddf760c [python] fixed typo (#2386)
    • 7509ec8ade06b13bd10aff41ece78c02a7993535 [python] fix group type in lgb.cv (#2384)
    • 29525ffefba94ea994e28d0db1d8029a6041e3ae [docs] added reference to leaves Go package (#2379)
    • 4c8418ea12056fb364d6e0b4357a1bddad890971 [docs] R docs cleanup (#2375)
    • df26b65d786532b88b13d13cf8e4b7ac9fa8d8cd [ci][tests] install joblib for test directly (#2374)
    • bbbad73db3006ad75db21d0947b50a97610d4d90 sub-features for node level (#2330)
    • 288ba0ad8fd9815b4778a15af2b2ff9da09e94bd Added link to Ruby gem [skip ci] (#2367)
    • e7c6e67aaa975fb515f39c6938671d1a12bef64f [tests] simplified test and added dumped data to gitignore (#2372)
    • 0f9720bffe996183382209ee6171069c3cfee550 [docs] fix version type in the R-package tooltip (#2370)
    • faba6cafb7ea74203102d1b8752e53ada6e7c0cc [docs][R] added R-package docs generation routines (#2176)
    • 317b1bfbbfdd8f8a4f5af16b970526bb9486f588 [java][mmlspark] Fix cached predictor causing bad values for predicted probabilities (#2356)
    • 254a8699c9b869fde4547cf87289f455d690f7f9 [java][mmlspark] fix lightgbm on windows (#2364)
    • 0551f77517d971ce9bc32e2633768245957b410a change network retry delay strategy (#2354)
    • 5f5dcff60471853d27b1c0ff82122199e9196080 [python] correctly handle full path to compiler in CC and CXX env vars (#2345)
    • 4fc0416fabee5ba8f062f6d7dd966e1b207b7f4f [docs] Clarify LightGBM on Spark Reference (#2358)
    • 76e57c5dc0c45e75f1c3f8ba7ca246952228357a informative error for custom obj in RF (#2355)
    • 0dfda82607633132e10a693eba9666ed75585ac8 normalize the lambdas in lambdamart objective (#2331)
    • 5e60224426f99a1a58fa85f279d5e3fad01e1b09 fixed compiler check regex in install.libs.R (#2346)
    • 15d861cec3dfde1fa31c777978cc74f59cedf777 [R-package] fixed overly-strict compiler check in install.libs.R (fixes #2259) (#2339)
    • 20f94c52524ace54a8f05df3b3ad07d1f91ff617 fix the bug in bin with small values (#2342)
    • 86c6a2d0884521e971c8cf17947438f1be64661d [R-package] trimmed whitespace in R code (#2338)
    • 8415924c8fac4c1192cad209e38193ad0059e0d3 [R-package] corrected typo in R unit tests (fixes #2336) (#2337)
    • c0883f174cab469a3a59f7796807081fe31d6497 Fixed keep-empty-dirs flag in build_r.R (fixes #2332) (#2333)
    • 686b0cc2f9a1639a65a3b9ae4b7ed11bdd142082 [docs][python] allow usage and compilation of 32-bit library (#2188)
    • aee92f63ba124e1f6a3168eb2864d032567cbf9e sigmoid_ in grad and hess for rank objective (#2322)
    • c421f89851dd460ce50c8dc8f4b638f9b5748501 Bug fix: small values of max_bin cause program to crash (#2299)
    • 9558417a12dec04b2ee9ba1e3f8be40521b33642 fix nan in tree model (#2303)
    • 578a8c8a996c74c5d408e1ca5dff27bfe81f79cb updated docker folder (#2316)
    • b0b45911c0bc87f18cfc09fba6cc62e0d0f90d01 updated R-package authors (#2321)
    • 8f446be749cb7a03fc4c65cd47e595a4e5c94d1f [python] add sparsity support for new version of pandas and check Series for bad dtypes (#2318)
    • 9cf6b8283d6257bf5b044197de7c77c709c85def add Dockerfile for R (#2308)
    • 5cff4e8e2fb2280ed302ed73c08bd95d035c7889 [python] Deep copy params in _update_params of DataSet (#2310)
    • a8d8b07d3afd3b2386c64fce3fd2d8f302372ab2 [docs] remove aliases from options in params and remove separators in FAQ (#2296)
    • 6b94c8e0f2b841785b77cad9f69736419c6d2518 [docs] generate contents in Installation guide automatically (#2298)
    • 28dc333d3f5eccf0a904aff4fb2404a57850f421 [docs] fixed params description (#2306)
    • 0197dba0613c46316518ef022e18a110025a1c59 [ci][docs] update the list of ignoring sites for linkchecker (#2307)
    • f68e1b50fb87f157b36cda16136a326e5a29db09 [docs] limit number of files to scan for autosummary generation and reorganize conf.py (#2297)
    • 55656f27e13e35a634eb01a11493b10ca1c65c1c delete the variable which is never used (#2294)
    • c17a5f5b8402908da1b1dfdc74a6e40530a6ffe0 Refine the description of is_unbalance
    • 6c210209fbe4694af613bca405fa5de72f10d72a change the priority of init_score and init_model. (#2291)
    • 04a56010ec94124da9e8c37006278a5a4b34b842 [docs] 📝 FAQ overhaul for linking to individual questions (#2293) [ #2268 ]
    • 11c24cf83584bb771b42520071e9c239700b0e86 [docs] added FAQ on early stopping (fixes #2270) (#2272)
    • 274f340ae8232c707428d1747a857f4fc2511146 allow passing empty value in parameters (#2289)
    • 207bb3ef329b38fc255ef36b1d7ca765924363ea [docs] 🎨 Sphinx Autosummary for generating Python-API documentation (#2286)
    • 5dc1507e1ce0e21db37d2132ed373f8c8a708351 [docs] updated js file attaching mechanism (#2287)
    • 5d3a3ea47eb8693c924ffb891387e93534f92896 fix metric alias (#2273)
    • 716fe4d015c2333f9a261f853ff559ef385add17 fixed cpplint errors about spaces and indents (#2282)
    • ee28ea36a456a064bc1d6ea900a0880f9a3c711f [ci] remove temp fix and fix activation for conda (#2280)
    • e1d7a7b9e332851063ebb066d395937afefe76f1 add weight in tree model output (#2269)
    • 86a957830b7caf2cedb7aaa23e824df6b38f7c7f fix MissingType::Zero in categorical features. (#2275)
    • 7189743d224a405bb48050834460d107fb7c1c0b Update README.md
    • 0d59859c670b9de37bffa8a6e536497c88d9f25d throw error when meet non ascii (#2229)
    • 0d02499e4c00fba279b4e3aa15f314800d1d4461 [ci] added CODEOWNERS (fixes #2194) (#2196)
    • 7360cff94b65562509989802183223017ed3bcc0 fix init_model with subset (#2252)
    • ebc831bc53b746c5cc079955364008f591877015 fix bug when using dart with init_model (#2251)
    • 291752de3e647f645689f180a0a2ba0efdaf80b9 Max bin by feature (#2190)
    • 1bd15b9447e0925e6704cfce6caa3ba4fa9b7758 fix refit decay rate in python (#2254)
    • bf78008b47a7b1c0ca7c6174481e21b85d02c1aa switch name and alias of rmse metric (#2257)
    • 4ca85fbce7db160414141db76b60691b65eaa229 turn on release notes (#2256)
    • 16751b3803e847592dba3bab876c4f052507e45d [ci] downgrade conda (#2245)
    • 62935f52621549bd273dc3e11d92c6b444435aa7 updated boost (#2218)
    • 86269ee38da20785097cd35aa7eb0b946864fe76 [tests] use numpy.testing.assert_allclose (#2207)
    • 5b24834102528d56521ba8e44bbddf039319ebcf avoid the bad_alloc when overflow.
    • cdba71475f3751e26b62beb3e6bfec9a3f6f6962 balanced bagging (#2214)
    • 7da11ffeacf79be81839431b1cbc7c293ba7d9bd [docs] add "download" badge (#2224)
    • 21e356d02443e675a9696aaa44cbef4ab10316cb [doc] updated links in README (#2231)
    • c4cd65ff05f4594be926305ff6fad4dfb4cfdd67 [R-package] mojave install r openmp fix (#2164)
    • 8ecae562582a2b76062a81b9e70888e18ccfa031 [ci] add OpenMPI link to ignore list (#2227)
    • dace0508cbe94e06294fed590aa1c422d1f20fb0 consider max_depth for histogram_pool_size (#2216)
    • b6f6578368dfeb605a66df9cce753886d76f71f3 [python] fix class_weight (#2199)
    • 7d03ced3880cb56af68734d447ebfdd18a9dcc11 [python] removed unused import and variable (#2213)
    • de70c7d7e7b44b591336ab814a373b30f32f4ba0 [Python] Fix typo in engine.py (#2211)
    • 520247ccb34d5e576fa762d70d665873abbae62a fix unsorted eval_at (#2206)
    • b1e5a843ab57c64b01c8896ef3cda6fdf907d417 [docs] fixed and enhanced format of C API (#2195)
    • f70a05328c87f3f9b40ab941648d15675fa9d109 [R-package] Fix best_iter and best_score (#2159)
    • 2459362acd9a6ce946af8cb6d319d0919a9a4730 [python] fixed picklability of sklearn models with custom obj and updated docstings for custom obj (#2191)
    • e5b6e50e30efbdf2fa1202666c54a8b6600bea5f [docs] reorg the doc in main page (#2192)
    • b3db9e924a8d48a0b4d67097cf7dcc79bc50b9d9 Top k multi error (#2178)
    • 19de2be0deb388a0cafc0aef90de0d1c9da49812 [ci][docs] refine C API docs (#2076)
    • fc789e044a9bb2559c413905569677ec3e2ad07e fixed cast error (#2186)
    • 6a1a538f456b36f05a70d6956c47be7f0dc2b7df [docs] remove duplicated param in Python-Intro.rst (#2181)
    • a66c34407dcb3f94f6d29b0a5098d7ee0e1dd59b [R] fix map metric is higher better (#2183)
    • a7885b60dd398fc89d797049a31c7b85713c966b [ci] removed temp hotfix for Yahoo URL (#2162)
    • f01b2aca13e787e2945eba7c2bd85e31c65923f8 first metric only in earlystopping for cli (#2172)
    • c9d681ac0d8c7e242b2fff217db268c11c83c745 [ci] migrate to new Dockerfile (#2174)
    • 6f3fae51fe98c71a5c54e0fe27d7a05d5195c3f6 [doc] minor doc fix for gamma param (#2180)
    • 3d8770aff7c4cb4c5bc4774802b68fde0500c381 [docs] fixing max_depth param description (#2155) [ #1879 ]
    • b3c1ffbf9f0e7fd2c98b40b8b6ffb86308d8f408 [ci] create GitHub release automatically (#2171)
    • f91e5644a3ab5104a942e2fb23f6f9239ef08a54 [python] added ability to pass first_metric_only in params (#2175)
    • 2a3691703c1f5aa5109881455cfc909f80c7f50f [ci] added swig compilation on macOS and Windows with artifacts (#2170)
    • 76170788c4bd6239334408f88cf51183ec791fa2 [ci][docs] updated fix for OpenMP conflicts (#2166)
    • e09e4caa4ded45a074e05ab247e8a4f11ed12644 fixed minor issues with R package (#2167)
    • 1a1c2fd752ee2ea27312663a6c3ccfdb6574b298 use stable_sort for splits (#2169)
    • abbbbd7545e6a0549c17a182b7a59d7468cfb58e [ci] CI fixes (#2161)
    • 5d6513ef20f9b51368b4171b0d19a5b0530cee18 sort after get top K splits (#2154)
    • 1c27a15e42f0076492fcc966b9dbcf9da6042823 removed external dependenciesin build_r.R (fixes #2122) (#2123)
    • 94fbe5bb9fbb5f6067821f0be9cd145f0b7d7d94 [docs] updated Microsoft GitHub URL (#2152)
    • f46f8b2a049f0745c0b8eedfd662289649faccf3 fix warning
    • 46d2147684a86d7b4219c83386c469d34c1b075f fix a bug when bagging with reset_config (#2149)
    • 2c41d15e06a54b3757ac0b3cae53390fb4db52c2 [ci] nose is not needed anymore (#2151)
    • a47782f540c9afe149ed608cd68efea53e4746ed added estimator's tags (#2150)
    • cfcc020e5857b152cf4664af834961f950fea0a1 [ci][docs] generate docs for C API (#2059)
    • 804c5cdfa7c187f3197d4fa69452bf4ad48ca060 [doc] OS name in bold (#2147)
    • b40d0dc3d65e84fca7eec1689d238c9943d37db5 [ci][SWIG] fixed SWIG -Wstrict-aliasing warnings (#2139)
    • 7156c9b09edcbd61ea82ed6c73e73c46d6de23c9 [SWIG] fix swig build warnings/errors on windows (#2141)
    • 40e3048f6185bb8f3f50bd9fe7275cf514b03b16 [ci] removed graphviz from docker (#2142)
    • 93a899ac7c80b7e71ea2ccc31b4f15ba3fabb7dd [ci] hotfix for check the docs(#2145)
    • 611cf5d414a8273dfdd261651e2f127322a3db89 [python] added plot_split_value_histogram function (#2043)
    • 65c7779d18aed2c5d6d5457eb5ca2a32bf1a7dd1 [ci] point to latest CMake modules (#2140)
    • 5ece53b5e04821e70c0ac81706531c1733b91f58 [docs] updated the part about Boost in installation guide (#2082)
    • 57ed8794e40a77e2910a19e67635f0b53a57a696 Fix build of GPU debugging code (#2071)
    • a295f6b0679d116c7f6388f420da355099e7f9b1 Removed legacy code (#2137)
    • 739c2635f4084e07f5b57666bd7f2fdd929bf30e [ci] added job for swig compilation on Linux with artifacts (#2125)
    • 8d2ec69f4f685b0ab1c4624d59ee2d3287bb3147 [python][R][docs][ci] better compatibility with Visual Studio 2019 (#2083)
    • de82ed585145414390cc8f9f6aa061566f732d97 [SWIG] added typemap for string arrays in SWIG interface (#2118)
    • c45ec4f1535539caf099a883f0505a5856593c9d dump_model() bug with num_leaves=1
    • 24ad35f748724a341c3318f136948dbd5c7263ff fixed minor typos (#2119)
    • 044a39d0ee7b3d3d91414f3ada281f271a90587f [ci] hotfixes (#2132)
    • 4be53a5a1f18892692138dfd3085190124bc1a3e [python] disable default pandas cat features if cat features were explicitly provided (#2121)
    • d115769c2a2ddffadc76c7b84739a47937114c77 [python] ignore pandas ordered categorical columns by default (#2115)
    • 89f2021a4d971284b1fb2dea5a94b8ec4725933b [docs] Update doc string for pred_contrib (#2116) [ #1969 ]
    • beb35d567de899b140bd61e174ef3b9ef5fd0769 [docs] added note about the spoiled probabilities (#2113)
    • 29617593375c06dba9ad7ca270484a6a1e88068f minor fixes in CMakeLists (#2099)
    • 975d2641c59a53bd8d98d64797f989f6c7fbe5a6 Fixed typo in regression_metric.hpp (#2111)
    • ca85b6795002cc0c74d8e97d19fee88ca6ecc98e [python] add flag of displaying train loss for lgb.cv() (#2089)
    • 8ffd8d80e47e40ed6439123de85ab8bacffc1bb6 fix overflow in WeightedPercentile
    • 5b5b98235e4fa8c1eed67f57bf5c409bbe1a09e0 [python] make possibility to create Booster from string official (#2098)
    • 0a4a7a86f5a1d3146c36c7d8c082154a193d4893 fixed cpplint errors about spaces and newlines (#2102)
    • 32ef7603aba858b1e3dbf98e23d99a4cb2ee99b8 added copyright message in files (#2101)
    • 50ce01b55e6bbac1dd00e2f9b1b639dcc37f2660 reworked includes in source files (#2066)
    • c56412a859d4968f2b720514306be3404552b385 [docs] updated HDFS guide (#1890)
    • fb9b2b8af61806343586aaf74be814cc8c9e977d add IntelliJ IDEA to .gitignore (#2093)
    • 0e025e9c223023e49f90b1d026b6eb287d125972 [ci] update macOS on Travis to Mojave (#2086)
    • b3c31c40151bcefe825a7ed5ac1ae28ff737a57e [docs] Python wrapper doesn't support params in form of list of pairs (#2078)
    • 691b842832f511a72b4aaab715b3cb6b00de8f90 [ci] update CI stuff (#2079)
    • 76102284d1997ef8b876cb40ae7c3e44b6ffbb66 Add Cost Effective Gradient Boosting (#2014)
    • fe115bbb7215d3cf966ee406a017f208b5610900 [docs] Fix typo in Python-Intro.rst (#2074)
    • 2027f6b485b1b707b774ca6cfbf6142aa71e8665 addressed cpplint error about C-style cast (#2064)
    • 82f803b3df65f840b757b023e661e484ad9ed789 updated gitignore to ignore files created by local python installation (#2061)
    • 572ae4003897c7435999cbc68d0a2c08e503694c [docs] Small aesthetic improvements to RTD docs (#2060)
    • 3c999be3b7bd2bf8e487957cce8c8f9a1ae19b6a fixed cpplint error about spaces and newlines (#2068)
    • 823fc03cc820758fceae91eb33851e1534b65360 Add API method LGBM_BoosterPredictForMats (#2008)
    • 011cc90a770482e835e613fdbcb2ceb9f3adcef2 [python] Use first_metric_only flag for early_stopping function. (#2049)
    • 548fc91e59a21254b4ec6cb59fa4ee006476190f remove warnings
    • e5e9fbea5e8170d93422ed32a34aff8b31851998 fixed broken link (#2065)
    • 7a89d0054bcf0db9f96af3c53a078b6aa3152efe removed Python 3.4 support (#2051)
    • babe8b313aad747899a3199fba7bc3eae10e582a removed hotfix (#2054)
    • beeb6e0fd5812065578be6969f3c82055e0fc957 Added additional APIs to better support JNI on Spark (#2032)
    • 95246cdaec4feb739f3725e3d0fbf2efeb37bc85 lightgbm SWIG Java wrapper changes needed to add early stopping in mmlspark (#2047)
    • b020a25d3dbfcd9f1128352ca1582abdf67ff87b [ci] compatibility hotfix for notebook execution (#2048)
    • 74ce2cfe9418b0def315c5e17f6244eefac64a60 added examples for multiple custom metrics (#2021)
    • ffb134cc31cc6ec7a456257fcdae9054ded54559 [python] disabled split value histogram for categorical features (#2045)
    • 7ab94e6bba68d4f75c864503fdb269a70def59e6 [examples] updated tree index with categorical feature (#2044)
    • 8d6666e0ffb7165096753dc392044af18ef2eae6 [python] added get_split_value_histogram method (#2041)
    • 9de526f8acc36f493252c635880bca043e643ae3 Fix typo in GatherInfoForThresholdCategorical (#2040)
    • 5801460a355faaf96ae16d152df7dd8c61202e4e [python] Minor fix: close open file pointer (#2039)
    • 8aa08c4af22705338adba9ffbd61a73b8bc7baad [tests] fixed and refactored some tests (#2035)
    • 219c943dd7983ee006772cf2cff52a1207bc8002 Add ability to move features from one data set to another in memory (#2006)
    • f9ab5f588d6bbe145b0aacc28c4aa8711f116caf [docs] added notes about params usage when data is provided via path and removed unused param (#2024)
    • c5cfe3e3e4579a3490989cfac9e6460394fdafee [python] update DataTable handling (#2020)
    • 414bb609c0d8c97091627a77ab49a1647825f1a9 added LightGBM SWIG wrappers for macOS and updated docs (#2002)
    • 7ebf80f8cf8afe2d2dfc76acf422084a8ad594c8 Fix wording (#2015)
    • a777aedd9d2885d1adbe3ca6c623198dd916aaaa Change variable name test_data > validation_data (#2018)
    • b447a7bc341d07602f39d664d22f9c09dd09a941 fixed conda (#2016)
    • 5256cda69300d6b83b18180da2992a1e50a6b392 Fix #1988 missing file issue (#2000)
    • 462612b42c6fe7bb1be1ccd8b72d77021b9f2d38 fixed modifiers indent (#1997)
    • 8e286b38a3f597bc7fbe2905b8d71ea20340fe71 update version number at master branch (#1996)

    This list of changes was auto generated.

    Source code(tar.gz)
    Source code(zip)
    lib_lightgbm.dll(1.14 MB)
    lib_lightgbm.dylib(1.75 MB)
    lib_lightgbm.so(3.05 MB)
    lightgbm-2.3.0-py2.py3-none-macosx_10_8_x86_64.macosx_10_9_x86_64.macosx_10_10_x86_64.macosx_10_11_x86_64.macosx_10_12_x86_64.macosx_10_13_x86_64.macosx_10_14_x86_64.whl(662.79 KB)
    lightgbm-2.3.0-py2.py3-none-manylinux1_x86_64.whl(1.19 MB)
    lightgbm-2.3.0-py2.py3-none-win_amd64.whl(531.21 KB)
    lightgbm-2.3.0.tar.gz(665.06 KB)
    LightGBM.2.3.0.nupkg(2.63 MB)
    lightgbm.exe(1.02 MB)
    lightgbmlib_linux.jar(1.15 MB)
    lightgbmlib_macos.jar(627.68 KB)
    lightgbmlib_win.jar(509.89 KB)
  • v2.0.12(Dec 26, 2017)

    In addition to LightGBM software, this release is used to host some small artifacts used by this project's testing. These components are not LightGBM software:

    • OpenCL AMD App SDK for Linux
      • AMD-APP-SDKInstaller-v3.0.130.136-GA-linux64.tar.bz2
    • OpenCL AMD App SDK for Windows
      • AMD-APP-SDKInstaller-v3.0.130.135-GA-windows-F-x64.exe
    • Rtools (from here):
      • Rtools 3.5: rtools35-x86_64.exe
      • Rtools 4.0v2: rtools40v2-x86_64.exe
      • RTools42: rtools42-5253-5107.exe
    • MiKTeX setup (from here)
      • miktexsetup-4.0-x64.zip
      • miktexsetup-5.2.0-x64.zip
    • SWIG (from here)
      • swigwin-4.0.2.zip
    Source code(tar.gz)
    Source code(zip)
    AMD-APP-SDKInstaller-v3.0.130.135-GA-windows-F-x64.exe(162.67 MB)
    AMD-APP-SDKInstaller-v3.0.130.136-GA-linux64.tar.bz2(186.91 MB)
    lib_lightgbm.dll(939.50 KB)
    lightgbm-2.0.12-py2.py3-none-macosx_10_9_x86_64.macosx_10_10_x86_64.macosx_10_11_x86_64.macosx_10_12_x86_64.whl(593.78 KB)
    lightgbm-2.0.12-py2.py3-none-manylinux1_x86_64.whl(613.17 KB)
    lightgbm-2.0.12-py2.py3-none-win_amd64.whl(421.77 KB)
    lightgbm-2.0.12.tar.gz(584.71 KB)
    LightGBM.2.0.12.nupkg(729.36 KB)
    lightgbm.exe(833.00 KB)
    lightgbmlib_macos.jar(1.08 MB)
    lightgbmlib_win.jar(811.61 KB)
    miktexsetup-4.0-x64.zip(2.40 MB)
    miktexsetup-5.2.0-x64.zip(2.52 MB)
    rtools35-x86_64.exe(103.59 MB)
    rtools40v2-x86_64.exe(171.04 MB)
    rtools42-5253-5107.exe(467.12 MB)
    swigwin-4.0.2.zip(11.06 MB)
  • v2.0(May 3, 2017)

Owner
Microsoft
Open source projects and samples from Microsoft
Microsoft
A fast, scalable, high performance Gradient Boosting on Decision Trees library, used for ranking, classification, regression and other machine learning tasks for Python, R, Java, C++. Supports computation on CPU and GPU.

Website | Documentation | Tutorials | Installation | Release Notes CatBoost is a machine learning method based on gradient boosting over decision tree

CatBoost 6.9k Jan 5, 2023
LibRerank is a toolkit for re-ranking algorithms. There are a number of re-ranking algorithms, such as PRM, DLCM, GSF, miDNN, SetRank, EGRerank, Seq2Slate.

LibRerank LibRerank is a toolkit for re-ranking algorithms. There are a number of re-ranking algorithms, such as PRM, DLCM, GSF, miDNN, SetRank, EGRer

null 126 Dec 28, 2022
TensorFlow Decision Forests (TF-DF) is a collection of state-of-the-art algorithms for the training, serving and interpretation of Decision Forest models.

TensorFlow Decision Forests (TF-DF) is a collection of state-of-the-art algorithms for the training, serving and interpretation of Decision Forest models. The library is a collection of Keras models and supports classification, regression and ranking. TF-DF is a TensorFlow wrapper around the Yggdrasil Decision Forests C++ libraries. Models trained with TF-DF are compatible with Yggdrasil Decision Forests' models, and vice versa.

null 538 Jan 1, 2023
Python Extreme Learning Machine (ELM) is a machine learning technique used for classification/regression tasks.

Python Extreme Learning Machine (ELM) Python Extreme Learning Machine (ELM) is a machine learning technique used for classification/regression tasks.

Augusto Almeida 84 Nov 25, 2022
A high performance and generic framework for distributed DNN training

BytePS BytePS is a high performance and general distributed training framework. It supports TensorFlow, Keras, PyTorch, and MXNet, and can run on eith

Bytedance Inc. 3.3k Dec 28, 2022
Houseprices - Predict sales prices and practice feature engineering, RFs, and gradient boosting

House Prices - Advanced Regression Techniques Predicting House Prices with Machine Learning This project is build to enhance my knowledge about machin

null 1 Jan 1, 2022
Test symmetries with sklearn decision tree models

Test symmetries with sklearn decision tree models Setup Begin from an environment with a recent version of python 3. source setup.sh Leave the enviro

Rupert Tombs 2 Jul 19, 2022
Decision Tree Regression algorithm implemented on Python from scratch.

Decision_Tree_Regression I implemented the decision tree regression algorithm on Python. Unlike regular linear regression, this algorithm is used when

null 1 Dec 22, 2021
Machine Learning Algorithms ( Desion Tree, XG Boost, Random Forest )

implementation of machine learning Algorithms such as decision tree and random forest and xgboost on darasets then compare results for each and implement ant colony and genetic algorithms on tsp map, play blackjack game and robot in grid world and evaluate reward for it

Mohamadreza Rezaei 1 Jan 19, 2022
XGBoost-Ray is a distributed backend for XGBoost, built on top of distributed computing framework Ray.

XGBoost-Ray is a distributed backend for XGBoost, built on top of distributed computing framework Ray.

null 92 Dec 14, 2022
Uber Open Source 1.6k Dec 31, 2022
AutoTabular automates machine learning tasks enabling you to easily achieve strong predictive performance in your applications.

AutoTabular automates machine learning tasks enabling you to easily achieve strong predictive performance in your applications. With just a few lines of code, you can train and deploy high-accuracy machine learning and deep learning models tabular data.

Robin 55 Dec 27, 2022
AutoTabular automates machine learning tasks enabling you to easily achieve strong predictive performance in your applications.

AutoTabular AutoTabular automates machine learning tasks enabling you to easily achieve strong predictive performance in your applications. With just

wenqi 2 Jun 26, 2022
High performance, easy-to-use, and scalable machine learning (ML) package, including linear model (LR), factorization machines (FM), and field-aware factorization machines (FFM) for Python and CLI interface.

What is xLearn? xLearn is a high performance, easy-to-use, and scalable machine learning package that contains linear model (LR), factorization machin

Chao Ma 3k Jan 8, 2023
High performance implementation of Extreme Learning Machines (fast randomized neural networks).

High Performance toolbox for Extreme Learning Machines. Extreme learning machines (ELM) are a particular kind of Artificial Neural Networks, which sol

Anton Akusok 174 Dec 7, 2022
Mosec is a high-performance and flexible model serving framework for building ML model-enabled backend and microservices

Mosec is a high-performance and flexible model serving framework for building ML model-enabled backend and microservices. It bridges the gap between any machine learning models you just trained and the efficient online service API.

null 164 Jan 4, 2023
A Python Module That Uses ANN To Predict A Stocks Price And Also Provides Accurate Technical Analysis With Many High Potential Implementations!

Stox A Module to predict the "close price" for the next day and give "technical analysis". It uses a Neural Network and the LSTM algorithm to predict

Stox 31 Dec 16, 2022
Distributed Evolutionary Algorithms in Python

DEAP DEAP is a novel evolutionary computation framework for rapid prototyping and testing of ideas. It seeks to make algorithms explicit and data stru

Distributed Evolutionary Algorithms in Python 4.9k Jan 5, 2023
machine learning model deployment project of Iris classification model in a minimal UI using flask web framework and deployed it in Azure cloud using Azure app service

This is a machine learning model deployment project of Iris classification model in a minimal UI using flask web framework and deployed it in Azure cloud using Azure app service. We initially made this project as a requirement for an internship at Indian Servers. We are now making it open to contribution.

Krishna Priyatham Potluri 73 Dec 1, 2022