Skip to content

Commit f870b01

Browse files
Update README.md
1 parent 01602f8 commit f870b01

File tree

1 file changed

+151
-1
lines changed

1 file changed

+151
-1
lines changed

README.md

Lines changed: 151 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -524,9 +524,159 @@ Once we have defined the model, we need to specify the metrics we want to use to
524524
callbacks=[callback])
525525
```
526526

527+
This model is slightly fined tuned to reach the lowest validation loss. In this example, we reach a validation loss of 0.20% with an MSE (Mean Square Error) of 0.29% which is relatively good, providing us with a very accurate result.
528+
529+
The training result can be seen below:
530+
531+
```cmd
532+
Train on 3055 samples, validate on 881 samples
533+
Epoch 1/100
534+
2020-07-04 11:48:37.847380: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library cublas64_100.dll
535+
3055/3055 [==============================] - 47s 15ms/step - loss: 0.0222 - MSE: 0.0533 - val_loss: 0.0054 - val_MSE: 0.0198
536+
Epoch 2/100
537+
3055/3055 [==============================] - 43s 14ms/step - loss: 0.0072 - MSE: 0.0156 - val_loss: 0.0050 - val_MSE: 0.0129
538+
Epoch 3/100
539+
3055/3055 [==============================] - 43s 14ms/step - loss: 0.0060 - MSE: 0.0116 - val_loss: 0.0054 - val_MSE: 0.0104
540+
Epoch 4/100
541+
3055/3055 [==============================] - 43s 14ms/step - loss: 0.0053 - MSE: 0.0098 - val_loss: 0.0051 - val_MSE: 0.0091
542+
Epoch 5/100
543+
3055/3055 [==============================] - 43s 14ms/step - loss: 0.0050 - MSE: 0.0087 - val_loss: 0.0048 - val_MSE: 0.0083
544+
Epoch 6/100
545+
3055/3055 [==============================] - 44s 14ms/step - loss: 0.0045 - MSE: 0.0080 - val_loss: 0.0047 - val_MSE: 0.0076
546+
Epoch 7/100
547+
3055/3055 [==============================] - 44s 14ms/step - loss: 0.0045 - MSE: 0.0074 - val_loss: 0.0045 - val_MSE: 0.0072
548+
Epoch 8/100
549+
3055/3055 [==============================] - 44s 14ms/step - loss: 0.0041 - MSE: 0.0070 - val_loss: 0.0045 - val_MSE: 0.0068
550+
Epoch 9/100
551+
3055/3055 [==============================] - 43s 14ms/step - loss: 0.0038 - MSE: 0.0067 - val_loss: 0.0044 - val_MSE: 0.0065
552+
Epoch 10/100
553+
3055/3055 [==============================] - 53s 17ms/step - loss: 0.0038 - MSE: 0.0064 - val_loss: 0.0049 - val_MSE: 0.0062
554+
Epoch 11/100
555+
3055/3055 [==============================] - 67s 22ms/step - loss: 0.0034 - MSE: 0.0061 - val_loss: 0.0041 - val_MSE: 0.0060
556+
Epoch 12/100
557+
3055/3055 [==============================] - 71s 23ms/step - loss: 0.0035 - MSE: 0.0059 - val_loss: 0.0048 - val_MSE: 0.0058
558+
Epoch 13/100
559+
3055/3055 [==============================] - 68s 22ms/step - loss: 0.0031 - MSE: 0.0057 - val_loss: 0.0047 - val_MSE: 0.0056
560+
Epoch 14/100
561+
3055/3055 [==============================] - 64s 21ms/step - loss: 0.0029 - MSE: 0.0055 - val_loss: 0.0038 - val_MSE: 0.0054
562+
Epoch 15/100
563+
3055/3055 [==============================] - 63s 21ms/step - loss: 0.0031 - MSE: 0.0054 - val_loss: 0.0036 - val_MSE: 0.0053
564+
Epoch 16/100
565+
3055/3055 [==============================] - 63s 21ms/step - loss: 0.0027 - MSE: 0.0052 - val_loss: 0.0047 - val_MSE: 0.0051
566+
Epoch 17/100
567+
3055/3055 [==============================] - 63s 20ms/step - loss: 0.0028 - MSE: 0.0051 - val_loss: 0.0035 - val_MSE: 0.0050
568+
Epoch 18/100
569+
3055/3055 [==============================] - 65s 21ms/step - loss: 0.0024 - MSE: 0.0050 - val_loss: 0.0032 - val_MSE: 0.0049
570+
Epoch 19/100
571+
3055/3055 [==============================] - 63s 21ms/step - loss: 0.0026 - MSE: 0.0048 - val_loss: 0.0039 - val_MSE: 0.0048
572+
Epoch 20/100
573+
3055/3055 [==============================] - 63s 20ms/step - loss: 0.0024 - MSE: 0.0047 - val_loss: 0.0048 - val_MSE: 0.0047
574+
Epoch 21/100
575+
3055/3055 [==============================] - 62s 20ms/step - loss: 0.0022 - MSE: 0.0046 - val_loss: 0.0031 - val_MSE: 0.0046
576+
Epoch 22/100
577+
3055/3055 [==============================] - 63s 21ms/step - loss: 0.0022 - MSE: 0.0045 - val_loss: 0.0030 - val_MSE: 0.0045
578+
Epoch 23/100
579+
3055/3055 [==============================] - 62s 20ms/step - loss: 0.0023 - MSE: 0.0044 - val_loss: 0.0032 - val_MSE: 0.0044
580+
Epoch 24/100
581+
3055/3055 [==============================] - 72s 24ms/step - loss: 0.0021 - MSE: 0.0044 - val_loss: 0.0029 - val_MSE: 0.0043
582+
Epoch 25/100
583+
3055/3055 [==============================] - 76s 25ms/step - loss: 0.0021 - MSE: 0.0043 - val_loss: 0.0028 - val_MSE: 0.0042
584+
Epoch 26/100
585+
3055/3055 [==============================] - 86s 28ms/step - loss: 0.0022 - MSE: 0.0042 - val_loss: 0.0042 - val_MSE: 0.0042
586+
Epoch 27/100
587+
3055/3055 [==============================] - 64s 21ms/step - loss: 0.0021 - MSE: 0.0041 - val_loss: 0.0028 - val_MSE: 0.0041
588+
Epoch 28/100
589+
3055/3055 [==============================] - 65s 21ms/step - loss: 0.0021 - MSE: 0.0041 - val_loss: 0.0027 - val_MSE: 0.0040
590+
Epoch 29/100
591+
3055/3055 [==============================] - 67s 22ms/step - loss: 0.0022 - MSE: 0.0040 - val_loss: 0.0026 - val_MSE: 0.0040
592+
Epoch 30/100
593+
3055/3055 [==============================] - 64s 21ms/step - loss: 0.0020 - MSE: 0.0039 - val_loss: 0.0031 - val_MSE: 0.0039
594+
Epoch 31/100
595+
3055/3055 [==============================] - 65s 21ms/step - loss: 0.0019 - MSE: 0.0039 - val_loss: 0.0026 - val_MSE: 0.0039
596+
Epoch 32/100
597+
3055/3055 [==============================] - 63s 21ms/step - loss: 0.0019 - MSE: 0.0038 - val_loss: 0.0026 - val_MSE: 0.0038
598+
Epoch 33/100
599+
3055/3055 [==============================] - 63s 21ms/step - loss: 0.0023 - MSE: 0.0038 - val_loss: 0.0032 - val_MSE: 0.0038
600+
Epoch 34/100
601+
3055/3055 [==============================] - 67s 22ms/step - loss: 0.0022 - MSE: 0.0037 - val_loss: 0.0026 - val_MSE: 0.0037
602+
Epoch 35/100
603+
3055/3055 [==============================] - 64s 21ms/step - loss: 0.0021 - MSE: 0.0037 - val_loss: 0.0027 - val_MSE: 0.0037
604+
Epoch 36/100
605+
3055/3055 [==============================] - 64s 21ms/step - loss: 0.0021 - MSE: 0.0037 - val_loss: 0.0023 - val_MSE: 0.0036
606+
Epoch 37/100
607+
3055/3055 [==============================] - 63s 21ms/step - loss: 0.0019 - MSE: 0.0036 - val_loss: 0.0025 - val_MSE: 0.0036
608+
Epoch 38/100
609+
3055/3055 [==============================] - 65s 21ms/step - loss: 0.0019 - MSE: 0.0036 - val_loss: 0.0022 - val_MSE: 0.0035
610+
Epoch 39/100
611+
3055/3055 [==============================] - 68s 22ms/step - loss: 0.0022 - MSE: 0.0035 - val_loss: 0.0022 - val_MSE: 0.0035
612+
Epoch 40/100
613+
3055/3055 [==============================] - 70s 23ms/step - loss: 0.0020 - MSE: 0.0035 - val_loss: 0.0023 - val_MSE: 0.0035
614+
Epoch 41/100
615+
3055/3055 [==============================] - 62s 20ms/step - loss: 0.0019 - MSE: 0.0035 - val_loss: 0.0022 - val_MSE: 0.0034
616+
Epoch 42/100
617+
3055/3055 [==============================] - 62s 20ms/step - loss: 0.0019 - MSE: 0.0034 - val_loss: 0.0024 - val_MSE: 0.0034
618+
Epoch 43/100
619+
3055/3055 [==============================] - 63s 21ms/step - loss: 0.0019 - MSE: 0.0034 - val_loss: 0.0023 - val_MSE: 0.0034
620+
Epoch 44/100
621+
3055/3055 [==============================] - 63s 21ms/step - loss: 0.0020 - MSE: 0.0034 - val_loss: 0.0021 - val_MSE: 0.0033
622+
Epoch 45/100
623+
3055/3055 [==============================] - 66s 22ms/step - loss: 0.0019 - MSE: 0.0033 - val_loss: 0.0020 - val_MSE: 0.0033
624+
Epoch 46/100
625+
3055/3055 [==============================] - 62s 20ms/step - loss: 0.0019 - MSE: 0.0033 - val_loss: 0.0022 - val_MSE: 0.0033
626+
Epoch 47/100
627+
3055/3055 [==============================] - 63s 20ms/step - loss: 0.0020 - MSE: 0.0033 - val_loss: 0.0019 - val_MSE: 0.0033
628+
Epoch 48/100
629+
3055/3055 [==============================] - 62s 20ms/step - loss: 0.0018 - MSE: 0.0032 - val_loss: 0.0019 - val_MSE: 0.0032
630+
Epoch 49/100
631+
3055/3055 [==============================] - 63s 21ms/step - loss: 0.0019 - MSE: 0.0032 - val_loss: 0.0024 - val_MSE: 0.0032
632+
Epoch 50/100
633+
3055/3055 [==============================] - 63s 21ms/step - loss: 0.0019 - MSE: 0.0032 - val_loss: 0.0019 - val_MSE: 0.0032
634+
Epoch 51/100
635+
3055/3055 [==============================] - 65s 21ms/step - loss: 0.0021 - MSE: 0.0032 - val_loss: 0.0018 - val_MSE: 0.0031
636+
Epoch 52/100
637+
3055/3055 [==============================] - 67s 22ms/step - loss: 0.0018 - MSE: 0.0031 - val_loss: 0.0018 - val_MSE: 0.0031
638+
Epoch 53/100
639+
3055/3055 [==============================] - 71s 23ms/step - loss: 0.0021 - MSE: 0.0031 - val_loss: 0.0017 - val_MSE: 0.0031
640+
Epoch 54/100
641+
3055/3055 [==============================] - 66s 22ms/step - loss: 0.0017 - MSE: 0.0031 - val_loss: 0.0018 - val_MSE: 0.0031
642+
Epoch 55/100
643+
3055/3055 [==============================] - 63s 21ms/step - loss: 0.0020 - MSE: 0.0031 - val_loss: 0.0017 - val_MSE: 0.0031
644+
Epoch 56/100
645+
3055/3055 [==============================] - 66s 22ms/step - loss: 0.0018 - MSE: 0.0030 - val_loss: 0.0018 - val_MSE: 0.0030
646+
Epoch 57/100
647+
3055/3055 [==============================] - 63s 21ms/step - loss: 0.0018 - MSE: 0.0030 - val_loss: 0.0018 - val_MSE: 0.0030
648+
Epoch 58/100
649+
3055/3055 [==============================] - 62s 20ms/step - loss: 0.0017 - MSE: 0.0030 - val_loss: 0.0020 - val_MSE: 0.0030
650+
Epoch 00058: early stopping
651+
652+
display the content of the model
653+
loss : 0.002031383795714456
654+
MSE : 0.0029848262201994658
655+
```
527656

528657
### 3.5) Making predictions happen
529658

530659
Now it is time to prepare our testing data and send it through our deep-learning model to obtain the predictions we are trying to get.
531660

532-
First we need to import the test data:
661+
First we need to import the test data using the same approach we used for the training data using the time steps:
662+
663+
```python
664+
# Testing Data Transformation
665+
x_test = []
666+
y_test = []
667+
for i in range(time_steps, test_scaled.shape[0]):
668+
x_test.append(test_scaled[i - time_steps:i])
669+
y_test.append(test_scaled[i, 0])
670+
671+
x_test, y_test = np.array(x_test), np.array(y_test)
672+
x_test = np.reshape(x_test, (x_test.shape[0], x_test.shape[1], 1))
673+
```
674+
675+
Now we can call the predict method which will allow us to generate the stock prediction based on the training done over the training data. As a result, we will generate a csv file that contains the result of the prediction and also a chart that shows what's the real vs the estimation.
676+
677+
![](https://github.com/JordiCorbilla/stock-prediction-deep-neural-learning/raw/master/Alphabet Inc_prediction.png)
678+
679+
With the validation loss and validation MSE metrics:
680+
681+
![](https://github.com/JordiCorbilla/stock-prediction-deep-neural-learning/raw/master/loss.png)
682+
![](https://github.com/JordiCorbilla/stock-prediction-deep-neural-learning/raw/master/MSE.png)

0 commit comments

Comments
 (0)