- 20 May, 2020 1 commit
-
-
Guolin Ke authored
* 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>
-
- 05 May, 2020 1 commit
-
-
Nikita Titov authored
-
- 10 Apr, 2020 1 commit
-
-
OMOTO Tsukasa authored
* Support UTF-8 characters in feature name again This commit reverts 0d59859c. Also see: - https://github.com/microsoft/LightGBM/issues/2226 - https://github.com/microsoft/LightGBM/issues/2478 - https://github.com/microsoft/LightGBM/pull/2229 I reproduced the issue and as @kidotaka gave us a great survey in #2226, I don't conclude that the cause is UTF-8, but "an empty string (character)". Therefore, I revert "throw error when meet non ascii (#2229)" whose commit hash is 0d59859c, and add support feture names as UTF-8 again. * add tests * fix check-docs tests * update * fix tests * update .travis.yml * fix tests * update test_r_package.sh * update test_r_package.sh * update test_r_package.sh * add a test for R-package * update test_r_package.sh * update test_r_package.sh * update test_r_package.sh * fix test for R-package * update test_r_package.sh * update test_r_package.sh * update test_r_package.sh * update test_r_package.sh * update * updte * update * remove unneeded comments
-
- 20 Mar, 2020 1 commit
-
-
Alberto Ferreira authored
* [swig] Fix SWIG methods that return char** with StringArray. + [new] Add StringArray class to manage and manipulate arrays of fixed-length strings: This class is now used to wrap any char** parameters, manage memory and manipulate the strings. Such class is defined at swig/StringArray.hpp and wrapped in StringArray.i. + [API+fix] Wrap LGBM_BoosterGetFeatureNames it resulted in segfault before: Added wrapper LGBM_BoosterGetFeatureNamesSWIG(BoosterHandle) that only receives the booster handle and figures how much memory to allocate for strings and returns a StringArray which can be easily converted to String[]. + [API+safety] For consistency, LGBM_BoosterGetEvalNamesSWIG was wrapped as well: * Refactor to detect any kind of errors and removed all the parameters besides the BoosterHandle (much simpler API to use in Java). * No assumptions are made about the required string space necessary (128 before). * The amount of required string memory is computed internally + [safety] No possibility of undefined behaviour The two methods wrapped above now compute the necessary string storage space prior to allocation, as the low-level C API calls would crash the process irreversibly if they write more memory than which is passed to them. * Changes to C API and wrappers support char** To support the latest SWIG changes that enable proper char** return support that is safe, the C API was changed. The respecive wrappers in R and Python were changed too. * Cleanup indentation in new lightgbm_R.cpp code * Adress review code-style comments. * Update swig/StringArray.hpp Co-Authored-By:Nikita Titov <nekit94-08@mail.ru> * Update python-package/lightgbm/basic.py Co-Authored-By:
Nikita Titov <nekit94-08@mail.ru> * Update src/lightgbm_R.cpp Co-Authored-By:
Nikita Titov <nekit94-08@mail.ru> Co-authored-by:
alberto.ferreira <alberto.ferreira@feedzai.com> Co-authored-by:
Nikita Titov <nekit94-08@mail.ru>
-
- 16 Mar, 2020 2 commits
-
-
Guolin Ke authored
* fix * fix return * fix test * fix test * fix predictor is none * Apply suggestions from code review * Update basic.py * Update basic.py * Apply suggestions from code review Co-Authored-By:
Nikita Titov <nekit94-08@mail.ru> Co-authored-by:
Nikita Titov <nekit94-08@mail.ru>
-
Guolin Ke authored
* fix the bug when use different params with reference * fix * Update basic.py * Apply suggestions from code review Co-Authored-By:
Nikita Titov <nekit94-08@mail.ru> * Update basic.py * add test * Apply suggestions from code review * added asserts in test Co-authored-by:
Nikita Titov <nekit94-08@mail.ru> Co-authored-by:
StrikerRUS <nekit94-12@hotmail.com>
-
- 06 Mar, 2020 1 commit
-
-
Nikita Titov authored
* save all param values into model file * revert storing predict params * do not save params for predict and convert tasks * fixed test: 10 is found successfully for default 100 * specify more params as no-save
-
- 20 Feb, 2020 1 commit
-
-
Joan Fontanals authored
* Add capability to get possible max and min values for a model * Change implementation to have return value in tree.cpp, change naming to upper and lower bound, move implementation to gdbt.cpp * Update include/LightGBM/c_api.h Co-Authored-By:
Nikita Titov <nekit94-08@mail.ru> * Change iteration to avoid potential overflow, add bindings to R and Python and a basic test * Adjust test values * Consider const correctness and multithreading protection * Update test values * Update test values * Add test to check that model is exactly the same in all platforms * Try to parse the model to get the expected values * Try to parse the model to get the expected values * Fix implementation, num_leaves can be lower than the leaf_value_ size * Do not check for num_leaves to be smaller than actual size and get back to test with hardcoded value * Change test order * Add gpu_use_dp option in test * Remove helper test method * Update src/c_api.cpp Co-Authored-By:
Nikita Titov <nekit94-08@mail.ru> * Update src/io/tree.cpp Co-Authored-By:
Nikita Titov <nekit94-08@mail.ru> * Update src/io/tree.cpp Co-Authored-By:
Nikita Titov <nekit94-08@mail.ru> * Update tests/python_package_test/test_basic.py Co-Authored-By:
Nikita Titov <nekit94-08@mail.ru> * Remoove imports Co-authored-by:
Nikita Titov <nekit94-08@mail.ru>
-
- 19 Feb, 2020 1 commit
-
-
Guolin Ke authored
* reset * fix a bug * fix test * Update c_api.h * support to no filter features by min_data * add warning in reset config * refine warnings for override dataset's parameter * some cleans * clean code * clean code * refine C API function doxygen comments * refined new param description * refined doxygen comments for R API function * removed stuff related to int8 * break long line in warning message * removed tests which results cannot be validated anymore * added test for warnings about unchangeable params * write parameter from dataset to booster * consider free_raw_data. * fix params * fix bug * implementing R * fix typo * filter params in R * fix R * not min_data * refined tests * fixed linting * refine * pilint * add docstring * fix docstring * R lint * updated description for C API function * use param aliases in Python * fixed typo * fixed typo * added more params to test * removed debug print * fix dataset construct place * fix merge bug * Update feature_histogram.hpp * add is_sparse back * remove unused parameters * fix lint * add data random seed * update * [R-package] centrallized Dataset parameter aliases and added tests on Dataset parameter updating (#2767) Co-authored-by:
Nikita Titov <nekit94-08@mail.ru> Co-authored-by:
James Lamb <jaylamb20@gmail.com>
-
- 03 Feb, 2020 1 commit
-
-
Nikita Titov authored
* removed duplicated code from language wrappers * removed check for resetting metric
-
- 14 Jan, 2020 2 commits
-
-
Nikita Titov authored
* transfer and enhance test for trees_to_dataframe * fixed bug in Python 2
-
Guolin Ke authored
* Update metadata.cpp * add version for training set, for efficiently update label/weight/... during training. * Update lgb.Booster.R
-
- 10 Jan, 2020 1 commit
-
-
Patrick Ford authored
* trees_to_df method and unit test added. PEP 8 fixes for integration. * Co-Authored-By: Nikita Titov <nekit94-08@mail.ru> Post-review changes * changes from second round of reviews from striker * third round of review. formatting and added 2 more tests * replaced pandas dot attribute accessor with string attribute accessor * dealt with single tree edge case and minor refactor of tests * slight refactor for checking if tree is a single node
-
- 29 Dec, 2019 1 commit
-
-
Guolin Ke authored
* warning for init_score in save_binary fix #2639 * Update metadata.cpp * added info into docs Co-authored-by:Nikita Titov <nekit94-08@mail.ru>
-
- 08 Dec, 2019 1 commit
-
-
duckladydinh authored
I believe that this should be a typo, right?
-
- 27 Oct, 2019 1 commit
-
-
Nikita Titov authored
-
- 22 Oct, 2019 1 commit
-
-
Nikita Titov authored
* handle aliases centralized * convert aliases dict to class
-
- 21 Oct, 2019 1 commit
-
-
Guolin Ke authored
* Update sparse_bin.hpp * check sorted in c_api * fix python package * fix tests * fix test * std::is_sorted * Update basic.py
-
- 26 Sep, 2019 3 commits
-
-
Nikita Titov authored
* avoid copy where possible * use precise type for importance type * removed pointless code * simplify sparse pandas Series conversion * more memory savings * always force type conversion for 1-D arrays * one more copy=False
-
Nikita Titov authored
-
Nikita Titov authored
* make dump_text() private * updated test
-
- 15 Sep, 2019 1 commit
-
-
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.
-
- 09 Sep, 2019 1 commit
-
-
Nikita Titov authored
* keep consistent state for Dataset fields * hotfix
-
- 08 Sep, 2019 1 commit
-
-
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.
-
- 07 Sep, 2019 2 commits
-
-
Nikita Titov authored
-
Nikita Titov authored
-
- 13 Aug, 2019 1 commit
-
-
Nikita Titov authored
* reworked pandas dtypes mapper * added tests * added sparsity support for new version of pandas * fixed tests for old pandas * check pd.Series for bad dtypes as well * enhanced tests * fixed pylint
-
- 07 Aug, 2019 1 commit
-
-
Madiyar authored
Otherwise, it would print `basic.py:762: UserWarning: categorical_feature in param dict is overridden.`. Because when updating the params for a validation test, the updated params for the train test was used which contains `'categorical_column'`.
-
- 31 Jul, 2019 1 commit
-
-
Guolin Ke authored
-
- 12 Jul, 2019 1 commit
-
-
Guolin Ke authored
* fix init_model with subset * Update basic.py * added test * fix predictor naming issue * Update basic.py * fix bug * fix pylint * fix comments * Update basic.py * Update basic.py * updated test * fixed bug * fixed lint * fix warning * add get_data before initial prediction * refine the warning in get_data * refine warning * Update basic.py
-
- 07 Jul, 2019 1 commit
-
-
Guolin Ke authored
-
- 27 May, 2019 1 commit
-
-
Nikita Titov authored
[python] fixed picklability of sklearn models with custom obj and updated docstings for custom obj (#2191) * refactored joblib test * fixed picklability of sklearn models with custom obj and updated docstings for custom obj * pickled model should be able to predict without refitting
-
- 22 Apr, 2019 1 commit
-
-
Nikita Titov authored
* disable default pandas cat features if cat features were explicitly provided * added assertion for cat features
-
- 19 Apr, 2019 2 commits
-
-
Nikita Titov authored
* ignore pandas ordered categorical columns by default * fix tests * fix tests * added comments
-
Scott Lundberg authored
* Update doc string for pred_contrib See comments at the end of #1969 * Update basic.py * Update basic.py * update doc strings * update equals sign in doc string * strip whitespace and gen rst * strip whitespace
-
- 13 Apr, 2019 1 commit
-
-
Nikita Titov authored
-
- 14 Mar, 2019 1 commit
-
-
Nikita Titov authored
* disabled split value histogram for categorical features * updated test for cat. feature * updated docs
-
- 09 Mar, 2019 1 commit
-
-
Nikita Titov authored
* added get_split_value_histogram method * added param for ordinary return value
-
- 26 Feb, 2019 1 commit
-
-
remcob-gr authored
* Initial attempt to implement appending features in-memory to another data set The intent is for this to enable munging files together easily, without needing to round-trip via numpy or write multiple copies to disk. In turn, that enables working more efficiently with data sets that were written separately. * Implement Dataset.dump_text, and fix small bug in appending of group bin boundaries. Dumping to text enables us to compare results, without having to worry about issues like features being reordered. * Add basic tests for validation logic for add_features_from. * Remove various internal mapping items from dataset text dumps These are too sensitive to the exact feature order chosen, which is not visible to the user. Including them in tests appears unnecessary, as the data dumping code should provide enough coverage. * Add test that add_features_from results in identical data sets according to dump_text. * Add test that booster behaviour after using add_features_from matches that of training on the full data This checks: - That training after add_features_from works at all - That add_features_from does not cause training to misbehave * Expose feature_penalty and monotone_types/constraints via get_field These getters allow us to check that add_features_from does the right thing with these vectors. * Add tests that add_features correctly handles feature_penalty and monotone_constraints. * Ensure add_features_from properly frees the added dataset and add unit test for this Since add_features_from moves the feature group pointers from the added dataset to the dataset being added to, the added dataset is invalid after the call. We must ensure we do not try and access this handle. * Remove some obsolete TODOs * Tidy up DumpTextFile by using a single iterator for each feature This iterators were also passed around as raw pointers without being freed, which is now fixed. * Factor out offsetting logic in AddFeaturesFrom * Remove obsolete TODO * Remove another TODO This one is debatable, test code can be a bit messy and duplicate-heavy, factoring it out tends to end badly. Leaving this for now, will revisit if adding more tests later on becomes a mess. * Add documentation for newly-added methods. * Fix whitespace issues identified by pylint. * Fix a few more whitespace issues. * Fix doc comments * Implement deep copying for feature groups. * Replace awkward std::move usage by emplace_back, and reduce vector size to num_features rather than num_total_features. * Copy feature groups in addFeaturesFrom, rather than moving them. * Fix bugs in FeatureGroup copy constructor and ensure source dataset remains usable * Add reserve to PushVector and PushOffset * Move definition of Clone into class body * Fix PR review issues * Fix for loop increment style. * Fix test failure * Some more docstring fixes. * Remove blank line
-
- 21 Feb, 2019 1 commit
-
-
Nikita Titov authored
-