Metadata-Version: 2.1
Name: forecat
Version: 0.0.3
Summary: Keras based Forescast model builder
Home-page: https://github.com/alquimodelia/forecat
License: LICENSE
Keywords: python,machine learning,forecast,model builder
Author: João Santos
Author-email: jotaflame@gmail.com
Requires-Python: >=3.9,<4.0
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Provides-Extra: jax
Provides-Extra: tensorflow
Provides-Extra: torch
Requires-Dist: jax ; extra == "jax"
Requires-Dist: keras-core
Requires-Dist: numpy
Requires-Dist: pandas
Requires-Dist: pytorch ; extra == "torch"
Requires-Dist: tensorflow ; extra == "tensorflow"
Project-URL: Bug Tracker, https://github.com/alquimodelia/forecat/issues
Project-URL: Documentation, https://alquimodelia.github.io/forecat/
Project-URL: Repository, https://github.com/alquimodelia/forecat
Project-URL: Source Code, https://github.com/alquimodelia/forecat
Description-Content-Type: text/markdown

# Forecat

Forecat is a Python package that provides a Keras-based forecast model builder.

[![Python](https://img.shields.io/badge/python-3.6%20%7C%203.7%20%7C%203.8%20%7C%203.9-blue)](https://www.python.org/)
[![Keras](https://img.shields.io/badge/keras-2.4.3-blue)](https://keras.io/)

It provides the arquitectures for CNN, LSTM, and Encoder Decoder, and even from imagery UNET.
Any suggestions and tips are welcome.
Use this to fastly have your forecast models ready to use!


## Usage

To use Forecat, follow these steps:

```bash
    pip install forecat
```

Since Forecat is based on keras-core you can choose which backend to use, otherwise it will default to tensorflow.
To change backend change the ```KERAS-BACKEND``` enviromental variable. Follow [this](https://keras.io/keras_core/#configuring-your-backend).

To get an arquiteture you only need to have a simple configuration and call the module:

```python
import forecat

# The input arguments
input_args = {
    "X_timeseries": 168,
    "Y_timeseries": 24,
    "n_features_train": 18,
    "n_features_predict": 1,
}
# This is make a model with shapes:
    # input_shape = (N, 168, 18)
    # output_shape = (N, 24, 1)

forearch = forecat.CNNArch(**input_args)

# Now for Vanilla and Stacked CNN:
architecture_args = {}
VanillaCNN = forearch.architecture(**architecture_args)

architecture_args = {"block_repetition": 2}
StackedCNN = forearch.architecture(**architecture_args)

# Keras Models ready to use:
VanillaCNN.summary()
StackedCNN.summary()


```

## [Contribution](CONTRIBUTING.md)

Contributions to Forecat are welcome! If you find any issues or have suggestions for improvement, please feel free to contribute. Make sure to update tests as appropriate and follow the contribution guidelines.

## License

Forecat is licensed under the MIT License, which allows you to use, modify, and distribute the package according to the terms of the license. For more details, please refer to the [LICENSE](LICENSE) file.

