Skip to main content

Doubt

Bringing back uncertainty to machine learning.


PyPI Status Documentation License LastCommit Code Coverage Conference

A Python package to include prediction intervals in the predictions of machine learning models, to quantify their uncertainty.

Installation

You can install doubt with pip:

pip install doubt

If you want to be able to use the preprocessed regression datasets as well, you install it with the datasets extra:

pip install doubt[datasets]

Features

  • Bootstrap wrapper for all Scikit-Learn models
    • Can also be used to calculate usual bootstrapped statistics of a dataset
  • Quantile Regression for all generalised linear models
  • Quantile Regression Forests
  • A uniform dataset API, with 24 regression datasets and counting

Quick Start

If you already have a model in Scikit-Learn, then you can simply wrap it in a Boot to enable predicting with prediction intervals:

>>> from sklearn.linear_model import LinearRegression
>>> from doubt import Boot
>>> from doubt.datasets import PowerPlant
>>>
>>> X, y = PowerPlant().split()
>>> clf = Boot(LinearRegression())
>>> clf = clf.fit(X, y)
>>> clf.predict([10, 30, 1000, 50], uncertainty=0.05)
(481.9203102126274, array([473.43314309, 490.0313962 ]))

Alternatively, you can use one of the standalone models with uncertainty outputs. For instance, a QuantileRegressionForest:

>>> from doubt import QuantileRegressionForest as QRF
>>> from doubt.datasets import Concrete
>>> import numpy as np
>>>
>>> X, y = Concrete().split()
>>> clf = QRF(max_leaf_nodes=8)
>>> clf.fit(X, y)
>>> clf.predict(np.ones(8), uncertainty=0.25)
(16.933590347847982, array([ 8.93456428, 26.0664534 ]))

Citation

@inproceedings{mougannielsen2023monitoring,
  title={Monitoring Model Deterioration with Explainable Uncertainty Estimation via Non-parametric Bootstrap},
  author={Mougan, Carlos and Nielsen, Dan Saattrup},
  booktitle={AAAI Conference on Artificial Intelligence},
  year={2023}
}

Download files

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

Source Distribution

doubt-6.0.0.tar.gz (39.6 kB view details)

Uploaded Source

Built Distribution

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

doubt-6.0.0-py3-none-any.whl (66.6 kB view details)

Uploaded Python 3

File details

Details for the file doubt-6.0.0.tar.gz.

File metadata

  • Download URL: doubt-6.0.0.tar.gz
  • Upload date:
  • Size: 39.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.12.2 Darwin/23.2.0

File hashes

Hashes for doubt-6.0.0.tar.gz
Algorithm Hash digest
SHA256 c1a6217b3b6c198261f090a5db31dfe8c85a48b36dd33ca8ba95e478ee4cba20
MD5 5cbee0efacab8eb15ae7c32d08aa9c92
BLAKE2b-256 ab2b4d27d38e7efd46a6f5f591b99c49979ac517d7454f9e84cdaf5086ba17cb

See more details on using hashes here.

File details

Details for the file doubt-6.0.0-py3-none-any.whl.

File metadata

  • Download URL: doubt-6.0.0-py3-none-any.whl
  • Upload date:
  • Size: 66.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.12.2 Darwin/23.2.0

File hashes

Hashes for doubt-6.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0adc0f4344dae4cab9fdf9585f5205b31a79a2543210fcdd2d8c8f427e9cfb09
MD5 e1e91e7fb7a5b0b0c9ddcf937089aaa5
BLAKE2b-256 7482769c9524be70fcf99fbc3270b843a0516d3a33d452e0bf5e5cce4ef36532

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

6.0.0 This release

2 files

5.1.0

2 files

5.0.0

2 files

4.5.2

2 files

4.5.1

2 files

4.5.0

2 files

4.4.1

2 files

4.4.0

2 files

4.3.1

2 files

4.3.0

2 files

4.2.0

2 files

4.1.0

2 files

4.0.0

2 files

3.0.0

2 files

2.3.0

2 files

2.2.1

2 files

2.2.0

2 files

2.1.0

2 files

2.0.2

2 files

2.0.1

2 files

2.0.0

2 files

1.2.0

2 files

1.1.0

2 files

1.0.0

2 files

Supported by

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