⚠️ There are no JVM artifacts for this release due to issues with publishing.: They will be updated in the next release soon.
Major changes
-
[Python-package] Add
polarsinput data support. #2524.Polarsdata structures are supported for features, labels and auxiliary data likeweight,timestampetc.
New features
- [R-package] Make 'predict' an S3 method #1657. Thanks to @david-cortes.
- Add
RMSPEmetric and loss (both as are CPU-only for now) #1767. Thanks to @ivan339339. - [C/C++ applier] New function
LoadFullModelZeroCopyfor mmap #2893. Thanks to @gakoshin.
Improvements
- Remove the limit of 128 threads when loading data. #3027
Speedups
- Optimize
Lossguidegrow policy on CPU #2883. Approximate speedup is 1.4x. Thanks to @Levachev. - [Python-package] Support non-float32
numpynumeric types in multithreaded native features data initialization. #1558, #2847 - [Python-package] Avoid possible repeated reparsing of estimator parameters to canonical forms
Python package
- Support Python 3.14 #2943
pyproject.tomlis now PEP-517 compliant.- Estimators: Add
__sklearn_tags__method to be compatible withscikit-learn>= 1.8.x. #2955 - Estimators: Add
__repr__method with a meaningful description expected byscikit-learn#2307. Thanks to @besteady. - Adapt to the removal of
dry_runparameters in setuptools 81.0. pypa/setuptools#4872 - Set upper version bounds for important dependencies to avoid breaking changes
Rust package
- Implement Sync for rust Model struct #2689. Thanks to @alexeysofin.
- Support Windows #2842
- Fix build on Linux aarch64 #2890. Thanks to @joelchen.
Build & testing
- [Windows] Support building with MSVC toolsets 14.4*. #2302
- [GPU] Switch from hardcoded gencode specifications in multiple
CMakeLists.txtfiles to the standardCMakevariableCMAKE_CUDA_ARCHITECTURES, although the default value is non-standard and specified incuda.cmake. #2540 - [macOS] Support Apple Clang 17. #2860
- [Python-package][Windows] Fix python package installation from a source distribution. #3024
- [Python-package]
wheelbuild dependency no longer required
Bugfixes
- [Performance][Windows]
__SSE__compiler flag was not enabled for Windows builds with MSVC compiler. This affected code that relied on this flag including some operations used during training and quantization during model inference. It is important to note that the compiler itself was configured for SSE support and could still apply automatic SSE optimizations. - [Python-package] carry.py: fix _uplift_by_name. #2861
- [Python-package]
CatBoostErrorwas missing from__all__incatboostpackage. #2862 - [Python-package]
log_coutwas used instead oflog_cerrby mistake. #2863 - [Python-package] Don't fail when all features are embeddings with the same dimension. #2875
- [Python-package]
get_params:deepparameter meaning was inconsistent withscikit-learnexpectations. #2991 - [Python-package] Estimators'
_get_tags: Add missing tags. #3008 - [Python-package] Estimators'
_get_tagsreturned incorrect values for several tags. #3009 - [Python-package] Incorrect values were silently accepted in
timestampparameters. #3019 - [CLI] fix eval result output for
MultiRMSE - [GPU] Fix
devicesparameter parsing. Parsing was non-robust: in case of non-numbers specified it defaulted to0and device ids outside of the available range were silently ignored. - [C/C++ applier] Fix a race condition in error messages reported by
GetErrorStringin multithreaded programs. It is now thread-local.