{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"from IPython.core.display import display, HTML, Javascript\n\n# ----- Notebook Theme -----\n\nnotebook_theme = 'carrot'\ncolor_maps = {'turquoise': ['#1abc9c', '#e8f8f5', '#d1f2eb', '#a3e4d7', '#76d7c4', '#48c9b0', '#1abc9c', '#17a589', '#148f77', '#117864', '#0e6251'], 'green': ['#16a085', '#e8f6f3', '#d0ece7', '#a2d9ce', '#73c6b6', '#45b39d', '#16a085', '#138d75', '#117a65', '#0e6655', '#0b5345'], 'emerald': ['#2ecc71', '#eafaf1', '#d5f5e3', '#abebc6', '#82e0aa', '#58d68d', '#2ecc71', '#28b463', '#239b56', '#1d8348', '#186a3b'], 'nephritis': ['#27ae60', '#e9f7ef', '#d4efdf', '#a9dfbf', '#7dcea0', '#52be80', '#27ae60', '#229954', '#1e8449', '#196f3d', '#145a32'], 'peter': ['#3498db', '#ebf5fb', '#d6eaf8', '#aed6f1', '#85c1e9', '#5dade2', '#3498db', '#2e86c1', '#2874a6', '#21618c', '#1b4f72'], 'belize': ['#2980b9', '#eaf2f8', '#d4e6f1', '#a9cce3', '#7fb3d5', '#5499c7', '#2980b9', '#2471a3', '#1f618d', '#1a5276', '#154360'], 'amethyst': ['#9b59b6', '#f5eef8', '#ebdef0', '#d7bde2', '#c39bd3', '#af7ac5', '#9b59b6', '#884ea0', '#76448a', '#633974', '#512e5f'], 'wisteria': ['#8e44ad', '#f4ecf7', '#e8daef', '#d2b4de', '#bb8fce', '#a569bd', '#8e44ad', '#7d3c98', '#6c3483', '#5b2c6f', '#4a235a'], 'wet': ['#34495e', '#ebedef', '#d6dbdf', '#aeb6bf', '#85929e', '#5d6d7e', '#34495e', '#2e4053', '#283747', '#212f3c', '#1b2631'], 'midnight': ['#2c3e50', '#eaecee', '#d5d8dc', '#abb2b9', '#808b96', '#566573', '#2c3e50', '#273746', '#212f3d', '#1c2833', '#17202a'], 'sunflower': ['#f1c40f', '#fef9e7', '#fcf3cf', '#f9e79f', '#f7dc6f', '#f4d03f', '#f1c40f', '#d4ac0d', '#b7950b', '#9a7d0a', '#7d6608'], 'orange': ['#f39c12', '#fef5e7', '#fdebd0', '#fad7a0', '#f8c471', '#f5b041', '#f39c12', '#d68910', '#b9770e', '#9c640c', '#7e5109'], 'carrot': ['#e67e22', '#fdf2e9', '#fae5d3', '#f5cba7', '#f0b27a', '#eb984e', '#e67e22', '#ca6f1e', '#af601a', '#935116', '#784212'], 'pumpkin': ['#d35400', '#fbeee6', '#f6ddcc', '#edbb99', '#e59866', '#dc7633', '#d35400', '#ba4a00', '#a04000', '#873600', '#6e2c00'], 'alizarin': ['#e74c3c', '#fdedec', '#fadbd8', '#f5b7b1', '#f1948a', '#ec7063', '#e74c3c', '#cb4335', '#b03a2e', '#943126', '#78281f'], 'pomegranate': ['#c0392b', '#f9ebea', '#f2d7d5', '#e6b0aa', '#d98880', '#cd6155', '#c0392b', '#a93226', '#922b21', '#7b241c', '#641e16'], 'clouds': ['#ecf0f1', '#fdfefe', '#fbfcfc', '#f7f9f9', '#f4f6f7', '#f0f3f4', '#ecf0f1', '#d0d3d4', '#b3b6b7', '#979a9a', '#7b7d7d'], 'silver': ['#bdc3c7', '#f8f9f9', '#f2f3f4', '#e5e7e9', '#d7dbdd', '#cacfd2', '#bdc3c7', '#a6acaf', '#909497', '#797d7f', '#626567'], 'concrete': ['#95a5a6', '#f4f6f6', '#eaeded', '#d5dbdb', '#bfc9ca', '#aab7b8', '#95a5a6', '#839192', '#717d7e', '#5f6a6a', '#4d5656'], 'asbestos': ['#7f8c8d', '#f2f4f4', '#e5e8e8', '#ccd1d1', '#b2babb', '#99a3a4', '#7f8c8d', '#707b7c', '#616a6b', '#515a5a', '#424949']}\n# color_maps = {'red': ['#f44336', '#ffebee', '#ffcdd2', '#ef9a9a', '#e57373', '#ef5350', '#f44336', '#e53935', '#d32f2f', '#c62828', '#b71c1c', '#ff8a80', '#ff5252', '#ff1744', '#d50000'], 'pink': ['#e91e63', '#fce4ec', '#f8bbd0', '#f48fb1', '#f06292', '#ec407a', '#e91e63', '#d81b60', '#c2185b', '#ad1457', '#880e4f', '#ff80ab', '#ff4081', '#f50057', '#c51162'], 'purple': ['#9c27b0', '#f3e5f5', '#e1bee7', '#ce93d8', '#ba68c8', '#ab47bc', '#9c27b0', '#8e24aa', '#7b1fa2', '#6a1b9a', '#4a148c', '#ea80fc', '#e040fb', '#d500f9', '#aa00ff'], 'deep': ['#673ab7', '#ede7f6', '#d1c4e9', '#b39ddb', '#9575cd', '#7e57c2', '#673ab7', '#5e35b1', '#512da8', '#4527a0', '#311b92', '#b388ff', '#7c4dff', '#651fff', '#6200ea', '#ff5722', '#fbe9e7', '#ffccbc', '#ffab91', '#ff8a65', '#ff7043', '#ff5722', '#f4511e', '#e64a19', '#d84315', '#bf360c', '#ff9e80', '#ff6e40', '#ff3d00', '#dd2c00'], 'indigo': ['#3f51b5', '#e8eaf6', '#c5cae9', '#9fa8da', '#7986cb', '#5c6bc0', '#3f51b5', '#3949ab', '#303f9f', '#283593', '#1a237e', '#8c9eff', '#536dfe', '#3d5afe', '#304ffe'], 'blue': ['#2196f3', '#e3f2fd', '#bbdefb', '#90caf9', '#64b5f6', '#42a5f5', '#2196f3', '#1e88e5', '#1976d2', '#1565c0', '#0d47a1', '#82b1ff', '#448aff', '#2979ff', '#2962ff', '#607d8b', '#eceff1', '#cfd8dc', '#b0bec5', '#90a4ae', '#78909c', '#607d8b', '#546e7a', '#455a64', '#37474f', '#263238'], 'light': ['#03a9f4', '#e1f5fe', '#b3e5fc', '#81d4fa', '#4fc3f7', '#29b6f6', '#03a9f4', '#039be5', '#0288d1', '#0277bd', '#01579b', '#80d8ff', '#40c4ff', '#00b0ff', '#0091ea', '#8bc34a', '#f1f8e9', '#dcedc8', '#c5e1a5', '#aed581', '#9ccc65', '#8bc34a', '#7cb342', '#689f38', '#558b2f', '#33691e', '#ccff90', '#b2ff59', '#76ff03', '#64dd17'], 'cyan': ['#00bcd4', '#e0f7fa', '#b2ebf2', '#80deea', '#4dd0e1', '#26c6da', '#00bcd4', '#00acc1', '#0097a7', '#00838f', '#006064', '#84ffff', '#18ffff', '#00e5ff', '#00b8d4'], 'teal': ['#009688', '#e0f2f1', '#b2dfdb', '#80cbc4', '#4db6ac', '#26a69a', '#009688', '#00897b', '#00796b', '#00695c', '#004d40', '#a7ffeb', '#64ffda', '#1de9b6', '#00bfa5'], 'green': ['#4caf50', '#e8f5e9', '#c8e6c9', '#a5d6a7', '#81c784', '#66bb6a', '#4caf50', '#43a047', '#388e3c', '#2e7d32', '#1b5e20', '#b9f6ca', '#69f0ae', '#00e676', '#00c853'], 'lime': ['#cddc39', '#f9fbe7', '#f0f4c3', '#e6ee9c', '#dce775', '#d4e157', '#cddc39', '#c0ca33', '#afb42b', '#9e9d24', '#827717', '#f4ff81', '#eeff41', '#c6ff00', '#aeea00'], 'yellow': ['#ffeb3b', '#fffde7', '#fff9c4', '#fff59d', '#fff176', '#ffee58', '#ffeb3b', '#fdd835', '#fbc02d', '#f9a825', '#f57f17', '#ffff8d', '#ffff00', '#ffea00', '#ffd600'], 'amber': ['#ffc107', '#fff8e1', '#ffecb3', '#ffe082', '#ffd54f', '#ffca28', '#ffc107', '#ffb300', '#ffa000', '#ff8f00', '#ff6f00', '#ffe57f', '#ffd740', '#ffc400', '#ffab00'], 'orange': ['#ff9800', '#fff3e0', '#ffe0b2', '#ffcc80', '#ffb74d', '#ffa726', '#ff9800', '#fb8c00', '#f57c00', '#ef6c00', '#e65100', '#ffd180', '#ffab40', '#ff9100', '#ff6d00'], 'brown': ['#795548', '#efebe9', '#d7ccc8', '#bcaaa4', '#a1887f', '#8d6e63', '#795548', '#6d4c41', '#5d4037', '#4e342e', '#3e2723'], 'grey': ['#9e9e9e', '#fafafa', '#f5f5f5', '#eeeeee', '#e0e0e0', '#bdbdbd', '#9e9e9e', '#757575', '#616161', '#424242', '#212121'], 'white': ['#ffffff'], 'black': ['#000000']}\n\ncolor_maps = {i: color_maps[i] for i in color_maps if i not in ['clouds', 'silver', 'concrete', 'asbestos', 'wet asphalt', 'midnight blue', 'wet']}\n\nCMAP = 'Oranges'\nprompt = '#1DBCCD'\nmain_color = '#E58F65' # color_maps[notebook_theme]\nstrong_main_color = '#EB9514' # = color_maps[notebook_theme] \ncustom_colors = [strong_main_color, main_color]\n\n# ----- Notebook Theme -----\n\nhtml_contents =\"\"\"\n<!DOCTYPE html>\n<html lang=\"en\">\n    <head>\n        <link rel=\"stylesheet\" href=\"https://www.w3schools.com/w3css/4/w3.css\">\n        <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Raleway\">\n        <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Oswald\">\n        <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css?family=Open Sans\">\n        <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css\">\n        <style>\n        .title-section{\n            font-family: \"Oswald\", Arial, sans-serif;\n            font-weight: bold;\n            color: \"#6A8CAF\";\n            letter-spacing: 6px;\n        }\n        hr { border: 1px solid #E58F65 !important;\n             color: #E58F65 !important;\n             background: #E58F65 !important;\n           }\n        body {\n            font-family: \"Open Sans\", sans-serif;\n            }        \n        </style>\n    </head>    \n</html>\n\"\"\"\n\nimport os\nif not os.path.exists(\"../input/g-research-crypto-forecasting/\"): os.chdir('/t/Datasets/kaggle_crypto/internal')\nHTML(html_contents)","metadata":{"_kg_hide-input":true,"_kg_hide-output":true,"papermill":{"duration":0.087014,"end_time":"2021-12-22T10:54:00.248164","exception":false,"start_time":"2021-12-22T10:54:00.16115","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T12:58:43.843977Z","iopub.execute_input":"2021-12-28T12:58:43.844384Z","iopub.status.idle":"2021-12-28T12:58:43.910136Z","shell.execute_reply.started":"2021-12-28T12:58:43.844338Z","shell.execute_reply":"2021-12-28T12:58:43.909079Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"<br><br>\n<div>    \n<!--     <div style = \"float:left; width:55%; overflow:hidden;\">         -->\n        <center><img src=\"https://i.ibb.co/hHpTy3c/g-research-logo6.png\" style = \"max-height:300px;\"></center> \n<!--     </div> -->\n<!--     <div style = \"float:right; width:35%; overflow:hidden;\"> -->\n<!--         <img src=\"img/meditation/Meditation3.gif\">  -->\n<!--     </div> -->\n</div>","metadata":{"_cell_guid":"42a2c92b-00e6-4c13-b99e-408266d1b964","_uuid":"9b3904ae-5fd7-432b-a10a-1a2446fbcc4b","papermill":{"duration":0.04566,"end_time":"2021-12-22T10:54:00.340554","exception":false,"start_time":"2021-12-22T10:54:00.294894","status":"completed"},"tags":[]}},{"cell_type":"markdown","source":"<hr>","metadata":{"_cell_guid":"3208562a-4f7a-45d5-b8e2-67da427cd906","_uuid":"d7276e81-829f-4be5-967d-0a641fb1adbf","papermill":{"duration":0.045551,"end_time":"2021-12-22T10:54:00.43127","exception":false,"start_time":"2021-12-22T10:54:00.385719","status":"completed"},"tags":[]}},{"cell_type":"markdown","source":"<div>    \n    <div style = \"float:left; width:55%; overflow:hidden;\">        \n        <br><br><br><br>        \n        <span style = \"float:right;\">\n        <h2>Transformer-based Multivariate Time Series Representation Learning</h2>\n        <p>G-Research Crypto Forecasting Competition</p>\n        <br>\n        <b></b>\n        <b>\n        - 🌎 <a href=\"https://www.kaggle.com/c/g-research-crypto-forecasting/discussion/284903\">Discussion Thread</a>\n        <br>\n        - 🇰 <a href=\"https://www.kaggle.com/c/g-research-crypto-forecasting/discussion/285726\">The dataset</a>\n        </b>            \n        </span>\n    </div>\n    <div style=\"float:right; width:35%; max-height:300px; overflow: hidden;\">        \n        <img src=\"https://i.ibb.co/9YFyhT8/Bitcoin2.gif\" style = \"max-height: 300px;\">         \n    </div>\n</div>","metadata":{"_cell_guid":"241ce292-edca-4688-a665-c6321e80b438","_uuid":"79576405-5d2f-465f-bb01-10eee623172c","papermill":{"duration":0.043234,"end_time":"2021-12-22T10:54:00.518073","exception":false,"start_time":"2021-12-22T10:54:00.474839","status":"completed"},"tags":[]}},{"cell_type":"markdown","source":"<span id=\"introduction\"></span>\n<hr>","metadata":{"_cell_guid":"ca79faf7-ca73-4e9b-8552-be96bdc881f9","_uuid":"4e428101-c977-488b-aa10-fe96d228224f","papermill":{"duration":0.043888,"end_time":"2021-12-22T10:54:00.606291","exception":false,"start_time":"2021-12-22T10:54:00.562403","status":"completed"},"tags":[]}},{"cell_type":"markdown","source":"\n>### Transformer-based Multivariate Time Series Representation Learning<br>\n>This is a simple starter notebook for Kaggle's Crypto Comp showing the usage of Time Series Transformer model from the paper \"Transformer-based Multivariate Time Series Representation Learning\" with Keras. There are many configuration variables below to allow you to experiment. Use either GPU or TPU. You can control which years are loaded, which neural networks are used, and whether to use feature engineering. You can experiment with different data preprocessing, model architecture, loss, optimizers, and learning rate schedules. The extra datasets contain the full history of the assets at the same format of the competition, so you can input that into your model too.\n>\n>This notebook follows the ideas presented in my \"Initial Thoughts\" [here][1].\n\n[1]: https://www.kaggle.com/c/g-research-crypto-forecasting/discussion/284903\n[2]: https://www.kaggle.com/yamqwe/let-s-talk-validation-grouptimeseriessplit\n\n<div class=\"alert alert-block alert-warning\">\n<b>References:</b>\n<ul>\n    <li><a href = \"https://www.kaggle.com/c/g-research-crypto-forecasting/discussion/285726\">Dataset Thread</a></li>\n    <li><a href = \"https://www.kaggle.com/c/g-research-crypto-forecasting/discussion/284903\">Initial Thoughts Thread\n</a></li>\n    <li><a href = \"https://www.kaggle.com/yamqwe/let-s-talk-validation-grouptimeseriessplit\">Validation Thread\n</a></li>\n</ul>\n</div>","metadata":{"_cell_guid":"8af163ff-915a-4fae-aefe-6447e64952e5","_uuid":"b328cc9e-a536-4347-beed-d033e9f5ac6a","papermill":{"duration":0.043083,"end_time":"2021-12-22T10:54:00.692936","exception":false,"start_time":"2021-12-22T10:54:00.649853","status":"completed"},"tags":[]}},{"cell_type":"markdown","source":"____\n\n#### <center>All notebooks in the series 👇</center>\n\n| CV + Model | Hyperparam Optimization  | Time Series Models | Feature Engineering |\n| --- | --- | --- | --- |\n| [Neural Network Starter](https://www.kaggle.com/yamqwe/purgedgrouptimeseries-cv-with-extra-data-nn) | [MLP + AE](https://www.kaggle.com/yamqwe/bottleneck-encoder-mlp-keras-tuner)        | [LSTM](https://www.kaggle.com/yamqwe/time-series-modeling-lstm) | [Technical Analysis #1](https://www.kaggle.com/yamqwe/crypto-prediction-technical-analysis-features) |\n| [LightGBM Starter](https://www.kaggle.com/yamqwe/purgedgrouptimeseries-cv-with-extra-data-lgbm)     | [LightGBM](https://www.kaggle.com/yamqwe/purged-time-series-cv-lightgbm-optuna)     | [Wavenet](https://www.kaggle.com/yamqwe/time-series-modeling-wavenet)  | [Technical Analysis #2](https://www.kaggle.com/yamqwe/crypto-prediction-technical-analysis-feats-2) |\n| [Catboost Starter](https://www.kaggle.com/yamqwe/purgedgrouptimeseries-cv-extra-data-catboost)      | [Catboost](https://www.kaggle.com/yamqwe/purged-time-series-cv-catboost-gpu-optuna) | [Multivariate-Transformer [written from scratch]](https://www.kaggle.com/yamqwe/time-series-modeling-multivariate-transformer) | [Time Series Agg](https://www.kaggle.com/yamqwe/features-all-time-series-aggregations-ever) | \n| [XGBoost Starter](https://www.kaggle.com/yamqwe/xgb-extra-data)                                            | [XGboost](https://www.kaggle.com/yamqwe/purged-time-series-cv-xgboost-gpu-optuna) | [N-BEATS](https://www.kaggle.com/yamqwe/crypto-forecasting-n-beats) |  [Neutralization](https://www.kaggle.com/yamqwe/g-research-avoid-overfit-feature-neutralization/) |\n| [Supervised AE [Janestreet 1st]](https://www.kaggle.com/yamqwe/1st-place-of-jane-street-adapted-to-crypto) | [Supervised AE [Janestreet 1st]](https://www.kaggle.com/yamqwe/1st-place-of-jane-street-keras-tuner) | [DeepAR](https://www.kaggle.com/yamqwe/probabilistic-forecasting-deepar/) | [Quant's Volatility Features](https://www.kaggle.com/yamqwe/crypto-prediction-volatility-features) |\n| [Transformer)](https://www.kaggle.com/yamqwe/let-s-test-a-transformer)                                     | [Transformer](https://www.kaggle.com/yamqwe/sh-tcoins-transformer-baseline)  |  | ⏳Target Engineering |\n| [TabNet Starter](https://www.kaggle.com/yamqwe/tabnet-cv-extra-data)                                       |  |  |⏳Fourier Analysis | \n| [Reinforcement Learning (PPO) Starter](https://www.kaggle.com/yamqwe/g-research-reinforcement-learning-starter) | | | ⏳Wavelets | \n\n____","metadata":{"papermill":{"duration":0.043742,"end_time":"2021-12-22T10:54:00.780321","exception":false,"start_time":"2021-12-22T10:54:00.736579","status":"completed"},"tags":[]}},{"cell_type":"markdown","source":"<hr>\n<center><img src=\"https://i.ibb.co/2M2MsgH/upvote7.png\" height=400 width=400></center>\n<hr>","metadata":{"papermill":{"duration":0.043852,"end_time":"2021-12-22T10:54:00.867551","exception":false,"start_time":"2021-12-22T10:54:00.823699","status":"completed"},"tags":[]}},{"cell_type":"markdown","source":"# <span class=\"title-section w3-xxlarge\" id=\"outline\">Table Of Content 📑</span>\n<hr >","metadata":{"_cell_guid":"3208562a-4f7a-45d5-b8e2-67da427cd906","_uuid":"d7276e81-829f-4be5-967d-0a641fb1adbf","papermill":{"duration":0.043331,"end_time":"2021-12-22T10:54:00.954557","exception":false,"start_time":"2021-12-22T10:54:00.911226","status":"completed"},"tags":[]}},{"cell_type":"markdown","source":"#### Table Of Content\n\n1. [📝 Introduction](#introduction)\n\n2. [📑 Table Of Content](#outline) \n\n3. [🤿 Diving into the Data](#diving) \n\n4. [📚 Imports](#imports) \n\n5. [🎚️ Configurations](#config) \n\n6. [🗃️ Data Loading](#loading)  \n\n7. [🔬 Feature Engineering](#features)  \n\n8. [⚙️ Configure The Model](#modelconf)\n\n9. [🏋️ Training](#training)\n\n10. [🇰 Submit to Kaggle](#submit)","metadata":{"_cell_guid":"d70815a1-3398-43b2-be85-2230fffd89a9","_uuid":"e9b980c5-036c-4e25-992b-115169a95ba4","papermill":{"duration":0.043724,"end_time":"2021-12-22T10:54:01.044507","exception":false,"start_time":"2021-12-22T10:54:01.000783","status":"completed"},"tags":[]}},{"cell_type":"markdown","source":"# <span class=\"title-section w3-xxlarge\" id=\"outline\">Diving into the Data 🤿</span>\n<hr >","metadata":{"_cell_guid":"310c5bce-3fab-4a82-b70e-d5e8a0e5e594","_uuid":"ce509f90-2ae9-4ea3-94ad-39479b72ca12","papermill":{"duration":0.043703,"end_time":"2021-12-22T10:54:01.132575","exception":false,"start_time":"2021-12-22T10:54:01.088872","status":"completed"},"tags":[]}},{"cell_type":"markdown","source":"\n#### **<span>Dataset Structure</span>**\n\n> **train.csv** - The training set\n> \n> 1.  timestamp - A timestamp for the minute covered by the row.\n> 2.  Asset_ID - An ID code for the cryptoasset.\n> 3.  Count - The number of trades that took place this minute.\n> 4.  Open - The USD price at the beginning of the minute.\n> 5.  High - The highest USD price during the minute.\n> 6.  Low - The lowest USD price during the minute.\n> 7.  Close - The USD price at the end of the minute.\n> 8.  Volume - The number of cryptoasset u units traded during the minute.\n> 9.  VWAP - The volume-weighted average price for the minute.\n> 10. Target - 15 minute residualized returns. See the 'Prediction and Evaluation section of this notebook for details of how the target is calculated.\n> 11. Weight - Weight, defined by the competition hosts [here](https://www.kaggle.com/cstein06/tutorial-to-the-g-research-crypto-competition)\n> 12. Asset_Name - Human readable Asset name.\n> \n>\n> **example_test.csv** - An example of the data that will be delivered by the time series API.\n> \n> **example_sample_submission.csv** - An example of the data that will be delivered by the time series API. The data is just copied from train.csv.\n> \n> **asset_details.csv** - Provides the real name and of the cryptoasset for each Asset_ID and the weight each cryptoasset receives in the metric.\n> \n> **supplemental_train.csv** - After the submission period is over this file's data will be replaced with cryptoasset prices from the submission period. In the Evaluation phase, the train, train supplement, and test set will be contiguous in time, apart from any missing data. The current copy, which is just filled approximately the right amount of data from train.csv is provided as a placeholder.\n>\n> - 📌 There are 14 coins in the dataset\n>\n> - 📌 There are 4 years  in the [full] dataset","metadata":{"_cell_guid":"ca6da936-954f-427b-af0c-f04517c4d4ed","_uuid":"a91494a0-a071-49e5-bcc0-9c7b7566ad75","papermill":{"duration":0.0439,"end_time":"2021-12-22T10:54:01.221177","exception":false,"start_time":"2021-12-22T10:54:01.177277","status":"completed"},"tags":[]}},{"cell_type":"code","source":"css_file = '''\ndiv #notebook {\nbackground-color: white;\nfont-family: 'Open Sans', Helvetica, sans-serif;\nline-height: 20px;\n}\n\n#notebook-container {\nmargin-top: 2em;\npadding-top: 2em;\nborder-top: 4px solid %s; /* light orange */\n-webkit-box-shadow: 0px 0px 8px 2px rgba(224, 212, 226, 0.5); /* pink */\n    box-shadow: 0px 0px 8px 2px rgba(224, 212, 226, 0.5); /* pink */\n}\n\ndiv .input {\nmargin-bottom: 1em;\n}\n\n.rendered_html h1, .rendered_html h2, .rendered_html h3, .rendered_html h4, .rendered_html h5, .rendered_html h6 {\ncolor: %s; /* light orange */\nfont-weight: 600;\n}\n\n.rendered_html code {\n    background-color: #efefef; /* light gray */\n}\n\n.CodeMirror {\ncolor: #8c8c8c; /* dark gray */\npadding: 0.7em;\n}\n\ndiv.input_area {\nborder: none;\n    background-color: %s; /* rgba(229, 143, 101, 0.1); light orange [exactly #E58F65] */\n    border-top: 2px solid %s; /* light orange */\n}\n\ndiv.input_prompt {\ncolor: %s; /* light blue */\n}\n\ndiv.output_prompt {\ncolor: %s; /* strong orange */\n}\n\ndiv.cell.selected:before, div.cell.selected.jupyter-soft-selected:before {\nbackground: %s; /* light orange */\n}\n\ndiv.cell.selected, div.cell.selected.jupyter-soft-selected {\n    border-color: %s; /* light orange */\n}\n\n.edit_mode div.cell.selected:before {\nbackground: %s; /* light orange */\n}\n\n.edit_mode div.cell.selected {\nborder-color: %s; /* light orange */\n\n}\n'''\ndef to_rgb(h): return tuple(int(h[i:i+2], 16) for i in (0, 2, 4))\nmain_color_rgba = 'rgba(%s, %s, %s, 0.1)' % (to_rgb(main_color[1:])[0], to_rgb(main_color[1:])[1], to_rgb(main_color[1:])[2])\nopen('notebook.css', 'w').write(css_file % (main_color, main_color, main_color_rgba, main_color,  prompt, strong_main_color, main_color, main_color, main_color, main_color))\nfrom IPython.core.display import display, HTML, Javascript\ndef nb(): return HTML(\"<style>\" + open(\"notebook.css\", \"r\").read() + \"</style>\")\nnb()","metadata":{"_cell_guid":"75405d52-594f-4791-a45a-16354bc24cfa","_kg_hide-input":true,"_kg_hide-output":true,"_uuid":"775496bb-f633-46f4-a642-10e6cd29c1bb","collapsed":false,"jupyter":{"outputs_hidden":false},"papermill":{"duration":0.063682,"end_time":"2021-12-22T10:54:01.330369","exception":false,"start_time":"2021-12-22T10:54:01.266687","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T12:58:43.916375Z","iopub.execute_input":"2021-12-28T12:58:43.916828Z","iopub.status.idle":"2021-12-28T12:58:43.947863Z","shell.execute_reply.started":"2021-12-28T12:58:43.916773Z","shell.execute_reply":"2021-12-28T12:58:43.946137Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from IPython.core.display import display, HTML, Javascript\n# def nb(): return HTML(\"<style>\" + open(\"../input/starter-utils/css_oranges.css\", \"r\").read() + \"</style>\")\ndef nb(): return HTML(\"<style>\" + open(\"notebook.css\", \"r\").read() + \"</style>\")\nnb()","metadata":{"_cell_guid":"75d3e80e-0c31-48f5-88dd-5b6a3c79cf38","_kg_hide-input":true,"_kg_hide-output":true,"_uuid":"968efaca-ede8-4817-b3aa-baedaba3205e","collapsed":false,"jupyter":{"outputs_hidden":false},"papermill":{"duration":0.119196,"end_time":"2021-12-22T10:54:01.496668","exception":false,"start_time":"2021-12-22T10:54:01.377472","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T12:58:43.976722Z","iopub.execute_input":"2021-12-28T12:58:43.97705Z","iopub.status.idle":"2021-12-28T12:58:43.986729Z","shell.execute_reply.started":"2021-12-28T12:58:43.977018Z","shell.execute_reply":"2021-12-28T12:58:43.985376Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"\n<center>\n    <span class=\"title-section w3-xxlarge\" id=\"codebook\"> Transformer-based Multivariate Time Series Representation Learning </span>\n    <h4> https://arxiv.org/abs/2010.02803</h4>\n    <hr>\n</center>\n\n\nThis is a simple starter notebook for Kaggle's Crypto Comp showing the usage of Time Series Transformer model from the paper \"Transformer-based Multivariate Time Series Representation Learning\" with Keras. There are many configuration variables below to allow you to experiment. Use either GPU or TPU. You can control which years are loaded, which neural networks are used, and whether to use feature engineering. You can experiment with different data preprocessing, model architecture, loss, optimizers, and learning rate schedules. The extra datasets contain the full history of the assets at the same format of the competition, so you can input that into your model too.\n\n\nThe main difference is that this notebook supports training end2end and, well.. that it uses tf-keras rather then pytroch-lightning of the original implementation.\n\nThis notebook implements Transformer Encoder model for learning the representation of time series dataset in G-Research Crypto prediction competition. A **masking probability of 15%** is applied to sampled sequences features independently at random in geometric distribution. It learns to attend both to preceding and succeeding segments in individual features, as well as the inter-dependencies between features.\n\nThe model is trained with keras for about 1,000 epochs using combined training and test sets. The loss function is **masked MSE loss** trained with masking noise end2end to the targets. \nYou could play around the hyperparameters for a larger model or using more hand-crafted features as the input.\n\n\n<!-- ![Multivariate Time Series Transformer Framework](https://storage.googleapis.com/kaggle-markpeng/GoogleBrainVentilator/mvts_transformer_architecture.png) -->\n\n<img src=\"https://storage.googleapis.com/kaggle-markpeng/GoogleBrainVentilator/mvts_transformer_architecture.png\" alt=\"Multivariate Time Series Transformer Framework\" width=\"800\"/>\n\n<div align=\"center\">\n    Source: <a href=\"https://arxiv.org/abs/2010.02803\" target=\"_blank\">https://arxiv.org/abs/2010.02803</a>\n</div>\n\n<br/>\n\n**Reference:**\n\nGeorge Zerveas _et al._ (2021). \"_A Transformer-based Framework for Multivariate Time Series Representation Learning_,\" Proceedings of the 27th ACM SIGKDD Conference on Knowledge Discovery and Data Mining (KDD '21).\n\n**ArXiV paper:** https://arxiv.org/abs/2010.02803\n\n**Github Repository:** https://github.com/gzerveas/mvts_transformer\n\n**The Sequence Model:**\n\nThis notebook follows the ideas presented in my \"Initial Thoughts\" [here][1].\n\n[1]: https://www.kaggle.com/c/g-research-crypto-forecasting/discussion/284903\n\n\n**Time Series Modeling**:\n\nThe Basic idea of Time Series modeling with Deep learning  is to re-arrange the data into windows of sequences, and labels. \nFor this example, we will use a window or a sequence of `WINDOW_SIZE` samples (`WINDOW_SIZE` minutes).\nSo the data should look like this series.\n","metadata":{"papermill":{"duration":0.045091,"end_time":"2021-12-22T10:54:01.588545","exception":false,"start_time":"2021-12-22T10:54:01.543454","status":"completed"},"tags":[]}},{"cell_type":"markdown","source":"![TS3.JPG](data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4RDQRXhpZgAATU0AKgAAAAgABAE7AAIAAAADSFAAAIdpAAQAAAABAAAISpydAAEAAAAGAAAQwuocAAcAAAgMAAAAPgAAAAAc6gAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFkAMAAgAAABQAABCYkAQAAgAAABQAABCskpEAAgAAAAMxOQAAkpIAAgAAAAMxOQAA6hwABwAACAwAAAiMAAAAABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAyMDowNDoyMyAxMzoyODo1MgAyMDIwOjA0OjIzIDEzOjI4OjUyAAAASABQAAAA/+ELFWh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6ZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+PHhtcDpDcmVhdGVEYXRlPjIwMjAtMDQtMjNUMTM6Mjg6NTIuMTg1PC94bXA6Q3JlYXRlRGF0ZT48L3JkZjpEZXNjcmlwdGlvbj48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRjOmNyZWF0b3I+PHJkZjpTZXEgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj48cmRmOmxpPkhQPC9yZGY6bGk+PC9yZGY6U2VxPg0KCQkJPC9kYzpjcmVhdG9yPjwvcmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L3g6eG1wbWV0YT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD94cGFja2V0IGVuZD0ndyc/Pv/bAEMABwUFBgUEBwYFBggHBwgKEQsKCQkKFQ8QDBEYFRoZGBUYFxseJyEbHSUdFxgiLiIlKCkrLCsaIC8zLyoyJyorKv/bAEMBBwgICgkKFAsLFCocGBwqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKv/AABEIAeIDbAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APpGiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo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HxnJcxy61FKqhAu3EPk7SQYgvAOSfXqK9OrlvCngpvD+ranrWqarLrGtaoI1ubt4liUIgwqJGvCqM+pJ7mupoAKKKKACiiigAooooAKKKRgShCnaSODjOKAPNPi7eSeI7FPh1oIW41jWtjXB6rY2qupaaT0HAAHfPHbM3ibwxrml+K/C/iLwrYR6xHo1nJYTWDzrDI8bKoDozfLuGOckcfXjN0H4UeMvDlzf3WnfEWE3eozedd3U+gJJLM3bLNLnA7KOB2FdfqugeK7zS9Mj0zxn/Z9/axlLu5/suOWO8JC/MYyfkwQSNrfxHrQBxOnXur6l+0fp1xqWiro0/wDwjswkt/tSTymHzhtZyg2r85wAGbp2r1+uV8I+Bx4cv77VtT1W41vXNRCrc6hcIqfIv3URF4RR1wO9dVQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB5h8Q/C/xC8WXcFtpn/CMxaZY6jBf2rXE9wJnMXIDgIVwST07V32gnWzo8Z8TrYJqWW8wacztDjPy4LgN0xnjrWjRQB5n8S/BvjPxb4g03+ypdDuPD1mFml0zUppkW5nBODII0O5B8pC5AznINdX4XPjIyXA8ZRaFHGFX7P8A2TJMxzzu3eYowOmMe9dDRQBjeKLbxFcabEfCN/ZWd/FMJCL6AyQzptYGNtpDLyQdy8/LjvXJWngzxZr/AI30jxB4+vdISLRPMeysNIWQq0jjBd3kweB0AHYe+fRqKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKo6zqiaNpE+oTRvLHAAzJH94jIBx6nnpVizvLfULOK7spVmglXcjr0I/z27U7O1xXV7E1FFFIYUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUVW1KZ7fSbuaFtskcDupxnBCkihagWaK57wn4qi8RWKrOq2+oxxq00APBB/jT1U/mDwexPQ1UouD5WJNSV0FFFFSMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC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5E/CvwWxJOiISepM8v8A8VXXUUShGfxK4oVJ03eDa9DO0TQNM8OWLWei2otbdpDIUDs3zEAE/MT2Aqnrngvw/wCJLxLrW9OW6mjjEasZXXC5JxhSB1Jrdop8kWuVrQFOSlzp69znNJ8AeGND1KLUNK0tbe6izskEshxkEHgsR0JrS1vQNM8R2K2etWourdZBIELsvzAEA/KR2JrRopKEEuVLQHUnKXM279zkR8K/BYII0RAR0Inl/wDiq66iiiMIw+FWCdSdR3m2/UKKKKsgKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK5nxN8P9B8Y3sU3iWK5voYYtiWbXTpADknfsUjLc4yc9BXTV5V8XPEWv/brXwvpOja//AGXexb9T1bStPe5dYiSDDFgYDtjkk/KCMA5oAX4GmVLLxPa2d1Pc+H7TWZYNIeaQuBEvUIx6oDjH4+9avxJ07wFJNaXvxIv2S1MbRW9pPdSJAzDksEQjc+CBk56DFaPgHWNNutM/sjRPDOtaBZadEqxR6lpzWysCT90t945BJPXnJ60/xJ4zuvDmrfZp/CWuanYSRBkvNKtxdDcSQUaMEMuMDnkHNAHN/AuOVfDery2k08nh6XU5W0NLiUu6W3GOpJUZ6A89Setd94g1yy8NeHr3WdUfZa2URlkI6nHRR6knAA9SK4T4VaJqcHiLxZ4hudIm8P6ZrVzE9jpM2FZNiEPKyAkIznkj+YANb3xB8GX3jSx0230/XBpJsb1Lw77MXKTMn3AyFlBAPODkcDigDzrwVpuqW3x8s9W8RM41bW9AmvbmBjxbAzKI4R/uIqg++a9zrxb/AIRDx/H8btMu7rxQ10qaSwfVF0JUhCecCbcgOVDN13ZyPSvaaACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACuS8R6N411bU5P7B8V22gWKRjyhHpy3MskncuZDgL7KM+9dbXmvxE+IC2+qr4J8Pala2WtXiZur+5mWOPTIDjMhLEbpCD8qDnkE4HUAzNK+LGrQfAzW/FWtW1vNqmjXMliTECIp5A6Ir46hcyDPToelT+INT8b/D7StP8AEuueJYNZsftMMWqWJsY4UhSRgpeF1+b5SR94nPXitzT9D8B2nwrn8OpfWN14ct4PLvJvtSEZJyXd1PysW+bPGDjGMV5r450LQ9S0rTvB3h3xpq/iW91O6hhgsm1RLiK0gVwzyuIwMqqrgby3qORkAH0JRRRQAUUUUAFFFFABRRRQAUUUUAcx4l+I/hPwheC08QazHbXJTzDCkTzOqf3mWNWKj3OBWtp3iDSNW0Fda07UbefTGjaT7WJAIwq/eJJ6Ywc5xjHNZHijU9W0KR7nw54Mk12eeImaaG4ggOV4VW3kM3HoDXi0j21n+zDqdlp12zXN1rAh1SFIjCbKSSdfMh2HlQAAvvn8KAPYdI+LHgjXtai0rS9fhmvJmKwo0UiLKR2R2UKx+hNdhXl3x3sbbTvgrc3NjCkEmiTWk1gUXHkMsyINvphWIr1GgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKxNR8F+FtYvnvdW8NaRfXcmA89zYRSSNgYGWZSTgACtuigDMsPDOg6VZT2el6Jp1la3P+vgt7SONJeMfMoAB49aXSvDmh6C0h0PRtP00y/wCsNnapDv8ArtAzWlRQAUUUUAFFFFABRRRQAUUUUAFFFFAHHa5b/EaHXLmbwve+HbnTZ9pit9VimR7YhQDho87wSC3OD82M4FYdr8IBcfDzxDoniDVBdap4iuWvbu/ih2rHPkMmxM/dUqOMjPPTPHptFAHl8/grx54sh0/SfHuqaIdFs5457g6akpn1AxnKrJvAVASATtz7Yr1CiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi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7VKhSrKXwwIAr3yijmXYLPueHaV4V8ZW1w82rR31/lNqRR28MMa89cbySfx/Cm+GfBGueHNDTThpV7c7ZJJPM2xpncxbGPMPTOK9zoo5l2Cz7nzVr/hLVNa8TRagmrtpz6cTHHZ3FkswikHV/v4zyOe2K6Lwl4e8RX+ozWVzrCaiSEL3AslhW0XnJOGO5m4wvtnpW4dLvNc8Z6vZaeNm28cz3DLlYFOOfdj2X8+K9K0nSbTRdPSzsE2xryzMctIx6sx7k/54qpJRYk20Gk6TaaLp6Wdgm2NeWZjlpGPVmPcn/PFXaKKzbvuWFFFFIAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAiitoIZppYYkSS4YPK6jBchQoJ9eAB+FS0UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBFBaw2okFvGsfmSNI+B95j1J9T/APWFS0UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH/2Q==)","metadata":{"papermill":{"duration":0.044539,"end_time":"2021-12-22T10:54:01.679634","exception":false,"start_time":"2021-12-22T10:54:01.635095","status":"completed"},"tags":[]}},{"cell_type":"markdown","source":"We create a sliding window which builds sequences and labels.\nIn our case, we have sequences of `WINDOW_SIZE` minutes, that will use to predict the next 15 minutes (from the competition tutorial).\n\n**The Time series modeling framework:**\n\n* Fill gaps in the training set like it describer in the competition tutorial notebook;\n* Use `TimeseriesGenerator` like generator class to build the dataset;\n* Build the model. Simplified  structure:\n    - Lambda layer needed for assets separation;\n    - Masking layer. Generated records (filled gaps) has zeros as features values, so they are not used in the computations.\n    - Our sequence model architecture\n    - Concatenation layer\n    - Dense layer\n\nBecause of the nature of this competition, we will implement the idea of using the parallel sequence model branches. One for for each asset to then use the represenation learned to output a vector of targets for each timestep.\n\n\n![](https://i.ibb.co/GvPMTLJ/lstm.png)\n\n\n>Credit: Intro and Images are edited from: https://www.kaggle.com/omershect/learning-pytorch-lstm-deep-learning-with-m5-data\n\n\n","metadata":{"papermill":{"duration":0.044777,"end_time":"2021-12-22T10:54:01.770066","exception":false,"start_time":"2021-12-22T10:54:01.725289","status":"completed"},"tags":[]}},{"cell_type":"markdown","source":"____\n**Credits:**\nThe following notebook is heavily based on the following notebooks. If you find it useful, spare some upvotes to the originals. They earned it! \n- \"[G-Research] Parallel LSTM training\"  by DEVOLNYX - https://www.kaggle.com/vmuzhichenko/g-research-parallel-lstm-training\n\n____","metadata":{"papermill":{"duration":0.046064,"end_time":"2021-12-22T10:54:01.861808","exception":false,"start_time":"2021-12-22T10:54:01.815744","status":"completed"},"tags":[]}},{"cell_type":"markdown","source":"# <span class=\"title-section w3-xxlarge\" id=\"outline\">Libraries 📚</span>\n<hr>","metadata":{"_cell_guid":"347324aa-490a-4556-bcc4-36379bdbec7c","_uuid":"03824ce3-fc08-4d19-926d-27edbb773466","papermill":{"duration":0.04451,"end_time":"2021-12-22T10:54:01.951737","exception":false,"start_time":"2021-12-22T10:54:01.907227","status":"completed"},"tags":[]}},{"cell_type":"markdown","source":"#### Code starts here ⬇","metadata":{"_cell_guid":"f5bdcf7b-aa74-4204-9ff2-f20042b819e0","_uuid":"78d84509-539f-4a94-a546-e228b28ea70a","papermill":{"duration":0.04568,"end_time":"2021-12-22T10:54:02.044784","exception":false,"start_time":"2021-12-22T10:54:01.999104","status":"completed"},"tags":[]}},{"cell_type":"code","source":"import os\nimport gc\nimport traceback\nimport numpy as np\nimport pandas as pd\nimport seaborn as sns\nimport gresearch_crypto\nimport tensorflow as tf\nfrom tensorflow import keras\nimport matplotlib.pyplot as plt\nimport pandas as pd, numpy as np\nfrom tensorflow.keras import layers\nimport tensorflow_probability as tfp\nimport tensorflow.keras.backend as K\nfrom sklearn.model_selection import KFold\nfrom sklearn.metrics import mean_squared_error\nfrom sklearn.preprocessing import RobustScaler\nfrom tensorflow.keras.preprocessing.sequence import TimeseriesGenerator\npd.set_option('display.max_columns', None)","metadata":{"papermill":{"duration":10.36398,"end_time":"2021-12-22T10:54:12.454406","exception":false,"start_time":"2021-12-22T10:54:02.090426","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T12:58:43.989939Z","iopub.execute_input":"2021-12-28T12:58:43.990703Z","iopub.status.idle":"2021-12-28T12:58:46.452062Z","shell.execute_reply.started":"2021-12-28T12:58:43.990658Z","shell.execute_reply":"2021-12-28T12:58:46.451083Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# <span class=\"title-section w3-xxlarge\" id=\"config\">Configuration 🎚️</span>\n<hr>\n\n### General COnfiguration \n* DEVICE - is GPU or TPU\n* SEED - a different seed produces a different triple stratified kfold split.\n* FOLDS - number of folds. Best set to 3, 5, or 15 but can be any number between 2 and 15\n* LOAD_STRICT - This controls whether to load strict at proposed [here](https://www.kaggle.com/julian3833/proposal-for-a-meaningful-lb-strict-lgbm)\n* INC2021 - This controls whether to include the extra historical prices during 2021.\n* INC2020 - This controls whether to include the extra historical prices during 2020.\n* INC2019 - This controls whether to include the extra historical prices during 2019.\n* INC2018 - This controls whether to include the extra historical prices during 2018.\n* INC2017 - This controls whether to include the extra historical prices during 2017.\n* INCCOMP - This controls whether to include the original data of the competition.\n* INCSUPP - This controls whether to include the supplemented train data that was released with the competition.\n\n### Architecture Configuration\n\n* N_HEADS = This controls the number of transoformer heads \n* D_MODEL = This controls the dimension of the model\n* DROPOUT = This controls the dropout rate of the model\n* FREEZE = This controls whether to use dropout in the model\n* ACTIVATION = This controls what activation function to use\n* DIM_FEEDFORWARD - This controls the feedforward dimension in the model\n","metadata":{"papermill":{"duration":0.050436,"end_time":"2021-12-22T10:54:12.552333","exception":false,"start_time":"2021-12-22T10:54:12.501897","status":"completed"},"tags":[]}},{"cell_type":"code","source":"DEVICE =  \"GPU\"\n\n# USE DIFFERENT SEED FOR DIFFERENT STRATIFIED KFOLD\nSEED = 42\n\n# LOAD STRICT? | see: https://www.kaggle.com/julian3833/proposal-for-a-meaningful-lb-strict-lgbm\nLOAD_STRICT = True\n\n# WHICH YEARS TO INCLUDE? YES=1 NO=0\nINC2021 = 0\nINC2020 = 0\nINC2019 = 0\nINC2018 = 0\nINC2017 = 0\nINCCOMP = 1\nINCSUPP = 0\n\n# ARCHITECTURE HYPER PARAMETERS\nN_HEADS = 8\nD_MODEL = 128\nDROPOUT = 0.1\nFREEZE = False\nACTIVATION = 'gelu'\nDIM_FEEDFORWARD = 256\n    \nEPOCHS = 1\nDEBUG = True\nN_ASSETS = 14\nWINDOW_SIZE = 15\nBATCH_SIZE = 2048\nPCT_VALIDATION = 10 # last 10% of the data are used as validation set","metadata":{"papermill":{"duration":0.058822,"end_time":"2021-12-22T10:54:12.659008","exception":false,"start_time":"2021-12-22T10:54:12.600186","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T12:58:46.453436Z","iopub.execute_input":"2021-12-28T12:58:46.453756Z","iopub.status.idle":"2021-12-28T12:58:46.464836Z","shell.execute_reply.started":"2021-12-28T12:58:46.453714Z","shell.execute_reply":"2021-12-28T12:58:46.463317Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"if DEVICE == \"TPU\":\n    print(\"connecting to TPU...\")\n    try:\n        tpu = tf.distribute.cluster_resolver.TPUClusterResolver()\n        print('Running on TPU ', tpu.master())\n    except ValueError:\n        tpu = None\n    if tpu:\n        try:\n            print(\"initializing  TPU ...\")\n            tf.config.experimental_connect_to_cluster(tpu)\n            tf.tpu.experimental.initialize_tpu_system(tpu)\n            strategy = tf.distribute.experimental.TPUStrategy(tpu)\n            print(\"TPU initialized\")\n        except: print(\"failed to initialize TPU\")\n    else: DEVICE = \"GPU\"\n\nif DEVICE != \"TPU\": strategy = tf.distribute.get_strategy()\nif DEVICE == \"GPU\": print(\"Num GPUs Available: \", len(tf.config.experimental.list_physical_devices('GPU')))\nAUTO     = tf.data.experimental.AUTOTUNE\nREPLICAS = strategy.num_replicas_in_sync","metadata":{"_kg_hide-input":true,"papermill":{"duration":0.076436,"end_time":"2021-12-22T10:54:12.780319","exception":false,"start_time":"2021-12-22T10:54:12.703883","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T12:58:46.466355Z","iopub.execute_input":"2021-12-28T12:58:46.467286Z","iopub.status.idle":"2021-12-28T12:58:46.678271Z","shell.execute_reply.started":"2021-12-28T12:58:46.467239Z","shell.execute_reply":"2021-12-28T12:58:46.677242Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# <span class=\"title-section w3-xxlarge\" id=\"loading\">Data Loading 🗃️</span>\n<hr>\n\nThe data organisation has already been done and saved to Kaggle datasets. Here we choose which years to load. We can use either 2017, 2018, 2019, 2020, 2021, Original, Supplement by changing the `INC2021`, `INC2020`, `INC2019`, `INC2018`, `INC2017`, `INCCOMP`, `INCSUPP` variables in the preceeding code section. These datasets are discussed [here][1].\n\n[1]: https://www.kaggle.com/c/g-research-crypto-forecasting/discussion/285726\n","metadata":{"papermill":{"duration":0.045587,"end_time":"2021-12-22T10:54:12.871872","exception":false,"start_time":"2021-12-22T10:54:12.826285","status":"completed"},"tags":[]}},{"cell_type":"code","source":"import datatable as dt\nextra_data_files = {0: '../input/cryptocurrency-extra-data-binance-coin', 2: '../input/cryptocurrency-extra-data-bitcoin-cash', 1: '../input/cryptocurrency-extra-data-bitcoin', 3: '../input/cryptocurrency-extra-data-cardano', 4: '../input/cryptocurrency-extra-data-dogecoin', 5: '../input/cryptocurrency-extra-data-eos-io', 6: '../input/cryptocurrency-extra-data-ethereum', 7: '../input/cryptocurrency-extra-data-ethereum-classic', 8: '../input/cryptocurrency-extra-data-iota', 9: '../input/cryptocurrency-extra-data-litecoin', 11: '../input/cryptocurrency-extra-data-monero', 10: '../input/cryptocurrency-extra-data-maker', 12: '../input/cryptocurrency-extra-data-stellar', 13: '../input/cryptocurrency-extra-data-tron'}\n\n# Uncomment to load the original csv [slower]\n# orig_df_train = pd.read_csv(data_path + 'train.csv') \n# supp_df_train = pd.read_csv(data_path + 'supplemental_train.csv')\n# df_asset_details = pd.read_csv(data_path  + 'asset_details.csv').sort_values(\"Asset_ID\")\n\norig_df_train = dt.fread('../input/cryptocurrency-extra-data-binance-coin/orig_train.jay').to_pandas()\ndf_asset_details = dt.fread('../input/cryptocurrency-extra-data-binance-coin/orig_asset_details.jay').to_pandas()\nsupp_df_train = dt.fread('../input/cryptocurrency-extra-data-binance-coin/orig_supplemental_train.jay').to_pandas()\nassets_details = dt.fread('../input/cryptocurrency-extra-data-binance-coin/orig_asset_details.jay').to_pandas()\nasset_weight_dict = {assets_details['Asset_ID'].tolist()[idx]: assets_details['Weight'].tolist()[idx] for idx in range(len(assets_details))}\nasset_name_dict = {assets_details['Asset_ID'].tolist()[idx]: assets_details['Asset_Name'].tolist()[idx] for idx in range(len(assets_details))}\n\ndef load_training_data_for_asset(asset_id, load_jay = True):\n    dfs = []\n    if INCCOMP: dfs.append(orig_df_train[orig_df_train[\"Asset_ID\"] == asset_id].copy())\n    if INCSUPP: dfs.append(supp_df_train[supp_df_train[\"Asset_ID\"] == asset_id].copy())\n    \n    if load_jay:\n        if INC2017 and os.path.exists(extra_data_files[asset_id] + '/full_data__' + str(asset_id) + '__' + str(2017) + '.csv'): dfs.append(dt.fread(extra_data_files[asset_id] + '/full_data__' + str(asset_id) + '__' + str(2017) + '.jay').to_pandas())\n        if INC2018 and os.path.exists(extra_data_files[asset_id] + '/full_data__' + str(asset_id) + '__' + str(2018) + '.csv'): dfs.append(dt.fread(extra_data_files[asset_id] + '/full_data__' + str(asset_id) + '__' + str(2018) + '.jay').to_pandas())\n        if INC2019 and os.path.exists(extra_data_files[asset_id] + '/full_data__' + str(asset_id) + '__' + str(2019) + '.csv'): dfs.append(dt.fread(extra_data_files[asset_id] + '/full_data__' + str(asset_id) + '__' + str(2019) + '.jay').to_pandas())\n        if INC2020 and os.path.exists(extra_data_files[asset_id] + '/full_data__' + str(asset_id) + '__' + str(2020) + '.csv'): dfs.append(dt.fread(extra_data_files[asset_id] + '/full_data__' + str(asset_id) + '__' + str(2020) + '.jay').to_pandas())\n        if INC2021 and os.path.exists(extra_data_files[asset_id] + '/full_data__' + str(asset_id) + '__' + str(2021) + '.csv'): dfs.append(dt.fread(extra_data_files[asset_id] + '/full_data__' + str(asset_id) + '__' + str(2021) + '.jay').to_pandas())\n    else: \n        if INC2017 and os.path.exists(extra_data_files[asset_id] + '/full_data__' + str(asset_id) + '__' + str(2017) + '.csv'): dfs.append(pd.read_csv(extra_data_files[asset_id] + '/full_data__' + str(asset_id) + '__' + str(2017) + '.csv'))\n        if INC2018 and os.path.exists(extra_data_files[asset_id] + '/full_data__' + str(asset_id) + '__' + str(2018) + '.csv'): dfs.append(pd.read_csv(extra_data_files[asset_id] + '/full_data__' + str(asset_id) + '__' + str(2018) + '.csv'))\n        if INC2019 and os.path.exists(extra_data_files[asset_id] + '/full_data__' + str(asset_id) + '__' + str(2019) + '.csv'): dfs.append(pd.read_csv(extra_data_files[asset_id] + '/full_data__' + str(asset_id) + '__' + str(2019) + '.csv'))\n        if INC2020 and os.path.exists(extra_data_files[asset_id] + '/full_data__' + str(asset_id) + '__' + str(2020) + '.csv'): dfs.append(pd.read_csv(extra_data_files[asset_id] + '/full_data__' + str(asset_id) + '__' + str(2020) + '.csv'))\n        if INC2021 and os.path.exists(extra_data_files[asset_id] + '/full_data__' + str(asset_id) + '__' + str(2021) + '.csv'): dfs.append(pd.read_csv(extra_data_files[asset_id] + '/full_data__' + str(asset_id) + '__' + str(2021) + '.csv'))\n    df = pd.concat(dfs, axis = 0) if len(dfs) > 1 else dfs[0]\n    df['date'] = pd.to_datetime(df['timestamp'], unit = 's')\n    if LOAD_STRICT: df = df.loc[df['date'] < \"2021-06-13 00:00:00\"]    \n    df = df.sort_values('date')\n    return df\n\ndef load_data_for_all_assets():\n    dfs = []\n    for asset_id in list(extra_data_files.keys()): dfs.append(load_training_data_for_asset(asset_id))\n    return pd.concat(dfs)","metadata":{"_kg_hide-input":true,"papermill":{"duration":20.912958,"end_time":"2021-12-22T10:54:33.830231","exception":false,"start_time":"2021-12-22T10:54:12.917273","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T12:58:46.681701Z","iopub.execute_input":"2021-12-28T12:58:46.682216Z","iopub.status.idle":"2021-12-28T12:59:09.248548Z","shell.execute_reply.started":"2021-12-28T12:58:46.682152Z","shell.execute_reply":"2021-12-28T12:59:09.247548Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train = load_data_for_all_assets().sort_values('timestamp').set_index(\"timestamp\")\nif DEBUG: train = train[10000000:]","metadata":{"papermill":{"duration":11.870349,"end_time":"2021-12-22T10:54:45.748519","exception":false,"start_time":"2021-12-22T10:54:33.87817","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T12:59:09.250295Z","iopub.execute_input":"2021-12-28T12:59:09.251005Z","iopub.status.idle":"2021-12-28T12:59:21.454147Z","shell.execute_reply.started":"2021-12-28T12:59:09.250959Z","shell.execute_reply":"2021-12-28T12:59:21.453168Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test = dt.fread('../input/cryptocurrency-extra-data-binance-coin/orig_example_test.jay').to_pandas()\nsample_prediction_df = dt.fread('../input/cryptocurrency-extra-data-binance-coin/orig_example_sample_submission.jay').to_pandas()\nassets = dt.fread('../input/cryptocurrency-extra-data-binance-coin/orig_asset_details.jay').to_pandas()\nassets_order = dt.fread('../input/cryptocurrency-extra-data-binance-coin/orig_supplemental_train.jay').to_pandas().Asset_ID[:N_ASSETS]\nassets_order = dict((t,i) for i,t in enumerate(assets_order))\nprint(\"Loaded all data!\")","metadata":{"papermill":{"duration":0.15317,"end_time":"2021-12-22T10:54:45.947517","exception":false,"start_time":"2021-12-22T10:54:45.794347","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T12:59:21.455815Z","iopub.execute_input":"2021-12-28T12:59:21.45611Z","iopub.status.idle":"2021-12-28T12:59:21.586206Z","shell.execute_reply.started":"2021-12-28T12:59:21.456069Z","shell.execute_reply":"2021-12-28T12:59:21.585176Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# <span class=\"title-section w3-xxlarge\" id=\"features\">Feature Engineering 🔬</span>\n<hr>\n\nThis notebook uses upper_shadow, lower_shadow, high_div_low, open_sub_close, seasonality/datetime features first shown in this notebook [here][1] and successfully used by julian3833 [here][2].\n\nAdditionally we can decide to use external data by changing the variables `INC2021`, `INC2020`, `INC2019`, `INC2018`, `INC2017`, `INCCOMP`, `INCSUPP` in the preceeding code section. These variables respectively indicate whether to load last year 2021 data and/or year 2020, 2019, 2018, 2017, the original, supplemented data. These datasets are discussed [here][3]\n\nConsider experimenting with different feature engineering and/or external data. The code to extract features out of the dataset is taken from julian3833' notebook [here][2]. Thank you julian3833, this is great work.\n\n[1]: https://www.kaggle.com/cstein06/tutorial-to-the-g-research-crypto-competition\n[2]: https://www.kaggle.com/julian3833\n[3]: TBD","metadata":{"papermill":{"duration":0.046477,"end_time":"2021-12-22T10:54:46.042802","exception":false,"start_time":"2021-12-22T10:54:45.996325","status":"completed"},"tags":[]}},{"cell_type":"code","source":"# Memory saving function credit to https://www.kaggle.com/gemartin/load-data-reduce-memory-usage\ndef reduce_mem_usage(df):\n    \"\"\" iterate through all the columns of a dataframe and modify the data type\n        to reduce memory usage.\n    \"\"\"\n    start_mem = df.memory_usage().sum() / 1024**2\n    print('Memory usage of dataframe is {:.2f} MB'.format(start_mem))\n\n    for col in df.columns:\n        col_type = df[col].dtype.name\n        \n        if col_type not in ['object', 'category', 'datetime64[ns, UTC]', 'datetime64[ns]']:\n            c_min = df[col].min()\n            c_max = df[col].max()\n            if str(col_type)[:3] == 'int':\n                if c_min > np.iinfo(np.int8).min and c_max < np.iinfo(np.int8).max:\n                    df[col] = df[col].astype(np.int16)\n                elif c_min > np.iinfo(np.int16).min and c_max < np.iinfo(np.int16).max:\n                    df[col] = df[col].astype(np.int16)\n                elif c_min > np.iinfo(np.int32).min and c_max < np.iinfo(np.int32).max:\n                    df[col] = df[col].astype(np.int32)\n                elif c_min > np.iinfo(np.int64).min and c_max < np.iinfo(np.int64).max:\n                    df[col] = df[col].astype(np.int64)  \n            else:\n                if c_min > np.finfo(np.float16).min and c_max < np.finfo(np.float16).max:\n                    df[col] = df[col].astype(np.float16)\n                elif c_min > np.finfo(np.float32).min and c_max < np.finfo(np.float32).max:\n                    df[col] = df[col].astype(np.float32)\n                else:\n                    df[col] = df[col].astype(np.float64)\n\n    end_mem = df.memory_usage().sum() / 1024**2\n    print('Memory usage after optimization is: {:.2f} MB'.format(end_mem))\n    print('Decreased by {:.1f}%'.format(100 * (start_mem - end_mem) / start_mem))\n\n    return df\n","metadata":{"_kg_hide-input":true,"_kg_hide-output":true,"papermill":{"duration":0.067201,"end_time":"2021-12-22T10:54:46.159487","exception":false,"start_time":"2021-12-22T10:54:46.092286","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T12:59:21.587645Z","iopub.execute_input":"2021-12-28T12:59:21.587969Z","iopub.status.idle":"2021-12-28T12:59:21.604981Z","shell.execute_reply.started":"2021-12-28T12:59:21.587925Z","shell.execute_reply":"2021-12-28T12:59:21.603619Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"from scipy.stats import pearsonr\nfrom sklearn.model_selection import train_test_split\n\ndef upper_shadow(df): return df['High'] - np.maximum(df['Close'], df['Open'])\ndef lower_shadow(df): return np.minimum(df['Close'], df['Open']) - df['Low']\n\ndef get_features(df, row = False):\n    df_feat = df\n    df_feat['spread'] = df_feat['High'] - df_feat['Low']\n    df_feat['mean_trade'] = df_feat['Volume']/df_feat['Count']\n    df_feat['log_price_change'] = np.log(df_feat['Close']/df_feat['Open'])\n    df_feat['upper_Shadow'] = upper_shadow(df_feat)\n    df_feat['lower_Shadow'] = lower_shadow(df_feat)\n    df_feat[\"high_div_low\"] = df_feat[\"High\"] / df_feat[\"Low\"]\n    df_feat['trade'] = df_feat['Close'] - df_feat['Open']\n    df_feat['gtrade'] = df_feat['trade'] / df_feat['Count']\n    df_feat['shadow1'] = df_feat['trade'] / df_feat['Volume']\n    df_feat['shadow3'] = df_feat['upper_Shadow'] / df_feat['Volume']\n    df_feat['shadow5'] = df_feat['lower_Shadow'] / df_feat['Volume']\n    df_feat['diff1'] = df_feat['Volume'] - df_feat['Count']\n    df_feat['mean1'] = (df_feat['shadow5'] + df_feat['shadow3']) / 2\n    df_feat['mean2'] = (df_feat['shadow1'] + df_feat['Volume']) / 2\n    df_feat['mean3'] = (df_feat['trade'] + df_feat['gtrade']) / 2\n    df_feat['mean4'] = (df_feat['diff1'] + df_feat['upper_Shadow']) / 2\n    df_feat['mean5'] = (df_feat['diff1'] + df_feat['lower_Shadow']) / 2\n#     df_feat['UPS'] = (df_feat['High'] - np.maximum(df_feat['Close'], df_feat['Open']))\n#     df_feat['UPS'] = df_feat['UPS']\n#     df_feat['LOS'] = (np.minimum(df_feat['Close'], df_feat['Open']) - df_feat['Low'])\n#     df_feat['LOS'] = df_feat['LOS']\n#     df_feat['RNG'] = ((df_feat['High'] - df_feat['Low']) / df_feat['VWAP'])\n#     df_feat['RNG'] = df_feat['RNG']\n#     df_feat['MOV'] = ((df_feat['Close'] - df_feat['Open']) / df_feat['VWAP'])\n#     df_feat['MOV'] = df_feat['MOV']\n#     df_feat['CLS'] = ((df_feat['Close'] - df_feat['VWAP']) / df_feat['VWAP'])\n#     df_feat['CLS'] = df_feat['CLS']\n#     df_feat['LOGVOL'] = np.log(1. + df_feat['Volume'])\n#     df_feat['LOGVOL'] = df_feat['LOGVOL']\n#     df_feat['LOGCNT'] = np.log(1. + df_feat['Count'])\n#     df_feat['LOGCNT'] = df_feat['LOGCNT']\n#     df_feat[\"Close/Open\"] = df_feat[\"Close\"] / df_feat[\"Open\"]\n#     df_feat[\"Close-Open\"] = df_feat[\"Close\"] - df_feat[\"Open\"]\n#     df_feat[\"High-Low\"] = df_feat[\"High\"] - df_feat[\"Low\"]\n#     df_feat[\"High/Low\"] = df_feat[\"High\"] / df_feat[\"Low\"]\n#     if row: df_feat['Mean'] = df_feat[['Open', 'High', 'Low', 'Close']].mean()\n#     else: df_feat['Mean'] = df_feat[['Open', 'High', 'Low', 'Close']].mean(axis = 1)\n#     df_feat[\"High/Mean\"] = df_feat[\"High\"] / df_feat[\"Mean\"]\n#     df_feat[\"Low/Mean\"] = df_feat[\"Low\"] / df_feat[\"Mean\"]\n#     df_feat[\"Volume/Count\"] = df_feat[\"Volume\"] / (df_feat[\"Count\"] + 1)\n#     mean_price = df_feat[['Open', 'High', 'Low', 'Close']].mean(axis=1)\n#     median_price = df_feat[['Open', 'High', 'Low', 'Close']].median(axis=1)\n#     df_feat['high2mean'] = df_feat['High'] / mean_price\n#     df_feat['low2mean'] = df_feat['Low'] / mean_price\n#     df_feat['high2median'] = df_feat['High'] / median_price\n#     df_feat['low2median'] = df_feat['Low'] / median_price\n#     df_feat['volume2count'] = df_feat['Volume'] / (df_feat['Count'] + 1)\n    return df_feat\n\ntrain[['Count', 'Open', 'High', 'Low', 'Close', 'Volume', 'VWAP', 'Target']] = train[['Count', 'Open', 'High', 'Low', 'Close', 'Volume', 'VWAP', 'Target']].astype(np.float32)\nprint(train.shape)\ntrain['Target'] = train['Target'].fillna(0)\nVWAP_max = np.max(train[np.isfinite(train.VWAP)].VWAP)\nVWAP_min = np.min(train[np.isfinite(train.VWAP)].VWAP)\ntrain['VWAP'] = np.nan_to_num(train.VWAP, posinf=VWAP_max, neginf=VWAP_min)\ndf = train[['Asset_ID', 'Target']].copy()\ntimes = dict((t,i) for i,t in enumerate(df.index.unique()))\ndf['id'] = df.index.map(times)\ndf['id'] = df['id'].astype(str) + '_' + df['Asset_ID'].astype(str)\nids = df.id.copy()\ndel df\ntrain = get_features(train)\ntrain_features = [i for i in train.columns if i not in ['Target', 'date', 'timestamp', 'Asset_ID', 'groups']]","metadata":{"papermill":{"duration":48.913967,"end_time":"2021-12-22T10:55:35.11973","exception":false,"start_time":"2021-12-22T10:54:46.205763","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T12:59:21.607245Z","iopub.execute_input":"2021-12-28T12:59:21.607794Z","iopub.status.idle":"2021-12-28T13:00:04.665764Z","shell.execute_reply.started":"2021-12-28T12:59:21.607751Z","shell.execute_reply":"2021-12-28T13:00:04.6648Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# <span class=\"title-section w3-xxlarge\" id=\"modelconf\">Building a Time Series Model ⚙️</span>\n<hr> \n\nThis is a common model architecute. Consider experimenting with different backbones, custom heads, losses, and optimizers.","metadata":{"papermill":{"duration":0.05022,"end_time":"2021-12-22T10:55:35.222334","exception":false,"start_time":"2021-12-22T10:55:35.172114","status":"completed"},"tags":[]}},{"cell_type":"markdown","source":"### Load and prepare the data","metadata":{"papermill":{"duration":0.050387,"end_time":"2021-12-22T10:55:35.32317","exception":false,"start_time":"2021-12-22T10:55:35.272783","status":"completed"},"tags":[]}},{"cell_type":"code","source":"train = train.sort_index()\nind = train.index.unique()\ndef reindex(df):\n    df = df.reindex(range(ind[0],ind[-1]+60,60),method='nearest')\n    df = df.fillna(method=\"ffill\").fillna(method=\"bfill\")\n    return df\ntrain = train.groupby('Asset_ID').apply(reindex).reset_index(0, drop=True).sort_index()\ngc.collect()\ntrain.shape","metadata":{"papermill":{"duration":29.107658,"end_time":"2021-12-22T10:56:04.482265","exception":false,"start_time":"2021-12-22T10:55:35.374607","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T13:00:04.671571Z","iopub.execute_input":"2021-12-28T13:00:04.674065Z","iopub.status.idle":"2021-12-28T13:00:22.331436Z","shell.execute_reply.started":"2021-12-28T13:00:04.674022Z","shell.execute_reply":"2021-12-28T13:00:22.330173Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Matching records and marking generated rows as 'non-real'\ntrain['group_num'] = train.index.map(times)\ntrain = train.dropna(subset=['group_num'])\ntrain['group_num'] = train['group_num'].astype('int')\ntrain['id'] = train['group_num'].astype(str) + '_' + train['Asset_ID'].astype(str)\ntrain['is_real'] = train.id.isin(ids) * 1\ntrain = train.drop('id', axis=1)","metadata":{"papermill":{"duration":56.991703,"end_time":"2021-12-22T10:57:01.525591","exception":false,"start_time":"2021-12-22T10:56:04.533888","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T13:00:22.3336Z","iopub.execute_input":"2021-12-28T13:00:22.334188Z","iopub.status.idle":"2021-12-28T13:01:15.360123Z","shell.execute_reply.started":"2021-12-28T13:00:22.334144Z","shell.execute_reply":"2021-12-28T13:01:15.359018Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Features values for 'non-real' rows are set to zeros\nfeatures = train.columns.drop(['Asset_ID','group_num','is_real'])\ntrain.loc[train.is_real == 0, features] = 0.","metadata":{"papermill":{"duration":77.011893,"end_time":"2021-12-22T10:58:18.587534","exception":false,"start_time":"2021-12-22T10:57:01.575641","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T13:02:47.274614Z","iopub.execute_input":"2021-12-28T13:02:47.275005Z","iopub.status.idle":"2021-12-28T13:04:07.183854Z","shell.execute_reply.started":"2021-12-28T13:02:47.274975Z","shell.execute_reply":"2021-12-28T13:04:07.182813Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train['asset_order'] = train.Asset_ID.map(assets_order)\ntrain = train.sort_values(by=['group_num', 'asset_order'])\ntrain = reduce_mem_usage(train)\ntrain.head(20)\ngc.collect()","metadata":{"papermill":{"duration":34.068249,"end_time":"2021-12-22T10:58:52.70325","exception":false,"start_time":"2021-12-22T10:58:18.635001","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T13:05:48.512278Z","iopub.execute_input":"2021-12-28T13:05:48.512931Z","iopub.status.idle":"2021-12-28T13:06:07.771893Z","shell.execute_reply.started":"2021-12-28T13:05:48.512897Z","shell.execute_reply":"2021-12-28T13:06:07.770841Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"targets = train['Target'].to_numpy().reshape(-1, N_ASSETS)\nfeatures = train.columns.drop(['Asset_ID', 'Target', 'group_num', 'is_real', 'date'])\ntrain = train[features]\ntrain = train.values\ntrain = train.reshape(-1, N_ASSETS, train.shape[-1])","metadata":{"papermill":{"duration":7.416721,"end_time":"2021-12-22T10:59:00.168429","exception":false,"start_time":"2021-12-22T10:58:52.751708","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T13:06:14.536041Z","iopub.execute_input":"2021-12-28T13:06:14.536536Z","iopub.status.idle":"2021-12-28T13:06:17.765827Z","shell.execute_reply.started":"2021-12-28T13:06:14.536341Z","shell.execute_reply":"2021-12-28T13:06:17.764778Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Dataset creation\nSamples with a duration of WINDOW_SIZE records (minutes) will be formed from the `train` array. Each sample has a target vector corresponding to the final index if WINDOW_SIZE record.\n![data.JPG](attachment:364826a2-fe7e-4ac8-89cb-5d1217ae2d02.JPG)","metadata":{"papermill":{"duration":0.04725,"end_time":"2021-12-22T10:59:00.263664","exception":false,"start_time":"2021-12-22T10:59:00.216414","status":"completed"},"tags":[]},"attachments":{"364826a2-fe7e-4ac8-89cb-5d1217ae2d02.JPG":{"image/jpeg":"/9j/4AAQSkZJRgABAQEAYABgAAD/4RDiRXhpZgAATU0AKgAAAAgABAE7AAIAAAALAAAISodpAAQAAAABAAAIVpydAAEAAAAMAAAQzuocAAcAAAgMAAAAPgAAAAAc6gAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANCh0LvQsNCy0LAAAAAFkAMAAgAAABQAABCkkAQAAgAAABQAABC4kpEAAgAAAAM4MAAAkpIAAgAAAAM4MAAA6hwABwAACAwAAAiYAAAAABzqAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAyMToxMTowNyAyMToyMDoxNgAyMDIxOjExOjA3IDIxOjIwOjE2AAAAIQQ7BDAEMgQwBAAA/+ELHWh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6ZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyI+PHhtcDpDcmVhdGVEYXRlPjIwMjEtMTEtMDdUMjE6MjA6MTYuNzk4PC94bXA6Q3JlYXRlRGF0ZT48L3JkZjpEZXNjcmlwdGlvbj48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRjOmNyZWF0b3I+PHJkZjpTZXEgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj48cmRmOmxpPtCh0LvQsNCy0LA8L3JkZjpsaT48L3JkZjpTZXE+DQoJCQk8L2RjOmNyZWF0b3I+PC9yZGY6RGVzY3JpcHRpb24+PC9yZGY6UkRGPjwveDp4bXBtZXRhPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3hwYWNrZXQgZW5kPSd3Jz8+/9sAQwAHBQUGBQQHBgUGCAcHCAoRCwoJCQoVDxAMERgVGhkYFRgXGx4nIRsdJR0XGCIuIiUoKSssKxogLzMvKjInKisq/9sAQwEHCAgKCQoUCwsUKhwYHCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq/8AAEQgBvgRSAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A+kaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAIrq4FpZzXLqzrDG0hVMZIAzgZwM037RJ5zJ9km2gZD5TB46fez7dKL7zBp9x5LBZPKbYzEAA4ODzxVbXb+80zRLm903Tm1O4hTetokojaXHUAnjOO3ek3ZXY0r6E/2qbyt/2C43bsbN0ecev38Y/GnfaJPOVPsk20jJfKYHHT72fbpXHaX408T6xpdtqOn+CvNtrmMSRv/a8IyD7Y4PtXaWzyy2sUlxD5ErIC8W4NsbHK5HXHrVWaJuRC6mMRb7BcAggBN0eT7/fx+tO+0S+ZGv2OfDAEtuTCex+bP5ZqeikMrC6mKOfsNwCuMKWjy30+b+eKX7TLmP8A0Kf5+vzR/Jz3+b8eM1YooAr/AGmXMn+hT/J0+aP5+e3zfjzikN1MEQ/Ybgls5UNHlfr838s1ZooAg+0S+ZIv2OfCgkNuTD+w+bP54ppuphEG+wXBJJBTdHke/wB/H61ZooAg+0SecyfZJtoGQ+UweOn3s+3Sm/apvK3/AGC43bsbN0ecev38Y/GrNFAEH2iTzlT7JNtIyXymBx0+9n26U0XUxiLfYLgEEAJujyff7+P1qzRQBB9ol8yNfsc+GAJbcmE9j82fyzTRdTFHP2G4BXGFLR5b6fN/PFWaKAK/2mXMf+hT/P1+aP5Oe/zfjxmj7TLmT/Qp/k6fNH8/Pb5vx5xViigCsbqYIh+w3BLZyoaPK/X5v5Zp32iXzJF+xz4UEhtyYf2HzZ/PFT0UAVjdTCIN9guCSSCm6PI9/v4/WnfaJPOZPsk20DIfKYPHT72fbpU9FAFb7VN5W/7Bcbt2Nm6POPX7+MfjTvtEnnKn2SbaRkvlMDjp97Pt0qeigCsLqYxFvsFwCCAE3R5Pv9/H6077RL5ka/Y58MAS25MJ7H5s/lmp6KAKwupijn7DcArjClo8t9Pm/nil+0y5j/0Kf5+vzR/Jz3+b8eM1YooAr/aZcyf6FP8AJ0+aP5+e3zfjzikN1MEQ/Ybgls5UNHlfr838s1ZooAg+0S+ZIv2OfCgkNuTD+w+bP54ppuphEG+wXBJJBTdHke/38frVmigCD7RJ5zJ9km2gZD5TB46fez7dKb9qm8rf9guN27GzdHnHr9/GPxqzRQBB9ok85U+yTbSMl8pgcdPvZ9ulNF1MYi32C4BBACbo8n3+/j9as0UAQfaJfMjX7HPhgCW3JhPY/Nn8s00XUxRz9huAVxhS0eW+nzfzxVmigCv9plzH/oU/z9fmj+Tnv8348Zo+0y5k/wBCn+Tp80fz89vm/HnFWKKAKxupgiH7DcEtnKho8r9fm/lmnfaJfMkX7HPhQSG3Jh/YfNn88VPRQBWN1MIg32C4JJIKbo8j3+/j9ad9ok85k+yTbQMh8pg8dPvZ9ulT0UAVvtU3lb/sFxu3Y2bo849fv4x+NO+0SecqfZJtpGS+UwOOn3s+3Sp6KAKwupjEW+wXAIIATdHk+/38frTvtEvmRr9jnwwBLbkwnsfmz+WanooArC6mKOfsNwCuMKWjy30+b+eKX7TLmP8A0Kf5+vzR/Jz3+b8eM1YooAr/AGmXMn+hT/J0+aP5+e3zfjzikN1MEQ/Ybgls5UNHlfr838s1ZooAg+0S+ZIv2OfCgkNuTD+w+bP54ppuphEG+wXBJJBTdHke/wB/H61ZooAg+0SecyfZJtoGQ+UweOn3s+3Sm/apvK3/AGC43bsbN0ecev38Y/GrNFAEH2iTzlT7JNtIyXymBx0+9n26U0XUxiLfYLgEEAJujyff7+P1qzRQBB9ol8yNfsc+GAJbcmE9j82fyzTRdTFHP2G4BXGFLR5b6fN/PFWaKAK/2mXMf+hT/P1+aP5Oe/zfjxmj7TLmT/Qp/k6fNH8/Pb5vx5xViigCsbqYIh+w3BLZyoaPK/X5v5Zp32iXzJF+xz4UEhtyYf2HzZ/PFT0UAVjdTCIN9guCSSCm6PI9/v4/WnfaJPOZPsk20DIfKYPHT72fbpU9FAFb7VN5W/7Bcbt2Nm6POPX7+MfjTvtEnnKn2SbaRkvlMDjp97Pt0qeigCsLqYxFvsFwCCAE3R5Pv9/H6077RL5ka/Y58MAS25MJ7H5s/lmp6KAKwupijn7DcArjClo8t9Pm/nil+0y5j/0Kf5+vzR/Jz3+b8eM1YooAr/aZcyf6FP8AJ0+aP5+e3zfjzikN1MEQ/Ybgls5UNHlfr838s1ZooAg+0S+ZIv2OfCgkNuTD+w+bP54ppuphEG+wXBJJBTdHke/38frVmigCD7RJ5zJ9km2gZD5TB46fez7dKb9qm8rf9guN27GzdHnHr9/GPxqzRQBB9ok85U+yTbSMl8pgcdPvZ9ulNF1MYi32C4BBACbo8n3+/j9as0UAQfaJfMjX7HPhgCW3JhPY/Nn8s00XUxRz9huAVxhS0eW+nzfzxVmigCv9plzH/oU/z9fmj+Tnv8348Zo+0y5k/wBCn+Tp80fz89vm/HnFWKKAKxupgiH7DcEtnKho8r9fm/lmnfaJfMkX7HPhQSG3Jh/YfNn88VPRQBWN1MIg32C4JJIKbo8j3+/j9ad9ok85k+yTbQMh8pg8dPvZ9ulT0UAVvtU3lb/sFxu3Y2bo849fv4x+NO+0SecqfZJtpGS+UwOOn3s+3Sp6KAKwupjEW+wXAIIATdHk+/38frTvtEvmRr9jnwwBLbkwnsfmz+WanooArC6mKOfsNwCuMKWjy30+b+eKX7TLmP8A0Kf5+vzR/Jz3+b8eM1YooAr/AGmXMn+hT/J0+aP5+e3zfjzikN1MEQ/Ybgls5UNHlfr838s1ZooAg+0S+ZIv2OfCgkNuTD+w+bP54ppuphEG+wXBJJBTdHke/wB/H61ZooAg+0SecyfZJtoGQ+UweOn3s+3Sm/apvK3/AGC43bsbN0ecev38Y/GrNFAEH2iTzlT7JNtIyXymBx0+9n26U0XUxiLfYLgEEAJujyff7+P1qzRQBB9ol8yNfsc+GAJbcmE9j82fyzTRdTFHP2G4BXGFLR5b6fN/PFWaKAK/2mXMf+hT/P1+aP5Oe/zfjxmj7TLmT/Qp/k6fNH8/Pb5vx5xViigCsbqYIh+w3BLZyoaPK/X5v5Zp32iXzJF+xz4UEhtyYf2HzZ/PFT0UAVjdTCIN9guCSSCm6PI9/v4/WnfaJPOZPsk20DIfKYPHT72fbpU9FAFb7VN5W/7Bcbt2Nm6POPX7+MfjTvtEnnKn2SbaRkvlMDjp97Pt0qeigCsLqYxFvsFwCCAE3R5Pv9/H6077RL5ka/Y58MAS25MJ7H5s/lmp6KAKwupijn7DcArjClo8t9Pm/nil+0y5j/0Kf5+vzR/Jz3+b8eM1YooAr/aZcyf6FP8AJ0+aP5+e3zfjzikN1MEQ/Ybgls5UNHlfr838s1ZooAg+0S+ZIv2OfCgkNuTD+w+bP54ppuphEG+wXBJJBTdHke/38frVmigCD7RJ5zJ9km2gZD5TB46fez7dKb9qm8rf9guN27GzdHnHr9/GPxqzRQBB9ok85U+yTbSMl8pgcdPvZ9ulNF1MYi32C4BBACbo8n3+/j9as0UAQfaJfMjX7HPhgCW3JhPY/Nn8s00XUxRz9huAVxhS0eW+nzfzxVmigCv9plzH/oU/z9fmj+Tnv8348Zo+0y5k/wBCn+Tp80fz89vm/HnFWKKAKxupgiH7DcEtnKho8r9fm/lmnfaJfMkX7HPhQSG3Jh/YfNn88VPRQBVe8lSJX/s+5JZwpRTGSoyBuPzdOe2TweKtVR1hY30xxNIY08yP5gu7neuOPrxV6gAooooAKKKKACiiigCtqWz+ybvzt3l+Q+/b1xtOce9ZvjC/udM8MXN3ZXb2c0ZXEyWD3u35gDmJPmYeuOnXtWpfeYdPuPJUNJ5TbFYAgnBwOeKnpMaPnfw18VPEkmp6PaxX+kasG1K8WW0iufsc8qDzCoeORcRrwCuTnOAecmvoO1me4s4ZpoWgkkjVmiZgxQkZKkjg46ZHFcbqHhn4dPeRaZq8Wky3FvNLfC0vJ1dg0zHe7Ix5BaTjIwCRjHFdnb28NpaxW9rGsUMKBI40GAqgYAHtiqumiWveJKKKKQwooooAKKKKACqWq6omlWqTSQTTl5BGkcO3cxOf7xA7HvV2sPxT/wAetj/1+J/6C1AEf/CVH/oB6l/31b//AB2j/hKj/wBAPUv++rf/AOO1UooAt/8ACVH/AKAepf8AfVv/APHaP+EqP/QD1L/vq3/+O1UooAt/8JUf+gHqX/fVv/8AHaP+EqP/AEA9S/76t/8A47XnfjK1t7nxDB9pgjm22vHmIGx859axP7L0/wD58bb/AL8r/hXfRwTqwU7nJUxKhLlsev8A/CVH/oB6l/31b/8Ax2j/AISo/wDQD1L/AL6t/wD47XkH9l6f/wA+Nt/35X/Cj+y9P/58bb/vyv8AhWv9nS/mI+uLsev/APCVH/oB6l/31b//AB2j/hKj/wBAPUv++rf/AOO14rqkOmaXpVzey2FuVgjL4EK5JA4HTueKxdCkitrK/i8S29qbmwQTyyi2QZiZd2QFHYhl/wCA1DwNnZyKWKurpH0J/wAJUf8AoB6l/wB9W/8A8do/4So/9APUv++rf/47XhCX+kiznurzRHs7eGHz/NmtUKunqChYZ9jg+1OS70pbW4uL7RHsI4IxKWntkIZT02lCwJ/2c59qf1H+9+AfWv7p7r/wlR/6Aepf99W//wAdo/4So/8AQD1L/vq3/wDjteCy32npFcIdBMF2tu88MM8EWZlXqQQxHGRkEg+1T6OtvfeGbXUJ9Gi8+S3WQwrFEC5xn5ecDPbJHviksC3e0vw/rsH1q3Q9z/4So/8AQD1L/vq3/wDjtH/CVH/oB6l/31b/APx2vnKwvpL3UbKI6C0cdxdTMS0VtjyUyuOGJ4YqSevpmtKKIt4vW0uNPsobRrWSRIhErMxV1AYnHGQeAPx9lHBOVrS38vK43iUt0e9/8JUf+gHqX/fVv/8AHaP+EqP/AEA9S/76t/8A47XkH9l6f/z423/flf8ACj+y9P8A+fG2/wC/K/4Vp/Z0v5iPri7Hr/8AwlR/6Aepf99W/wD8do/4So/9APUv++rf/wCO15B/Zen/APPjbf8Aflf8KP7L0/8A58bb/vyv+FH9nS/mD64ux6//AMJUf+gHqX/fVv8A/HaP+EqP/QD1L/vq3/8AjtY+jf8AICsP+vaP/wBBFeXaZplg2kWZNjbEmBCSYV5+Ue1ctDDus2k7WN6tZU0m0e0/8JUf+gHqX/fVv/8AHaP+EqP/AEA9S/76t/8A47XkH9l6f/z423/flf8ACj+y9P8A+fG2/wC/K/4V1f2dL+Yw+uLsev8A/CVH/oB6l/31b/8Ax2j/AISo/wDQD1L/AL6t/wD47XkH9l6f/wA+Nt/35X/CuZ8UMbW5jh0ayt99tEb26UW6NviUgbORwW+bkc/LUSwLgruRUcUpOyR9C/8ACVH/AKAepf8AfVv/APHaP+EqP/QD1L/vq3/+O14Xc3ekQtax22krfTXURniit4Y8mMYy2WKj+Id8802a90qN4IoNCkubiaEz/Z0tY0kRAcEsHK9+MDJ9qbwNvtfgH1q/2T3b/hKj/wBAPUv++rf/AOO0f8JUf+gHqX/fVv8A/Ha8LmutLR4orbRHuriSETm3jtUR0Tplt5UDnjGc9eKpNqNlPrWkQ6do8U9pfJKXk8iMFSuARhiCNpzkY+meaTwNvtfgH1n+6fQP/CVH/oB6l/31b/8Ax2j/AISo/wDQD1L/AL6t/wD47Xg3iIJp8dtFp+iLNLcTogkiigwBuyy4dhyVDY4x7iqmn21zrkDvFZR6bAbuQGSSCBpFjX5QqABlzuByW/DPBpfUneyf4en+Y/rKtex9Cf8ACVH/AKAepf8AfVv/APHaP+EqP/QD1L/vq3/+O14R4eht7yO9juLa2uVtbpoI7n7OimYADJIAxkEkHGBx0FbH9l6f/wA+Nt/35X/CrWXtpPmJeLSdrHr/APwlR/6Aepf99W//AMdo/wCEqP8A0A9S/wC+rf8A+O15B/Zen/8APjbf9+V/wo/svT/+fG2/78r/AIU/7Ol/ML64ux6//wAJUf8AoB6l/wB9W/8A8do/4So/9APUv++rf/47XmnhaztrbxZA1vbxRMbaUExoFzynpXoFcNak6U+Rs6qdT2keYt/8JUf+gHqX/fVv/wDHaP8AhKj/ANAPUv8Avq3/APjtVKKxNC3/AMJUf+gHqX/fVv8A/HaP+EqP/QD1L/vq3/8AjtVKKALf/CVH/oB6l/31b/8Ax2j/AISo/wDQD1L/AL6t/wD47XjdrpenmzhzY23+rX/livp9Kl/svT/+fG2/78r/AIV6ay+TV+Y4fri7Hr//AAlR/wCgHqX/AH1b/wDx2j/hKj/0A9S/76t//jteQf2Xp/8Az423/flf8KqapDpml6Vc3sthblYIy+BCuSQOB07nih5e0ruQ1i03ZI9q/wCEqP8A0A9S/wC+rf8A+O0f8JUf+gHqX/fVv/8AHa+fvD2yO3vbbxFbWrXdkqzPILZFBjZdwIAHYhl/4DVqC/0iW2kuZ9Ee1tVgNwtxLaoUeMc5BUtg45w2D7VP1HTWQ/rWtlE93/4So/8AQD1L/vq3/wDjtH/CVH/oB6l/31b/APx2vCobzSWt5bi70VrKCOHz/NntoyjJ6goWGfY4PtUE2o6ekMo/sBoZzA81sk9vEPPCjJxhuOoOGKnHalLBcqu5fgCxV/snvn/CVH/oB6l/31b/APx2j/hKj/0A9S/76t//AI7Xhuix29/4btb+40eETywLIYhFGC5xn5ecDPbJHXnFYdrfy3WoQRr4fdY7i/dQTFbYWJF2svDE8MMk/XBPApywLi7OX4AsUmr2/E+jv+EqP/QD1L/vq3/+O0f8JUf+gHqX/fVv/wDHa8EiiLeL1tLjT7KG0a1kkSIRKzMVdQGJxxkHgD8fapf3MbeKNNtNPsbMWBumguZTApMj+WzbF46DHJ9cD1o+ouy97fy87D+s76H0N/wlR/6Aepf99W//AMdo/wCEqP8A0A9S/wC+rf8A+O15B/Zen/8APjbf9+V/wo/svT/+fG2/78r/AIVf9nS/mI+uLsev/wDCVH/oB6l/31b/APx2kbxZsUs2iakAoyTut/8A47XkP9l6f/z423/flf8ACtHw3Z21t4kc29vFETptwCY0C5+eL0rKrgnTg532Lp4lTko2ParedLm2inizslQOuR2IyKkqno//ACArD/r2j/8AQRVyuA6wooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigCnqm/+z28uATtvT92VLZ+cc4Hp1/CrlUtWAOmtum8kb4/nwTj51449en41doAKKKKACiiigAooooArakEOk3YlYqhgfcVGSBtOeKmmmit4zJPIkSDqzsAB+JqO/3HTrny4xK/lNtjIyGODxjvmo9T0uw1mwex1eyt760kILwXEYkRsHIyp4PIzQB4VqGnXth4muoG0Bda+1R6lG96lxb+Vcm5kRomkZnBUIq7TkcbRtzXt/h+zl0/w1plnc3H2qa3tIonnBz5jKgBbPvjNeTf2BZ6hZ6nrei+AfBKaRp09xEba8swLicQsVdt4XbHkq2AQ3GMkV63oVzbXvh7T7qwt/s1rNbRyQwbNvloVBC47YHGKpfBb0/W36il8evn+ly/RRRUjCiiigAooooAKw/FP/HrY/8AX4n/AKC1blYfin/j1sf+vxP/AEFqAOQt/FMdx47vPDn2WdWtrWOfzzBJtYsWyN23aAAowc8kkDkGugrnI9Pvbb4j3Ooi0eWyvdPig89HTELxvI2GBYNyHGCoPviujp9ED3f9dAooopAcX4r/AORii/69R/6Gayq1fFf/ACMUX/XqP/QzWVX0OD/gRPIxH8VhRRRXUc5k69pMmtQ2toZAlp56yXQDsjuq8hVI6fNt5yOBVNvDT2msR32kzt88DwXC31xLcBgeUPzMc4btkcMa6CR1ijaRzhVBJPsKqaTqa6vp8d7FbzQRSgNF523LqRkMArHAPvg+1ZuEW/P+kWpSS8jDsfDt9bXEskMOn6fEbd4vskDvLBMxOQzRkKFA54HJz14qD/hELi6tby3dbXTLee38pbW0leaEvuDByrKoGCMbQOcnJrsKrXN9BaTW0U7FXupPKiABO5tpb8OAaTpQtZ/1f/hxqpK+hiaf4eaFpd+k6Lp+6BovMsYsyOSMZ3bV2j/Z+b61f03T7qDwvFp135azRW4gDQTOAcLgNuAVlJ68dPU1q0VSgkmu4nJs5jSPCCafe2s8s9w/2a1SNcX05zJnLnaWxtOF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mcZxsOMZ5646VaoAKKKKAKVmUOpagFi2MHTc+Sd/yDn29K5X4kWetzJpF5odhcaktlcSSyWdvMsbNJ5bCFzuZQVVyCRn3wcV1lqZPt97vmV13psQNkx/IOCO2TzWR4u8W/8ACLxWiQaXc6re3rusFrbMikhELuxZyAAAPqeKmVrajW5zHw18H6h4W1u5WW0a2txptvFdTFwRf3uWeSYAEnjdt3HBOPavSa43wT4+k8YXUkUuhz6UBZw3kJnuI5DNFLnayhCeOD34PGK7KtJXvqSrf16BRRRUjCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPPtf+DuieIfiTZeNLu/v47+zmglSGJkERMLBlBBUnkjnmuz1zSYde8PajpF07xwahay2sjxkblWRCpIzkZwavUUAcZ8OfhlpXwzsL200a7vLpLyVZHN2ykqQMcbVFV/iR8JdH+JsunPrN7fWp09ZBH9kZBu37c53Kf7oru6KAIraBbW0ht0JKxIqAnqQBipaKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooApasQNNbdD5w3x/JkjPzrzx6dfwq7VPVN/9nt5c4gben7wsVx844yPXp+NXKAKWsBG0e5EkvkqUOZACdvvgVdqnq2f7JucQ+edn+qwTu9uOauUAVNTMotE8idIG+0QZZ22gr5q7l+rDKgdyQKt1Q1kwixj+0q7J9rtgAhwd3nptP0DYJ9s1foAKKKKAK2pBTpd2Hfy1ML5fGdo2nnFWar6h/yDLrEfmnyX/d8/PweOPWrFABRRRQBRvPK/tPTvML7/ADH8vaBgnYc5/Cr1VbkSm+sikSugdt7lQSg2HBB7c8VaoAKKKKAKNmYzqeohFYOJE3knIJ2DGPTiuC+IPifT7TxboOn3eieIJbiG6aWK80+0dxjymLIuFYShlyrKMEDnjFeg2xl+3XvmMpj3r5YBGVGwZz+PrXI/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"}}},{"cell_type":"code","source":"class sample_generator(keras.utils.Sequence):\n    def __init__(self, x_set, y_set, batch_size, length):\n        self.x, self.y = x_set, y_set\n        self.batch_size = batch_size\n        self.length = length\n        self.size = len(x_set)\n    def __len__(self): return int(np.ceil(len(self.x) / float(self.batch_size)))\n    def __getitem__(self, idx):\n        batch_x=[]\n        batch_y=[]\n        for i in range(self.batch_size):\n            start_ind = self.batch_size*idx + i\n            end_ind = start_ind + self.length \n            if end_ind <= self.size:\n                batch_x.append(self.x[start_ind : end_ind])\n                batch_y.append(self.y[end_ind -1])\n        return np.array(batch_x), np.array(batch_y)","metadata":{"papermill":{"duration":0.060531,"end_time":"2021-12-22T10:59:00.373138","exception":false,"start_time":"2021-12-22T10:59:00.312607","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T13:06:21.288288Z","iopub.execute_input":"2021-12-28T13:06:21.289075Z","iopub.status.idle":"2021-12-28T13:06:21.300366Z","shell.execute_reply.started":"2021-12-28T13:06:21.28904Z","shell.execute_reply":"2021-12-28T13:06:21.299418Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_train, X_test = train[:-len(train)//PCT_VALIDATION], train[-len(train)//PCT_VALIDATION:]\ny_train, y_test = targets[:-len(train)//PCT_VALIDATION], targets[-len(train)//PCT_VALIDATION:]","metadata":{"papermill":{"duration":0.056173,"end_time":"2021-12-22T10:59:00.477112","exception":false,"start_time":"2021-12-22T10:59:00.420939","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T13:06:23.592101Z","iopub.execute_input":"2021-12-28T13:06:23.592394Z","iopub.status.idle":"2021-12-28T13:06:23.598821Z","shell.execute_reply.started":"2021-12-28T13:06:23.592363Z","shell.execute_reply":"2021-12-28T13:06:23.596757Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train_generator = sample_generator(X_train, y_train, length = WINDOW_SIZE, batch_size = BATCH_SIZE)\nval_generator = sample_generator(X_test, y_test, length = WINDOW_SIZE, batch_size = BATCH_SIZE)\nprint(f'Sample shape: {train_generator[0][0].shape}')\nprint(f'Target shape: {train_generator[0][1].shape}')","metadata":{"papermill":{"duration":0.087004,"end_time":"2021-12-22T10:59:00.611683","exception":false,"start_time":"2021-12-22T10:59:00.524679","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T13:06:26.032401Z","iopub.execute_input":"2021-12-28T13:06:26.033263Z","iopub.status.idle":"2021-12-28T13:06:26.089514Z","shell.execute_reply.started":"2021-12-28T13:06:26.033229Z","shell.execute_reply":"2021-12-28T13:06:26.087483Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# <span class=\"title-section w3-xxlarge\" id=\"training\">Training 🏋️</span>\n<hr>\n\nOur model will be trained for the number of FOLDS and EPOCHS you chose in the configuration above. Each fold the model with lowest validation loss will be saved and used to predict OOF and test. Adjust the variable `VERBOSE`. The variable `VERBOSE=1 or 2` will display the training and validation loss for each epoch as text. ","metadata":{"papermill":{"duration":0.047877,"end_time":"2021-12-22T10:59:00.707628","exception":false,"start_time":"2021-12-22T10:59:00.659751","status":"completed"},"tags":[]}},{"cell_type":"markdown","source":"### Defining the Time Series Transformer","metadata":{"papermill":{"duration":0.047809,"end_time":"2021-12-22T10:59:00.803837","exception":false,"start_time":"2021-12-22T10:59:00.756028","status":"completed"},"tags":[]}},{"cell_type":"code","source":"import math\nimport tensorflow as tf\nfrom tensorflow import keras\nfrom tensorflow.keras.models import Model\nfrom tensorflow.keras import backend as K\nfrom tensorflow.keras.losses import MSE\nfrom tensorflow.keras.layers import Dense, Activation, Dropout, Layer, LayerNormalization, Conv1D, Input, Concatenate, Permute, Add, GlobalAvgPool1D\n\n# ----- Positional Encoding -----\n\n\nclass FixedPositionalEncoding(Layer):\n    def __init__(self, d_model, dropout = 0.1, max_len = 1024, scale_factor = 1.0, batch_size = BATCH_SIZE):\n        super(FixedPositionalEncoding, self).__init__()\n        self.dropout = Dropout(dropout)\n        self.batch_size = batch_size\n        self.pe = np.zeros((max_len, d_model))\n        position = np.expand_dims(np.arange(0, max_len, dtype = np.float32), 1)\n        div_term = np.exp(np.arange(0, d_model, 2)) * (-np.log(10000.0) / d_model)\n        self.pe[:, 0::2] = tf.sin(position * div_term)\n        self.pe[:, 1::2] = tf.cos(position * div_term)\n        self.pe = scale_factor * np.expand_dims(self.pe, 1)\n    def call(self, x):\n        x = x + self.pe\n        return self.dropout(x)\n\nclass LearnablePositionalEncoding(Layer):\n    def __init__(self, d_model, dropout = 0.1, max_len = 1024):\n        super(LearnablePositionalEncoding, self).__init__()\n        self.dropout = Dropout(dropout)\n        self.pe = tf.Variable((max_len, 1, d_model))\n        self.pe = nn.init.uniform_(self.pe, -0.02, 0.02)\n\n    def call(self, inputs, *args, **kwargs):\n        x = inputs + self.pe[:inputs.size(0), :]\n        return self.dropout(x)\n\n# ----- Positional Encoding -----\n\n\n# ----- Model Implementation -----\n\nclass MultiHeadAttention(tf.keras.layers.Layer):\n    def __init__(self, d_model, num_heads):\n        super(MultiHeadAttention, self).__init__()\n        self.d_model = d_model\n        self.num_heads = num_heads\n        self.depth = d_model // self.num_heads\n        self.wq = tf.keras.layers.Dense(d_model, kernel_initializer='glorot_uniform', use_bias=False)\n        self.wk = tf.keras.layers.Dense(d_model, kernel_initializer='glorot_uniform', use_bias=False)\n        self.wv = tf.keras.layers.Dense(d_model, kernel_initializer='glorot_uniform', use_bias=False)\n        self.ff = tf.keras.layers.Dense(d_model, kernel_initializer='glorot_uniform', use_bias=False)\n\n    def split_heads(self, x, batch_size):\n        x = tf.reshape(x, (batch_size, -1, self.num_heads, self.depth))\n        return tf.transpose(x, perm=[0, 2, 1, 3])\n\n    def call(self, inputs, *args, **kwargs):\n        q, k, v, mask = inputs\n        batch_size = tf.shape(q)[0]\n        q = self.wq(q)\n        k = self.wk(k)\n        v = self.wv(v)\n        q = self.split_heads(q, batch_size)\n        k = self.split_heads(k, batch_size)\n        v = self.split_heads(v, batch_size)\n        scaled_attention, attention_weights = scaled_dot_product_attention(q, k, v, mask)\n        scaled_attention = tf.transpose(scaled_attention, perm=[0, 2, 1, 3])\n        concat_attention = tf.reshape(scaled_attention, (batch_size, -1, self.d_model))\n        output = self.ff(concat_attention)\n        return output, attention_weights\n\ndef scaled_dot_product_attention(q, k, v, mask):\n    matmul_qk = tf.matmul(q, k, transpose_b=True)\n    dk = tf.cast(tf.shape(k)[-1], tf.float32)\n    scaled_attention_logits = matmul_qk / tf.math.sqrt(dk)\n    if mask is not None: scaled_attention_logits += (mask * -1e9)\n    attention_weights = tf.nn.softmax(scaled_attention_logits, axis=-1)\n    output = tf.matmul(attention_weights, v)\n    return output, attention_weights\n\nclass PointwiseFeedforward(tf.keras.layers.Layer):\n    def __init__(self, d_model):\n        super(PointwiseFeedforward, self).__init__()\n        self.ff1 = tf.keras.layers.Dense(d_model, kernel_initializer='glorot_uniform')\n        self. ff2 = tf.keras.layers.Dense(d_model, kernel_initializer='glorot_uniform')\n\n    def call(self, x):\n        x = self.ff1(x)\n        x = tf.nn.leaky_relu(x)\n        x = self.ff2(x)\n        return x\n\nclass TransformerLayer(tf.keras.layers.Layer):\n    def __init__(self, d_model, num_heads):\n        super(TransformerLayer, self).__init__()\n        self.mha = MultiHeadAttention(d_model, num_heads)\n        self.ffn = PointwiseFeedforward(d_model)\n        self.layernorm1 = tf.keras.layers.LayerNormalization(epsilon=1e-6)\n        self.layernorm2 = tf.keras.layers.LayerNormalization(epsilon=1e-6)\n\n    def call(self, x, y, mask):\n        attn_output, _ = self.mha(x, y, y, mask)\n        out1 = self.layernorm1(x + attn_output)\n        ffn_output = self.ffn(out1)\n        out2 = self.layernorm2(out1 + ffn_output)\n        return out2\n\nclass SingleAttention(Layer):\n    def __init__(self, d_k, d_v):\n        super(SingleAttention, self).__init__()\n        self.d_k = d_k\n        self.d_v = d_v\n\n    def build(self, input_shape):\n        self.query = Dense(self.d_k, input_shape = input_shape, kernel_initializer = 'glorot_uniform', bias_initializer = 'glorot_uniform')\n        self.key   = Dense(self.d_k, input_shape = input_shape, kernel_initializer = 'glorot_uniform', bias_initializer = 'glorot_uniform')\n        self.value = Dense(self.d_v, input_shape = input_shape, kernel_initializer = 'glorot_uniform', bias_initializer = 'glorot_uniform')\n\n    def call(self, inputs):\n        q = self.query(inputs[0])\n        k = self.key(inputs[1])\n        v = self.value(inputs[2])\n        attn_weights = tf.matmul(q, k, transpose_b = True)\n        attn_weights = tf.map_fn(lambda x: x / np.sqrt(self.d_k), attn_weights)\n        attn_weights = tf.nn.softmax(attn_weights, axis = -1)\n        attn_out = tf.matmul(attn_weights, v)\n        return attn_out\n\nclass MultiAttention(Layer):\n    def __init__(self, d_k, d_v, n_heads):\n        super(MultiAttention, self).__init__()\n        self.d_k = d_k\n        self.d_v = d_v\n        self.n_heads = n_heads\n        self.attn_heads = list()\n\n    def build(self, input_shape):\n        for n in range(self.n_heads):\n            self.attn_heads.append(SingleAttention(self.d_k, self.d_v))\n        self.linear = Dense(input_shape[0][-1], kernel_initializer = 'glorot_uniform', bias_initializer = 'glorot_uniform')\n\n    def call(self, inputs):\n        attn = [self.attn_heads[i](inputs) for i in range(self.n_heads)]\n        concat_attn = Concatenate(axis = 2)(attn)\n        multi_linear = self.linear(concat_attn)\n        return multi_linear\n\nclass TransformerEncoder(Layer):\n    def __init__(self, d_k, n_heads, ff_dim, dropout = 0.1, **kwargs):\n        super(TransformerEncoder, self).__init__()\n        self.d_k = d_k\n        self.ff_dim = ff_dim\n        self.n_heads = n_heads\n        self.attn_heads = list()\n        self.dropout_rate = dropout\n\n    def build(self, input_shape):\n        self.attn_multi = MultiAttention(self.d_k, self.d_k, self.n_heads)\n        self.attn_dropout = Dropout(self.dropout_rate)\n        self.attn_normalize = LayerNormalization(epsilon = 1e-6)\n        self.ff_conv1D_1 = Conv1D(filters = self.ff_dim, kernel_size = 1, activation = 'relu', padding = 'same')\n        self.ff_conv1D_2 = Conv1D(filters = input_shape[-1], kernel_size = 1, padding = 'same')\n        self.ff_dropout = Dropout(self.dropout_rate)\n        self.ff_normalize = LayerNormalization(epsilon = 1e-6)\n        self.addition = Add()\n        self.addition_2 = Add()\n\n    def call(self, inputs):\n        attn_layer = self.attn_multi([inputs, inputs, inputs])\n        attn_layer = self.attn_dropout(attn_layer)\n        attn_layer = self.attn_normalize(self.addition_2([inputs, attn_layer]))\n        ff_layer = self.ff_conv1D_1(attn_layer)\n        ff_layer = self.ff_conv1D_2(ff_layer)\n        ff_layer = self.ff_dropout(ff_layer)\n        ff_layer = self.ff_normalize(self.addition([inputs, ff_layer]))\n        return ff_layer\n\n    def get_config(self):\n        config = super().get_config().copy()\n        config.update({'d_k': self.d_k, 'd_v': self.d_v, 'n_heads': self.n_heads, 'ff_dim': self.ff_dim, 'attn_heads': self.attn_heads, 'dropout_rate': self.dropout_rate})\n        return config\n\ndef batch_generator(batch_size):\n    while True:\n        x_train, y_train = train_features, targets\n        for i in range(0, len(x_train), batch_size):\n            x_batch = x_train[i:i + batch_size]\n            y_batch = y_train[i:i + batch_size]\n            for idx in range(x_batch.shape[0]):\n                mask = noise_mask(x_batch[0], masking_ratio, mean_mask_length, 'separate', 'geometric', None)\n                x_batch[idx][np.where(mask)] = -1.0\n                y_batch[idx][np.where(np.sum(mask, axis = -1))] = -1.0\n            yield (x_batch, y_batch)\n\nclass TSTransformer(Model):\n    def __init__(self, feat_dim, max_len, d_model, n_heads, num_layers, dim_feedforward, dropout = 0.1, pos_encoding = 'fixed', activation = 'gelu', norm = 'BatchNorm', freeze = False):\n        super(TSTransformer, self).__init__()\n        self.max_len     = max_len\n        self.d_model     = d_model\n        self.n_heads     = n_heads\n        self.project_inp = Dense(d_model)\n        self.pos_enc     = FixedPositionalEncoding(d_model, dropout = dropout * (1.0 - freeze), max_len = max_len)\n        self.encoder_layers = [TransformerEncoder(d_model, self.n_heads, dim_feedforward, dropout * (1.0 - freeze), activation = activation) for i in range(num_layers)]\n        self.output_layer = Dense(feat_dim)\n        self.act          = Activation('relu')\n        self.dropout1     = Dropout(dropout)\n        self.feat_dim     = feat_dim\n\n    def call(self, X):\n        inp = K.permute_dimensions(X, (1, 0, 2))\n        inp = self.project_inp(inp) * math.sqrt(self.d_model)\n        inp = self.pos_enc(inp)\n        x = inp\n        for lay in self.encoder_layers: x = lay(x)\n        output = self.act(x)\n        output = K.permute_dimensions(output, (1, 0, 2))\n        output = self.dropout1(output)\n        output = self.output_layer(output)\n        return output\n\n# ----- Model Implementation -----\n\n\n# ----- Masking & Noise Injection -----\n\n# Reference: https://github.com/gzerveas/mvts_transformer\ndef noise_mask(X, masking_ratio, lm = 3, mode = 'separate', distribution = 'geometric', exclude_feats = None):\n    if exclude_feats is not None: exclude_feats = set(exclude_feats)\n    if distribution == 'geometric':\n        if mode == 'separate':\n            mask = np.ones(X.shape, dtype = bool)\n            for m in range(X.shape[1]):\n                if exclude_feats is None or m not in exclude_feats: mask[:, m] = geom_noise_mask_single(X.shape[0], lm, masking_ratio)  # time dimension\n        else: mask = np.tile(np.expand_dims(geom_noise_mask_single(X.shape[0], lm, masking_ratio), 1), X.shape[1])\n    else:\n        if mode == 'separate': mask = np.random.choice(np.array([True, False]), size = X.shape, replace = True, p = (1 - masking_ratio, masking_ratio))\n        else: mask = np.tile(np.random.choice(np.array([True, False]), size = (X.shape[0], 1), replace = True, p = (1 - masking_ratio, masking_ratio)), X.shape[1])\n    return mask\n\ndef geom_noise_mask_single(L, lm, masking_ratio):\n    keep_mask = np.ones(L, dtype = bool)\n    p_m = 1 / lm\n    p_u = p_m * masking_ratio / (1 - masking_ratio)\n    p = [p_m, p_u]\n    state = int(np.random.rand() > masking_ratio)\n    for i in range(L):\n        keep_mask[i] = state\n        if np.random.rand() < p[state]: state = 1 - state\n    return keep_mask\n\ndef padding_mask(lengths, max_len = None):\n    batch_size = lengths.numel()\n    max_len = max_len or lengths.max_val()\n    return (tf.range(0, max_len, device = lengths.device).type_as(lengths).repeat(batch_size, 1).lt(tf.expand_dims(lengths, 1)))\n\ndef collate_unsuperv(data, max_len = None, mask_compensation = False):\n    batch_size = len(data)\n    features, masks, u_out = zip(*data)\n    lengths = [X.shape[0] for X in features]\n    if max_len is None:\n        max_len = max(lengths)\n    X = tf.zeros(batch_size, max_len, features[0].shape[-1])\n    target_masks = tf.zeros_like(X, dtype = tf.bool)\n    for i in range(batch_size):\n        end = min(lengths[i], max_len)\n        X[i, :end, :] = features[i][:end, :]\n        target_masks[i, :end, :] = masks[i][:end, :]\n    targets = X.clone()\n    X = X * target_masks\n    if mask_compensation: X = compensate_masking(X, target_masks)\n    padding_masks = tf.zeros(batch_size, max_len, dtype = tf.bool)\n    for i in range(batch_size): padding_masks[i, :] = tf.where(u_out[i] == 0, 1, 0)\n    target_masks = ~target_masks\n    return X, targets, target_masks, padding_masks\n\ndef masked_mse(y_true, y_pred):\n    is_mask = K.equal(tf.cast(y_true, tf.float32), tf.cast(-1.0, tf.float32))\n    is_mask = K.cast(is_mask, dtype = K.floatx())\n    is_mask = 1 - is_mask\n    y_true = tf.cast(y_true, tf.float32) * tf.cast(is_mask, tf.float32)\n    y_pred = tf.cast(y_pred, tf.float32) * tf.cast(is_mask, tf.float32)\n    return MSE(y_true, y_pred)\n\ndef get_transformer_model(feat_dim, max_len, d_model, n_heads, num_layers, dim_feedforward, dropout = 0.1, pos_encoding = 'fixed', activation = 'gelu', norm = 'BatchNorm', freeze = False):\n    input_layer = Input((breath_steps, train_features.shape[-1]))\n    inp = input_layer\n    inp = Dense(d_model)(inp) * math.sqrt(d_model)\n    x = inp\n    for idx, lay in enumerate(range(num_layers)):\n        x = TransformerEncoder(d_model, n_heads, dim_feedforward, dropout * (1.0 - freeze), activation = activation)(x)\n    output = Activation('relu')(x)\n    output = Dropout(dropout)(output)\n    output = Dense(feat_dim)(output)\n    output = Permute([2, 1])(output)\n    output = GlobalAvgPool1D()(output)\n    return Model(inputs = input_layer, outputs = output)\n\n# ----- Masking & Noise Injection -----","metadata":{"_kg_hide-input":false,"_kg_hide-output":true,"papermill":{"duration":0.139449,"end_time":"2021-12-22T10:59:00.991672","exception":false,"start_time":"2021-12-22T10:59:00.852223","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T13:06:34.926839Z","iopub.execute_input":"2021-12-28T13:06:34.927109Z","iopub.status.idle":"2021-12-28T13:06:35.01898Z","shell.execute_reply.started":"2021-12-28T13:06:34.92708Z","shell.execute_reply":"2021-12-28T13:06:35.017892Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### Training","metadata":{"papermill":{"duration":0.049886,"end_time":"2021-12-22T10:59:01.091068","exception":false,"start_time":"2021-12-22T10:59:01.041182","status":"completed"},"tags":[]}},{"cell_type":"code","source":"def Correlation(y_true,y_pred): return tf.math.abs(tfp.stats.correlation(y_pred,y_true, sample_axis=None, event_axis=None))\n\ndef masked_mae(y_true, y_pred):\n    mask = tf.math.not_equal(y_true, 0.)\n    y_true_masked = tf.boolean_mask(y_true, mask)\n    y_pred_masked = tf.boolean_mask(y_pred, mask)\n    return tf.keras.losses.mean_absolute_error(y_true = y_true_masked, y_pred = y_pred_masked)\n\ndef get_squence_model(x):   \n    \n    x = Dense(D_MODEL)(x) * math.sqrt(D_MODEL)\n    x = TransformerEncoder(D_MODEL, N_HEADS, DIM_FEEDFORWARD, DROPOUT * (1.0 - FREEZE), activation = ACTIVATION)(x)\n    \n    return x\n\ndef get_model(n_assets = 14):\n    x_input = keras.Input(shape=(train_generator[0][0].shape[1], n_assets, train_generator[0][0].shape[-1]))\n    branch_outputs = []\n    for i in range(n_assets):\n        a = layers.Lambda(lambda x: x[:,:, i])(x_input) # Slicing the ith asset:\n        a = layers.Masking(mask_value = 0., )(a)\n        a = get_squence_model(a)\n        a = layers.GlobalAvgPool1D()(a)\n        branch_outputs.append(a)\n    x = layers.Concatenate()(branch_outputs)\n    x = layers.Dense(units = 128)(x)\n    out = layers.Dense(units = n_assets)(x)\n    model = keras.Model(inputs=x_input, outputs=out)\n    model.compile(optimizer = tf.keras.optimizers.Adam(learning_rate=1e-3), loss = masked_mae, metrics=[Correlation])\n    return model\n    \nmodel = get_model()","metadata":{"papermill":{"duration":11.015753,"end_time":"2021-12-22T10:59:12.155627","exception":false,"start_time":"2021-12-22T10:59:01.139874","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T13:06:42.486926Z","iopub.execute_input":"2021-12-28T13:06:42.487215Z","iopub.status.idle":"2021-12-28T13:06:57.251629Z","shell.execute_reply.started":"2021-12-28T13:06:42.48717Z","shell.execute_reply":"2021-12-28T13:06:57.250545Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"tf.keras.utils.plot_model(get_model(n_assets=3), show_shapes=True)","metadata":{"papermill":{"duration":3.807015,"end_time":"2021-12-22T10:59:16.011958","exception":false,"start_time":"2021-12-22T10:59:12.204943","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T13:12:56.47678Z","iopub.execute_input":"2021-12-28T13:12:56.477087Z","iopub.status.idle":"2021-12-28T13:12:59.895499Z","shell.execute_reply.started":"2021-12-28T13:12:56.477054Z","shell.execute_reply":"2021-12-28T13:12:59.894433Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"print(features)\n\ntf.random.set_seed(0)\nestop = keras.callbacks.EarlyStopping(monitor = 'val_loss', patience = 7, verbose = 0, mode = 'min',restore_best_weights = True)\nscheduler = keras.optimizers.schedules.ExponentialDecay(1e-3, (0.5 * len(X_train) / BATCH_SIZE), 1e-3)\nlr = keras.callbacks.LearningRateScheduler(scheduler, verbose = 1)\nhistory = model.fit(train_generator, validation_data = (val_generator), epochs = EPOCHS, callbacks = [lr, estop])\n\nfig, ax = plt.subplots(1, 2, figsize=(16, 8))\nhistories = pd.DataFrame(history.history)\nepochs = list(range(1,len(histories)+1))\nloss = histories['loss']\nval_loss = histories['val_loss']\nCorrelation = histories['Correlation']\nval_Correlation = histories['val_Correlation']\nax[0].plot(epochs, loss, label = 'Train Loss')\nax[0].plot(epochs, val_loss, label = 'Val Loss')\nax[0].set_title('Losses')\nax[0].set_xlabel('Epoch')\nax[0].legend(loc='upper right')\nax[1].plot(epochs, Correlation, label = 'Train Correlation')\nax[1].plot(epochs, val_Correlation, label = 'Val Correlation')\nax[1].set_title('Correlations')\nax[1].set_xlabel('Epoch')\nax[1].legend(loc='upper right')\nfig.show()\ngc.collect()\n\n# The correlation coefficients by asset for the validation data\npredictions = model.predict(val_generator)\n\nprint('Asset:    Corr. coef.')\nprint('---------------------')\nfor i in range(N_ASSETS):\n    # drop first 14 values in the y_test, since they are absent in val_generator labels\n    y_true = np.squeeze(y_test[WINDOW_SIZE - 1:, i])\n    y_pred = np.squeeze(predictions[:, i])\n    real_target_ind = np.argwhere(y_true!=0)\n    asset_id = list(assets_order.keys())[i]\n    asset_name = assets[assets.Asset_ID == asset_id]['Asset_Name'].item()\n    print(f\"{asset_name}: {np.corrcoef(y_pred[real_target_ind].flatten(), y_true[real_target_ind].flatten())[0,1]:.4f}\")","metadata":{"papermill":{"duration":16463.369803,"end_time":"2021-12-22T15:33:39.442644","exception":false,"start_time":"2021-12-22T10:59:16.072841","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T13:01:54.647008Z","iopub.status.idle":"2021-12-28T13:01:54.647891Z","shell.execute_reply.started":"2021-12-28T13:01:54.647554Z","shell.execute_reply":"2021-12-28T13:01:54.647586Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# Submission\n# placeholder for first 15 samples\nsup = dt.fread('../input/cryptocurrency-extra-data-binance-coin/orig_supplemental_train.jay').to_pandas()[:WINDOW_SIZE * (N_ASSETS)]\nplaceholder = get_features(sup)\nplaceholder['asset_order'] = placeholder.Asset_ID.map(assets_order)\ntest_sample = np.array(placeholder[features])\ntest_sample = test_sample.reshape(-1, (N_ASSETS), test_sample.shape[-1])\ntest_sample = np.expand_dims(test_sample, axis=0)","metadata":{"collapsed":false,"jupyter":{"outputs_hidden":false},"papermill":{"duration":2.771024,"end_time":"2021-12-22T15:33:42.538876","exception":false,"start_time":"2021-12-22T15:33:39.767852","status":"completed"},"pycharm":{"name":"#%%\n"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T13:01:54.649596Z","iopub.status.idle":"2021-12-28T13:01:54.650455Z","shell.execute_reply.started":"2021-12-28T13:01:54.650133Z","shell.execute_reply":"2021-12-28T13:01:54.650166Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"# for test gap filling\nexample = dt.fread('../input/cryptocurrency-extra-data-binance-coin/orig_example_test.jay').to_pandas()[:WINDOW_SIZE - 1]\nexample['asset_order'] = example.Asset_ID.map(assets_order) \nexample = example[['Asset_ID','asset_order']]","metadata":{"papermill":{"duration":0.340521,"end_time":"2021-12-22T15:33:43.189734","exception":false,"start_time":"2021-12-22T15:33:42.849213","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T13:01:54.652172Z","iopub.status.idle":"2021-12-28T13:01:54.653062Z","shell.execute_reply.started":"2021-12-28T13:01:54.652725Z","shell.execute_reply":"2021-12-28T13:01:54.652757Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# <span class=\"title-section w3-xxlarge\" id=\"submit\">Submit To Kaggle 🇰</span>\n<hr>","metadata":{"papermill":{"duration":0.305205,"end_time":"2021-12-22T15:33:43.81378","exception":false,"start_time":"2021-12-22T15:33:43.508575","status":"completed"},"tags":[]}},{"cell_type":"code","source":"env = gresearch_crypto.make_env()\niter_test = env.iter_test()\n\nfor (test_df, sample_prediction_df) in iter_test:\n    test_df = get_features(test_df)\n    test_data = test_df.merge(example, how='outer', on='Asset_ID').sort_values('asset_order')\n    test = np.array(test_data[features].fillna(0))\n    test = test.reshape(-1, 1, N_ASSETS, test.shape[-1])\n    test_sample = np.hstack([test_sample, test])[:,-1 * WINDOW_SIZE:]\n    y_pred = model.predict(test_sample).squeeze().reshape(-1, 1).squeeze()\n    test_data['Target'] = y_pred\n    for _, row in test_df.iterrows():\n        try: sample_prediction_df.loc[sample_prediction_df['row_id'] == row['row_id'], 'Target'] = test_data.loc[test_data['row_id'] == row['row_id'], 'Target'].item()\n        except: sample_prediction_df.loc[sample_prediction_df['row_id'] == row['row_id'], 'Target'] = 0\n    env.predict(sample_prediction_df)","metadata":{"papermill":{"duration":27.59316,"end_time":"2021-12-22T15:34:11.726703","exception":false,"start_time":"2021-12-22T15:33:44.133543","status":"completed"},"tags":[],"execution":{"iopub.status.busy":"2021-12-28T13:01:54.655336Z","iopub.status.idle":"2021-12-28T13:01:54.656202Z","shell.execute_reply.started":"2021-12-28T13:01:54.655894Z","shell.execute_reply":"2021-12-28T13:01:54.655925Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# <span class=\"title-section w3-xxlarge\">References</span>\n\n<span id=\"f1\">1.</span> [Initial baseline notebook](https://www.kaggle.com/julian3833)<br>\n<span id=\"f2\">2.</span> [Competition tutorial](https://www.kaggle.com/cstein06/tutorial-to-the-g-research-crypto-competition)<br>\n<span id=\"f3\">3.</span> [Competition Overview](https://www.kaggle.com/c/g-research-crypto-forecasting/overview)</span><br>\n<span id=\"f4\">4.</span> [My Initial Ideas for this competition](https://www.kaggle.com/c/g-research-crypto-forecasting/discussion/284903)</span><br>\n<span id=\"f5\">5.</span> [My post notebook about cross validation](https://www.kaggle.com/yamqwe/let-s-talk-validation-grouptimeseriessplit)</span><br>\n<span id=\"f5\">6.</span> [Chris original notebook from SIIM ISIC](https://www.kaggle.com/cdeotte/triple-stratified-kfold-with-tfrecords)</span><br>\n\n<span class=\"title-section w3-large w3-tag\">WORK IN PROGRESS! 🚧</span>","metadata":{"papermill":{"duration":0.310375,"end_time":"2021-12-22T15:34:12.35961","exception":false,"start_time":"2021-12-22T15:34:12.049235","status":"completed"},"tags":[]}}]}