From dc759bf0e96178560453ac5b06c04f907a542db0 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Wed, 17 May 2023 05:14:30 +0000 Subject: automatic import of python-pgbm --- .gitignore | 1 + python-pgbm.spec | 236 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 238 insertions(+) create mode 100644 python-pgbm.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..2f958ff 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/pgbm-2.1.1.tar.gz diff --git a/python-pgbm.spec b/python-pgbm.spec new file mode 100644 index 0000000..b1a86a9 --- /dev/null +++ b/python-pgbm.spec @@ -0,0 +1,236 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pgbm +Version: 2.1.1 +Release: 1 +Summary: Probabilistic Gradient Boosting Machines +License: Apache Software License +URL: https://github.com/elephaint/pgbm +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/0f/8e/007bbcb8e0bc4bab75bd6e4bc47f51b35de321e19ab76dbd8b638ac62b8f/pgbm-2.1.1.tar.gz + +Requires: python3-scikit-learn +Requires: python3-ninja +Requires: python3-numba + +%description +# PGBM Airlab Amsterdam # +[![PyPi version](https://img.shields.io/pypi/v/pgbm)](https://pypi.org/project/pgbm/) +[![Python version](https://img.shields.io/pypi/pyversions/pgbm)](https://docs.conda.io/en/latest/miniconda.html) +[![GitHub license](https://img.shields.io/pypi/l/pgbm)](https://github.com/elephaint/pgbm/blob/main/LICENSE) + +_Probabilistic Gradient Boosting Machines_ (PGBM) is a probabilistic gradient boosting framework in Python based on PyTorch/Numba, developed by Airlab in Amsterdam. It provides the following advantages over existing frameworks: +* Probabilistic regression estimates instead of only point estimates. ([example](https://github.com/elephaint/pgbm/blob/main/examples/torch/example01_housing_cpu.py)) +* Auto-differentiation of custom loss functions. ([example](https://github.com/elephaint/pgbm/blob/main/examples/torch/example08_housing_autodiff.py), [example](https://github.com/elephaint/pgbm/blob/main/examples/torch/example10_covidhospitaladmissions.py)) +* Native GPU-acceleration. ([example](https://github.com/elephaint/pgbm/blob/main/examples/torch/example02_housing_gpu.py)) +* Distributed training for CPU and GPU, across multiple nodes. ([examples](https://github.com/elephaint/pgbm/blob/main/examples/torch_dist/)) +* Ability to optimize probabilistic estimates after training for a set of common distributions, without retraining the model. ([example](https://github.com/elephaint/pgbm/blob/main/examples/torch/example07_optimizeddistribution.py)) +* Full integration with scikit-learn through a fork of HistGradientBoostingRegressor ([examples](https://github.com/elephaint/pgbm/tree/main/examples/sklearn)) + +It is aimed at users interested in solving large-scale tabular probabilistic regression problems, such as probabilistic time series forecasting. + +For more details, [read the docs](https://pgbm.readthedocs.io/en/latest/index.html) or [our paper](https://arxiv.org/abs/2106.01682) or check out the [examples](https://github.com/elephaint/pgbm/tree/main/examples). + +Below a simple example to generate 1000 estimates for each of our test points: +``` +from pgbm.sklearn import HistGradientBoostingRegressor +from sklearn.model_selection import train_test_split +from sklearn.datasets import fetch_california_housing +X, y = fetch_california_housing(return_X_y=True) +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.1) +model = HistGradientBoostingRegressor().fit(X_train, y_train) +yhat_test, yhat_test_std = model.predict(X_test, return_std=True) +yhat_dist = model.sample(yhat_test, yhat_test_std, n_estimates=1000) +``` + +See also [this example](https://github.com/elephaint/pgbm/blob/main/examples/sklearn/example14_probregression.py) where we compare PGBM to standard gradient boosting quantile regression methods, demonstrating that we can achieve comparable or better probabilistic performance whilst only training a single model. + +### Installation ### + +See [Installation](https://pgbm.readthedocs.io/en/latest/installation.html) section in our [docs](https://pgbm.readthedocs.io/en/latest/index.html). + +### Support ### +In general, PGBM works similar to existing gradient boosting packages such as LightGBM or xgboost (and it should be possible to more or less use it as a drop-in replacement). + +* Read the docs for an overview of [hyperparameters](https://pgbm.readthedocs.io/en/latest/parameters.html) and a [function reference](https://pgbm.readthedocs.io/en/latest/function_reference.html). +* See the [examples](https://github.com/elephaint/pgbm/tree/main/examples) folder for examples. + +In case further support is required, [open an issue](https://github.com/elephaint/pgbm/issues). + +### Reference ### +[Olivier Sprangers](mailto:o.r.sprangers@uva.nl), Sebastian Schelter, Maarten de Rijke. [Probabilistic Gradient Boosting Machines for Large-Scale Probabilistic Regression](https://arxiv.org/abs/2106.01682). Proceedings of the 27th ACM SIGKDD Conference on Knowledge Discovery and Data Mining ([KDD 21](https://www.kdd.org/kdd2021/)), August 14–18, 2021, Virtual Event, Singapore. + +The experiments from our paper can be replicated by running the scripts in the [experiments](https://github.com/elephaint/pgbm/tree/main/paper/experiments) folder. Datasets are downloaded when needed in the experiments except for higgs and m5, which should be pre-downloaded and saved to the [datasets](https://github.com/elephaint/pgbm/tree/main/paper/datasets) folder (Higgs) and to datasets/m5 (m5). + +### License ### +This project is licensed under the terms of the [Apache 2.0 license](https://github.com/elephaint/pgbm/blob/main/LICENSE). + +### Acknowledgements ### +This project was developed by [Airlab Amsterdam](https://icai.ai/airlab/). + + +%package -n python3-pgbm +Summary: Probabilistic Gradient Boosting Machines +Provides: python-pgbm +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-cffi +BuildRequires: gcc +BuildRequires: gdb +%description -n python3-pgbm +# PGBM Airlab Amsterdam # +[![PyPi version](https://img.shields.io/pypi/v/pgbm)](https://pypi.org/project/pgbm/) +[![Python version](https://img.shields.io/pypi/pyversions/pgbm)](https://docs.conda.io/en/latest/miniconda.html) +[![GitHub license](https://img.shields.io/pypi/l/pgbm)](https://github.com/elephaint/pgbm/blob/main/LICENSE) + +_Probabilistic Gradient Boosting Machines_ (PGBM) is a probabilistic gradient boosting framework in Python based on PyTorch/Numba, developed by Airlab in Amsterdam. It provides the following advantages over existing frameworks: +* Probabilistic regression estimates instead of only point estimates. ([example](https://github.com/elephaint/pgbm/blob/main/examples/torch/example01_housing_cpu.py)) +* Auto-differentiation of custom loss functions. ([example](https://github.com/elephaint/pgbm/blob/main/examples/torch/example08_housing_autodiff.py), [example](https://github.com/elephaint/pgbm/blob/main/examples/torch/example10_covidhospitaladmissions.py)) +* Native GPU-acceleration. ([example](https://github.com/elephaint/pgbm/blob/main/examples/torch/example02_housing_gpu.py)) +* Distributed training for CPU and GPU, across multiple nodes. ([examples](https://github.com/elephaint/pgbm/blob/main/examples/torch_dist/)) +* Ability to optimize probabilistic estimates after training for a set of common distributions, without retraining the model. ([example](https://github.com/elephaint/pgbm/blob/main/examples/torch/example07_optimizeddistribution.py)) +* Full integration with scikit-learn through a fork of HistGradientBoostingRegressor ([examples](https://github.com/elephaint/pgbm/tree/main/examples/sklearn)) + +It is aimed at users interested in solving large-scale tabular probabilistic regression problems, such as probabilistic time series forecasting. + +For more details, [read the docs](https://pgbm.readthedocs.io/en/latest/index.html) or [our paper](https://arxiv.org/abs/2106.01682) or check out the [examples](https://github.com/elephaint/pgbm/tree/main/examples). + +Below a simple example to generate 1000 estimates for each of our test points: +``` +from pgbm.sklearn import HistGradientBoostingRegressor +from sklearn.model_selection import train_test_split +from sklearn.datasets import fetch_california_housing +X, y = fetch_california_housing(return_X_y=True) +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.1) +model = HistGradientBoostingRegressor().fit(X_train, y_train) +yhat_test, yhat_test_std = model.predict(X_test, return_std=True) +yhat_dist = model.sample(yhat_test, yhat_test_std, n_estimates=1000) +``` + +See also [this example](https://github.com/elephaint/pgbm/blob/main/examples/sklearn/example14_probregression.py) where we compare PGBM to standard gradient boosting quantile regression methods, demonstrating that we can achieve comparable or better probabilistic performance whilst only training a single model. + +### Installation ### + +See [Installation](https://pgbm.readthedocs.io/en/latest/installation.html) section in our [docs](https://pgbm.readthedocs.io/en/latest/index.html). + +### Support ### +In general, PGBM works similar to existing gradient boosting packages such as LightGBM or xgboost (and it should be possible to more or less use it as a drop-in replacement). + +* Read the docs for an overview of [hyperparameters](https://pgbm.readthedocs.io/en/latest/parameters.html) and a [function reference](https://pgbm.readthedocs.io/en/latest/function_reference.html). +* See the [examples](https://github.com/elephaint/pgbm/tree/main/examples) folder for examples. + +In case further support is required, [open an issue](https://github.com/elephaint/pgbm/issues). + +### Reference ### +[Olivier Sprangers](mailto:o.r.sprangers@uva.nl), Sebastian Schelter, Maarten de Rijke. [Probabilistic Gradient Boosting Machines for Large-Scale Probabilistic Regression](https://arxiv.org/abs/2106.01682). Proceedings of the 27th ACM SIGKDD Conference on Knowledge Discovery and Data Mining ([KDD 21](https://www.kdd.org/kdd2021/)), August 14–18, 2021, Virtual Event, Singapore. + +The experiments from our paper can be replicated by running the scripts in the [experiments](https://github.com/elephaint/pgbm/tree/main/paper/experiments) folder. Datasets are downloaded when needed in the experiments except for higgs and m5, which should be pre-downloaded and saved to the [datasets](https://github.com/elephaint/pgbm/tree/main/paper/datasets) folder (Higgs) and to datasets/m5 (m5). + +### License ### +This project is licensed under the terms of the [Apache 2.0 license](https://github.com/elephaint/pgbm/blob/main/LICENSE). + +### Acknowledgements ### +This project was developed by [Airlab Amsterdam](https://icai.ai/airlab/). + + +%package help +Summary: Development documents and examples for pgbm +Provides: python3-pgbm-doc +%description help +# PGBM Airlab Amsterdam # +[![PyPi version](https://img.shields.io/pypi/v/pgbm)](https://pypi.org/project/pgbm/) +[![Python version](https://img.shields.io/pypi/pyversions/pgbm)](https://docs.conda.io/en/latest/miniconda.html) +[![GitHub license](https://img.shields.io/pypi/l/pgbm)](https://github.com/elephaint/pgbm/blob/main/LICENSE) + +_Probabilistic Gradient Boosting Machines_ (PGBM) is a probabilistic gradient boosting framework in Python based on PyTorch/Numba, developed by Airlab in Amsterdam. It provides the following advantages over existing frameworks: +* Probabilistic regression estimates instead of only point estimates. ([example](https://github.com/elephaint/pgbm/blob/main/examples/torch/example01_housing_cpu.py)) +* Auto-differentiation of custom loss functions. ([example](https://github.com/elephaint/pgbm/blob/main/examples/torch/example08_housing_autodiff.py), [example](https://github.com/elephaint/pgbm/blob/main/examples/torch/example10_covidhospitaladmissions.py)) +* Native GPU-acceleration. ([example](https://github.com/elephaint/pgbm/blob/main/examples/torch/example02_housing_gpu.py)) +* Distributed training for CPU and GPU, across multiple nodes. ([examples](https://github.com/elephaint/pgbm/blob/main/examples/torch_dist/)) +* Ability to optimize probabilistic estimates after training for a set of common distributions, without retraining the model. ([example](https://github.com/elephaint/pgbm/blob/main/examples/torch/example07_optimizeddistribution.py)) +* Full integration with scikit-learn through a fork of HistGradientBoostingRegressor ([examples](https://github.com/elephaint/pgbm/tree/main/examples/sklearn)) + +It is aimed at users interested in solving large-scale tabular probabilistic regression problems, such as probabilistic time series forecasting. + +For more details, [read the docs](https://pgbm.readthedocs.io/en/latest/index.html) or [our paper](https://arxiv.org/abs/2106.01682) or check out the [examples](https://github.com/elephaint/pgbm/tree/main/examples). + +Below a simple example to generate 1000 estimates for each of our test points: +``` +from pgbm.sklearn import HistGradientBoostingRegressor +from sklearn.model_selection import train_test_split +from sklearn.datasets import fetch_california_housing +X, y = fetch_california_housing(return_X_y=True) +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.1) +model = HistGradientBoostingRegressor().fit(X_train, y_train) +yhat_test, yhat_test_std = model.predict(X_test, return_std=True) +yhat_dist = model.sample(yhat_test, yhat_test_std, n_estimates=1000) +``` + +See also [this example](https://github.com/elephaint/pgbm/blob/main/examples/sklearn/example14_probregression.py) where we compare PGBM to standard gradient boosting quantile regression methods, demonstrating that we can achieve comparable or better probabilistic performance whilst only training a single model. + +### Installation ### + +See [Installation](https://pgbm.readthedocs.io/en/latest/installation.html) section in our [docs](https://pgbm.readthedocs.io/en/latest/index.html). + +### Support ### +In general, PGBM works similar to existing gradient boosting packages such as LightGBM or xgboost (and it should be possible to more or less use it as a drop-in replacement). + +* Read the docs for an overview of [hyperparameters](https://pgbm.readthedocs.io/en/latest/parameters.html) and a [function reference](https://pgbm.readthedocs.io/en/latest/function_reference.html). +* See the [examples](https://github.com/elephaint/pgbm/tree/main/examples) folder for examples. + +In case further support is required, [open an issue](https://github.com/elephaint/pgbm/issues). + +### Reference ### +[Olivier Sprangers](mailto:o.r.sprangers@uva.nl), Sebastian Schelter, Maarten de Rijke. [Probabilistic Gradient Boosting Machines for Large-Scale Probabilistic Regression](https://arxiv.org/abs/2106.01682). Proceedings of the 27th ACM SIGKDD Conference on Knowledge Discovery and Data Mining ([KDD 21](https://www.kdd.org/kdd2021/)), August 14–18, 2021, Virtual Event, Singapore. + +The experiments from our paper can be replicated by running the scripts in the [experiments](https://github.com/elephaint/pgbm/tree/main/paper/experiments) folder. Datasets are downloaded when needed in the experiments except for higgs and m5, which should be pre-downloaded and saved to the [datasets](https://github.com/elephaint/pgbm/tree/main/paper/datasets) folder (Higgs) and to datasets/m5 (m5). + +### License ### +This project is licensed under the terms of the [Apache 2.0 license](https://github.com/elephaint/pgbm/blob/main/LICENSE). + +### Acknowledgements ### +This project was developed by [Airlab Amsterdam](https://icai.ai/airlab/). + + +%prep +%autosetup -n pgbm-2.1.1 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-pgbm -f filelist.lst +%dir %{python3_sitearch}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 17 2023 Python_Bot - 2.1.1-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..29284d2 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +941e8b053e5bef9dab104e352310fd91 pgbm-2.1.1.tar.gz -- cgit v1.2.3