Skip to main content

Probabilitic random forest regression algorithm

Project description

prfr

Probabilistic random forest regressor: random forest model that accounts for errors in predictors and labels, yields calibrated probabilistic predictions, and corrects for bias.

For a faster and more elaborate calibration routine (highly recommended), a JAX installation is required. You can install the package with the extra jax feature, which will install the necessary dependencies.

Installation

From PyPI, with jax feature:

pip install "prfr[jax]" 

From PyPI, without jax feature:

pip install prfr

From Github (latest), with jax feature:

pip install "prfr[jax] @ git+https://github.com/al-jshen/prfr"

From Github (latest), without jax feature:

pip install "git+https://github.com/al-jshen/prfr"

Example usage

import numpy as np
import prfr

x_obs = np.random.uniform(0., 10., size=10000).reshape(-1, 1)
x_err = np.random.exponential(1., size=10000).reshape(-1, 1)
y_obs = np.random.normal(x_obs, x_err).reshape(-1, 1) * 2. + 1.
y_err = np.ones_like(y_obs)

train, test, valid = prfr.split_arrays(x_obs, y_obs, x_err, y_err, test_size=0.2, valid_size=0.2)

model = prfr.ProbabilisticRandomForestRegressor(n_estimators=250, n_jobs=-1)
model.fit(train[0], train[1], eX=train[2], eY=train[3])
model.fit_bias(valid[0], valid[1], eX=valid[2])

# check whether the calibration routine will run with JAX
print(prfr.has_jax)

model.calibrate(valid[0], valid[1], eX=valid[2])

pred = model.predict(test[0], eX=test[2])
pred_qtls = np.quantile(pred, [0.16, 0.5, 0.84], axis=-1)

print(pred.shape)

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

prfr-0.2.4.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

prfr-0.2.4-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

Details for the file prfr-0.2.4.tar.gz.

File metadata

  • Download URL: prfr-0.2.4.tar.gz
  • Upload date:
  • Size: 14.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.10.4 Darwin/22.2.0

File hashes

Hashes for prfr-0.2.4.tar.gz
Algorithm Hash digest
SHA256 406bdb6c52bafde4c3f02104def34c02254fcd6b56d0577454bb280b6da87c91
MD5 7b0469f4414cb8d806b84ff613e09d85
BLAKE2b-256 a386b60b88aa53afe24575b5b29f47f306cde861d7f6a98ba8bd3807865ac254

See more details on using hashes here.

File details

Details for the file prfr-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: prfr-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 13.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.10.4 Darwin/22.2.0

File hashes

Hashes for prfr-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 31ef629509d63d84fb8a763aab981c64e9e14d4ce49ca093ee7dbb0b064f6923
MD5 2839aff3cb4b50217e98b1a96d56d4c6
BLAKE2b-256 6859580b808ea2cb6db6c81b2bcc06109e31e401bacc1067d2719ea4991dc840

See more details on using hashes here.

Supported by

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