# Time Split <!-- omit in toc -->
Time-based k-fold validation splits for heterogeneous data.
-----------------
[![PyPI - Version](https://img.shields.io/pypi/v/time-split.svg)](https://pypi.python.org/pypi/time-split)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/time-split.svg)](https://pypi.python.org/pypi/time-split)
[![Tests](https://github.com/rsundqvist/time-split/workflows/tests/badge.svg)](https://github.com/rsundqvist/time-split/actions?workflow=tests)
[![Codecov](https://codecov.io/gh/rsundqvist/time-split/branch/master/graph/badge.svg)](https://codecov.io/gh/rsundqvist/time-split)
[![Read the Docs](https://readthedocs.org/projects/time-split/badge/)](https://time-split.readthedocs.io/)
[![PyPI - License](https://img.shields.io/pypi/l/time-split.svg)](https://pypi.python.org/pypi/time-split)
[![Docker Image Size (tag)](https://img.shields.io/docker/image-size/rsundqvist/time-split/latest?logo=docker&label=time-split)](https://hub.docker.com/r/rsundqvist/time-split/)
<div align="center">
<img alt="Plotted folds on a two-by-two grid."
title="Examples" height="300" width="1200"
src="https://raw.githubusercontent.com/rsundqvist/time-split/master/docs/2x2-examples.jpg"><br>
</div>
Folds plotted on a two-by-two grid. See the
[examples](https://time-split.readthedocs.io/en/stable/auto_examples/index.html) page for more.
## What is it?
A library for creating time-based cross-validation splits of _heterogeneous_ data, such as raw transaction data with
strong non-stationary characteristics.
## Highlighted Features
- [Splitting schedules](https://time-split.readthedocs.io/en/stable/guide/schedules.html) based on a fixed interval,
a CRON-expression, or a pre-defined list.
- [Data selection](https://time-split.readthedocs.io/en/stable/guide/spans.html) based on a timedelta, or the splitting
schedule itself.
- Automatically extract and [normalize](https://time-split.readthedocs.io/en/stable/guide/expand_limits.html) data limits for
supported data types.
- [Plotting function](https://time-split.readthedocs.io/en/stable/generated/time_split.html#time_split.plot) for
visualization of folds. Display fold sizes (hour/row count), or
[use custom text](https://time-split.readthedocs.io/en/stable/auto_examples/plotting_with_metrics.html).
- [Integrations](https://time-split.readthedocs.io/en/stable/generated/time_split.integration.html) for popular
libraries such as `pandas`, `polars` and `scikit-learn`.
- Convenient [web application](#experimenting-with-parameters) for exploring folds with different parameters.
## Experimenting with parameters
The **Time Fold Explorer** application
(available [here](https://time-split.streamlit.app/?data=1554942900-1557610200&schedule=0+0+%2A+%2A+MON%2CFRI&n_splits=2&step=2&show_removed=True))
is designed to help evaluate the effects of different
[parameters](https://time-split.readthedocs.io/en/stable/#parameter-overview).
To start it locally using
[![Docker Image Size (tag)](https://img.shields.io/docker/image-size/rsundqvist/time-split/latest?logo=docker&label=time-split)](https://hub.docker.com/r/rsundqvist/time-split/)
Docker, run
```sh
docker run -p 8501:8501 rsundqvist/time-split
```
in the terminal. You may use
[`create_explorer_link()`](https://time-split.readthedocs.io/en/stable/generated/time_split.support.html#time_split.support.create_explorer_link)
to build application URLs with preselected splitting parameters.
## Installation
The package is published through the [Python Package Index (PyPI)]. Source code
is available on GitHub: https://github.com/rsundqvist/time-split
```sh
pip install -U time-split
```
This is the preferred method to install ``time-split``, as it will always install the
most recent stable release.
If you don't have [pip] installed, this [Python installation guide] can guide
you through the process.
## License
[MIT](LICENSE.md)
## Documentation
Hosted on Read the Docs: https://time-split.readthedocs.io
## Contributing
All contributions, bug reports, bug fixes, documentation improvements, enhancements, and ideas are welcome. To get
started, see the [Contributing Guide](CONTRIBUTING.md) and [Code of Conduct](CODE_OF_CONDUCT.md).
[Python Package Index (PyPI)]: https://pypi.org/project/time-split
[pip]: https://pip.pypa.io
[Python installation guide]: http://docs.python-guide.org/en/stable/starting/installation/
Raw data
{
"_id": null,
"home_page": "https://github.com/rsundqvist/time-split",
"name": "time-split",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": null,
"author": "Richard Sundqvist",
"author_email": "richard.sundqvist@live.se",
"download_url": "https://files.pythonhosted.org/packages/64/66/c0c86d89a70b07a5a398b57c366d7697894592749b279dbd43d59251a632/time_split-0.6.0.tar.gz",
"platform": null,
"description": "# Time Split <!-- omit in toc -->\nTime-based k-fold validation splits for heterogeneous data.\n\n-----------------\n[![PyPI - Version](https://img.shields.io/pypi/v/time-split.svg)](https://pypi.python.org/pypi/time-split)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/time-split.svg)](https://pypi.python.org/pypi/time-split)\n[![Tests](https://github.com/rsundqvist/time-split/workflows/tests/badge.svg)](https://github.com/rsundqvist/time-split/actions?workflow=tests)\n[![Codecov](https://codecov.io/gh/rsundqvist/time-split/branch/master/graph/badge.svg)](https://codecov.io/gh/rsundqvist/time-split)\n[![Read the Docs](https://readthedocs.org/projects/time-split/badge/)](https://time-split.readthedocs.io/)\n[![PyPI - License](https://img.shields.io/pypi/l/time-split.svg)](https://pypi.python.org/pypi/time-split)\n[![Docker Image Size (tag)](https://img.shields.io/docker/image-size/rsundqvist/time-split/latest?logo=docker&label=time-split)](https://hub.docker.com/r/rsundqvist/time-split/)\n\n<div align=\"center\">\n <img alt=\"Plotted folds on a two-by-two grid.\" \n title=\"Examples\" height=\"300\" width=\"1200\" \n src=\"https://raw.githubusercontent.com/rsundqvist/time-split/master/docs/2x2-examples.jpg\"><br>\n</div>\n\nFolds plotted on a two-by-two grid. See the\n[examples](https://time-split.readthedocs.io/en/stable/auto_examples/index.html) page for more.\n\n## What is it?\nA library for creating time-based cross-validation splits of _heterogeneous_ data, such as raw transaction data with \nstrong non-stationary characteristics.\n\n## Highlighted Features\n- [Splitting schedules](https://time-split.readthedocs.io/en/stable/guide/schedules.html) based on a fixed interval, \n a CRON-expression, or a pre-defined list.\n- [Data selection](https://time-split.readthedocs.io/en/stable/guide/spans.html) based on a timedelta, or the splitting \n schedule itself.\n- Automatically extract and [normalize](https://time-split.readthedocs.io/en/stable/guide/expand_limits.html) data limits for \n supported data types.\n- [Plotting function](https://time-split.readthedocs.io/en/stable/generated/time_split.html#time_split.plot) for\n visualization of folds. Display fold sizes (hour/row count), or \n [use custom text](https://time-split.readthedocs.io/en/stable/auto_examples/plotting_with_metrics.html).\n- [Integrations](https://time-split.readthedocs.io/en/stable/generated/time_split.integration.html) for popular \n libraries such as `pandas`, `polars` and `scikit-learn`.\n- Convenient [web application](#experimenting-with-parameters) for exploring folds with different parameters.\n\n## Experimenting with parameters\nThe **Time Fold Explorer** application\n(available [here](https://time-split.streamlit.app/?data=1554942900-1557610200&schedule=0+0+%2A+%2A+MON%2CFRI&n_splits=2&step=2&show_removed=True))\nis designed to help evaluate the effects of different\n[parameters](https://time-split.readthedocs.io/en/stable/#parameter-overview).\nTo start it locally using\n[![Docker Image Size (tag)](https://img.shields.io/docker/image-size/rsundqvist/time-split/latest?logo=docker&label=time-split)](https://hub.docker.com/r/rsundqvist/time-split/)\nDocker, run\n```sh\ndocker run -p 8501:8501 rsundqvist/time-split\n```\nin the terminal. You may use\n[`create_explorer_link()`](https://time-split.readthedocs.io/en/stable/generated/time_split.support.html#time_split.support.create_explorer_link)\nto build application URLs with preselected splitting parameters.\n\n## Installation\nThe package is published through the [Python Package Index (PyPI)]. Source code\nis available on GitHub: https://github.com/rsundqvist/time-split\n\n```sh\npip install -U time-split\n```\n\nThis is the preferred method to install ``time-split``, as it will always install the\nmost recent stable release.\n\nIf you don't have [pip] installed, this [Python installation guide] can guide\nyou through the process.\n\n## License\n[MIT](LICENSE.md)\n\n## Documentation\nHosted on Read the Docs: https://time-split.readthedocs.io\n\n## Contributing\n\nAll contributions, bug reports, bug fixes, documentation improvements, enhancements, and ideas are welcome. To get \nstarted, see the [Contributing Guide](CONTRIBUTING.md) and [Code of Conduct](CODE_OF_CONDUCT.md).\n\n[Python Package Index (PyPI)]: https://pypi.org/project/time-split\n[pip]: https://pip.pypa.io\n[Python installation guide]: http://docs.python-guide.org/en/stable/starting/installation/\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Time-based k-fold validation splits for heterogeneous data.",
"version": "0.6.0",
"project_urls": {
"Bug Tracker": "https://github.com/rsundqvist/time-split/issues",
"Changelog": "https://github.com/rsundqvist/time-split/blob/master/CHANGELOG.md",
"Documentation": "https://time-split.readthedocs.io",
"Homepage": "https://github.com/rsundqvist/time-split",
"Repository": "https://github.com/rsundqvist/time-split"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "4d341ffd0485df2f13ddb3bbcdbaaf2bf672f69111e13fce9fb079e6ef43d73a",
"md5": "1555e0f7c14242d30c75868c17f75643",
"sha256": "0e1d3c7d3a73df983e29ffb6cfb811bb2c44fabe9026382bad2598bdf2b72bbe"
},
"downloads": -1,
"filename": "time_split-0.6.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1555e0f7c14242d30c75868c17f75643",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 41750,
"upload_time": "2024-08-31T18:11:53",
"upload_time_iso_8601": "2024-08-31T18:11:53.219744Z",
"url": "https://files.pythonhosted.org/packages/4d/34/1ffd0485df2f13ddb3bbcdbaaf2bf672f69111e13fce9fb079e6ef43d73a/time_split-0.6.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6466c0c86d89a70b07a5a398b57c366d7697894592749b279dbd43d59251a632",
"md5": "ec1d2a5012fbf7ceae51c9d8ed7aa67f",
"sha256": "663dee1df20968e16105ec0c3352d1a4ee90ac278f1e109a5a13c83897005490"
},
"downloads": -1,
"filename": "time_split-0.6.0.tar.gz",
"has_sig": false,
"md5_digest": "ec1d2a5012fbf7ceae51c9d8ed7aa67f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 32411,
"upload_time": "2024-08-31T18:11:54",
"upload_time_iso_8601": "2024-08-31T18:11:54.525650Z",
"url": "https://files.pythonhosted.org/packages/64/66/c0c86d89a70b07a5a398b57c366d7697894592749b279dbd43d59251a632/time_split-0.6.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-31 18:11:54",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rsundqvist",
"github_project": "time-split",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "time-split"
}