3.3.0 (2026 Jun 17)
XGBoost 3.3 adds expectile regression, enables categorical feature support by default, expands SHAP support for vector-leaf models, and includes optimizations for histogram building, quantile sketching, and distributed GPU training.
SHAP Support
Quantile Sketching and Distributed Training
The quantile sketching went through some major refactoring and optimizations. XGBoost 3.3.0 simplifies quantile sketch internals and improves the weighted quantile sketch implementation (#12033, #12046, #12048, #12049, #12054, #12067, #12074, #12146, #12148, #12150, #12151, #12155, #12167), with significantly reduced memory use in the GPU quantile sketch (#12047, #12079, #12090, #12099, #12104, #12105, #12118, #12147, #12159, #12160). Also, we have a more efficient distributed quantile construction using tree reductions. (#12061, #12128, #12171)
Features
Add expectile regression with the
reg:expectileerrorobjective, theexpectilemetric, and theexpectile_alphaparameter. Multiple expectiles are supported. (#11988, #12228, #12243)Enable categorical feature support by default while keeping
enable_categoricalavailable for users who need to disable it. CPUhistalso gained one-hot categorical split support for the working-in-progress vector leaf. (#12015, #12072, #12244)Deprecate the
gblinearbooster. Support will be removed in a future release. (#12030)Use a local RNG and serialize RNG state. Training multiple models with sampling within the same session is now reproducible. (#12043, #12083)
Optimizations
Optimize CPU histogram building for wide datasets with column block tiling and detect CPU cache sizes via Linux sysfs on aarch64. (#12158, #12233)
Use Philox for faster GPU sampling. (#12223)
Support customizing worker port for distributed training. In addition, XGBoost now doesn’t need all-to-all collective connections for improved scalability. (#12010, #12075, #12171, #12082)
Python Package
Bump the minimum supported Python version to 3.12. (#12195)
Add PySpark support for Spark Connect ML. (#11970)
Require
Enumsupport from Polars and validate unique pandas column names. (#12240, #12199)Fix the default verbose behavior mismatch between
XGBClassifier.fitandXGBRegressor.fit. (#12184)Fix
python -OOcrashes caused by assigning to missing docstrings (#12094)Handle boolean indicator features in
trees_to_dataframe. (#12089)Improve validation and error messages for feature information and deprecated functions. (#12142, #12200)
Clean up imports, type checking comments, and legacy compatibility guards. (#12027, #12110, #12163)
JVM Packages
Build and Platform
Support Visual Studio 2026. (#12245)
Update CUDA Toolkit support, including CUDA Toolkit 13.3 type updates and default architecture alignment for recent CUDA versions. (#12230, #12204)
Fix CMake export targets and builds with system-installed
dmlc-core. (#12238, #12123)Improve Linux packaging with versioned shared object. (#12055)
Fixes
Documents
Add TreeSHAP references, distributed XGBoost on Kubernetes documentation, and updates to competition-winning solution examples. (#12207, #12080, #12087, #12109)
Add notes for pickling, expectile margin output, Spark 4.0 compatibility. (#12042, #12243, #12136, #12247)
Update LightGBM links, the security disclosure, the
xgboost-cpupackage note, and the Read the Docs canonical URL. (#12084, #12113, #12169, #12246)
CI and Maintenance
Unify CI configure workflows, document the clang-tidy flow, and keep CI images and dependency pins up to date. (#12170, #12175, #12165)
Keep GitHub Actions dependency groups and release bookkeeping up to date. (#12005, #12029, #12034, #12038, #12057, #12095, #12124, #12134, #12145, #12161, #12178, #12188, #12206, #12231, #12249)
Update CI jobs for
cibuildwheel, CRAN, R CI, and documentation tests. (#12066, #12125, #12173, #12216)Continue test cleanup and refactoring across quantile sketching, PySpark, global configuration. (#12002, #12007, #12009, #12019, #12141, #12164, #12180, #12190)
Continue cleanup of prediction and DART internals, including moving DART state into
GBTreeand unifying DART SHAP forwarding. (#12068, #12071, #12073, #12078, #12081, #12022)Always save DART configuration. (#12098)
Improved support for using clang-tidy with CUDA code. (#12165, #12174)
Improve CUDA resource handling and diagnostics, small cleanups for external memory. (#12092, #12127, #12185, #12191, #12137, #12069)