Skip to main content

OmniGBDT

OmniGBDT packages the original GBDT-MO algorithm as a regular Python library. The native C++ training core remains in place, while the Python layer adds wheel-based installation, public custom-objective hooks, optional sklearn-compatible wrappers, and accuracy-oriented regression defaults.

At the mathematical level, GBDT-MO replaces the usual one-tree-per-target strategy with a single tree whose split score is the summed second-order objective gain across all outputs. This allows one tree to reuse shared structure across correlated targets, supports optional sparse leaves that update only the most relevant outputs, and extends histogram-based split search to the multi-output case so the costs of training remain practical at larger output dimensions.

The main public classes are MultiOutputGBDT and SingleOutputGBDT.

Why OmniGBDT

  • Joint multi-output gradient boosting from the original GBDT-MO research codebase
  • Standard pip and uv installation with the native library bundled inside the package
  • Public Python callbacks for custom gradients, Hessians, metrics, and early stopping
  • Fixed-thread deterministic CPU training through the public deterministic parameter
  • Optional sklearn-compatible wrappers for tools such as permutation importance
  • Accuracy-oriented regression defaults in the current fork: num_rounds=200, lr=0.05, max_bins=128, early_stop=15, and automatic mean initialization when base_score is unset

For the original project, benchmark figures, experiment scripts, and upstream research context, please see:

Installation

Install the released package:

pip install omnigbdt

or with uv:

uv add omnigbdt

Optional extras:

pip install "omnigbdt[plot]"
pip install "omnigbdt[sklearn]"

The current wheel targets are:

  • Linux x86_64
  • Windows x86_64
  • macOS arm64 (Apple Silicon, 14+)

First Model

The example below trains one MultiOutputGBDT model on two correlated targets using only NumPy:

import numpy as np

from omnigbdt import MultiOutputGBDT, Verbosity

rng = np.random.default_rng(0)
X = rng.normal(size=(400, 6))
shared_signal = 1.2 * X[:, 0] - 0.8 * X[:, 1] + 0.5 * X[:, 2] * X[:, 3]
Y = np.column_stack(
    [
        shared_signal + 0.3 * X[:, 4],
        shared_signal - 0.2 * X[:, 5],
    ]
)

X_train, Y_train = X[:240], Y[:240]
X_valid, Y_valid = X[240:320], Y[240:320]
X_test = X[320:]

model = MultiOutputGBDT(
    out_dim=Y.shape[1],
    params={
        "loss": b"mse",
        "max_depth": 4,
        "max_bins": 128,
        "lr": 0.05,
        "early_stop": 15,
        "num_threads": 1,
        "verbosity": Verbosity.SILENT,
    },
)
model.set_data((X_train, Y_train), (X_valid, Y_valid))
model.train(200)

preds = model.predict(X_test)
print(preds.shape)

SingleOutputGBDT can be used to train one model per target column as a simple baseline. A real-world financial benchmark based on the UCI Stock Portfolio Performance dataset, together with custom-objective and sklearn examples, is available in the hosted examples page.

Differences From The Original Package

Compared with the upstream GBDT-MO repository, OmniGBDT currently adds:

  • standard Python packaging and bundled native-library loading
  • wheel automation for Linux, macOS, and Windows
  • public Python callback hooks for custom gradients, Hessians, metrics, and early stopping
  • public deterministic parameter for fixed-thread CPU repeatability on the same platform
  • optional sklearn-compatible wrappers
  • automatic regression mean initialization when base_score is omitted
  • scalar or per-output base_score values for MultiOutputGBDT
  • accuracy-oriented wrapper defaults for regression workflows
  • split gain thresholding through gamma that now applies consistently at the root and deeper nodes

Several targeted native-code fixes are also part of the fork, so same-seed runs are not guaranteed to match older buggy runs exactly. A fuller summary is available in the Differences From Upstream page.

Documentation Guide

Project Provenance

This fork builds directly on the original GBDT-MO implementation by Zhendong Zhang and Cheolkon Jung.

OmniGBDT is intended to make the package easier to build, install, and distribute. It is not the canonical source for the paper, benchmark tables, figures, or research documentation.

Versioning

This fork follows Semantic Versioning independently from the upstream GBDT-MO repository.

License

This fork is distributed under the Apache License 2.0. The main license text for this fork is in LICENSE.

Because this repository incorporates and modifies the original GBDT-MO codebase, the original upstream MIT license notice from Zhendong Zhang is preserved in LICENSE.upstream. Additional attribution and fork-specific notice text is provided in NOTICE.

Citation

If this project is used in research, please credit the original paper by Zhang and Jung:

@article{zhang2020gbdt,
  title={GBDT-MO: Gradient-boosted decision trees for multiple outputs},
  author={Zhang, Zhendong and Jung, Cheolkon},
  journal={IEEE transactions on neural networks and learning systems},
  volume={32},
  number={7},
  pages={3156--3167},
  year={2020},
  publisher={Ieee}
}

Metadata

Release files for omnigbdt 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for omnigbdt 0.5.0
File Size Uploaded
omnigbdt-0.5.0.tar.gz 94.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for omnigbdt 0.5.0
File
omnigbdt-0.5.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
omnigbdt-0.5.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
omnigbdt-0.5.0-cp313-cp313-macosx_14_0_arm64.whl CPython 3.13 CPython 3.13 macOS 14.0+ ARM64 Details
omnigbdt-0.5.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
omnigbdt-0.5.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
omnigbdt-0.5.0-cp312-cp312-macosx_14_0_arm64.whl CPython 3.12 CPython 3.12 macOS 14.0+ ARM64 Details
omnigbdt-0.5.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
omnigbdt-0.5.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
omnigbdt-0.5.0-cp311-cp311-macosx_14_0_arm64.whl CPython 3.11 CPython 3.11 macOS 14.0+ ARM64 Details
omnigbdt-0.5.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
omnigbdt-0.5.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
omnigbdt-0.5.0-cp310-cp310-macosx_14_0_arm64.whl CPython 3.10 CPython 3.10 macOS 14.0+ ARM64 Details

Total release size: 2.6 MB

Release files / omnigbdt-0.5.0.tar.gz

Download URL omnigbdt-0.5.0.tar.gz
Size 94.8 kB
Tags Source
SHA-256 checksum
How to use checksums
8d9154cd3f8af6c1aa1710358a18a351f0e89017644233a4f429c6c1f04eabdb
BLAKE2b-256 checksum
How to use checksums
c142d0072050fab155af5f400f6a77ee154d6ae13668fef5d095c6cbf60345a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 13, 2026.

Transparency log

Release files / omnigbdt-0.5.0-cp313-cp313-win_amd64.whl

Download URL omnigbdt-0.5.0-cp313-cp313-win_amd64.whl
Size 88.2 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
5cc7c3286cc954cc2dbc35881cb311ca01c37a64b6664cc7fbf9823d458cea24
BLAKE2b-256 checksum
How to use checksums
e4ec8740a355b92ee1c0ac885933991b5b68e3edb7d611abc660e905d97e2a83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 13, 2026.

Transparency log

Release files / omnigbdt-0.5.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL omnigbdt-0.5.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 207.2 kB
Tags CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
3eecdbdd20c0e5006d79601ee0c4de83fe604ba813efd72b96cbaf6490d1a242
BLAKE2b-256 checksum
How to use checksums
e92252b5aabd6cb153d428f1b7d99c0fc9d583ddfa16a1750036ce5be4c9d9c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 13, 2026.

Transparency log

Release files / omnigbdt-0.5.0-cp313-cp313-macosx_14_0_arm64.whl

Download URL omnigbdt-0.5.0-cp313-cp313-macosx_14_0_arm64.whl
Size 332.9 kB
Tags CPython 3.13 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
89951907816c491d77c1afbc14ef531d6df89b33dc6f0af2b3dbb0993e24cff6
BLAKE2b-256 checksum
How to use checksums
6f675e2545dee26516a081ecedbffd0fbcda5b2418d3376184f9e17009a55b48
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 13, 2026.

Transparency log

Release files / omnigbdt-0.5.0-cp312-cp312-win_amd64.whl

Download URL omnigbdt-0.5.0-cp312-cp312-win_amd64.whl
Size 88.2 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
22b32556f551807315c1b82c6f39973a57220317309d1b0bb576521643258aa3
BLAKE2b-256 checksum
How to use checksums
627c5a4b75bee1d25541b62ea2e96f5cde12eb82f293480b6e0943e5b7e14f6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 13, 2026.

Transparency log

Release files / omnigbdt-0.5.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL omnigbdt-0.5.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 207.2 kB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
dcafc1ba7d54c5576a8523ff12d4930d175c5f6d67326bd1efae3aeb746a1127
BLAKE2b-256 checksum
How to use checksums
3de9ad3746e9498f02d6c429acf67febdfc079673ae3f029ce5e6e4d7558f8ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 13, 2026.

Transparency log

Release files / omnigbdt-0.5.0-cp312-cp312-macosx_14_0_arm64.whl

Download URL omnigbdt-0.5.0-cp312-cp312-macosx_14_0_arm64.whl
Size 332.9 kB
Tags CPython 3.12 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
fb9686656beb40b3859b32c32679a12d306c15baa1d161685474057e3647ebcd
BLAKE2b-256 checksum
How to use checksums
be4b91ee4cba952fb7a7096812a64bcf6a8a67f6b99be3268d68b061b1a44813
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 13, 2026.

Transparency log

Release files / omnigbdt-0.5.0-cp311-cp311-win_amd64.whl

Download URL omnigbdt-0.5.0-cp311-cp311-win_amd64.whl
Size 88.2 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
bf0d925ebfddd1db1243d370c5deeba21462abb6875f4234d190e206bd042a9d
BLAKE2b-256 checksum
How to use checksums
626f2229d43d5c89d8c5d527a16d351def5703ff137767ce8f4a5e43bb49dc2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 13, 2026.

Transparency log

Release files / omnigbdt-0.5.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL omnigbdt-0.5.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 207.2 kB
Tags CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
4a489c4362ef7ca7a62ce231f0ac4799db6b18102c98a15b15e26764ad80693b
BLAKE2b-256 checksum
How to use checksums
d98cc49df4f6cb5dd478b131dc04803c475666747f494de2e811248460166319
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 13, 2026.

Transparency log

Release files / omnigbdt-0.5.0-cp311-cp311-macosx_14_0_arm64.whl

Download URL omnigbdt-0.5.0-cp311-cp311-macosx_14_0_arm64.whl
Size 332.9 kB
Tags CPython 3.11 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
84fccb873b20d7347682b27de45d4af84822f5d1f4dbbc4884d6b9a30039ff69
BLAKE2b-256 checksum
How to use checksums
29dbd54b91c8a20dcd2aa3a3f1f7cd202072b402e458b34584df9ce665aad61a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 13, 2026.

Transparency log

Release files / omnigbdt-0.5.0-cp310-cp310-win_amd64.whl

Download URL omnigbdt-0.5.0-cp310-cp310-win_amd64.whl
Size 88.2 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
79104847914ad2332fd01d68920deaa5abf5801401e7d5d309f22049a492d38a
BLAKE2b-256 checksum
How to use checksums
0cc6e642d5b49002ec14cbf55df421bcde7382d1ddec0496b220d194b4ca94d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 13, 2026.

Transparency log

Release files / omnigbdt-0.5.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL omnigbdt-0.5.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 207.2 kB
Tags CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c42b71161615ded373ca7523d889d610a6085c5e72a9af32e42d8327771bc6a8
BLAKE2b-256 checksum
How to use checksums
e7595a88dbab67bd31a5c6fdaabcda8d8d9ba9a519985fce9f0fd9594c1ce3ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 13, 2026.

Transparency log

Release files / omnigbdt-0.5.0-cp310-cp310-macosx_14_0_arm64.whl

Download URL omnigbdt-0.5.0-cp310-cp310-macosx_14_0_arm64.whl
Size 332.9 kB
Tags CPython 3.10 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
a03c6a569894de210637c5d103f93dd127a960f0e8f6615bde0f96fd4667fbd8
BLAKE2b-256 checksum
How to use checksums
c3c3bfbe22caee659ec0c482c5589d38a270f0662ec8a8fd4feb21e26d99fa97
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.5.0 This release

13 release files

0.4.1

13 release files

0.1.7

13 release files

0.1.5

13 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page