Project description
utilsforecast
Install
PyPI
pip install utilsforecast
Conda
conda install -c conda-forge utilsforecast
How to use
Generate synthetic data
from utilsforecast.data import generate_series
series = generate_series(3, with_trend=True, static_as_categorical=False)
series
|
unique_id |
ds |
y |
0 |
0 |
2000-01-01 |
0.422133 |
1 |
0 |
2000-01-02 |
1.501407 |
2 |
0 |
2000-01-03 |
2.568495 |
3 |
0 |
2000-01-04 |
3.529085 |
4 |
0 |
2000-01-05 |
4.481929 |
... |
... |
... |
... |
481 |
2 |
2000-06-11 |
163.914625 |
482 |
2 |
2000-06-12 |
166.018479 |
483 |
2 |
2000-06-13 |
160.839176 |
484 |
2 |
2000-06-14 |
162.679603 |
485 |
2 |
2000-06-15 |
165.089288 |
486 rows × 3 columns
Plotting
from utilsforecast.plotting import plot_series
fig = plot_series(series, plot_random=False, max_insample_length=50, engine='matplotlib')
fig.savefig('imgs/index.png', bbox_inches='tight')

Preprocessing
from utilsforecast.preprocessing import fill_gaps
serie = series[series['unique_id'].eq(0)].tail(10)
# drop some points
with_gaps = serie.sample(frac=0.5, random_state=0).sort_values('ds')
with_gaps
|
unique_id |
ds |
y |
213 |
0 |
2000-08-01 |
18.543147 |
214 |
0 |
2000-08-02 |
19.941764 |
216 |
0 |
2000-08-04 |
21.968733 |
220 |
0 |
2000-08-08 |
19.091509 |
221 |
0 |
2000-08-09 |
20.220739 |
fill_gaps(with_gaps, freq='D')
|
unique_id |
ds |
y |
0 |
0 |
2000-08-01 |
18.543147 |
1 |
0 |
2000-08-02 |
19.941764 |
2 |
0 |
2000-08-03 |
NaN |
3 |
0 |
2000-08-04 |
21.968733 |
4 |
0 |
2000-08-05 |
NaN |
5 |
0 |
2000-08-06 |
NaN |
6 |
0 |
2000-08-07 |
NaN |
7 |
0 |
2000-08-08 |
19.091509 |
8 |
0 |
2000-08-09 |
20.220739 |
Evaluating
from functools import partial
import numpy as np
from utilsforecast.evaluation import evaluate
from utilsforecast.losses import mape, mase
valid = series.groupby('unique_id').tail(7).copy()
train = series.drop(valid.index)
rng = np.random.RandomState(0)
valid['seas_naive'] = train.groupby('unique_id')['y'].tail(7).values
valid['rand_model'] = valid['y'] * rng.rand(valid['y'].shape[0])
daily_mase = partial(mase, seasonality=7)
evaluate(valid, metrics=[mape, daily_mase], train_df=train)
|
unique_id |
metric |
seas_naive |
rand_model |
0 |
0 |
mape |
0.024139 |
0.440173 |
1 |
1 |
mape |
0.054259 |
0.278123 |
2 |
2 |
mape |
0.042642 |
0.480316 |
3 |
0 |
mase |
0.907149 |
16.418014 |
4 |
1 |
mase |
0.991635 |
6.404254 |
5 |
2 |
mase |
1.013596 |
11.365040 |
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file utilsforecast-0.2.2.tar.gz
.
File metadata
-
Download URL: utilsforecast-0.2.2.tar.gz
- Upload date:
-
Size: 39.1 kB
- Tags: Source
-
Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Hashes for utilsforecast-0.2.2.tar.gz
Algorithm |
Hash digest |
|
SHA256 |
01c4401745cb2740015615cb336f7f5d210549cd0022b4d73ef5bb64599954cb
|
|
MD5 |
954649c52be391410b9ac86849f6e509
|
|
BLAKE2b-256 |
048ac6d9387b1568f9e8a9ff8d57ca97db2b9f3a9c2d4e0eedcdf6a972d43ba2
|
|
See more details on using hashes here.
File details
Details for the file utilsforecast-0.2.2-py3-none-any.whl
.
File metadata
-
Download URL: utilsforecast-0.2.2-py3-none-any.whl
- Upload date:
-
Size: 39.8 kB
- Tags: Python 3
-
Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Hashes for utilsforecast-0.2.2-py3-none-any.whl
Algorithm |
Hash digest |
|
SHA256 |
5bf5356fc6219222ef7b524c3f3ee82006c31fc1f780f39bcc5f44205d8d457b
|
|
MD5 |
11fcc5cfcae81278513ff63b5892c296
|
|
BLAKE2b-256 |
a984b8a43c507fd20e0819acdc5fcbd966764ddff9f47c3730071d0ab61919fd
|
|
See more details on using hashes here.