LSTM built using Keras Python package to predict time series steps and sequences. Includes sin wave and stock market data

Overview

LSTM Neural Network for Time Series Prediction

LSTM built using the Keras Python package to predict time series steps and sequences. Includes sine wave and stock market data.

Full article write-up for this code

Video on the workings and usage of LSTMs and run-through of this code

Requirements

Install requirements.txt file to make sure correct versions of libraries are being used.

  • Python 3.5.x
  • TensorFlow 1.10.0
  • Numpy 1.15.0
  • Keras 2.2.2
  • Matplotlib 2.2.2

Output for sine wave sequential prediction:

Output for sin wave sequential prediction

Output for stock market multi-dimensional multi-sequential predictions:

Output for stock market multiple sequential predictions

Comments
  • TypeError when running

    TypeError when running

    I tried running the code and installing dependencies using pip and pip3 and I tried running the code using python and python3, but I keep getting this:

    Using TensorFlow backend.
    > Loading data...
    > Data Loaded. Compiling...
    Traceback (most recent call last):
      File "run.py", line 36, in <module>
        model = lstm.build_model([1, 50, 100, 1])
      File "/root/LSTM/lstm.py", line 53, in build_model
        return_sequences=True))
      File "/usr/local/lib/python2.7/dist-packages/keras/legacy/interfaces.py", line 87, in wrapper
        return func(*args, **kwargs)
      File "/usr/local/lib/python2.7/dist-packages/keras/layers/recurrent.py", line 931, in __init__
        super(LSTM, self).__init__(**kwargs)
      File "/usr/local/lib/python2.7/dist-packages/keras/layers/recurrent.py", line 181, in __init__
        super(Recurrent, self).__init__(**kwargs)
      File "/usr/local/lib/python2.7/dist-packages/keras/engine/topology.py", line 275, in __init__
        raise TypeError('Keyword argument not understood:', kwarg)
    TypeError: ('Keyword argument not understood:', 'input_dim')
    
    opened by BasharAG 7
  • LSTM prediction when time intervals are not fixed

    LSTM prediction when time intervals are not fixed

    Hello,

    I have a dataset of raining time in a year. the dataset is something like this:

    Time       Raining      Wind-speed         Temp
    10            23           50               22
    14            10           34               20
    15             8           23               18
    
    

    .......

    magnitudes are just as an example. as you see time intervals are not fixed. I want to predict the next raining time by giving a previous time. But all examples I found about LSTM had fixed increasing time steps. for example 10,11,12,13,14 ...., such as stock market or sinus wave

    But in my problem time steps are not fixed, but the time has an increasing rate. starts with a number and increases but the incident steps are not fixed. What should I do in these problems because I want to predict the next raining time

    opened by MyVanitar 4
  • ValueError when training with more than 1 epoch

    ValueError when training with more than 1 epoch

    Using the latest code base, a ValueError is thrown after training the first epoch.

    • Python 3.5.2
    • TensorFlow 1.10.1
    • Numpy 1.14.0
    • Keras 2.2.2
    • Matplotlib 2.1.2
    [Model] Model Compiled
    Time taken: 0:00:00.809316
    [Model] Training Started
    [Model] 2 epochs, 32 batch size, 124 batches per epoch
    Epoch 1/2
    124/124 [==============================] - 45s 363ms/step - loss: 0.0022
    Epoch 2/2
      1/124 [..............................] - ETA: 36s - loss: 6.4717e-04
    ---------------------------------------------------------------------------
    ValueError                                Traceback (most recent call last)
    <ipython-input-27-e3c645699881> in <module>()
         76 
         77 if __name__=='__main__':
    ---> 78     main()
    
    <ipython-input-27-e3c645699881> in main()
         58         batch_size = configs['training']['batch_size'],
         59         steps_per_epoch = steps_per_epoch,
    ---> 60         save_dir = configs['model']['save_dir']
         61     )
         62 
    
    /notebooks/storage/core/model.py in train_generator(self, data_gen, epochs, batch_size, steps_per_epoch, save_dir)
         81                         epochs=epochs,
         82                         callbacks=callbacks,
    ---> 83                         workers=1
         84 		)
         85 
    
    /usr/local/lib/python3.5/dist-packages/keras/legacy/interfaces.py in wrapper(*args, **kwargs)
         89                 warnings.warn('Update your `' + object_name +
         90                               '` call to the Keras 2 API: ' + signature, stacklevel=2)
    ---> 91             return func(*args, **kwargs)
         92         wrapper._original_function = func
         93         return wrapper
    
    /usr/local/lib/python3.5/dist-packages/keras/engine/training.py in fit_generator(self, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)
       1413             use_multiprocessing=use_multiprocessing,
       1414             shuffle=shuffle,
    -> 1415             initial_epoch=initial_epoch)
       1416 
       1417     @interfaces.legacy_generator_methods_support
    
    /usr/local/lib/python3.5/dist-packages/keras/engine/training_generator.py in fit_generator(model, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)
        211                 outs = model.train_on_batch(x, y,
        212                                             sample_weight=sample_weight,
    --> 213                                             class_weight=class_weight)
        214 
        215                 outs = to_list(outs)
    
    /usr/local/lib/python3.5/dist-packages/keras/engine/training.py in train_on_batch(self, x, y, sample_weight, class_weight)
       1207             x, y,
       1208             sample_weight=sample_weight,
    -> 1209             class_weight=class_weight)
       1210         if self._uses_dynamic_learning_phase():
       1211             ins = x + y + sample_weights + [1.]
    
    /usr/local/lib/python3.5/dist-packages/keras/engine/training.py in _standardize_user_data(self, x, y, sample_weight, class_weight, check_array_lengths, batch_size)
        747             feed_input_shapes,
        748             check_batch_axis=False,  # Don't enforce the batch size.
    --> 749             exception_prefix='input')
        750 
        751         if y is not None:
    
    /usr/local/lib/python3.5/dist-packages/keras/engine/training_utils.py in standardize_input_data(data, names, shapes, check_batch_axis, exception_prefix)
        125                         ': expected ' + names[i] + ' to have ' +
        126                         str(len(shape)) + ' dimensions, but got array '
    --> 127                         'with shape ' + str(data_shape))
        128                 if not check_batch_axis:
        129                     data_shape = data_shape[1:]
    
    ValueError: Error when checking input: expected lstm_1_input to have 3 dimensions, but got array with shape (8, 1)
    

    Did some debugging using the example config for stock market prediction. For each step in epoch 1, generate_train_batch yields two arrays x_batch and y_batch of shape (32, 49, 1) and (32, 1) respectively.

    At the start of epoch 2, model.fit_generator requests a batch of train data from the generator which is now exhausted. At this point generate_train_batch yields arrays of shape (17,) and (17, 1) which causes model.fit_generator to throw an error.

    According to The Sequential model API, model.fit_generator expects the generator to loop over its data indefinitely. An epoch finishes when steps_per_epoch batches have been seen by the model. However, the generate_train_batch implementation stops yielding data after one epoch (as described above).

    opened by kvanderkamp 3
  • TypeError: only size-1 arrays can be converted to Python scalars

    TypeError: only size-1 arrays can be converted to Python scalars

    Hi,

    I installed all the requirements (pip -r requirements.txt) , using python3 (tried 3.5 and 3.6). This is debian buster, but I have tried many dockers.

    Using TensorFlow backend. [Model] Model Compiled Time taken: 0:00:00.955068 Traceback (most recent call last): File "run.py", line 84, in main() File "run.py", line 46, in main normalise = configs['data']['normalise'] File "/tmp/LSTM-Neural-Network-for-Time-Series-Prediction/core/data_processor.py", line 44, in get_train_data x, y = self._next_window(i, seq_len, normalise) File "/tmp/LSTM-Neural-Network-for-Time-Series-Prediction/core/data_processor.py", line 68, in _next_window window = self.normalise_windows(window, single_window=True)[0] if normalise else window File "/tmp/LSTM-Neural-Network-for-Time-Series-Prediction/core/data_processor.py", line 78, in normalise_windows normalised_window = [((float(p) / float(window[0])) - 1) for p in window] File "/tmp/FinanceModels/LSTM-Neural-Network-for-Time-Series-Prediction/core/data_processor.py", line 78, in normalised_window = [((float(p) / float(window[0])) - 1) for p in window] TypeError: only size-1 arrays can be converted to Python scalars

    Anyone out there get the standard example to work?

    NT.

    opened by neurotensin 3
  • ValueError: could not convert string to float:

    ValueError: could not convert string to float:

    Traceback (most recent call last): File "/Users/gsk/Desktop/LSTM-Neural-Network-for-Time-Series-Prediction/run.py", line 32, in X_train, y_train, X_test, y_test = lstm.load_data('ok.csv', seq_len, True) File "/Users/gsk/Desktop/LSTM-Neural-Network-for-Time-Series-Prediction/lstm.py", line 23, in load_data result = normalise_windows(result) File "/Users/gsk/Desktop/LSTM-Neural-Network-for-Time-Series-Prediction/lstm.py", line 43, in normalise_windows normalised_window = [((float(p) / float(window[0])) - 1) for p in window] ValueError: could not convert string to float:

    opened by yangmiok 3
  • Normalizing? - Can't get it.

    Normalizing? - Can't get it.

    I read the corresponding article (completely). http://www.jakob-aungiers.com/articles/a/LSTM-Neural-Network-for-Time-Series-Prediction

    But I can't get it, what normalizing in this example does. Could someone explain it any further?

    opened by Steviey 3
  • TypeError: Expected int32, got <tensorflow.python.ops.variables.Variable object at 0x7f3d6a773a10> of type 'Variable' instead.

    TypeError: Expected int32, got of type 'Variable' instead.

    When I run the code,I meet the following problems: Traceback (most recent call last): File "run.py", line 36, in model = lstm.build_model([1, 50, 100, 1]) File "/home/cuiyi/Downloads/SPARNN-release/data/LSTM/LSTM-Neural-Network-for-Time-Series-Prediction/lstm.py", line 51, in build_model return_sequences=True)) File "/usr/local/lib/python2.7/dist-packages/keras/models.py", line 276, in add layer.create_input_layer(batch_input_shape, input_dtype) File "/usr/local/lib/python2.7/dist-packages/keras/engine/topology.py", line 370, in create_input_layer self(x) File "/usr/local/lib/python2.7/dist-packages/keras/engine/topology.py", line 487, in call self.build(input_shapes[0]) File "/usr/local/lib/python2.7/dist-packages/keras/layers/recurrent.py", line 710, in build self.W = K.concatenate([self.W_i, self.W_f, self.W_c, self.W_o]) File "/usr/local/lib/python2.7/dist-packages/keras/backend/tensorflow_backend.py", line 716, in concatenate return tf.concat(axis, [to_dense(x) for x in tensors]) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/array_ops.py", line 1047, in concat dtype=dtypes.int32).get_shape( File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 651, in convert_to_tensor as_ref=False) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 716, in internal_convert_to_tensor ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/constant_op.py", line 176, in _constant_tensor_conversion_function return constant(v, dtype=dtype, name=name) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/constant_op.py", line 165, in constant tensor_util.make_tensor_proto(value, dtype=dtype, shape=shape, verify_shape=verify_shape)) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/tensor_util.py", line 367, in make_tensor_proto _AssertCompatible(values, dtype) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/tensor_util.py", line 302, in _AssertCompatible (dtype.name, repr(mismatch), type(mismatch).name)) TypeError: Expected int32, got <tensorflow.python.ops.variables.Variable object at 0x7f3d6a773a10> of type 'Variable' instead.

    opened by cuiyi129 3
  • Issues reproducing sine wave example

    Issues reproducing sine wave example

    I've tried to reproduce the sine wave example using the following code in the main function seen below.

    Apparently, something went wrong, see the image I have received.

    Do you know what I need to fix in order to reproduce your example?

    Thanks!

    #Main Run Thread if name=='main':

    os.system('clear')
    global_start_time = time.time()
    epochs  = 1
    seq_len = 50
    
    print '> Loading data... '
    
    X_train, y_train, X_test, y_test = lstm.load_data('sinwave.csv', seq_len, True)
    
    print '> Data Loaded. Compiling...'
    
    model = lstm.build_model([1, 50, 100, 1])
    
    model.fit(
        X_train,
        y_train,
        batch_size=512,
        nb_epoch=epochs,
        validation_split=0.05)
    
    predicted = lstm.predict_point_by_point(model, X_test)        
    
    print 'Training duration (s) : ', time.time() - global_start_time
    plot_results(predicted, y_train)
    

    prediction_sine_wave_01

    opened by robotdude17 3
  • In- & Out-memory results differ quite a lot

    In- & Out-memory results differ quite a lot

    Hello Jakob, Thank you for this inspiring, well written piece of code !

    I noticed results differ when using in-memory training & out-of-memory generative training. I did not modify the code otherwise in any other file than run.py: I'm just commenting the "out-of-memory generative traning" block and un-commenting the block "in-memory training" and results are the following:

    Results without any modification (very similar to what you posted in your article, just another run without fixed seeds): out-of-mem generative training

    Results using in-memory training: in-memory training

    Looking at the code in file model.py I can't understand why in-memory training produces these results. Is this normal ? Could generative training produce much better results, as we have here ?

    I also modified your code to check performance for binary up/down price prediction, and results are also better using generative training. I'm wondering what is happening here.

    Thank you again for sharing your code, it really is the best software & article I could find about LSTM for stock prediction.

    opened by CharlyEmpereurmot 2
  • epochs set 2, train raise error

    epochs set 2, train raise error

    generate_train_batch is already add "while True:" but, train raise error. ValueError: Error when checking input: expected lstm_1_input to have 3 dimensions, but got array with shape (8, 1)

    opened by zbsean 2
  • validity of testing method

    validity of testing method

    Hello, In the case of the sine wave, we are sampling the wave at equal "time" or x intervals. However, since its periodic, wouldn't that mean that test data is essentially a copy of the training data ? Would that be a valid method of testing though ?

    Thanks !

    opened by esraa-saleh 2
  • Bump tensorflow-gpu from 1.10.0 to 2.9.3

    Bump tensorflow-gpu from 1.10.0 to 2.9.3

    Bumps tensorflow-gpu from 1.10.0 to 2.9.3.

    Release notes

    Sourced from tensorflow-gpu's releases.

    TensorFlow 2.9.3

    Release 2.9.3

    This release introduces several vulnerability fixes:

    TensorFlow 2.9.2

    Release 2.9.2

    This releases introduces several vulnerability fixes:

    ... (truncated)

    Changelog

    Sourced from tensorflow-gpu's changelog.

    Release 2.9.3

    This release introduces several vulnerability fixes:

    Release 2.8.4

    This release introduces several vulnerability fixes:

    ... (truncated)

    Commits
    • a5ed5f3 Merge pull request #58584 from tensorflow/vinila21-patch-2
    • 258f9a1 Update py_func.cc
    • cd27cfb Merge pull request #58580 from tensorflow-jenkins/version-numbers-2.9.3-24474
    • 3e75385 Update version numbers to 2.9.3
    • bc72c39 Merge pull request #58482 from tensorflow-jenkins/relnotes-2.9.3-25695
    • 3506c90 Update RELEASE.md
    • 8dcb48e Update RELEASE.md
    • 4f34ec8 Merge pull request #58576 from pak-laura/c2.99f03a9d3bafe902c1e6beb105b2f2417...
    • 6fc67e4 Replace CHECK with returning an InternalError on failing to create python tuple
    • 5dbe90a Merge pull request #58570 from tensorflow/r2.9-7b174a0f2e4
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • generate more data

    generate more data

    Two points in my view could make the project more perfect. Welcome discussion and correction if I was wrong.

    1. When scrolling the window, the last one timestep is forgotten. It could add 1 the for loop in line26 and line45 to add 1 sample, like this "range(self.len_test - seq_len+1)".
    2. Rather than scrolling the window in train and test dataset respectively, I think it could be better scrolling the window first and split the train and test dataset. This could add 50 (one seq_len) samples.
    opened by Chris-Lea 0
  • A Full-Pipeline Automated Time Series Analysis Toolkit.

    A Full-Pipeline Automated Time Series Analysis Toolkit.

    https://github.com/DataCanvasIO/HyperTS

    Easy-to-use, powerful, unified full pipeline automated time series toolkit. Supports forecasting, classification and regression.

    opened by zhangxjohn 0
  • Bump numpy from 1.15.0 to 1.22.0

    Bump numpy from 1.15.0 to 1.22.0

    Bumps numpy from 1.15.0 to 1.22.0.

    Release notes

    Sourced from numpy's releases.

    v1.22.0

    NumPy 1.22.0 Release Notes

    NumPy 1.22.0 is a big release featuring the work of 153 contributors spread over 609 pull requests. There have been many improvements, highlights are:

    • Annotations of the main namespace are essentially complete. Upstream is a moving target, so there will likely be further improvements, but the major work is done. This is probably the most user visible enhancement in this release.
    • A preliminary version of the proposed Array-API is provided. This is a step in creating a standard collection of functions that can be used across application such as CuPy and JAX.
    • NumPy now has a DLPack backend. DLPack provides a common interchange format for array (tensor) data.
    • New methods for quantile, percentile, and related functions. The new methods provide a complete set of the methods commonly found in the literature.
    • A new configurable allocator for use by downstream projects.

    These are in addition to the ongoing work to provide SIMD support for commonly used functions, improvements to F2PY, and better documentation.

    The Python versions supported in this release are 3.8-3.10, Python 3.7 has been dropped. Note that 32 bit wheels are only provided for Python 3.8 and 3.9 on Windows, all other wheels are 64 bits on account of Ubuntu, Fedora, and other Linux distributions dropping 32 bit support. All 64 bit wheels are also linked with 64 bit integer OpenBLAS, which should fix the occasional problems encountered by folks using truly huge arrays.

    Expired deprecations

    Deprecated numeric style dtype strings have been removed

    Using the strings "Bytes0", "Datetime64", "Str0", "Uint32", and "Uint64" as a dtype will now raise a TypeError.

    (gh-19539)

    Expired deprecations for loads, ndfromtxt, and mafromtxt in npyio

    numpy.loads was deprecated in v1.15, with the recommendation that users use pickle.loads instead. ndfromtxt and mafromtxt were both deprecated in v1.17 - users should use numpy.genfromtxt instead with the appropriate value for the usemask parameter.

    (gh-19615)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Outdated functions

    Outdated functions

    WARNING: QApplication was not created in the main() thread. [2022-03-06 16:11:07,935] ERROR in app: Exception on /insertintotable [POST] Traceback (most recent call last): File "D:\Programs\Python\Python310\lib\site-packages\flask\app.py", line 2073, in wsgi_app response = self.full_dispatch_request() File "D:\Programs\Python\Python310\lib\site-packages\flask\app.py", line 1518, in full_dispatch_request rv = self.handle_user_exception(e) File "D:\Programs\Python\Python310\lib\site-packages\flask\app.py", line 1516, in full_dispatch_request rv = self.dispatch_request() File "D:\Programs\Python\Python310\lib\site-packages\flask\app.py", line 1502, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args) File "D:\Downloads\Stock-Market-Prediction-Web-App-using-Machine-Learning-And-Sentiment-Analysis-master\Stock-Market-Prediction-Web-App-using-Machine-Learning-And-Sentiment-Analysis-master\main.py", line 474, in insertintotable arima_pred, error_arima=ARIMA_ALGO(df) File "D:\Downloads\Stock-Market-Prediction-Web-App-using-Machine-Learning-And-Sentiment-Analysis-master\Stock-Market-Prediction-Web-App-using-Machine-Learning-And-Sentiment-Analysis-master\main.py", line 118, in ARIMA_ALGO predictions = arima_model(train, test) File "D:\Downloads\Stock-Market-Prediction-Web-App-using-Machine-Learning-And-Sentiment-Analysis-master\Stock-Market-Prediction-Web-App-using-Machine-Learning-And-Sentiment-Analysis-master\main.py", line 93, in arima_model model = ARIMA(history, order=(6,1 ,0)) File "D:\Programs\Python\Python310\lib\site-packages\statsmodels\tsa\arima_model.py", line 45, in init super().init(*args, **kwargs) File "D:\Programs\Python\Python310\lib\site-packages\statsmodels\tsa\arima_model.py", line 29, in init raise NotImplementedError(ARIMA_DEPRECATION_ERROR) NotImplementedError: statsmodels.tsa.arima_model.ARMA and statsmodels.tsa.arima_model.ARIMA have been removed in favor of statsmodels.tsa.arima.model.ARIMA (note the . between arima and model) and statsmodels.tsa.SARIMAX.

    statsmodels.tsa.arima.model.ARIMA makes use of the statespace framework and is both well tested and maintained. It also offers alternative specialized parameter estimators.

    opened by yolomcswagpie 0
Owner
Jakob Aungiers
Head of Systematic Market Making at a global HFT firm // Expert Adviser & Consultant in AI // Skydiver // Surfer // Adventurer
Jakob Aungiers
SweiNet is an uncertainty-quantifying shear wave speed (SWS) estimator for ultrasound shear wave elasticity (SWE) imaging.

SweiNet SweiNet is an uncertainty-quantifying shear wave speed (SWS) estimator for ultrasound shear wave elasticity (SWE) imaging. SweiNet takes as in

Felix Jin 3 Mar 31, 2022
HeatNet is a python package that provides tools to build, train and evaluate neural networks designed to predict extreme heat wave events globally on daily to subseasonal timescales.

HeatNet HeatNet is a python package that provides tools to build, train and evaluate neural networks designed to predict extreme heat wave events glob

Google Research 6 Jul 7, 2022
Technical Indicators implemented in Python only using Numpy-Pandas as Magic - Very Very Fast! Very tiny! Stock Market Financial Technical Analysis Python library . Quant Trading automation or cryptocoin exchange

MyTT Technical Indicators implemented in Python only using Numpy-Pandas as Magic - Very Very Fast! to Stock Market Financial Technical Analysis Python

dev 34 Dec 27, 2022
This project provides a stock market environment using OpenGym with Deep Q-learning and Policy Gradient.

Stock Trading Market OpenAI Gym Environment with Deep Reinforcement Learning using Keras Overview This project provides a general environment for stoc

Kim, Ki Hyun 769 Dec 25, 2022
Technical experimentations to beat the stock market using deep learning :chart_with_upwards_trend:

DeepStock Technical experimentations to beat the stock market using deep learning. Experimentations Deep Learning Stock Prediction with Daily News Hea

Keon 449 Dec 29, 2022
Sign Language is detected in realtime using video sequences. Our approach involves MediaPipe Holistic for keypoints extraction and LSTM Model for prediction.

RealTime Sign Language Detection using Action Recognition Approach Real-Time Sign Language is commonly predicted using models whose architecture consi

Rishikesh S 15 Aug 20, 2022
:boar: :bear: Deep Learning based Python Library for Stock Market Prediction and Modelling

bulbea "Deep Learning based Python Library for Stock Market Prediction and Modelling." Table of Contents Installation Usage Documentation Dependencies

Achilles Rasquinha 1.8k Jan 5, 2023
Forecasting directional movements of stock prices for intraday trading using LSTM and random forest

Forecasting directional movements of stock-prices for intraday trading using LSTM and random-forest https://arxiv.org/abs/2004.10178 Pushpendu Ghosh,

Pushpendu Ghosh 270 Dec 24, 2022
This project uses reinforcement learning on stock market and agent tries to learn trading. The goal is to check if the agent can learn to read tape. The project is dedicated to hero in life great Jesse Livermore.

Reinforcement-trading This project uses Reinforcement learning on stock market and agent tries to learn trading. The goal is to check if the agent can

Deepender Singla 1.4k Dec 22, 2022
A Deep Reinforcement Learning Framework for Stock Market Trading

DQN-Trading This is a framework based on deep reinforcement learning for stock market trading. This project is the implementation code for the two pap

null 61 Jan 1, 2023
Using deep learning to predict gene structures of the coding genes in DNA sequences of Arabidopsis thaliana

DeepGeneAnnotator: A tool to annotate the gene in the genome The master thesis of the "Using deep learning to predict gene structures of the coding ge

Ching-Tien Wang 3 Sep 9, 2022
Attention-based CNN-LSTM and XGBoost hybrid model for stock prediction

Attention-based CNN-LSTM and XGBoost hybrid model for stock prediction Requirements The code has been tested running under Python 3.7.4, with the foll

zshicode 84 Jan 1, 2023
tsai is an open-source deep learning package built on top of Pytorch & fastai focused on state-of-the-art techniques for time series classification, regression and forecasting.

Time series Timeseries Deep Learning Pytorch fastai - State-of-the-art Deep Learning with Time Series and Sequences in Pytorch / fastai

timeseriesAI 2.8k Jan 8, 2023
Stock-history-display - something like a easy yearly review for your stock performance

Stock History Display Available on Heroku: https://stock-history-display.herokua

LiaoJJ 1 Jan 7, 2022
Predict and time series avocado hass

RECOMMENDER SYSTEM MARKETING TỔNG QUAN VỀ HỆ THỐNG DỮ LIỆU 1. Giới thiệu - Tiki là một hệ sinh thái thương mại "all in one", trong đó có tiki.vn, là

hieulmsc 3 Jan 10, 2022
Predict stock movement with Machine Learning and Deep Learning algorithms

Project Overview Stock market movement prediction using LSTM Deep Neural Networks and machine learning algorithms Software and Library Requirements Th

Naz Delam 46 Sep 13, 2022
Introducing neural networks to predict stock prices

IntroNeuralNetworks in Python: A Template Project IntroNeuralNetworks is a project that introduces neural networks and illustrates an example of how o

Vivek Palaniappan 637 Jan 4, 2023
Introducing neural networks to predict stock prices

IntroNeuralNetworks in Python: A Template Project IntroNeuralNetworks is a project that introduces neural networks and illustrates an example of how o

Vivek Palaniappan 637 Jan 4, 2023
A library built upon PyTorch for building embeddings on discrete event sequences using self-supervision

pytorch-lifestream a library built upon PyTorch for building embeddings on discrete event sequences using self-supervision. It can process terabyte-si

Dmitri Babaev 103 Dec 17, 2022