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
  • 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 docs and in docs/example.rst.

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
  • 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 docs/differences.rst.

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.3.0.tar.gz (87.8 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.3.0-cp313-cp313-win_amd64.whl (86.9 kB view details)

Uploaded CPython 3.13Windows x86-64

omnigbdt-0.3.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (206.2 kB view details)

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

omnigbdt-0.3.0-cp313-cp313-macosx_14_0_arm64.whl (331.2 kB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

omnigbdt-0.3.0-cp312-cp312-win_amd64.whl (86.9 kB view details)

Uploaded CPython 3.12Windows x86-64

omnigbdt-0.3.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (206.2 kB view details)

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

omnigbdt-0.3.0-cp312-cp312-macosx_14_0_arm64.whl (331.2 kB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

omnigbdt-0.3.0-cp311-cp311-win_amd64.whl (86.9 kB view details)

Uploaded CPython 3.11Windows x86-64

omnigbdt-0.3.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (206.2 kB view details)

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

omnigbdt-0.3.0-cp311-cp311-macosx_14_0_arm64.whl (331.2 kB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

omnigbdt-0.3.0-cp310-cp310-win_amd64.whl (86.9 kB view details)

Uploaded CPython 3.10Windows x86-64

omnigbdt-0.3.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (206.2 kB view details)

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

omnigbdt-0.3.0-cp310-cp310-macosx_14_0_arm64.whl (331.2 kB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for omnigbdt-0.3.0.tar.gz
Algorithm Hash digest
SHA256 350087545c658ec6ea7201e963aa74b2fea6009e714e4933107ee71e44ac514e
MD5 d0eaa968611f058ba1e9adf9f8c3215e
BLAKE2b-256 e0feb8ed0646a1981688bd8657a58190e59862846be8a24d213304431afa64b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.3.0.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.3.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: omnigbdt-0.3.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 86.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.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d958e1b71b759d9300e993ddbd01fa47f3a4f1ce590981891af2dd70895e6cf5
MD5 2e77d63859e53a40f4b068c1a1413a1e
BLAKE2b-256 35ea67015058f165f9fd4affa296a04ac9fe5dfdf860ff121ce48dc038a3e520

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.3.0-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.3.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for omnigbdt-0.3.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f64a86a38a19929f42201cc83a48119a955fad94066e41ddbd591dcf32b7621f
MD5 d0731733d824e4c20c9d6b749742c62e
BLAKE2b-256 9c8aa6ce884c2d9594a97ebd71518063558f0c1983013456939f3558ce77f166

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.3.0-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.3.0-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for omnigbdt-0.3.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8e06fcc6be1c010adccc67511c441dd673c6f3344ecd959c8512c17c982a603b
MD5 0c85ee05172ade5338f0d6df47d54c0f
BLAKE2b-256 7f9fe539f1a288546c50fcf1143aca98abb8cb27a796546354f0fab9b1cb5465

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.3.0-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.3.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: omnigbdt-0.3.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 86.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.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8b1bc62d651b12ae1eb80c61ff5c151f387c8a2d9e1016093cf24a93fc48764f
MD5 eda3a46be08a5bc448bd76e1c3060ad6
BLAKE2b-256 763db228de7051513059980c946f65658118cddb3ced837b52a18a18c814d1ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.3.0-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.3.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for omnigbdt-0.3.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bdc56ed77d68784c7e05da84c1906373f2cd63031e37584e9a2cfa41b6ee9f26
MD5 eae5a8fb10fa53e848d489e3ade45165
BLAKE2b-256 3930118c90e895cf116d97845f595f21f875443972722f37eea63705f049a487

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.3.0-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.3.0-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for omnigbdt-0.3.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 f244341483255e0d593d08906ba774f95f221705987011be638c7ef6cee93d65
MD5 bdb00be6d0b1648829666e0619793091
BLAKE2b-256 02d1b12ca1065f06da69eb2f7f59d1666ec6600c37e126afc40431fe799f4fef

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.3.0-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.3.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: omnigbdt-0.3.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 86.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.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 31ed79553178ffc197bb2a741730d484167a0d2801f424e218d3b753a68fb33e
MD5 fd5a8bb943236235945c49cd03277cf5
BLAKE2b-256 6d3dda4c31ecd6c097bdc0427a42a015a78bc019182eb0f779d81b10c97346a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.3.0-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.3.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for omnigbdt-0.3.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 71a5b2dcb09b013c0938cb7f3962f99904935e99ab16c295920d11df65574e2d
MD5 5a631516b3aefaee8e576e19a0da3c08
BLAKE2b-256 757ab3a1615d2385797a4cbe19a52b82c20029faa8743e4783493c23251e1bf5

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.3.0-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.3.0-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for omnigbdt-0.3.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 6b562a0cece9d52b7dc035cf26a568e88f66dde5806df279d543c69fd8787fbc
MD5 f148966a71ce87fb9a0bac22dedb624a
BLAKE2b-256 c2099298c2c70a093d3e5c4afd26629276dc6b57dd85ab16942f3d1b1c9a9f9f

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.3.0-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.3.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: omnigbdt-0.3.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 86.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.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 14717982d921f868bf756cdc9393653bb82148c8359fb09b212c8f615c3de08c
MD5 1679f2dfee34fe73c6db2b0185206c86
BLAKE2b-256 dd95273d374e3694bafa81ba67c073beb6a1b34d3a2d2d3eb2479171f0a4054e

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.3.0-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.3.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for omnigbdt-0.3.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6d620b8286bd694deec10217fb6e49489a8445d76a5f915b917d810cd6da1ab5
MD5 4583ff0ac60d2e697f099cade9542e1f
BLAKE2b-256 224f06973ee58df2d4066626b2bef644df39edd4d9689f731a2ca3d7313eaeb4

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.3.0-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.3.0-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for omnigbdt-0.3.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 539e03b3fab6e4d37fab87f354d1c982ed69056e1b7f43f0916af4040e815738
MD5 ba7ca72d05a032921e72115846dfee3a
BLAKE2b-256 4b2fb2bb0dd72dd0ebe6eb77c14f0e09f9490b71bb8eba52a6c3ae0dd149fce6

See more details on using hashes here.

Provenance

The following attestation bundles were made for omnigbdt-0.3.0-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