{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "TvFpYETXy-H5" }, "source": [ "

Data Mining Assignment (Group 5)

\n", "
\n", "

Members:

\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": { "id": "q88GtkqE1fHg" }, "source": [ "

Case : Memprediksi harga cryptocurrency menggunakan LSTM (Long Short Term Memory)

\n", "
\n", "

Objectives :

\n", "\n", "\n", "
\n", "\n", "

Attributes :

\n", "\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": { "id": "tAkelue23B86" }, "source": [ "

Data Collection

" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "cdTcjhxS2FYc", "outputId": "07fbccef-6ae3-4623-e965-6051df8db7c4" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Cloning into 'cryptocurrency_prediction'...\n", "remote: Enumerating objects: 632, done.\u001b[K\n", "remote: Counting objects: 100% (347/347), done.\u001b[K\n", "remote: Compressing objects: 100% (192/192), done.\u001b[K\n", "remote: Total 632 (delta 160), reused 155 (delta 155), pack-reused 285\u001b[K\n", "Receiving objects: 100% (632/632), 10.33 MiB | 13.72 MiB/s, done.\n", "Resolving deltas: 100% (315/315), done.\n", "total 20720\n", "drwxr-xr-x 2 root root 12288 Jun 1 07:08 .\n", "drwxr-xr-x 1 root root 4096 Jun 1 07:08 ..\n", "-rw-r--r-- 1 root root 11259 Jun 1 07:08 1000SATS-USD.csv\n", "-rw-r--r-- 1 root root 81927 Jun 1 07:08 1INCH-USD.csv\n", "-rw-r--r-- 1 root root 97627 Jun 1 07:08 AAVE-USD.csv\n", "-rw-r--r-- 1 root root 146342 Jun 1 07:08 ABT-USD.csv\n", "-rw-r--r-- 1 root root 158138 Jun 1 07:08 ADA-USD.csv\n", "-rw-r--r-- 1 root root 7796 Jun 1 07:08 AERO29270-USD.csv\n", "-rw-r--r-- 1 root root 5275 Jun 1 07:08 AEVO-USD.csv\n", "-rw-r--r-- 1 root root 148725 Jun 1 07:08 AGIX-USD.csv\n", "-rw-r--r-- 1 root root 73377 Jun 1 07:08 AIOZ-USD.csv\n", "-rw-r--r-- 1 root root 84187 Jun 1 07:08 AKT-USD.csv\n", "-rw-r--r-- 1 root root 118342 Jun 1 07:08 ALGO-USD.csv\n", "-rw-r--r-- 1 root root 8434 Jun 1 07:08 ALT29073-USD.csv\n", "-rw-r--r-- 1 root root 124096 Jun 1 07:08 ANKR-USD.csv\n", "-rw-r--r-- 1 root root 153325 Jun 1 07:08 ANT-USD.csv\n", "-rw-r--r-- 1 root root 53130 Jun 1 07:08 APE18876-USD.csv\n", "-rw-r--r-- 1 root root 39708 Jun 1 07:08 APT21794-USD.csv\n", "-rw-r--r-- 1 root root 28830 Jun 1 07:08 ARB11841-USD.csv\n", "-rw-r--r-- 1 root root 20779 Jun 1 07:08 ARKM-USD.csv\n", "-rw-r--r-- 1 root root 98543 Jun 1 07:08 AR-USD.csv\n", "-rw-r--r-- 1 root root 55864 Jun 1 07:08 ASTR-USD.csv\n", "-rw-r--r-- 1 root root 129779 Jun 1 07:08 ATOM-USD.csv\n", "-rw-r--r-- 1 root root 98030 Jun 1 07:08 AVAX-USD.csv\n", "-rw-r--r-- 1 root root 39389 Jun 1 07:08 AXL17799-USD.csv\n", "-rw-r--r-- 1 root root 88498 Jun 1 07:08 AXS-USD.csv\n", "-rw-r--r-- 1 root root 156103 Jun 1 07:08 BAT-USD.csv\n", "-rw-r--r-- 1 root root 184199 Jun 1 07:08 BCH-USD.csv\n", "-rw-r--r-- 1 root root 14193 Jun 1 07:08 BEAM28298-USD.csv\n", "-rw-r--r-- 1 root root 96835 Jun 1 07:08 BETH-USD.csv\n", "-rw-r--r-- 1 root root 66238 Jun 1 07:08 BGB-USD.csv\n", "-rw-r--r-- 1 root root 58891 Jun 1 07:08 BICO-USD.csv\n", "-rw-r--r-- 1 root root 30958 Jun 1 07:08 BLUR-USD.csv\n", "-rw-r--r-- 1 root root 175266 Jun 1 07:08 BNB-USD.csv\n", "-rw-r--r-- 1 root root 29918 Jun 1 07:08 BNX23635-USD.csv\n", "-rw-r--r-- 1 root root 5266 Jun 1 07:08 BOME-USD.csv\n", "-rw-r--r-- 1 root root 33661 Jun 1 07:08 BONK-USD.csv\n", "-rw-r--r-- 1 root root 5358 Jun 1 07:08 BRETT29743-USD.csv\n", "-rw-r--r-- 1 root root 11721 Jun 1 07:08 BSOL-USD.csv\n", "-rw-r--r-- 1 root root 148560 Jun 1 07:08 BSV-USD.csv\n", "-rw-r--r-- 1 root root 150193 Jun 1 07:08 BTCB-USD.csv\n", "-rw-r--r-- 1 root root 294365 Jun 1 07:08 BTC-USD.csv\n", "-rw-r--r-- 1 root root 165834 Jun 1 07:08 BTG-USD.csv\n", "-rw-r--r-- 1 root root 126421 Jun 1 07:08 BTT-USD.csv\n", "-rw-r--r-- 1 root root 89274 Jun 1 07:08 CAKE-USD.csv\n", "-rw-r--r-- 1 root root 51338 Jun 1 07:08 CBETH-USD.csv\n", "-rw-r--r-- 1 root root 95272 Jun 1 07:08 CELO-USD.csv\n", "-rw-r--r-- 1 root root 66639 Jun 1 07:08 CFG-USD.csv\n", "-rw-r--r-- 1 root root 84008 Jun 1 07:08 CFX-USD.csv\n", "-rw-r--r-- 1 root root 31812 Jun 1 07:08 CHEEL-USD.csv\n", "-rw-r--r-- 1 root root 117117 Jun 1 07:08 CHZ-USD.csv\n", "-rw-r--r-- 1 root root 106649 Jun 1 07:08 CKB-USD.csv\n", "-rw-r--r-- 1 root root 105142 Jun 1 07:08 COMP5692-USD.csv\n", "-rw-r--r-- 1 root root 31101 Jun 1 07:08 CORE23254-USD.csv\n", "-rw-r--r-- 1 root root 129369 Jun 1 07:08 CRO-USD.csv\n", "-rw-r--r-- 1 root root 90889 Jun 1 07:08 CRV-USD.csv\n", "-rw-r--r-- 1 root root 71930 Jun 1 07:08 CSPR-USD.csv\n", "-rw-r--r-- 1 root root 108602 Jun 1 07:08 DAI-USD.csv\n", "-rw-r--r-- 1 root root 174761 Jun 1 07:08 DASH-USD.csv\n", "-rw-r--r-- 1 root root 167525 Jun 1 07:08 DCR-USD.csv\n", "-rw-r--r-- 1 root root 87131 Jun 1 07:08 DEXE-USD.csv\n", "-rw-r--r-- 1 root root 2365 Jun 1 07:08 DOG30933-USD.csv\n", "-rw-r--r-- 1 root root 157635 Jun 1 07:08 DOGE-USD.csv\n", "-rw-r--r-- 1 root root 94044 Jun 1 07:08 DOT-USD.csv\n", "-rw-r--r-- 1 root root 64505 Jun 1 07:08 DYDX-USD.csv\n", "-rw-r--r-- 1 root root 8087 Jun 1 07:08 DYM-USD.csv\n", "-rw-r--r-- 1 root root 9360 Jun 1 07:08 EETH-USD.csv\n", "-rw-r--r-- 1 root root 97567 Jun 1 07:08 EGLD-USD.csv\n", "-rw-r--r-- 1 root root 152407 Jun 1 07:08 ELF-USD.csv\n", "-rw-r--r-- 1 root root 4011 Jun 1 07:08 ENA-USD.csv\n", "-rw-r--r-- 1 root root 155284 Jun 1 07:08 ENJ-USD.csv\n", "-rw-r--r-- 1 root root 64384 Jun 1 07:08 ENS-USD.csv\n", "-rw-r--r-- 1 root root 159563 Jun 1 07:08 EOS-USD.csv\n", "-rw-r--r-- 1 root root 166427 Jun 1 07:08 ETC-USD.csv\n", "-rw-r--r-- 1 root root 14368 Jun 1 07:08 ETHDYDX-USD.csv\n", "-rw-r--r-- 1 root root 4991 Jun 1 07:08 ETHFI-USD.csv\n", "-rw-r--r-- 1 root root 191972 Jun 1 07:08 ETH-USD.csv\n", "-rw-r--r-- 1 root root 43122 Jun 1 07:08 ETHW-USD.csv\n", "-rw-r--r-- 1 root root 24982 Jun 1 07:08 ETHX-USD.csv\n", "-rw-r--r-- 1 root root 7977 Jun 1 07:08 EZETH-USD.csv\n", "-rw-r--r-- 1 root root 20712 Jun 1 07:08 FDUSD-USD.csv\n", "-rw-r--r-- 1 root root 124405 Jun 1 07:08 FET-USD.csv\n", "-rw-r--r-- 1 root root 158255 Jun 1 07:08 FIL-USD.csv\n", "-rw-r--r-- 1 root root 68354 Jun 1 07:08 FLOKI-USD.csv\n", "-rw-r--r-- 1 root root 81203 Jun 1 07:08 FLOW-USD.csv\n", "-rw-r--r-- 1 root root 32831 Jun 1 07:08 FLR-USD.csv\n", "-rw-r--r-- 1 root root 135979 Jun 1 07:08 FLUX-USD.csv\n", "-rw-r--r-- 1 root root 80860 Jun 1 07:08 FRAX-USD.csv\n", "-rw-r--r-- 1 root root 132786 Jun 1 07:08 FTM-USD.csv\n", "-rw-r--r-- 1 root root 31859 Jun 1 07:08 FTN-USD.csv\n", "-rw-r--r-- 1 root root 118012 Jun 1 07:08 FTT-USD.csv\n", "-rw-r--r-- 1 root root 82444 Jun 1 07:08 FXS-USD.csv\n", "-rw-r--r-- 1 root root 49164 Jun 1 07:08 GAL11877-USD.csv\n", "-rw-r--r-- 1 root root 87110 Jun 1 07:08 GALA-USD.csv\n", "-rw-r--r-- 1 root root 156090 Jun 1 07:08 GAS-USD.csv\n", "-rw-r--r-- 1 root root 154176 Jun 1 07:08 GLM-USD.csv\n", "-rw-r--r-- 1 root root 53334 Jun 1 07:08 GMT18069-USD.csv\n", "-rw-r--r-- 1 root root 68590 Jun 1 07:08 GMX11857-USD.csv\n", "-rw-r--r-- 1 root root 170467 Jun 1 07:08 GNO-USD.csv\n", "-rw-r--r-- 1 root root 82607 Jun 1 07:08 GRT6719-USD.csv\n", "-rw-r--r-- 1 root root 111729 Jun 1 07:08 GT-USD.csv\n", "-rw-r--r-- 1 root root 111949 Jun 1 07:08 HBAR-USD.csv\n", "-rw-r--r-- 1 root root 62443 Jun 1 07:08 HIGH-USD.csv\n", "-rw-r--r-- 1 root root 95661 Jun 1 07:08 HNT-USD.csv\n", "-rw-r--r-- 1 root root 136095 Jun 1 07:08 HOT2682-USD.csv\n", "-rw-r--r-- 1 root root 76035 Jun 1 07:08 ICP-USD.csv\n", "-rw-r--r-- 1 root root 28516 Jun 1 07:08 ID21846-USD.csv\n", "-rw-r--r-- 1 root root 83349 Jun 1 07:08 ILV-USD.csv\n", "-rw-r--r-- 1 root root 61141 Jun 1 07:08 IMX10603-USD.csv\n", "-rw-r--r-- 1 root root 1029 Jun 1 07:08 INF12760-USD.csv\n", "-rw-r--r-- 1 root root 48151 Jun 1 07:08 INF-USD.csv\n", "-rw-r--r-- 1 root root 88055 Jun 1 07:08 INJ-USD.csv\n", "-rw-r--r-- 1 root root 15946 Jun 1 07:08 IOTA-USD.csv\n", "-rw-r--r-- 1 root root 141554 Jun 1 07:08 IOTX-USD.csv\n", "-rw-r--r-- 1 root root 13558 Jun 1 07:08 IPV28367-USD.csv\n", "-rw-r--r-- 1 root root 78389 Jun 1 07:08 JASMY-USD.csv\n", "-rw-r--r-- 1 root root 40196 Jun 1 07:08 JITOSOL-USD.csv\n", "-rw-r--r-- 1 root root 11652 Jun 1 07:08 JTO-USD.csv\n", "-rw-r--r-- 1 root root 8093 Jun 1 07:08 JUP29210-USD.csv\n", "-rw-r--r-- 1 root root 47058 Jun 1 07:08 KAS-USD.csv\n", "-rw-r--r-- 1 root root 109271 Jun 1 07:08 KAVA-USD.csv\n", "-rw-r--r-- 1 root root 156191 Jun 1 07:08 KCS-USD.csv\n", "-rw-r--r-- 1 root root 98908 Jun 1 07:08 KLAY-USD.csv\n", "-rw-r--r-- 1 root root 80722 Jun 1 07:08 LDO-USD.csv\n", "-rw-r--r-- 1 root root 117801 Jun 1 07:08 LEO-USD.csv\n", "-rw-r--r-- 1 root root 161652 Jun 1 07:08 LINK-USD.csv\n", "-rw-r--r-- 1 root root 129675 Jun 1 07:08 LPT-USD.csv\n", "-rw-r--r-- 1 root root 155202 Jun 1 07:08 LRC-USD.csv\n", "-rw-r--r-- 1 root root 34614 Jun 1 07:08 LSETH-USD.csv\n", "-rw-r--r-- 1 root root 250192 Jun 1 07:08 LTC-USD.csv\n", "-rw-r--r-- 1 root root 47976 Jun 1 07:08 LUNA20314-USD.csv\n", "-rw-r--r-- 1 root root 117450 Jun 1 07:08 LUNC-USD.csv\n", "-rw-r--r-- 1 root root 155937 Jun 1 07:08 MANA-USD.csv\n", "-rw-r--r-- 1 root root 8885 Jun 1 07:08 MANTA-USD.csv\n", "-rw-r--r-- 1 root root 78866 Jun 1 07:08 MASK8536-USD.csv\n", "-rw-r--r-- 1 root root 122341 Jun 1 07:08 MATIC-USD.csv\n", "-rw-r--r-- 1 root root 13850 Jun 1 07:08 MEME28301-USD.csv\n", "-rw-r--r-- 1 root root 10953 Jun 1 07:08 METH29035-USD.csv\n", "-rw-r--r-- 1 root root 77468 Jun 1 07:08 METIS-USD.csv\n", "-rw-r--r-- 1 root root 4418 Jun 1 07:08 MEW30126-USD.csv\n", "-rw-r--r-- 1 root root 71214 Jun 1 07:08 MINA-USD.csv\n", "-rw-r--r-- 1 root root 182826 Jun 1 07:08 MKR-USD.csv\n", "-rw-r--r-- 1 root root 20843 Jun 1 07:08 MNT27075-USD.csv\n", "-rw-r--r-- 1 root root 20126 Jun 1 07:08 MOG-USD.csv\n", "-rw-r--r-- 1 root root 68478 Jun 1 07:08 MSOL-USD.csv\n", "-rw-r--r-- 1 root root 110184 Jun 1 07:08 MX-USD.csv\n", "-rw-r--r-- 1 root root 87857 Jun 1 07:08 NEAR-USD.csv\n", "-rw-r--r-- 1 root root 166103 Jun 1 07:08 NEO-USD.csv\n", "-rw-r--r-- 1 root root 142863 Jun 1 07:08 NEXO-USD.csv\n", "-rw-r--r-- 1 root root 72071 Jun 1 07:08 NFT9816-USD.csv\n", "-rw-r--r-- 1 root root 1099 Jun 1 07:08 NOT-USD.csv\n", "-rw-r--r-- 1 root root 120059 Jun 1 07:08 OCEAN-USD.csv\n", "-rw-r--r-- 1 root root 127223 Jun 1 07:08 OKB-USD.csv\n", "-rw-r--r-- 1 root root 88987 Jun 1 07:08 OM-USD.csv\n", "-rw-r--r-- 1 root root 8932 Jun 1 07:08 ONDO-USD.csv\n", "-rw-r--r-- 1 root root 51929 Jun 1 07:08 OP-USD.csv\n", "-rw-r--r-- 1 root root 53388 Jun 1 07:08 ORBR-USD.csv\n", "-rw-r--r-- 1 root root 26632 Jun 1 07:08 ORDI-USD.csv\n", "-rw-r--r-- 1 root root 62540 Jun 1 07:08 OSMO-USD.csv\n", "-rw-r--r-- 1 root root 135623 Jun 1 07:08 PAXG-USD.csv\n", "-rw-r--r-- 1 root root 71880 Jun 1 07:08 PENDLE-USD.csv\n", "-rw-r--r-- 1 root root 60209 Jun 1 07:08 PEOPLE-USD.csv\n", "-rw-r--r-- 1 root root 27055 Jun 1 07:08 PEPE24478-USD.csv\n", "-rw-r--r-- 1 root root 6783 Jun 1 07:08 PIXEL29335-USD.csv\n", "-rw-r--r-- 1 root root 47003 Jun 1 07:08 POLYX-USD.csv\n", "-rw-r--r-- 1 root root 10634 Jun 1 07:08 POPCAT28782-USD.csv\n", "-rw-r--r-- 1 root root 29844 Jun 1 07:08 PRIME23711-USD.csv\n", "-rw-r--r-- 1 root root 12726 Jun 1 07:08 PYTH-USD.csv\n", "-rw-r--r-- 1 root root 18419 Jun 1 07:08 PYUSD-USD.csv\n", "-rw-r--r-- 1 root root 147787 Jun 1 07:08 QNT-USD.csv\n", "-rw-r--r-- 1 root root 159479 Jun 1 07:08 QTUM-USD.csv\n", "-rw-r--r-- 1 root root 78009 Jun 1 07:08 RAY-USD.csv\n", "-rw-r--r-- 1 root root 61635 Jun 1 07:08 RBN-USD.csv\n", "-rw-r--r-- 1 root root 72547 Jun 1 07:08 RETH-USD.csv\n", "-rw-r--r-- 1 root root 93829 Jun 1 07:08 RNDR-USD.csv\n", "-rw-r--r-- 1 root root 54708 Jun 1 07:08 RON14101-USD.csv\n", "-rw-r--r-- 1 root root 83885 Jun 1 07:08 ROSE-USD.csv\n", "-rw-r--r-- 1 root root 138989 Jun 1 07:08 RPL-USD.csv\n", "-rw-r--r-- 1 root root 9703 Jun 1 07:08 RSETH-USD.csv\n", "-rw-r--r-- 1 root root 118674 Jun 1 07:08 RSR-USD.csv\n", "-rw-r--r-- 1 root root 5894 Jun 1 07:08 RSWETH-USD.csv\n", "-rw-r--r-- 1 root root 115647 Jun 1 07:08 RUNE-USD.csv\n", "-rw-r--r-- 1 root root 147009 Jun 1 07:08 RVN-USD.csv\n", "-rw-r--r-- 1 root root 2576 Jun 1 07:08 SAFE21585-USD.csv\n", "-rw-r--r-- 1 root root 90982 Jun 1 07:08 SAND-USD.csv\n", "-rw-r--r-- 1 root root 154364 Jun 1 07:08 SC-USD.csv\n", "-rw-r--r-- 1 root root 19083 Jun 1 07:08 SEI-USD.csv\n", "-rw-r--r-- 1 root root 78140 Jun 1 07:08 SFP-USD.csv\n", "-rw-r--r-- 1 root root 39559 Jun 1 07:08 SFRXETH-USD.csv\n", "-rw-r--r-- 1 root root 91180 Jun 1 07:08 SHIB-USD.csv\n", "-rw-r--r-- 1 root root 82772 Jun 1 07:08 SKL-USD.csv\n", "-rw-r--r-- 1 root root 147426 Jun 1 07:08 SNX-USD.csv\n", "-rw-r--r-- 1 root root 107636 Jun 1 07:08 SOL-USD.csv\n", "-rw-r--r-- 1 root root 65156 Jun 1 07:08 SSV-USD.csv\n", "-rw-r--r-- 1 root root 99441 Jun 1 07:08 STETH-USD.csv\n", "-rw-r--r-- 1 root root 6762 Jun 1 07:08 STRK22691-USD.csv\n", "-rw-r--r-- 1 root root 108544 Jun 1 07:08 STX4847-USD.csv\n", "-rw-r--r-- 1 root root 26023 Jun 1 07:08 SUI20947-USD.csv\n", "-rw-r--r-- 1 root root 77133 Jun 1 07:08 SUPER8290-USD.csv\n", "-rw-r--r-- 1 root root 6436 Jun 1 07:08 SUSDE-USD.csv\n", "-rw-r--r-- 1 root root 91073 Jun 1 07:08 SUSHI-USD.csv\n", "-rw-r--r-- 1 root root 30378 Jun 1 07:08 SWETH-USD.csv\n", "-rw-r--r-- 1 root root 32409 Jun 1 07:08 TAO22974-USD.csv\n", "-rw-r--r-- 1 root root 121928 Jun 1 07:08 TFUEL-USD.csv\n", "-rw-r--r-- 1 root root 151215 Jun 1 07:08 THETA-USD.csv\n", "-rw-r--r-- 1 root root 14860 Jun 1 07:08 TIA22861-USD.csv\n", "-rw-r--r-- 1 root root 65205 Jun 1 07:08 TON11419-USD.csv\n", "-rw-r--r-- 1 root root 146297 Jun 1 07:08 TRAC-USD.csv\n", "-rw-r--r-- 1 root root 18287 Jun 1 07:08 TRUMP27872-USD.csv\n", "-rw-r--r-- 1 root root 158761 Jun 1 07:08 TRX-USD.csv\n", "-rw-r--r-- 1 root root 25380 Jun 1 07:08 TURBO-USD.csv\n", "-rw-r--r-- 1 root root 54487 Jun 1 07:08 T-USD.csv\n", "-rw-r--r-- 1 root root 149396 Jun 1 07:08 TUSD-USD.csv\n", "-rw-r--r-- 1 root root 90746 Jun 1 07:08 TWT-USD.csv\n", "-rw-r--r-- 1 root root 91375 Jun 1 07:08 UNI7083-USD.csv\n", "-rw-r--r-- 1 root root 6020 Jun 1 07:08 USDB29599-USD.csv\n", "-rw-r--r-- 1 root root 137216 Jun 1 07:08 USDC-USD.csv\n", "-rw-r--r-- 1 root root 49463 Jun 1 07:08 USDD-USD.csv\n", "-rw-r--r-- 1 root root 6708 Jun 1 07:08 USDE29470-USD.csv\n", "-rw-r--r-- 1 root root 162578 Jun 1 07:08 USDT-USD.csv\n", "-rw-r--r-- 1 root root 59751 Jun 1 07:08 VBNB-USD.csv\n", "-rw-r--r-- 1 root root 139387 Jun 1 07:08 VET-USD.csv\n", "-rw-r--r-- 1 root root 31595 Jun 1 07:08 WBETH-USD.csv\n", "-rw-r--r-- 1 root root 100437 Jun 1 07:08 WBNB-USD.csv\n", "-rw-r--r-- 1 root root 162998 Jun 1 07:08 WBTC-USD.csv\n", "-rw-r--r-- 1 root root 13600 Jun 1 07:08 WEETH-USD.csv\n", "-rw-r--r-- 1 root root 84646 Jun 1 07:08 WEMIX-USD.csv\n", "-rw-r--r-- 1 root root 181184 Jun 1 07:08 WETH-USD.csv\n", "-rw-r--r-- 1 root root 24653 Jun 1 07:08 WHBAR-USD.csv\n", "-rw-r--r-- 1 root root 10880 Jun 1 07:08 WIF-USD.csv\n", "-rw-r--r-- 1 root root 51249 Jun 1 07:08 WLD-USD.csv\n", "-rw-r--r-- 1 root root 85033 Jun 1 07:08 WOO-USD.csv\n", "-rw-r--r-- 1 root root 24368 Jun 1 07:08 WPLS-USD.csv\n", "-rw-r--r-- 1 root root 76571 Jun 1 07:08 WSTETH-USD.csv\n", "-rw-r--r-- 1 root root 52133 Jun 1 07:08 WTRX-USD.csv\n", "-rw-r--r-- 1 root root 5916 Jun 1 07:08 W-USD.csv\n", "-rw-r--r-- 1 root root 123501 Jun 1 07:08 XAUT-USD.csv\n", "-rw-r--r-- 1 root root 79365 Jun 1 07:08 XCH-USD.csv\n", "-rw-r--r-- 1 root root 142999 Jun 1 07:08 XDC-USD.csv\n", "-rw-r--r-- 1 root root 68638 Jun 1 07:08 XEC-USD.csv\n", "-rw-r--r-- 1 root root 155416 Jun 1 07:08 XEM-USD.csv\n", "-rw-r--r-- 1 root root 157560 Jun 1 07:08 XLM-USD.csv\n", "-rw-r--r-- 1 root root 177520 Jun 1 07:08 XMR-USD.csv\n", "-rw-r--r-- 1 root root 62836 Jun 1 07:08 XRD-USD.csv\n", "-rw-r--r-- 1 root root 159892 Jun 1 07:08 XRP-USD.csv\n", "-rw-r--r-- 1 root root 155723 Jun 1 07:08 XTZ-USD.csv\n", "-rw-r--r-- 1 root root 67554 Jun 1 07:08 YGG-USD.csv\n", "-rw-r--r-- 1 root root 19073 Jun 1 07:08 ZBU-USD.csv\n", "-rw-r--r-- 1 root root 173523 Jun 1 07:08 ZEC-USD.csv\n", "-rw-r--r-- 1 root root 11762 Jun 1 07:08 ZETA-USD.csv\n", "-rw-r--r-- 1 root root 150908 Jun 1 07:08 ZIL-USD.csv\n", "-rw-r--r-- 1 root root 155786 Jun 1 07:08 ZRX-USD.csv\n" ] }, { "output_type": "execute_result", "data": { "text/plain": [] }, "metadata": {}, "execution_count": 1 } ], "source": [ "%%shell\n", "set -e\n", "\n", "REPO_URL=\"https://github.com/belajarqywok/cryptocurrency_prediction\"\n", "REPO_DIR=\"cryptocurrency_prediction\"\n", "DATASET_DIR=\"datasets\"\n", "\n", "if ! command -v git &> /dev/null\n", "then\n", " apt install -y git\n", "fi\n", "\n", "if [ -d \"$REPO_DIR\" ]; then\n", " rm -rf \"$REPO_DIR\"\n", "fi\n", "\n", "git clone \"$REPO_URL\"\n", "\n", "if [ -d \"$DATASET_DIR\" ]; then\n", " rm -rf \"$DATASET_DIR\"\n", "fi\n", "\n", "if [ -d \"$REPO_DIR/$DATASET_DIR\" ]; then\n", " mv \"$REPO_DIR/$DATASET_DIR\" .\n", "fi\n", "\n", "rm -rf \"$REPO_DIR\"\n", "ls -al \"$DATASET_DIR\"" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "6Waj_50o7A5T", "outputId": "ec62437c-cfd0-4863-933e-13c73885d86e" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Datasets:\n", " - 1000SATS-USD.csv\n", " - 1INCH-USD.csv\n", " - AAVE-USD.csv\n", " - ABT-USD.csv\n", " - ADA-USD.csv\n", " - AERO29270-USD.csv\n", " - AEVO-USD.csv\n", " - AGIX-USD.csv\n", " - AIOZ-USD.csv\n", " - AKT-USD.csv\n", " - and other (... 240)\n" ] } ], "source": [ "import os\n", "from warnings import filterwarnings\n", "\n", "filterwarnings('ignore')\n", "\n", "DATASETS_PATH = './datasets'\n", "DATASETS = sorted(\n", " [\n", " item for item in os.listdir(DATASETS_PATH)\n", " if os.path.isfile(os.path.join(DATASETS_PATH, item)) and item.endswith('.csv')\n", " ]\n", ")\n", "\n", "print('Datasets:')\n", "for i in DATASETS[:10]: print(f' - {i}')\n", "print(f' - and other (... {len(DATASETS) - 10})')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "5FFY-zfREV6N", "outputId": "23f7c0bd-c862-4539-a178-9f9efbd2be38" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Head of 1000SATS-USD.csv:\n", " Date Open High Low Close Adj Close Volume\n", "167 2024-05-27 0.000296 0.000322 0.000289 0.000317 0.000317 50512670\n", "168 2024-05-28 0.000317 0.000332 0.000300 0.000313 0.000313 58345517\n", "169 2024-05-29 0.000313 0.000336 0.000304 0.000306 0.000306 45893011\n", "170 2024-05-30 0.000306 0.000360 0.000302 0.000342 0.000342 105649208\n", "171 2024-05-31 0.000350 0.000360 0.000322 0.000325 0.000325 64675212\n", "\n", "\n", "Head of 1INCH-USD.csv:\n", " Date Open High Low Close Adj Close Volume\n", "1249 2024-05-27 0.417205 0.428995 0.415036 0.425754 0.425754 25438849\n", "1250 2024-05-28 0.425754 0.471344 0.410179 0.459180 0.459180 121329700\n", "1251 2024-05-29 0.459180 0.509221 0.457314 0.492686 0.492686 218430988\n", "1252 2024-05-30 0.492686 0.528235 0.463533 0.506827 0.506827 97779014\n", "1253 2024-05-31 0.506976 0.531380 0.473836 0.477532 0.477532 120853560\n", "\n", "\n", "Head of AAVE-USD.csv:\n", " Date Open High Low Close Adj Close \\\n", "1333 2024-05-27 109.737770 114.262810 107.440498 108.638657 108.638657 \n", "1334 2024-05-28 108.638657 108.787201 103.785156 106.612122 106.612122 \n", "1335 2024-05-29 106.612122 107.396194 102.636078 103.601227 103.601227 \n", "1336 2024-05-30 103.601257 107.090523 102.201813 102.948799 102.948799 \n", "1337 2024-05-31 102.930801 104.463913 100.138252 102.952927 102.952927 \n", "\n", " Volume \n", "1333 139573136 \n", "1334 120893656 \n", "1335 101582510 \n", "1336 98789837 \n", "1337 96990888 \n", "\n", "\n", "Head of ABT-USD.csv:\n", " Date Open High Low Close Adj Close Volume\n", "2282 2024-05-27 4.158429 4.259275 4.089497 4.204973 4.204973 5705498\n", "2283 2024-05-28 4.204995 4.222257 3.972209 3.983082 3.983082 5723700\n", "2284 2024-05-29 3.983082 4.252806 3.975017 4.054780 4.054780 4466002\n", "2285 2024-05-30 4.055531 4.180861 4.016908 4.061492 4.061492 4519097\n", "2286 2024-05-31 4.061519 4.096845 3.938419 3.989476 3.989476 4599103\n", "\n", "\n", "Head of ADA-USD.csv:\n", " Date Open High Low Close Adj Close Volume\n", "2391 2024-05-27 0.458375 0.473999 0.457198 0.467963 0.467963 323304261\n", "2392 2024-05-28 0.467963 0.468437 0.453115 0.456990 0.456990 418594476\n", "2393 2024-05-29 0.456990 0.463107 0.450914 0.450995 0.450995 350482630\n", "2394 2024-05-30 0.450995 0.454546 0.443807 0.446581 0.446581 356151973\n", "2395 2024-05-31 0.446581 0.454929 0.444753 0.447624 0.447624 297679808\n", "\n", "\n", "Head of AERO29270-USD.csv:\n", " Date Open High Low Close Adj Close Volume\n", "115 2024-05-27 1.180737 1.251915 1.180345 1.223966 1.223966 33164568\n", "116 2024-05-28 1.223966 1.230146 1.193577 1.206009 1.206009 22426190\n", "117 2024-05-29 1.206000 1.219929 1.173513 1.182047 1.182047 24998550\n", "118 2024-05-30 1.179020 1.194829 1.169990 1.180606 1.180606 21318593\n", "119 2024-05-31 1.181559 1.192797 1.167693 1.170986 1.170986 17242936\n", "\n", "\n", "Head of AEVO-USD.csv:\n", " Date Open High Low Close Adj Close Volume\n", "75 2024-05-27 0.868152 0.933117 0.864895 0.928258 0.928258 83954913\n", "76 2024-05-28 0.928258 0.960330 0.878598 0.912342 0.912342 97428040\n", "77 2024-05-29 0.912342 0.935289 0.879129 0.892153 0.892153 67430063\n", "78 2024-05-30 0.887652 0.911202 0.855200 0.864568 0.864568 57523981\n", "79 2024-05-31 0.866365 0.903869 0.856600 0.888438 0.888438 54982584\n", "\n", "\n", "Head of AGIX-USD.csv:\n", " Date Open High Low Close Adj Close Volume\n", "2320 2024-05-27 0.935255 0.975797 0.928733 0.958144 0.958144 92105101\n", "2321 2024-05-28 0.958144 0.959997 0.910985 0.935140 0.935140 102221300\n", "2322 2024-05-29 0.935140 0.972330 0.914147 0.915936 0.915936 110466565\n", "2323 2024-05-30 0.915937 0.956007 0.886250 0.913017 0.913017 110977704\n", "2324 2024-05-31 0.912972 0.921924 0.877482 0.897971 0.897971 94826288\n", "\n", "\n", "Head of AIOZ-USD.csv:\n", " Date Open High Low Close Adj Close Volume\n", "1151 2024-05-27 0.796441 0.825174 0.774462 0.802574 0.802574 9483831\n", "1152 2024-05-28 0.802576 0.806413 0.774489 0.774489 0.774489 8967281\n", "1153 2024-05-29 0.774479 0.775057 0.736021 0.744582 0.744582 9334501\n", "1154 2024-05-30 0.744582 0.762691 0.728228 0.738802 0.738802 7308381\n", "1155 2024-05-31 0.738838 0.769013 0.736816 0.737131 0.737131 6045616\n", "\n", "\n", "Head of AKT-USD.csv:\n", " Date Open High Low Close Adj Close Volume\n", "1315 2024-05-27 5.246012 5.545616 5.049523 5.318102 5.318102 26365621\n", "1316 2024-05-28 5.318102 5.446484 5.121305 5.220311 5.220311 18814068\n", "1317 2024-05-29 5.220296 5.910374 5.074440 5.192272 5.192272 64562310\n", "1318 2024-05-30 5.192272 5.383185 4.905253 4.919753 4.919753 34674388\n", "1319 2024-05-31 4.919669 4.999711 4.616309 4.632178 4.632178 21811510\n", "\n", "\n" ] } ], "source": [ "import pandas as pd\n", "\n", "for i in DATASETS[:10]:\n", " df = pd.read_csv(f'{DATASETS_PATH}/{i}')\n", " print(f'Head of {i}:')\n", " print(df.tail())\n", " print('\\n')" ] }, { "cell_type": "markdown", "metadata": { "id": "0ScPGk5EGxwg" }, "source": [ "
\n", "

sampling (Ethereum)

" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 394 }, "id": "yqS2EZx6G4ha", "outputId": "22313972-2832-4eb3-d640-0b3f59249df4" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " Open High Low Close Adj Close \\\n", "Date \n", "2024-05-22 3789.372803 3810.948486 3655.075195 3737.217773 3737.217773 \n", "2024-05-23 3737.178467 3943.553955 3552.642578 3776.927246 3776.927246 \n", "2024-05-24 3776.992432 3825.122559 3631.990234 3726.934570 3726.934570 \n", "2024-05-25 3726.975586 3776.006592 3710.528320 3749.236572 3749.236572 \n", "2024-05-26 3749.179932 3879.470703 3732.022949 3825.897461 3825.897461 \n", "2024-05-27 3826.127197 3973.556396 3821.930420 3892.006836 3892.006836 \n", "2024-05-28 3892.096924 3924.895752 3771.213867 3840.256348 3840.256348 \n", "2024-05-29 3840.235107 3880.648438 3742.041260 3763.196533 3763.196533 \n", "2024-05-30 3763.357666 3823.643311 3702.263672 3746.849609 3746.849609 \n", "2024-05-31 3746.764893 3841.127441 3724.708252 3778.403320 3778.403320 \n", "\n", " Volume \n", "Date \n", "2024-05-22 25155809461 \n", "2024-05-23 45623656317 \n", "2024-05-24 22257061429 \n", "2024-05-25 10000027764 \n", "2024-05-26 14650794791 \n", "2024-05-27 18949181813 \n", "2024-05-28 19846044324 \n", "2024-05-29 17411416736 \n", "2024-05-30 15065849797 \n", "2024-05-31 15432449024 " ], "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", "
OpenHighLowCloseAdj CloseVolume
Date
2024-05-223789.3728033810.9484863655.0751953737.2177733737.21777325155809461
2024-05-233737.1784673943.5539553552.6425783776.9272463776.92724645623656317
2024-05-243776.9924323825.1225593631.9902343726.9345703726.93457022257061429
2024-05-253726.9755863776.0065923710.5283203749.2365723749.23657210000027764
2024-05-263749.1799323879.4707033732.0229493825.8974613825.89746114650794791
2024-05-273826.1271973973.5563963821.9304203892.0068363892.00683618949181813
2024-05-283892.0969243924.8957523771.2138673840.2563483840.25634819846044324
2024-05-293840.2351073880.6484383742.0412603763.1965333763.19653317411416736
2024-05-303763.3576663823.6433113702.2636723746.8496093746.84960915065849797
2024-05-313746.7648933841.1274413724.7082523778.4033203778.40332015432449024
\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", " \n", "\n", "\n", "\n", " \n", "
\n", "
\n", "
\n" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "dataframe", "summary": "{\n \"name\": \"dataframe\",\n \"rows\": 10,\n \"fields\": [\n {\n \"column\": \"Date\",\n \"properties\": {\n \"dtype\": \"object\",\n \"num_unique_values\": 10,\n \"samples\": [\n \"2024-05-30\",\n \"2024-05-23\",\n \"2024-05-27\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Open\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 52.87530877724932,\n \"min\": 3726.975586,\n \"max\": 3892.096924,\n \"num_unique_values\": 10,\n \"samples\": [\n 3763.357666,\n 3737.178467,\n 3826.127197\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"High\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 63.792129185899874,\n \"min\": 3776.006592,\n \"max\": 3973.556396,\n \"num_unique_values\": 10,\n \"samples\": [\n 3823.643311,\n 3943.553955,\n 3973.556396\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Low\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 75.73223141957936,\n \"min\": 3552.642578,\n \"max\": 3821.93042,\n \"num_unique_values\": 10,\n \"samples\": [\n 3702.263672,\n 3552.642578,\n 3821.93042\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Close\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 52.84413583123411,\n \"min\": 3726.93457,\n \"max\": 3892.006836,\n \"num_unique_values\": 10,\n \"samples\": [\n 3746.849609,\n 3776.927246,\n 3892.006836\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Adj Close\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 52.84413583123411,\n \"min\": 3726.93457,\n \"max\": 3892.006836,\n \"num_unique_values\": 10,\n \"samples\": [\n 3746.849609,\n 3776.927246,\n 3892.006836\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Volume\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 9820441967,\n \"min\": 10000027764,\n \"max\": 45623656317,\n \"num_unique_values\": 10,\n \"samples\": [\n 15065849797,\n 45623656317,\n 18949181813\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" } }, "metadata": {}, "execution_count": 4 } ], "source": [ "#sample\n", "dataframe = pd.read_csv(f'{DATASETS_PATH}/ETH-USD.csv', index_col='Date')\n", "dataframe.tail(10)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 526 }, "id": "KjBBUiY4JP1W", "outputId": "538f292f-4102-45a4-9e09-c8fcbe6ab409" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "\n", "Index: 2396 entries, 2017-11-09 to 2024-05-31\n", "Data columns (total 6 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 Open 2396 non-null float64\n", " 1 High 2396 non-null float64\n", " 2 Low 2396 non-null float64\n", " 3 Close 2396 non-null float64\n", " 4 Adj Close 2396 non-null float64\n", " 5 Volume 2396 non-null int64 \n", "dtypes: float64(5), int64(1)\n", "memory usage: 131.0+ KB\n" ] }, { "output_type": "execute_result", "data": { "text/plain": [ " Open High Low Close Adj Close \\\n", "count 2396.000000 2396.000000 2396.000000 2396.000000 2396.000000 \n", "mean 1352.665262 1390.927683 1310.927133 1353.921352 1353.921352 \n", "std 1176.574368 1209.698191 1139.730911 1177.074974 1177.074974 \n", "min 84.279694 85.342743 82.829887 84.308296 84.308296 \n", "25% 242.309002 247.320042 235.626839 242.292122 242.292122 \n", "50% 1206.991821 1230.078553 1168.261536 1209.387512 1209.387512 \n", "75% 2012.372711 2066.105041 1944.020234 2013.507904 2013.507904 \n", "max 4810.071289 4891.704590 4718.039063 4812.087402 4812.087402 \n", "\n", " Volume \n", "count 2.396000e+03 \n", "mean 1.229681e+10 \n", "std 1.007116e+10 \n", "min 6.217330e+08 \n", "25% 5.084750e+09 \n", "50% 9.831786e+09 \n", "75% 1.681544e+10 \n", "max 8.448291e+10 " ], "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", "
OpenHighLowCloseAdj CloseVolume
count2396.0000002396.0000002396.0000002396.0000002396.0000002.396000e+03
mean1352.6652621390.9276831310.9271331353.9213521353.9213521.229681e+10
std1176.5743681209.6981911139.7309111177.0749741177.0749741.007116e+10
min84.27969485.34274382.82988784.30829684.3082966.217330e+08
25%242.309002247.320042235.626839242.292122242.2921225.084750e+09
50%1206.9918211230.0785531168.2615361209.3875121209.3875129.831786e+09
75%2012.3727112066.1050411944.0202342013.5079042013.5079041.681544e+10
max4810.0712894891.7045904718.0390634812.0874024812.0874028.448291e+10
\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", " \n", "\n", "\n", "\n", " \n", "
\n", "
\n", "
\n" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "dataframe", "summary": "{\n \"name\": \"dataframe\",\n \"rows\": 8,\n \"fields\": [\n {\n \"column\": \"Open\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1493.554011477898,\n \"min\": 84.279694,\n \"max\": 4810.071289,\n \"num_unique_values\": 8,\n \"samples\": [\n 1352.6652621352255,\n 1206.991821,\n 2396.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"High\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1515.5722389152984,\n \"min\": 85.342743,\n \"max\": 4891.70459,\n \"num_unique_values\": 8,\n \"samples\": [\n 1390.927682657763,\n 1230.0785525000001,\n 2396.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Low\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1469.4258971151999,\n \"min\": 82.829887,\n \"max\": 4718.039063,\n \"num_unique_values\": 8,\n \"samples\": [\n 1310.9271326736225,\n 1168.2615355,\n 2396.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Close\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1494.0339417872121,\n \"min\": 84.308296,\n \"max\": 4812.087402,\n \"num_unique_values\": 8,\n \"samples\": [\n 1353.921351550501,\n 1209.3875125,\n 2396.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Adj Close\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 1494.0339417872121,\n \"min\": 84.308296,\n \"max\": 4812.087402,\n \"num_unique_values\": 8,\n \"samples\": [\n 1353.921351550501,\n 1209.3875125,\n 2396.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Volume\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 27706179749.599216,\n \"min\": 2396.0,\n \"max\": 84482912776.0,\n \"num_unique_values\": 8,\n \"samples\": [\n 12296811588.455341,\n 9831785501.0,\n 2396.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" } }, "metadata": {}, "execution_count": 5 } ], "source": [ "dataframe.info()\n", "dataframe.describe(include = 'all')" ] }, { "cell_type": "markdown", "metadata": { "id": "ABmHM_2iIbiD" }, "source": [ "
\n", "

Data Cleaning

" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 507 }, "id": "ZyQukOjYJ4w9", "outputId": "c5cde4f9-7016-4b49-96b2-2d44a46bfb02" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "" ] }, "metadata": {}, "execution_count": 6 }, { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAAAc4AAAHZCAYAAAAPNduTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAq+ElEQVR4nO3deZzNdf//8ecxI1osEyXCRcIIZZlmlJkwMkzJEuVSGEupUKR9u75dxShblq6rutpEStLNJVslobL0tWeMqCjhMmKGMWOZmXNevz98z+c3o67qTZw5PO5/OZvz/tzOnPP4fD7n/fkcn5mZAADAH1Ii1AMAACCcEE4AABwQTgAAHBBOAAAcEE4AABwQTgAAHBBOAAAcEE4AABwQTgAAHBBOAAAcEE4AABwQTgAopo4/lTinFi8eCCcAFEN+v18+n0/Z2dk6cuSIsrKy5PP5Qj0siHACQLETCAQUERGhDRs2KCkpSZ07d1azZs00Y8YM5efnh3p4Zz3CCQDFTIkSJbR9+3a1b99et956q6ZOnapBgwbp1ltv1Zo1a0I9vLOej9/jBIDiZ+rUqZo9e7amTZumgoICJSUlqWrVqpo8ebJyc3N1/vnny8zYfRsCbHECQDFw/DaM3+9X6dKlJUkxMTGqVKmSJk+erJ9//lmPPfaY9u3bRzRDhHACQIgFJwLt3LlTO3bskCRVrlxZM2fOVK1atXTNNdfo3XfflSQ9+OCD2r59u6KiokI55LMa4QSAEApOBPr666/VrFkzzZo1S4cOHVKbNm302GOPadu2bWrbtq0++ugjpaSkaO3atXr//fdVokQJBQKBUA//rBQZ6gEAwNmsRIkS2rJli1q3bq0nn3xSAwcOlN/vlyQ9+uijuvjiizVp0iSVKVNGUVFRWr16tUqWLCm/36+IiIgQj/7sxOQgAAix4cOHa/PmzZo8ebL8fr/uvfdeHTlyRLVq1dLDDz9c5PtOSWEVzUAgoBIlzqydm2fW0gBAGLr00kuVnp6uhx9+WHFxcdqzZ4+ioqI0efJkpaWlFYmmmYVNNAsKCrxo7ty5U9nZ2crLy5OksN7NzK5aADiNgluLhw8fVqlSpWRmatu2rbZs2aKjR4+qZ8+eGjx4sCRp9erV2rt3b5HHh8tM2kAgoMjISAUCASUlJamgoECHDh1Sq1at1LdvX9WtWzfUQzxhhBMATpPgRKC0tDT97W9/0/79+3XRRRepX79+Sk1NLXLfHj166ODBg0pMTAzRaE9OiRIlZGZq3bq1qlSposmTJ2vu3Lm69957VapUKT3zzDOhHuIJY1ctAJxiwck+JUqU0NatW9WmTRu1aNFCPXr0UN26dXXzzTfrzTfflCQtWbJEPXr0UHp6ulasWKGIiAjv8eFm165dKlOmjKZOnaqIiAjNmjVLFStW1P/8z/9o7969ys3NDfUQTwhbnABwiixZskR16tRR5cqVVVBQoMjISM2fP18JCQne7tiCggJdcsklGjNmjBITE3XZZZepbdu2euuttxQREeE9LtyYmXbv3q2lS5cqMzNTjz32mFauXKlVq1YpIiJCkyZNUnx8vJo1axbqoTpjixMAToF9+/Zp9OjR6tq1qzIyMrz4HTp0SIcOHZL0/7/vvP766yUdm0BTrVo19ezZ09vSDJdoHr9V7PP51LRpU7Vv317x8fFatmyZvv76a51zzjkaP368Xn/9dVWtWjVEoz05hBMA/kTBI/wqVKigxx57TJUrV9btt9+u3bt3S5KaNm2qefPmadasWYqIiJDP51OdOnV04YUX6vDhw0X+r3CZPRv87jYQCOjvf/+7xo0bp9WrV0uSbrrpJpUtW1ZxcXH67LPPNHz4cKWmpuqdd94J23ByHCcA/EmCxyzm5eUpMzNTl1xyidatW6dnn31W+/fv15QpU1SlShWlpqbq6aef1rBhw1S/fn198MEHSktL0/Lly8MmlsczM1155ZW65JJLtGvXLtWsWVO33nqrevXqpQULFmj+/PnauHGjLrvsMg0cOFANGjQI9ZBPGOEMU/wqAsJROB247yq4bAcPHlTv3r1VsmRJtWjRQvfcc4+WLl2qF154QVlZWXrnnXe8E7aPGzdO1apVU+nSpfX222+H3RmBCn//um3bNk2cOFFjx45VZmamnnvuOaWlpemWW25Rnz59vPsHt7LDGeEMQ4XfoIcPH9bFF18c6iEBvyv4dxsIBPTxxx8rIyND7du31wUXXFDkAP9wFFyRPXjwoGJiYpScnKyHHnpI5cqV0wUXXCBJWrZsmcaMGaMDBw5oypQpqly5srKyslS+fHlJx74TDKeJQMGt60AgoNdff11btmzRzz//rH/9618655xzlJmZqdTUVH333Xdq0aKF7r///lAP+U9DOMNM8A26bt069e/fX9nZ2WrTpo0GDRoU1gcU48wW/LsNBAKKjY3VRRddpMzMTJ133nlKSkrSwIEDVbZs2VAP86Tk5+erU6dOqlSpkt544w3v+sIxDG55HjhwQG+++WaR7/jCaS9ScCXIzFS/fn2VLl1akZGR+v7777V06VJFR0dLkjIzM/X444/rwIEDeumll7yVhHBHOMNIcA0vMzNTycnJ6ty5sxo2bKgnnnhCV111lQYPHqwmTZqEepjAfzVgwAAdOHBAU6dOlSTVrl1bsbGx3uVwtmPHDvXs2VOvvPKK6tSpU2SXa+F/r1+/Xvfdd58aNWqk8ePHh3LIJ8XM9Prrr2vr1q3eyRvat2+v9PR0zZ07V/Xq1ZMkZWVlKT8//4zaM8as2jBSokQJ7dy5U0OGDFFSUpIeffRR3Xjjjfrggw/03Xffafz48Vq7dm2oh3lSCq/HsU53ZsnPz9fu3bvVr18/SVLfvn1VunRpvfXWW8rMzNS2bdtCPMKTs3fvXm3btk3nnXeeJBU5sXlERISysrL04osv6qqrrtJLL72kF154IVRD/VOMHTtW9957rwoKCrzr5syZo+joaHXq1ElpaWmSpKioqDMqmhLhDBtmJjPTV199pcWLF+vDDz/0bqtVq5YmTZqkrVu36m9/+5u2bNkSwpGeuOCP+e7fv1+5ublhe1YRHHP8cX0lS5ZUuXLltGXLFvXu3Vvr1q3TypUrFRkZqeeff15Tp04N2zPkSFK5cuW0b98+LVmyRNKx7yzNzFumnJwcLV++XHv27NEVV1wRdr+nefxYExMT1b59e02bNk0//PCDd/28efNUsWJF9ezZ0zuh+xnHUKz5/f4il3Nzc2369OlWs2ZNGzJkSJHb0tPT7a677vrFY4qz6dOn27Bhw7wxr1+/3ho2bGixsbHWt29fW758eYhH+Ocq/NoEAoEQjuTUys/PN7Njy/v888/b+vXrzcxs5MiRVr16datbt65lZmaamdmECROsSpUqlp6eHrLxnqzga/n4449bdHS0LV68+Bf36devn3Xv3j2sX/dAIGCPP/64ff7552ZmtmnTJvvrX/9q1157rX3zzTdF7rt9+/ZQDPG0IJzFWEFBgZmZ/fDDDzZ16lT797//bRs3bjQzs2nTpllsbKzdf//9v/rYcInn9OnTzefz2ejRo23v3r1Wu3ZtGz9+vE2aNMnuvPNOa9GihfcmPVMU/uAM5w/R/ya4TAUFBda4cWPr0qWL7dixw7v9/vvvt+uvv946dOhgd911l1WtWtXWrFkTquE627t373+9be3atdarVy+rW7euTZkyxbZu3Wrp6enWrVs3a9iwobdCEa6ve1ZWljVq1MhuvvlmW7FihZmZbdiwwXr06GEJCQne59OZjslBxZT93wy7tLQ0JSUlqVmzZsrNzVVOTo769++vXr166b333tP48eNVr169IrP4wkVwstOHH36oTp066cEHH1RERIRGjBghSVq3bp1effVVpaWladiwYUpISAjxiP8c3bt3V+nSpb2Tep+pOnfurHLlymnSpEmSpE2bNun8889X9erVtXr1aq1atUoXX3yxGjVqpJo1a4Z2sH/Qp59+qlmzZum5557Tueee+6s/0Lx+/XrNmDFDEyZM0IUXXqhatWqpXLlymjZtWtgdp5mfn6+SJUsWuW7Pnj3q0aOHLrjgAj366KOKjY1VWlqannzySR0+fFhz5sz5xWPOOCEON37DgQMH7Nprr7XRo0eb2bEtz0qVKtkTTzxhZmZHjx61N9980+64446w2cIsLLj2bWY2Y8YM8/l8VqtWLW8XnpnZmjVr7N5777V69erZ2rVrQzDKk1d4Oc3M5s2bZx06dDjjtqQLy87OtqSkJJs1a5aZmaWkpFhcXJw1btzY7rrrrrDd4vrkk0+8XcpHjhwpctvxy/TDDz/Yxo0bbdeuXd5tx/8tFEcZGRmWlpbmXS4oKLDU1NQi99m9e7clJiZaYmKirVq1ysyO7bbduXPnaR1rqBDOYiwnJ8fatWtnfr/fCgoKrEmTJtajRw8zM1u3bp3t2LGjyBsxnOIZ/CDZsWOH7du3z8zM5syZYz6fz0aOHFlkWb766isbM2aMt+s6HPn9flu4cKFlZmbawYMHrXv37vbkk0+aWfjutivs116bIUOGWJkyZax9+/YWHx9v3333nY0aNcpuu+22sHstP/rooyK7aLdv32733Xeft7vyeL/2mobD63zo0CG78cYbrXfv3t730suXL7fo6Gjr06dPkftmZGRYVFSUtWjRwr766qtQDDdkCGcxUviN5ff7bc+ePVatWjWbOnWqNW/e3Lp37+7d3rdvX3vvvfdCMcyTFvzQzMzMtD59+ljHjh0tKyvLzMzef/998/l89txzz/3qikC4feAGPfzww+bz+SwlJcUWLVpkmzdvtvPPP98+/fTTUA/tpBX+3m7p0qW2ePFiy8rKsry8PFuwYIF9+umnlpeXZ2Zmzz33nLVu3dpyc3NDOWRnjRs3ttq1a9vPP/9sZmYLFiywxMRE69+/v7fFdab46KOPrGXLlnbvvfd6W9dz5861hIQES0lJKXLf3r17W7t27c6aLc0gwllMBINw8OBBCwQCtn//fjMzS01NtQoVKljLli29+/bs2dPi4uLCMiLBGG7YsME6duxo11xzjZUtW9a6d+/urdHPmDHDSpYsaU888URYrKX/muN3yS1atMji4+NtxIgRVrNmTfvHP/5hvXv3tlatWoX1h07w9fH7/Xbttddas2bNrH79+lapUiX76KOPvPtlZ2fbM888Y+XLl7d169aFargn7OjRo5aQkGBXXXWV93c6f/5869Spk/Xr1++Mi+fChQstPj7eBg4c6M2WnT17tiUkJFi3bt0sMzPTJk6caF26dPnNyVJnKsJZDAQ/fNavX28JCQmWlJRkrVq1sq+++sr27NljQ4YMscaNG9vtt99unTt3tmbNmnlr8OEYzx9//NEqVqxoL730kv344482YcIES05Otm7dunm7badMmWLx8fFhG06zYzF588037cCBAxYIBCwlJcUeeOABy8rKspSUFLv++uvN5/PZlClTQj3UE1J4j0CvXr28XXm5ubn26KOPWpkyZWzlypVWUFBgb7zxhsXFxYXl99RHjx41M7P9+/db/fr17brrrvO2POfNm3fGxDMQCBR5vy1YsMDi4+NtwIABXjwXLVpkTZo0sdq1a1v16tVt5cqVoRpuSBHOEAuGLyMjw6pUqWKjRo2y9957z4YOHWoRERHerrwvv/zSJkyYYDNnzvQeEw4TDebNm2evvPJKkeu++OILS0pK8i4HAgGbPn26NWzY0Pr06ePFM7ic4RrPtWvXWtmyZS0lJcXefvttO3r0qMXHx9usWbPsyJEj9uWXX1rnzp1t8+bNoR7qH7Z161br2rWrdzkQCNiRI0csKSnJZs6cWeS+d911lzVv3tz8fr/95z//8V7XcBJcOVi1apV16NDBevbsaT6fzxo3buxtaZ0J8Sz8WZKfn++tmH/xxRfWvHlzGzBggG3atMnMjr3m69atsz179oRkrMUB4SwGvvnmGxs5cqQ9+OCDRa4fMWKEVahQwb777rtfPKa4b2n6/X47fPiwPf/887Zhw4Yit82aNcuioqLswIED3nXBqDRo0MBSUlIsJyfHzMIrmoVfk+C4t2/fbqNHj7a4uDi78cYbbfjw4XbPPffYwYMHQzXMExJcnp07d9pFF11k7dq18247ePCgdezY0Zv9HYzNzJkzLTk5+fQP9k+WkZFhl19+uf3zn/+07OxsS09Pt9jYWLvyyiu9eM6dO9duvvlmu+eee2zLli0hHvHvK/y+Cs4O9vv91qVLF+vUqZNFR0fb22+/bXl5ebZixQpr3ry53XfffWftFubxCGcI+P1+8/v93veZwQkx0dHR3hsxODkoJibGFi1aFNoBn4Ts7GwzOzY1/+WXX/auv/76661du3ZF1nT79etnqamplpycbB9//PFpH+vJCEbT7/fb008/bX369LEXXnjB+z4vIyPDOnToYFWrVjWfz/eLrbPirPCH7LZt2+zrr7+2OnXqFNlrMGLECKtSpYotXLjQe81HjRplbdu2tdzc3LBaATpeWlqaNWzYsMgWVk5OjtWqVctat25tGRkZZnYsnldffbVNnz49VEN1dt9993lbyU2bNrW//vWvtnTpUnvooYcsLi7O/v73v5uZ2WeffWYNGjSwhx9++BeH4ZyNCOdplp2dbbfddpslJydbjRo17MYbb7Svv/7aZs2aZT6fz954440i3x01btzYZs+eHcIRuwt+VxIfH2833XSTZWdn26hRoywmJsbGjx9vZmarV6+21q1bW3R0tI0ZM8ZuuOEGi4uLs8OHD1uzZs3soYceCvFSuPP7/da0aVO79dZbbejQoXbDDTdYYmKivfvuu959pk2bZl26dPF2exV3hYPXv39/a9++vT311FO2efNmu/zyy61169be7QMGDLA6depYmzZtrFevXlaxYsWwmQj0a3twgu/DzZs3W0xMjC1cuLDI9X379jWfz2e9e/f2HtOuXbuw+ttt3ry5denSxdatW2dt2rQpcttrr71m0dHRtnr1ajMzW7Jkif3www+hGGaxQzhPo+zsbKtZs6b16tXLPv74Y3vttdesX79+5vP5bM6cOTZlyhTz+Xw2ePBge/fdd61v37525ZVXhsV3mb8mPT3dLrzwQhs0aJBt2bLFhg8fbq1bt7Z//vOfZnbscJT77rvP7rzzTrv77rvt0KFDZmZ2xx132LBhw8JuK2XSpElFtsK+/fZbe/zx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AIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJAIADwgkAgAPCCQCAA8IJ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\n" }, "metadata": {} } ], "source": [ "import missingno as msno\n", "\n", "msno.matrix(\n", " dataframe,\n", " figsize = (5, 5),\n", " fontsize = 9,\n", " color = (0.2, 0.4, 0.6)\n", ")" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "58wCGTtJKWSA", "outputId": "12edff88-1a1e-453c-bb8a-fd182869c8d7" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "Open 0\n", "High 0\n", "Low 0\n", "Close 0\n", "Adj Close 0\n", "Volume 0\n", "dtype: int64" ] }, "metadata": {}, "execution_count": 7 } ], "source": [ "dataframe.isna().sum()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "-qTBTOEaKyJt", "outputId": "abe975c5-3f78-4567-cae1-c90787303afd" }, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Result: There are no missing values\n" ] } ], "source": [ "missing_col_names = [\n", " col for col, _ in dataframe.to_dict().items() \\\n", " if dataframe[col].isnull().sum() > 0\n", "]\n", "\n", "print(f\"Result: {'There are missing values' if len(missing_col_names) > 0 else 'There are no missing values'}\")" ] }, { "cell_type": "markdown", "metadata": { "id": "8tX6L-gHQkOz" }, "source": [ "
\n", "

Data Standarization and Normalization

" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 394 }, "id": "TI_rGlzqQjnf", "outputId": "2edcf649-14f6-417d-b9c8-3cbb48d132ef" }, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " Close\n", "Date \n", "2024-05-22 0.772648\n", "2024-05-23 0.781047\n", "2024-05-24 0.770473\n", "2024-05-25 0.775190\n", "2024-05-26 0.791405\n", "2024-05-27 0.805388\n", "2024-05-28 0.794442\n", "2024-05-29 0.778143\n", "2024-05-30 0.774685\n", "2024-05-31 0.781359" ], "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", "
Close
Date
2024-05-220.772648
2024-05-230.781047
2024-05-240.770473
2024-05-250.775190
2024-05-260.791405
2024-05-270.805388
2024-05-280.794442
2024-05-290.778143
2024-05-300.774685
2024-05-310.781359
\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", " \n", "\n", "\n", "\n", " \n", "
\n", "
\n", "
\n" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "dataframe", "summary": "{\n \"name\": \"dataframe\",\n \"rows\": 10,\n \"fields\": [\n {\n \"column\": \"Date\",\n \"properties\": {\n \"dtype\": \"object\",\n \"num_unique_values\": 10,\n \"samples\": [\n \"2024-05-30\",\n \"2024-05-23\",\n \"2024-05-27\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Close\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 0.011177369891112288,\n \"min\": 0.770473025987437,\n \"max\": 0.8053884190925227,\n \"num_unique_values\": 10,\n \"samples\": [\n 0.7746853714785209,\n 0.7810472670590123,\n 0.8053884190925227\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" } }, "metadata": {}, "execution_count": 9 } ], "source": [ "from sklearn.preprocessing import StandardScaler, MinMaxScaler\n", "\n", "dataframe = dataframe[['Close']]\n", "\n", "# Standarization\n", "standard_scaler = StandardScaler()\n", "dataframe['Close'] = standard_scaler.fit_transform(dataframe[['Close']])\n", "\n", "# Normalization\n", "minmax_scaler = MinMaxScaler(feature_range=(0, 1))\n", "dataframe['Close'] = minmax_scaler.fit_transform(dataframe[['Close']])\n", "\n", "dataframe.tail(10)" ] }, { "cell_type": "markdown", "source": [ "
\n", "

Feature Engineering

" ], "metadata": { "id": "PAyJUmwUaqBF" } }, { "cell_type": "code", "source": [ "import numpy as np\n", "\n", "def create_sequences(df, sequence_length):\n", " labels = []\n", " sequences = []\n", "\n", " for i in range(len(df) - sequence_length):\n", " seq = df.iloc[i:i+sequence_length].values\n", " label = df.iloc[i+sequence_length].values[0]\n", "\n", " sequences.append(seq)\n", " labels.append(label)\n", "\n", " return np.array(sequences), np.array(labels)\n", "\n", "\n", "sequence_length = 60\n", "sequences, labels = create_sequences(dataframe, sequence_length)\n", "sequences.shape, labels.shape" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "3rcbbn5WavFz", "outputId": "64479bb4-b0c3-4a24-9f42-e886577aac23" }, "execution_count": 10, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ "((2336, 60, 1), (2336,))" ] }, "metadata": {}, "execution_count": 10 } ] }, { "cell_type": "markdown", "source": [ "
\n", "

Modeling and Training

" ], "metadata": { "id": "8zL70c-6bWPU" } }, { "cell_type": "code", "source": [ "from tensorflow.keras.models import Sequential\n", "from tensorflow.keras.layers import LSTM, Dense, Dropout\n", "from tensorflow.keras.callbacks import EarlyStopping, ModelCheckpoint\n", "\n", "\n", "def build_model(input_shape):\n", " model = Sequential([\n", " LSTM(units = 50, return_sequences = True, input_shape = input_shape),\n", " Dropout(0.2),\n", "\n", " LSTM(units = 50, return_sequences = False),\n", " Dropout(0.2),\n", "\n", " Dense(units=1)\n", " ])\n", "\n", " model.compile(\n", " optimizer = 'adam',\n", " loss = 'mean_squared_error'\n", " )\n", "\n", " return model\n", "\n", "\n", "input_shape = (sequences.shape[1], sequences.shape[2])\n", "model = build_model(input_shape)\n", "model.summary()\n", "\n", "\n", "train_size = int(len(sequences) * 0.8)\n", "X_train, X_test = sequences[:train_size], sequences[train_size:]\n", "y_train, y_test = labels[:train_size], labels[train_size:]" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "olldmw1pbPYE", "outputId": "4d0335e8-4893-4c70-efe1-4d10ae718671" }, "execution_count": 11, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Model: \"sequential\"\n", "_________________________________________________________________\n", " Layer (type) Output Shape Param # \n", "=================================================================\n", " lstm (LSTM) (None, 60, 50) 10400 \n", " \n", " dropout (Dropout) (None, 60, 50) 0 \n", " \n", " lstm_1 (LSTM) (None, 50) 20200 \n", " \n", " dropout_1 (Dropout) (None, 50) 0 \n", " \n", " dense (Dense) (None, 1) 51 \n", " \n", "=================================================================\n", "Total params: 30651 (119.73 KB)\n", "Trainable params: 30651 (119.73 KB)\n", "Non-trainable params: 0 (0.00 Byte)\n", "_________________________________________________________________\n" ] } ] }, { "cell_type": "code", "source": [ "early_stopping = EarlyStopping(\n", " monitor = 'val_loss',\n", " patience = 5,\n", " mode = 'min'\n", ")\n", "\n", "model_checkpoint = ModelCheckpoint(\n", " filepath = 'eth.keras',\n", " save_best_only = True,\n", " monitor = 'val_loss',\n", " mode = 'min'\n", ")\n", "\n", "history = model.fit(\n", " X_train, y_train,\n", " epochs = 200,\n", " batch_size = 32,\n", " validation_data = (X_test, y_test),\n", " callbacks = [early_stopping, model_checkpoint]\n", ")" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "kjkalCASbm5H", "outputId": "68b707b6-2667-4a76-aa40-27f11e1c1cfc" }, "execution_count": 12, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Epoch 1/200\n", "59/59 [==============================] - 21s 130ms/step - loss: 0.0175 - val_loss: 0.0014\n", "Epoch 2/200\n", "59/59 [==============================] - 5s 81ms/step - loss: 0.0029 - val_loss: 0.0036\n", "Epoch 3/200\n", "59/59 [==============================] - 4s 76ms/step - loss: 0.0027 - val_loss: 0.0011\n", "Epoch 4/200\n", "59/59 [==============================] - 4s 61ms/step - loss: 0.0026 - val_loss: 0.0012\n", "Epoch 5/200\n", "59/59 [==============================] - 4s 71ms/step - loss: 0.0021 - val_loss: 0.0010\n", "Epoch 6/200\n", "59/59 [==============================] - 5s 82ms/step - loss: 0.0022 - val_loss: 9.1701e-04\n", "Epoch 7/200\n", "59/59 [==============================] - 4s 60ms/step - loss: 0.0020 - val_loss: 0.0011\n", "Epoch 8/200\n", "59/59 [==============================] - 3s 58ms/step - loss: 0.0019 - val_loss: 9.5400e-04\n", "Epoch 9/200\n", "59/59 [==============================] - 5s 91ms/step - loss: 0.0019 - val_loss: 8.8370e-04\n", "Epoch 10/200\n", "59/59 [==============================] - 4s 61ms/step - loss: 0.0020 - val_loss: 7.8336e-04\n", "Epoch 11/200\n", "59/59 [==============================] - 4s 60ms/step - loss: 0.0019 - val_loss: 0.0012\n", "Epoch 12/200\n", "59/59 [==============================] - 4s 67ms/step - loss: 0.0017 - val_loss: 8.1429e-04\n", "Epoch 13/200\n", "59/59 [==============================] - 5s 82ms/step - loss: 0.0016 - val_loss: 0.0013\n", "Epoch 14/200\n", "59/59 [==============================] - 4s 61ms/step - loss: 0.0017 - val_loss: 7.2635e-04\n", "Epoch 15/200\n", "59/59 [==============================] - 5s 93ms/step - loss: 0.0018 - val_loss: 8.0339e-04\n", "Epoch 16/200\n", "59/59 [==============================] - 5s 85ms/step - loss: 0.0015 - val_loss: 8.5450e-04\n", "Epoch 17/200\n", "59/59 [==============================] - 4s 60ms/step - loss: 0.0016 - val_loss: 7.7747e-04\n", "Epoch 18/200\n", "59/59 [==============================] - 4s 62ms/step - loss: 0.0015 - val_loss: 5.7924e-04\n", "Epoch 19/200\n", "59/59 [==============================] - 5s 81ms/step - loss: 0.0014 - val_loss: 5.4883e-04\n", "Epoch 20/200\n", "59/59 [==============================] - 4s 73ms/step - loss: 0.0015 - val_loss: 0.0010\n", "Epoch 21/200\n", "59/59 [==============================] - 4s 60ms/step - loss: 0.0013 - val_loss: 5.3849e-04\n", "Epoch 22/200\n", "59/59 [==============================] - 4s 72ms/step - loss: 0.0013 - val_loss: 5.0904e-04\n", "Epoch 23/200\n", "59/59 [==============================] - 4s 76ms/step - loss: 0.0013 - val_loss: 6.6130e-04\n", "Epoch 24/200\n", "59/59 [==============================] - 4s 61ms/step - loss: 0.0012 - val_loss: 5.0616e-04\n", "Epoch 25/200\n", "59/59 [==============================] - 3s 58ms/step - loss: 0.0013 - val_loss: 5.2636e-04\n", "Epoch 26/200\n", "59/59 [==============================] - 5s 93ms/step - loss: 0.0012 - val_loss: 8.5814e-04\n", "Epoch 27/200\n", "59/59 [==============================] - 4s 61ms/step - loss: 0.0014 - val_loss: 9.5452e-04\n", "Epoch 28/200\n", "59/59 [==============================] - 4s 62ms/step - loss: 0.0012 - val_loss: 4.3667e-04\n", "Epoch 29/200\n", "59/59 [==============================] - 4s 73ms/step - loss: 0.0013 - val_loss: 8.5634e-04\n", "Epoch 30/200\n", "59/59 [==============================] - 5s 77ms/step - loss: 0.0011 - val_loss: 4.2766e-04\n", "Epoch 31/200\n", "59/59 [==============================] - 4s 63ms/step - loss: 0.0012 - val_loss: 4.2406e-04\n", "Epoch 32/200\n", "59/59 [==============================] - 4s 60ms/step - loss: 0.0011 - val_loss: 5.3112e-04\n", "Epoch 33/200\n", "59/59 [==============================] - 5s 90ms/step - loss: 0.0012 - val_loss: 4.0849e-04\n", "Epoch 34/200\n", "59/59 [==============================] - 4s 60ms/step - loss: 0.0011 - val_loss: 7.4729e-04\n", "Epoch 35/200\n", "59/59 [==============================] - 4s 60ms/step - loss: 0.0011 - val_loss: 3.8810e-04\n", "Epoch 36/200\n", "59/59 [==============================] - 4s 75ms/step - loss: 0.0012 - val_loss: 7.5411e-04\n", "Epoch 37/200\n", "59/59 [==============================] - 5s 76ms/step - loss: 0.0011 - val_loss: 5.6271e-04\n", "Epoch 38/200\n", "59/59 [==============================] - 4s 60ms/step - loss: 0.0010 - val_loss: 3.8006e-04\n", "Epoch 39/200\n", "59/59 [==============================] - 4s 60ms/step - loss: 9.9454e-04 - val_loss: 3.7607e-04\n", "Epoch 40/200\n", "59/59 [==============================] - 6s 95ms/step - loss: 0.0011 - val_loss: 8.1985e-04\n", "Epoch 41/200\n", "59/59 [==============================] - 4s 60ms/step - loss: 0.0011 - val_loss: 6.0866e-04\n", "Epoch 42/200\n", "59/59 [==============================] - 4s 59ms/step - loss: 9.6114e-04 - val_loss: 0.0011\n", "Epoch 43/200\n", "59/59 [==============================] - 4s 72ms/step - loss: 9.5140e-04 - val_loss: 3.6197e-04\n", "Epoch 44/200\n", "59/59 [==============================] - 4s 75ms/step - loss: 0.0011 - val_loss: 7.0947e-04\n", "Epoch 45/200\n", "59/59 [==============================] - 4s 60ms/step - loss: 0.0010 - val_loss: 3.6501e-04\n", "Epoch 46/200\n", "59/59 [==============================] - 4s 60ms/step - loss: 8.2942e-04 - val_loss: 3.5953e-04\n", "Epoch 47/200\n", "59/59 [==============================] - 6s 100ms/step - loss: 9.0532e-04 - val_loss: 4.5668e-04\n", "Epoch 48/200\n", "59/59 [==============================] - 4s 63ms/step - loss: 0.0010 - val_loss: 3.5209e-04\n", "Epoch 49/200\n", "59/59 [==============================] - 4s 60ms/step - loss: 0.0011 - val_loss: 5.2621e-04\n", "Epoch 50/200\n", "59/59 [==============================] - 5s 79ms/step - loss: 0.0011 - val_loss: 3.3283e-04\n", "Epoch 51/200\n", "59/59 [==============================] - 4s 74ms/step - loss: 9.2801e-04 - val_loss: 4.5561e-04\n", "Epoch 52/200\n", "59/59 [==============================] - 4s 60ms/step - loss: 0.0010 - val_loss: 3.1821e-04\n", "Epoch 53/200\n", "59/59 [==============================] - 4s 59ms/step - loss: 0.0010 - val_loss: 3.5321e-04\n", "Epoch 54/200\n", "59/59 [==============================] - 5s 92ms/step - loss: 9.0325e-04 - val_loss: 3.6632e-04\n", "Epoch 55/200\n", "59/59 [==============================] - 5s 89ms/step - loss: 9.4327e-04 - val_loss: 3.0977e-04\n", "Epoch 56/200\n", "59/59 [==============================] - 4s 60ms/step - loss: 8.7158e-04 - val_loss: 3.0950e-04\n", "Epoch 57/200\n", "59/59 [==============================] - 5s 88ms/step - loss: 0.0010 - val_loss: 4.4770e-04\n", "Epoch 58/200\n", "59/59 [==============================] - 4s 62ms/step - loss: 9.8695e-04 - val_loss: 4.3848e-04\n", "Epoch 59/200\n", "59/59 [==============================] - 4s 61ms/step - loss: 9.0576e-04 - val_loss: 3.0263e-04\n", "Epoch 60/200\n", "59/59 [==============================] - 4s 75ms/step - loss: 8.8868e-04 - val_loss: 3.5009e-04\n", "Epoch 61/200\n", "59/59 [==============================] - 5s 80ms/step - loss: 8.8596e-04 - val_loss: 5.8498e-04\n", "Epoch 62/200\n", "59/59 [==============================] - 4s 61ms/step - loss: 9.8473e-04 - val_loss: 3.6592e-04\n", "Epoch 63/200\n", "59/59 [==============================] - 4s 62ms/step - loss: 8.4708e-04 - val_loss: 8.4570e-04\n", "Epoch 64/200\n", "59/59 [==============================] - 5s 92ms/step - loss: 8.9016e-04 - val_loss: 2.9699e-04\n", "Epoch 65/200\n", "59/59 [==============================] - 4s 60ms/step - loss: 8.1578e-04 - val_loss: 3.3800e-04\n", "Epoch 66/200\n", "59/59 [==============================] - 4s 59ms/step - loss: 8.6326e-04 - val_loss: 3.1552e-04\n", "Epoch 67/200\n", "59/59 [==============================] - 4s 72ms/step - loss: 8.9034e-04 - val_loss: 2.8460e-04\n", "Epoch 68/200\n", "59/59 [==============================] - 5s 79ms/step - loss: 8.2446e-04 - val_loss: 3.4850e-04\n", "Epoch 69/200\n", "59/59 [==============================] - 4s 60ms/step - loss: 8.8816e-04 - val_loss: 4.5005e-04\n", "Epoch 70/200\n", "59/59 [==============================] - 4s 61ms/step - loss: 9.2996e-04 - val_loss: 2.8503e-04\n", "Epoch 71/200\n", "59/59 [==============================] - 6s 96ms/step - loss: 9.9439e-04 - val_loss: 4.2666e-04\n", "Epoch 72/200\n", "59/59 [==============================] - 4s 69ms/step - loss: 9.8471e-04 - val_loss: 2.8688e-04\n" ] } ] }, { "cell_type": "code", "source": [ "model.load_weights('eth.keras')\n", "loss = model.evaluate(X_test, y_test)\n", "predictions = model.predict(X_test)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "23nPU1PYg7nZ", "outputId": "84fbdcdf-0498-4d07-8d99-418d4a6dce48" }, "execution_count": 13, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "15/15 [==============================] - 0s 24ms/step - loss: 2.8460e-04\n", "15/15 [==============================] - 1s 21ms/step\n" ] } ] }, { "cell_type": "code", "source": [ "import matplotlib.pyplot as plt\n", "\n", "plt.figure(\n", " figsize = (14, 5)\n", ")\n", "\n", "plt.plot(y_test, color = 'blue', label = 'actual')\n", "plt.plot(predictions, color = 'red', label = 'predicted')\n", "plt.legend()\n", "plt.show()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 430 }, "id": "GZdxZwfmr3aN", "outputId": "8fb4eaa4-30a8-4bda-aec9-451575be6c72" }, "execution_count": 14, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "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nM8+g7vugtBQSEmBFi3g8svhpZfs11NPBXqEIoXPqTKP9ApdE2MRERERERHJGacCp0MHmDkTVq2yXwBa90QksDSFSkRERERERABfgNO6NURFQWqq/QLYsiVw4xIRBTgiIiIiIiLi4QQ45ctD06Z2P8jzqXHLFtsPR0QCQwGOiIiIiIiIAL4Ap1w5uOQSu//883abkAD79wdmXCKiAEdEREREREQ80gc4Q4bA+vXw9NPQrvxmnuV5wi/pBD/9FNhBipyj1MRYREREREREAP8AJyQE6tYF3niD2XueIAgDy4GXE+HqqwM4SpFzkypwREREREREBLcb9u2z++XKeU6++io8/jhBGGbS2Z5btgyOHAnIGEXOZQpwREREREREhEOHIC3N7pcpA3zxBfzf/wEw/cIX6cJM9hevbpOe+fMDNk6Rc5UCnHNA9erVGTFihPfY5XIxYcKEfB/Hc889R/PmzfP9viIiIiIicnrO9KmSJSEsDPj6a3ti8GB23PY0AMuLXWDPzZ6d/wMUOccpwDkHxcbGcumll2bpWoUuIiIiIiLnhvT9bzAGli61J/r0oUYNuzsrVQGOSKAowDlLJCcn59prVahQgfDw8Fx7PREREREROXvFxcGePScEODt32oY4wcHQpIk3wPn1kCfAmT8fUlICMl6Rc5UCnAC58MILGTRoEIMGDSI6OpoyZcrwzDPPYIwB7LSnF198kb59+xIVFcXdd98NwOzZs+nYsSMRERHExMTwwAMPkJCQ4H3dvXv30rNnTyIiIqhRowZfffXVSfc+cQrVzp07ufHGGylVqhRFixalVatWLFiwgDFjxvD888+zYsUKXC4XLpeLMWPGAHD48GHuuusuypYtS1RUFBdddBErVqzwu8+wYcMoX748xYsX58477+T48eO5/F0UEREREZEzcfgwtGgBderA4sX2XLlywJIl9qBRI4iIoHJlCA2FlakNSIsuCYmJsHx5gEYtcm4qfAGOMZCQEJgvT/iSVWPHjiUkJISFCxfyzjvvMHz4cD799FPv42+++SbNmjVj2bJlPPPMM2zatIkePXpwzTXXsHLlSsaPH8/s2bMZNGiQ9zm33347O3bsYMaMGXz//fd8+OGH7HWi9AwcPXqUzp07899///HLL7+wYsUKHn/8cdxuN3369OGRRx6hUaNGxMbGEhsbS58+fQC47rrr2Lt3L5MmTWLJkiWcd955XHzxxRw8eBCAb7/9lueee45XXnmFxYsXU7FiRT788MNsfX9ERERERCRvPfggbNliF5V67z17rlw5fNOnWrYEbCFO1apgCOJwww72MU2jEslXIYEeQK5LTIRixQJz76NHoWjRLF8eExPD22+/jcvlol69eqxatYq3336b/v37A3DRRRfxyCOPeK+/6667uPnmm3nooYcAqFOnDu+++y6dO3fmo48+Yvv27UyaNImFCxdy/vnnA/DZZ5/RoEGDTMfw9ddfs2/fPhYtWkSpUqUAqF27tvfxYsWKERISQoUKFbznZs+ezcKFC9m7d693Ktabb77JhAkT+P7777n77rsZMWIEd955J3feeScAL730EtOmTVMVjoiIiIhIATFhgl1oynHsmN2WKwcs8lTgnHee9/EaNWDTJtha5QJKMxH+/hsefjjfxivnHrfb1kkEBwd6JAVD4avAOYu0bdsWl8vlPW7Xrh0bN24kzbN2X6tWrfyuX7FiBWPGjKFYsWLer+7du+N2u9myZQvr1q0jJCSElp6UHKB+/fqUKFEi0zEsX76cFi1aeMObrFixYgVHjx6ldOnSfmPZsmULmzZtAmDdunW0adPG73nt2rXL8j1ERERERCTvbN4Mni4NPP64nUYFhiIco1xZ45tCle6zhdMHZ1VEa7uzcmW+jVfOPceOQb160LatDXIkhxU4H3zwAW+88Qa7d++mWbNmvPfee7Ru3TrT60eMGOGtEClTpgzXXnstr776KkWKFMnxwDMVGWkrYQIhMjJXX67oCdU8R48eZcCAATzwwAMnXVu1alU2bNiQ7XtERERk+zlHjx6lYsWKzJw586THThUWiYiIiIhI4O3dC9272x7FLVrACy/AeU1SKHHrFZzPItZvHWW7GgcFQbNm3uc5Ac6Ko7Xszvbt9pN1kOoCJPfNmwf//mv3FywA1QPkIMAZP348gwcPZuTIkbRp04YRI0bQvXt31q9fT7ly5U66/uuvv+bJJ59k9OjRtG/fng0bNnD77bfjcrkYPnx4rrwJPy5XtqYxBdKCBQv8jufPn0+dOnUIzqQ+7LzzzmPt2rV+U5zSq1+/PqmpqSxZssQ7hWr9+vUcPnw40zE0bdqUTz/9lIMHD2ZYhRMWFuatCEo/jt27dxMSEkL16tUzfN0GDRqwYMEC+vbt6/f+REREREQkcFJS4Ior7Afj6tXht98gPByuW/IkQUwFoM07N9mLGzTw+09q55/+K/dXgpAQ+2KxsVC5cv6+CTkn/PWXb//nnxXgQA6mUA0fPpz+/fvTr18/GjZsyMiRI4mMjGT06NEZXj937lw6dOjATTfdRPXq1bnkkku48cYbWbhwYab3SEpKIj4+3u+rMNq+fTuDBw9m/fr1fPPNN7z33ns8+OCDmV7/xBNPMHfuXAYNGsTy5cvZuHEjP//8s7eJcb169ejRowcDBgxgwYIFLFmyhLvuuuuUVTY33ngjFSpUoFevXsyZM4fNmzfzww8/MG/ePMCuhrVlyxaWL1/O/v37SUpKomvXrrRr145evXoxdepUtm7dyty5c3nqqadY7Gld/+CDDzJ69Gg+//xzNmzYwNChQ1mzZk0ufvdERERERCS7pk+HRYugRAmYMgUqVgR++omgEfY/15NLliMoJdlenG76FPhymu27QiAmxh5s3Zov45Zzz99/+/Z/+SVw4yhIshXgJCcns2TJErp27ep7gaAgunbt6v3Af6L27duzZMkSb2CzefNmfv/9dy677LJM7/Pqq68SHR3t/Ypx/nAoZPr27cuxY8do3bo19913Hw8++KB3ufCMNG3alFmzZrFhwwY6duxIixYtePbZZ6lUqZL3ms8//5xKlSrRuXNnevfuzd13351hZZQjLCyMqVOnUq5cOS677DKaNGnCsGHDvFVA11xzDT169KBLly6ULVuWb775BpfLxe+//06nTp3o168fdevW5YYbbmDbtm2UL18egD59+vDMM8/w+OOP07JlS7Zt28bAgQNz6TsnIiIiIiI5MWmS3V53HdStC6SlgfPv9MGDCZs+GcLC7HG6BsYAVarY7X//gXHKcRTgSB5ITrZTqBzr1sHGjYEbT0HhMibra1/v2rWLypUrM3fuXL+GtI8//jizZs06aUqQ49133+XRRx/FGENqair33HMPH330Uab3SUpKIikpyXscHx9PTEwMcXFxREVF+V17/PhxtmzZQo0aNfKmp04eufDCC2nevDkjRowI9FAKlLP111NERERE5GxQp46dPvXTT9CrF7B4MZx/PhQvDvv32/Dmxx/hf/+DTz+F0qW9zz1+HJzi/uM33UH415/DSy/BU08F5L1I4TV/vp0yVbo0NG9uK8fefBPSLdJcqMTHxxMdHZ1h5pFennebmjlzJq+88goffvghS5cu5ccff+S3337jxRdfzPQ54eHhREVF+X2JiIiIiIhIzm3caMOb0FC4+GLPyWnT7LZLF1/lTe/eNuFJF94AFCkCZcrY/cMlqtsdVeBIHnD633Ts6AkasX1wznXZCnDKlClDcHAwe/bs8Tu/Z88eKlSokOFznnnmGW699VbuuusumjRpwtVXX80rr7zCq6++iltrgYmIiIiIiOSL33+3206dbMEN4AtwunXL0ms406h2R1S3OwpwJA84/W86doSePe3+nDlw6FDgxlQQZCvACQsLo2XLlkyfPt17zu12M336dL8pVeklJiYSdMKyck5/lWzM3ip0Zs6cqelTIiIiIiKSb5wAx9uO9NgxmD3b7qfrc3oqTiPjHUHV7Y4CHMllbrfvx7JTJ6hWzU79c7ttA+5zWbanUA0ePJhRo0YxduxY1q1bx8CBA0lISKBfv36Abcw7ZMgQ7/U9e/bko48+Yty4cWzZsoU//viDZ555hp49e2a6XLaIiIiIiIjknoQEmDnT7nsDnNmzISnJltXUq5el13EqcDamVLc727bZT9YiuWTNGjh8GIoVs/1vAFq1AjAUe+lJ6N4djhwJ3AADKCS7T+jTpw/79u3j2WefZffu3TRv3pzJkyd7Vx/avn27X8XN008/jcvl4umnn+a///6jbNmy9OzZk5dffjn33oWIiIiIiIhkasECu7JPtWrpspo//rDbbt3A5crS6zgVOOviKkFICKSkQGys7wGRM+SsjXT++fZHzNlv8s3/0f7v1+yJb7+FO+8MzAADKNsBDsCgQYMYNGhQho/NdGJd5wYhIQwdOpShQ4fm5FZZdi5PxypM1BdJRERERCT37dtntzVqpMtqnP43WZw+Bb4KnB2xIRATA1u22GlUCnAklzjTpFq39p27ctu71GKY74QCnLNTaGgoLpeLffv2UbZsWVxZTI6lYDHGkJyczL59+wgKCiLM6YAvIiIiIiJnLC7ObqOjPSfi42HZMrvvXZLq9JycZudOoHp1X4DToUMujVTOdU6Ac/75nhNJSdT85EkARjKAe/jYriu+f79vWbRzxFkf4AQHB1OlShV27tzJVjXQOutFRkZStWrVkxpfi4iIiIhIzh0+bLfeAGfTJrstVw487TCywqnA+e8/4Pzq9kCfwyQLtm6FhQvhuusyn7F3/DisWmX3vQHO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qFEDgIYNG7Jp0yZGjRrF9ddff8b5Q0NDCQ0NzU3TJJdq1YLgYBslfM8eG2SKXr1gyhTuYhILKz8N476wmW+7za9tFRERERERESnscpWBExISQuPGjZk/f37WNI/Hw/z582nevHmOl+PxeEhJScnNqiWPhYT8ZiQq4HCzDhwihvLs447nm9i4qWXLQi7+tiIiIiIiIiKS93LdhWrw4MG8+eabvPPOO2zatIn777+f5ORk+vTpA8A999zDsGHDsuYfNWoU8+bN4+eff2bTpk28+OKLvPfee9ydWTRX/Oe3dXC+XBjCMEaRRjAhP2ZO7NIFgoL80j4RERERERERMbnqQgXQvXt3fv31V0aMGEF8fDwNGzZkzpw5WYWNd+7cSWCgLy6UnJzMAw88wO7duwkLC6N27dq8//77dO/ePe+2Qs7J5ZfDlCm+AM6MGTCJ+6j2QAceC30Z4uJgyBD/NlJERERERERECHDOOX834o8kJiYSHR1NQkICUVFR/m7OReOTT6B7d7jqKli6FMqUgSNHYNkyaNHC360TERERERERufjlNOaRL6NQScF0aheqJUsseBMTYwEdERERERERESk4FMApxGrVgvBwSEqCjh1t2k03qeSNiIiIiIiISEGjAE4hFhIC775rWTcnT9q0Tp382yYREREREREROV2uixjLxeW22+D66+Hpp+HwYbjlFn+3SERERERERER+SwEcoWRJePllf7dCRERERERERM5GXahERERERERERAo4BXBERERERERERAo4BXBERERERERERAo4BXBERERERERERAo4BXBERERERERERAo4BXBERERERERERAo4BXBERERERERERAo4BXBERERERERERAo4BXBERERERERERAo4BXBERERERERERAo4BXBERERERERERAo4BXBERERERERERAo4BXBERERERERERAo4BXBERERERERERAq4YH83ICeccwAkJib6uSUiIiIiIiIiInnHG+vwxj7O5oII4CQlJQFQsWJFP7dERERERERERCTvJSUlER0dfdbXA9wfhXgKAI/Hw969e4mMjCQgIMDfzTkniYmJVKxYkV27dhEVFeXv5ohcsLQvieQN7UsieUf7k0je0L4khZVzjqSkJMqXL09g4Nkr3VwQGTiBgYFUqFDB383IE1FRUfoyEskD2pdE8ob2JZG8o/1JJG9oX5LC6Pcyb7xUxFhEREREREREpIBTAEdEREREREREpIBTACefhIaGMnLkSEJDQ/3dFJELmvYlkbyhfUkk72h/Eskb2pdEft8FUcRYRERERERERKQwUwaOiIiIiIiIiEgBpwCOiIiIiIiIiEgBpwCOiIiIiIiIiEgBpwCOiIiIiIiIiEgBpwCOiIiIiIiIiEgBpwBOPhk/fjxVqlShaNGiNGvWjFWrVvm7SSIFypIlS+jUqRPly5cnICCAzz//PNvrzjlGjBjBJZdcQlhYGG3atGHr1q3Z5jl8+DA9e/YkKiqK4sWL07dvX44dO5aPWyHiX6NGjaJp06ZERkZSpkwZunTpwpYtW7LNc/LkSfr370/JkiUpVqwYt912G/v37882z86dO+nYsSPh4eGUKVOGRx55hPT09PzcFBG/mzBhArGxsURFRREVFUXz5s2ZPXt21uval0Ryb/To0QQEBPDggw9mTdO+JJJzCuDkg48//pjBgwczcuRI1qxZQ4MGDWjfvj0HDhzwd9NECozk5GQaNGjA+PHjz/j6888/z9ixY3njjTdYuXIlERERtG/fnpMnT2bN07NnTzZu3Mi8efOYMWMGS5Ys4b777suvTRDxu8WLF9O/f39WrFjBvHnzSEtLo127diQnJ2fN89BDD/HFF18wefJkFi9ezN69e+natWvW6xkZGXTs2JHU1FS++eYb3nnnHd5++21GjBjhj00S8ZsKFSowevRo4uLi+Pbbb2nVqhWdO3dm48aNgPYlkdxavXo1EydOJDY2Ntt07UsiueDkT3fllVe6/v37Zz3PyMhw5cuXd6NGjfJjq0QKLsBNnTo167nH43HlypVzY8aMyZp29OhRFxoa6j788EPnnHM//PCDA9zq1auz5pk9e7YLCAhwe/bsybe2ixQkBw4ccIBbvHixc872myJFirjJkydnzbNp0yYHuOXLlzvnnJs1a5YLDAx08fHxWfNMmDDBRUVFuZSUlPzdAJECpkSJEu6tt97SviSSS0lJSa5mzZpu3rx57rrrrnODBg1yzum4JJJbysD5k6WmphIXF0ebNm2ypgUGBtKmTRuWL1/ux5aJXDi2b99OfHx8tv0oOjqaZs2aZe1Hy5cvp3jx4jRp0iRrnjZt2hAYGMjKlSvzvc0iBUFCQgIAMTExAMTFxZGWlpZtX6pduzaVKlXKti/Vr1+fsmXLZs3Tvn17EhMTszIPRAqbjIwMPvroI5KTk2nevLn2JZFc6t+/Px07dsy2z4COSyK5FezvBlzsDh48SEZGRrYvHICyZcuyefNmP7VK5MISHx8PcMb9yPtafHw8ZcqUyfZ6cHAwMTExWfOIFCYej4cHH3yQFi1aUK9ePcD2k5CQEIoXL55t3t/uS2fa17yviRQmGzZsoHnz5pw8eZJixYoxdepU6taty9q1a7UvieTQRx99xJo1a1i9evVpr+m4JJI7CuCIiIhchPr378/333/PsmXL/N0UkQvWZZddxtq1a0lISODTTz+ld+/eLF682N/NErlg7Nq1i0GDBjFv3jyKFi3q7+aIXPDUhepPVqpUKYKCgk6rpL5//37KlSvnp1aJXFi8+8rv7UflypU7rTB4eno6hw8f1r4mhc6AAQOYMWMGCxcupEKFClnTy5UrR2pqKkePHs02/2/3pTPta97XRAqTkJAQatSoQePGjRk1ahQNGjTg1Vdf1b4kkkNxcXEcOHCARo0aERwcTHBwMIsXL2bs2LEEBwdTtmxZ7UsiuaAAzp8sJCSExo0bM3/+/KxpHo+H+fPn07x5cz+2TOTCUbVqVcqVK5dtP0pMTGTlypVZ+1Hz5s05evQocXFxWfMsWLAAj8dDs2bN8r3NIv7gnGPAgAFMnTqVBQsWULVq1WyvN27cmCJFimTbl7Zs2cLOnTuz7UsbNmzIFhCdN28eUVFR1K1bN382RKSA8ng8pKSkaF8SyaHWrVuzYcMG1q5dm3Vr0qQJPXv2zHqsfUkk59SFKh8MHjyY3r1706RJE6688kpeeeUVkpOT6dOnj7+bJlJgHDt2jJ9++inr+fbt21m7di0xMTFUqlSJBx98kKeffpqaNWtStWpVhg8fTvny5enSpQsAderU4cYbb6Rfv3688cYbpKWlMWDAAO68807Kly/vp60SyV/9+/dn0qRJTJs2jcjIyKzaANHR0YSFhREdHU3fvn0ZPHgwMTExREVFMXDgQJo3b85VV10FQLt27ahbty69evXi+eefJz4+nieffJL+/fsTGhrqz80TyVfDhg2jQ4cOVKpUiaSkJCZNmsSiRYv48ssvtS+J5FBkZGRWHTaviIgISpYsmTVd+5JILvh7GKzCYty4ca5SpUouJCTEXXnllW7FihX+bpJIgbJw4UIHnHbr3bu3c86GEh8+fLgrW7asCw0Nda1bt3ZbtmzJtoxDhw65Hj16uGLFirmoqCjXp08fl5SU5IetEfGPM+1DgPvf//6XNc+JEyfcAw884EqUKOHCw8Pdrbfe6vbt25dtOTt27HAdOnRwYWFhrlSpUm7IkCEuLS0tn7dGxL/+8pe/uMqVK7uQkBBXunRp17p1azd37tys17UviZybU4cRd077kkhuBDjnnJ9iRyIiIiIiIiIikgOqgSMiIiIiIiIiUsApgCMiIiIiIiIiUsApgCMiIiIiIiIiUsApgCMiIiIiIiIiUsApgCMiIiIiIiIiUsApgCMiIiIiIiIiUsApgCMiIiIiIiIiUsApgCMiIiIiIiIiUsApgCMiIiIiIiIiUsApgCMiIiIiIiIiUsApgCMiIiIiIiIiUsD9P5IOYH5QOkFnAAAAAElFTkSuQmCC\n" }, "metadata": {} } ] }, { "cell_type": "markdown", "source": [ "
\n", "

Testing

" ], "metadata": { "id": "3AlPkjRVilUg" } }, { "cell_type": "code", "source": [ "days = 7\n", "\n", "lst_seq = dataframe[-sequence_length:].values\n", "lst_seq = np.expand_dims(lst_seq, axis = 0)\n", "\n", "predicted_prices = {}\n", "last_date = pd.to_datetime(dataframe.index[-1])\n", "\n", "for _ in range(days):\n", " predicted_price = model.predict(lst_seq)\n", " last_date = last_date + pd.Timedelta(days = 1)\n", "\n", " predicted_prices[last_date] = minmax_scaler.inverse_transform(predicted_price)\n", " predicted_prices[last_date] = standard_scaler.inverse_transform(predicted_prices[last_date])\n", "\n", " lst_seq = np.append(lst_seq[:, 1:, :], [predicted_price], axis = 1)\n", "\n", "\n", "eth_prices = minmax_scaler.inverse_transform(dataframe[['Close']])\n", "eth_prices = standard_scaler.inverse_transform(eth_prices)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "TyB5g_klixdP", "outputId": "c5240f14-3e80-44c9-8a2a-d3d5afa6fa3a" }, "execution_count": 15, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "1/1 [==============================] - 0s 28ms/step\n", "1/1 [==============================] - 0s 29ms/step\n", "1/1 [==============================] - 0s 27ms/step\n", "1/1 [==============================] - 0s 28ms/step\n", "1/1 [==============================] - 0s 37ms/step\n", "1/1 [==============================] - 0s 32ms/step\n", "1/1 [==============================] - 0s 28ms/step\n" ] } ] }, { "cell_type": "code", "source": [ "plt.figure(\n", " figsize = (14, 5)\n", ")\n", "\n", "plt.plot(\n", " pd.to_datetime(dataframe.index[-sequence_length:]),\n", " eth_prices[-sequence_length:],\n", " color = 'blue',\n", " label = 'last days prices'\n", ")\n", "\n", "plt.scatter(\n", " predicted_prices.keys(),\n", " predicted_prices.values(),\n", " color = 'red',\n", " label = f'predicted price for {days} days'\n", ")\n", "\n", "plt.title('ETH-USD')\n", "plt.legend()\n", "plt.show()" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 447 }, "id": "Y9zYnSUakgPZ", "outputId": "52875e13-6c0b-4e2e-f777-5c37f9b4f79b" }, "execution_count": 16, "outputs": [ { "output_type": "display_data", "data": { "text/plain": [ "
" ], "image/png": "iVBORw0KGgoAAAANSUhEUgAABH0AAAHDCAYAAAC57mYWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAACW0ElEQVR4nOzdeZzNdfvH8feZYcYwZiT7TrKGQmkqWbMmoiKyhIqbLC2ihdLdTXerNlpEm0g3pciSJYVsZR9LIsqaZcY6mPn+/rh+Z8ZkMGfmzJw557yej8d5nO8553u+3+sMhznX+VzX5XIcxxEAAAAAAAACSoivAwAAAAAAAID3kfQBAAAAAAAIQCR9AAAAAAAAAhBJHwAAAAAAgABE0gcAAAAAACAAkfQBAAAAAAAIQCR9AAAAAAAAAhBJHwAAAAAAgABE0gcAAAAAACAAkfQBAAAAAAAIQCR9AACA35o4caJcLtdFLy1atLjk4+5Ljx49JEkNGzbUNddck+a5du7cKZfLpZdffvmycT377LNyuVz6+++/03z8mmuuUcOGDVPdd/DgQQ0cOFBVqlRRRESEihQpohtuuEFPPPGEjh8/nrxfjx49UsUeGRmpChUq6K677tL//vc/JSUlpe+HBwAAAl4uXwcAAACQWSNHjlT58uUvuL9s2bK67777km/v2LFDw4cP14MPPqj69esn33/VVVdlS5wXc/jwYdWtW1fx8fHq2bOnqlSpokOHDmndunUaO3as+vbtq8jIyOT9w8PD9cEHH0iSTp06pT/++EPffPON7rrrLjVs2FBff/21oqKifPVyAABADkHSBwAA+L2WLVuqbt26aT52fnJn1apVGj58uGJiYlIlg3xt/Pjx2rVrl5YsWaKbbrop1WPx8fEKCwtLdV+uXLkuiP/f//63Ro8erWHDhumBBx7QlClTsjxuAACQs1HeBQAA4GPbt29XaGiobrzxxgsei4qKUp48edJ1nKFDh6pZs2aaOnWqtm7d6u0wAQCAnyHpAwAA/F5cXJz+/vvvVJdDhw5l6FiJiYkXHOvvv//WkSNHvBx1irJlyyoxMVGffPJJpo/VtWtXOY6jefPmeSEyAADgzyjvAgAAfq9p06YX3BceHq7Tp097fKzNmzercOHC3ggr3Xr27KnXXntNPXr00OjRo9WwYUPdeuutatWqlaKjoz06lrsR9fbt27MiVAAA4EdI+gAAAL/39ttvq1KlSqnuCw0NzdCxypUrp/fff/+C+/fv359lfYCKFi2qtWvXauTIkZo+fbrGjRuncePGKSwsTE8//bSefvppuVyudB3L3fD52LFjWRIrAADwHyR9AACA37vhhhsu2sjZU/ny5Utz5dDOnTtT3U5MTNTBgwdT3VewYMELmi5fzD+TOMWLF9fYsWP1zjvvaNu2bZozZ45efPFFDR8+XMWLF1fv3r3TdVz3ePf8+fOna38AABC46OkDAACQAbt371bx4sVTXZYuXSpJyY2XT506leZzT548edHmzC6XS5UqVdLDDz+sxYsXKyQkRJ999lm649qwYYMkqWLFip68HAAAEIBY6QMAAJABxYoVu6BZcq1atSRZY2ZJ2rJli0qXLp1qn5MnT2r37t1q1qzZZc9RoUIFXXHFFdq7d2+64/rkk0/kcrl02223pfs5AAAgMJH0AQAAyIA8efKkWQYmSU2aNFFYWJjGjh2rxo0bKyQkZXH1e++9p3Pnzqlly5bJ9y1fvlzXXHON8uXLl+o4K1as0KFDh3TzzTenK6bRo0dr7ty56tSpk66++uoMvCoAABBISPoAAAC/991332nz5s0X3H/TTTepQoUK2R5PkSJFNHz4cD399NO69dZbdccddyhv3rxaunSpPv/8czVr1kxt2rRJ3v+TTz7RZ599pjvvvFN16tRRWFiYYmNj9eGHHypPnjx68sknUx3/3Llz+vTTTyVJp0+f1h9//KEZM2Zo3bp1atSokd57771sfb0AACBnIukDAAD83vDhw9O8f8KECT5J+kjSU089pXLlyumtt97SyJEjde7cOZUvX17PPfecnnjiiVSrfx566CHlzZtX8+fP19dff634+HgVLlxYzZo107Bhw3TdddelOnZCQoK6du0qScqbN6+KFCmiOnXqaPjw4brzzjtTHRsAAAQvl+M4jq+DAAAAAAAAgHfxNRAAAAAAAEAAIukDAAAAAAAQgEj6AAAAAAAABCCSPgAAAAAAAAGIpA8AAAAAAEAAIukDAAAAAAAQgHL5OoCskpSUpD179ih//vxyuVy+DgcAAAAAAMArHMfRsWPHVKJECYWEXHw9T8Amffbs2aPSpUv7OgwAAAAAAIAssXv3bpUqVeqijwds0id//vyS7AcQFRXl42gAAAAAAAC8Iz4+XqVLl07O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U933448/OiEhIc6pU6ecLVu2OJKcFStWJD8eGxvrSHJee+215PskOdOnT3ccx3HeffddJ3/+/M6hQ4fSjHXEiBFOrVq1LjhnVFSUc/r06VT3X3XVVc67777rOI7jxMTEOP/6179SPV6vXr0LjnW+hQsXOpKcyZMnJ9936NAhJyIiwpkyZYrjOI4zYcIER5KzZs2aVM/t3r2707ZtW8dxHCc+Pt4JDw933n///TTP88knnziVK1dO9fNPSEhwIiIinDlz5lw0vujoaGfChAnJt5988skLjvP22287kZGRTmJiouM49md93XXXXfSYaVm+fLkjyVm+fPkl98vIzzgxMdHJnz+/88033yTfV61aNefFF19Mvt2mTRunR48ejuM4zurVqx1Jzs6dO9MVe6bekwAAAMhy33xjH3dCQhznvI8N2eLIEce58ko7/7hx2XtuIKe6VM7jfKz08dSPP164wud8jiPt3m37ZYEbb7xRLpcr+XZMTIy2bdumxPP6CdWtWzfVc9auXauJEycqMjIy+dK8eXMlJSVpx44dio2NVa5cuVSnTp3k51SpUuWS/WfWrFmj6667TgULFkx37GvXrtXx48d15ZVXpoplx44d2r59uyQpNjZW9erVS/W8mJiYdB3//P0KFiyoypUrKzY2Nvm+sLAw1bzEGtTY2FglJCSoSZMmF43/t99+U/78+ZNjL1iwoE6fPp0cf3rExsYqJiYm1Z/jzTffrOPHj+vP8/5unf/nkR7jx49XjRo1dMMNN1z2/Jf7Ge/fv18PPPCArr76akVHRysqKkrHjx/Xrl27kvfp3bu3JkyYkLz/d999p549e0qSatWqpSZNmqhGjRq6++679f777+vIkSMevR4AAADkDKdO2eh0yRo3X3999p6/QAFpxAjbfuYZKT4+e88P+LMsbLsVoM4rZ/HKflngn6U9x48f10MPPaQBAwZcsG+ZMmW0detWj88RERHh8XOOHz+u4sWLa9GiRRc8ltXNlCWL+fxES1qPX8rx48dVp06dNPsdFS5cONPx/dOlSrT+6cSJE5o8ebJGjhzplXN3795dhw4d0pgxY1S2bFmFh4crJiYmVRlbt27dNHToUC1btkxLly5V+fLlVb9+fUlSaGio5s2bp6VLl2ru3Ll688039dRTT2n58uUqX768V2IEAABA9njtNWnXLql0aRvR7gt9+khvvSVt3SqNHi395z++iQPwN6z08VTx4t7dz0PLly9PddvdbyU0NPSiz6ldu7Y2bdqkihUrXnAJCwtTlSpVdO7cOa1evTr5OVu2bNHRo0cvesyaNWtqzZo1yb14/iksLCzV6iN3HPv27VOuXLkuiKNQoUKSpKpVq6b5GtPj/P2OHDmirVu3qmrVqul6riRdffXVioiI0Pz589N8vHbt2tq2bZuKFClyQfzR0dHpPk/VqlW1bNmyVP1tlixZovz586tUqVLpPs75pk6dqoSEBN13333pOv/lfsZLlizRgAED1KpVK1WvXl3h4eH6+++/U+1z5ZVXql27dpowYYImTpyo+++/P9XjLpdLN998s5577jn9+uuvCgsL0/Tp0zP0+gAAAOAb+/ZJo0bZ9ujRUt68vokjd27ppZds+9VXpT/+8E0cgL8h6eOp+vWlUqWslXxaXC5Lgf//igdv27Vrlx555BFt2bJFn3/+ud58800NHDjwks954okntHTpUvXv319r1qzRtm3b9PXXXyc3cq5cubJatGihhx56SMuXL9fq1avVu3fvS658uffee1WsWDG1a9dOS5Ys0e+//67//e9/WrZsmSSbIrZjxw6tWbNGf//9txISEtS0aVPFxMSoXbt2mjt3rnbu3KmlS5fqqaee0qpVqyRJAwcO1IcffqgJEyZo69atGjFihDZu3Jiun83IkSM1f/58bdiwQT169FChQoVSTea6nDx58uiJJ57QkCFD9PHHH2v79u36+eefk6dRdenSRYUKFVLbtm31448/aseOHVq0aJEGDBiQqizrcv71r39p9+7devjhh7V582Z9/fXXGjFihB555BGFhGTsLTl+/Hi1a9dOV1555WX3Tc/P+Oqrr9Ynn3yi2NhYLV++XF26dEnz70Pv3r310UcfKTY2Vt27d0++f/ny5cmNonft2qVp06bp4MGDHiXhAAAA4HvDh0vHj0s33CB16uTbWNq0kRo2lBISbHoYgMsj6eOp0FBpzBjb/mfix3379ddtvyzQrVs3nTp1SjfccIP69eungQMHJo9lv5iaNWvqhx9+0NatW1W/fn1dd911Gj58uEqUKJG8z4QJE1SiRAk1aNBA7du314MPPpjmdCu3sLAwzZ07V0WKFFGrVq1Uo0YNjR49OnnFUYcOHdSiRQs1atRIhQsX1ueffy6Xy6VZs2bp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\n" }, "metadata": {} } ] }, { "cell_type": "code", "source": [ "import json\n", "\n", "dataframe_date = dataframe.index.tolist()\n", "dataframe_close = [idx[0] for idx in eth_prices.tolist()]\n", "dataframe_json = {\n", " 'Date': dataframe_date,\n", " 'Close': dataframe_close\n", "}\n", "\n", "with open('ETH-USD-posttrained.json', 'w') as f:\n", " json.dump(dataframe_json, f)" ], "metadata": { "id": "DQgzDWLXGOfp" }, "execution_count": 17, "outputs": [] }, { "cell_type": "code", "source": [ "for timestamp in list(predicted_prices.keys()):\n", " formatted_date = timestamp.strftime('%Y-%m-%d')\n", " dataframe_json['Date'].append(formatted_date)\n", "\n", "for value in list(predicted_prices.values()):\n", " prediction_value = float(value)\n", " dataframe_json['Close'].append(prediction_value)\n", "\n", "df_loaded = pd.DataFrame(dataframe_json)\n", "df_loaded.set_index('Date', inplace=True)\n", "df_loaded.tail(10)" ], "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 394 }, "id": "FyhjJbUTm1Cg", "outputId": "ecfe685e-80e0-434d-8cb5-09d1c8acb990" }, "execution_count": 18, "outputs": [ { "output_type": "execute_result", "data": { "text/plain": [ " Close\n", "Date \n", "2024-05-29 3763.196533\n", "2024-05-30 3746.849609\n", "2024-05-31 3778.403320\n", "2024-06-01 3724.088135\n", "2024-06-02 3707.247070\n", "2024-06-03 3688.963623\n", "2024-06-04 3671.277588\n", "2024-06-05 3654.622803\n", "2024-06-06 3638.932861\n", "2024-06-07 3624.011230" ], "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", "
Close
Date
2024-05-293763.196533
2024-05-303746.849609
2024-05-313778.403320
2024-06-013724.088135
2024-06-023707.247070
2024-06-033688.963623
2024-06-043671.277588
2024-06-053654.622803
2024-06-063638.932861
2024-06-073624.011230
\n", "
\n", "
\n", "\n", "
\n", " \n", "\n", " \n", "\n", " \n", "
\n", "\n", "\n", "
\n", " \n", "\n", "\n", "\n", " \n", "
\n", "
\n", "
\n" ], "application/vnd.google.colaboratory.intrinsic+json": { "type": "dataframe", "summary": "{\n \"name\": \"df_loaded\",\n \"rows\": 10,\n \"fields\": [\n {\n \"column\": \"Date\",\n \"properties\": {\n \"dtype\": \"object\",\n \"num_unique_values\": 10,\n \"samples\": [\n \"2024-06-06\",\n \"2024-05-30\",\n \"2024-06-03\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Close\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 53.20537164783098,\n \"min\": 3624.01123046875,\n \"max\": 3778.4033199999994,\n \"num_unique_values\": 10,\n \"samples\": [\n 3638.932861328125,\n 3746.849608999999,\n 3688.963623046875\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}" } }, "metadata": {}, "execution_count": 18 } ] } ], "metadata": { "colab": { "provenance": [] }, "kernelspec": { "display_name": "Python 3", "name": "python3" }, "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 0 }