1. 27 Jun, 2020 1 commit
    • Alex's avatar
      [python][scikit-learn] new stacking tests and make number of features a property (#3173) · 72849466
      Alex authored
      * modify attribute and include stacking tests
      
      * backwards compatibility
      
      * check sklearn version
      
      * move stacking import
      
      * Number of input features (#3173)
      
      * Number of input features (#3173)
      
      * Number of input features (#3173)
      
      * Number of input features (#3173)
      
      Split number of features and stacking tests.
      
      * Number of input features (#3173)
      
      Modify test name.
      
      * Number of input features (#3173)
      
      Update stacking tests for review comments.
      
      * Number of input features (#3173)
      
      * Number of input features (#3173)
      
      * Number of input features (#3173)
      
      * Number of input features (#3173)
      
      Modify classifier test.
      
      * Number of input features (#3173)
      
      * Number of input features (#3173)
      
      Check score.
      72849466
  2. 30 Apr, 2020 1 commit
  3. 25 Apr, 2020 1 commit
  4. 10 Apr, 2020 1 commit
    • Nikita Titov's avatar
      [python] Re-enable scikit-learn 0.22+ support (#2949) · c633c6c2
      Nikita Titov authored
      * Revert "specify the last supported version of scikit-learn (#2637)"
      
      This reverts commit d1002776.
      
      * ban scikit-learn 0.22.0 and skip broken test
      
      * fix updated test
      
      * fix lint test
      
      * Revert "fix lint test"
      
      This reverts commit 8b4db0805fe7a9e7f7eb0be3eac231f85026d196.
      c633c6c2
  5. 20 Mar, 2020 1 commit
    • Lukas Pfannschmidt's avatar
      [python] handle RandomState object in Scikit-learn Api (#2904) · cf0a992e
      Lukas Pfannschmidt authored
      
      
      * Add handling of RandomState object, which is standard for sklearn methods.
      
      LightGBM expects an integer seed instead of an object.
      If passed object is RandomState, we choose random integer based on its state to seed the underlying low level code.
      While chosen random integer is only in the range between 1 and 1e10 I expect it to have enough entropy (?) to not matter in practice.
      
      * Add RandomState object to random_state docstring.
      
      * remove blank line
      
      * Use property to handle setting random_state.
      This enables setting cloned estimators with the set_params method in sklearn.
      
      * Add docstring to attribute.
      
      * Fix and simplify docstring.
      
      * Add test case.
      
      * Use maximal int for datatype in seed derivation.
      
      * Replace random_state property with interfacing in fit method.
      Derives int seed for C code only when fitting and keeps RandomState object as param.
      
      * Adapt unit test to property change.
      
      * Extended test case and docstring
      Co-Authored-By: default avatarNikita Titov <nekit94-08@mail.ru>
      
      * Add more equality checks (feature importance, best iteration/score).
      
      * Add equality comparison of boosters represented by strings.
      Remove useless best_iteration_ comparison (we do not use early_stopping).
      
      * fix whitespace
      
      * Test if two subsequent fits produce different models
      
      * Apply suggestions from code review
      Co-Authored-By: default avatarNikita Titov <nekit94-08@mail.ru>
      Co-authored-by: default avatarNikita Titov <nekit94-08@mail.ru>
      cf0a992e
  6. 26 Feb, 2020 1 commit
  7. 25 Feb, 2020 1 commit
  8. 03 Feb, 2020 1 commit
  9. 02 Feb, 2020 1 commit
    • Guolin Ke's avatar
      Support both row-wise and col-wise multi-threading (#2699) · 509c2e50
      Guolin Ke authored
      
      
      * commit
      
      * fix a bug
      
      * fix bug
      
      * reset to track changes
      
      * refine the auto choose logic
      
      * sort the time stats output
      
      * fix include
      
      * change  multi_val_bin_sparse_threshold
      
      * add cmake
      
      * add _mm_malloc and _mm_free for cross platform
      
      * fix cmake bug
      
      * timer for split
      
      * try to fix cmake
      
      * fix tests
      
      * refactor DataPartition::Split
      
      * fix test
      
      * typo
      
      * formating
      
      * Revert "formating"
      
      This reverts commit 5b8de4f7fb9d975ee23701d276a66d40ee6d4222.
      
      * add document
      
      * [R-package] Added tests on use of force_col_wise and force_row_wise in training (#2719)
      
      * naming
      
      * fix gpu code
      
      * Update include/LightGBM/bin.h
      Co-Authored-By: default avatarJames Lamb <jaylamb20@gmail.com>
      
      * Update src/treelearner/ocl/histogram16.cl
      
      * test: swap compilers for CI
      
      * fix omp
      
      * not avx2
      
      * no aligned for feature histogram
      
      * Revert "refactor DataPartition::Split"
      
      This reverts commit 256e6d9641ade966a1f54da1752e998a1149b6f8.
      
      * slightly refactor data partition
      
      * reduce the memory cost
      Co-authored-by: default avatarJames Lamb <jaylamb20@gmail.com>
      Co-authored-by: default avatarNikita Titov <nekit94-08@mail.ru>
      509c2e50
  10. 30 Jan, 2020 1 commit
    • sbruch's avatar
      Implementation of XE_NDCG_MART for the ranking task (#2620) · 86530988
      sbruch authored
      * Implementation of XE_NDCG loss function for ranking.
      
      * Add citation
      
      * Check in example usage for xe_ndcg loss.
      
      * Seed the generator when a seed is provided in the config. Add unit-tests for xe_ndcg
      
      * Update documentation
      
      * Fix indentation
      
      * Address issues raised by reviewers.
      
      * Clean up include statements.
      
      * Fix issues raised by reviewers.
      
      * Regenerate parameters.rst
      
      * Add a note to explain that reproducing xe_ndcg results requires num_threads to be one.
      
      * Introduce objective_seed and use that in rank_xendcg instead of directly using seed
      
      * Change default value of objective_seed
      86530988
  11. 09 Dec, 2019 1 commit
  12. 05 Dec, 2019 2 commits
  13. 27 Oct, 2019 2 commits
  14. 15 Sep, 2019 1 commit
    • kenmatsu4's avatar
      [python] Bug fix for first_metric_only on earlystopping. (#2209) · 84754399
      kenmatsu4 authored
      * Bug fix for first_metric_only if the first metric is train metric.
      
      * Update bug fix for feval issue.
      
      * Disable feval for first_metric_only.
      
      * Additional test items.
      
      * Fix wrong assertEqual settings & formating.
      
      * Change dataset of test.
      
      * Fix random seed for test.
      
      * Modiry assumed test result due to different sklearn verion between CI and local.
      
      * Remove f-string
      
      * Applying variable  assumed test result for test.
      
      * Fix flake8 error.
      
      * Modifying  in accordance with review comments.
      
      * Modifying for pylint.
      
      * simplified tests
      
      * Deleting error criteria `if eval_metric is None`.
      
      * Delete test items of classification.
      
      * Simplifying if condition.
      
      * Applying first_metric_only for sklearn wrapper.
      
      * Modifying test_sklearn for comforming to python 2.x
      
      * Fix flake8 error.
      
      * Additional fix for sklearn and add tests.
      
      * Bug fix and add test cases.
      
      * some refactor
      
      * fixed lint
      
      * fixed lint
      
      * Fix duplicated metrics scores to pass the test.
      
      * Fix the case first_metric_only not in params.
      
      * Converting metrics aliases.
      
      * Add comment.
      
      * Modify comment for pylint.
      
      * Modify comment for pydocstyle.
      
      * Using split test set for two eval_set.
      
      * added test case for metric aliases and length checks
      
      * minor style fixes
      
      * fixed rmse name and alias position
      
      * Fix the case metric=[]
      
      * Fix using env.model._train_data_name
      
      * Fix wrong test condition.
      
      * Move initial process to _init() func.
      
      * Modify test setting for test_sklearn & training data matching on callback.py
      
      * test_sklearn.py
      -> A test case for training is wrong, so fixed.
      
      * callback.py
      -> A condition of if statement for detecting test dataset is wrong, so fixed.
      
      * Support composite name metrics.
      
      * Remove metric check process & reduce redundant test cases.
      
      For #2273 fixed not only the order of metrics in cpp, removing metric check process at callback.py
      
      * Revised according to the matters pointed out on a review.
      
      * increased code readability
      
      * Fix the issue of order of validation set.
      
      * Changing to OrderdDict from default dict for score result.
      
      * added missed check in cv function for first_metric_only and feval co-occurrence
      
      * keep order only for metrics but not for datasets in best_score
      
      * move OrderedDict initialization to init phase
      
      * fixed minor printing issues
      
      * move first metric detection to init phase and split can be performed without checks
      
      * split only once during callback
      
      * removed excess code
      
      * fixed typo in variable name and squashed ifs
      
      * use setdefault
      
      * hotfix
      
      * fixed failing test
      
      * refined tests
      
      * refined sklearn test
      
      * Making "feval" effective on early stopping.
      
      * allow feval and first_metric_only for cv
      
      * removed unused code
      
      * added tests for feval
      
      * fixed printing
      
      * add note about whitespaces in feval name
      
      * Modifying final iteration process in case valid set is  training data.
      84754399
  15. 03 Sep, 2019 1 commit
  16. 24 Aug, 2019 1 commit
    • Guolin Ke's avatar
      normalize the lambdas in lambdamart objective (#2331) · 0dfda826
      Guolin Ke authored
      * norm the lambda scores
      
      * change default to false
      
      * update doc
      
      * typo
      
      * Update Parameters.rst
      
      * Update config.h
      
      * Update test_sklearn.py
      
      * Update test_sklearn.py
      
      * Update test_sklearn.py
      
      * Update test_sklearn.py
      
      * Update test_sklearn.py
      
      * Update rank_objective.hpp
      
      * Update Parameters.rst
      
      * Update config.h
      
      * Update test_sklearn.py
      
      * Update test_sklearn.py
      
      * Update test_sklearn.py
      0dfda826
  17. 17 Aug, 2019 1 commit
    • sbruch's avatar
      sigmoid_ in grad and hess for rank objective (#2322) · aee92f63
      sbruch authored
      * Lambdas and hessians need to factor sigmoid_ into the computation. Additionally, the sigmoid function has an arbitrary factor of 2 in the exponent; it is not just non-standard but the gradients are not computed correctly anyway.
      
      * Update unit test
      
      * Also remove a heuristic that normalizes the gradient by the difference in scores.
      
      * Also fix unit test after removing the heuristic
      aee92f63
  18. 13 Aug, 2019 1 commit
  19. 20 Jun, 2019 1 commit
  20. 04 Jun, 2019 1 commit
  21. 27 May, 2019 1 commit
  22. 08 May, 2019 1 commit
  23. 22 Apr, 2019 1 commit
  24. 19 Apr, 2019 1 commit
  25. 02 Feb, 2019 1 commit
  26. 30 Jan, 2019 1 commit
    • Guolin Ke's avatar
      fix nan in eval results (#1973) · feeaf38f
      Guolin Ke authored
      * always save the score of the first round in early stopping
      
      fix #1971
      
      * avoid using std::log on non-positive numbers
      
      * remove unnecessary changes
      
      * add tests
      
      * Update test_sklearn.py
      
      * enhanced tests
      feeaf38f
  27. 27 Jan, 2019 1 commit
    • Nikita Titov's avatar
      [tests][python] added tests for metrics' behavior and fixed case for... · f9a1465d
      Nikita Titov authored
      [tests][python] added tests for metrics' behavior and fixed case for multiclass task with custom objective (#1954)
      
      * added metrics test for standard interface
      
      * simplified code
      
      * less trees
      
      * less trees
      
      * use dummy custom objective and metric
      
      * added tests for multiclass metrics aliases
      
      * fixed bug in case of custom obj and num_class > 1
      
      * added metric test for sklearn wrapper
      f9a1465d
  28. 20 Dec, 2018 1 commit
  29. 11 Oct, 2018 1 commit
  30. 10 Oct, 2018 1 commit
  31. 28 Sep, 2018 1 commit
  32. 25 Jul, 2018 1 commit
  33. 11 Jul, 2018 1 commit
    • Misha Lisovyi's avatar
      [python] Configure choice of `feature_importance_` in sklearn API (#1470) · dae75516
      Misha Lisovyi authored
      * ignore vim temporary files
      
      * add importance_type arg to sklearn API
      
      * update documentation info
      
      * remote a trailing space
      
      * remove trailing space (again :))
      
      * add instructions on importance choices to sklearn API
      
      * drop mention of constructor in the feature type setting
      
      * adding a test for different feture types
      
      * remove trailing spaces, make shorter assert in feature importance type handling test
      
      * fixing style issue introduced with the new test
      dae75516
  34. 20 Jun, 2018 1 commit
  35. 09 Jun, 2018 1 commit
    • Nikita Titov's avatar
      [python] make tree rendering more clear (#1424) · 69a36605
      Nikita Titov authored
      * fixed grammar
      
      * fixed params description in graph plotting functions
      
      * clarified types of attributes in their descriptions
      
      * increased readability of graphs by adding spaces
      
      * added precision parameter to plot tree functions
      69a36605
  36. 10 May, 2018 1 commit
    • Nikita Titov's avatar
      [python][docs] reworked predict method in sklearn wrapper and docs improvements (#1351) · 41152eab
      Nikita Titov authored
      * fixed docs
      
      * reworker predict method of sklearn wrapper
      
      * fixed encapsulation
      
      * added test
      
      * fixed consistency between docstring and params docs
      
      * fixed verbose
      
      * replaced predict_proba with predict in test
      
      * fixed verbose again
      
      * fixed fraction params descriptions
      
      * added description of skip_drop and drop_rate constraints
      
      * fixed subsample_freq consistency with C++ default value
      
      * fixed nice look of params list
      
      * made force splits json file example clickable
      
      * fixed nice look of metrics list and added comma
      
      * reduced warning in test about same param specified twice
      
      * replaced pred_parameter with **kwargs in predict method
      
      * added test for **kwargs in predict method
      
      * fixed warnings
      
      * fixed pylint
      41152eab
  37. 19 Sep, 2017 1 commit
  38. 08 Sep, 2017 1 commit
    • Nikita Titov's avatar
      [python] [setup] improving installation (#880) · 8984111f
      Nikita Titov authored
      * disabled logs from compilers; fixed #874
      
      * fixed safe clear_fplder
      
      * added windows folder to manifest.in
      
      * added windows folder to build
      
      * added library path
      
      * added compilation with MSBuild from .sln-file
      
      * fixed unknown PlatformToolset returns exitcode 0
      
      * hotfix
      
      * updated Readme
      
      * removed return
      
      * added installation with mingw test to appveyor
      
      * let's test appveyor with both VS 2015 and VS 2017; but MinGW isn't installed on VS 2017 image
      
      * fixed built-in name 'file'
      
      * simplified appveyor
      
      * removed excess data_files
      
      * fixed unreadable paths
      
      * separated exceptions for cmake and mingw
      
      * refactored silent_call
      
      * don't create artifacts with VS 2015 and mingw
      
      * be more precise with python versioning in Travis
      
      * removed unnecessary if statement
      
      * added classifiers for PyPI and python versions badge
      
      * changed python version in travis
      
      * added support of scikit-learn 0.18.x
      
      * added more python versions to Travis
      
      * added more python versions to Appveyor
      
      * reduced number of tests in Travis
      
      * Travis trick is not needed anymore
      
      * attempt to fix according to https://github.com/Microsoft/LightGBM/pull/880#discussion_r137438856
      8984111f