Skip to main content

Gradient boosted decision trees for multiple outputs

Project description

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.

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

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}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

omnigbdt-0.4.1.tar.gz (93.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

omnigbdt-0.4.1-cp313-cp313-win_amd64.whl (87.9 kB view details)

Uploaded CPython 3.13Windows x86-64

omnigbdt-0.4.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (206.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

omnigbdt-0.4.1-cp313-cp313-macosx_14_0_arm64.whl (332.7 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

omnigbdt-0.4.1-cp312-cp312-win_amd64.whl (87.9 kB view details)

Uploaded CPython 3.12Windows x86-64

omnigbdt-0.4.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (206.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

omnigbdt-0.4.1-cp312-cp312-macosx_14_0_arm64.whl (332.7 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

omnigbdt-0.4.1-cp311-cp311-win_amd64.whl (87.9 kB view details)

Uploaded CPython 3.11Windows x86-64

omnigbdt-0.4.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (206.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

omnigbdt-0.4.1-cp311-cp311-macosx_14_0_arm64.whl (332.7 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

omnigbdt-0.4.1-cp310-cp310-win_amd64.whl (87.9 kB view details)

Uploaded CPython 3.10Windows x86-64

omnigbdt-0.4.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (206.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

omnigbdt-0.4.1-cp310-cp310-macosx_14_0_arm64.whl (332.7 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

Details for the file omnigbdt-0.4.1.tar.gz.

File metadata

  • Download URL: omnigbdt-0.4.1.tar.gz
  • Upload date:
  • Size: 93.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for omnigbdt-0.4.1.tar.gz
Algorithm Hash digest
SHA256 e6815d8a72585d9819573cb1373a4c4b1a86e8276b44f2350e1c6926970dcaf6
MD5 750300357aaeda6df99200ed75ea9d70
BLAKE2b-256 d33e0fda60e5d09e6e44c47bd2bba329465fd933650880cc1fc240e6ed6ea27b

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.4.1.tar.gz:

Publisher: wheels.yml on University-of-Aruba/OmniGBDT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnigbdt-0.4.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: omnigbdt-0.4.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 87.9 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for omnigbdt-0.4.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 313b8b52a0c9366f61ae90a310611bc4db87a8ffd3adef82c2234ca2af0581bb
MD5 5c5bb25bb73557713f778c54d527961f
BLAKE2b-256 1d8ccc2d36df227b78f9fa884a7ff55f81302d5cc900b41c3143f5f5a64fb240

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.4.1-cp313-cp313-win_amd64.whl:

Publisher: wheels.yml on University-of-Aruba/OmniGBDT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnigbdt-0.4.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for omnigbdt-0.4.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7a51ebe2f4a0b91b964d0e486b5b4e79a823b83edce4ee312d234ebe3ce84e46
MD5 ed555cc6490636407ee7591b4ed520c6
BLAKE2b-256 1991ed68119bc292e45f7d81bf4474169eecafb7384c9ed4fbd403964ad309f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.4.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on University-of-Aruba/OmniGBDT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnigbdt-0.4.1-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for omnigbdt-0.4.1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 529091dc41aaae0e57a733ad6a1fe8b53c6b2c14a32c660702a1ec21a753a8fa
MD5 8580e706b5af913f70fdb6be039fa7c6
BLAKE2b-256 630a9ad2faaa4768b3ceb9b73415b745628cccff96346f3678997ea86416a511

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.4.1-cp313-cp313-macosx_14_0_arm64.whl:

Publisher: wheels.yml on University-of-Aruba/OmniGBDT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnigbdt-0.4.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: omnigbdt-0.4.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 87.9 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for omnigbdt-0.4.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e61890ecc6a46acb513426747319f762019ae8a2593ef7c7a7404d36838f0dbd
MD5 a5b1a30900d2854ce1c9b02353eb854b
BLAKE2b-256 95b53d703a04c20358400182a75a671432098e3a74dcff0d0f9495cbf0ced4d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.4.1-cp312-cp312-win_amd64.whl:

Publisher: wheels.yml on University-of-Aruba/OmniGBDT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnigbdt-0.4.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for omnigbdt-0.4.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 146a2bd3ece9c63cb5d1b63533f5a4f1602b7bd78c129609cb003e1679828e6a
MD5 5db010b602f9181274a58a741aa9e447
BLAKE2b-256 1884895f5552d7d416c323871b7059696d1d9268c8b96e016d22ad24a7c1f763

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.4.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on University-of-Aruba/OmniGBDT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnigbdt-0.4.1-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for omnigbdt-0.4.1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 a428ae6c006d8caef62ce7209cc59acb54809cb653649e8f9d388682b1a067bd
MD5 46c30dae86a9c55c6e6b35b7c7cfa144
BLAKE2b-256 5583fdd0981394f613b4814321f32716cc5793710b76dfb7bd5d221e02411676

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.4.1-cp312-cp312-macosx_14_0_arm64.whl:

Publisher: wheels.yml on University-of-Aruba/OmniGBDT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnigbdt-0.4.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: omnigbdt-0.4.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 87.9 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for omnigbdt-0.4.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 cee82db3d9ab6fe74ac109bb17cf3e675e0bf0aec0dcfb55c028156f1ce210ca
MD5 a759cbeffb3ed6f4accbd2bd7af1651e
BLAKE2b-256 9a32bf6c7842b3c5342b2be31ef2b5e49720da05bf5702b16e2ed444c4f7e639

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.4.1-cp311-cp311-win_amd64.whl:

Publisher: wheels.yml on University-of-Aruba/OmniGBDT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnigbdt-0.4.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for omnigbdt-0.4.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e5f3d5b9c82dfb2897d8872c244045c967242730c53bab96877615a48f0a6560
MD5 aae4088af79272ea49b64e162debfd74
BLAKE2b-256 a364f34dac70a31e5b6fc5cb3e3e95fcb1593a5df2e2df4588998e1ce727f82e

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.4.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on University-of-Aruba/OmniGBDT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnigbdt-0.4.1-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for omnigbdt-0.4.1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7d2d6e0870334c2d4138165345b0f61cf9dc081efb025bcaa8dce1a6cff8cee0
MD5 3ebee8f667a37c2c7105e67d21e223a4
BLAKE2b-256 3f0c3126e5094ae3d7e4ca9e8ce3bd90633e524f4c74acdd01b57c68432b3dd9

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.4.1-cp311-cp311-macosx_14_0_arm64.whl:

Publisher: wheels.yml on University-of-Aruba/OmniGBDT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnigbdt-0.4.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: omnigbdt-0.4.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 87.9 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for omnigbdt-0.4.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f24a09a9aabe8fc54cd00ff60b1bbb5f02bea939f523465b0c05e703f294f003
MD5 391ded094f1ce8ba425cf47016ba3861
BLAKE2b-256 41d9739ced63df5a0d5773d3970dba1964b7c87b0d6ce399b3f728e89a552715

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.4.1-cp310-cp310-win_amd64.whl:

Publisher: wheels.yml on University-of-Aruba/OmniGBDT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnigbdt-0.4.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for omnigbdt-0.4.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a67ea33c3994b098800cb796d7915697a8de28b026f62a18bee058da98cf61d0
MD5 58819a7e8fad7745c3099b1ed47a0bc7
BLAKE2b-256 e6c008209f2cd7d87fad1b8d1bcfb172c24042bd81f17b36d9d0dddd437d0eef

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.4.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on University-of-Aruba/OmniGBDT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file omnigbdt-0.4.1-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for omnigbdt-0.4.1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d4cc2623c51136149904928801b030089e6da6d70156c17af78c3859d7f43733
MD5 2586915af1e1527cdc72332db891f372
BLAKE2b-256 db29be21326af6b1d23f15109a2f97d9ca602cb91fdf75b9d08342bd2ace305b

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.4.1-cp310-cp310-macosx_14_0_arm64.whl:

Publisher: wheels.yml on University-of-Aruba/OmniGBDT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page