diff --git a/Bitcoin Price Prediction.ipynb b/Bitcoin Price Prediction.ipynb index 7831902..e2c6479 100644 --- a/Bitcoin Price Prediction.ipynb +++ b/Bitcoin Price Prediction.ipynb @@ -1,1918 +1,3050 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Importing Libraries" - ] + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "bitcoin1.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "accelerator": "GPU" }, - { - "cell_type": "code", - "execution_count": 153, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import pandas as pd\n", - "import matplotlib.pyplot \n", - "import keras #importing keras using tensorflow as backend\n", - "\n", - "from sklearn.preprocessing import MinMaxScaler\n", - "from sklearn.preprocessing import StandardScaler\n", - "from sklearn.metrics import mean_squared_error\n", - "\n", - "from keras.models import Sequential\n", - "from keras.layers import Dense\n", - "from keras.layers import LSTM" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "# Importing dataset" - ] - }, - { - "cell_type": "code", - "execution_count": 186, - "metadata": {}, - "outputs": [], - "source": [ - "data=pd.read_csv('bitcoin.csv')" - ] - }, - { - "cell_type": "code", - "execution_count": 187, - "metadata": {}, - "outputs": [ + "cells": [ { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
date_iddatetime_idmarketrpt_keylastdiff_24hdiff_per_24hbidasklowhighvolumecreated_atupdated_at
02017-05-312017-06-01 00:00:00bitstampbtc_eur1.996720e+032.029990e+03-1.6389242.005500e+032.005560e+031.950000e+032.063730e+032314.5007502017-05-31 14:59:362017-05-31 14:59:36
12017-05-312017-06-01 00:00:00bitflyerbtc_jpy2.670980e+052.696490e+05-0.9460452.671240e+052.672670e+052.671240e+052.672670e+0570922.8801122017-05-31 14:59:362017-05-31 14:59:36
22017-05-312017-06-01 00:00:00korbitbtc_krw3.003500e+063.140000e+06-4.3471343.003500e+063.004000e+063.002000e+063.209500e+066109.7528722017-05-31 14:59:362017-05-31 14:59:36
32017-05-312017-06-01 00:00:00bitstampbtc_usd2.237400e+032.239370e+03-0.0879712.233090e+032.237400e+032.154280e+032.293460e+0313681.2820172017-05-31 14:59:362017-05-31 14:59:36
42017-05-312017-06-01 00:00:00okcoinbtc_usd2.318820e+032.228700e+034.0436132.319400e+032.319990e+032.129780e+032.318820e+034241.6415162017-05-31 14:59:362017-05-31 14:59:36
.............................................
6271852017-07-142017-07-14 13:18:00korbitetc_krw2.090000e+042.331000e+04-10.3389102.084000e+042.091000e+042.000000e+042.340000e+04842321.2825982017-07-14 04:17:202017-07-14 04:17:20
6271862017-07-142017-07-14 13:18:00bitflyereth_btc8.630000e-029.410000e-02-8.2890548.620000e-028.675000e-028.620000e-028.675000e-024448.2391952017-07-14 04:17:202017-07-14 04:17:20
6271872017-07-142017-07-14 13:18:00korbiteth_krw2.391000e+052.689500e+05-11.0987172.386000e+052.391000e+052.350000e+052.690000e+05117124.4193582017-07-14 04:17:202017-07-14 04:17:20
6271882017-07-142017-07-14 13:18:00bitflyerfx_btc_jpy2.615530e+052.713100e+05-3.5962552.615540e+052.616260e+052.615540e+052.616260e+0573814.1513892017-07-14 04:17:202017-07-14 04:17:20
6271892017-07-142017-07-14 13:18:00okcoinltc_usd4.593100e+014.891700e+01-6.1042174.595400e+014.620000e+014.524100e+014.907500e+0152799.7100002017-07-14 04:17:202017-07-14 04:17:20
\n", - "

627190 rows × 14 columns

\n", - "
" + "cell_type": "code", + "metadata": { + "id": "IhP9A_JS7SGe" + }, + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot \n", + "import keras #importing keras using tensorflow as backend\n", + "\n", + "from sklearn.preprocessing import MinMaxScaler\n", + "from sklearn.preprocessing import StandardScaler\n", + "from sklearn.metrics import mean_squared_error\n", + "from sklearn.model_selection import train_test_split\n", + "\n", + "from keras.models import Sequential\n", + "from keras.layers import Dense\n", + "from keras.layers import LSTM" ], - "text/plain": [ - " date_id datetime_id market rpt_key last \\\n", - "0 2017-05-31 2017-06-01 00:00:00 bitstamp btc_eur 1.996720e+03 \n", - "1 2017-05-31 2017-06-01 00:00:00 bitflyer btc_jpy 2.670980e+05 \n", - "2 2017-05-31 2017-06-01 00:00:00 korbit btc_krw 3.003500e+06 \n", - "3 2017-05-31 2017-06-01 00:00:00 bitstamp btc_usd 2.237400e+03 \n", - "4 2017-05-31 2017-06-01 00:00:00 okcoin btc_usd 2.318820e+03 \n", - "... ... ... ... ... ... \n", - "627185 2017-07-14 2017-07-14 13:18:00 korbit etc_krw 2.090000e+04 \n", - "627186 2017-07-14 2017-07-14 13:18:00 bitflyer eth_btc 8.630000e-02 \n", - "627187 2017-07-14 2017-07-14 13:18:00 korbit eth_krw 2.391000e+05 \n", - "627188 2017-07-14 2017-07-14 13:18:00 bitflyer fx_btc_jpy 2.615530e+05 \n", - "627189 2017-07-14 2017-07-14 13:18:00 okcoin ltc_usd 4.593100e+01 \n", - "\n", - " diff_24h diff_per_24h bid ask low \\\n", - "0 2.029990e+03 -1.638924 2.005500e+03 2.005560e+03 1.950000e+03 \n", - "1 2.696490e+05 -0.946045 2.671240e+05 2.672670e+05 2.671240e+05 \n", - "2 3.140000e+06 -4.347134 3.003500e+06 3.004000e+06 3.002000e+06 \n", - "3 2.239370e+03 -0.087971 2.233090e+03 2.237400e+03 2.154280e+03 \n", - "4 2.228700e+03 4.043613 2.319400e+03 2.319990e+03 2.129780e+03 \n", - "... ... ... ... ... ... \n", - "627185 2.331000e+04 -10.338910 2.084000e+04 2.091000e+04 2.000000e+04 \n", - "627186 9.410000e-02 -8.289054 8.620000e-02 8.675000e-02 8.620000e-02 \n", - "627187 2.689500e+05 -11.098717 2.386000e+05 2.391000e+05 2.350000e+05 \n", - "627188 2.713100e+05 -3.596255 2.615540e+05 2.616260e+05 2.615540e+05 \n", - "627189 4.891700e+01 -6.104217 4.595400e+01 4.620000e+01 4.524100e+01 \n", - "\n", - " high volume created_at updated_at \n", - "0 2.063730e+03 2314.500750 2017-05-31 14:59:36 2017-05-31 14:59:36 \n", - "1 2.672670e+05 70922.880112 2017-05-31 14:59:36 2017-05-31 14:59:36 \n", - "2 3.209500e+06 6109.752872 2017-05-31 14:59:36 2017-05-31 14:59:36 \n", - "3 2.293460e+03 13681.282017 2017-05-31 14:59:36 2017-05-31 14:59:36 \n", - "4 2.318820e+03 4241.641516 2017-05-31 14:59:36 2017-05-31 14:59:36 \n", - "... ... ... ... ... \n", - "627185 2.340000e+04 842321.282598 2017-07-14 04:17:20 2017-07-14 04:17:20 \n", - "627186 8.675000e-02 4448.239195 2017-07-14 04:17:20 2017-07-14 04:17:20 \n", - "627187 2.690000e+05 117124.419358 2017-07-14 04:17:20 2017-07-14 04:17:20 \n", - "627188 2.616260e+05 73814.151389 2017-07-14 04:17:20 2017-07-14 04:17:20 \n", - "627189 4.907500e+01 52799.710000 2017-07-14 04:17:20 2017-07-14 04:17:20 \n", - "\n", - "[627190 rows x 14 columns]" + "execution_count": 2, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "xY8mbaND8GNI" + }, + "source": [ + "df=pd.read_csv('/content/drive/My Drive/bitcoin_ticker.csv')" + ], + "execution_count": 3, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "a2jyX2xX8Lhw", + "outputId": "a34e746e-211c-4ad0-e8ba-49ee1237aff8", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 590 + } + }, + "source": [ + "df" + ], + "execution_count": 4, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
date_iddatetime_idmarketrpt_keylastdiff_24hdiff_per_24hbidasklowhighvolumecreated_atupdated_at
02017-05-312017-06-01 00:00:00bitstampbtc_eur1.996720e+032.029990e+03-1.6389242.005500e+032.005560e+031.950000e+032.063730e+032314.5007502017-05-31 14:59:362017-05-31 14:59:36
12017-05-312017-06-01 00:00:00bitflyerbtc_jpy2.670980e+052.696490e+05-0.9460452.671240e+052.672670e+052.671240e+052.672670e+0570922.8801122017-05-31 14:59:362017-05-31 14:59:36
22017-05-312017-06-01 00:00:00korbitbtc_krw3.003500e+063.140000e+06-4.3471343.003500e+063.004000e+063.002000e+063.209500e+066109.7528722017-05-31 14:59:362017-05-31 14:59:36
32017-05-312017-06-01 00:00:00bitstampbtc_usd2.237400e+032.239370e+03-0.0879712.233090e+032.237400e+032.154280e+032.293460e+0313681.2820172017-05-31 14:59:362017-05-31 14:59:36
42017-05-312017-06-01 00:00:00okcoinbtc_usd2.318820e+032.228700e+034.0436132.319400e+032.319990e+032.129780e+032.318820e+034241.6415162017-05-31 14:59:362017-05-31 14:59:36
.............................................
6271852017-07-142017-07-14 13:18:00korbitetc_krw2.090000e+042.331000e+04-10.3389102.084000e+042.091000e+042.000000e+042.340000e+04842321.2825982017-07-14 04:17:202017-07-14 04:17:20
6271862017-07-142017-07-14 13:18:00bitflyereth_btc8.630000e-029.410000e-02-8.2890548.620000e-028.675000e-028.620000e-028.675000e-024448.2391952017-07-14 04:17:202017-07-14 04:17:20
6271872017-07-142017-07-14 13:18:00korbiteth_krw2.391000e+052.689500e+05-11.0987172.386000e+052.391000e+052.350000e+052.690000e+05117124.4193582017-07-14 04:17:202017-07-14 04:17:20
6271882017-07-142017-07-14 13:18:00bitflyerfx_btc_jpy2.615530e+052.713100e+05-3.5962552.615540e+052.616260e+052.615540e+052.616260e+0573814.1513892017-07-14 04:17:202017-07-14 04:17:20
6271892017-07-142017-07-14 13:18:00okcoinltc_usd4.593100e+014.891700e+01-6.1042174.595400e+014.620000e+014.524100e+014.907500e+0152799.7100002017-07-14 04:17:202017-07-14 04:17:20
\n", + "

627190 rows × 14 columns

\n", + "
" + ], + "text/plain": [ + " date_id ... updated_at\n", + "0 2017-05-31 ... 2017-05-31 14:59:36\n", + "1 2017-05-31 ... 2017-05-31 14:59:36\n", + "2 2017-05-31 ... 2017-05-31 14:59:36\n", + "3 2017-05-31 ... 2017-05-31 14:59:36\n", + "4 2017-05-31 ... 2017-05-31 14:59:36\n", + "... ... ... ...\n", + "627185 2017-07-14 ... 2017-07-14 04:17:20\n", + "627186 2017-07-14 ... 2017-07-14 04:17:20\n", + "627187 2017-07-14 ... 2017-07-14 04:17:20\n", + "627188 2017-07-14 ... 2017-07-14 04:17:20\n", + "627189 2017-07-14 ... 2017-07-14 04:17:20\n", + "\n", + "[627190 rows x 14 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 4 + } ] - }, - "execution_count": 187, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "data" - ] - }, - { - "cell_type": "code", - "execution_count": 157, - "metadata": {}, - "outputs": [ + }, { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
date_iddatetime_idmarketrpt_keylastdiff_24hdiff_per_24hbidasklowhighvolumecreated_atupdated_at
02017-05-312017-06-01 00:00:00bitstampbtc_eur1996.722029.99-1.6389242005.52005.561950.02063.732314.5007502017-05-31 14:59:362017-05-31 14:59:36
12017-05-312017-06-01 00:00:00bitflyerbtc_jpy267098.00269649.00-0.946045267124.0267267.00267124.0267267.0070922.8801122017-05-31 14:59:362017-05-31 14:59:36
\n", - "
" + "cell_type": "code", + "metadata": { + "id": "TqLlTU0d8Rdz", + "outputId": "17631516-f40e-425c-ba30-2935f21f0100", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 299 + } + }, + "source": [ + "df.head(5)" ], - "text/plain": [ - " date_id datetime_id market rpt_key last diff_24h \\\n", - "0 2017-05-31 2017-06-01 00:00:00 bitstamp btc_eur 1996.72 2029.99 \n", - "1 2017-05-31 2017-06-01 00:00:00 bitflyer btc_jpy 267098.00 269649.00 \n", - "\n", - " diff_per_24h bid ask low high volume \\\n", - "0 -1.638924 2005.5 2005.56 1950.0 2063.73 2314.500750 \n", - "1 -0.946045 267124.0 267267.00 267124.0 267267.00 70922.880112 \n", - "\n", - " created_at updated_at \n", - "0 2017-05-31 14:59:36 2017-05-31 14:59:36 \n", - "1 2017-05-31 14:59:36 2017-05-31 14:59:36 " + "execution_count": 5, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
date_iddatetime_idmarketrpt_keylastdiff_24hdiff_per_24hbidasklowhighvolumecreated_atupdated_at
02017-05-312017-06-01 00:00:00bitstampbtc_eur1996.722029.99-1.6389242005.502005.561950.002063.732314.5007502017-05-31 14:59:362017-05-31 14:59:36
12017-05-312017-06-01 00:00:00bitflyerbtc_jpy267098.00269649.00-0.946045267124.00267267.00267124.00267267.0070922.8801122017-05-31 14:59:362017-05-31 14:59:36
22017-05-312017-06-01 00:00:00korbitbtc_krw3003500.003140000.00-4.3471343003500.003004000.003002000.003209500.006109.7528722017-05-31 14:59:362017-05-31 14:59:36
32017-05-312017-06-01 00:00:00bitstampbtc_usd2237.402239.37-0.0879712233.092237.402154.282293.4613681.2820172017-05-31 14:59:362017-05-31 14:59:36
42017-05-312017-06-01 00:00:00okcoinbtc_usd2318.822228.704.0436132319.402319.992129.782318.824241.6415162017-05-31 14:59:362017-05-31 14:59:36
\n", + "
" + ], + "text/plain": [ + " date_id datetime_id ... created_at updated_at\n", + "0 2017-05-31 2017-06-01 00:00:00 ... 2017-05-31 14:59:36 2017-05-31 14:59:36\n", + "1 2017-05-31 2017-06-01 00:00:00 ... 2017-05-31 14:59:36 2017-05-31 14:59:36\n", + "2 2017-05-31 2017-06-01 00:00:00 ... 2017-05-31 14:59:36 2017-05-31 14:59:36\n", + "3 2017-05-31 2017-06-01 00:00:00 ... 2017-05-31 14:59:36 2017-05-31 14:59:36\n", + "4 2017-05-31 2017-06-01 00:00:00 ... 2017-05-31 14:59:36 2017-05-31 14:59:36\n", + "\n", + "[5 rows x 14 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 5 + } ] - }, - "execution_count": 157, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dataset.head(2)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Data Preprocessing" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### The value_counts() function is used to get a Series containing counts of unique values.rpt_key consists of different kinds of currencies" - ] - }, - { - "cell_type": "code", - "execution_count": 188, - "metadata": {}, - "outputs": [ + }, { - "data": { - "text/plain": [ - "btc_usd 125438\n", - "etc_krw 62719\n", - "fx_btc_jpy 62719\n", - "btc_eur 62719\n", - "eth_btc 62719\n", - "btc_krw 62719\n", - "btc_jpy 62719\n", - "ltc_usd 62719\n", - "eth_krw 62719\n", - "Name: rpt_key, dtype: int64" + "cell_type": "code", + "metadata": { + "id": "qvwfdaSv8XUo", + "outputId": "9934c8a3-69b2-4e53-a577-fe9d069eed23", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 299 + } + }, + "source": [ + "df.tail()" + ], + "execution_count": 6, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
date_iddatetime_idmarketrpt_keylastdiff_24hdiff_per_24hbidasklowhighvolumecreated_atupdated_at
6271852017-07-142017-07-14 13:18:00korbitetc_krw20900.000023310.0000-10.33891020840.000020910.0000020000.000023400.00000842321.2825982017-07-14 04:17:202017-07-14 04:17:20
6271862017-07-142017-07-14 13:18:00bitflyereth_btc0.08630.0941-8.2890540.08620.086750.08620.086754448.2391952017-07-14 04:17:202017-07-14 04:17:20
6271872017-07-142017-07-14 13:18:00korbiteth_krw239100.0000268950.0000-11.098717238600.0000239100.00000235000.0000269000.00000117124.4193582017-07-14 04:17:202017-07-14 04:17:20
6271882017-07-142017-07-14 13:18:00bitflyerfx_btc_jpy261553.0000271310.0000-3.596255261554.0000261626.00000261554.0000261626.0000073814.1513892017-07-14 04:17:202017-07-14 04:17:20
6271892017-07-142017-07-14 13:18:00okcoinltc_usd45.931048.9170-6.10421745.954046.2000045.241049.0750052799.7100002017-07-14 04:17:202017-07-14 04:17:20
\n", + "
" + ], + "text/plain": [ + " date_id ... updated_at\n", + "627185 2017-07-14 ... 2017-07-14 04:17:20\n", + "627186 2017-07-14 ... 2017-07-14 04:17:20\n", + "627187 2017-07-14 ... 2017-07-14 04:17:20\n", + "627188 2017-07-14 ... 2017-07-14 04:17:20\n", + "627189 2017-07-14 ... 2017-07-14 04:17:20\n", + "\n", + "[5 rows x 14 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 6 + } ] - }, - "execution_count": 188, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "data['rpt_key'].value_counts()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Price in various currencies are given-Considering only USD " - ] - }, - { - "cell_type": "code", - "execution_count": 192, - "metadata": {}, - "outputs": [], - "source": [ - "df= data.loc[(data['rpt_key']=='btc_usd')]" - ] - }, - { - "cell_type": "code", - "execution_count": 190, - "metadata": {}, - "outputs": [ + }, { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
last
02237.40
12318.82
22248.39
32320.42
42248.35
......
1254332394.03
1254342320.47
1254352394.03
1254362320.47
1254372394.03
\n", - "

125438 rows × 1 columns

\n", - "
" + "cell_type": "markdown", + "metadata": { + "id": "z31CwGRc8gdf" + }, + "source": [ + "## Data Preprocessing" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "WKSlGhK-8rug" + }, + "source": [ + "### The value_counts() function is used to get a Series containing counts of unique values.rpt_key consists of different kinds of currencies" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Kratxv_s8ZrS", + "outputId": "abe5df8b-e236-4755-ec48-7306e604e7c0", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 185 + } + }, + "source": [ + "df['rpt_key'].value_counts()" ], - "text/plain": [ - " last\n", - "0 2237.40\n", - "1 2318.82\n", - "2 2248.39\n", - "3 2320.42\n", - "4 2248.35\n", - "... ...\n", - "125433 2394.03\n", - "125434 2320.47\n", - "125435 2394.03\n", - "125436 2320.47\n", - "125437 2394.03\n", - "\n", - "[125438 rows x 1 columns]" + "execution_count": 7, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "btc_usd 125438\n", + "fx_btc_jpy 62719\n", + "btc_jpy 62719\n", + "btc_eur 62719\n", + "ltc_usd 62719\n", + "etc_krw 62719\n", + "eth_krw 62719\n", + "btc_krw 62719\n", + "eth_btc 62719\n", + "Name: rpt_key, dtype: int64" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 7 + } ] - }, - "execution_count": 190, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 193, - "metadata": {}, - "outputs": [ + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ABa6Q7A18qy0" + }, + "source": [ + "### Price in various currencies are given-Considering only USD " + ] + }, { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
date_iddatetime_idmarketrpt_keylastdiff_24hdiff_per_24hbidasklowhighvolumecreated_atupdated_at
32017-05-312017-06-01 00:00:00bitstampbtc_usd2237.402239.37-0.0879712233.092237.402154.282293.4613681.2820172017-05-31 14:59:362017-05-31 14:59:36
42017-05-312017-06-01 00:00:00okcoinbtc_usd2318.822228.704.0436132319.402319.992129.782318.824241.6415162017-05-31 14:59:362017-05-31 14:59:36
152017-06-012017-06-01 00:01:00bitstampbtc_usd2248.392242.440.2653362247.772248.382154.282293.4613701.6986032017-05-31 15:00:362017-05-31 15:00:36
162017-06-012017-06-01 00:01:00okcoinbtc_usd2320.422228.404.1294202320.992321.492129.782322.004260.2615162017-05-31 15:00:362017-05-31 15:00:36
232017-06-012017-06-01 00:02:00bitstampbtc_usd2248.352238.580.4364372248.352248.692154.282293.4613742.1109132017-05-31 15:01:362017-05-31 15:01:36
\n", - "
" + "cell_type": "markdown", + "metadata": { + "id": "W8mO3ym98f10" + }, + "source": [ + "" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "gBdEdg45804p" + }, + "source": [ + "df= df.loc[(df['rpt_key']=='btc_usd')]" ], - "text/plain": [ - " date_id datetime_id market rpt_key last diff_24h \\\n", - "3 2017-05-31 2017-06-01 00:00:00 bitstamp btc_usd 2237.40 2239.37 \n", - "4 2017-05-31 2017-06-01 00:00:00 okcoin btc_usd 2318.82 2228.70 \n", - "15 2017-06-01 2017-06-01 00:01:00 bitstamp btc_usd 2248.39 2242.44 \n", - "16 2017-06-01 2017-06-01 00:01:00 okcoin btc_usd 2320.42 2228.40 \n", - "23 2017-06-01 2017-06-01 00:02:00 bitstamp btc_usd 2248.35 2238.58 \n", - "\n", - " diff_per_24h bid ask low high volume \\\n", - "3 -0.087971 2233.09 2237.40 2154.28 2293.46 13681.282017 \n", - "4 4.043613 2319.40 2319.99 2129.78 2318.82 4241.641516 \n", - "15 0.265336 2247.77 2248.38 2154.28 2293.46 13701.698603 \n", - "16 4.129420 2320.99 2321.49 2129.78 2322.00 4260.261516 \n", - "23 0.436437 2248.35 2248.69 2154.28 2293.46 13742.110913 \n", - "\n", - " created_at updated_at \n", - "3 2017-05-31 14:59:36 2017-05-31 14:59:36 \n", - "4 2017-05-31 14:59:36 2017-05-31 14:59:36 \n", - "15 2017-05-31 15:00:36 2017-05-31 15:00:36 \n", - "16 2017-05-31 15:00:36 2017-05-31 15:00:36 \n", - "23 2017-05-31 15:01:36 2017-05-31 15:01:36 " + "execution_count": 8, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "stvRkMYG81nZ", + "outputId": "78c9fd99-12c3-4e6f-8969-62a1a6adff4c", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 590 + } + }, + "source": [ + "df" + ], + "execution_count": 9, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
date_iddatetime_idmarketrpt_keylastdiff_24hdiff_per_24hbidasklowhighvolumecreated_atupdated_at
32017-05-312017-06-01 00:00:00bitstampbtc_usd2237.402239.37-0.0879712233.092237.402154.282293.4613681.2820172017-05-31 14:59:362017-05-31 14:59:36
42017-05-312017-06-01 00:00:00okcoinbtc_usd2318.822228.704.0436132319.402319.992129.782318.824241.6415162017-05-31 14:59:362017-05-31 14:59:36
152017-06-012017-06-01 00:01:00bitstampbtc_usd2248.392242.440.2653362247.772248.382154.282293.4613701.6986032017-05-31 15:00:362017-05-31 15:00:36
162017-06-012017-06-01 00:01:00okcoinbtc_usd2320.422228.404.1294202320.992321.492129.782322.004260.2615162017-05-31 15:00:362017-05-31 15:00:36
232017-06-012017-06-01 00:02:00bitstampbtc_usd2248.352238.580.4364372248.352248.692154.282293.4613742.1109132017-05-31 15:01:362017-05-31 15:01:36
.............................................
6271642017-07-142017-07-14 13:16:00okcoinbtc_usd2394.032500.01-4.2391832394.352405.722378.022529.201111.5400002017-07-14 04:15:202017-07-14 04:15:20
6271732017-07-142017-07-14 13:17:00bitstampbtc_usd2320.472407.06-3.5973352320.482322.552307.462413.607969.2635832017-07-14 04:16:202017-07-14 04:16:20
6271742017-07-142017-07-14 13:17:00okcoinbtc_usd2394.032500.01-4.2391832394.422405.692378.022529.201111.5400002017-07-14 04:16:202017-07-14 04:16:20
6271832017-07-142017-07-14 13:18:00bitstampbtc_usd2320.472408.00-3.6349672320.572322.552307.462413.607968.9707152017-07-14 04:17:202017-07-14 04:17:20
6271842017-07-142017-07-14 13:18:00okcoinbtc_usd2394.032500.01-4.2391832394.172405.692378.022529.201111.2210002017-07-14 04:17:202017-07-14 04:17:20
\n", + "

125438 rows × 14 columns

\n", + "
" + ], + "text/plain": [ + " date_id ... updated_at\n", + "3 2017-05-31 ... 2017-05-31 14:59:36\n", + "4 2017-05-31 ... 2017-05-31 14:59:36\n", + "15 2017-06-01 ... 2017-05-31 15:00:36\n", + "16 2017-06-01 ... 2017-05-31 15:00:36\n", + "23 2017-06-01 ... 2017-05-31 15:01:36\n", + "... ... ... ...\n", + "627164 2017-07-14 ... 2017-07-14 04:15:20\n", + "627173 2017-07-14 ... 2017-07-14 04:16:20\n", + "627174 2017-07-14 ... 2017-07-14 04:16:20\n", + "627183 2017-07-14 ... 2017-07-14 04:17:20\n", + "627184 2017-07-14 ... 2017-07-14 04:17:20\n", + "\n", + "[125438 rows x 14 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 9 + } ] - }, - "execution_count": 193, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df.head()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### datetime_id to datatime" - ] - }, - { - "cell_type": "code", - "execution_count": 194, - "metadata": {}, - "outputs": [], - "source": [ - "df=df.reset_index(drop=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 195, - "metadata": {}, - "outputs": [], - "source": [ - "df['datetime']=pd.to_datetime(df['datetime_id'])" - ] - }, - { - "cell_type": "code", - "execution_count": 196, - "metadata": {}, - "outputs": [ + }, { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
date_iddatetime_idmarketrpt_keylastdiff_24hdiff_per_24hbidasklowhighvolumecreated_atupdated_atdatetime
02017-05-312017-06-01 00:00:00bitstampbtc_usd2237.402239.37-0.0879712233.092237.402154.282293.4613681.2820172017-05-31 14:59:362017-05-31 14:59:362017-06-01 00:00:00
12017-05-312017-06-01 00:00:00okcoinbtc_usd2318.822228.704.0436132319.402319.992129.782318.824241.6415162017-05-31 14:59:362017-05-31 14:59:362017-06-01 00:00:00
22017-06-012017-06-01 00:01:00bitstampbtc_usd2248.392242.440.2653362247.772248.382154.282293.4613701.6986032017-05-31 15:00:362017-05-31 15:00:362017-06-01 00:01:00
32017-06-012017-06-01 00:01:00okcoinbtc_usd2320.422228.404.1294202320.992321.492129.782322.004260.2615162017-05-31 15:00:362017-05-31 15:00:362017-06-01 00:01:00
42017-06-012017-06-01 00:02:00bitstampbtc_usd2248.352238.580.4364372248.352248.692154.282293.4613742.1109132017-05-31 15:01:362017-05-31 15:01:362017-06-01 00:02:00
................................................
1254332017-07-142017-07-14 13:16:00okcoinbtc_usd2394.032500.01-4.2391832394.352405.722378.022529.201111.5400002017-07-14 04:15:202017-07-14 04:15:202017-07-14 13:16:00
1254342017-07-142017-07-14 13:17:00bitstampbtc_usd2320.472407.06-3.5973352320.482322.552307.462413.607969.2635832017-07-14 04:16:202017-07-14 04:16:202017-07-14 13:17:00
1254352017-07-142017-07-14 13:17:00okcoinbtc_usd2394.032500.01-4.2391832394.422405.692378.022529.201111.5400002017-07-14 04:16:202017-07-14 04:16:202017-07-14 13:17:00
1254362017-07-142017-07-14 13:18:00bitstampbtc_usd2320.472408.00-3.6349672320.572322.552307.462413.607968.9707152017-07-14 04:17:202017-07-14 04:17:202017-07-14 13:18:00
1254372017-07-142017-07-14 13:18:00okcoinbtc_usd2394.032500.01-4.2391832394.172405.692378.022529.201111.2210002017-07-14 04:17:202017-07-14 04:17:202017-07-14 13:18:00
\n", - "

125438 rows × 15 columns

\n", - "
" + "cell_type": "code", + "metadata": { + "id": "AIkUHRto84IZ", + "outputId": "b01e2443-02fe-468c-ecaf-6a20c8007e98", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 299 + } + }, + "source": [ + "df.head()" ], - "text/plain": [ - " date_id datetime_id market rpt_key last diff_24h \\\n", - "0 2017-05-31 2017-06-01 00:00:00 bitstamp btc_usd 2237.40 2239.37 \n", - "1 2017-05-31 2017-06-01 00:00:00 okcoin btc_usd 2318.82 2228.70 \n", - "2 2017-06-01 2017-06-01 00:01:00 bitstamp btc_usd 2248.39 2242.44 \n", - "3 2017-06-01 2017-06-01 00:01:00 okcoin btc_usd 2320.42 2228.40 \n", - "4 2017-06-01 2017-06-01 00:02:00 bitstamp btc_usd 2248.35 2238.58 \n", - "... ... ... ... ... ... ... \n", - "125433 2017-07-14 2017-07-14 13:16:00 okcoin btc_usd 2394.03 2500.01 \n", - "125434 2017-07-14 2017-07-14 13:17:00 bitstamp btc_usd 2320.47 2407.06 \n", - "125435 2017-07-14 2017-07-14 13:17:00 okcoin btc_usd 2394.03 2500.01 \n", - "125436 2017-07-14 2017-07-14 13:18:00 bitstamp btc_usd 2320.47 2408.00 \n", - "125437 2017-07-14 2017-07-14 13:18:00 okcoin btc_usd 2394.03 2500.01 \n", - "\n", - " diff_per_24h bid ask low high volume \\\n", - "0 -0.087971 2233.09 2237.40 2154.28 2293.46 13681.282017 \n", - "1 4.043613 2319.40 2319.99 2129.78 2318.82 4241.641516 \n", - "2 0.265336 2247.77 2248.38 2154.28 2293.46 13701.698603 \n", - "3 4.129420 2320.99 2321.49 2129.78 2322.00 4260.261516 \n", - "4 0.436437 2248.35 2248.69 2154.28 2293.46 13742.110913 \n", - "... ... ... ... ... ... ... \n", - "125433 -4.239183 2394.35 2405.72 2378.02 2529.20 1111.540000 \n", - "125434 -3.597335 2320.48 2322.55 2307.46 2413.60 7969.263583 \n", - "125435 -4.239183 2394.42 2405.69 2378.02 2529.20 1111.540000 \n", - "125436 -3.634967 2320.57 2322.55 2307.46 2413.60 7968.970715 \n", - "125437 -4.239183 2394.17 2405.69 2378.02 2529.20 1111.221000 \n", - "\n", - " created_at updated_at datetime \n", - "0 2017-05-31 14:59:36 2017-05-31 14:59:36 2017-06-01 00:00:00 \n", - "1 2017-05-31 14:59:36 2017-05-31 14:59:36 2017-06-01 00:00:00 \n", - "2 2017-05-31 15:00:36 2017-05-31 15:00:36 2017-06-01 00:01:00 \n", - "3 2017-05-31 15:00:36 2017-05-31 15:00:36 2017-06-01 00:01:00 \n", - "4 2017-05-31 15:01:36 2017-05-31 15:01:36 2017-06-01 00:02:00 \n", - "... ... ... ... \n", - "125433 2017-07-14 04:15:20 2017-07-14 04:15:20 2017-07-14 13:16:00 \n", - "125434 2017-07-14 04:16:20 2017-07-14 04:16:20 2017-07-14 13:17:00 \n", - "125435 2017-07-14 04:16:20 2017-07-14 04:16:20 2017-07-14 13:17:00 \n", - "125436 2017-07-14 04:17:20 2017-07-14 04:17:20 2017-07-14 13:18:00 \n", - "125437 2017-07-14 04:17:20 2017-07-14 04:17:20 2017-07-14 13:18:00 \n", - "\n", - "[125438 rows x 15 columns]" + "execution_count": 10, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
date_iddatetime_idmarketrpt_keylastdiff_24hdiff_per_24hbidasklowhighvolumecreated_atupdated_at
32017-05-312017-06-01 00:00:00bitstampbtc_usd2237.402239.37-0.0879712233.092237.402154.282293.4613681.2820172017-05-31 14:59:362017-05-31 14:59:36
42017-05-312017-06-01 00:00:00okcoinbtc_usd2318.822228.704.0436132319.402319.992129.782318.824241.6415162017-05-31 14:59:362017-05-31 14:59:36
152017-06-012017-06-01 00:01:00bitstampbtc_usd2248.392242.440.2653362247.772248.382154.282293.4613701.6986032017-05-31 15:00:362017-05-31 15:00:36
162017-06-012017-06-01 00:01:00okcoinbtc_usd2320.422228.404.1294202320.992321.492129.782322.004260.2615162017-05-31 15:00:362017-05-31 15:00:36
232017-06-012017-06-01 00:02:00bitstampbtc_usd2248.352238.580.4364372248.352248.692154.282293.4613742.1109132017-05-31 15:01:362017-05-31 15:01:36
\n", + "
" + ], + "text/plain": [ + " date_id datetime_id ... created_at updated_at\n", + "3 2017-05-31 2017-06-01 00:00:00 ... 2017-05-31 14:59:36 2017-05-31 14:59:36\n", + "4 2017-05-31 2017-06-01 00:00:00 ... 2017-05-31 14:59:36 2017-05-31 14:59:36\n", + "15 2017-06-01 2017-06-01 00:01:00 ... 2017-05-31 15:00:36 2017-05-31 15:00:36\n", + "16 2017-06-01 2017-06-01 00:01:00 ... 2017-05-31 15:00:36 2017-05-31 15:00:36\n", + "23 2017-06-01 2017-06-01 00:02:00 ... 2017-05-31 15:01:36 2017-05-31 15:01:36\n", + "\n", + "[5 rows x 14 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 10 + } ] - }, - "execution_count": 196, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 65, - "metadata": {}, - "outputs": [], - "source": [ - "df=df[['datetime','last','diff_24h','diff_per_24h','bid','ask','low','high','volume']]" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ + }, + { + "cell_type": "markdown", + "metadata": { + "id": "djZTPOwy894X" + }, + "source": [ + "### datetime_id to datatime" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "hC2QnfOn86_q" + }, + "source": [ + "df1=df.reset_index(drop=True)['last']" + ], + "execution_count": 11, + "outputs": [] + }, { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
datetimelastdiff_24hdiff_per_24hbidasklowhighvolume
02017-06-01 00:00:002237.402239.37-0.0879712233.092237.402154.282293.4613681.282017
12017-06-01 00:00:002318.822228.704.0436132319.402319.992129.782318.824241.641516
22017-06-01 00:01:002248.392242.440.2653362247.772248.382154.282293.4613701.698603
32017-06-01 00:01:002320.422228.404.1294202320.992321.492129.782322.004260.261516
42017-06-01 00:02:002248.352238.580.4364372248.352248.692154.282293.4613742.110913
..............................
1254332017-07-14 13:16:002394.032500.01-4.2391832394.352405.722378.022529.201111.540000
1254342017-07-14 13:17:002320.472407.06-3.5973352320.482322.552307.462413.607969.263583
1254352017-07-14 13:17:002394.032500.01-4.2391832394.422405.692378.022529.201111.540000
1254362017-07-14 13:18:002320.472408.00-3.6349672320.572322.552307.462413.607968.970715
1254372017-07-14 13:18:002394.032500.01-4.2391832394.172405.692378.022529.201111.221000
\n", - "

125438 rows × 9 columns

\n", - "
" + "cell_type": "code", + "metadata": { + "id": "zie_98P28-lE", + "outputId": "18579997-42b2-4884-9bde-018638496016", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 218 + } + }, + "source": [ + "df1" ], - "text/plain": [ - " datetime last diff_24h diff_per_24h bid ask \\\n", - "0 2017-06-01 00:00:00 2237.40 2239.37 -0.087971 2233.09 2237.40 \n", - "1 2017-06-01 00:00:00 2318.82 2228.70 4.043613 2319.40 2319.99 \n", - "2 2017-06-01 00:01:00 2248.39 2242.44 0.265336 2247.77 2248.38 \n", - "3 2017-06-01 00:01:00 2320.42 2228.40 4.129420 2320.99 2321.49 \n", - "4 2017-06-01 00:02:00 2248.35 2238.58 0.436437 2248.35 2248.69 \n", - "... ... ... ... ... ... ... \n", - "125433 2017-07-14 13:16:00 2394.03 2500.01 -4.239183 2394.35 2405.72 \n", - "125434 2017-07-14 13:17:00 2320.47 2407.06 -3.597335 2320.48 2322.55 \n", - "125435 2017-07-14 13:17:00 2394.03 2500.01 -4.239183 2394.42 2405.69 \n", - "125436 2017-07-14 13:18:00 2320.47 2408.00 -3.634967 2320.57 2322.55 \n", - "125437 2017-07-14 13:18:00 2394.03 2500.01 -4.239183 2394.17 2405.69 \n", - "\n", - " low high volume \n", - "0 2154.28 2293.46 13681.282017 \n", - "1 2129.78 2318.82 4241.641516 \n", - "2 2154.28 2293.46 13701.698603 \n", - "3 2129.78 2322.00 4260.261516 \n", - "4 2154.28 2293.46 13742.110913 \n", - "... ... ... ... \n", - "125433 2378.02 2529.20 1111.540000 \n", - "125434 2307.46 2413.60 7969.263583 \n", - "125435 2378.02 2529.20 1111.540000 \n", - "125436 2307.46 2413.60 7968.970715 \n", - "125437 2378.02 2529.20 1111.221000 \n", - "\n", - "[125438 rows x 9 columns]" + "execution_count": 12, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0 2237.40\n", + "1 2318.82\n", + "2 2248.39\n", + "3 2320.42\n", + "4 2248.35\n", + " ... \n", + "125433 2394.03\n", + "125434 2320.47\n", + "125435 2394.03\n", + "125436 2320.47\n", + "125437 2394.03\n", + "Name: last, Length: 125438, dtype: float64" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 12 + } ] - }, - "execution_count": 26, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 197, - "metadata": {}, - "outputs": [], - "source": [ - "df=df[['last']]" - ] - }, - { - "cell_type": "code", - "execution_count": 198, - "metadata": {}, - "outputs": [ + }, + { + "cell_type": "markdown", + "metadata": { + "id": "shN1oEhk9FTJ" + }, + "source": [ + "### Feature scaling (Scaling last values between 0-1)" + ] + }, { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
last
02237.40
12318.82
22248.39
32320.42
42248.35
......
1254332394.03
1254342320.47
1254352394.03
1254362320.47
1254372394.03
\n", - "

125438 rows × 1 columns

\n", - "
" + "cell_type": "code", + "metadata": { + "id": "N8YpXwhP9C25" + }, + "source": [ + "scaler=MinMaxScaler(feature_range=(0,1))\n", + "df1=scaler.fit_transform(np.array(df1).reshape(-1,1))" ], - "text/plain": [ - " last\n", - "0 2237.40\n", - "1 2318.82\n", - "2 2248.39\n", - "3 2320.42\n", - "4 2248.35\n", - "... ...\n", - "125433 2394.03\n", - "125434 2320.47\n", - "125435 2394.03\n", - "125436 2320.47\n", - "125437 2394.03\n", - "\n", - "[125438 rows x 1 columns]" + "execution_count": 13, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "9nHNoqSu9F80", + "outputId": "b49d861e-0d7f-480a-9c9b-0a105283031e", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 134 + } + }, + "source": [ + "print(df1)" + ], + "execution_count": 14, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[[0. ]\n", + " [0.08614141]\n", + " [0.01162729]\n", + " ...\n", + " [0.16571271]\n", + " [0.08788709]\n", + " [0.16571271]]\n" + ], + "name": "stdout" + } ] - }, - "execution_count": 198, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "df" - ] - }, - { - "cell_type": "code", - "execution_count": 199, - "metadata": {}, - "outputs": [], - "source": [ - "dataset=df.values" - ] - }, - { - "cell_type": "code", - "execution_count": 200, - "metadata": {}, - "outputs": [ + }, { - "data": { - "text/plain": [ - "array([[2237.4 ],\n", - " [2318.82],\n", - " [2248.39],\n", - " ...,\n", - " [2394.03],\n", - " [2320.47],\n", - " [2394.03]])" + "cell_type": "markdown", + "metadata": { + "id": "8XL-0eqN9Pzj" + }, + "source": [ + "### Splitting dataset into training and testing" ] - }, - "execution_count": 200, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dataset" - ] - }, - { - "cell_type": "code", - "execution_count": 201, - "metadata": {}, - "outputs": [], - "source": [ - "dataset=dataset.astype('float32')" - ] - }, - { - "cell_type": "code", - "execution_count": 169, - "metadata": {}, - "outputs": [ + }, + { + "cell_type": "code", + "metadata": { + "id": "smjMrVP_9L31" + }, + "source": [ + "##splitting dataset into train and test split\n", + "training_size=int(len(df1)*0.65)\n", + "test_size=len(df1)-training_size\n", + "train_data,test_data=df1[0:training_size,:],df1[training_size:len(df1),:1]" + ], + "execution_count": 15, + "outputs": [] + }, { - "data": { - "text/plain": [ - "array([[2237.4 ],\n", - " [2318.82],\n", - " [2248.39],\n", - " ...,\n", - " [2394.03],\n", - " [2320.47],\n", - " [2394.03]], dtype=float32)" + "cell_type": "code", + "metadata": { + "id": "WrHLu81h9Qgi", + "outputId": "5cdfa23b-3886-4e13-917d-3dacaf940523", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "training_size,test_size" + ], + "execution_count": 16, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(81534, 43904)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 16 + } ] - }, - "execution_count": 169, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dataset" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Feature scaling (Scaling last values between 0-1)" - ] - }, - { - "cell_type": "code", - "execution_count": 202, - "metadata": {}, - "outputs": [], - "source": [ - "scaler =MinMaxScaler(feature_range=(0,1))" - ] - }, - { - "cell_type": "code", - "execution_count": 203, - "metadata": {}, - "outputs": [], - "source": [ - "dataset=scaler.fit_transform(dataset)" - ] - }, - { - "cell_type": "code", - "execution_count": 204, - "metadata": {}, - "outputs": [ + }, { - "data": { - "text/plain": [ - "array([[0. ],\n", - " [0.08614159],\n", - " [0.0116272 ],\n", - " ...,\n", - " [0.16571283],\n", - " [0.08788705],\n", - " [0.16571283]], dtype=float32)" + "cell_type": "code", + "metadata": { + "id": "7BLdzlXW9V5U", + "outputId": "c48d682c-2b78-43a0-a2c4-0ea5a5ccaea3", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 134 + } + }, + "source": [ + "train_data" + ], + "execution_count": 17, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[0. ],\n", + " [0.08614141],\n", + " [0.01162729],\n", + " ...,\n", + " [0.48484432],\n", + " [0.35211968],\n", + " [0.48241094]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 17 + } ] - }, - "execution_count": 204, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "dataset" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Splitting dataset into training and testing" - ] - }, - { - "cell_type": "code", - "execution_count": 205, - "metadata": {}, - "outputs": [], - "source": [ - "train,test=train_test_split(dataset,test_size=0.33,random_state=0)" - ] - }, - { - "cell_type": "code", - "execution_count": 206, - "metadata": {}, - "outputs": [ + }, { - "data": { - "text/plain": [ - "84043" + "cell_type": "code", + "metadata": { + "id": "LTAwhY8T9X0Y", + "outputId": "65850416-5be0-4bba-ebbf-52b880d82c3d", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 134 + } + }, + "source": [ + "test_data" + ], + "execution_count": 18, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[0.35186576],\n", + " [0.47718448],\n", + " [0.3470625 ],\n", + " ...,\n", + " [0.16571271],\n", + " [0.08788709],\n", + " [0.16571271]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 18 + } ] - }, - "execution_count": 206, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(train)" - ] - }, - { - "cell_type": "code", - "execution_count": 175, - "metadata": {}, - "outputs": [ + }, { - "data": { - "text/plain": [ - "41395" + "cell_type": "markdown", + "metadata": { + "id": "EjVLBAdu9e6t" + }, + "source": [ + "### Convert an array of values(numpy array) into a dataset Matrix" ] - }, - "execution_count": 175, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "len(test)" - ] - }, - { - "cell_type": "code", - "execution_count": 227, - "metadata": {}, - "outputs": [ + }, + { + "cell_type": "code", + "metadata": { + "id": "XjpHJbUS9ZtF" + }, + "source": [ + "import numpy\n", + "def create_dataset(dataset, time_step=1):\n", + " dataX, dataY = [], []\n", + " for i in range(len(dataset)-time_step-1):\n", + " a = dataset[i:(i+time_step), 0] \n", + " dataX.append(a)\n", + " dataY.append(dataset[i + time_step, 0])\n", + " return numpy.array(dataX), numpy.array(dataY)" + ], + "execution_count": 19, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "8WCJc7Ff9fcK" + }, + "source": [ + "# reshape \n", + "time_step = 10\n", + "X_train, y_train = create_dataset(train_data, time_step)\n", + "X_test, ytest = create_dataset(test_data, time_step)" + ], + "execution_count": 22, + "outputs": [] + }, { - "data": { - "text/plain": [ - "array([[0.5971708 ],\n", - " [0.15901566],\n", - " [0.27108812],\n", - " ...,\n", - " [0.5971708 ],\n", - " [0.5971708 ],\n", - " [0.26934266]], dtype=float32)" + "cell_type": "code", + "metadata": { + "id": "HS6UPxpY9knB", + "outputId": "4e1ee66c-9ba2-4e15-a8d1-bbd0c84ee9ad", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 67 + } + }, + "source": [ + "print(X_train.shape), print(y_train.shape)" + ], + "execution_count": 23, + "outputs": [ + { + "output_type": "stream", + "text": [ + "(81523, 10)\n", + "(81523,)\n" + ], + "name": "stdout" + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(None, None)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 23 + } ] - }, - "execution_count": 227, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "train" - ] - }, - { - "cell_type": "code", - "execution_count": 229, - "metadata": {}, - "outputs": [ + }, { - "data": { - "text/plain": [ - "array([[0.47064614],\n", - " [0.4541626 ],\n", - " [0.5423248 ],\n", - " ...,\n", - " [0.1720078 ],\n", - " [0.6753137 ],\n", - " [0.7989187 ]], dtype=float32)" + "cell_type": "code", + "metadata": { + "id": "Yeuo6kc79m-p", + "outputId": "23941dde-929e-4a16-9ecd-5bece70763cc", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 50 + } + }, + "source": [ + "y_train" + ], + "execution_count": 24, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([0.02114919, 0.14533586, 0.01936119, ..., 0.34454448, 0.48484432,\n", + " 0.35211968])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 24 + } ] - }, - "execution_count": 229, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "test" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Convert an array of values(numpy array) into a dataset Matrix" - ] - }, - { - "cell_type": "code", - "execution_count": 271, - "metadata": {}, - "outputs": [], - "source": [ - "def create_dataset(dataset,look_back=1):\n", - " dataX,dataY=[],[]\n", - " for i in range(len(dataset)-look_back-1):\n", - " a=dataset[i:(i+look_back),0]\n", - " dataX.append(a)\n", - " dataY.append(dataset[i+look_back,0])\n", - " return np.array(dataX),np.array(dataY)" - ] - }, - { - "cell_type": "code", - "execution_count": 291, - "metadata": {}, - "outputs": [], - "source": [ - "# reshaping into X=t and Y=t+1\n", - "look_back=10\n", - "trainX ,trainY =create_dataset(train,look_back=look_back)\n", - "testX,testY =create_dataset(test,look_back=look_back)" - ] - }, - { - "cell_type": "code", - "execution_count": 292, - "metadata": {}, - "outputs": [ + }, { - "data": { - "text/plain": [ - "array([[0.5971708 , 0.15901566, 0.27108812, ..., 0.29841614, 0.47064614,\n", - " 0.06937218],\n", - " [0.15901566, 0.27108812, 0.47064614, ..., 0.47064614, 0.06937218,\n", - " 0.47064614],\n", - " [0.27108812, 0.47064614, 0.21280384, ..., 0.06937218, 0.47064614,\n", - " 0.3046689 ],\n", - " ...,\n", - " [0.4206879 , 0.33919096, 0.26934266, ..., 0.5080776 , 0.49527597,\n", - " 0.5971708 ],\n", - " [0.33919096, 0.26934266, 0.4069128 , ..., 0.49527597, 0.5971708 ,\n", - " 0.1350205 ],\n", - " [0.26934266, 0.4069128 , 0.2817421 , ..., 0.5971708 , 0.1350205 ,\n", - " 0.5971708 ]], dtype=float32)" + "cell_type": "code", + "metadata": { + "id": "KSmf_kzG98O_", + "outputId": "983d15ad-2816-4430-ba51-07579aa61456", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 235 + } + }, + "source": [ + "X_train" + ], + "execution_count": 25, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[0. , 0.08614141, 0.01162729, ..., 0.13436452, 0.01732985,\n", + " 0.13982374],\n", + " [0.08614141, 0.01162729, 0.08783419, ..., 0.01732985, 0.13982374,\n", + " 0.02114919],\n", + " [0.01162729, 0.08783419, 0.01158497, ..., 0.13982374, 0.02114919,\n", + " 0.14533586],\n", + " ...,\n", + " [0.34526392, 0.44710587, 0.35188692, ..., 0.49860875, 0.3555264 ,\n", + " 0.48483374],\n", + " [0.44710587, 0.35188692, 0.45610935, ..., 0.3555264 , 0.48483374,\n", + " 0.34454448],\n", + " [0.35188692, 0.45610935, 0.35294491, ..., 0.48483374, 0.34454448,\n", + " 0.48484432]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 25 + } ] - }, - "execution_count": 292, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "trainX" - ] - }, - { - "cell_type": "code", - "execution_count": 293, - "metadata": {}, - "outputs": [ + }, { - "data": { - "text/plain": [ - "array([0.47064614, 0.3046689 , 0.17097092, ..., 0.1350205 , 0.5971708 ,\n", - " 0.5971708 ], dtype=float32)" + "cell_type": "code", + "metadata": { + "id": "dwx-Mcgp9-bT", + "outputId": "de023ba3-2397-4120-c8e0-7d767a85b0f0", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 67 + } + }, + "source": [ + "print(X_test.shape), print(ytest.shape)" + ], + "execution_count": 26, + "outputs": [ + { + "output_type": "stream", + "text": [ + "(43893, 10)\n", + "(43893,)\n" + ], + "name": "stdout" + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(None, None)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 26 + } ] - }, - "execution_count": 293, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "trainY" - ] - }, - { - "cell_type": "code", - "execution_count": 294, - "metadata": {}, - "outputs": [ + }, { - "data": { - "text/plain": [ - "array([[0.47064614, 0.4541626 , 0.5423248 , ..., 0.5971708 , 0.39313793,\n", - " 0.311059 ],\n", - " [0.4541626 , 0.5423248 , 0.43117237, ..., 0.39313793, 0.311059 ,\n", - " 0.67818093],\n", - " [0.5423248 , 0.43117237, 0.30956745, ..., 0.311059 , 0.67818093,\n", - " 0.57702684],\n", - " ...,\n", - " [0.26934266, 0.13981318, 0.21514201, ..., 0.31486797, 0.35450006,\n", - " 0.37746906],\n", - " [0.13981318, 0.21514201, 0.47713137, ..., 0.35450006, 0.37746906,\n", - " 0.26934266],\n", - " [0.21514201, 0.47713137, 0.51861525, ..., 0.37746906, 0.26934266,\n", - " 0.1720078 ]], dtype=float32)" + "cell_type": "markdown", + "metadata": { + "id": "IZsiyiBH-Gm_" + }, + "source": [ + "### Reshaping input to be [samples ,time steps, features] from [samples,features]" ] - }, - "execution_count": 294, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "testX" - ] - }, - { - "cell_type": "code", - "execution_count": 295, - "metadata": {}, - "outputs": [ + }, + { + "cell_type": "code", + "metadata": { + "id": "elD-HKwA-BXo" + }, + "source": [ + "# reshape input to be [samples, time steps, features] which is required for LSTM\n", + "X_train =X_train.reshape(X_train.shape[0],X_train.shape[1] , 1)\n", + "X_test = X_test.reshape(X_test.shape[0],X_test.shape[1] , 1)" + ], + "execution_count": 27, + "outputs": [] + }, { - "data": { - "text/plain": [ - "array([0.67818093, 0.57702684, 0.43113017, ..., 0.26934266, 0.1720078 ,\n", - " 0.6753137 ], dtype=float32)" + "cell_type": "markdown", + "metadata": { + "id": "nXQvqcv1-MRn" + }, + "source": [ + "## Building the Model" ] - }, - "execution_count": 295, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "testY" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Reshaping input to be [samples ,time steps, features] from [samples,features]" - ] - }, - { - "cell_type": "code", - "execution_count": 296, - "metadata": {}, - "outputs": [], - "source": [ - "trainX = np.reshape(trainX, (trainX.shape[0], 1, trainX.shape[1]))\n", - "testX = np.reshape(testX, (testX.shape[0], 1, testX.shape[1]))" - ] - }, - { - "cell_type": "code", - "execution_count": 297, - "metadata": {}, - "outputs": [ + }, { - "data": { - "text/plain": [ - "array([[[0.5971708 , 0.15901566, 0.27108812, ..., 0.29841614,\n", - " 0.47064614, 0.06937218]],\n", - "\n", - " [[0.15901566, 0.27108812, 0.47064614, ..., 0.47064614,\n", - " 0.06937218, 0.47064614]],\n", - "\n", - " [[0.27108812, 0.47064614, 0.21280384, ..., 0.06937218,\n", - " 0.47064614, 0.3046689 ]],\n", - "\n", - " ...,\n", - "\n", - " [[0.4206879 , 0.33919096, 0.26934266, ..., 0.5080776 ,\n", - " 0.49527597, 0.5971708 ]],\n", - "\n", - " [[0.33919096, 0.26934266, 0.4069128 , ..., 0.49527597,\n", - " 0.5971708 , 0.1350205 ]],\n", - "\n", - " [[0.26934266, 0.4069128 , 0.2817421 , ..., 0.5971708 ,\n", - " 0.1350205 , 0.5971708 ]]], dtype=float32)" + "cell_type": "code", + "metadata": { + "id": "fIpca6tg-HL-" + }, + "source": [ + "model=Sequential()\n", + "model.add(LSTM(4,return_sequences=True,input_shape=(10,1)))\n", + "model.add(LSTM(4,return_sequences=True))\n", + "model.add(LSTM(4))\n", + "model.add(Dense(1))\n", + "model.compile(loss='mean_squared_error',optimizer='adam')\n" + ], + "execution_count": 28, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "TmurCH_L-M0G", + "outputId": "2f286eb2-9045-4852-9d18-f42169d2b94a", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 286 + } + }, + "source": [ + "model.summary()" + ], + "execution_count": 29, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Model: \"sequential\"\n", + "_________________________________________________________________\n", + "Layer (type) Output Shape Param # \n", + "=================================================================\n", + "lstm (LSTM) (None, 10, 4) 96 \n", + "_________________________________________________________________\n", + "lstm_1 (LSTM) (None, 10, 4) 144 \n", + "_________________________________________________________________\n", + "lstm_2 (LSTM) (None, 4) 144 \n", + "_________________________________________________________________\n", + "dense (Dense) (None, 1) 5 \n", + "=================================================================\n", + "Total params: 389\n", + "Trainable params: 389\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n" + ], + "name": "stdout" + } ] - }, - "execution_count": 297, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "trainX" - ] - }, - { - "cell_type": "code", - "execution_count": 298, - "metadata": {}, - "outputs": [ + }, + { + "cell_type": "code", + "metadata": { + "id": "sFvBofIm-hed", + "outputId": "a3558aea-8256-4560-b643-43411f92eada", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + } + }, + "source": [ + "model.fit(X_train,y_train,validation_data=(X_test,ytest),epochs=100,batch_size=64,verbose=1)" + ], + "execution_count": 37, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Epoch 1/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 2.5775e-04 - val_loss: 2.9515e-04\n", + "Epoch 2/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 2.0832e-04 - val_loss: 2.0048e-04\n", + "Epoch 3/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 1.8868e-04 - val_loss: 1.7239e-04\n", + "Epoch 4/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 1.6867e-04 - val_loss: 1.5317e-04\n", + "Epoch 5/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 1.5406e-04 - val_loss: 2.9360e-04\n", + "Epoch 6/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 1.4398e-04 - val_loss: 1.3563e-04\n", + "Epoch 7/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 1.3899e-04 - val_loss: 1.3177e-04\n", + "Epoch 8/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 1.2835e-04 - val_loss: 1.4718e-04\n", + "Epoch 9/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 1.2341e-04 - val_loss: 1.5469e-04\n", + "Epoch 10/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 1.1749e-04 - val_loss: 1.1403e-04\n", + "Epoch 11/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 1.0928e-04 - val_loss: 1.0722e-04\n", + "Epoch 12/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 1.0341e-04 - val_loss: 1.0669e-04\n", + "Epoch 13/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 1.0280e-04 - val_loss: 1.2005e-04\n", + "Epoch 14/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 9.8349e-05 - val_loss: 1.0687e-04\n", + "Epoch 15/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 9.7352e-05 - val_loss: 1.4449e-04\n", + "Epoch 16/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 9.4161e-05 - val_loss: 9.4826e-05\n", + "Epoch 17/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 8.8459e-05 - val_loss: 1.1368e-04\n", + "Epoch 18/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 8.9758e-05 - val_loss: 1.0887e-04\n", + "Epoch 19/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 9.2385e-05 - val_loss: 1.0084e-04\n", + "Epoch 20/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 8.2282e-05 - val_loss: 8.9319e-05\n", + "Epoch 21/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 8.4036e-05 - val_loss: 1.1501e-04\n", + "Epoch 22/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 8.3546e-05 - val_loss: 1.0130e-04\n", + "Epoch 23/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 8.1813e-05 - val_loss: 9.2314e-05\n", + "Epoch 24/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 8.3740e-05 - val_loss: 1.3561e-04\n", + "Epoch 25/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 7.9054e-05 - val_loss: 9.7804e-05\n", + "Epoch 26/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 7.8049e-05 - val_loss: 9.2916e-05\n", + "Epoch 27/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 7.6490e-05 - val_loss: 1.5447e-04\n", + "Epoch 28/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 7.3114e-05 - val_loss: 8.8194e-05\n", + "Epoch 29/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 7.3362e-05 - val_loss: 9.4240e-05\n", + "Epoch 30/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 7.5251e-05 - val_loss: 8.4629e-05\n", + "Epoch 31/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 7.1393e-05 - val_loss: 9.7458e-05\n", + "Epoch 32/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 7.1636e-05 - val_loss: 8.0351e-05\n", + "Epoch 33/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 6.9128e-05 - val_loss: 9.8861e-05\n", + "Epoch 34/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 7.1872e-05 - val_loss: 8.1123e-05\n", + "Epoch 35/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 6.8198e-05 - val_loss: 9.3329e-05\n", + "Epoch 36/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 6.8867e-05 - val_loss: 7.9731e-05\n", + "Epoch 37/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 6.6414e-05 - val_loss: 9.9728e-05\n", + "Epoch 38/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 6.6648e-05 - val_loss: 8.2504e-05\n", + "Epoch 39/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 6.3111e-05 - val_loss: 7.4476e-05\n", + "Epoch 40/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 6.5097e-05 - val_loss: 7.3884e-05\n", + "Epoch 41/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 6.5990e-05 - val_loss: 7.3112e-05\n", + "Epoch 42/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 6.3195e-05 - val_loss: 8.9810e-05\n", + "Epoch 43/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 6.0334e-05 - val_loss: 8.8171e-05\n", + "Epoch 44/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 6.1711e-05 - val_loss: 7.4232e-05\n", + "Epoch 45/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 5.8609e-05 - val_loss: 7.5867e-05\n", + "Epoch 46/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 5.8577e-05 - val_loss: 6.9194e-05\n", + "Epoch 47/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 5.7639e-05 - val_loss: 8.9476e-05\n", + "Epoch 48/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 5.5381e-05 - val_loss: 9.0220e-05\n", + "Epoch 49/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 5.6811e-05 - val_loss: 7.0600e-05\n", + "Epoch 50/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 5.3640e-05 - val_loss: 8.0042e-05\n", + "Epoch 51/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 5.4451e-05 - val_loss: 6.9075e-05\n", + "Epoch 52/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 5.3971e-05 - val_loss: 7.0822e-05\n", + "Epoch 53/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 5.0987e-05 - val_loss: 6.4686e-05\n", + "Epoch 54/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 5.1700e-05 - val_loss: 9.4295e-05\n", + "Epoch 55/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 5.1913e-05 - val_loss: 6.4100e-05\n", + "Epoch 56/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 4.9983e-05 - val_loss: 6.2545e-05\n", + "Epoch 57/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 4.8705e-05 - val_loss: 7.9640e-05\n", + "Epoch 58/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 4.8140e-05 - val_loss: 7.4977e-05\n", + "Epoch 59/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 4.8599e-05 - val_loss: 6.4141e-05\n", + "Epoch 60/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 4.8507e-05 - val_loss: 9.7492e-05\n", + "Epoch 61/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 4.7245e-05 - val_loss: 6.2052e-05\n", + "Epoch 62/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 4.5784e-05 - val_loss: 5.9676e-05\n", + "Epoch 63/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 4.5203e-05 - val_loss: 6.0980e-05\n", + "Epoch 64/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 4.6856e-05 - val_loss: 7.6919e-05\n", + "Epoch 65/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 4.6026e-05 - val_loss: 6.0554e-05\n", + "Epoch 66/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 4.4120e-05 - val_loss: 6.0078e-05\n", + "Epoch 67/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 4.2964e-05 - val_loss: 5.9585e-05\n", + "Epoch 68/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 4.2896e-05 - val_loss: 6.4709e-05\n", + "Epoch 69/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 4.2441e-05 - val_loss: 6.0155e-05\n", + "Epoch 70/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 4.2684e-05 - val_loss: 5.7945e-05\n", + "Epoch 71/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 4.1525e-05 - val_loss: 6.4363e-05\n", + "Epoch 72/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 4.1227e-05 - val_loss: 6.0124e-05\n", + "Epoch 73/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 4.2515e-05 - val_loss: 5.7845e-05\n", + "Epoch 74/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 4.1604e-05 - val_loss: 6.0232e-05\n", + "Epoch 75/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 4.0462e-05 - val_loss: 5.6821e-05\n", + "Epoch 76/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 4.0721e-05 - val_loss: 5.6058e-05\n", + "Epoch 77/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.8481e-05 - val_loss: 6.5037e-05\n", + "Epoch 78/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.9120e-05 - val_loss: 5.4647e-05\n", + "Epoch 79/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.9164e-05 - val_loss: 6.8601e-05\n", + "Epoch 80/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.8164e-05 - val_loss: 5.8355e-05\n", + "Epoch 81/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.7563e-05 - val_loss: 5.6954e-05\n", + "Epoch 82/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.6634e-05 - val_loss: 5.4954e-05\n", + "Epoch 83/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.6195e-05 - val_loss: 5.2455e-05\n", + "Epoch 84/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.4826e-05 - val_loss: 7.9392e-05\n", + "Epoch 85/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.5256e-05 - val_loss: 5.2568e-05\n", + "Epoch 86/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.3998e-05 - val_loss: 6.6468e-05\n", + "Epoch 87/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.3026e-05 - val_loss: 5.3101e-05\n", + "Epoch 88/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.3523e-05 - val_loss: 5.1542e-05\n", + "Epoch 89/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.2709e-05 - val_loss: 5.2784e-05\n", + "Epoch 90/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.1561e-05 - val_loss: 5.1889e-05\n", + "Epoch 91/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.1931e-05 - val_loss: 5.2439e-05\n", + "Epoch 92/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.2363e-05 - val_loss: 5.2101e-05\n", + "Epoch 93/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.1302e-05 - val_loss: 5.0432e-05\n", + "Epoch 94/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.2409e-05 - val_loss: 5.0736e-05\n", + "Epoch 95/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.2090e-05 - val_loss: 5.6685e-05\n", + "Epoch 96/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.1458e-05 - val_loss: 5.0554e-05\n", + "Epoch 97/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.1816e-05 - val_loss: 5.6504e-05\n", + "Epoch 98/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.2055e-05 - val_loss: 5.5606e-05\n", + "Epoch 99/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.1228e-05 - val_loss: 5.3973e-05\n", + "Epoch 100/100\n", + "1274/1274 [==============================] - 15s 12ms/step - loss: 3.0974e-05 - val_loss: 5.4785e-05\n" + ], + "name": "stdout" + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 37 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "zDxrczS-ELWb" + }, + "source": [ + "### Predicting the data" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "VXkXFz36_KBY" + }, + "source": [ + "### Lets Do the prediction and check performance metrics\n", + "train_predict=model.predict(X_train)\n", + "test_predict=model.predict(X_test)" + ], + "execution_count": 70, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "TtfmtIDzEPb5" + }, + "source": [ + "### Transform to original form By Inversing as we had scaled earlier" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "oNFkZXHhD9im", + "outputId": "889b5329-c198-4279-f71a-bab323e7c34b", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 840 + } + }, + "source": [ + "X_train" + ], + "execution_count": 71, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[[0. ],\n", + " [0.08614141],\n", + " [0.01162729],\n", + " ...,\n", + " [0.13436452],\n", + " [0.01732985],\n", + " [0.13982374]],\n", + "\n", + " [[0.08614141],\n", + " [0.01162729],\n", + " [0.08783419],\n", + " ...,\n", + " [0.01732985],\n", + " [0.13982374],\n", + " [0.02114919]],\n", + "\n", + " [[0.01162729],\n", + " [0.08783419],\n", + " [0.01158497],\n", + " ...,\n", + " [0.13982374],\n", + " [0.02114919],\n", + " [0.14533586]],\n", + "\n", + " ...,\n", + "\n", + " [[0.34526392],\n", + " [0.44710587],\n", + " [0.35188692],\n", + " ...,\n", + " [0.49860875],\n", + " [0.3555264 ],\n", + " [0.48483374]],\n", + "\n", + " [[0.44710587],\n", + " [0.35188692],\n", + " [0.45610935],\n", + " ...,\n", + " [0.3555264 ],\n", + " [0.48483374],\n", + " [0.34454448]],\n", + "\n", + " [[0.35188692],\n", + " [0.45610935],\n", + " [0.35294491],\n", + " ...,\n", + " [0.48483374],\n", + " [0.34454448],\n", + " [0.48484432]]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 71 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "GCRJyveYERXp", + "outputId": "5c720866-56e4-434f-e00b-3138e805c7a8", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 134 + } + }, + "source": [ + "train_predict" + ], + "execution_count": 72, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[-0.00049279],\n", + " [-0.00052647],\n", + " [-0.00056046],\n", + " ...,\n", + " [-0.00185698],\n", + " [-0.00184162],\n", + " [-0.00184648]], dtype=float32)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 72 + } + ] + }, { - "data": { - "text/plain": [ - "array([[[0.47064614, 0.4541626 , 0.5423248 , ..., 0.5971708 ,\n", - " 0.39313793, 0.311059 ]],\n", - "\n", - " [[0.4541626 , 0.5423248 , 0.43117237, ..., 0.39313793,\n", - " 0.311059 , 0.67818093]],\n", - "\n", - " [[0.5423248 , 0.43117237, 0.30956745, ..., 0.311059 ,\n", - " 0.67818093, 0.57702684]],\n", - "\n", - " ...,\n", - "\n", - " [[0.26934266, 0.13981318, 0.21514201, ..., 0.31486797,\n", - " 0.35450006, 0.37746906]],\n", - "\n", - " [[0.13981318, 0.21514201, 0.47713137, ..., 0.35450006,\n", - " 0.37746906, 0.26934266]],\n", - "\n", - " [[0.21514201, 0.47713137, 0.51861525, ..., 0.37746906,\n", - " 0.26934266, 0.1720078 ]]], dtype=float32)" + "cell_type": "code", + "metadata": { + "id": "xe2zVdWsEYHO" + }, + "source": [ + "##Transformback to original form\n", + "train_predict=scaler.inverse_transform(train_predict)\n", + "test_predict=scaler.inverse_transform(test_predict)" + ], + "execution_count": 73, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "PX5549HDFeM0", + "outputId": "910325d1-41ee-4de5-c715-6547d7c15408", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 134 + } + }, + "source": [ + "\n", + "train_predict" + ], + "execution_count": 74, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[2236.9343],\n", + " [2236.9023],\n", + " [2236.87 ],\n", + " ...,\n", + " [2235.6448],\n", + " [2235.6594],\n", + " [2235.6548]], dtype=float32)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 74 + } ] - }, - "execution_count": 298, - "metadata": {}, - "output_type": "execute_result" + }, + { + "cell_type": "code", + "metadata": { + "id": "hQHRUi-WFklo", + "outputId": "b3553298-1af6-4e50-aeb2-dc8cbd3e6e80", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 50 + } + }, + "source": [ + "y_train" + ], + "execution_count": 75, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([0.02114919, 0.14533586, 0.01936119, ..., 0.34454448, 0.48484432,\n", + " 0.35211968])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 75 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QG1FjVMWEgJK" + }, + "source": [ + "#### Calculate the RMSE performance matrix" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "t6QB70x-Ek2h", + "outputId": "076a79d7-ee93-43da-ca0d-caa80e0c8ff8", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "### Calculate RMSE performance metrics\n", + "import math\n", + "from sklearn.metrics import mean_squared_error\n", + "math.sqrt(mean_squared_error(y_train,train_predict))" + ], + "execution_count": 76, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "2235.4352729206043" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 76 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "6fMvVswMEov3", + "outputId": "44d893a6-027a-48f5-e7fc-4ec8d4408f56", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "### Test Data RMSE\n", + "math.sqrt(mean_squared_error(ytest,test_predict))" + ], + "execution_count": 77, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "2235.5317132554633" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 77 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "IYpPJWdBEtY6", + "outputId": "50fd6ac9-d4ed-4b76-d787-2eac72ab88b8", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "len(test_data)" + ], + "execution_count": 78, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "43904" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 78 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7b2Fe9spE0LZ" + }, + "source": [ + "### Predict the output for future 30 days" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "-kpMiNSzE0m7", + "outputId": "e622c40e-e719-49cf-9fc3-22c173c9598b", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "x_input=test_data[43804:].reshape(1,-1)\n", + "x_input.shape\n" + ], + "execution_count": 79, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(1, 100)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 79 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "SCZG-ZnTE3b5" + }, + "source": [ + "temp_input=list(x_input)\n", + "temp_input=temp_input[0].tolist()" + ], + "execution_count": 80, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "OlS_N7OsE52B", + "outputId": "9bfd0db3-8dff-4407-b315-aa9e0283362e", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + } + }, + "source": [ + "temp_input" + ], + "execution_count": 81, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "[0.09161121044446041,\n", + " 0.17756218326474027,\n", + " 0.09162179032787021,\n", + " 0.17756218326474027,\n", + " 0.09459473756599168,\n", + " 0.17756218326474027,\n", + " 0.09319819295591314,\n", + " 0.17747754419746276,\n", + " 0.09462647721622108,\n", + " 0.1705159809138901,\n", + " 0.09462647721622108,\n", + " 0.17050540103048029,\n", + " 0.09318761307250378,\n", + " 0.17050540103048029,\n", + " 0.09438313989779834,\n", + " 0.17050540103048029,\n", + " 0.0943937197812077,\n", + " 0.17050540103048029,\n", + " 0.09428792094711103,\n", + " 0.17050540103048029,\n", + " 0.09162179032787021,\n", + " 0.17050540103048029,\n", + " 0.09426676118029143,\n", + " 0.17050540103048029,\n", + " 0.09008770723346604,\n", + " 0.17050540103048029,\n", + " 0.09007712735005624,\n", + " 0.17050540103048029,\n", + " 0.0852950200488789,\n", + " 0.17790073953385033,\n", + " 0.08270294861350624,\n", + " 0.16145960071520005,\n", + " 0.08208931537574404,\n", + " 0.16145960071520005,\n", + " 0.07928564627217805,\n", + " 0.17299167363175627,\n", + " 0.07963478242469746,\n", + " 0.16250700917275873,\n", + " 0.08450152879315231,\n", + " 0.16250700917275873,\n", + " 0.08600387223732753,\n", + " 0.16250700917275873,\n", + " 0.08733693754694771,\n", + " 0.162834985558459,\n", + " 0.08628952908938903,\n", + " 0.1628455654418688,\n", + " 0.08626836932256987,\n", + " 0.16286672520868795,\n", + " 0.08010029729472379,\n", + " 0.16793448936192723,\n", + " 0.08610967107142464,\n", + " 0.16285614532527815,\n", + " 0.08610967107142464,\n", + " 0.16285614532527815,\n", + " 0.08610967107142464,\n", + " 0.16285614532527815,\n", + " 0.08316846348353257,\n", + " 0.16286672520868795,\n", + " 0.08317904336694193,\n", + " 0.16285614532527815,\n", + " 0.08633184862302778,\n", + " 0.17301283339857543,\n", + " 0.08633184862302778,\n", + " 0.1628984648589169,\n", + " 0.08633184862302778,\n", + " 0.17638781620626487,\n", + " 0.08528444016546954,\n", + " 0.17638781620626487,\n", + " 0.08583459410277294,\n", + " 0.16353325786349782,\n", + " 0.08583459410277294,\n", + " 0.17366878616997639,\n", + " 0.08528444016546954,\n", + " 0.1686116019001469,\n", + " 0.0853055999322887,\n", + " 0.16288788497550755,\n", + " 0.0853055999322887,\n", + " 0.17638781620626487,\n", + " 0.0853055999322887,\n", + " 0.17638781620626487,\n", + " 0.08604619177096628,\n", + " 0.16285614532527815,\n", + " 0.08738983696399627,\n", + " 0.162834985558459,\n", + " 0.09007712735005624,\n", + " 0.162834985558459,\n", + " 0.09007712735005624,\n", + " 0.162834985558459,\n", + " 0.09007712735005624,\n", + " 0.1780805975518147,\n", + " 0.08762259439900921,\n", + " 0.1780805975518147,\n", + " 0.08762259439900921,\n", + " 0.1780805975518147,\n", + " 0.09008770723346604,\n", + " 0.1657127138458936,\n", + " 0.08788709148425156,\n", + " 0.1657127138458936,\n", + " 0.08788709148425156,\n", + " 0.1657127138458936]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 81 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "7RVBWG4hFA9v", + "outputId": "a62f2a31-6453-4987-c3d8-818118dd8fcf", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + } + }, + "source": [ + "# demonstrate prediction for next 30 days\n", + "from numpy import array\n", + "\n", + "lst_output=[]\n", + "n_steps=100\n", + "i=0\n", + "while(i<30):\n", + " \n", + " if(len(temp_input)>100):\n", + " #print(temp_input)\n", + " x_input=np.array(temp_input[1:])\n", + " print(\"{} day input {}\".format(i,x_input))\n", + " x_input=x_input.reshape(1,-1)\n", + " x_input = x_input.reshape((1, n_steps, 1))\n", + " #print(x_input)\n", + " yhat = model.predict_classes(x_input, verbose=0)\n", + " print(\"{} day output {}\".format(i,yhat))\n", + " temp_input.extend(yhat[0].tolist())\n", + " temp_input=temp_input[1:]\n", + " #print(temp_input)\n", + " lst_output.extend(yhat.tolist())\n", + " i=i+1\n", + " else:\n", + " x_input = x_input.reshape((1, n_steps,1))\n", + " yhat = model.predict_classes(x_input, verbose=0)\n", + " print(yhat[0])\n", + " temp_input.extend(yhat[0].tolist())\n", + " print(len(temp_input))\n", + " lst_output.extend(yhat.tolist())\n", + " i=i+1\n", + " \n", + "\n", + "print(lst_output)" + ], + "execution_count": 82, + "outputs": [ + { + "output_type": "stream", + "text": [ + "[0]\n", + "101\n", + "1 day input [0.17756218 0.09162179 0.17756218 0.09459474 0.17756218 0.09319819\n", + " 0.17747754 0.09462648 0.17051598 0.09462648 0.1705054 0.09318761\n", + " 0.1705054 0.09438314 0.1705054 0.09439372 0.1705054 0.09428792\n", + " 0.1705054 0.09162179 0.1705054 0.09426676 0.1705054 0.09008771\n", + " 0.1705054 0.09007713 0.1705054 0.08529502 0.17790074 0.08270295\n", + " 0.1614596 0.08208932 0.1614596 0.07928565 0.17299167 0.07963478\n", + " 0.16250701 0.08450153 0.16250701 0.08600387 0.16250701 0.08733694\n", + " 0.16283499 0.08628953 0.16284557 0.08626837 0.16286673 0.0801003\n", + " 0.16793449 0.08610967 0.16285615 0.08610967 0.16285615 0.08610967\n", + " 0.16285615 0.08316846 0.16286673 0.08317904 0.16285615 0.08633185\n", + " 0.17301283 0.08633185 0.16289846 0.08633185 0.17638782 0.08528444\n", + " 0.17638782 0.08583459 0.16353326 0.08583459 0.17366879 0.08528444\n", + " 0.1686116 0.0853056 0.16288788 0.0853056 0.17638782 0.0853056\n", + " 0.17638782 0.08604619 0.16285615 0.08738984 0.16283499 0.09007713\n", + " 0.16283499 0.09007713 0.16283499 0.09007713 0.1780806 0.08762259\n", + " 0.1780806 0.08762259 0.1780806 0.09008771 0.16571271 0.08788709\n", + " 0.16571271 0.08788709 0.16571271 0. ]\n", + "1 day output [[0]]\n", + "2 day input [0.09162179 0.17756218 0.09459474 0.17756218 0.09319819 0.17747754\n", + " 0.09462648 0.17051598 0.09462648 0.1705054 0.09318761 0.1705054\n", + " 0.09438314 0.1705054 0.09439372 0.1705054 0.09428792 0.1705054\n", + " 0.09162179 0.1705054 0.09426676 0.1705054 0.09008771 0.1705054\n", + " 0.09007713 0.1705054 0.08529502 0.17790074 0.08270295 0.1614596\n", + " 0.08208932 0.1614596 0.07928565 0.17299167 0.07963478 0.16250701\n", + " 0.08450153 0.16250701 0.08600387 0.16250701 0.08733694 0.16283499\n", + " 0.08628953 0.16284557 0.08626837 0.16286673 0.0801003 0.16793449\n", + " 0.08610967 0.16285615 0.08610967 0.16285615 0.08610967 0.16285615\n", + " 0.08316846 0.16286673 0.08317904 0.16285615 0.08633185 0.17301283\n", + " 0.08633185 0.16289846 0.08633185 0.17638782 0.08528444 0.17638782\n", + " 0.08583459 0.16353326 0.08583459 0.17366879 0.08528444 0.1686116\n", + " 0.0853056 0.16288788 0.0853056 0.17638782 0.0853056 0.17638782\n", + " 0.08604619 0.16285615 0.08738984 0.16283499 0.09007713 0.16283499\n", + " 0.09007713 0.16283499 0.09007713 0.1780806 0.08762259 0.1780806\n", + " 0.08762259 0.1780806 0.09008771 0.16571271 0.08788709 0.16571271\n", + " 0.08788709 0.16571271 0. 0. ]\n", + "2 day output [[0]]\n", + "3 day input [0.17756218 0.09459474 0.17756218 0.09319819 0.17747754 0.09462648\n", + " 0.17051598 0.09462648 0.1705054 0.09318761 0.1705054 0.09438314\n", + " 0.1705054 0.09439372 0.1705054 0.09428792 0.1705054 0.09162179\n", + " 0.1705054 0.09426676 0.1705054 0.09008771 0.1705054 0.09007713\n", + " 0.1705054 0.08529502 0.17790074 0.08270295 0.1614596 0.08208932\n", + " 0.1614596 0.07928565 0.17299167 0.07963478 0.16250701 0.08450153\n", + " 0.16250701 0.08600387 0.16250701 0.08733694 0.16283499 0.08628953\n", + " 0.16284557 0.08626837 0.16286673 0.0801003 0.16793449 0.08610967\n", + " 0.16285615 0.08610967 0.16285615 0.08610967 0.16285615 0.08316846\n", + " 0.16286673 0.08317904 0.16285615 0.08633185 0.17301283 0.08633185\n", + " 0.16289846 0.08633185 0.17638782 0.08528444 0.17638782 0.08583459\n", + " 0.16353326 0.08583459 0.17366879 0.08528444 0.1686116 0.0853056\n", + " 0.16288788 0.0853056 0.17638782 0.0853056 0.17638782 0.08604619\n", + " 0.16285615 0.08738984 0.16283499 0.09007713 0.16283499 0.09007713\n", + " 0.16283499 0.09007713 0.1780806 0.08762259 0.1780806 0.08762259\n", + " 0.1780806 0.09008771 0.16571271 0.08788709 0.16571271 0.08788709\n", + " 0.16571271 0. 0. 0. ]\n", + "3 day output [[0]]\n", + "4 day input [0.09459474 0.17756218 0.09319819 0.17747754 0.09462648 0.17051598\n", + " 0.09462648 0.1705054 0.09318761 0.1705054 0.09438314 0.1705054\n", + " 0.09439372 0.1705054 0.09428792 0.1705054 0.09162179 0.1705054\n", + " 0.09426676 0.1705054 0.09008771 0.1705054 0.09007713 0.1705054\n", + " 0.08529502 0.17790074 0.08270295 0.1614596 0.08208932 0.1614596\n", + " 0.07928565 0.17299167 0.07963478 0.16250701 0.08450153 0.16250701\n", + " 0.08600387 0.16250701 0.08733694 0.16283499 0.08628953 0.16284557\n", + " 0.08626837 0.16286673 0.0801003 0.16793449 0.08610967 0.16285615\n", + " 0.08610967 0.16285615 0.08610967 0.16285615 0.08316846 0.16286673\n", + " 0.08317904 0.16285615 0.08633185 0.17301283 0.08633185 0.16289846\n", + " 0.08633185 0.17638782 0.08528444 0.17638782 0.08583459 0.16353326\n", + " 0.08583459 0.17366879 0.08528444 0.1686116 0.0853056 0.16288788\n", + " 0.0853056 0.17638782 0.0853056 0.17638782 0.08604619 0.16285615\n", + " 0.08738984 0.16283499 0.09007713 0.16283499 0.09007713 0.16283499\n", + " 0.09007713 0.1780806 0.08762259 0.1780806 0.08762259 0.1780806\n", + " 0.09008771 0.16571271 0.08788709 0.16571271 0.08788709 0.16571271\n", + " 0. 0. 0. 0. ]\n", + "4 day output [[0]]\n", + "5 day input [0.17756218 0.09319819 0.17747754 0.09462648 0.17051598 0.09462648\n", + " 0.1705054 0.09318761 0.1705054 0.09438314 0.1705054 0.09439372\n", + " 0.1705054 0.09428792 0.1705054 0.09162179 0.1705054 0.09426676\n", + " 0.1705054 0.09008771 0.1705054 0.09007713 0.1705054 0.08529502\n", + " 0.17790074 0.08270295 0.1614596 0.08208932 0.1614596 0.07928565\n", + " 0.17299167 0.07963478 0.16250701 0.08450153 0.16250701 0.08600387\n", + " 0.16250701 0.08733694 0.16283499 0.08628953 0.16284557 0.08626837\n", + " 0.16286673 0.0801003 0.16793449 0.08610967 0.16285615 0.08610967\n", + " 0.16285615 0.08610967 0.16285615 0.08316846 0.16286673 0.08317904\n", + " 0.16285615 0.08633185 0.17301283 0.08633185 0.16289846 0.08633185\n", + " 0.17638782 0.08528444 0.17638782 0.08583459 0.16353326 0.08583459\n", + " 0.17366879 0.08528444 0.1686116 0.0853056 0.16288788 0.0853056\n", + " 0.17638782 0.0853056 0.17638782 0.08604619 0.16285615 0.08738984\n", + " 0.16283499 0.09007713 0.16283499 0.09007713 0.16283499 0.09007713\n", + " 0.1780806 0.08762259 0.1780806 0.08762259 0.1780806 0.09008771\n", + " 0.16571271 0.08788709 0.16571271 0.08788709 0.16571271 0.\n", + " 0. 0. 0. 0. ]\n", + "5 day output [[0]]\n", + "6 day input [0.09319819 0.17747754 0.09462648 0.17051598 0.09462648 0.1705054\n", + " 0.09318761 0.1705054 0.09438314 0.1705054 0.09439372 0.1705054\n", + " 0.09428792 0.1705054 0.09162179 0.1705054 0.09426676 0.1705054\n", + " 0.09008771 0.1705054 0.09007713 0.1705054 0.08529502 0.17790074\n", + " 0.08270295 0.1614596 0.08208932 0.1614596 0.07928565 0.17299167\n", + " 0.07963478 0.16250701 0.08450153 0.16250701 0.08600387 0.16250701\n", + " 0.08733694 0.16283499 0.08628953 0.16284557 0.08626837 0.16286673\n", + " 0.0801003 0.16793449 0.08610967 0.16285615 0.08610967 0.16285615\n", + " 0.08610967 0.16285615 0.08316846 0.16286673 0.08317904 0.16285615\n", + " 0.08633185 0.17301283 0.08633185 0.16289846 0.08633185 0.17638782\n", + " 0.08528444 0.17638782 0.08583459 0.16353326 0.08583459 0.17366879\n", + " 0.08528444 0.1686116 0.0853056 0.16288788 0.0853056 0.17638782\n", + " 0.0853056 0.17638782 0.08604619 0.16285615 0.08738984 0.16283499\n", + " 0.09007713 0.16283499 0.09007713 0.16283499 0.09007713 0.1780806\n", + " 0.08762259 0.1780806 0.08762259 0.1780806 0.09008771 0.16571271\n", + " 0.08788709 0.16571271 0.08788709 0.16571271 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "6 day output [[0]]\n", + "7 day input [0.17747754 0.09462648 0.17051598 0.09462648 0.1705054 0.09318761\n", + " 0.1705054 0.09438314 0.1705054 0.09439372 0.1705054 0.09428792\n", + " 0.1705054 0.09162179 0.1705054 0.09426676 0.1705054 0.09008771\n", + " 0.1705054 0.09007713 0.1705054 0.08529502 0.17790074 0.08270295\n", + " 0.1614596 0.08208932 0.1614596 0.07928565 0.17299167 0.07963478\n", + " 0.16250701 0.08450153 0.16250701 0.08600387 0.16250701 0.08733694\n", + " 0.16283499 0.08628953 0.16284557 0.08626837 0.16286673 0.0801003\n", + " 0.16793449 0.08610967 0.16285615 0.08610967 0.16285615 0.08610967\n", + " 0.16285615 0.08316846 0.16286673 0.08317904 0.16285615 0.08633185\n", + " 0.17301283 0.08633185 0.16289846 0.08633185 0.17638782 0.08528444\n", + " 0.17638782 0.08583459 0.16353326 0.08583459 0.17366879 0.08528444\n", + " 0.1686116 0.0853056 0.16288788 0.0853056 0.17638782 0.0853056\n", + " 0.17638782 0.08604619 0.16285615 0.08738984 0.16283499 0.09007713\n", + " 0.16283499 0.09007713 0.16283499 0.09007713 0.1780806 0.08762259\n", + " 0.1780806 0.08762259 0.1780806 0.09008771 0.16571271 0.08788709\n", + " 0.16571271 0.08788709 0.16571271 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "7 day output [[0]]\n", + "8 day input [0.09462648 0.17051598 0.09462648 0.1705054 0.09318761 0.1705054\n", + " 0.09438314 0.1705054 0.09439372 0.1705054 0.09428792 0.1705054\n", + " 0.09162179 0.1705054 0.09426676 0.1705054 0.09008771 0.1705054\n", + " 0.09007713 0.1705054 0.08529502 0.17790074 0.08270295 0.1614596\n", + " 0.08208932 0.1614596 0.07928565 0.17299167 0.07963478 0.16250701\n", + " 0.08450153 0.16250701 0.08600387 0.16250701 0.08733694 0.16283499\n", + " 0.08628953 0.16284557 0.08626837 0.16286673 0.0801003 0.16793449\n", + " 0.08610967 0.16285615 0.08610967 0.16285615 0.08610967 0.16285615\n", + " 0.08316846 0.16286673 0.08317904 0.16285615 0.08633185 0.17301283\n", + " 0.08633185 0.16289846 0.08633185 0.17638782 0.08528444 0.17638782\n", + " 0.08583459 0.16353326 0.08583459 0.17366879 0.08528444 0.1686116\n", + " 0.0853056 0.16288788 0.0853056 0.17638782 0.0853056 0.17638782\n", + " 0.08604619 0.16285615 0.08738984 0.16283499 0.09007713 0.16283499\n", + " 0.09007713 0.16283499 0.09007713 0.1780806 0.08762259 0.1780806\n", + " 0.08762259 0.1780806 0.09008771 0.16571271 0.08788709 0.16571271\n", + " 0.08788709 0.16571271 0. 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "8 day output [[0]]\n", + "9 day input [0.17051598 0.09462648 0.1705054 0.09318761 0.1705054 0.09438314\n", + " 0.1705054 0.09439372 0.1705054 0.09428792 0.1705054 0.09162179\n", + " 0.1705054 0.09426676 0.1705054 0.09008771 0.1705054 0.09007713\n", + " 0.1705054 0.08529502 0.17790074 0.08270295 0.1614596 0.08208932\n", + " 0.1614596 0.07928565 0.17299167 0.07963478 0.16250701 0.08450153\n", + " 0.16250701 0.08600387 0.16250701 0.08733694 0.16283499 0.08628953\n", + " 0.16284557 0.08626837 0.16286673 0.0801003 0.16793449 0.08610967\n", + " 0.16285615 0.08610967 0.16285615 0.08610967 0.16285615 0.08316846\n", + " 0.16286673 0.08317904 0.16285615 0.08633185 0.17301283 0.08633185\n", + " 0.16289846 0.08633185 0.17638782 0.08528444 0.17638782 0.08583459\n", + " 0.16353326 0.08583459 0.17366879 0.08528444 0.1686116 0.0853056\n", + " 0.16288788 0.0853056 0.17638782 0.0853056 0.17638782 0.08604619\n", + " 0.16285615 0.08738984 0.16283499 0.09007713 0.16283499 0.09007713\n", + " 0.16283499 0.09007713 0.1780806 0.08762259 0.1780806 0.08762259\n", + " 0.1780806 0.09008771 0.16571271 0.08788709 0.16571271 0.08788709\n", + " 0.16571271 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "9 day output [[0]]\n", + "10 day input [0.09462648 0.1705054 0.09318761 0.1705054 0.09438314 0.1705054\n", + " 0.09439372 0.1705054 0.09428792 0.1705054 0.09162179 0.1705054\n", + " 0.09426676 0.1705054 0.09008771 0.1705054 0.09007713 0.1705054\n", + " 0.08529502 0.17790074 0.08270295 0.1614596 0.08208932 0.1614596\n", + " 0.07928565 0.17299167 0.07963478 0.16250701 0.08450153 0.16250701\n", + " 0.08600387 0.16250701 0.08733694 0.16283499 0.08628953 0.16284557\n", + " 0.08626837 0.16286673 0.0801003 0.16793449 0.08610967 0.16285615\n", + " 0.08610967 0.16285615 0.08610967 0.16285615 0.08316846 0.16286673\n", + " 0.08317904 0.16285615 0.08633185 0.17301283 0.08633185 0.16289846\n", + " 0.08633185 0.17638782 0.08528444 0.17638782 0.08583459 0.16353326\n", + " 0.08583459 0.17366879 0.08528444 0.1686116 0.0853056 0.16288788\n", + " 0.0853056 0.17638782 0.0853056 0.17638782 0.08604619 0.16285615\n", + " 0.08738984 0.16283499 0.09007713 0.16283499 0.09007713 0.16283499\n", + " 0.09007713 0.1780806 0.08762259 0.1780806 0.08762259 0.1780806\n", + " 0.09008771 0.16571271 0.08788709 0.16571271 0.08788709 0.16571271\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "10 day output [[0]]\n", + "11 day input [0.1705054 0.09318761 0.1705054 0.09438314 0.1705054 0.09439372\n", + " 0.1705054 0.09428792 0.1705054 0.09162179 0.1705054 0.09426676\n", + " 0.1705054 0.09008771 0.1705054 0.09007713 0.1705054 0.08529502\n", + " 0.17790074 0.08270295 0.1614596 0.08208932 0.1614596 0.07928565\n", + " 0.17299167 0.07963478 0.16250701 0.08450153 0.16250701 0.08600387\n", + " 0.16250701 0.08733694 0.16283499 0.08628953 0.16284557 0.08626837\n", + " 0.16286673 0.0801003 0.16793449 0.08610967 0.16285615 0.08610967\n", + " 0.16285615 0.08610967 0.16285615 0.08316846 0.16286673 0.08317904\n", + " 0.16285615 0.08633185 0.17301283 0.08633185 0.16289846 0.08633185\n", + " 0.17638782 0.08528444 0.17638782 0.08583459 0.16353326 0.08583459\n", + " 0.17366879 0.08528444 0.1686116 0.0853056 0.16288788 0.0853056\n", + " 0.17638782 0.0853056 0.17638782 0.08604619 0.16285615 0.08738984\n", + " 0.16283499 0.09007713 0.16283499 0.09007713 0.16283499 0.09007713\n", + " 0.1780806 0.08762259 0.1780806 0.08762259 0.1780806 0.09008771\n", + " 0.16571271 0.08788709 0.16571271 0.08788709 0.16571271 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "11 day output [[0]]\n", + "12 day input [0.09318761 0.1705054 0.09438314 0.1705054 0.09439372 0.1705054\n", + " 0.09428792 0.1705054 0.09162179 0.1705054 0.09426676 0.1705054\n", + " 0.09008771 0.1705054 0.09007713 0.1705054 0.08529502 0.17790074\n", + " 0.08270295 0.1614596 0.08208932 0.1614596 0.07928565 0.17299167\n", + " 0.07963478 0.16250701 0.08450153 0.16250701 0.08600387 0.16250701\n", + " 0.08733694 0.16283499 0.08628953 0.16284557 0.08626837 0.16286673\n", + " 0.0801003 0.16793449 0.08610967 0.16285615 0.08610967 0.16285615\n", + " 0.08610967 0.16285615 0.08316846 0.16286673 0.08317904 0.16285615\n", + " 0.08633185 0.17301283 0.08633185 0.16289846 0.08633185 0.17638782\n", + " 0.08528444 0.17638782 0.08583459 0.16353326 0.08583459 0.17366879\n", + " 0.08528444 0.1686116 0.0853056 0.16288788 0.0853056 0.17638782\n", + " 0.0853056 0.17638782 0.08604619 0.16285615 0.08738984 0.16283499\n", + " 0.09007713 0.16283499 0.09007713 0.16283499 0.09007713 0.1780806\n", + " 0.08762259 0.1780806 0.08762259 0.1780806 0.09008771 0.16571271\n", + " 0.08788709 0.16571271 0.08788709 0.16571271 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "12 day output [[0]]\n", + "13 day input [0.1705054 0.09438314 0.1705054 0.09439372 0.1705054 0.09428792\n", + " 0.1705054 0.09162179 0.1705054 0.09426676 0.1705054 0.09008771\n", + " 0.1705054 0.09007713 0.1705054 0.08529502 0.17790074 0.08270295\n", + " 0.1614596 0.08208932 0.1614596 0.07928565 0.17299167 0.07963478\n", + " 0.16250701 0.08450153 0.16250701 0.08600387 0.16250701 0.08733694\n", + " 0.16283499 0.08628953 0.16284557 0.08626837 0.16286673 0.0801003\n", + " 0.16793449 0.08610967 0.16285615 0.08610967 0.16285615 0.08610967\n", + " 0.16285615 0.08316846 0.16286673 0.08317904 0.16285615 0.08633185\n", + " 0.17301283 0.08633185 0.16289846 0.08633185 0.17638782 0.08528444\n", + " 0.17638782 0.08583459 0.16353326 0.08583459 0.17366879 0.08528444\n", + " 0.1686116 0.0853056 0.16288788 0.0853056 0.17638782 0.0853056\n", + " 0.17638782 0.08604619 0.16285615 0.08738984 0.16283499 0.09007713\n", + " 0.16283499 0.09007713 0.16283499 0.09007713 0.1780806 0.08762259\n", + " 0.1780806 0.08762259 0.1780806 0.09008771 0.16571271 0.08788709\n", + " 0.16571271 0.08788709 0.16571271 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "13 day output [[0]]\n", + "14 day input [0.09438314 0.1705054 0.09439372 0.1705054 0.09428792 0.1705054\n", + " 0.09162179 0.1705054 0.09426676 0.1705054 0.09008771 0.1705054\n", + " 0.09007713 0.1705054 0.08529502 0.17790074 0.08270295 0.1614596\n", + " 0.08208932 0.1614596 0.07928565 0.17299167 0.07963478 0.16250701\n", + " 0.08450153 0.16250701 0.08600387 0.16250701 0.08733694 0.16283499\n", + " 0.08628953 0.16284557 0.08626837 0.16286673 0.0801003 0.16793449\n", + " 0.08610967 0.16285615 0.08610967 0.16285615 0.08610967 0.16285615\n", + " 0.08316846 0.16286673 0.08317904 0.16285615 0.08633185 0.17301283\n", + " 0.08633185 0.16289846 0.08633185 0.17638782 0.08528444 0.17638782\n", + " 0.08583459 0.16353326 0.08583459 0.17366879 0.08528444 0.1686116\n", + " 0.0853056 0.16288788 0.0853056 0.17638782 0.0853056 0.17638782\n", + " 0.08604619 0.16285615 0.08738984 0.16283499 0.09007713 0.16283499\n", + " 0.09007713 0.16283499 0.09007713 0.1780806 0.08762259 0.1780806\n", + " 0.08762259 0.1780806 0.09008771 0.16571271 0.08788709 0.16571271\n", + " 0.08788709 0.16571271 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "14 day output [[0]]\n", + "15 day input [0.1705054 0.09439372 0.1705054 0.09428792 0.1705054 0.09162179\n", + " 0.1705054 0.09426676 0.1705054 0.09008771 0.1705054 0.09007713\n", + " 0.1705054 0.08529502 0.17790074 0.08270295 0.1614596 0.08208932\n", + " 0.1614596 0.07928565 0.17299167 0.07963478 0.16250701 0.08450153\n", + " 0.16250701 0.08600387 0.16250701 0.08733694 0.16283499 0.08628953\n", + " 0.16284557 0.08626837 0.16286673 0.0801003 0.16793449 0.08610967\n", + " 0.16285615 0.08610967 0.16285615 0.08610967 0.16285615 0.08316846\n", + " 0.16286673 0.08317904 0.16285615 0.08633185 0.17301283 0.08633185\n", + " 0.16289846 0.08633185 0.17638782 0.08528444 0.17638782 0.08583459\n", + " 0.16353326 0.08583459 0.17366879 0.08528444 0.1686116 0.0853056\n", + " 0.16288788 0.0853056 0.17638782 0.0853056 0.17638782 0.08604619\n", + " 0.16285615 0.08738984 0.16283499 0.09007713 0.16283499 0.09007713\n", + " 0.16283499 0.09007713 0.1780806 0.08762259 0.1780806 0.08762259\n", + " 0.1780806 0.09008771 0.16571271 0.08788709 0.16571271 0.08788709\n", + " 0.16571271 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "15 day output [[0]]\n", + "16 day input [0.09439372 0.1705054 0.09428792 0.1705054 0.09162179 0.1705054\n", + " 0.09426676 0.1705054 0.09008771 0.1705054 0.09007713 0.1705054\n", + " 0.08529502 0.17790074 0.08270295 0.1614596 0.08208932 0.1614596\n", + " 0.07928565 0.17299167 0.07963478 0.16250701 0.08450153 0.16250701\n", + " 0.08600387 0.16250701 0.08733694 0.16283499 0.08628953 0.16284557\n", + " 0.08626837 0.16286673 0.0801003 0.16793449 0.08610967 0.16285615\n", + " 0.08610967 0.16285615 0.08610967 0.16285615 0.08316846 0.16286673\n", + " 0.08317904 0.16285615 0.08633185 0.17301283 0.08633185 0.16289846\n", + " 0.08633185 0.17638782 0.08528444 0.17638782 0.08583459 0.16353326\n", + " 0.08583459 0.17366879 0.08528444 0.1686116 0.0853056 0.16288788\n", + " 0.0853056 0.17638782 0.0853056 0.17638782 0.08604619 0.16285615\n", + " 0.08738984 0.16283499 0.09007713 0.16283499 0.09007713 0.16283499\n", + " 0.09007713 0.1780806 0.08762259 0.1780806 0.08762259 0.1780806\n", + " 0.09008771 0.16571271 0.08788709 0.16571271 0.08788709 0.16571271\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "16 day output [[0]]\n", + "17 day input [0.1705054 0.09428792 0.1705054 0.09162179 0.1705054 0.09426676\n", + " 0.1705054 0.09008771 0.1705054 0.09007713 0.1705054 0.08529502\n", + " 0.17790074 0.08270295 0.1614596 0.08208932 0.1614596 0.07928565\n", + " 0.17299167 0.07963478 0.16250701 0.08450153 0.16250701 0.08600387\n", + " 0.16250701 0.08733694 0.16283499 0.08628953 0.16284557 0.08626837\n", + " 0.16286673 0.0801003 0.16793449 0.08610967 0.16285615 0.08610967\n", + " 0.16285615 0.08610967 0.16285615 0.08316846 0.16286673 0.08317904\n", + " 0.16285615 0.08633185 0.17301283 0.08633185 0.16289846 0.08633185\n", + " 0.17638782 0.08528444 0.17638782 0.08583459 0.16353326 0.08583459\n", + " 0.17366879 0.08528444 0.1686116 0.0853056 0.16288788 0.0853056\n", + " 0.17638782 0.0853056 0.17638782 0.08604619 0.16285615 0.08738984\n", + " 0.16283499 0.09007713 0.16283499 0.09007713 0.16283499 0.09007713\n", + " 0.1780806 0.08762259 0.1780806 0.08762259 0.1780806 0.09008771\n", + " 0.16571271 0.08788709 0.16571271 0.08788709 0.16571271 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "17 day output [[0]]\n", + "18 day input [0.09428792 0.1705054 0.09162179 0.1705054 0.09426676 0.1705054\n", + " 0.09008771 0.1705054 0.09007713 0.1705054 0.08529502 0.17790074\n", + " 0.08270295 0.1614596 0.08208932 0.1614596 0.07928565 0.17299167\n", + " 0.07963478 0.16250701 0.08450153 0.16250701 0.08600387 0.16250701\n", + " 0.08733694 0.16283499 0.08628953 0.16284557 0.08626837 0.16286673\n", + " 0.0801003 0.16793449 0.08610967 0.16285615 0.08610967 0.16285615\n", + " 0.08610967 0.16285615 0.08316846 0.16286673 0.08317904 0.16285615\n", + " 0.08633185 0.17301283 0.08633185 0.16289846 0.08633185 0.17638782\n", + " 0.08528444 0.17638782 0.08583459 0.16353326 0.08583459 0.17366879\n", + " 0.08528444 0.1686116 0.0853056 0.16288788 0.0853056 0.17638782\n", + " 0.0853056 0.17638782 0.08604619 0.16285615 0.08738984 0.16283499\n", + " 0.09007713 0.16283499 0.09007713 0.16283499 0.09007713 0.1780806\n", + " 0.08762259 0.1780806 0.08762259 0.1780806 0.09008771 0.16571271\n", + " 0.08788709 0.16571271 0.08788709 0.16571271 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "18 day output [[0]]\n", + "19 day input [0.1705054 0.09162179 0.1705054 0.09426676 0.1705054 0.09008771\n", + " 0.1705054 0.09007713 0.1705054 0.08529502 0.17790074 0.08270295\n", + " 0.1614596 0.08208932 0.1614596 0.07928565 0.17299167 0.07963478\n", + " 0.16250701 0.08450153 0.16250701 0.08600387 0.16250701 0.08733694\n", + " 0.16283499 0.08628953 0.16284557 0.08626837 0.16286673 0.0801003\n", + " 0.16793449 0.08610967 0.16285615 0.08610967 0.16285615 0.08610967\n", + " 0.16285615 0.08316846 0.16286673 0.08317904 0.16285615 0.08633185\n", + " 0.17301283 0.08633185 0.16289846 0.08633185 0.17638782 0.08528444\n", + " 0.17638782 0.08583459 0.16353326 0.08583459 0.17366879 0.08528444\n", + " 0.1686116 0.0853056 0.16288788 0.0853056 0.17638782 0.0853056\n", + " 0.17638782 0.08604619 0.16285615 0.08738984 0.16283499 0.09007713\n", + " 0.16283499 0.09007713 0.16283499 0.09007713 0.1780806 0.08762259\n", + " 0.1780806 0.08762259 0.1780806 0.09008771 0.16571271 0.08788709\n", + " 0.16571271 0.08788709 0.16571271 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "19 day output [[0]]\n", + "20 day input [0.09162179 0.1705054 0.09426676 0.1705054 0.09008771 0.1705054\n", + " 0.09007713 0.1705054 0.08529502 0.17790074 0.08270295 0.1614596\n", + " 0.08208932 0.1614596 0.07928565 0.17299167 0.07963478 0.16250701\n", + " 0.08450153 0.16250701 0.08600387 0.16250701 0.08733694 0.16283499\n", + " 0.08628953 0.16284557 0.08626837 0.16286673 0.0801003 0.16793449\n", + " 0.08610967 0.16285615 0.08610967 0.16285615 0.08610967 0.16285615\n", + " 0.08316846 0.16286673 0.08317904 0.16285615 0.08633185 0.17301283\n", + " 0.08633185 0.16289846 0.08633185 0.17638782 0.08528444 0.17638782\n", + " 0.08583459 0.16353326 0.08583459 0.17366879 0.08528444 0.1686116\n", + " 0.0853056 0.16288788 0.0853056 0.17638782 0.0853056 0.17638782\n", + " 0.08604619 0.16285615 0.08738984 0.16283499 0.09007713 0.16283499\n", + " 0.09007713 0.16283499 0.09007713 0.1780806 0.08762259 0.1780806\n", + " 0.08762259 0.1780806 0.09008771 0.16571271 0.08788709 0.16571271\n", + " 0.08788709 0.16571271 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "20 day output [[0]]\n", + "21 day input [0.1705054 0.09426676 0.1705054 0.09008771 0.1705054 0.09007713\n", + " 0.1705054 0.08529502 0.17790074 0.08270295 0.1614596 0.08208932\n", + " 0.1614596 0.07928565 0.17299167 0.07963478 0.16250701 0.08450153\n", + " 0.16250701 0.08600387 0.16250701 0.08733694 0.16283499 0.08628953\n", + " 0.16284557 0.08626837 0.16286673 0.0801003 0.16793449 0.08610967\n", + " 0.16285615 0.08610967 0.16285615 0.08610967 0.16285615 0.08316846\n", + " 0.16286673 0.08317904 0.16285615 0.08633185 0.17301283 0.08633185\n", + " 0.16289846 0.08633185 0.17638782 0.08528444 0.17638782 0.08583459\n", + " 0.16353326 0.08583459 0.17366879 0.08528444 0.1686116 0.0853056\n", + " 0.16288788 0.0853056 0.17638782 0.0853056 0.17638782 0.08604619\n", + " 0.16285615 0.08738984 0.16283499 0.09007713 0.16283499 0.09007713\n", + " 0.16283499 0.09007713 0.1780806 0.08762259 0.1780806 0.08762259\n", + " 0.1780806 0.09008771 0.16571271 0.08788709 0.16571271 0.08788709\n", + " 0.16571271 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "21 day output [[0]]\n", + "22 day input [0.09426676 0.1705054 0.09008771 0.1705054 0.09007713 0.1705054\n", + " 0.08529502 0.17790074 0.08270295 0.1614596 0.08208932 0.1614596\n", + " 0.07928565 0.17299167 0.07963478 0.16250701 0.08450153 0.16250701\n", + " 0.08600387 0.16250701 0.08733694 0.16283499 0.08628953 0.16284557\n", + " 0.08626837 0.16286673 0.0801003 0.16793449 0.08610967 0.16285615\n", + " 0.08610967 0.16285615 0.08610967 0.16285615 0.08316846 0.16286673\n", + " 0.08317904 0.16285615 0.08633185 0.17301283 0.08633185 0.16289846\n", + " 0.08633185 0.17638782 0.08528444 0.17638782 0.08583459 0.16353326\n", + " 0.08583459 0.17366879 0.08528444 0.1686116 0.0853056 0.16288788\n", + " 0.0853056 0.17638782 0.0853056 0.17638782 0.08604619 0.16285615\n", + " 0.08738984 0.16283499 0.09007713 0.16283499 0.09007713 0.16283499\n", + " 0.09007713 0.1780806 0.08762259 0.1780806 0.08762259 0.1780806\n", + " 0.09008771 0.16571271 0.08788709 0.16571271 0.08788709 0.16571271\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "22 day output [[0]]\n", + "23 day input [0.1705054 0.09008771 0.1705054 0.09007713 0.1705054 0.08529502\n", + " 0.17790074 0.08270295 0.1614596 0.08208932 0.1614596 0.07928565\n", + " 0.17299167 0.07963478 0.16250701 0.08450153 0.16250701 0.08600387\n", + " 0.16250701 0.08733694 0.16283499 0.08628953 0.16284557 0.08626837\n", + " 0.16286673 0.0801003 0.16793449 0.08610967 0.16285615 0.08610967\n", + " 0.16285615 0.08610967 0.16285615 0.08316846 0.16286673 0.08317904\n", + " 0.16285615 0.08633185 0.17301283 0.08633185 0.16289846 0.08633185\n", + " 0.17638782 0.08528444 0.17638782 0.08583459 0.16353326 0.08583459\n", + " 0.17366879 0.08528444 0.1686116 0.0853056 0.16288788 0.0853056\n", + " 0.17638782 0.0853056 0.17638782 0.08604619 0.16285615 0.08738984\n", + " 0.16283499 0.09007713 0.16283499 0.09007713 0.16283499 0.09007713\n", + " 0.1780806 0.08762259 0.1780806 0.08762259 0.1780806 0.09008771\n", + " 0.16571271 0.08788709 0.16571271 0.08788709 0.16571271 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "23 day output [[0]]\n", + "24 day input [0.09008771 0.1705054 0.09007713 0.1705054 0.08529502 0.17790074\n", + " 0.08270295 0.1614596 0.08208932 0.1614596 0.07928565 0.17299167\n", + " 0.07963478 0.16250701 0.08450153 0.16250701 0.08600387 0.16250701\n", + " 0.08733694 0.16283499 0.08628953 0.16284557 0.08626837 0.16286673\n", + " 0.0801003 0.16793449 0.08610967 0.16285615 0.08610967 0.16285615\n", + " 0.08610967 0.16285615 0.08316846 0.16286673 0.08317904 0.16285615\n", + " 0.08633185 0.17301283 0.08633185 0.16289846 0.08633185 0.17638782\n", + " 0.08528444 0.17638782 0.08583459 0.16353326 0.08583459 0.17366879\n", + " 0.08528444 0.1686116 0.0853056 0.16288788 0.0853056 0.17638782\n", + " 0.0853056 0.17638782 0.08604619 0.16285615 0.08738984 0.16283499\n", + " 0.09007713 0.16283499 0.09007713 0.16283499 0.09007713 0.1780806\n", + " 0.08762259 0.1780806 0.08762259 0.1780806 0.09008771 0.16571271\n", + " 0.08788709 0.16571271 0.08788709 0.16571271 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "24 day output [[0]]\n", + "25 day input [0.1705054 0.09007713 0.1705054 0.08529502 0.17790074 0.08270295\n", + " 0.1614596 0.08208932 0.1614596 0.07928565 0.17299167 0.07963478\n", + " 0.16250701 0.08450153 0.16250701 0.08600387 0.16250701 0.08733694\n", + " 0.16283499 0.08628953 0.16284557 0.08626837 0.16286673 0.0801003\n", + " 0.16793449 0.08610967 0.16285615 0.08610967 0.16285615 0.08610967\n", + " 0.16285615 0.08316846 0.16286673 0.08317904 0.16285615 0.08633185\n", + " 0.17301283 0.08633185 0.16289846 0.08633185 0.17638782 0.08528444\n", + " 0.17638782 0.08583459 0.16353326 0.08583459 0.17366879 0.08528444\n", + " 0.1686116 0.0853056 0.16288788 0.0853056 0.17638782 0.0853056\n", + " 0.17638782 0.08604619 0.16285615 0.08738984 0.16283499 0.09007713\n", + " 0.16283499 0.09007713 0.16283499 0.09007713 0.1780806 0.08762259\n", + " 0.1780806 0.08762259 0.1780806 0.09008771 0.16571271 0.08788709\n", + " 0.16571271 0.08788709 0.16571271 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "25 day output [[0]]\n", + "26 day input [0.09007713 0.1705054 0.08529502 0.17790074 0.08270295 0.1614596\n", + " 0.08208932 0.1614596 0.07928565 0.17299167 0.07963478 0.16250701\n", + " 0.08450153 0.16250701 0.08600387 0.16250701 0.08733694 0.16283499\n", + " 0.08628953 0.16284557 0.08626837 0.16286673 0.0801003 0.16793449\n", + " 0.08610967 0.16285615 0.08610967 0.16285615 0.08610967 0.16285615\n", + " 0.08316846 0.16286673 0.08317904 0.16285615 0.08633185 0.17301283\n", + " 0.08633185 0.16289846 0.08633185 0.17638782 0.08528444 0.17638782\n", + " 0.08583459 0.16353326 0.08583459 0.17366879 0.08528444 0.1686116\n", + " 0.0853056 0.16288788 0.0853056 0.17638782 0.0853056 0.17638782\n", + " 0.08604619 0.16285615 0.08738984 0.16283499 0.09007713 0.16283499\n", + " 0.09007713 0.16283499 0.09007713 0.1780806 0.08762259 0.1780806\n", + " 0.08762259 0.1780806 0.09008771 0.16571271 0.08788709 0.16571271\n", + " 0.08788709 0.16571271 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "26 day output [[0]]\n", + "27 day input [0.1705054 0.08529502 0.17790074 0.08270295 0.1614596 0.08208932\n", + " 0.1614596 0.07928565 0.17299167 0.07963478 0.16250701 0.08450153\n", + " 0.16250701 0.08600387 0.16250701 0.08733694 0.16283499 0.08628953\n", + " 0.16284557 0.08626837 0.16286673 0.0801003 0.16793449 0.08610967\n", + " 0.16285615 0.08610967 0.16285615 0.08610967 0.16285615 0.08316846\n", + " 0.16286673 0.08317904 0.16285615 0.08633185 0.17301283 0.08633185\n", + " 0.16289846 0.08633185 0.17638782 0.08528444 0.17638782 0.08583459\n", + " 0.16353326 0.08583459 0.17366879 0.08528444 0.1686116 0.0853056\n", + " 0.16288788 0.0853056 0.17638782 0.0853056 0.17638782 0.08604619\n", + " 0.16285615 0.08738984 0.16283499 0.09007713 0.16283499 0.09007713\n", + " 0.16283499 0.09007713 0.1780806 0.08762259 0.1780806 0.08762259\n", + " 0.1780806 0.09008771 0.16571271 0.08788709 0.16571271 0.08788709\n", + " 0.16571271 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "27 day output [[0]]\n", + "28 day input [0.08529502 0.17790074 0.08270295 0.1614596 0.08208932 0.1614596\n", + " 0.07928565 0.17299167 0.07963478 0.16250701 0.08450153 0.16250701\n", + " 0.08600387 0.16250701 0.08733694 0.16283499 0.08628953 0.16284557\n", + " 0.08626837 0.16286673 0.0801003 0.16793449 0.08610967 0.16285615\n", + " 0.08610967 0.16285615 0.08610967 0.16285615 0.08316846 0.16286673\n", + " 0.08317904 0.16285615 0.08633185 0.17301283 0.08633185 0.16289846\n", + " 0.08633185 0.17638782 0.08528444 0.17638782 0.08583459 0.16353326\n", + " 0.08583459 0.17366879 0.08528444 0.1686116 0.0853056 0.16288788\n", + " 0.0853056 0.17638782 0.0853056 0.17638782 0.08604619 0.16285615\n", + " 0.08738984 0.16283499 0.09007713 0.16283499 0.09007713 0.16283499\n", + " 0.09007713 0.1780806 0.08762259 0.1780806 0.08762259 0.1780806\n", + " 0.09008771 0.16571271 0.08788709 0.16571271 0.08788709 0.16571271\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "28 day output [[0]]\n", + "29 day input [0.17790074 0.08270295 0.1614596 0.08208932 0.1614596 0.07928565\n", + " 0.17299167 0.07963478 0.16250701 0.08450153 0.16250701 0.08600387\n", + " 0.16250701 0.08733694 0.16283499 0.08628953 0.16284557 0.08626837\n", + " 0.16286673 0.0801003 0.16793449 0.08610967 0.16285615 0.08610967\n", + " 0.16285615 0.08610967 0.16285615 0.08316846 0.16286673 0.08317904\n", + " 0.16285615 0.08633185 0.17301283 0.08633185 0.16289846 0.08633185\n", + " 0.17638782 0.08528444 0.17638782 0.08583459 0.16353326 0.08583459\n", + " 0.17366879 0.08528444 0.1686116 0.0853056 0.16288788 0.0853056\n", + " 0.17638782 0.0853056 0.17638782 0.08604619 0.16285615 0.08738984\n", + " 0.16283499 0.09007713 0.16283499 0.09007713 0.16283499 0.09007713\n", + " 0.1780806 0.08762259 0.1780806 0.08762259 0.1780806 0.09008771\n", + " 0.16571271 0.08788709 0.16571271 0.08788709 0.16571271 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. 0. 0.\n", + " 0. 0. 0. 0. ]\n", + "29 day output [[0]]\n", + "[[0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0], [0]]\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "JqH7rOYeFApz" + }, + "source": [ + "" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "6WIiu3wgT5Ee" + }, + "source": [ + "lst_output=scaler.inverse_transform(lst_output)" + ], + "execution_count": 83, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "V6MI4hkoUf1h" + }, + "source": [ + "Price after 30 days" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "hFAgP9lZUILa", + "outputId": "9fc548c0-2cd9-4dc8-a5f6-560912628546", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 34 + } + }, + "source": [ + "lst_output[-1]" + ], + "execution_count": 84, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([2237.4])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 84 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "bt4V7a9RUcQ0" + }, + "source": [ + "" + ], + "execution_count": null, + "outputs": [] } - ], - "source": [ - "testX" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.3" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} + ] +} \ No newline at end of file diff --git a/Bitcoin Price Prediction.py b/Bitcoin Price Prediction.py new file mode 100644 index 0000000..8360468 --- /dev/null +++ b/Bitcoin Price Prediction.py @@ -0,0 +1,197 @@ +# -*- coding: utf-8 -*- +"""bitcoin1.ipynb + +Automatically generated by Colaboratory. + +Original file is located at + https://colab.research.google.com/drive/1GrovHIcNlGfMkUGxf7ABQxlI8rLPUHdl +""" + +import numpy as np +import pandas as pd +import matplotlib.pyplot +import keras #importing keras using tensorflow as backend + +from sklearn.preprocessing import MinMaxScaler +from sklearn.preprocessing import StandardScaler +from sklearn.metrics import mean_squared_error +from sklearn.model_selection import train_test_split + +from keras.models import Sequential +from keras.layers import Dense +from keras.layers import LSTM + +df=pd.read_csv('/content/drive/My Drive/bitcoin_ticker.csv') + +df + +df.head(5) + +df.tail() + +"""## Data Preprocessing + +### The value_counts() function is used to get a Series containing counts of unique values.rpt_key consists of different kinds of currencies +""" + +df['rpt_key'].value_counts() + +"""### Price in various currencies are given-Considering only USD""" + +df= df.loc[(df['rpt_key']=='btc_usd')] + +df + +df.head() + +"""### datetime_id to datatime""" + +df1=df.reset_index(drop=True)['last'] + +df1 + +"""### Feature scaling (Scaling last values between 0-1)""" + +scaler=MinMaxScaler(feature_range=(0,1)) +df1=scaler.fit_transform(np.array(df1).reshape(-1,1)) + +print(df1) + +"""### Splitting dataset into training and testing""" + +##splitting dataset into train and test split +training_size=int(len(df1)*0.65) +test_size=len(df1)-training_size +train_data,test_data=df1[0:training_size,:],df1[training_size:len(df1),:1] + +training_size,test_size + +train_data + +test_data + +"""### Convert an array of values(numpy array) into a dataset Matrix""" + +import numpy +def create_dataset(dataset, time_step=1): + dataX, dataY = [], [] + for i in range(len(dataset)-time_step-1): + a = dataset[i:(i+time_step), 0] + dataX.append(a) + dataY.append(dataset[i + time_step, 0]) + return numpy.array(dataX), numpy.array(dataY) + +# reshape +time_step = 10 +X_train, y_train = create_dataset(train_data, time_step) +X_test, ytest = create_dataset(test_data, time_step) + +print(X_train.shape), print(y_train.shape) + +y_train + +X_train + +print(X_test.shape), print(ytest.shape) + +"""### Reshaping input to be [samples ,time steps, features] from [samples,features]""" + +# reshape input to be [samples, time steps, features] which is required for LSTM +X_train =X_train.reshape(X_train.shape[0],X_train.shape[1] , 1) +X_test = X_test.reshape(X_test.shape[0],X_test.shape[1] , 1) + +"""## Building the Model""" + +model=Sequential() +model.add(LSTM(4,return_sequences=True,input_shape=(10,1))) +model.add(LSTM(4,return_sequences=True)) +model.add(LSTM(4)) +model.add(Dense(1)) +model.compile(loss='mean_squared_error',optimizer='adam') + +model.summary() + +model.fit(X_train,y_train,validation_data=(X_test,ytest),epochs=100,batch_size=64,verbose=1) + +"""### Predicting the data""" + +### Lets Do the prediction and check performance metrics +train_predict=model.predict(X_train) +test_predict=model.predict(X_test) + +"""### Transform to original form By Inversing as we had scaled earlier""" + +X_train + +train_predict + +##Transformback to original form +train_predict=scaler.inverse_transform(train_predict) +test_predict=scaler.inverse_transform(test_predict) + +train_predict + +y_train + +"""#### Calculate the RMSE performance matrix""" + +### Calculate RMSE performance metrics +import math +from sklearn.metrics import mean_squared_error +math.sqrt(mean_squared_error(y_train,train_predict)) + +### Test Data RMSE +math.sqrt(mean_squared_error(ytest,test_predict)) + +len(test_data) + +"""### Predict the output for future 30 days""" + +x_input=test_data[43804:].reshape(1,-1) +x_input.shape + +temp_input=list(x_input) +temp_input=temp_input[0].tolist() + +temp_input + +# demonstrate prediction for next 30 days +from numpy import array + +lst_output=[] +n_steps=100 +i=0 +while(i<30): + + if(len(temp_input)>100): + #print(temp_input) + x_input=np.array(temp_input[1:]) + print("{} day input {}".format(i,x_input)) + x_input=x_input.reshape(1,-1) + x_input = x_input.reshape((1, n_steps, 1)) + #print(x_input) + yhat = model.predict_classes(x_input, verbose=0) + print("{} day output {}".format(i,yhat)) + temp_input.extend(yhat[0].tolist()) + temp_input=temp_input[1:] + #print(temp_input) + lst_output.extend(yhat.tolist()) + i=i+1 + else: + x_input = x_input.reshape((1, n_steps,1)) + yhat = model.predict_classes(x_input, verbose=0) + print(yhat[0]) + temp_input.extend(yhat[0].tolist()) + print(len(temp_input)) + lst_output.extend(yhat.tolist()) + i=i+1 + + +print(lst_output) + +lst_output=scaler.inverse_transform(lst_output) + +"""Price after 30 days""" + +lst_output[-1] +