knowit
A codebase to build and interpret ANNs performing time series modeling.
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.8%) to scientific vocabulary
Repository
A codebase to build and interpret ANNs performing time series modeling.
Basic Info
Statistics
- Stars: 9
- Watchers: 3
- Forks: 0
- Open Issues: 23
- Releases: 0
Metadata Files
README.md
Knowledge discovery in time series data

KnowIt (Knowledge discovery In Time series data) is an extendable toolkit to build and interpret deep time series models. It is developed in Python and uses PyTorch Lightning for model building and Captum for model interpreting.
Installation
- Clone the KnowIt directory locally
- Create a conda environment with the provided
KnowIt/environment.ymlfile - Installation package TBD
Usage overview
```python
Import the KnowIt module
from knowit import KnowIt
Instantiate a KnowIt object linked to an output directory
KI = KnowIt(customexpdir='myoutputpath')
Define your dataset
dataargs = {'name': 'synth2', 'task': 'regression', 'incomponents': ['x1', 'x2', 'x3', 'x4'], 'outcomponents': ['x5'], 'inchunk': [-32, 0], 'outchunk': [0, 0], 'splitportions': [0.6, 0.2, 0.2], 'batchsize': 64}
Define your architecture
arch_args = {'task': 'regression', 'name': 'MLP'}
Define your trainer
trainerargs = {'lossfn': 'mseloss', 'optim': 'Adam', 'maxepochs': 10, 'learning_rate': 0.01, 'task': 'regression'}
Train your model
KI.trainmodel(modelname='mynewmodelname', kwargs={'data': dataargs, 'arch': archargs, 'trainer': trainerargs})
Generate model predictions
KI.generatepredictions(modelname='mynewmodelname', kwargs={'predictor': {'predictionset': 'valid'}})
Interpret model predictions
KI.interpretmodel(modelname='mynewmodelname', kwargs={'interpreter': {'interpretationmethod': 'DeepLift', 'interpretation_set': 'valid', 'selection': 'random', 'size': 100}}) ```
Current Features
- Flexible problem class definition allows facilitating various time series modeling tasks, including: uni- and multivariate, single- and multistep, time series regression, classification, forecasting, and detection.
- A growing list of default deep time series architectures. Currently includes: MLP, CNN, TCN, and LSTM.
- Convenient entry points to import custom architectures (PyTorch based) and custom dataset (Pandas based).
- Automated data management (storing, splitting, scaling, sampling, loading, padding etc.) of complex time series data.
- Convenient feature attribution extraction and storage.
- Hyperparameter tuning through Pytorch Lightning and Weights and Biases API.
- Extendable design for additional future training and interpretability paradigms.
Current Limitations
- Data is assumed to be equidistantly sampled and time-indexed time series data. Gaps are removed during preprocessing to construct contiguous blocks of data for model training.
- Data is stored on and loaded from disk in contiguous slices. These slices have to fit into memory.
Coming soon
- Adding Transformer-based models to default architectures
- Package installation options
- Testbench for synthetic data experimentation
- Additional feature attribution visualizations
We are open to any suggestions.
Citation
If you make use of KnowIt, we kindly request that you cite it with the provided citation file.
Acknowledgements
This project is made possible due to funding and support from: - MUST Deep Learning - North-West University (NWU), South Africa - National Institute for Theoretical & Computational Sciences (NITheCS), South Africa - Centre for Artificial Intelligence Research (CAIR), South Africa - National Research Foundation (NRF), South Africa
Contributors: - Marthinus Wilhelmus Theunissen (tiantheunissen@gmail.com) - Randle Rabe (randlerabe@gmail.com) - Harmen Potgieter (potgieterharmen@gmail.com)
Owner
- Name: MUST
- Login: MUST-Deep-Learning
- Kind: user
- Website: https://engineering.nwu.ac.za/must
- Repositories: 1
- Profile: https://github.com/MUST-Deep-Learning
Previous account https://github.com/NWU-MuST
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use KnowIt in your work, we kindly request that your cite it as below." authors: - family-names: "Theunissen" given-names: "Marthinus Wilhelmus" scholar: "https://scholar.google.com/citations?user=p3bOWQEAAAAJ&hl=en" - family-names: "Rabe" given-names: "Randle" scholar: "https://scholar.google.com/citations?user=BgW4AvsAAAAJ&hl=en&oi=ao" - family-names: "Davel" given-names: "Marelie" scholar: "https://scholar.google.com/citations?user=Xz-fi1cAAAAJ&hl=en" title: "KnowIt: Deep Time Series Modeling and Interpretation" version: 1.0.0 doi: "https://doi.org/10.48550/arXiv.2507.06009" date-released: 2025-07-09 url: "https://github.com/MUST-Deep-Learning/KnowIt"
GitHub Events
Total
- Create event: 4
- Issues event: 12
- Watch event: 4
- Delete event: 3
- Issue comment event: 24
- Public event: 1
- Push event: 69
- Pull request review comment event: 16
- Pull request review event: 18
- Pull request event: 31
Last Year
- Create event: 4
- Issues event: 12
- Watch event: 4
- Delete event: 3
- Issue comment event: 24
- Public event: 1
- Push event: 69
- Pull request review comment event: 16
- Pull request review event: 18
- Pull request event: 31
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 10
- Total pull requests: 17
- Average time to close issues: 9 months
- Average time to close pull requests: 2 days
- Total issue authors: 4
- Total pull request authors: 4
- Average comments per issue: 1.2
- Average comments per pull request: 0.18
- Merged pull requests: 10
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 8
- Pull requests: 17
- Average time to close issues: 5 months
- Average time to close pull requests: 2 days
- Issue authors: 4
- Pull request authors: 4
- Average comments per issue: 0.88
- Average comments per pull request: 0.18
- Merged pull requests: 10
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- tiantheunissen (5)
- MUST-Deep-Learning (3)
- Null-Quark (1)
- Kgopolang (1)
Pull Request Authors
- tiantheunissen (9)
- MUST-Deep-Learning (3)
- potgieterharmen (3)
- Kgopolang (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v4 composite
- actions/setup-python v5 composite
- peaceiris/actions-gh-pages v4 composite
- myst_parser *
- pydata-sphinx-theme *
- sphinx *
- sphinx-autoapi *
- accessible-pygments ==0.0.4
- beautifulsoup4 ==4.12.3
- cloudpickle ==2.0.0
- configspace ==0.5.0
- cython ==0.29.28
- dask ==2022.5.0
- distributed ==2022.5.0
- emcee ==3.1.1
- fsspec ==2022.3.0
- heapdict ==1.0.1
- locket ==1.0.0
- markdown-it-py ==3.0.0
- mdit-py-plugins ==0.4.1
- mdurl ==0.1.2
- msgpack ==1.0.3
- myst-parser ==3.0.1
- partd ==1.2.0
- pyarrow ==17.0.0
- pydata-sphinx-theme ==0.14.4
- pynisher ==0.6.4
- pyrfr ==0.8.2
- smac ==1.3.1
- sortedcontainers ==2.4.0
- soupsieve ==2.5
- sphinx ==7.1.2
- sphinx-autoapi ==3.1.1
- tblib ==1.7.0
- toolz ==0.11.2
- torchmetrics ==1.5.2
- zict ==2.2.0