Skip to main content

Toolbox for Time Series analysis and integration with Machine Learning.

Project description

Deploy to gh-pages Upload Python Package CI PyPI version Slack-join

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)

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.

Links

Community

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

Contacts

maintainers@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.

Source Distribution

giotto-time-0.2.2.tar.gz (113.1 kB view hashes)

Uploaded Source

Built Distribution

giotto_time-0.2.2-py3-none-any.whl (155.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page