1. 07 Jan, 2021 1 commit
  2. 24 Dec, 2020 1 commit
    • Belinda Trotta's avatar
      Trees with linear models at leaves (#3299) · fcfd4132
      Belinda Trotta authored
      * Add Eigen library.
      
      * Working for simple test.
      
      * Apply changes to config params.
      
      * Handle nan data.
      
      * Update docs.
      
      * Add test.
      
      * Only load raw data if boosting=gbdt_linear
      
      * Remove unneeded code.
      
      * Minor updates.
      
      * Update to work with sk-learn interface.
      
      * Update to work with chunked datasets.
      
      * Throw error if we try to create a Booster with an already-constructed dataset having incompatible parameters.
      
      * Save raw data in binary dataset file.
      
      * Update docs and fix parameter checking.
      
      * Fix dataset loading.
      
      * Add test for regularization.
      
      * Fix bugs when saving and loading tree.
      
      * Add test for load/save linear model.
      
      * Remove unneeded code.
      
      * Fix case where not enough leaf data for linear model.
      
      * Simplify code.
      
      * Speed up code.
      
      * Speed up code.
      
      * Simplify code.
      
      * Speed up code.
      
      * Fix bugs.
      
      * Working version.
      
      * Store feature data column-wise (not fully working yet).
      
      * Fix bugs.
      
      * Speed up.
      
      * Speed up.
      
      * Remove unneeded code.
      
      * Small speedup.
      
      * Speed up.
      
      * Minor updates.
      
      * Remove unneeded code.
      
      * Fix bug.
      
      * Fix bug.
      
      * Speed up.
      
      * Speed up.
      
      * Simplify code.
      
      * Remove unneeded code.
      
      * Fix bug, add more tests.
      
      * Fix bug and add test.
      
      * Only store numerical features
      
      * Fix bug and speed up using templates.
      
      * Speed up prediction.
      
      * Fix bug with regularisation
      
      * Visual studio files.
      
      * Working version
      
      * Only check nans if necessary
      
      * Store coeff matrix as an array.
      
      * Align cache lines
      
      * Align cache lines
      
      * Preallocation coefficient calculation matrices
      
      * Small speedups
      
      * Small speedup
      
      * Reverse cache alignment changes
      
      * Change to dynamic schedule
      
      * Update docs.
      
      * Refactor so that linear tree learner is not a separate class.
      
      * Add refit capability.
      
      * Speed up
      
      * Small speedups.
      
      * Speed up add prediction to score.
      
      * Fix bug
      
      * Fix bug and speed up.
      
      * Speed up dataload.
      
      * Speed up dataload
      
      * Use vectors instead of pointers
      
      * Fix bug
      
      * Add OMP exception handling.
      
      * Change return type of LGBM_BoosterGetLinear to bool
      
      * Change return type of LGBM_BoosterGetLinear back to int, only parameter type needed to change
      
      * Remove unused internal_parent_ property of tree
      
      * Remove unused parameter to CreateTreeLearner
      
      * Remove reference to LinearTreeLearner
      
      * Minor style issues
      
      * Remove unneeded check
      
      * Reverse temporary testing change
      
      * Fix Visual Studio project files
      
      * Restore LightGBM.vcxproj.filters
      
      * Speed up
      
      * Speed up
      
      * Simplify code
      
      * Update docs
      
      * Simplify code
      
      * Initialise storage space for max num threads
      
      * Move Eigen to include directory and delete unused files
      
      * Remove old files.
      
      * Fix so it compiles with mingw
      
      * Fix gpu tree learner
      
      * Change AddPredictionToScore back to const
      
      * Fix python lint error
      
      * Fix C++ lint errors
      
      * Change eigen to a submodule
      
      * Update comment
      
      * Add the eigen folder
      
      * Try to fix build issues with eigen
      
      * Remove eigen files
      
      * Add eigen as submodule
      
      * Fix include paths
      
      * Exclude eigen files from Python linter
      
      * Ignore eigen folders for pydocstyle
      
      * Fix C++ linting errors
      
      * Fix docs
      
      * Fix docs
      
      * Exclude eigen directories from doxygen
      
      * Update manifest to include eigen
      
      * Update build_r to include eigen files
      
      * Fix compiler warnings
      
      * Store raw feature data as float
      
      * Use float for calculating linear coefficients
      
      * Remove eigen directory from GLOB
      
      * Don't compile linear model code when building R package
      
      * Fix doxygen issue
      
      * Fix lint issue
      
      * Fix lint issue
      
      * Remove uneeded code
      
      * Restore delected lines
      
      * Restore delected lines
      
      * Change return type of has_raw to bool
      
      * Update docs
      
      * Rename some variables and functions for readability
      
      * Make tree_learner parameter const in AddScore
      
      * Fix style issues
      
      * Pass vectors as const reference when setting tree properties
      
      * Make temporary storage of serial_tree_learner mutable so we can make the object's methods const
      
      * Remove get_raw_size, use num_numeric_features instead
      
      * Fix typo
      
      * Make contains_nan_ and any_nan_ properties immutable again
      
      * Remove data_has_nan_ property of tree
      
      * Remove temporary test code
      
      * Make linear_tree a dataset param
      
      * Fix lint error
      
      * Make LinearTreeLearner a separate class
      
      * Fix lint errors
      
      * Fix lint error
      
      * Add linear_tree_learner.o
      
      * Simulate omp_get_max_threads if openmp is not available
      
      * Update PushOneData to also store raw data.
      
      * Cast size to int
      
      * Fix bug in ReshapeRaw
      
      * Speed up code with multithreading
      
      * Use OMP_NUM_THREADS
      
      * Speed up with multithreading
      
      * Update to use ArrayToString
      
      * Fix tests
      
      * Fix test
      
      * Fix bug introduced in merge
      
      * Minor updates
      
      * Update docs
      fcfd4132
  3. 08 Dec, 2020 1 commit
    • Alberto Ferreira's avatar
      Fix model locale issue and improve model R/W performance. (#3405) · 792c9303
      Alberto Ferreira authored
      * Fix LightGBM models locale sensitivity and improve 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:
       - Add CommonC namespace which provides faster locale-independent versions of Common's methods
       - Model code makes conversions through CommonC
       - Cleanup unused Common methods
       - Performance improvements. 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)
      
      Bugfixes:
       - 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)
      
      * Align CommonC namespace
      
      * Add new external_libs/ to python setup
      
      * Try fast_double_parser fix #1
      
      Testing commit e09e5aad828bcb16bea7ed0ed8322e019112fdbe
      
      If it works it should fix more LGBM builds
      
      * CMake: Attempt to link fmt without explicit PUBLIC tag
      
      * Exclude external_libs from linting
      
      * Add exernal_libs to MANIFEST.in
      
      * Set dynamic linking option for fmt.
      
      * linting issues
      
      * Try to fix lint includes
      
      * Try to pass fPIC with static fmt lib
      
      * Try CMake P_I_C option with fmt library
      
      * [R-package] Add CMake support for R and CRAN
      
      * Cleanup CMakeLists
      
      * Try fmt hack to remove stdout
      
      * Switch to header-only mode
      
      * Add PRIVATE argument to target_link_libraries
      
      * use fmt in header-only mode
      
      * Remove CMakeLists comment
      
      * Change OpenMP to PUBLIC linking in Mac
      
      * Update fmt submodule to 7.1.2
      
      * Use fmt in header-only-mode
      
      * Remove fmt from CMakeLists.txt
      
      * Upgrade fast_double_parser to v0.2.0
      
      * Revert "Add PRIVATE argument to target_link_libraries"
      
      This reverts commit 3dd45dde7b92531b2530ab54522bb843c56227a7.
      
      * Address James Lamb's comments
      
      * Update R-package/.Rbuildignore
      Co-authored-by: default avatarJames Lamb <jaylamb20@gmail.com>
      
      * Upgrade to fast_double_parser v0.3.0 - Solaris support
      
      * Use legacy code only in Solaris
      
      * Fix lint issues
      
      * Fix comment
      
      * Address StrikerRUS's comments (solaris ifdef).
      
      * Change header guards
      Co-authored-by: default avatarJames Lamb <jaylamb20@gmail.com>
      792c9303
  4. 23 Oct, 2020 1 commit
  5. 18 Oct, 2020 1 commit
    • James Lamb's avatar
      [ci] [R-package] Fix memory leaks found by valgrind (#3443) · 81d76113
      James Lamb authored
      
      
      * fix int64 write error
      
      * attempt
      
      * [WIP] [ci] [R-package] Add CI job that runs valgrind tests
      
      * update all-successful
      
      * install
      
      * executable
      
      * fix redirect stuff
      
      * Apply suggestions from code review
      Co-authored-by: default avatarGuolin Ke <guolin.ke@outlook.com>
      
      * more flags
      
      * add mc to msvc proj
      
      * fix memory leak in mc
      
      * Update monotone_constraints.hpp
      
      * Update r_package.yml
      
      * remove R_INT64_PTR
      
      * disable openmp
      
      * Update gbdt_model_text.cpp
      
      * Update gbdt_model_text.cpp
      
      * Apply suggestions from code review
      
      * try to free vector
      
      * free more memories.
      
      * Update src/boosting/gbdt_model_text.cpp
      
      * fix using
      
      * try the UNPROTECT(1);
      
      * fix a const pointer
      
      * fix Common
      
      * reduce UNPROTECT
      
      * remove UNPROTECT(1);
      
      * fix null handle
      
      * fix predictor
      
      * use NULL after free
      
      * fix a leaking in test
      
      * try more fixes
      
      * test the effect of tests
      
      * throw exception in Fatal
      
      * add test back
      
      * Apply suggestions from code review
      
      * commet some tests
      
      * Apply suggestions from code review
      
      * Apply suggestions from code review
      
      * trying to comment out tests
      
      * Update openmp_wrapper.h
      
      * Apply suggestions from code review
      
      * Update configure
      
      * Update configure.ac
      
      * trying to uncomment
      
      * more comments
      
      * more uncommenting
      
      * more uncommenting
      
      * fix comment
      
      * more uncommenting
      
      * uncomment fully-commented out stuff
      
      * try uncommenting more dataset tests
      
      * uncommenting more tests
      
      * ok getting closer
      
      * more uncommenting
      
      * free dataset
      
      * skipping a test, more uncommenting
      
      * more skipping
      
      * re-enable OpenMP
      
      * allow on OpenMP thing
      
      * move valgrind to comment-only job
      
      * Apply suggestions from code review
      Co-authored-by: default avatarNikita Titov <nekit94-08@mail.ru>
      
      * changes from code review
      
      * Apply suggestions from code review
      Co-authored-by: default avatarNikita Titov <nekit94-08@mail.ru>
      
      * linting
      
      * issue comments too
      
      * remove issue_comment
      Co-authored-by: default avatarGuolin Ke <guolin.ke@outlook.com>
      Co-authored-by: default avatarNikita Titov <nekit94-08@mail.ru>
      81d76113
  6. 15 Jul, 2020 1 commit
  7. 05 Jun, 2020 1 commit
  8. 01 Jun, 2020 1 commit
  9. 30 Mar, 2020 1 commit
  10. 02 Mar, 2020 1 commit
  11. 20 Feb, 2020 1 commit
    • Nikita Titov's avatar
      added feature infos to JSON dump (#2660) · c4a7ab81
      Nikita Titov authored
      
      
      * added feature infos to JSON dump
      
      * slight json schema refactor
      
      * simpified code
      
      * refactor feature_infos
      
      * refactoring
      
      * Update src/boosting/gbdt.cpp
      
      * Update dataset.h
      
      * Update include/LightGBM/dataset.h
      
      * simplify
      
      * Apply suggestions from code review
      
      * parse string and construct JSON objs
      Co-authored-by: default avatarGuolin Ke <guolin.ke@outlook.com>
      c4a7ab81
  12. 10 Feb, 2020 1 commit
  13. 02 Jan, 2020 1 commit
  14. 15 Nov, 2019 1 commit
  15. 22 Sep, 2019 1 commit
  16. 08 Sep, 2019 1 commit
    • CharlesAuguste's avatar
      [python] Improved python tree plots (#2304) · f52be9be
      CharlesAuguste authored
      * Some basic changes to the plot of the trees to make them readable.
      
      * Squeezed the information in the nodes.
      
      * Added colouring when a dictionnary mapping the features to the constraints is passed.
      
      * Fix spaces.
      
      * Added data percentage as an option in the nodes.
      
      * Squeezed the information in the leaves.
      
      * Important information is now in bold.
      
      * Added a legend for the color of monotone splits.
      
      * Changed "split_gain" to "gain" and "internal_value" to "value".
      
      * Sqeezed leaves a bit more.
      
      * Changed description in the legend.
      
      * Revert "Sqeezed leaves a bit more."
      
      This reverts commit dd8bf14a3ba604b0dfae3b7bb1c64b6784d15e03.
      
      * Increased the readability for the gain.
      
      * Tidied up the legend.
      
      * Added the data percentage in the leaves.
      
      * Added the monotone constraints to the dumped model.
      
      * Monotone constraints are now specified automatically when plotting trees.
      
      * Raise an exception instead of the bug that was here before.
      
      * Removed operators on the branches for a clearer design.
      
      * Small cleaning of the code.
      
      * Setting a monotone constraint on a categorical feature now returns an exception instead of doing nothing.
      
      * Fix bug when monotone constraints are empty.
      
      * Fix another bug when monotone constraints are empty.
      
      * Variable name change.
      
      * Added is / isn't on every edge of the trees.
      
      * Fix test "tree_create_digraph".
      
      * Add new test for plotting trees with monotone constraints.
      
      * Typo.
      
      * Update documentation of categorical features.
      
      * Typo.
      
      * Information in nodes more explicit.
      
      * Used regular strings instead of raw strings.
      
      * Small refactoring.
      
      * Some cleaning.
      
      * Added future statement.
      
      * Changed output for consistency.
      
      * Updated documentation.
      
      * Added comments for colors.
      
      * Changed text on edges for more clarity.
      
      * Small refactoring.
      
      * Modified text in leaves for consistency with nodes.
      
      * Updated default values and documentaton for consistency.
      
      * Replaced CHECK with Log::Fatal for user-friendliness.
      
      * Updated tests.
      
      * Typo.
      
      * Simplify imports.
      
      * Swapped count and weight to improve readibility of the leaves in the plotted trees.
      
      * Thresholds in bold.
      
      * Made information in nodes written in a specific order.
      
      * Added information to clarify legend.
      
      * Code cleaning.
      f52be9be
  17. 24 Jul, 2019 1 commit
  18. 13 Apr, 2019 1 commit
  19. 11 Apr, 2019 1 commit
  20. 01 Apr, 2019 1 commit
  21. 26 Mar, 2019 1 commit
  22. 02 Feb, 2019 2 commits
  23. 17 Dec, 2018 1 commit
    • Guolin Ke's avatar
      Fix bugs in RF (#1906) · cba82447
      Guolin Ke authored
      * fix RF's bugs
      
      * fix tests
      
      * rollback num_iterations
      
      * fix a bug and reduce memory costs
      
      * reduce memory cost
      cba82447
  24. 23 Nov, 2018 1 commit
  25. 10 Oct, 2018 1 commit
  26. 22 Aug, 2018 1 commit
    • Guolin Ke's avatar
      add start_iteration in model saving (#1565) · 941068ee
      Guolin Ke authored
      * add start_iteration in model saving
      
      * fix test
      
      * shuffle models ability
      
      * fix bug
      
      * update document
      
      * refine
      
      * Update engine.py
      
      * Update basic.py
      
      * fix comments
      
      * fix comment
      941068ee
  27. 08 Jul, 2018 1 commit
  28. 20 May, 2018 1 commit
    • Guolin Ke's avatar
      Refine config object (#1381) · dc699574
      Guolin Ke authored
      * [WIP] refine config
      
      * [wip] ready for the auto code generate
      
      * auto generate config codes
      
      * use with to open file
      
      * fix bug
      
      * fix pylint
      
      * fix bug
      
      * fix pylint
      
      * fix bugs.
      
      * tmp for failed test.
      
      * fix tests.
      
      * added nthreads alias
      
      * added new aliases from new config.h
      
      * fixed duplicated alias
      
      * refactored parameter_generator.py
      
      * added new aliases from config.h and removed remaining old names
      
      * fix bugs & some miss alias
      
      * added aliases
      
      * add more descriptions.
      
      * add comment.
      dc699574
  29. 11 May, 2018 1 commit
  30. 22 Jan, 2018 1 commit
  31. 12 Jan, 2018 1 commit
  32. 25 Dec, 2017 2 commits
  33. 26 Nov, 2017 1 commit
    • Guolin Ke's avatar
      Speed up saving and loading model (#1083) · 8a5ec366
      Guolin Ke authored
      * remove protobuf
      
      * add version number
      
      * remove pmml script
      
      * use float for split gain
      
      * fix warnings
      
      * refine the read model logic of gbdt
      
      * fix compile error
      
      * improve decode speed
      
      * fix some bugs
      
      * fix double accuracy problem
      
      * fix bug
      
      * multi-thread save model
      
      * speed up save model to string
      
      * parallel save/load model
      
      * fix some warnings.
      
      * fix warnings.
      
      * fix a bug
      
      * remove debug output
      
      * fix doc
      
      * fix max_bin warning in tests.
      
      * fix max_bin warning
      
      * fix pylint
      
      * clean code for stringToArray
      
      * clean code for TToString
      
      * remove max_bin
      
      * replace "class" with typename
      8a5ec366
  34. 15 Nov, 2017 2 commits
  35. 26 Oct, 2017 1 commit
    • wxchan's avatar
      fix protobuf on vs build (#1004) · 2b20569e
      wxchan authored
      * [optional] support protobuf
      
      * fix windows/LightGBM.vcxproj
      
      * add doc
      
      * fix doc
      
      * fix vs support (#2)
      
      * fix vs support
      
      * fix cmake
      2b20569e
  36. 20 Oct, 2017 1 commit
  37. 19 Oct, 2017 1 commit