%global _empty_manifest_terminate_build 0
Name: python-hcrystalball
Version: 0.1.12
Release: 1
Summary: A library that unifies the API for most commonly used libraries and modelling techniques for time-series forecasting in the Python ecosystem.
License: mit
URL: https://hcrystalball.readthedocs.io/
Source0: https://mirrors.nju.edu.cn/pypi/web/packages/c4/d8/d4ac5b406a2ce1d40bc605d3b6d7d86d3571bc721c50ea1eb4fad5d6a68a/hcrystalball-0.1.12.tar.gz
BuildArch: noarch
Requires: python3-numpy
Requires: python3-pandas
Requires: python3-scipy
Requires: python3-workalendar
Requires: python3-scikit-learn
Requires: python3-matplotlib
Requires: python3-pytest
Requires: python3-pytest-cov
%description
[](https://github.com/heidelbergcement/hcrystalball/actions/?query=workflow%3ACI)
[](https://github.com/heidelbergcement/hcrystalball/actions?query=workflow%3ACD)
[](https://hcrystalball.readthedocs.io/en/latest/?badge=latest)
[](https://pypi.org/project/hcrystalball/)
[](https://anaconda.org/conda-forge/hcrystalball)
[](https://codecov.io/gh/heidelbergcement/hcrystalball)
[](https://mybinder.org/v2/gh/heidelbergcement/hcrystalball/master?filepath=docs/examples/)
[](https://raw.githubusercontent.com/heidelbergcement/hcrystalball/master/LICENSE.txt)
[](https://github.com/heidelbergcement/hcrystalball/graphs/contributors)
[](https://github.com/psf/black)
# HCrystal Ball
A library that unifies the API for most commonly
used libraries and modelling techniques for time-series
forecasting in the Python ecosystem.
**HCrystal Ball** consists of two main parts:
* **Wrappers** - which bring different 3rd party
libraries to time series compatible sklearn API
* **Model Selection** - to enable gridsearch over wrappers, general or custom made transformers
and add convenient layer over whole process (access to results, plots, storage, ...)
## Documentation
See examples, tutorials, contribution, API and more on the documentation [site](https://hcrystalball.readthedocs.io/en/latest) try notebooks on [binder](https://mybinder.org/v2/gh/heidelbergcement/hcrystalball/master) or browse example notebooks in [docs/examples](https://github.com/heidelbergcement/hcrystalball/tree/master/docs/examples) directly.
## Core Installation
If you want really minimal installation, you can install from pip or from conda-forge
```bash
pip install hcrystalball
```
```bash
conda install -c conda-forge hcrystalball
```
## Typical Installation
Very often you will want to use more wrappers, than just Sklearn, run examples in jupyterlab, or execute model selection in parallel. Getting such dependencies to play together nicely might be cumbersome, so checking `envrionment.yml` might give you faster start.
```bash
# get dependencies file, e.g. using curl
curl -O https://raw.githubusercontent.com/heidelbergcement/hcrystalball/master/environment.yml
# check comments in environment.yml, keep or remove as requested, than create environment using
conda env create -f environment.yml
# activate the environment
conda activate hcrystalball
# if you want to see progress bar in jupyterlab, execute also
jupyter labextension install @jupyter-widgets/jupyterlab-manager
# install the library from pip
pip install hcrystalball
# or from conda
conda install -c conda-forge hcrystalball
```
## Development Installation:
To have everything in place including docs build or executing tests, execute following code
```bash
git clone https://github.com/heidelbergcement/hcrystalball
cd hcrystalball
conda env create -f environment.yml
conda activate hcrystalball
# ensures interactive progress bar will work in example notebooks
jupyter labextension install @jupyter-widgets/jupyterlab-manager
python setup.py develop
```
## Example Usage
### Wrappers
```python
from hcrystalball.utils import generate_tsdata
from hcrystalball.wrappers import ProphetWrapper
X, y = generate_tsdata(n_dates=365*2)
X_train, y_train, X_test, y_test = X[:-10], y[:-10], X[-10:], y[-10:]
model = ProphetWrapper()
y_pred = model.fit(X_train, y_train).predict(X_test)
y_pred
prophet
2018-12-22 6.066999
2018-12-23 6.050076
2018-12-24 6.105620
2018-12-25 6.141953
2018-12-26 6.150229
2018-12-27 6.163615
2018-12-28 6.147420
2018-12-29 6.048633
2018-12-30 6.031711
2018-12-31 6.087255
```
### Model Selection
```python
import pandas as pd
import matplotlib.pyplot as plt
plt.style.use('seaborn')
plt.rcParams['figure.figsize'] = [12, 6]
from hcrystalball.utils import get_sales_data
from hcrystalball.model_selection import ModelSelector
df = get_sales_data(n_dates=200,
n_assortments=1,
n_states=2,
n_stores=2)
ms = ModelSelector(horizon=10,
frequency="D",
country_code_column="HolidayCode",
)
ms.create_gridsearch(n_splits=2,
sklearn_models=True,
prophet_models=False,
exog_cols=["Open","Promo","SchoolHoliday","Promo2"],
)
ms.select_model(df=df,
target_col_name="Sales",
partition_columns=["Assortment", "State","Store"],
)
ms.plot_results(plot_from="2015-06-01",
partitions=[{"Assortment":"a","State":"NW","Store":335}]
)
```
%package -n python3-hcrystalball
Summary: A library that unifies the API for most commonly used libraries and modelling techniques for time-series forecasting in the Python ecosystem.
Provides: python-hcrystalball
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-hcrystalball
[](https://github.com/heidelbergcement/hcrystalball/actions/?query=workflow%3ACI)
[](https://github.com/heidelbergcement/hcrystalball/actions?query=workflow%3ACD)
[](https://hcrystalball.readthedocs.io/en/latest/?badge=latest)
[](https://pypi.org/project/hcrystalball/)
[](https://anaconda.org/conda-forge/hcrystalball)
[](https://codecov.io/gh/heidelbergcement/hcrystalball)
[](https://mybinder.org/v2/gh/heidelbergcement/hcrystalball/master?filepath=docs/examples/)
[](https://raw.githubusercontent.com/heidelbergcement/hcrystalball/master/LICENSE.txt)
[](https://github.com/heidelbergcement/hcrystalball/graphs/contributors)
[](https://github.com/psf/black)
# HCrystal Ball
A library that unifies the API for most commonly
used libraries and modelling techniques for time-series
forecasting in the Python ecosystem.
**HCrystal Ball** consists of two main parts:
* **Wrappers** - which bring different 3rd party
libraries to time series compatible sklearn API
* **Model Selection** - to enable gridsearch over wrappers, general or custom made transformers
and add convenient layer over whole process (access to results, plots, storage, ...)
## Documentation
See examples, tutorials, contribution, API and more on the documentation [site](https://hcrystalball.readthedocs.io/en/latest) try notebooks on [binder](https://mybinder.org/v2/gh/heidelbergcement/hcrystalball/master) or browse example notebooks in [docs/examples](https://github.com/heidelbergcement/hcrystalball/tree/master/docs/examples) directly.
## Core Installation
If you want really minimal installation, you can install from pip or from conda-forge
```bash
pip install hcrystalball
```
```bash
conda install -c conda-forge hcrystalball
```
## Typical Installation
Very often you will want to use more wrappers, than just Sklearn, run examples in jupyterlab, or execute model selection in parallel. Getting such dependencies to play together nicely might be cumbersome, so checking `envrionment.yml` might give you faster start.
```bash
# get dependencies file, e.g. using curl
curl -O https://raw.githubusercontent.com/heidelbergcement/hcrystalball/master/environment.yml
# check comments in environment.yml, keep or remove as requested, than create environment using
conda env create -f environment.yml
# activate the environment
conda activate hcrystalball
# if you want to see progress bar in jupyterlab, execute also
jupyter labextension install @jupyter-widgets/jupyterlab-manager
# install the library from pip
pip install hcrystalball
# or from conda
conda install -c conda-forge hcrystalball
```
## Development Installation:
To have everything in place including docs build or executing tests, execute following code
```bash
git clone https://github.com/heidelbergcement/hcrystalball
cd hcrystalball
conda env create -f environment.yml
conda activate hcrystalball
# ensures interactive progress bar will work in example notebooks
jupyter labextension install @jupyter-widgets/jupyterlab-manager
python setup.py develop
```
## Example Usage
### Wrappers
```python
from hcrystalball.utils import generate_tsdata
from hcrystalball.wrappers import ProphetWrapper
X, y = generate_tsdata(n_dates=365*2)
X_train, y_train, X_test, y_test = X[:-10], y[:-10], X[-10:], y[-10:]
model = ProphetWrapper()
y_pred = model.fit(X_train, y_train).predict(X_test)
y_pred
prophet
2018-12-22 6.066999
2018-12-23 6.050076
2018-12-24 6.105620
2018-12-25 6.141953
2018-12-26 6.150229
2018-12-27 6.163615
2018-12-28 6.147420
2018-12-29 6.048633
2018-12-30 6.031711
2018-12-31 6.087255
```
### Model Selection
```python
import pandas as pd
import matplotlib.pyplot as plt
plt.style.use('seaborn')
plt.rcParams['figure.figsize'] = [12, 6]
from hcrystalball.utils import get_sales_data
from hcrystalball.model_selection import ModelSelector
df = get_sales_data(n_dates=200,
n_assortments=1,
n_states=2,
n_stores=2)
ms = ModelSelector(horizon=10,
frequency="D",
country_code_column="HolidayCode",
)
ms.create_gridsearch(n_splits=2,
sklearn_models=True,
prophet_models=False,
exog_cols=["Open","Promo","SchoolHoliday","Promo2"],
)
ms.select_model(df=df,
target_col_name="Sales",
partition_columns=["Assortment", "State","Store"],
)
ms.plot_results(plot_from="2015-06-01",
partitions=[{"Assortment":"a","State":"NW","Store":335}]
)
```
%package help
Summary: Development documents and examples for hcrystalball
Provides: python3-hcrystalball-doc
%description help
[](https://github.com/heidelbergcement/hcrystalball/actions/?query=workflow%3ACI)
[](https://github.com/heidelbergcement/hcrystalball/actions?query=workflow%3ACD)
[](https://hcrystalball.readthedocs.io/en/latest/?badge=latest)
[](https://pypi.org/project/hcrystalball/)
[](https://anaconda.org/conda-forge/hcrystalball)
[](https://codecov.io/gh/heidelbergcement/hcrystalball)
[](https://mybinder.org/v2/gh/heidelbergcement/hcrystalball/master?filepath=docs/examples/)
[](https://raw.githubusercontent.com/heidelbergcement/hcrystalball/master/LICENSE.txt)
[](https://github.com/heidelbergcement/hcrystalball/graphs/contributors)
[](https://github.com/psf/black)
# HCrystal Ball
A library that unifies the API for most commonly
used libraries and modelling techniques for time-series
forecasting in the Python ecosystem.
**HCrystal Ball** consists of two main parts:
* **Wrappers** - which bring different 3rd party
libraries to time series compatible sklearn API
* **Model Selection** - to enable gridsearch over wrappers, general or custom made transformers
and add convenient layer over whole process (access to results, plots, storage, ...)
## Documentation
See examples, tutorials, contribution, API and more on the documentation [site](https://hcrystalball.readthedocs.io/en/latest) try notebooks on [binder](https://mybinder.org/v2/gh/heidelbergcement/hcrystalball/master) or browse example notebooks in [docs/examples](https://github.com/heidelbergcement/hcrystalball/tree/master/docs/examples) directly.
## Core Installation
If you want really minimal installation, you can install from pip or from conda-forge
```bash
pip install hcrystalball
```
```bash
conda install -c conda-forge hcrystalball
```
## Typical Installation
Very often you will want to use more wrappers, than just Sklearn, run examples in jupyterlab, or execute model selection in parallel. Getting such dependencies to play together nicely might be cumbersome, so checking `envrionment.yml` might give you faster start.
```bash
# get dependencies file, e.g. using curl
curl -O https://raw.githubusercontent.com/heidelbergcement/hcrystalball/master/environment.yml
# check comments in environment.yml, keep or remove as requested, than create environment using
conda env create -f environment.yml
# activate the environment
conda activate hcrystalball
# if you want to see progress bar in jupyterlab, execute also
jupyter labextension install @jupyter-widgets/jupyterlab-manager
# install the library from pip
pip install hcrystalball
# or from conda
conda install -c conda-forge hcrystalball
```
## Development Installation:
To have everything in place including docs build or executing tests, execute following code
```bash
git clone https://github.com/heidelbergcement/hcrystalball
cd hcrystalball
conda env create -f environment.yml
conda activate hcrystalball
# ensures interactive progress bar will work in example notebooks
jupyter labextension install @jupyter-widgets/jupyterlab-manager
python setup.py develop
```
## Example Usage
### Wrappers
```python
from hcrystalball.utils import generate_tsdata
from hcrystalball.wrappers import ProphetWrapper
X, y = generate_tsdata(n_dates=365*2)
X_train, y_train, X_test, y_test = X[:-10], y[:-10], X[-10:], y[-10:]
model = ProphetWrapper()
y_pred = model.fit(X_train, y_train).predict(X_test)
y_pred
prophet
2018-12-22 6.066999
2018-12-23 6.050076
2018-12-24 6.105620
2018-12-25 6.141953
2018-12-26 6.150229
2018-12-27 6.163615
2018-12-28 6.147420
2018-12-29 6.048633
2018-12-30 6.031711
2018-12-31 6.087255
```
### Model Selection
```python
import pandas as pd
import matplotlib.pyplot as plt
plt.style.use('seaborn')
plt.rcParams['figure.figsize'] = [12, 6]
from hcrystalball.utils import get_sales_data
from hcrystalball.model_selection import ModelSelector
df = get_sales_data(n_dates=200,
n_assortments=1,
n_states=2,
n_stores=2)
ms = ModelSelector(horizon=10,
frequency="D",
country_code_column="HolidayCode",
)
ms.create_gridsearch(n_splits=2,
sklearn_models=True,
prophet_models=False,
exog_cols=["Open","Promo","SchoolHoliday","Promo2"],
)
ms.select_model(df=df,
target_col_name="Sales",
partition_columns=["Assortment", "State","Store"],
)
ms.plot_results(plot_from="2015-06-01",
partitions=[{"Assortment":"a","State":"NW","Store":335}]
)
```
%prep
%autosetup -n hcrystalball-0.1.12
%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-hcrystalball -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Fri May 05 2023 Python_Bot - 0.1.12-1
- Package Spec generated