* New build option: USE_PRECISE_TEXT_PARSER.
Use fast_double_parser for text file parsing. For each number, fallback
to strtod in case of parse failure.
* Add benchmark for CSVParser with Atof and AtofPrecise.
* Fix lint complaint.
* Fix typo in open result error message.
* Revert "Fix lint complaint."
This reverts commit 92ab0b6bce9f17d7be9eaeb20f19d4a0a36f0387.
* Revert "Add benchmark for CSVParser with Atof and AtofPrecise."
This reverts commit 4f8639abd06c679d4382eb715a1793afd94df3d2.
* Use AtofPrecise in Common::__StringToTHelper.
* [option] precise_float_parser: precise float number parsing for text input.
* Remove USE_PRECISE_TEXT_PARSER compile option.
* test: add test for Common::AtofPrecise.
* test: remove ChunkedArrayTest with 0 length.
This triggers Log::Fatal which aborts the test program.
* fix lint, add copyright.
* Revert "test: remove ChunkedArrayTest with 0 length."
This reverts commit 346c76affe9e78b6ca2738c4a56dbb9c00f31102.
* Use LightGBM::Common::Sign
* save precise_float_parser in model file.
* Fix error checking in AtofPrecise. Add more test cases.
* Remove test case that can't pass under macOS.
* Apply suggestions from code review
Co-authored-by: Nikita Titov <nekit94-08@mail.ru>
Co-authored-by: Nikita Titov <nekit94-08@mail.ru>
* document CUDA version support
* address review comments
* collapse CUDA section in the guide
* remove Clang support from CUDA docs as we have never tested it
* [R-package] enable use of trees with linear models at leaves (fixes#3319)
* remove problematic pragmas
* fix tests
* try to fix build scripts
* try fixing pragma check
* more pragma checks
* ok fix pragma stuff for real
* empty commit
* regenerate documentation
* try skipping test
* uncomment CI
* add note on missing value types for R
* add tests on saving and re-loading booster
* 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
* Add support to optimize for NDCG at a given truncation level
In order to correctly optimize for NDCG@_k_, one should exclude pairs containing both documents beyond the top-_k_ (as they don't affect NDCG@_k_ when swapped).
* Update rank_objective.hpp
* Apply suggestions from code review
Co-authored-by: Guolin Ke <guolin.ke@outlook.com>
* Update rank_objective.hpp
remove the additional branching: get high_rank and low_rank by one "if".
* Update config.h
add description to lambdarank_truncation_level parameter
* Update Parameters.rst
* Update test_sklearn.py
update expected NDCG value for a test, as it was affected by the underlying change in the algorithm
* Update test_sklearn.py
update NDCG@3 reference value
* fix R learning-to-rank tests
* Update rank_objective.hpp
* Update include/LightGBM/config.h
Co-authored-by: Guolin Ke <guolin.ke@outlook.com>
* Update Parameters.rst
Co-authored-by: Guolin Ke <guolin.ke@outlook.com>
Co-authored-by: James Lamb <jaylamb20@gmail.com>
* Implement average precision score
* Fix lint errors
* Change name to average_precision
* Add to R-package list of metrics
* Empty commit to trigger CI jobs
* Change name to average_precision
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* Initial CUDA work
* redirect log to python console (#3090)
* redir log to python console
* fix pylint
* Apply suggestions from code review
* Update basic.py
* Apply suggestions from code review
Co-authored-by: Nikita Titov <nekit94-08@mail.ru>
* Update c_api.h
* Apply suggestions from code review
* Apply suggestions from code review
* super-minor: better wording
Co-authored-by: Nikita Titov <nekit94-08@mail.ru>
Co-authored-by: StrikerRUS <nekit94-12@hotmail.com>
* re-order includes (fixes#3132) (#3133)
* Revert "re-order includes (fixes#3132) (#3133)" (#3153)
This reverts commit 656d2676c2.
* Missing change from previous rebase
* Minor cleanup and removal of development scripts.
* Only set gpu_use_dp on by default for CUDA. Other minor change.
* Fix python lint indentation problem.
* More python lint issues.
* Big lint cleanup - more to come.
* Another large lint cleanup - more to come.
* Even more lint cleanup.
* Minor cleanup so less differences in code.
* Revert is_use_subset changes
* Another rebase from master to fix recent conflicts.
* More lint.
* Simple code cleanup - add & remove blank lines, revert unneccessary format changes, remove added dead code.
* Removed parameters added for CUDA and various bug fix.
* Yet more lint and unneccessary changes.
* Revert another change.
* Removal of unneccessary code.
* temporary appveyor.yml for building and testing
* Remove return value in ReSize
* Removal of unused variables.
* Code cleanup from reviewers suggestions.
* Removal of FIXME comments and unused defines.
* More reviewers comments cleanup.
* More reviewers comments cleanup.
* More reviewers comments cleanup.
* Fix config variables.
* Attempt to fix check-docs failure
* Update Paramster.rst for num_gpu
* Removing test appveyor.yml
* Add CUDA_RESOLVE_DEVICE_SYMBOLS to libraries to fix linking issue.
* Fixed handling of data elements less than 2K.
* More reviewers comments cleanup.
* Removal of TODO and fix printing of int64_t
* Add cuda change for CI testing and remove cuda from device_type in python.
* Missed one change form previous check-in
* Removal AdditionConfig and fix settings.
* Limit number of GPUs to one for now in CUDA.
* Update Parameters.rst for previous check-in
* Whitespace removal.
* Cleanup unused code.
* Changed uint/ushort/ulong to unsigned int/short/long to help Windows based CUDA compiler work.
* Lint change from previous check-in.
* Changes based on reviewers comments.
* More reviewer comment changes.
* Adding warning for is_sparse. Revert tmp_subset code. Only return FeatureGroupData if not is_multi_val_
* Fix so that CUDA code will compile even if you enable the SCORE_T_USE_DOUBLE define.
* Reviewer comment cleanup.
* Replace warning with Log message. Removal of some of the USE_CUDA. Fix typo and removal of pragma once.
* Remove PRINT debug for CUDA code.
* Allow to use of multiple GPUs for CUDA.
* More multi-GPUs enablement for CUDA.
* More code cleanup based on reviews comments.
* Update docs with latest config changes.
Co-authored-by: Gordon Fossum <fossum@us.ibm.com>
Co-authored-by: ChipKerchner <ckerchne@linux.vnet.ibm.com>
Co-authored-by: Guolin Ke <guolin.ke@outlook.com>
Co-authored-by: Nikita Titov <nekit94-08@mail.ru>
Co-authored-by: StrikerRUS <nekit94-12@hotmail.com>
Co-authored-by: James Lamb <jaylamb20@gmail.com>
* Add interaction constraints functionality.
* Minor fixes.
* Minor fixes.
* Change lambda to function.
* Fix gpu bug, remove extra blank lines.
* Fix gpu bug.
* Fix style issues.
* Try to fix segfault on MACOS.
* Fix bug.
* Fix bug.
* Fix bugs.
* Change parameter format for R.
* Fix R style issues.
* Change string formatting code.
* Change docs to say R package not supported.
* Remove R functionality, moving to separate PR.
* Keep track of branch features in tree object.
* Only track branch features when feature interactions are enabled.
* Fix lint error.
* Update docs and simplify tests.
* Path smoothing
* Try to fix issue with gpu version.
* Fix failing CI for R package.
* Minor fixes.
* Minor refactor.
* Restore old code to get CI working.
* Fix style issues.
* Fix ci for R package.
* Minor fixes for docs and code style.
* Update docs.
* Add the monotone penalty parameter to the config.
* Pass tree in the necessary functions so it can be used in ComputeBestSplitForFeature.
* Add monotone penalty.
* Added link to the original report.
* Add tests.
* Fix GPU.
* Revert "Pass tree in the necessary functions so it can be used in ComputeBestSplitForFeature."
This reverts commit 37757e8e8f3a2c82a604f4af9a926da616660d2e.
* Revert "Fix GPU."
This reverts commit e49eeee41c883f3c97fd5cdbd53c9288094bffb6.
* Added a shared pointer to the tree so the constraints can use it too.
* Moved check on monotone penalty to config.cpp.
* Python linting.
* Use AssertTrue instead of assert_.
* Fix penalization in test.
* Make GPU deterministic in tests.
* Rename tree to tree_ in monotone constraints.
* Replaced epsilon by kEplison.
* Typo.
* Make tree pointer const.
* Update src/treelearner/monotone_constraints.hpp
Co-Authored-By: Guolin Ke <guolin.ke@outlook.com>
* Update src/treelearner/monotone_constraints.hpp
Co-Authored-By: Guolin Ke <guolin.ke@outlook.com>
* Added alias for the penalty.
* Remove useless comment.
* Save CI time.
* Refactor test_monotone_penalty_max.
* Update include/LightGBM/config.h
Co-Authored-By: Nikita Titov <nekit94-08@mail.ru>
* Fix doc to be in line with previous config change commit.
Co-authored-by: Charles Auguste <auguste@dubquantdev801.ire.susq.com>
Co-authored-by: Guolin Ke <guolin.ke@outlook.com>
Co-authored-by: Nikita Titov <nekit94-08@mail.ru>
* Add util functions.
* Added monotone_constraints_method as a parameter.
* Add the intermediate constraining method.
* Updated tests.
* Minor fixes.
* Typo.
* Linting.
* Ran the parameter generator for the doc.
* Removed usage of the FeatureMonotone function.
* more fixes
* Fix.
* Remove duplicated code.
* Add debug checks.
* Typo.
* Bug fix.
* Disable the use of intermediate monotone constraints and feature sampling at the same time.
* Added an alias for monotone constraining method.
* Use the right variable to get the number of threads.
* Fix DEBUG checks.
* Add back check to determine if histogram is splittable.
* Added forgotten override keywords.
* Perform monotone constraint update only when necessary.
* Small refactor of FastLeafConstraints.
* Post rebase commit.
* Small refactor.
* Typo.
* Added comment and slightly improved logic of monotone constraints.
* Forgot a const.
* Vectors that are to be modified need to be pointers.
* Rename FastLeafConstraints to IntermediateLeafConstraints to match documentation.
* Remove overload of GoUpToFindLeavesToUpdate.
* Stop memory leaking.
* Fix cpplint issues.
* Fix checks.
* Fix more cpplint issues.
* Refactor config monotone constraints method.
* Typos.
* Remove useless empty lines.
* Add new line to separate includes.
* Replace unsigned ind by size_t.
* Reduce number of trials in tests to decrease CI time.
* Specify monotone constraints better in tests.
* Removed outer loop in test of monotone constraints.
* Added categorical features to the monotone constraints tests.
* Add blank line.
* Regenerate parameters automatically.
* Speed up ShouldKeepGoingLeftRight.
Co-authored-by: Charles Auguste <auguste@dubquantdev801.ire.susq.com>
Co-authored-by: guolinke <guolin.ke@outlook.com>