|Project Name||Stars||Downloads||Repos Using This||Packages Using This||Most Recent Commit||Total Releases||Latest Release||Open Issues||License||Language|
|Applied Ml||24,714||14 days ago||3||mit|
|📚 Papers & tech blogs by companies sharing their work on data science & machine learning in production.|
|Mindsdb||17,903||5 hours ago||434||July 25, 2023||600||gpl-3.0||Python|
|MindsDB connects AI models to databases.|
|Awesome Project Ideas||6,856||6 months ago||1||mit|
|Curated list of Machine Learning, NLP, Vision, Recommender Systems Project Ideas|
|Sktime||6,808||41||6 hours ago||50||July 20, 2023||849||bsd-3-clause||Python|
|A unified framework for machine learning with time series|
|Darts||6,345||11||2 days ago||30||August 05, 2023||248||apache-2.0||Python|
|A python library for user-friendly forecasting and anomaly detection on time series.|
|Autogluon||6,223||14||2 days ago||1,043||August 08, 2023||265||apache-2.0||Python|
|AutoGluon: AutoML for Image, Text, Time Series, and Tabular Data|
|Tsai||3,839||1||20 days ago||46||April 19, 2022||39||apache-2.0||Jupyter Notebook|
|Time series Timeseries Deep Learning Machine Learning Pytorch fastai | State-of-the-art Deep Learning library for Time Series and Sequences in Pytorch / fastai|
|Gluonts||3,791||12||4 days ago||92||August 07, 2023||359||apache-2.0||Python|
|Probabilistic time series modeling in Python|
|Pytorch Forecasting||3,217||10||2 days ago||34||July 26, 2020||416||mit||Python|
|Time series forecasting with PyTorch|
|Neural_prophet||3,144||3||2 days ago||23||August 09, 2023||44||mit||Python|
|NeuralProphet: A simple forecasting package|
On a periodic basis, publicly traded companies are required to report fundamentals: financial data such as revenue, operating income, debt, among others. These data points provide some insight into the financial health of a company.
This repository contains a set of deep learning tools for forecasting company future fundamentals from historical fundamentals and other auxiliary data such as historical prices and macro economic data.
Clone repo, setup environment, and install requirements:
$ git clone https://github.com/euclidjda/deep-quant.git $ cd deep-quant $ export DEEP_QUANT_ROOT=`pwd` $ pip install -r requirements.txt
You may also want to put DEEP_QUANT_ROOT in your shell initialization file such .bash_profile so that it does not need to be defined every time you start a shell. For example, you could run the following from within the deep-quant directory:
$ echo "export DEEP_QUANT_ROOT="`pwd` >> ~/.bash_profile
Do not use models built with the dataset described below for actual trading or investing. This is a freely available dataset assembled from freely available sources and contains errors such as look-ahead bias and survivorship bias.
Data is passed to
deep_quant.py as a space-delimited
flat file. If you do not have access to a commercial or academic dataset and you would
like to test this code, we have provided a "open dataset" for this purpose.
Again this dataset should be use for testing purposes only. To obtain this file,
run the command:
$ python scripts/build_datfile.py
This will create a
You can train deep quant on a neural network of a particular type and of a
particular architecture with several other hyperparameters on a particular
dataset by first defining all of these things on a config file, and then
specifying that config file as the point of reference when running
deep_quant.py. Consider, for example, how deep_quant is run on
open-dataset.dat, as specified by
$ python scripts/deep_quant.py --config=config/system-test.conf --train=True
This will load the corresponding data and cache it in batches in a directory
_bcache, and will save model checkpoints in a directory called
chkpts-system-test (both of these directories will be created automatically).
A couple of notes about config files:
- The user can specify a
.datfile to use through the
data_diroptions (note that the latter is
financial_fieldsis a range of columns, and should be specified as a string joining the first and last columns of the
.datfile that the user wants to forecast (for example: saleq_ttm-ltq_mrq).
aux_fieldsis similarly also a range of columns that is equivalently specified. Note, however, that these fields are strictly features; they are not part of what the model is trained to predict.
To generate forecasts for the companies in the validation set,
must be run with the
--train option set to False. For example:
$ python scripts/deep_quant.py --config=config/system-test.conf --train=False --pretty_print_preds=True --mse_outfile=mse-data.txt > forecasts.txt
That'll produce a file called forecasts.txt with the predicted values for every financial feature at every timestep.
The deep-quant repository contains tools for performing hyper-parameter searches. A hyper-parameter search requires a datafile and a configuration template. A configuration template takes the format of the learning configuration file with the exception that each configation parameter has multiple values, seperated by spaces (for example an, see hyper-search.conf). The hyper-parameter search algorithms uses the template to definine the hyper-parameter search space (i.e., all possible parameter combinations). A user may specify one of two search algorithms: grid_search or genetic. To experiment with hyper-parameter search, execute the following from the deep-quant directory:
$ mkdir search $ cp config/hyper-search.conf search/. $ cd search $ python $DEEP_QUANT/scripts/hyper_param_search.py --template=hyper-search.conf --search_algorithm='genetic'
Forecast uncertainty is obtained by using UQ compatible deep learning models available in the models directory. Examples of the UQ parameters to be used in the config file (eg system-test.conf) are as follows:
--UQ True --nn_type DeepLogLikelihoodUQModel --UQ_model_type MVE --df_dirname outputs_dfs --keep_prob_pred 0.7
df_dirname will contain the corresponding output dataframes for prediction, data noise variance and errors.
Total variance is the sum of data noise variance (output of the NN) and model variance. Model variance is
calculated by performing the same experiment multiple times with different random seed. Confidence Intervals can
be calculated using the predictions and the total variance.
This is experimental software. It is provided under the MIT license, so you can do with it whatever you wish except hold the authors responsible if it does something you don't like.