Skip to main content

Toolbox for Time Series analysis and integration with Machine Learning.

Project description

https://www.giotto.ai/static/vector/logo-time.svg

Version Azure-build PyPI download month Codecov PyPI pyversions Slack-join Black

giotto-time

giotto-time is a machine learning based time series forecasting toolbox in Python. It is part of the Giotto collection of open-source projects and aims to provide feature extraction, analysis, causality testing and forecasting models based on scikit-learn API.

License

giotto-time is distributed under the AGPLv3 license. If you need a different distribution license, please contact the L2F team at business@l2f.ch.

Documentation

Getting started

Get started with giotto-time by following the installation steps below. Simple tutorials and real-world use cases can be found in example folder as notebooks.

Installation

User installation

Run this command in your favourite python environment

pip install giotto-time

Developer installation

Get the latest state of the source code with the command

git clone https://github.com/giotto-ai/giotto-time.git
cd giotto-time
pip install -e ".[tests, doc]"

Example

from gtime import *
from gtime.feature_extraction import *
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression

# Create random DataFrame with DatetimeIndex
X_dt = pd.DataFrame(np.random.randint(4, size=(20)),
                    index=pd.date_range("2019-12-20", "2020-01-08"),
                    columns=['time_series'])

# Convert the DatetimeIndex to PeriodIndex and create y matrix
X = preprocessing.TimeSeriesPreparation().transform(X_dt)
y = model_selection.horizon_shift(X, horizon=2)

# Create some features
cal = feature_generation.Calendar(region="europe", country="Switzerland", kernel=np.array([1, 2]))
X_f = compose.FeatureCreation(
    [('s_2', Shift(2), ['time_series']),
     ('ma_3', MovingAverage(window_size=3), ['time_series']),
     ('cal', cal, ['time_series'])]).fit_transform(X)

# Train/test split
X_train, y_train, X_test, y_test = model_selection.FeatureSplitter().transform(X_f, y)

# Try sklearn's MultiOutputRegressor as time-series forecasting model
gar = forecasting.GAR(LinearRegression())
gar.fit(X_train, y_train).predict(X_test)

Changelog

See the RELEASE.rst file for a history of notable changes to giotto-time.

Contributing

We welcome new contributors of all experience levels. The Giotto community goals are to be helpful, welcoming, and effective. To learn more about making a contribution to giotto-time, please see the CONTRIBUTING.rst file.

Community

Giotto Slack workspace: https://slack.giotto.ai/

Project details


Download files

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

Files for giotto-time, version 0.2.1
Filename, size File type Python version Upload date Hashes
Filename, size giotto_time-0.2.1-py3-none-any.whl (83.5 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size giotto-time-0.2.1.tar.gz (62.0 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page