tsknn
TSKNN (Time Series K-Nearest Neighbors) is a Python implementation of the k-nearest neighbors (KNN) algorithm designed specifically for time series forecasting.
It is a pure Python and NumPy reimplementation of the tsfknn package from R—completely rewritten from scratch without relying on C extensions. By leveraging optimized NumPy operations, TSKNN achieves high performance while remaining lightweight and easy to install.
Installation
pip install tsknn
Or clone the repository and install locally:
git clone https://github.com/ricardozago/tsknn.git
cd tsknn
pip install .
Usage example
import numpy as np
from tsknn import tsknn
X = np.random.rand(1000)
model = tsknn(
cf="mean", # also median or weighted
h=24, # forecast horizon
transform="multiplicative", # also additive or None
msas="recursive", # also mimo
lags=[1, 2, 3, 4, 5, 6], # lags to consider as features
k=[5, 7, 9], # number of neighbors to consider
)
model.fit(X)
tsknn_resp = model.predict()
print(tsknn_resp)
Tests
To run the tests and check coverage:
python -m pytest --cov=tsknn --cov-report term-missing
To run all tests, you’ll need R installed, since the results are compared against the original tsfknn package. You’ll also need the rpy2 library to interface between Python and R.
Contributing
Contributions are welcome! Open issues or pull requests.
- Fork the project
- Create your branch (
git checkout -b feature/feature-name) - Commit your changes (
git commit -am 'feat: new feature') - Push to the branch (
git push origin feature/feature-name) - Open a Pull Request
License
This project is licensed under the MIT license. See the LICENSE file for more details.
Metadata
Release files for tsknn 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tsknn-0.1.0.tar.gz | 9.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tsknn-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.4 kB
Release files / tsknn-0.1.0.tar.gz
| Download URL | tsknn-0.1.0.tar.gz |
|---|---|
| Size | 9.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
48bdc2eed3bc7cbc45967b74a5763fcfb20fd166317627a8e290d9560ca7398c
|
|
BLAKE2b-256 checksum How to use checksums |
286bf5ebbc7b3e04fd193de4d3babd941537fa40379797701403e0f16ea5c36f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.8
|
Release files / tsknn-0.1.0-py3-none-any.whl
| Download URL | tsknn-0.1.0-py3-none-any.whl |
|---|---|
| Size | 6.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8b63692dc1ada7912a2add06e3f204564d320e7a4ef89282ea065a622022a52e
|
|
BLAKE2b-256 checksum How to use checksums |
ba97f8ec0d8ea42888586e3bbd9a01784cceb829a903d57da3c230280317067c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.8
|