Deep learning for time series data
The goal of mcfly is to ease the use of deep learning technology for time series classification. The advantage of deep learning is that it can handle raw data directly, without the need to compute signal features. Deep learning does not require expert domain knowledge about the data, and has been shown to be competitive with conventional machine learning techniques. As an example, you can apply mcfly on accelerometer data for activity classification, as shown in the tutorial.
If you use mcfly in your research, please cite the following software paper:
D. van Kuppevelt, C. Meijer, F. Huber, A. van der Ploeg, S. Georgievska, V.T. van Hees. Mcfly: Automated deep learning on time series. SoftwareX, Volume 12, 2020. doi: 10.1016/j.softx.2020.100548
- Python 3.6, 3.7 or 3.8
- Tensorflow 2.0, if pip errors that it can't find it for your python/pip version
Installing all dependencies in separate conda environment:
conda env create -f environment.yml # activate this new environment source activate mcfly
To install the package, run in the project directory:
pip install .
Installing on Windows
When installing on Windows, there are a few things to take into consideration. The preferred (in other words: easiest) way to install Keras and mcfly is as follows:
- Use Anaconda
- Install numpy and scipy through the conda package manager (and not with pip)
- To install mcfly, run
pip install mcflyin the cmd prompt.
- Loading and saving models can give problems on Windows, see https://github.com/NLeSC/mcfly-tutorial/issues/17
We build a tool to visualize the configuration and performance of the models. The tool can be found on http://nlesc.github.io/mcfly/. To run the model visualization on your own computer, cd to the
html directory and start up a python web server:
python -m http.server 8888 &
http://localhost:8888/ in your browser to open the visualization. For a more elaborate description of the visualization see user manual.
You are welcome to contribute to the code via pull requests. Please have a look at the NLeSC guide for guidelines about software development.
We use numpy-style docstrings for code documentation.
Necessary steps for making a new release
- Check citation.cff using general DOI for all version (option: create file via 'cffinit')
- Create .zenodo.json file from CITATION.cff (using cffconvert)
cffconvert --ignore-suspect-keys --outputformat zenodo --outfile .zenodo.json
- Set new version number in mcfly/_version.py
- Edit Changelog (based on commits in https://github.com/NLeSC/mcfly/compare/v1.0.1...master)
- Create Github release
- Upload to pypi:
python setup.py sdist bdist_wheel
python -m twine upload --repository-url https://upload.pypi.org/legacy/ dist/*
python -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*to test first)
- Check doi on zenodo
- If the visualization has changed, deploy it to github pages:
git subtree push --prefix html origin gh-pages
Source code and data of mcfly are licensed under the Apache License, version 2.0.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.