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

  • Change the TreeSHAP implementation for improved numerical stability and faster execution with QuadratureTreeSHAP (#12179, #12192, #12207)

  • Add exact SHAP contribution and interaction prediction for vector-leaf multi-output trees on both CPU and GPU. (#12209, #12210, #12247, #11985, #12208)

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:expectileerror objective, the expectile metric, and the expectile_alpha parameter. Multiple expectiles are supported. (#11988, #12228, #12243)

  • Enable categorical feature support by default while keeping enable_categorical available for users who need to disable it. CPU hist also gained one-hot categorical split support for the working-in-progress vector leaf. (#12015, #12072, #12244)

  • Deprecate the gblinear booster. 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 Enum support from Polars and validate unique pandas column names. (#12240, #12199)

  • Fix the default verbose behavior mismatch between XGBClassifier.fit and XGBRegressor.fit. (#12184)

  • Fix python -OO crashes 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

  • Document Spark 4.0 compatibility for JVM packages. (#12136)

  • Support regressor and ranker pipelines with columnar input. (#12058)

  • Add automatic module names for Java packages and support xgboost4j on FreeBSD. (#12114, #12222)

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)

  • Support latest RAPIDS. (#12140, #12013, #12212, #12144)

  • Fix CMake export targets and builds with system-installed dmlc-core. (#12238, #12123)

  • Fix macOS build and packaging issues. (#12187, #12108)

  • Improve Linux packaging with versioned shared object. (#12055)

Fixes

  • Fix out-of-vocabulary categorical encoding and categorical splits with vector-leaf models. (#12193, #12244)

  • Fix SYCL multiclass objective calculation. (#12041)

  • Fix in-place prune aliasing and assorted prediction/documentation typos. (#12202, #12076, #12070, #12003)

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-cpu package note, and the Read the Docs canonical URL. (#12084, #12113, #12169, #12246)

CI and Maintenance