From 7e28fa20f3a6ccfe27e3128b5a68bcc9996f72e1 Mon Sep 17 00:00:00 2001 From: DidierRLopes Date: Sat, 20 Feb 2021 19:42:44 +0000 Subject: [PATCH] Finish pred README with NN config --- prediction_techniques/README.md | 54 ++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/prediction_techniques/README.md b/prediction_techniques/README.md index 0e4a2e7c982..209ff96bf41 100644 --- a/prediction_techniques/README.md +++ b/prediction_techniques/README.md @@ -30,8 +30,9 @@ This menu aims to predict the share price of a pre-loaded stock, and the usage o ## sma ``` -usage: simple_moving_average [-l N_LENGTH] [-d N_DAYS] +usage: sma [-l N_LENGTH] [-d N_DAYS] ``` +Simple Moving Average: * -l : length of SMA window. Default 20. * -d : prediciton days. Default 5. @@ -41,6 +42,7 @@ usage: simple_moving_average [-l N_LENGTH] [-d N_DAYS] ``` usage: knn [-i N_INPUTS] [-d N_DAYS] [-j N_JUMPS] [-n N_NEIGHBORS] ``` +k-Nearest Neighbors: * -i : number of days to use for prediction. Default 40. * -d : prediciton days. Default 5. * -j : number of jumps in training data. Default 1. @@ -53,6 +55,7 @@ usage: knn [-i N_INPUTS] [-d N_DAYS] [-j N_JUMPS] [-n N_NEIGHBORS] usage: linear [-i N_INPUTS] [-d N_DAYS] [-j N_JUMPS] usage: regression -p 1 [-i N_INPUTS] [-d N_DAYS] [-j N_JUMPS] ``` +Linear Regression (p=1): * -i : number of days to use for prediction. Default 40. * -d : prediciton days. Default 5. * -j : number of jumps in training data. Default 1. @@ -64,6 +67,7 @@ usage: regression -p 1 [-i N_INPUTS] [-d N_DAYS] [-j N_JUMPS] usage: quadratic [-i N_INPUTS] [-d N_DAYS] [-j N_JUMPS] usage: regression -p 2 [-i N_INPUTS] [-d N_DAYS] [-j N_JUMPS] ``` +Quadratic Regression (p=2): * -i : number of days to use for prediction. Default 40. * -d : prediciton days. Default 5. * -j : number of jumps in training data. Default 1. @@ -75,6 +79,7 @@ usage: regression -p 2 [-i N_INPUTS] [-d N_DAYS] [-j N_JUMPS] usage: cubic [-i N_INPUTS] [-d N_DAYS] [-j N_JUMPS] usage: regression -p 3 [-i N_INPUTS] [-d N_DAYS] [-j N_JUMPS] ``` +Cubic Regression (p=3): * -i : number of days to use for prediction. Default 40. * -d : prediciton days. Default 5. * -j : number of jumps in training data. Default 1. @@ -85,6 +90,7 @@ usage: regression -p 3 [-i N_INPUTS] [-d N_DAYS] [-j N_JUMPS] ``` usage: regression -p N_POLYNOMIAL [-i N_INPUTS] [-d N_DAYS] [-j N_JUMPS] ``` +Regression: * -i : number of days to use for prediction. Default 40. * -d : prediciton days. Default 5. * -j : number of jumps in training data. Default 1. @@ -96,6 +102,7 @@ usage: regression -p N_POLYNOMIAL [-i N_INPUTS] [-d N_DAYS] [-j N_JUMPS] ``` usage: arima [-d N_DAYS] [-i {aic,aicc,bic,hqic,oob}] [-s] [-r] [-o S_ORDER] ``` +Auto-Regressive Integrated Moving Average: * -d : prediciton days. Default 5. * -i : information criteria - used if auto_arima library is invoked. Default aic. * -s : weekly seasonality flag. Default False. @@ -111,6 +118,7 @@ usage: arima [-d N_DAYS] [-i {aic,aicc,bic,hqic,oob}] [-s] [-r] [-o S_ORDER] ``` usage: fbprophet [-d N_DAYS] ``` +Facebook's Prophet: * -d : prediciton days. Default 5. ![prophet](https://user-images.githubusercontent.com/25267873/108604938-cf9ffa00-73a8-11eb-973b-0affb343e2f6.png) @@ -120,6 +128,7 @@ usage: fbprophet [-d N_DAYS] usage: mlp [-d N_DAYS] [-i N_INPUTS] [-j N_JUMPS] [-e N_EPOCHS] [-p {normalization,standardization,none}] [-o {adam,adagrad,adadelta,adamax,ftrl,nadam,optimizer,rmsprop,sgd}] [-l {mae,mape,mse,msle}] ``` +MulitLayer Perceptron: * -d : prediciton days. Default 5. * -i : number of days to use for prediction. Default 40. * -j : number of jumps in training data. Default 1. @@ -128,6 +137,21 @@ usage: mlp [-d N_DAYS] [-i N_INPUTS] [-j N_JUMPS] [-e N_EPOCHS] [-p {normalizati * -o : optimization technique. Default adam. * -l : loss function. Default mae. +Due to the complexity of defining a model through command line, one can define it in: [config_neural_network_models.txt](/config_neural_network_models.py) +``` +MultiLayer_Perceptron \ + = [ {'Dense': + {'units':50, 'activation':'relu'} }, + {'Dense': + {'units':100, 'activation':'relu'} }, + {'Dense': + {'units':80, 'activation':'relu'} }, + {'Dense': + {'units':30, 'activation':'relu'} }, + {'Dense': + {'activation':'linear'} }] +``` + ![mlp](https://user-images.githubusercontent.com/25267873/108604944-d2025400-73a8-11eb-9ab6-52972160cd2a.png) ## rnn @@ -135,6 +159,7 @@ usage: mlp [-d N_DAYS] [-i N_INPUTS] [-j N_JUMPS] [-e N_EPOCHS] [-p {normalizati usage: rnn [-d N_DAYS] [-i N_INPUTS] [-j N_JUMPS] [-e N_EPOCHS] [-p {normalization,standardization,none}] [-o {adam,adagrad,adadelta,adamax,ftrl,nadam,optimizer,rmsprop,sgd}] [-l {mae,mape,mse,msle}] ``` +Recurrent Neural Network: * -d : prediciton days. Default 5. * -i : number of days to use for prediction. Default 40. * -j : number of jumps in training data. Default 1. @@ -143,6 +168,21 @@ usage: rnn [-d N_DAYS] [-i N_INPUTS] [-j N_JUMPS] [-e N_EPOCHS] [-p {normalizati * -o : optimization technique. Default adam. * -l : loss function. Default mae. +Due to the complexity of defining a model through command line, one can define it in: [config_neural_network_models.txt](/config_neural_network_models.py) +``` +Recurrent_Neural_Network \ + = [ {'SimpleRNN': + {'units':100, 'activation':'linear', 'return_sequences':True} }, + {'SimpleRNN': + {'units':50, 'activation':'linear', 'return_sequences':True} }, + {'Dropout': + {'rate':0.2} }, + {'SimpleRNN': + {'units':21, 'activation':'linear', 'return_sequences':False} }, + {'Dense': + {'activation':'linear'} }] +``` + ![rnn](https://user-images.githubusercontent.com/25267873/108604940-d0d12700-73a8-11eb-837e-a5aa128942d9.png) ## lstm @@ -150,6 +190,7 @@ usage: rnn [-d N_DAYS] [-i N_INPUTS] [-j N_JUMPS] [-e N_EPOCHS] [-p {normalizati usage: lstm [-d N_DAYS] [-i N_INPUTS] [-j N_JUMPS] [-e N_EPOCHS] [-p {normalization,standardization,none}] [-o {adam,adagrad,adadelta,adamax,ftrl,nadam,optimizer,rmsprop,sgd}] [-l {mae,mape,mse,msle}] ``` +Long-Short Term Memory: * -d : prediciton days. Default 5. * -i : number of days to use for prediction. Default 40. * -j : number of jumps in training data. Default 1. @@ -158,6 +199,17 @@ usage: lstm [-d N_DAYS] [-i N_INPUTS] [-j N_JUMPS] [-e N_EPOCHS] [-p {normalizat * -o : optimization technique. Default adam. * -l : loss function. Default mae. +Due to the complexity of defining a model through command line, one can define it in: [config_neural_network_models.txt](/config_neural_network_models.py) +``` +Long_Short_Term_Memory \ + = [ {'LSTM': + {'units':25, 'activation':'tanh', 'return_sequences':True} }, + {'LSTM': + {'units':15, 'activation':'tanh', 'return_sequences':False} }, + {'Dense': + {'activation':'linear'} }] +``` + ![lstm](https://user-images.githubusercontent.com/25267873/108604943-d2025400-73a8-11eb-83c5-edb4a2121cba.png)