├── AW Monte Carlo (3).pdf ├── HMM MULTIPLE STATES.ipynb ├── Images ├── inflationxgboost.png ├── info.txt ├── ke.png ├── mc_sim.png ├── output.png ├── output1.png ├── regimes.png ├── w.png └── wealth.png ├── Inflation XGBoost.ipynb ├── LICENSE ├── MPT+BL+Bayesian.pdf ├── RBAA HMM.ipynb ├── README.md ├── Recession Prediction XGBoost.ipynb ├── Residual Income Model and abnormal returns-checkpoint.ipynb ├── Vanilla_Mean_Variance.ipynb └── matchprediction_tes.ipynb /AW Monte Carlo (3).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enexqnt/quantallocation/9547581cf1324d4853c2840aba4f63dc29d24196/AW Monte Carlo (3).pdf -------------------------------------------------------------------------------- /Images/inflationxgboost.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enexqnt/quantallocation/9547581cf1324d4853c2840aba4f63dc29d24196/Images/inflationxgboost.png -------------------------------------------------------------------------------- /Images/info.txt: -------------------------------------------------------------------------------- 1 | Images for readme 2 | -------------------------------------------------------------------------------- /Images/ke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enexqnt/quantallocation/9547581cf1324d4853c2840aba4f63dc29d24196/Images/ke.png -------------------------------------------------------------------------------- /Images/mc_sim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enexqnt/quantallocation/9547581cf1324d4853c2840aba4f63dc29d24196/Images/mc_sim.png -------------------------------------------------------------------------------- /Images/output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enexqnt/quantallocation/9547581cf1324d4853c2840aba4f63dc29d24196/Images/output.png -------------------------------------------------------------------------------- /Images/output1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enexqnt/quantallocation/9547581cf1324d4853c2840aba4f63dc29d24196/Images/output1.png -------------------------------------------------------------------------------- /Images/regimes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enexqnt/quantallocation/9547581cf1324d4853c2840aba4f63dc29d24196/Images/regimes.png -------------------------------------------------------------------------------- /Images/w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enexqnt/quantallocation/9547581cf1324d4853c2840aba4f63dc29d24196/Images/w.png -------------------------------------------------------------------------------- /Images/wealth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enexqnt/quantallocation/9547581cf1324d4853c2840aba4f63dc29d24196/Images/wealth.png -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 enexqnt 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /MPT+BL+Bayesian.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/enexqnt/quantallocation/9547581cf1324d4853c2840aba4f63dc29d24196/MPT+BL+Bayesian.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # quantallocation 2 | A collection of quantitative finance notebooks, including: 3 | 4 | 1. [Monte Carlo Simulation](https://github.com/enexqnt/quantallocation/blob/main/AW%20Monte%20Carlo%20(3).pdf) of lazy multi-asset portfolio + Historical Analysis with Pyfolio 5 | 2. [Residual Income Model and Abnormal returns](https://github.com/enexqnt/quantallocation/blob/main/Residual%20Income%20Model%20and%20abnormal%20returns-checkpoint.ipynb) - Empirical Backtesting 6 | 3. [Mean Variance, Black & Litterman, Pure Bayesian and Jorion Rule for in-sample optimization](https://github.com/enexqnt/quantallocation/blob/main/MPT%2BBL%2BBayesian.pdf) using PyPortfolioOpt 7 | 4. [Regime switching Mean Variance Optimization with Hidden Markov Model and Trend Filtering algorithm](https://github.com/enexqnt/quantallocation/blob/main/HMM%20MULTIPLE%20STATES.ipynb) 8 | 5. [Inflation forecast with XGBoost](https://github.com/enexqnt/quantallocation/blob/main/Inflation%20XGBoost.ipynb) 9 | 6. [Recession forecast with XGBoost](https://github.com/enexqnt/quantallocation/blob/main/Recession%20Prediction%20XGBoost.ipynb) 10 | 11 | Preview: 12 | 13 | 14 | ![alt text](https://github.com/enexqnt/quantallocation/blob/main/Images/inflationxgboost.png) 15 | ![alt text](https://github.com/enexqnt/quantallocation/blob/main/Images/regimes.png) 16 | ![alt text](https://github.com/enexqnt/quantallocation/blob/main/Images/w.png) 17 | ![alt text](https://github.com/enexqnt/quantallocation/blob/main/Images/wealth.png) 18 | ![alt text](https://github.com/enexqnt/quantallocation/blob/main/Images/ke.png) 19 | -------------------------------------------------------------------------------- /matchprediction_tes.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import pandas as pd\n", 10 | "import numpy as np\n", 11 | "from tqdm import tqdm\n", 12 | "import itertools\n", 13 | "\n", 14 | "import matplotlib.pyplot as plt\n", 15 | "import seaborn as sns\n", 16 | "\n", 17 | "from os import listdir\n", 18 | "from os.path import isfile, join\n", 19 | "\n", 20 | "from sklearn.ensemble import RandomForestClassifier\n", 21 | "from sklearn.model_selection import TimeSeriesSplit\n", 22 | "from sklearn.metrics import balanced_accuracy_score\n", 23 | "from sklearn.preprocessing import LabelEncoder\n", 24 | "\n", 25 | "\n", 26 | "import warnings\n", 27 | "warnings.filterwarnings(\"ignore\")" 28 | ] 29 | }, 30 | { 31 | "cell_type": "markdown", 32 | "metadata": {}, 33 | "source": [ 34 | "Code inspired by:\n", 35 | "**Stübinger, Johannes and Julian Knoll. “Beat the Bookmaker - Winning Football Bets with Machine Learning** (Best Application Paper).” SGAI Conf. (2018)." 36 | ] 37 | }, 38 | { 39 | "cell_type": "markdown", 40 | "metadata": {}, 41 | "source": [ 42 | "# Import data\n", 43 | "\n", 44 | "Source: https://www.football-data.co.uk/" 45 | ] 46 | }, 47 | { 48 | "cell_type": "code", 49 | "execution_count": 2, 50 | "metadata": {}, 51 | "outputs": [], 52 | "source": [ 53 | "# merge all csv files into one pandas dataframe:\n", 54 | "onlyfiles = [f for f in listdir('premier') if isfile(join('premier', f))]\n", 55 | "\n", 56 | "for i in onlyfiles:\n", 57 | " if i==onlyfiles[0]:\n", 58 | " data=pd.read_csv('premier/'+i,parse_dates=True,index_col='Date',dayfirst=True)\n", 59 | " else:\n", 60 | " data=pd.concat([pd.read_csv('premier/'+i,parse_dates=True,index_col='Date',dayfirst=True),data],axis=0)\n", 61 | "\n", 62 | "# sort dataframe\n", 63 | "data=data.sort_index().iloc[:-1]" 64 | ] 65 | }, 66 | { 67 | "cell_type": "markdown", 68 | "metadata": {}, 69 | "source": [ 70 | "# Data cleaning" 71 | ] 72 | }, 73 | { 74 | "cell_type": "code", 75 | "execution_count": 3, 76 | "metadata": {}, 77 | "outputs": [], 78 | "source": [ 79 | "data_=data.iloc[:,2:data.columns.to_list().index('B365H')].drop(['HTHG','HTAG','HTR'],axis=1)\n", 80 | "data_['y']=data_['FTAG']-data['FTHG']\n", 81 | "data_=data_.drop(['FTHG','FTAG'],axis=1)\n", 82 | "data_.dropna(inplace=True)" 83 | ] 84 | }, 85 | { 86 | "cell_type": "code", 87 | "execution_count": 4, 88 | "metadata": {}, 89 | "outputs": [ 90 | { 91 | "data": { 92 | "text/html": [ 93 | "
\n", 94 | "\n", 107 | "\n", 108 | " \n", 109 | " \n", 110 | " \n", 111 | " \n", 112 | " \n", 113 | " \n", 114 | " \n", 115 | " \n", 116 | " \n", 117 | " \n", 118 | " \n", 119 | " \n", 120 | " \n", 121 | " \n", 122 | " \n", 123 | " \n", 124 | " \n", 125 | " \n", 126 | " \n", 127 | " \n", 128 | " \n", 129 | " \n", 130 | " \n", 131 | " \n", 132 | " \n", 133 | " \n", 134 | " \n", 135 | " \n", 136 | " \n", 137 | " \n", 138 | " \n", 139 | " \n", 140 | " \n", 141 | " \n", 142 | " \n", 143 | " \n", 144 | " \n", 145 | " \n", 146 | " \n", 147 | " \n", 148 | " \n", 149 | " \n", 150 | " \n", 151 | " \n", 152 | " \n", 153 | " \n", 154 | " \n", 155 | " \n", 156 | " \n", 157 | " \n", 158 | " \n", 159 | " \n", 160 | " \n", 161 | " \n", 162 | " \n", 163 | " \n", 164 | " \n", 165 | " \n", 166 | " \n", 167 | " \n", 168 | " \n", 169 | " \n", 170 | " \n", 171 | " \n", 172 | " \n", 173 | " \n", 174 | " \n", 175 | " \n", 176 | " \n", 177 | " \n", 178 | " \n", 179 | " \n", 180 | " \n", 181 | " \n", 182 | " \n", 183 | " \n", 184 | " \n", 185 | " \n", 186 | " \n", 187 | " \n", 188 | " \n", 189 | " \n", 190 | " \n", 191 | " \n", 192 | " \n", 193 | " \n", 194 | " \n", 195 | " \n", 196 | " \n", 197 | " \n", 198 | " \n", 199 | " \n", 200 | " \n", 201 | " \n", 202 | " \n", 203 | " \n", 204 | " \n", 205 | " \n", 206 | " \n", 207 | " \n", 208 | " \n", 209 | " \n", 210 | " \n", 211 | " \n", 212 | " \n", 213 | " \n", 214 | " \n", 215 | " \n", 216 | " \n", 217 | " \n", 218 | " \n", 219 | " \n", 220 | " \n", 221 | " \n", 222 | " \n", 223 | " \n", 224 | " \n", 225 | " \n", 226 | " \n", 227 | " \n", 228 | " \n", 229 | " \n", 230 | " \n", 231 | " \n", 232 | " \n", 233 | " \n", 234 | " \n", 235 | " \n", 236 | " \n", 237 | " \n", 238 | " \n", 239 | " \n", 240 | " \n", 241 | " \n", 242 | " \n", 243 | " \n", 244 | " \n", 245 | " \n", 246 | " \n", 247 | " \n", 248 | " \n", 249 | " \n", 250 | " \n", 251 | " \n", 252 | " \n", 253 | " \n", 254 | " \n", 255 | " \n", 256 | " \n", 257 | " \n", 258 | " \n", 259 | " \n", 260 | " \n", 261 | " \n", 262 | " \n", 263 | " \n", 264 | " \n", 265 | " \n", 266 | " \n", 267 | " \n", 268 | " \n", 269 | " \n", 270 | " \n", 271 | " \n", 272 | " \n", 273 | " \n", 274 | " \n", 275 | " \n", 276 | " \n", 277 | " \n", 278 | " \n", 279 | " \n", 280 | " \n", 281 | " \n", 282 | " \n", 283 | " \n", 284 | " \n", 285 | " \n", 286 | " \n", 287 | " \n", 288 | " \n", 289 | " \n", 290 | " \n", 291 | " \n", 292 | " \n", 293 | " \n", 294 | " \n", 295 | " \n", 296 | " \n", 297 | " \n", 298 | " \n", 299 | " \n", 300 | " \n", 301 | " \n", 302 | " \n", 303 | " \n", 304 | " \n", 305 | " \n", 306 | " \n", 307 | " \n", 308 | " \n", 309 | " \n", 310 | " \n", 311 | " \n", 312 | " \n", 313 | " \n", 314 | " \n", 315 | " \n", 316 | " \n", 317 | " \n", 318 | " \n", 319 | " \n", 320 | " \n", 321 | " \n", 322 | " \n", 323 | " \n", 324 | " \n", 325 | " \n", 326 | " \n", 327 | " \n", 328 | " \n", 329 | " \n", 330 | " \n", 331 | " \n", 332 | " \n", 333 | " \n", 334 | " \n", 335 | " \n", 336 | " \n", 337 | " \n", 338 | " \n", 339 | " \n", 340 | " \n", 341 | " \n", 342 | " \n", 343 | " \n", 344 | " \n", 345 | " \n", 346 | " \n", 347 | " \n", 348 | " \n", 349 | " \n", 350 | " \n", 351 | " \n", 352 | " \n", 353 | " \n", 354 | " \n", 355 | " \n", 356 | " \n", 357 | " \n", 358 | " \n", 359 | "
HomeTeamAwayTeamFTRHSASHSTASTHFAFHCACHYAYHRARy
Date
2007-08-10126115116.010.07.04.019.023.09.00.04.03.00.00.00.0
2007-08-111061227.06.013.00.014.013.04.01.00.03.00.00.0-3.0
2007-08-1117140117.020.04.09.015.017.07.06.01.02.00.00.00.0
2007-08-114363219.010.05.03.013.013.06.05.02.01.00.00.0-1.0
2007-08-116059010.014.02.08.020.018.06.04.03.01.00.00.01.0
...................................................
2022-09-171458806.016.01.07.07.09.05.07.02.01.01.00.03.0
2022-09-179320120.010.07.03.010.011.08.01.02.02.00.00.00.0
2022-09-1713179216.019.011.07.09.09.06.01.01.02.00.00.0-4.0
2022-09-1822205.013.02.07.010.010.03.03.00.02.00.00.03.0
2022-09-184714227.014.02.04.08.011.05.014.03.01.00.00.0-1.0
\n", 360 | "

20995 rows × 16 columns

\n", 361 | "
" 362 | ], 363 | "text/plain": [ 364 | " HomeTeam AwayTeam FTR HS AS HST AST HF AF HC \\\n", 365 | "Date \n", 366 | "2007-08-10 126 115 1 16.0 10.0 7.0 4.0 19.0 23.0 9.0 \n", 367 | "2007-08-11 10 61 2 27.0 6.0 13.0 0.0 14.0 13.0 4.0 \n", 368 | "2007-08-11 17 140 1 17.0 20.0 4.0 9.0 15.0 17.0 7.0 \n", 369 | "2007-08-11 43 63 2 19.0 10.0 5.0 3.0 13.0 13.0 6.0 \n", 370 | "2007-08-11 60 59 0 10.0 14.0 2.0 8.0 20.0 18.0 6.0 \n", 371 | "... ... ... ... ... ... ... ... ... ... ... \n", 372 | "2022-09-17 145 88 0 6.0 16.0 1.0 7.0 7.0 9.0 5.0 \n", 373 | "2022-09-17 93 20 1 20.0 10.0 7.0 3.0 10.0 11.0 8.0 \n", 374 | "2022-09-17 131 79 2 16.0 19.0 11.0 7.0 9.0 9.0 6.0 \n", 375 | "2022-09-18 22 2 0 5.0 13.0 2.0 7.0 10.0 10.0 3.0 \n", 376 | "2022-09-18 47 142 2 7.0 14.0 2.0 4.0 8.0 11.0 5.0 \n", 377 | "\n", 378 | " AC HY AY HR AR y \n", 379 | "Date \n", 380 | "2007-08-10 0.0 4.0 3.0 0.0 0.0 0.0 \n", 381 | "2007-08-11 1.0 0.0 3.0 0.0 0.0 -3.0 \n", 382 | "2007-08-11 6.0 1.0 2.0 0.0 0.0 0.0 \n", 383 | "2007-08-11 5.0 2.0 1.0 0.0 0.0 -1.0 \n", 384 | "2007-08-11 4.0 3.0 1.0 0.0 0.0 1.0 \n", 385 | "... ... ... ... ... ... ... \n", 386 | "2022-09-17 7.0 2.0 1.0 1.0 0.0 3.0 \n", 387 | "2022-09-17 1.0 2.0 2.0 0.0 0.0 0.0 \n", 388 | "2022-09-17 1.0 1.0 2.0 0.0 0.0 -4.0 \n", 389 | "2022-09-18 3.0 0.0 2.0 0.0 0.0 3.0 \n", 390 | "2022-09-18 14.0 3.0 1.0 0.0 0.0 -1.0 \n", 391 | "\n", 392 | "[20995 rows x 16 columns]" 393 | ] 394 | }, 395 | "execution_count": 4, 396 | "metadata": {}, 397 | "output_type": "execute_result" 398 | } 399 | ], 400 | "source": [ 401 | "# convert categorical variables into numbers\n", 402 | "l=LabelEncoder()\n", 403 | "l.fit(np.union1d(data_.iloc[:,0].values,data_.iloc[:,1].values))\n", 404 | "data_.iloc[:,0]=l.transform(data_.iloc[:,0].values)\n", 405 | "data_.iloc[:,1]=l.transform(data_.iloc[:,1].values)\n", 406 | "\n", 407 | "ll=LabelEncoder()\n", 408 | "ll.fit(data_.iloc[:,2].values)\n", 409 | "data_.iloc[:,2]=ll.transform(data_.iloc[:,2].values)\n", 410 | "data_" 411 | ] 412 | }, 413 | { 414 | "cell_type": "markdown", 415 | "metadata": {}, 416 | "source": [ 417 | "# Model traning" 418 | ] 419 | }, 420 | { 421 | "cell_type": "code", 422 | "execution_count": 5, 423 | "metadata": {}, 424 | "outputs": [], 425 | "source": [ 426 | "# define a percentage split between train and test\n", 427 | "percentage=0.15\n", 428 | "\n", 429 | "df_train=data_.iloc[:int(len(data_)*percentage)]\n", 430 | "\n", 431 | "# input hyperparameters for model fitting:\n", 432 | "parameters={'random_state': [100],'max_depth': [4,8,10,12],'n_estimators': [20,40]}\n", 433 | "parameters_=list((dict(zip(parameters, x)) for x in itertools.product(*parameters.values())))" 434 | ] 435 | }, 436 | { 437 | "cell_type": "code", 438 | "execution_count": 6, 439 | "metadata": {}, 440 | "outputs": [], 441 | "source": [ 442 | "d=np.array(data_) # transorm the dataset into numpy matrix \n", 443 | "roll=100 # define a rolling window for model fitting" 444 | ] 445 | }, 446 | { 447 | "cell_type": "code", 448 | "execution_count": 7, 449 | "metadata": {}, 450 | "outputs": [ 451 | { 452 | "name": "stderr", 453 | "output_type": "stream", 454 | "text": [ 455 | "100%|██████████| 3049/3049 [01:27<00:00, 34.92it/s]\n" 456 | ] 457 | }, 458 | { 459 | "name": "stdout", 460 | "output_type": "stream", 461 | "text": [ 462 | "0.089427238880926 {'random_state': 100, 'max_depth': 4, 'n_estimators': 20}\n" 463 | ] 464 | }, 465 | { 466 | "name": "stderr", 467 | "output_type": "stream", 468 | "text": [ 469 | "100%|██████████| 3049/3049 [02:32<00:00, 19.96it/s]\n" 470 | ] 471 | }, 472 | { 473 | "name": "stdout", 474 | "output_type": "stream", 475 | "text": [ 476 | "0.08907483433331322 {'random_state': 100, 'max_depth': 4, 'n_estimators': 40}\n" 477 | ] 478 | }, 479 | { 480 | "name": "stderr", 481 | "output_type": "stream", 482 | "text": [ 483 | "100%|██████████| 3049/3049 [00:39<00:00, 77.71it/s]\n" 484 | ] 485 | }, 486 | { 487 | "name": "stdout", 488 | "output_type": "stream", 489 | "text": [ 490 | "0.09061612915346963 {'random_state': 100, 'max_depth': 8, 'n_estimators': 20}\n" 491 | ] 492 | }, 493 | { 494 | "name": "stderr", 495 | "output_type": "stream", 496 | "text": [ 497 | "100%|██████████| 3049/3049 [01:13<00:00, 41.33it/s]\n" 498 | ] 499 | }, 500 | { 501 | "name": "stdout", 502 | "output_type": "stream", 503 | "text": [ 504 | "0.09677554965449649 {'random_state': 100, 'max_depth': 8, 'n_estimators': 40}\n" 505 | ] 506 | }, 507 | { 508 | "name": "stderr", 509 | "output_type": "stream", 510 | "text": [ 511 | "100%|██████████| 3049/3049 [00:37<00:00, 80.28it/s]\n" 512 | ] 513 | }, 514 | { 515 | "name": "stdout", 516 | "output_type": "stream", 517 | "text": [ 518 | "0.09079908308287721 {'random_state': 100, 'max_depth': 10, 'n_estimators': 20}\n" 519 | ] 520 | }, 521 | { 522 | "name": "stderr", 523 | "output_type": "stream", 524 | "text": [ 525 | "100%|██████████| 3049/3049 [01:13<00:00, 41.23it/s]\n" 526 | ] 527 | }, 528 | { 529 | "name": "stdout", 530 | "output_type": "stream", 531 | "text": [ 532 | "0.0951668871973804 {'random_state': 100, 'max_depth': 10, 'n_estimators': 40}\n" 533 | ] 534 | }, 535 | { 536 | "name": "stderr", 537 | "output_type": "stream", 538 | "text": [ 539 | "100%|██████████| 3049/3049 [00:42<00:00, 72.44it/s]\n" 540 | ] 541 | }, 542 | { 543 | "name": "stdout", 544 | "output_type": "stream", 545 | "text": [ 546 | "0.09224591663016006 {'random_state': 100, 'max_depth': 12, 'n_estimators': 20}\n" 547 | ] 548 | }, 549 | { 550 | "name": "stderr", 551 | "output_type": "stream", 552 | "text": [ 553 | "100%|██████████| 3049/3049 [01:12<00:00, 42.07it/s]" 554 | ] 555 | }, 556 | { 557 | "name": "stdout", 558 | "output_type": "stream", 559 | "text": [ 560 | "0.09764736813271888 {'random_state': 100, 'max_depth': 12, 'n_estimators': 40}\n" 561 | ] 562 | }, 563 | { 564 | "name": "stderr", 565 | "output_type": "stream", 566 | "text": [ 567 | "\n" 568 | ] 569 | }, 570 | { 571 | "data": { 572 | "text/plain": [ 573 | "{'random_state': 100, 'max_depth': 12, 'n_estimators': 40}" 574 | ] 575 | }, 576 | "execution_count": 7, 577 | "metadata": {}, 578 | "output_type": "execute_result" 579 | } 580 | ], 581 | "source": [ 582 | "# train RF and find the best hyperparameter:\n", 583 | "accuracy=[]\n", 584 | "for param in parameters_:\n", 585 | " pr=[]\n", 586 | " model=RandomForestClassifier(**param)\n", 587 | " for i in tqdm(range(roll,len(df_train))):\n", 588 | " try:\n", 589 | " X_test=np.round(np.median(d[np.where(np.logical_and(d[:i,1]==d[i,1],d[:i,0]==d[i,0]))][-3:],axis=0))[:-1].reshape(1, -1)\n", 590 | " \n", 591 | " model.fit(d[i-roll:i,:-1],d[i-roll:i,-1]) \n", 592 | " pr.append(np.array([d[i,-1],model.predict(X_test)[0]]))\n", 593 | "\n", 594 | " except:\n", 595 | " pr.append(np.array([d[i,-1],float('Nan')]))\n", 596 | " \n", 597 | " results=pd.DataFrame(pr,columns=['Actual','Predicted'])\n", 598 | " \n", 599 | " accuracy.append(balanced_accuracy_score(results.dropna()['Actual'],results.dropna()['Predicted']))\n", 600 | " print(accuracy[-1],param)\n", 601 | "\n", 602 | "best_param = parameters_[np.argmax(accuracy)]\n", 603 | "best_param\n", 604 | "\n", 605 | "\n" 606 | ] 607 | }, 608 | { 609 | "cell_type": "markdown", 610 | "metadata": {}, 611 | "source": [ 612 | "# Model evaluation" 613 | ] 614 | }, 615 | { 616 | "cell_type": "code", 617 | "execution_count": 8, 618 | "metadata": {}, 619 | "outputs": [ 620 | { 621 | "name": "stderr", 622 | "output_type": "stream", 623 | "text": [ 624 | "100%|██████████| 17846/17846 [07:11<00:00, 41.39it/s]\n" 625 | ] 626 | } 627 | ], 628 | "source": [ 629 | "# evaluate model performance with test data\n", 630 | "pr=[]\n", 631 | "\n", 632 | "for i in tqdm(range(len(df_train),len(data_))):\n", 633 | " try:\n", 634 | " X_test=np.round(np.median(d[np.where(np.logical_and(d[:i,1]==d[i,1],d[:i,0]==d[i,0]))][-3:],axis=0))[:-1].reshape(1, -1)\n", 635 | " model=RandomForestClassifier(**best_param)\n", 636 | " model.fit(d[i-roll:i,:-1],d[i-roll:i,-1])\n", 637 | " \n", 638 | " pr.append(np.array([d[i,-1],model.predict(X_test)[0]]))\n", 639 | "\n", 640 | " except:\n", 641 | " pr.append(np.array([d[i,-1],float('Nan')]))\n", 642 | " \n", 643 | "results=pd.DataFrame(pr,columns=['Actual','Predicted'])" 644 | ] 645 | }, 646 | { 647 | "cell_type": "code", 648 | "execution_count": 9, 649 | "metadata": {}, 650 | "outputs": [ 651 | { 652 | "data": { 653 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYcAAAEWCAYAAACNJFuYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABaS0lEQVR4nO29d5wkZZ34//5Up8l5d3Z2NudlYTNIWBBQJCigHIYTxDtUgqe/O0/PdOr39Gv4qqh3Zj1RUVBBQURgyZJ3hU0smwO7OxtnJ+eZDvX8/qiq3p6Znpme7qqe2enn/XrNa7q7qutT1V39fJ5PfEQphUaj0Wg0iRhjfQIajUajGX9o5aDRaDSaQWjloNFoNJpBaOWg0Wg0mkFo5aDRaDSaQWjloNFoNJpBaOWgyWlEpFNE5oz1eUx0ROS/ROTusT4PTepo5aBxBRF5VkRaRCQ01ucyGpRSRUqpN7IlT0RmiYgSEf+A138tIl/N1nloNCOhlYMmY0RkFnAhoIBrxvZsNBqNG2jloHGDm4D1wK+BDzovishdIvJJ+3GtPWP+qP18nog0i0W5iDwsIg229fGwiEyz93u3iGxMFCYinxSRB5OdiG3BfFVEXrZdRn8VkUoRuUdE2kXkVVuZOfsrEZlnP/61iPxIRB4RkQ4R+buIzLW3DZrx27I+nHA9z4lIm4g0isi9mXygInKNiGwXkVZbzuKEbQdF5D9EZKuIdInInSJSLSJr7fN+SkTKE/Y/1/48WkXkNRG5eBi5K0Vks32cP4rIvYkWjYh8RET22d/dQyIyNWHb/4jIYftz3igiFw4hI09E7haRJvucXhWR6kw+L437aOWgcYObgHvsv8sTfujPARfbj98MvGH/B7gIeEFZ/VsM4FfATGAG0AP80N7vIWB24uAI3Aj8dpjzeR/wAaAWmAuss49fAewE/s8w7/1H4MtAObAP+Now+ybyf4En7PdNA36Q4vsGISILgN8D/wZMAh4F/ioiwYTd/gG4DFgAXA2sBT4PVGF9nv+ffaxa4BHgq1jX/yngfhGZlERuEPgzlpKvsM/hXQnbLwW+AbwHqAEOAX9IOMSrwHL7vb8D/igieUku8YNAKTAdqARuw/rONeMIrRw0GSEia7AG9fuUUhuB/cD77c3PAReKiIGlDL4FXGBve7O9HaVUk1LqfqVUt1KqA2tAfrO9rQ+4F0shICJLgFnAw8Oc1q+UUvuVUm1Yg+Z+pdRTSqko8EdgxTDvfUAp9Yq97z1Yg10qROzPYapSqlcp9eII+zfas+ZWEWnl1GcG8F7gEaXUk0qpCHAHkA+cn7DPD5RS9Uqpo8ALwN+VUpvtz+vPCdd4I/CoUupRpZSplHoS2ABcleSczgX8wPeVUhGl1APAKwnbbwB+qZTaZMv5HHCeY4kppe62v8uoUuo7QAhYOMRnVQnMU0rFlFIblVLtI3xemiyjlYMmUz4IPKGUarSf/85+DaXUfqATa4C9EGtAPyYiC0lQDiJSICI/E5FDItIOPA+UiYjPPuZdwPtFRLAsgvvswWko6hMe9yR5XjTMe08kPO4eYd9EPg0I8IrtDrp5hP2rlFJlzh/W5+YwFWtWDoBSygQOY1lCDqle40zg3QMU0Rqsmf9ApgJHVf9unIeHOa9OoMk5L9vdt9N2rbViWQdVSeT8Fngc+IOIHBORb4lIIMl+mjHEP/IuGk1yRCQfy8XgExFnUA1hDezLlFKvYSmA64GgUuqoiDyH5YYqB7bY7/kk1gzzTUqpEyKyHNiMNdiilFovImEsBfN++s+ys0WX/b8AcGa5U5yNSqkTwEcgbk09JSLPK6X2pSHrGHCW88RWitOBo2kc6zDwW6XUR1LY9zhQKyKSoCCmY1mDznnNTDivQiwL4KgdX/gM8BZgu1LKFJEW7O8wEdsa+jLwZdvqeBTYDdyZxvVpPEJbDppMeCcQA87Asg6WA4ux3Bw32fs8B3wMyxoAeBb4OPCiUipmv1aMNdttFZEKkscEfoMVh4im4LJxHaVUA9bgfKOI+GzLYK6zXazA+TT7aQtW5lZs8JFS4j7g7SLyFntG/UmgD3g5jWPdDVwtIpfb550nIhcnnGsi6+xz/piI+EXkWuCchO2/A/5ZRJaLlbL8dSx31kGs7zAKNAB+EfkSUJLshETkEhE5y7YM27HcTOl+VhqP0MpBkwkfxPLv1ymlTjh/WIP4DWJl9jyHNXA4yuFFrNn38wnH+W8sn3ojVtbTY0lk/RY4k+ED0V7zEeA/sFwpS+g/WJ8N/F1EOrGC6P+qlDqQjhCl1G6sWMEPsD6Tq4GrlVLhNI51GLgWK1jdgGVJ/AdJfvv28a8DPgS02ufwMJZiQin1NPBF4H4sK2MuVvAfLDfRWmAPluupl/4uqUSmAH/CUgw7se4RXSA3zhC92I/mdMB2YZ0EViql9o71+eQKIvJ34KdKqV+N9blosou2HDSnC7cDr2rF4C0i8mYRmWK7lT4ILCW5JaeZ4OiAtGbcIyIHsQKb7xzbM8kJFmLFPIqwAtHXK6WOj+0pacYC7VbSaDQazSC0W0mj0Wg0g5gQbqWqqio1a9assT4NjUajOa3YuHFjo1JqUCsVmCDKYdasWWzYsGGsT0Oj0WhOK0Tk0FDbtFtJo9FoNIPQykGj0Wg0g9DKQaPRaDSD0MpBo9FoNIPQykGj0Wg0g9DKQaPRaDSD0MpBo9FoNIPIWeWg24ZoNBrN0OSkcmhoaOAdb387d9+tW8hrNBpNMnJSOTQ2NhKJRnn44eHWqNdoNJrcJSeVg2maY30KGo1GM67RykGj0Wg0g8hJ5eAEo3VQWqPRaJKTk8ohFosBICJjfCYajUYzPslJ5aDdShqNRjM8WjloNBqNZhA5rRx0zEGj0WiSk9PKQcccNBqNJjljqhxE5JciclJEtiW8ViEiT4rIXvt/udtynYC0RqPRaJIz1pbDr4ErBrz2WeBppdR84Gn7uavomINGo9EMz5gqB6XU80DzgJevBe6yH98FvNNtudpy0Gg0muEZa8shGdVKqeMA9v/JyXYSkVtEZIOIbGhoaBiVAK0cNBqNZnjGo3JICaXUz5VSq5VSqydNmjSq98aVg85W0mg0mqSMR+VQLyI1APb/k24LiCsHna2kmSDceeedugW9xlXGo3J4CPig/fiDwF/cFuAoB13noJko3HvvvfzmN78Z69PQTCDGOpX198A6YKGIHBGRDwH/D7hMRPYCl9nPXUX3VtJoNJrh8Y+lcKXUPw6x6S1eyo1bDjqlVaPRaJIyHt1KnnMqW0lbDhqNRpOMHFcOOuag0YyGkydPEo1Gx/o0NFkgJ5WDvrk1mtETjUa58cYbufPOO8f6VDRZIKeVg26jodGkjvO7+etf/zrGZ6LJBjmpHBylEIvqSmmNRqNJRk4qB2cGFI1p95JGo9EkI8eVg7YcNJpU0UWjuUVOKwfdgE+jSR0do8stclo5KKW0gtBoNJok5KRySFQIOq1Vo9FoBpOTyiFRIWjlkJsopTh27Jj2o2s0Q5DzykG7lXKTF198kX/6p39i69atnsp5/vnn+fznP++pjGyhG1XmFmPaeG+s0JaDZtu2bQDs27ePZcuWeSbnG9/4xoSZgGjlMHqUUjgrVU6aNOm0+gxz3nKIRCJjeCaaic5EUQyglUM6/P73v+fGG2/kxhtv5N577x3r0xkVOa8ctOWg0Wi8YsuWLfHHr215bexOJA1y0q2UaC1o5ZDb6IB06mjLYXREo1F27dzFW6e9lZiKsX7HemKxGD6fb6xPLSVy03LQykGj0XjMjh076O3rZXHFYpZULKGnt4edO3eO9WmlTG4qh2gUw54F6ZhDbqNnw6mjK6RHx8svv4zf8LOkYglLKpfgM3y8/PLLY31aKZOTyiESiZDntzxq2nLQaFJDK4fUicViPPfsc5xZcSb5/nwK/AWcWX4mzz373GnzOeakcohGo4R8lnLQlkNuo2MOqaMnUqmzefNmmpqbOL/m/Phr59WcR0NjA6+9dnoEpnNTOUQi5PkD1mN9w+c02q2UOvq3kjpr166lKFjEiqoV8ddWTVpFQaCARx99dAzPLHVyUjlEolFCfm05aLRyGA0TqWbDS5qamnj5pZdZM2UNQV8w/nrQF2TNlDW89OJLtLS0jOEZpkZOKodoNEqeT1sOGu1WGg133XUXoD+zkVi7di0xM8al0y4dtO3SaZcSjUVZu3btGJzZ6Mhd5ZAFy2HTpk1cd9117N+/3zMZmtODiTCg1tXVjfUpjHtisRiPPPwIZ1aeSXVB9aDtNYU1nFFxBo8+/Oi4t8RyUjkkupW8/IJefPFFOjs72bFjh2cyHE6XDIiRiMVifOpTn+KVV14Z61NxlYmgHJxrMIycHDZSYsOGDTQ1N3FJ7SVD7nNx7cWcbDzJpk2bsnhmoyfnvmWllG05WG6lcDjsqazE/17h9G+ZCHR3d7N161b++7//OyvysjVoTyTlMBGuBayMogcffJDu7m7Xjvn0009TFCxiedXyIfdZOWklhcFCnn76adfkekHOtc9wLIW8LFgOzo/I66Dnr371K0+Pn02cz6y3tzcr8rIVkD6d2iYMxURRCg5f+tKX6OvrIxQKceWVV2Z8vHA4zN/X/51zJp2D3xh6aA0YAVZVrWL9uvVEIhECgUDGsr1g3FoOInJQRF4XkS0issGt4zoxBicgrbOVNNmgr69vrE8hY7KlHEzTpK6uzlNXaXt7e/w7cSuWsmvXLnp6e1heuXzEfZdVLaO7p5s9e/a4ItsLxrvlcIlSqtHNAzrZSdmIOThk80el/cGjI1vfTU9PD8XFxVmR5RXZ+qyefPJJvvOd7/D5z3+eiy++2BMZe/fuTfo4E3bt2gXA/LL5ANyz+x52t+ymO9pNgb+AheULuWHhDdY+pdY+O3fuZMmSJa7Id5ucG0kc5ZCNbCXHZZGtdFmvFV1bWxudnZ2eysg22XIreekmy1bWS7aUw5EjRwA4duyYZzK2b9+OiLB07kXs2rXbldjjkSNHKA2VUhy0JgG7W3ZTH61nzZVrqI/Ws7tld3zf0lApxaFijh49mrFcrxjPykEBT4jIRhG5ZeBGEblFRDaIyAZnpaVUcJRB0OdHRLIycGfLf+71IPGv//qvE2bJy2zj5SQk8R72cgDPpgUM3t7PGzZspKZyDgtmrCYc7mP79u0ZH7O1tZXSYGn8eXe0myuvvJLbb7+dK664gu5o/8B3abCU1tbWjOV6xXh2K12glDomIpOBJ0Vkl1LqeWejUurnwM8BVq9enfJd6/yQfGLgN4ys/Giz5W/2WjkcO3bM09kcnLqGiZZF5KW7L1E5mKbpWeA7W59VW1sbAM3NzZ4cv6Wlhd27d7Fm6XXMmrIEvy/A+vXrWbFixchvHoZoNNovEF3gL2Dt2rUopXjssceo9veve/CLf1wX4Y5by0Epdcz+fxL4M3COG8d1voyAz8Bv+Dz9chyLwc1UueGYCMF1Rzlky92TLTl+v3fzsESXSDZSs73m+PETAJw4ccKT469btw6lFAumryIYyGPWlCW89NLLGV9fXl4efbFTE8F8fz69vb08+OCD9Pb2ku/P77d/n2llSo1XxqVyEJFCESl2HgNvA7a5ceyBloOXysFRCj09PZ7JSGQ8z0JSxVFwEy1t0kvLoaurK+ljt8l2zOHw4SOeHP+ll16irHgSk8tnALBgxtmcPFmfcSeD8vJyWvpS65mklKKlt4WKioqMZHrJuFQOQDXwooi8BrwCPKKUesyNAzsDqN/IgnKwf6jZshwmgnJwrC2vZ/TZVj5eWnUnT55M+thtnFiAl59ce3s7LS3N+IMFnDxZ7/pvp6enh82bNzN/2qr4PTZ/2goEYf369Rkdu7a2lu5IN+3h9hH3bQu30RvtZerUqRnJ9JJxqRyUUm8opZbZf0uUUl9z69jOj9RnGPg8Vg6dnR32/+xk+Ewk5TDRYg4dHR2eHfvw4cPxx86s2wviMS0PPzInrbR20YUArvcle/3114lGo8yrXR5/rTC/lJqq2WzYsDGjY8+ePRuAQx2HRtzX2WfOnDkZyfSScakcvMS5wf2Gz3PLobOj0/7v3cCQyESIOWS7MjrbQVYvWLt2LYiAiKepkc5vJxaLeva57d5tpXtGeq3fjlM74BY7duzAEIPaSfN58tXf8uSrvwVg+uRF7NmzO6Pf0Pz5Vu3CgfYDI+57oP0AIsLcuXPTluc1Oacc4m4lEXzisXLosm7w9nbvBoZEJoLl4ARUsxUo9jKAm4iXSq+pqQkMH76CQs8yfODU/WWapmeW0Pbt2zH8QXo6mygsnexKimkiBw4coLK0hmAgj/rmQ9Q3WzP4KRWziEajGSnXoqIipk+bzv62ka2d/W37mTF9BoWFhWnL85qcVQ4+w/BUOfT29tIXtmYhHR3arZQq2bZ+stXN1vP6AwH8Pk8/v8RjNzU1uX78WCzGtm3bCQQLACidsoDXX9/m6ndUX3+S0sJJg14vLZ4MZB6zWbR4EW90vDHs962U4o2ON1i0eFFGsrwmt5WD4V0RXHu7FZSqzPfR09ublUHPS+WQrSrcbGcrZUtOViwhU3maFdXXFwZ77XUvYhv79u2jp6cbv60cKqYupqOjnYMHD7omo7Ojg7xQ0aDX84PWDD5Ti2j+/Pm097UPm7XU3NdMZ7gz7oYar+SuchADv4eWg6Mcaor8/Z57iZfKIfH8s5H+6zWOm8dLd0+i4vFcjgj4fZ4VXHZ0dBCJhJH8QsQwXOtHlMiWLVsACIQs5VA57Yx+r7tBLBbDZwwuEjQMd3qtOUHpo11Du6eOdB7pt+94JeeUw6mAtOVW8mpG7JTF1xQH+j33Ei+tk8Q1b70MrjpKyFTeunucliuNja72dezH8ePH44/feOMNz+T09vaCz4dZVERdQuaSm2zbZpUZSSgfX9VUXtu61XUZW7ZsobiiFrGtk/yiSgpLJ7uqHHx+PzFz8OTGeS3T9tm1tbUAnOwZ2j3lbHP2Ha/knHJItBy8dCs5yqDWVg5eDqgOXgZXE5WDl0FPx5fd29PrqYVy4KCVUfLGgZEzS9Ll5Zdfth74fby07mVP4hsnT560JgWBIMbkKdQdOuTJROTVV1+1rJNACKN2Lrt37XI1KB2Lxdi+YwdlNQv7vV5Ws5Bt27a75v7Lz88nHBlsXUUilmWXl5eX0fHLy8sxxKC1r3XIfVr7WvH5fJSVlWUky2tyVzkY4mmdg/MD3d5g3XSJg6tXeNnD6U9/+lP8sZfXsmGDtXSHUsozOV1dXTQ1WkroyOHDnt0DL697Gfw+KCqgpamZffv2uS5j8+bNAEgohDF9OkopXnvtNVdlKKVYt/7vEMxHRPDPWIhpmvHvyg0OHz5Mb08PZdX9/fBl1fPo7OxwradXQUE+4cjgjgV9Ueu1/Pz8QdtGg8/no7CwkK7I0JXqXZEuigqLxn17/fF9dh7guJF8WXIrtfRYx/dqoEucUXnZpiPxx+ll/CTRwvIqXTKekRL0YZqmZ5bQvn37IRiw/nC/oCt+TBEI+JHKKjAM111Y+/fvp6mxAcmzBk5j8jSM/MJTlpELOOdcUjWz3+vO8wMuWXh5eXlEYkksh2hffHumBINBIubQLt6wGSYYDGYsx2tyVzmIrRw8mjU2NzfjNwSfAX5DPIs5JLqSvFQOiUrUy2rfRDleXU/cUjAGy3QT0zStgRvv5PT09NgyBPH5MAIB14P6zz77LIiB5FkZPWIY+GYuZv36v7smy6ovEArL+ncuLSy32ku4lR3l8/mSxrOU7fJzo6OtYRjDxsyUUqfFkrE5pxwGxhy8GhhaWlrw259uSZ7fs9lpYmsOL9t0xGKx+DjnpXKI5+zjXQwl3gnTtKwur2ZxNTU1EI1Zf+BJH514ppKDyymzPT09rH3sMfwzFyIJbpDAwpX09fXy+OOPuyLn5MmT5BWWYvj6B4T9gTyCeUWu9YyKRqP4xMeTr/42XgR39+Nf5bV9z8e3Z4pSCmHo70FEslZfkwk5pxxOuZW8rZBuaW7CZ98fpSHxzK2U6IbxMugdjUYxDAiFDM8tByfT0KsOo/EJgT2QejVBKC8rA9ME2/VXWlo6/BvSoKWlpZ9CkGDQ1YnIH/7wBzra2wkuv6jf60b1dPw1s7nnd79zxc3Y3NxMqKAs6bZQQalr19TW2kZ+qJj65kP0Rbrpi3RTV7+T9m4rBuXGtcSiydNlHXziIxbNTt1QJuSuchADn3hnOThuJYDSkEGzBxWljhwHL6pWHaLRKGJAKORdWm40GrWUkD159CrNNO6TD/n6P3eRvr4+9uzdawWkbReC260gmpubrZTSBMtHVU9hw8aNrgxy+/bt49777sO/YDm+6un9tokIwQuuor29g5/+9KcZy2ppaSWQV5J0WyCvxJV7TinFifoTlBRWDdrmty0WNwLf0ZhlnQyFT3xEY+O/m0HOKgdDrGwlLzR4LBajrb0jQTn4aG72ZuCur68HIOCDk/ZjL4hGI/gMyMszPRu0nb42/iAEQoarlbGJ/O1vfwNDoDCIBP2WT91l7rrrLqtle0EeBHwYkyv4zW9/66pi/fWvf00kEkEKT1X8+pYtp6enh7vvvjujY0ejUf7fN7+J5BWQd95VSffxVdYQXHERTz31FOvWrctIXktLC8GC5MohWFBKc3PmlvexY8fo6elhcvn0Qdt8ho/C/BJXMspM08SQoYdWQwyUOf7XK8k55eD4+gwRDBFM033l0NLSglIqHnMoDRm0tXd44sJyCq1CATh+4rgn7SCUUoTDEQwDCgqgvt6bFbqcGbwRgLwK5Ul2T0tLi5WzX+C3YhsLK3ju+eddDeIeOnSI+++/H2PxHCQYRBCMN6+mo6ODX/3qV67I2LNnD4899hjGmWdBwipzRkUlxuIz+Mtf/pKRcn3kkUeoO3SIwJprkLwCel96hFjTcWJNx+l+6Bf0vvQIAMGVl+CrqOaHP/px2lZ4LBajpaWZvMJydr54Nx2Nh+hoPMTf//J1dr54N3mF5TQ1NWV8bztpv9Ork/U0EqZNWsjmzVsyljNSQNpUJmJkp7FkJuSccnBu4Ltf34AhBrGY+4Ehx9XjWA5leZaJ6UXcoa6uDr8PAn7o7e3zZFbf2tpqZ1hAURE0NTV7Uo3trEtg+CG/XHH4iPvVvlu22D/+fMuNIHPKiEWj8QpgN/jrX/8KPh/G2WfGX5OKUmTRLB5/4glXFNHTTz+N+Hz4Vq4etM2/+mwUZGQRPfzII/gnTycwazEAZtNxCPdBuI/Y8YPWc0B8PgKrLqXhZD0bN6a3HsLJkycxTZOCksm0N9URDfcQDffQcmwX7U115JdMIhIJZxx3WLduHWXFk6gsqUm6fW7tchobGzKelASDQcKxoZMpwmZ4XC8P6pCTykGAQ23N+AxvsgYc379vgHLwIiZw4MB+gn5LOVjP3a/4ddw9Ph8UF1uWRGJrCLdoaGhADCu+GiwUuru6XU9njQ/M9ncjtpJwU45pmojfB3kDsqAK8zFjMVfSGA8fPoyUVyBJMq0kLx9faSl1dXVpHTsajVJ3qA5jWmprDfinzwPSj904Fo6TtjqQIvv1TO7tlpYWNm7cyOIZ5w7ZBHHB9FUYho9nnnkmbTkAxcXFdEaGzhzsjHRSXFyckYxskHPKIVEZGGJ4EhhylIDjViq3lYPbs/qOjg7q6xsI+CFojzdeVOE6Mym/H5yKfy9cPg0NDThxvGDRqdfcJL5mr20xqk5rhldeXu6ajDPOOAOztw919FT6pVIK3jjK7DlzXJk1FhYWIsO5KaPRtNcKUEqhlAnDZNz0w94v3YnW7t27ERGKK2ck3e4Uwu3Zsyet4wM8+eSTmKbJWXMvHHKfgrxi5k1bwZNPPJlRGnXVpCpawsN3Za2sqkz7+Nki55SDla9vzRwMj/KNm5ubrfb60t9ycLvWwVk1K+QHwxAqSwzXV84Ce/Usw7IcSsvA7xd27NjhqgzTNNmzdw92c0zyyqz/bnf/jA+Yjls5YvZ/3QUuvNAagFR9gqUYjWE2tXLRhUMPTqOho6Nj+JoGST/lOBAIUFBYhOpOrW5GdVty0u0V9Prr2yipmok/kFxpBkKFFFfUsvX119M6vmmaPPzwI0yvXkhV2fDN7lbOfwtt7W289NJLackCq6Heie4TTC+ezqKyRfG/GcUzMJXJye6T477pHuSgcuhvOXijHBobGynJ98d/u8UhA0PEdbfSrl27EOLdGagpV+zcucPVoHQsFmPjxg04zSoNAyZNUmzY8IprMgA2bdpEZ0cnfnt8KKiAYIFhZRa5yPr1661B1Wfd+lIWOvW6S7z66qvWg8CpQDGGIH4fmzZtyjgx4eWXX2bTpk0wXMvnWbN4ed26tPsflZeXoXpTqzNRvd32e0ZvffX09LBjxw4qas8Y/nxqz2Db69vSmtFv2rSJEyeOs3LBW0fcd/bUMykvqbbiRmkya9YseqO9vG362/jc6s/F/25YeAMne07SF+tj1qxZaR8/W+SccrBiDt5aDk1NTZSFTn20hgil+e5XSW/fto1JZZbiAZhWJbS1tbvWpAwsBdTe3kGiJ2RqLRw9erzfwvaZcu999xIsMPDbrW3EEKoWmbzyyiuuxVE2b97MAw88gCyoAL8dc6gsQGaXcc/v7nHF6nriiSf4+je+gVFdiXHGKZ+9+HwYF67k9ddf54tf/GLadQhr167lK1/5CkbVJHzLVw65n2/V2fjKy/niF7+Ylg9dxIgX742IvV86jeS2bt1KLBalctqZw+5XNe1MwuG+tBIHHn30UQryilk44+wR9xUxWD7vErZt25b2/b1wodVZdn/7YNers4Sos894JueUwyDLQSnX0z+bGhv6KQeAspC4GnOIxWLs3LmD2gTXZW2lJdNNl89LL72EYQjBBOUwbZr1363Ga7t27eK1La9RvVT185RULxH8QeHee+/NWEZ7eztf+/rXoSwP48L+vm3j4pmY+X6+8n+/klFg+q677uKOO+7AnFyOcfkFmH9/HdXUimpqJfrQs6iGVnwXrWLTls3c/tGPjjp77dFHH+V73/seTK3F/45rEL+f6MsvopoaUU2NhP/6F6IvvwhYldK+q9+Jqq7mm9/85qgVRGdXJxJMLTYiQUujp+PG2rBhAz5/kPKaBcPuV1G7GMPwjdoS6uzsZP369SyZfUG80G0kzpp7ISLC008/PSpZDrNnz6Ygv4BdLYMnG7tadlFYUMjMmTOTvHN8kZPKwRmAnBm329ZDU1NTPM7gUBYyaGp0L7haV1dHd08vtZWnRtNJpZAXNFytxF237iWqqxWJadmFhVBZKbz00ouuyHj66afxBYRJAyZT/jyhYp7i+Reez3gltfvvv5/2jnbkrbOQYP/vRvIDyFtm0djQyEMPPZTW8Xfu3Mk9v/sdsmAmxlUXIfkhVFMrhCMQjqCON6CaWjEWz8G4+mIam5r40Y9+lPLx29ra+P73v48xbTr+y6+MZymZTU0QDkM4jDp+zHruXFcohP+Kq5ApNdxxxx2jUnxdHZ1gr8gGoMK95OXl8a53vYu8vDxUOOH7CFndWtPp7bVp82bKahbg8w/f38ofyKNsyvx4rUKqvPrqq0SjURbPOrff633h7n7X0xc+lV5clF/GjOrFvPRSepMfn8/HWUvPYkdL/0maUoodrTtYtnyZbrw3Hkm0ErxQDtFolLb2jsHKIc/naszBsQ6mVSX01RGhplyxY4c7yqGuro6jR4+TLHY2tVaxe/ceV2o39uzdQ0GVwhccHGAtnipEI9G00zIdGhoaMAqDSFVB8h2mFGKE/Glbd0eOHAGlMBbMGrHASSZXIOUlHBrFNTU2NlqVt/PmI6MYWMQfwJgzl2g0Oiq3phpQqKXCvVx55ZXcfvvtXHHFFf2Ug5PgMVoLvK2tjcN1dVRMXZzS/uVTF/HGG2+MqufWa6+9Rl6wgKmV/dNyeyPd/a6nN9K/9mTO1KUcOnQw7Yr2VatWcbL7JPXdp7oW1HfX09jdyMqVQ7sDxxM5pxysIjjb30x6N/VwOD/A0gFupdKQj47OLtc6je7atYuCkEHZgCSbqZXCoUN1ruTtOxkb0wZ3G2DaNOtzc8O11NzURGCIMdte9z1jJTRr1izMjj5U2xAWSGMPZl80bXN/zZo1FJeUoNa9hooMH3A2d7yB2djCNVdfnfLxp02bxuTqaszNG1GjCGircBjztc1Mmz6d6urqkd9gU1BUhOo9dQ9JMI+1a9fy4x//mMceeyzuSgJQfdZ+o834crLtyqrnpbR/WfU8lFKjSmk9cOAAkytmDoqH5AUK+l1P3oAbcEqFFexPt8p89WqrOHFb06kYyetNr/fbNt7JOeVgtdO1MDzoyukoh2SWA7hXJb13z26qy9Wggp6aCkEplXEzOaUUTz31JJMmCQVJBu6yMigpNXjqqSczkhMOh2lobIzXNQwkZL+eaT9/Z7amGpMrTdVozRxXrVqV1vHz8/P5zKc/jdnUirlz6M9exUzUui2sWLmSq65K3rMoGaFQiE/++79jtrUR27ol5ffFNm/E7OzkU5/8JP6ENhsjUVFWjuo55SaSYB69vb08+OCD9Pb29lMOpr1fvIYkRZyBt6QqeX3DQJx6h9EM2E1NzZQUDD6vULCg3/WEgv1v8uJC6z3pJpHU1tZSPbk6rhAAXm9+nak1Uz1p3e4FOaccrAVYrMfGcHniaeIM/qUDlENpnvVRu5GxFIlEOFRXx5Sywedfbb+WaZHa1q1bOXz4CHPmJreqRGDOHJPt23dklE30xBNPYMZMSmqTfxf+fCioMHjssbVpK3GlFI8++qh13gVDDJD2648++mhalmQ0Go1/DpI3TCDXECQYpLOzgxMnRtejasWKFcyfPx81CneUOnyYpUuXcsYZw6eKDiQUCqFiKbZIsS2Z0a6LcfToUUIFJQRCqVkcwfwSAsH80WXjKYWkMcyl6ypLfP+q1avY2bqTmBkjakbZ1bqLVavTm3yMBeNWOYjIFSKyW0T2ichn3TquaZpxy8FxK7kZcxjKrVQScs9yOHLkCLGYSVVpEh99vhWUzrSj6QMPPEBensFwXpa5c62CuAceeCAtGfX19fziF/9L8RShZIjJlIhQs0Jx6FAdf/jDH0Yto7Gxkc9//vM8/PDDyLJqpCZ52wKZUYosruLee+/ly1/5csrfUywW49lnn+XDH/kId955J8a0amT20AVOIoK86Sz2HTjIhz/8YX7yk5+kHOc4cOAABw8dgqrBLaeHpLKSPXv3jtryau/sQIKpracsofSylVpaWoZcwyGpHBFCheWj+g2VlZfR0TP631xnt/WedAv7wFLmvdFeDnYc5ED7AfqifSxfvjzt42WbcakcRMQH/Ai4EjgD+EcRGd3UZwj27dtHJBbjUGszTx6wUs3cjDk4N+7afR3UtUWoa4vwzZdO8uzBzn7bM8HJv64qEZ7cHKO+VVHfqrjnb1Ge2mJSWUxGAdzGxkbWr1/P3Lkmfj9s3AAtLdbfU09az8Fa22HWLMUzzzwz6oV5lFLc8Z076Iv0MuvN1g+/bp1JdxN0N8Guh03q1llKu3w2VMyF397921G1B9m+fTu33nYrm7ZuwbhoBsb5Vg5u7MU6aOyGxm6iD+4i9mIdIoLx5pkY501j3fr13P7R20eszn7iiSf4p5v/ma9//euc6O7Ad8UFGFddiASGd98YC2fhe98VmPNn8OcHH+QDH/gA3/3ud4e1Knt6evjPL36RWCCAf5j6hoH4V51NGPjCF7+YcrzLNE0a6uuR4rKU9jeKreK30VpCfX19+PyjayXi8wfp6xu8BvRQzJ49m/rmg6OeAB5vOhB/f7qceaZVu7G3dS97Wvf0e+10QLxo8ZwpInIe8F9Kqcvt558DUEp9I9n+FTMXq8s+/8uUjr19x/ZBazgsWbLEtdSyY8eO0dzcRJ4PuiOnPtv8gNATUUyZMoXJkydnJOPkyZOcOHGCaVVCQ5uiL8H6DwWs9WXCMT+LF6enT5uamjh69CiVleDzW0ohkjCuBILgFMNGwtb2mTNnUFpalrKM7u4u9u3bT6jkVNC5uwkSm1n6glBg13EoE7oaoKS4NKWgcSQSYdeuXSifIBX5pxpdAaqpG/oS7oGQD6lM8DlHYqjmXgwFixcvTnpvtLe3W9ZZwI8UFUBeiIErQwbq9jGjfh1XXn45ax9/nLrq84jMGBB8jcZQXT3Q3UthYSFz58xJej319fXU19cjlVX9mu35D+9iRv3LCTLOJzq9f0tq1deHam5i6tSpVKVgdcRiMbZv345RUoEUWavXmY3H+2coBfMwquzupkoRO3GISVVV1tKoKXLgwAF6eiOUTJoVf63n8EZqT7wQv56jUy4kf/opV0xbwwGKCvJSThxobW2lrq6O6oqZhBKCzvUth/qlr4aCBVSXz+y3XQyTBQuGr78YiZ07d5InlmXVRx+LFiVrFz523Hfb+RuVUkkj5OPScgBqgcTyxCP2a3FE5BYR2SAiGzJvH+2egoxGo07xbT8EK8bhxpoOkYi1tsJQGZN+H0Qi0bQtop6enngvpZEIBKz4Q3f36LKjurqsH2YgNc8FYoAvZCmVVAiHw9b1Fwf7KYaUCPigOIhpmkO2JndcQVJSCPmDFQNAqOskV15+OR+9/TauvPxyQl1J1kH2+5DiQgj46erspLc3+ecYiUSsDzrQv5Ar1FU/QEaSBZ+CARA8abN+isHJESMRCAQwzf6/h2DXiX7XE+zqb42YscioAuslJSUYhkFnd2vK74lE++gLd2fkUnIoKCigL9ZHb6yX/PwUb/ZxQuqfcnZJdpf1G+mUUj8Hfg6wevVqde+t56V04Ouv/86g1gX/+9X3uNaV87Of/Qut9dsIGLC76dQ0eGFlkKZexbLpF/GZW/8hIxlf+MIXOHRyAzcv83HP3ih1Dac+mhmThCUzDdbujfGDL71zVOmLDv/5n//JG40buHy1ddyn9kDi+u6TJ8Nbl596/tBWgzdNv4TP3HpdyjL+9re/8Y1v/JAzzhQK7VqNXQ+bdCR0Ai+ugUXnnxrYd/1VMbV0AT+49UMjHr+rq4tbbv01TXXNyNXzkcmngp7RB3fBsYSCralF+C86NaNTxzowX97H1Ooafnb7PycNtO7aVc7Xvv516vedQObPxLdiMVLWP54R2VbHY2v3gDJ57LHHKCvMY9KiU5V+KhbD3H0QNu9CdfXw3ve+l3/6p4uTtqHYsWMH//Zv/4bRPR3/ZZcjtpLo235sgIwiqhedGnBVOEz08bWoE8f58Sd+zNy5I7fhVkpx/bv/hx6ZQ/5q617tfuhPxI4fjO/jq5lFwZoPAxBrOUn38/fzyas/yeWXp/Y7BPjTn/7Ez39+L5e86QeECiwL5aXtd/PY2kfj11NbVM0FZ1ifWU9HI88990c+9rGPcc01qcv5yU+28pe/3MWt195BebFltd/9+P3U1e+M7zOjejE3rroCgIde/AkFR17lnq/fnfG633fdtYd77vk9ADfddBM33pj6eWeD+24betuQUyoR+YGIfH+oPy9ONIEjQGJ2/TTAvYZBA3DTtdbR3k5hIPnHWhiQtDtlJtLU1EhR3tDnXJTv7Jde0Z21XnTqn4lhMGqLaOnSpQC0pxgnjYUVnfWKFStWpLR/YWEh3/3Od6goLUc9vA/VnJploxq6MB/dR031FL5zxx1DZuAsWrSIn//sZ1z/D9fjP3ic6L2PEX3mFVRCRpUEAwPSP0/N+s2DxzB//xjmC5uYXzud733ve9x8881D9ic644wz+Pd//3fU0SNEn3wMZa9gKMHgABkJ60nHYkQffxRO1vPZz342JcUAVvxn2dKzUMf2p/TbiB2xMuOc7zRVlixZAkDzsVODtD+Y3+96/AlB8eZju/q9L1Xe85734Pf7eW7zffHXHDdTKFDAjOrFVFdYLqWTLXVsf+Mlrrnm6owVA9Cv++rp0Ik1keHs7Q3AxmH+vORVYL6IzBaRIPA+IL2+BgNIdrO7qRw6OzsoDCQ3rwv8Qmdn5sqhtaWFwmHieIUhS35G6xV7HIqqrKykoLCAcFdqgiLdVn+3GTNSy4kHqK6u5jvfvgOzN4K5JzVFae5sxK8M7vjWt0fM28/Pz+eWW27h7t/+luuvvx619xCxF0du76AaWjCfXs+s6il885vf5Pvf/35KqaZXXHEFn/jEJzCPHCGWwqprsVfWYx4/zmc+/WkuueSSEfdPZNWqVcQ621FtI2dSxY7up3pKzajiDQALFiyguLiEkwe3pLT/yYObKSsvH3WQuLKykn/4h+vYcXAdRxusJIPLzv4A1RUzqa6YyY2Xf4HLzv6AVduz4W4KCwt53/veNyoZQ7Fs2TKWLVvG8mXLR608x5ohlYNS6q7h/rw8KaVUFPgY8DiwE7hPKeVew6DB8lw7VldXF3lD+Ljz/WItOp8BSinaOzrIDw3t3y2wFUdbW1taMmKxKKNpsGnI6C2Ho0eP0t3VTag4NT91oBAMn8SralNBKRVfKlOKUsvBl6IgkUhkVP38y8vLufnmm5k2bRrsP4waITPGPHAEFY1x0003sWLFilH56q+44goWL16MeWLklfjUieOsWLFi1IoBrEA8QKwxBTnNJ1hyRmotMBLx+Xycf/55NB7ajDlCTUU00kfT4a2sueCCtLq/vve976WivIInX/2NtZBREvYc3sDB49u56YM3UVJSMmoZyZg0aRLf/va3+da3v0Vl5fhf4CeRET9lEZkkIneIyKMi8ozz5/WJKaUeVUotUErNVUp9zWNZrh2rt7ePvGQRaSDkNzJua9HX10ckEiV/mLHOWZ0yXRdWV1cXo4j54febo76u++67D8MnVKTm6cAXEMpmKR57bG1KFlEsFuOHP/whv/rVr5D5Fcji1GoD5KzJyOwyfvSjH3HnnXemdG+Ew2G+/o1vcOTIEYw1K5ERBi9j2SKMsmK+fccd7Ny5c9h9B6KUoqW1NbX+Sj4/LWlaj44VYHYMn3qtzBixjra0q34vuugiIuEeGuusSuKSyhn4g/n4g/mUT11Eib06XMOhLUQjfVx00UVpySkoKODDH/kwxxrf4PU3BjeMjMYiPL3xHmbOmMnVo2hrMpFJRQXfgzV7nw18GTiI5fY5LfHSrWSaJuFIhKBvCOXgk1HlaCfDqScIDdN9OOi3EltGW3vg0N3d1S8pJhKhXwfLgUkvfv/oZIXDYZ555hkq5imChac+q1i4v5yBa7TXLBf6+sK88MILI8q45557+Otf/4osr8Z462zEl3Crh2P95BBOiBMEfBiXz0XOsAri7r///hFl/fCHP+TFF17AOG8ZxoKRUywlFMC4cg09PuE/Pv3pUcWGTp48yYnjxzFmzhpZzsyZHDxwIC0LMj8/n4LCQlTn8OtOqK4OQKU9K16xYgVFRcUc328tHrV4zY0UV82kuGomb7r28yxecyMAJ/a/QmlZOWeddVZacgAuvfRSFi5YyHNb/kgk2v/m2rT7KVo7Grj1tltPi46p2SAV5VCplLoTiCilnlNK3QycO9KbchGnyCgwhHII+KzBLRPiyiFJB1MHESEUMOju7h5yn+GIxWJI4lgapl8Hy4G1VIZhuaJSpbW1lb6+vniWkkN0gJwBv1/yy62U1lTaJxw8eBApDGKcUzvYbdMX6yenX80D1kJDxvnTkZA/pWLCo8eOIRUlGEtSayAHICVFyPKFhPv6RtVSJd4WOwXTTnz+/u8ZJdOnT8dsHr6wzWw6Ht83Hfx+P2vWXEDDMK6laKSPxrrXuOjCNRkN3IZh8KEPf4iOrmY2730mHnOIRPtYt/0hli9ffto0xcsGqSgH5xs7LiJvF5EVWNlDmgE4vX/8QxQg+A2IjmIQTYbjvgmOMDaEApK25RAMhkhsYxQM0q+D5cAEnmgMQqE8UqWqqoqi4iJaB4y7/gFyBrb4bz9qFcOlknVz3nnnobrCqAd3D+7EGvL1k0Oo/4CjmntQD+yGcIxzzjlnRFnnvulNqOZ2zIefQ3WMrJCVUsRe2435wiaqp1RbsYoUmTlzJjVTp2K+tgU1TN2CCvdhvr6VWbNnjzpQ7LBq5Upi9Ycxu4Z2T0YO7iSUl5dRcdeaNWuIhntoOpJ8kaqmI9uIRcOsWbMmbRkOy5cv58wzz+TVnWt5y6r3c9nZH2Drvufp6mnnpptuyvj4E4lUlMNXRaQU+CTwKeAXwCc8Pass45ZbyVEOQxWnubEsaarKIegn7QVySkpKCCd4vwIB+qUXDqjDIhIWiouT9yxKhmEYvOfd76HtsJWe6uAL9pfjS1AOSimObYSqSVUp+Z0vu+wyvvzlLxPqNDHv3Yn5Wv2p7zno6ycHe/EfpRTmxuOYf9xJQcTgG9/4RkoD0rvf/W4+97nPEWzrwvzTE5h7DgEglWVWAVowgNRMQirLUJ3dmI88j7l+K+efdx4/+fFPRlUc5ff7+fjHPoZqayX67DNIZaWlvYNBpGYqRmUlSimiTz8F3V18/GMfSyuAC9ZniDKJ7HoVo7IGgiEIhvDVzMKorEH1dhPb/zqXXnLJqJvuJbJ8+XKCoRANh7Yk3d5wcAv5+QUZuZQSue6662jrbGTf0S0opdi092nmz18w6hTZic6Id41S6mGlVJtSaptS6hKl1CqllCtppRMVSVrDZ1X2KTMzReQM+CO078HvU2krh6KiYiKR1DNoIhGhqGiInttDcO2111JUXET99tQ+j64G6DypeP8/vj/lgei8887jF//7C85euQrzpcOobcOvxKc2ncD8+1HWnH8Bd/7izlEtynLJJZfws5/+lEXz5hP72yuYR+rxXbAcqSxDKsvwX3MxxvnLMB97iUBjG5/4xCf40pe+NOrPDaz1AG6++WbMA29gTK21WmpUVhG8+lr856/B3LcX83AdH7399owG1NraWs4++xxiO14hdO7l+Cpr8FXWUHDNh8m74O2Ed21ARSO8853vTFsGWN1cV65YQePhrYO2KaVoPLyV1atXjaoyejjOPfdcSkpK2HFgHQ2tR2hoOczll79t1BXeE51UspV+JSK/HPiXjZPLFm73l1JDFAkoGHGVsJFwAtpDxTUc/D6VdvDbamuQ+nmapvWe0ZCfn8/iRYvpa0tNTm+r9T/VIjiHSZMm8ZWvfIUVK1ag1h8d8rtWkRjmK8e44IIL+MIXvpBWxXxNTQ3f/va3KSgstCqfB9LYitnUyq233sqVV16Z0WB0/fXXUz1lCrEkq/6ZO3cwY+ZM3vGOd6R9fIdrr72GWHcn0br+C+wopYjt2siZZ56VUXM6h1WrVtHd3kB3W//2H10tx+jtanE1FuD3+znvvPN449hr7D1s1YtccMEFrh1/opCKvfkw8Ij99zRQAqQX4ZrgOMGyoYwDU6m0TXwHZ8D3jxCX8/ugry89y0FEkjcwcZnGpkZ8w1R6J+K3QxrpVH0bhkFZWRkS8A09IPsNxGdQXl6e0aC9b98+uru6kPIkefJFBUjAz6ZRroOcDJ/Px6yZMzGS9GKSnh5mz5qV8b0G1qBdVFxM9ED/eIDZcpJYWxOXXjr6GopkOEq/6Wj/1N6mo5Zct1tdr1y5kt5wNxt2PcHMGTNPuxqEbJCKW+n+hL97gPcAp0/f2QHEYgPSGHHPcnDM3qip6ImY/eT0REwiJvh9mZnGTvM0p86uL6L6L5Rud4L1GxBJc0lSwzAYok4oKabJqLNIotEodYfqSLJIV1Kc7qzpLCzU1dXFiy++iJo1dGGTiMCsEp5+5pmMlnL95a9+iVGQh3HW/MEy8kPIWfN58YUXRtV6fCg6OjowA4NdbCoYTDtDaSA+n4+VK1agjh/oZw/Hjlnfg1sz+unTp1NaVk7L8V39Xm85vpuqqklMmTLFFTkOCxda/Zq6ettYtHh8dUodL6QztZgPpN7DYJwRiw1IY3QRx7USiSm6o6qfnO6oIhJThELpB+4gIehtf3O9EQYslE58e7orp5WWltLTo0hFZ8Zi0NdnjroPjVLKcr+lOEl3JvPpBPQ7OjqIRCL9mu8llTG5kJ7u7rSVg1KK7dt3oGbUDLmmgzHP+uls3555wb/h8yHJXJguWKiJnHXWWcQ62yAh0y524hAVlVWuDdoiwtKzzqT1+KkKeKUUrcd3s3TpWa7HAxLPezQtWXKJEaexImJVuZziBPAZz87IY3w+K41RKWWlMbqIYRiEggH6YooCv/STMzkohGOKvFGkfCbDsXKc30pegH5ySu3DGwKxNDOjZs2aRTis6OyEkZKQWlqsnkezZs0alYxAIMAZixezZ+9OapYr/MPUbQCc2GZddzoB1oqKCsrKy2nf2oBakNx9oMIx2NZIdc0UCpItmp0CIsLyZcvYtO111NL2Qa4lpRSxzdbMeNmyZWnJSGTWzJls37ULKirjswXV3Y1qbmLmxW/O+PgOzgI1KtyL5BdZiv34QZa9yd2agDPPPJMXXniBQEEZhi9Ad1s9vd1tniyQk6g83bZKJgqpuJWKlVIlCX8LlFIjl42OU3y+AWmM4OqsJD8/n76oIj9g9JOTHzDojZrkZdjT/dTattbzUED6L5QeOLU93ctysnSOHrWel5db6ayBgNWuOzFWe+yo3cUzjcHutttuJ9oLB59TKKUoqLTSWX1Bq12340pqO6qo32qlVs6bl3qhmUMwGOQ/PvUpzOZuzKcPWAv7BA3rb2oRUlmA+cQb0Bnms5/+TEaz7n/5l3+hOD8f85EXUJ39ax7Mda+h9h7ipptuGrUyTcZVV12FikRQCWtcxLZvQ5kmV155ZcbHd5g9ezbFJaUoO75hNtcT6+4YdXLASDippNE+S07Lib39XveKkRos5iqpZCs9ncprGovCgkK6o8ln7D1RRWEaqYuJxIPeIxgFMRMC/tFlEDnU1tYya9ZMDtdZ2mXVakshlJfDWy+znoOlgOoOGyxdelZaC6MsWLCAj3zkI7QchIadMOM8g4JKSykseofBjPMMor2Kg88K06dP52Mf+1ha1wNw9tln8+EPfxi1vwWZUgRVBVBVgP+di5CKfFRdGx//+MczHohqa2v51v/7JoGYifnEunjmmrn3EObre7n22mu54YYbMpLhMG/ePFaffTZ0doFSlqLY/jprLrww7YrlZBiGwdmrV0G4BwXEDluDttvVxHPnziUYChGNWMqhtX4fBQWFKa/6li6jqdHJJYZbzyFPRCqAKhEpF5EK+28WkF6XrXGKm5ZDYXER3ZHkI3d3RKWV155IKGS1XA2PEE6IxCCUl76V8uY3X0xDg2K4fnptbdDeZvLmN1+ctpzrrruOlStXcvRViEUG+8+PbVFE++Bzn/t8xitpWemf1ahdA9pQ72pi9pw5XHXVVRkd32H27NncesstmA3NVvk4YO45xLRp07jttttcvd+uufpqq2w83Id55DBmOMy111zj2vEdVq5cac1IImGix95g2owZKS05Ohp8Ph8LFiwgGrZuuvaTb7Bo0UJX4yeJOOdfWDh8LCpXGe5TvxVr3YZF9F/H4S/Aj7w/tdOT4uISupIMcgDdUZXxLMVRLn3h4aPFfWkUpiVy3nnWilXDtTFytp17bvqttkSEG264gWhYDWqnoZSiZb/B+eedn/JCNcNhGAb5+QWD/G3KsAYINwfteJfSmDVRkJ4+ampqXG/q5qwDoaJRVIvVQdVpt+0mjkWlIn2ohqOc5ZGrZ8H8+cQifSjTpKP5SMZrOA/H5z73Oa6//nrtVhqCIQPSSqn/Af5HRD6ulPpBFs8p67g5KBQXF3MkYnUaGEhnXyxj5eBkBXWNUN/W3ScZrYE7e/ZsysvLOHG8laHG5RMnYMaM6RnPIBcvXozP56O7qb85FOmGcLfp2iIpXV1d1B06BCuq4XhCv6CqAnbv3k0kEhl1Md9QxFNV7awlVVnKnr17XTl2IvH7ybSsh2AolFEri6GoqalBRFB9vajeblcK35JhTQIUkd5OlBljzpw5nsgBK7nBrZYcXvGTn/yE/fv3u37cuXPncvvttw+7Tyr2mikiZc4T28X00QzPbcJSUlJCRxKfj1LQGzUzXkTEGYg7uoe2HExT0dETy2jQFhFWrVpNfb2RNL4RjULDSWH16rPTluHg9/uZOrUmXgXt4Dx3y+fc2tqKaZpIWf+MMSnLIxIOu1YbAHDixAmMUDC+toOUFtHW2pp2S5OhiE9slLUsqFstJgZiGIaldOxgcbrrN4yE812Hezv6Pddkn1TupI8opeJuJKVUi4h8BPixd6d1+lJSUkJ3OIZS/d0HMXVqeyZUVlYSCPhp6Rw6It3ebU0k0+3G6XDuuefy1FNP0XBy8LZjRyEWU7zpTW/KSIbDggULeeHlYwRLzbjXp9PupODW7LGkpASfz4fZ0L9brWroIhQKuep7njJlCmZfGGIxxOdDtXRQWlYWjxm5ic/vJ2bGoLub0gysxZEIBoPxCv1JkyZ5IsNZZznSZylqr5TQ6cJIs3svScVyMCTB7yIiPsB9uzVLJHMhuelWctw+sQET+5jdUyPTRcsNw2Ba7TQa263jTS4TQgFr8Z8Zk4TJZRLflmnGyjnnnEN+fh7JipIPHIDy8jLXXD6rV68m3GOS2NK/tQ7mL5jvykLvYLlgLrzwQtjVFP+CVHsf7G3hsssuc9UdE4/DdPday4YeOMoF55/vSXO3vFAIolGktYWZLmYpDSTRKvGq3URhYaEVgFaK0rJyT5SpJjVSUQ6PA/eJyFtE5FLg98Bab08ru7j5g3Usg9iA8mLnuRtr086dN48Gu2HdZSt8VJcJ1WXCDZf4uWyFj/pWS1amfuG8vDwuvvgS6uqkX7V0d7cVjH7b2y53LcB67rnn4vf7iNpel74ORVeD4s0XuVfMBXDTTTchUQVdVhW0ufkEfsPH+9//flflzJgxgzed+ybo7oXuHlQsxvXXX++qDIf8/HyIRIi1tHjqo3eUg2EYGWfdDYcT96mq1IHisSQV5fAZrIZ7twP/AmwFMsspHGd4oRwq8/3k+4V8v7CwMkhZnjWIujELnj9/Ph09Ju1DxB2ONytqp9a44ia54ooriEYVia7ygwesGIqb7UcKCwtZcuaZxOxAe4e9rn0qi+2MhmnTpllpmb1WXEgOtHH++ee7npYJcMnFl1j+vc5u5s2bN6pFfUZD4uzaKxmQoBx8Ps/SSxPlpNMZV+MeqVRIm8B64A1gNfAWrDWlT0uy5VY6d1oBM0oDzCgN8JkLJrO82tKnblgOTqri0abk62EfaxYWn+FOquGiRYuoqZlCYvfvw4eFhQsXxP3DbjFn9hxMO5bf06owfIarxVwOtbW18RRTszvs+nU4VFdXWw9UwmMPSLTe3Li/RpLj9boHjnJwy52oSY/hiuAWiMiXRGQn8EPgMIC94M8Ps3WC2cALy6Er3D9g3GkXxrnx4503bx6hUJDDDYOVQ3MHdPWarrUcEBHOP/8CwmE746oXmpoU55/vfv/70tJSK+tGQazPqunwYrH33t7eeK2DBHyuZxD1k5Pksdsk3r9efF6Dju3y+idDyfHSdaUZmeEsh11YVsLVSqk1dq1Dem0+xzlu1zkAdA5IZ+0Mm+TnhVzJo/f7/SxefAZHkixt4CgMtwLFiceKRKGhof9rbuI0vFMmxCJkXBE9FD09PfG1XI2gP770qtvEFYJheKocEhvHeenu8fLYiThFaek2QNS4w3Df9j9gdWD9m4j8r4i8hawsAZN93FQOeXl5BAJ+OgdYDl1h09WZ0NKlSznZYtIzoFK6rsGkrKzUVd+z0/s+GoHmZmuQSKcB3kg4RXvKtArgKjzyOefn51srMikww9H4uh5uE58ImKZrxXXJuPbaa+OPvSiAc3B+J167lZzGjzpTaWwZUjkopf6slHovVvuMZ4FPANUi8hMReVuWzs91ioqKEKDAH6C60JrluzkjEhGKi4roGtBfqSuSeQFcIkuXLkUBRxpPKQelFIebhLPOWurqD7iiogKfz0c0Cm2tMHVqjSc/XCen3YxCuMOgttab4OrcuXMt5dAXRUVinig66J+j72W+fuJ95WUTuWxZDg56TeexJZWAdJdS6h6l1DuAacAW4LNen5hXzJ8/n4DPx8yyCi6bY82I3b4Ji4uLB8UcuiImxSXuBdgWLlyIz+frF3do74b2LvfaTSQSCoWIxaCjw2D6dG8WR3GCz7Ew9HWani3CEl9ysj3c/7nLJBYhetVuAvrXHHiRdeVwql28tzEHrRTGB6OaCiilmpVSP1NKXerVCYnIf4nIURHZYv+50yrTxjCM+MpFpn2Tuz0jKi4pTWI5uDurC4VCzJ8/j6MJcYcjdvaSF/3vHeXQ2ak8mwXn5+cTCPiJ2plRXmQqgVWDICIQNSmrKPes2jcxOOxVRhTQr4eWl35653eSbQtCMzaM12/5e0qp5fbfo24eWETi69qZ8VXVPLAcov1f63TZrQSwePEZ1Leq+EzueJMiGAx4MksNBAKYptUyw6vB1JITRNmxfK/kGIYRT5eszFJHTi/dPV5mKCWSLctBMz4Yr8rBMxJnPc5N7vaPq6SkhM5w/1hAV1/U9QFi/vz5RKKKiD2Y1rcqZs+e48lgkdg6wcvipMTvx9NsFRn0wFOyNYB7iXb35BbjVTl8TES2isgvRSTpSCQit4jIBhHZ0ODkV6aA5VayV+fCG8uhpKSErvAp06EnqjCV+wVKTquESBQUioZ28ax9QqIryctZcGJGl5eZNz6fpeyi0egIe7qDmeZ63uMJL+MmmvHHmCgHEXlKRLYl+bsW+AkwF1gOHAe+k+wYSqmfK6VWK6VWj8b9kDgz9SrmUFpaSiRmKQQgntbqtnKYNm0aIkIkZnVp6OnzLoj7zne+M/7Yy5WzEheq8TKVsbTMSg7wMsU0kYngp7/55pvH+hQ0WcSb5u8joJR6ayr7icj/Ag+7KVtEPA9IxzuzmgrDJ3T0xfq97hbBYJCqygq6Opqc1Sg9C3wmFqR56e5JtBy8VEIV5eXUHz9BuYctrhPx0grKFtlyjTm/x4ngijudGXfTGRFJXITgXcA2N4/v8/n6BaQNEdfdSo4SiNpyOmzLIZOV2YaiekoNMROittfCqx4+iYViXhWNwSnrKi8v5NnCNQBTqq2qYi97HiUyEap9sxVzuOqqq1i+fDlvectbsiJPk5wxsRxG4FsishxrCD+ItZa1a/SLOSjlibnvKAFrDQehvc8aub0I5FZVVbFrJ8Rsy8GrPvuJLh4vZ8FOPMMwvJ01Ogrcy7qARLxUqNkiW8qhurqab33rW1mRpRmacacclFIf8PL4iaaqV8rBUQJRO+jQZruVvLAcysvLiZlWk1Gfz+dZsDjRN++lcnDcV9kaiLLl7vHSCsoWOlsptxh3biWvMQwj3lTSe+VgPW/vi1FYUODJQFRSUmJ1MTWhpKTYsx9w4uDm5UAXV0JZGoeyNeBNhIC0JrfIuTvWshzsJSKV8iToFQwGKSosjC8N2tprxjtNuo3jo4/GvE0xzZZyyHZBV7aYCIVjjoJbvXr1GJ+JJhuc/rbuKHFu8JmlFcSU6dmMrrKygu7GY0wvDXKgNULlDG982052j6UcvFvoJdHqyc6aAZ6J6Ee2Bu2J4JIJBoN89atfZf78+WN9KposkKOWA3xg6dnETIXfo4GusmoSRSEf7z+zjLY+7ywHx1owVfYsBy/JdspntgbtiaAcwFq2VS/fmRvkpHJQgKlMTGV6lhVTWVlJW5/V96i1J+pZVkxiLYCXdQHZGrSzHZDOFjrmoDndyLk71rEcTKWIKYXP76Fy6InSETaJmsozyyFRIXi5rGK2BmtHOUwEH30iWjloTjdy7o51lEPUdCwHbz6CiooKYkpxpD0CeFd/kKgcJkKhVbZX/9JuJY0mOTmrHEylrJiDR750Rxkcas2ecpgIC7I77qtsDaYTzULRaNwiZ5VDzDSJKdOzzBvHjXTIXm3MK7dS4kzby5hDtnC+Dz3T1mjGlpxTDo6lEFOKmGl6Zjk4yuBwm2U5eJXhkTiITgS3kl5QRqMZH+Sccki0HKLKxOeRcnBaZRzvjBIKBvt1NfWKiaAcsh241UpIo0lO7ioHZWJ6GHPIy8sjaLeCKCtzt1X3UGRDAXlNtpWDdl9pNMnJOeXgKIOoxzEHEaHUbm1RUpId5TAROn9qNJrxQc4qh5iy3EpeVv6WlNrKweVFfoZiIigHPZPXaMYHOddbqV+2koduJYAiu9dRtlJMs10j4AU6IJ0eM2fOnBCTA834IeeUg9MSOmYqYh5bDk5qabaUQ7bWQ9aMP7773e/qKmyNq+SccohXSCuTqOldzAFOZQ9lK4vI6/5H1dXV8RbhXqOL4EaHl00XNblJzimHeMzBNIkp5els23HzZCuLyOu1EL7//e9PuPUWdIxDo0lOziqHqBnz3HJwyJYv2Gu3UjZaNeuYg0YzPsg5J+Up5WDFHLwcUJ2BLluBYu1zHj3actBokpNzo8kpt1KMqBnz1HJwZr96tbHxi7ZQNJrk5JxycCyFqDKJxry1HBy8HrRvuummeLsOTWpcdtllVFVVce655471qWg045KcizkkrufgteWQrZn8jTfeyD/+4z9mRdZEYd68efzud78b69PQaMYtOWs5WEVw3loO5557LqFQiAULFngmwyFbWUQajSY3yDnLwYk5hM0YpvK2Qvqcc87hoYce0rEAjUZz2pFzloOjDPqiUcD79E+tGDQazelIzikHRxn0Rq1FeLy0HDTpo5WqRjO2jIlyEJF3i8h2ETFFZPWAbZ8TkX0isltELndbtqMMem3LQSuH8clESTHVbS00pytjNTJuA64Dfpb4ooicAbwPWAJMBZ4SkQVKqZhbgk8pB205jEcci2GiWA5f+MIXeO6558b6NDSaUTMmI6NSaickHQCuBf6glOoDDojIPuAcYJ1bskUEv89HXyw7MQfN6MjLy6OoqIgPfehDY30qrrBixQpWrFgx1qeh0Yya8TZtrgXWJzw/Yr82CBG5BbgFYMaMGaMS4vf7424lnQI6vggEAvzpT3/SrUA0mjHGM+UgIk8BU5Js+k+l1F+GeluS15I6n5VSPwd+DrB69epROagt5WC5lbxuc60ZPVoxaDRjj2fKQSn11jTedgSYnvB8GnDMnTM6RcDvj6ey6piDRqPRDGa8TdEeAt4nIiERmQ3MB15xW0ggEIi7lXTMQaPRaAYzVqms7xKRI8B5wCMi8jiAUmo7cB+wA3gM+Bc3M5Uc/IEAvTGdraTRaDRDMVbZSn8G/jzEtq8BX/NSvj/BraQtB41GoxnMeHMrZQWdraTRaDTDk5vKIRAgpkxAZytpNBpNMnJSOQQS4gzactBoNJrB5KRy8CfEGXTMQaPRaAaTm8pBWw4ajUYzLDmvHLTloNFoNIPJeeWg6xw0Go1mMFo5aOWg0Wg0g8h55aBjDhqNRjOYnFcOOuag0Wg0g8lJ5ZBoLej20BqNRjOYnBwZHWvB7/NNmOUoNRqNxk1yUjk4loNPB6M1Go0mKTmpHJyYg18HozUajSYpOakc4paDVg4ajUaTFK0cNBqNRjOInFQOuvBNo9FohkcrB41Go9EMIieVg65t0Gg0muHJyVEybjnoGgeNRqNJSk4qBx2I1mg0muHJaeWgq6M1Go0mOTmtHFBqbE9Eo9Foxim5rRy05aDRaDRJyUnloLOVNBqNZnhycpTUAWmNRqMZnpxUDtpy0Gg0muEZk1FSRN4tIttFxBSR1QmvzxKRHhHZYv/91Av52nLQaDSa4RmrPhLbgOuAnyXZtl8ptdxL4Y7loHS2kkaj0SRlTJSDUmonjF2dgaMcdJ2DRqPRJGc8Ot9ni8hmEXlORC4caicRuUVENojIhoaGhlEJ0DEHjUajGR7PLAcReQqYkmTTfyql/jLE244DM5RSTSKyCnhQRJYopdoH7qiU+jnwc4DVq1ePyj+kYw4ajUYzPJ4pB6XUW9N4Tx/QZz/eKCL7gQXABjfPTcccNBqNZnjGlX9FRCaJiM9+PAeYD7zhthwdc9BoNJrhGatU1neJyBHgPOAREXnc3nQRsFVEXgP+BNymlGp2W76OOWg0Gs3wjFW20p+BPyd5/X7gfq/la+Wg0Wg0w5OTo2RJSQkAZ5999hifiUaj0YxPcnIx5draWu655x4qKirG+lQ0Go1mXJKTygFg0qRJY30KGo1GM27JSbeSRqPRaIZHKweNRqPRDEIrB41Go9EMQisHjUaj0QxCKweNRqPRDEIrB41Go9EMQisHjUaj0QxCJkJnUhFpAA6N8m1VQKMHpzOR5Uyka5locibStUw0OeP5WmYqpZIWfU0I5ZAOIrJBKbV65D21nGzK0HLGrwwtZ/zK8EKOditpNBqNZhBaOWg0Go1mELmsHH6u5YxLGVrO+JWh5YxfGa7LydmYg0aj0WiGJpctB41Go9EMgVYOGo1GoxlETigHEblYRLaIyHYReW6IfWaLyN9FZK+I3CsiwTRktNlytojIl7yQYx/jbBGJicj1Hl3LtSKy1b6ODSKyxiM5N9hytorIyyKyzCM5i0RknYj0icinhtkvbTkicoWI7BaRfSLy2STbRUS+b2/fKiIrR3MNCcf5pYicFJFtQ2zPWI6ITBeRv4nITvs3868eyckTkVdE5DVbzpe9kGMfxycim0XkYQ9lHBSR153fjRdyRGRhwhizRUTaReTfvLgelFIT+g8oA3YAM+znk4fY7z7gffbjnwK3j1LOxcDDKeyXqRwf8AzwKHC9RzKKOBWPWgrs8kjO+UC5/fhK4O8eyZkMnA18DfiU29+N/Z3sB+YAQeA14IwB+1wFrAUEOHeoa01B1kXASmDbENszlgPUACvtx8XAHi+ux35vkf04APwdONejz+3fgd8l+426KOMgUDXMdlfkDLjvTmAVsrkuJxcsh/cDDyil6gCUUicH7iAiAlwK/Ml+6S7gnW6fiEtyPg7cDwy6DrdkKKU6lX2XAYXAoKwFl+S8rJRqsZ+uB6Z5JOekUupVIDLUPhnKOQfYp5R6QykVBv4AXDtgn2uB3yiL9UCZiNSM4jIAUEo9DzQPs0vGcpRSx5VSm+zHHcBOoNYDOUop1Wk/Ddh/A++1jOWIyDTg7cAvhtjFle8mBdyW8xZgv1JqYHcIV+TkgnJYAJSLyLMislFEbkqyTyXQqpSK2s+PMPjHkArn2SbyWhFZ4rYcEakF3oU1qx0KV65FRN4lIruAR4CbvZKTwIewZjteyxmKTOTUAocTnid7byr7uIGrckRkFrACa1bvuhzb3bMFa7LzpFLKCzn/DXwaMIfY7tZnpoAn7HHmFg/lOLwP+L1XcnJBOfiBVVgzh8uBL4rIggH7SJL3jTbHdxOWebcM+AHwYJJ9MpXz38BnlFKxYfZx41pQSv1ZKbUIa/b8f72SAyAil2Aph894KWek08hATirvPR2uo/+BRIqwrNR/U0q1eyFHKRVTSi3HshrPEZEz3ZQjIu8ATiqlNg63WyYyErhAKbUSy0X6LyJykUdyECsedg3wx2Sb3ZAzIZWDiPyLE7ABjgGPKaW6lFKNwPPAwMBnI5bp5befT7PfNxo5RY6JrJR6FAiISFWmcgbIWA38QUQOAtcDPxaRd7p9LSIy1XnddmPMdeNakskRkaVY5v61SqmmJG9x9XqGIS05NkeA6QnPk703lX3cwBU5IhLAUgz3KKUe8EqOg1KqFXgWuMJlORcA19i/mT8Al4rI3S7LAEApdcz+fxL4M5a70XU5NlcCm5RS9Um2uSMnk4DI6fAHLAaexrIgCoBtwJlJ9vsj/YORHx2lnCmcCuKeA9Q5z92Uk3CcXzN0QDrTa5mXcC0rgaNeXAswA9gHnD/Cfm59Zv/F8AHptOTY99YbwGxOBaSXDNjn7fQPEr6SwT09i6ED0hnLsd/7G+C/h9nHDTmTgDL7cT7wAvAODz+3i0kekHbjWgqB4oTHLwNXeHgtfwD+2avvRik18ZWD/WH9B1bG0jYsE9l5/VFgqv14DvCKPVj9EQiNUsbHgO32wLA+ccBzU07CMX9NgnJw+Vo+Y1/LFmAdsMYjOb8AWmw5W4ANHsmZgjWbagda7cclbsrByhDZg5W19J/2a7cBt9mPBfiRvf11YHWa3/vvgeNYwfUjWO44V+UAa7DcEFsTvpurPJCzFNhsy9kGfMmrz80+1sXYysGDa5mD9dt/zf7teHkPFABNQGnCa67L0e0zNBqNRjOICRlz0Gg0Gk1maOWg0Wg0mkFo5aDRaDSaQWjloNFoNJpBaOWg0Wg0mkFo5aDRAGJ1ud0iIttE5I8iUpDBsX4tdsdcEfmFiJwxzL4Xi8j5acg4mKQwUaNxDa0cNBqLHqXUcqXUmUAYK288joj40jmoUurDSqkdw+xyMVZ3Wo1mXKGVg0YzmBeAefas/m8i8jvgdbtJ3LdF5FW7T/6tEO+f/0MR2SEij2C1CMfe9qyIrLYfXyEim+zmjE/bTe1uAz5hWy0XisgkEbnflvGqiFxgv7dSRJ4Qa02Cn5G8f45G4xr+kXfRaHIHu7fSlcBj9kvnYLVbOWB32mxTSp0tIiHgJRF5Aqtr6ULgLKAaqxr/lwOOOwn4X+Ai+1gVSqlmEfkp0KmUusPe73fA95RSL4rIDOBxrBYw/wd4USn1FRF5O5Cs66dG4xpaOWg0Fvl2c0OwLIc7sdw9ryilDtivvw1YKqdW4CsF5mMtwPN7ZXXLPSYizyQ5/rnA886xlFJDrcnwVuAMkbhhUCIixbaM6+z3PiIiLUO8X6NxBa0cNBqLHmW1jo5jD9BdiS8BH1dKPT5gv6sYuSWypLAPWK7e85RSPUnORfe60WQNHXPQaFLnceB2u501IrJARAqx2sC/z45J1ACXJHnvOuDNIjLbfm+F/XoH1lKcDk9gNXHE3m+5/fB54Ab7tSuBcrcuSqNJhlYOGk3q/AIrnrBJRLYBP8Oyvv8M7MXqgPkT4LmBb1RKNWDFCR4QkdeAe+1NfwXe5QSkgf8PWG0HvHdwKmvqy8BFIrIJy71V59E1ajQAuiurRqPRaAajLQeNRqPRDEIrB41Go9EMQisHjUaj0QxCKweNRqPRDEIrB41Go9EMQisHjUaj0QxCKweNRqPRDOL/B3KPggfi1FobAAAAAElFTkSuQmCC", 654 | "text/plain": [ 655 | "
" 656 | ] 657 | }, 658 | "metadata": { 659 | "needs_background": "light" 660 | }, 661 | "output_type": "display_data" 662 | } 663 | ], 664 | "source": [ 665 | "# display a violinplot to see the accuracy of predictions:\n", 666 | "\n", 667 | "sns.violinplot(data=results,x='Predicted',y='Actual')\n", 668 | "plt.axhline(0)\n", 669 | "plt.ylabel('Actual')\n", 670 | "plt.xlabel('Predicted')\n", 671 | "plt.title('Away minus Home goals')\n", 672 | "plt.show()" 673 | ] 674 | }, 675 | { 676 | "cell_type": "code", 677 | "execution_count": 10, 678 | "metadata": {}, 679 | "outputs": [], 680 | "source": [ 681 | "dd=data[['B365H','B365A']].iloc[len(df_train):-1].dropna()\n", 682 | "rr=results.reset_index(drop=True).join(dd.reset_index(drop=True))\n" 683 | ] 684 | }, 685 | { 686 | "cell_type": "code", 687 | "execution_count": 27, 688 | "metadata": {}, 689 | "outputs": [ 690 | { 691 | "name": "stdout", 692 | "output_type": "stream", 693 | "text": [ 694 | "Mean <-2 odd: 2.7515533980582494\n", 695 | "Mean <-2 implied probability: 0.3634310715923931\n", 696 | "TP/(TP+FP): 0.627831715210356\n", 697 | "--------\n", 698 | "Mean >2 odd: 4.588035714285714\n", 699 | "Mean >2 implied probability: 0.21795819873117195\n", 700 | "TP/(TP+FP): 0.5357142857142857\n" 701 | ] 702 | } 703 | ], 704 | "source": [ 705 | "# Print some stats\n", 706 | "print('Mean <-2 odd: ',rr[rr['Predicted']<-2]['B365H'].mean())\n", 707 | "print('Mean <-2 implied probability: ',1/rr[rr['Predicted']<-2]['B365H'].mean())\n", 708 | "print('TP/(TP+FP): ',rr[np.logical_and(rr['Predicted']<-2,rr['Actual']<0)].shape[0]/rr[rr['Predicted']<-2].shape[0])\n", 709 | "print('--------')\n", 710 | "\n", 711 | "print('Mean >2 odd: ',rr[rr['Predicted']>2]['B365A'].mean())\n", 712 | "print('Mean >2 implied probability: ',1/(rr[rr['Predicted']>2]['B365A'].mean()))\n", 713 | "print('TP/(TP+FP): ',rr[np.logical_and(rr['Predicted']>2,rr['Actual']>0)].shape[0]/rr[rr['Predicted']>2].shape[0])\n" 714 | ] 715 | }, 716 | { 717 | "cell_type": "markdown", 718 | "metadata": {}, 719 | "source": [ 720 | "# Strategy backtest\n", 721 | "\n", 722 | "* When predicted >=2 and odd for Away win >1/0.53 --> Bet on away team\n", 723 | "* When predicted <=-2 and odd for Home win >1/0.6 --> Bet on home team" 724 | ] 725 | }, 726 | { 727 | "cell_type": "code", 728 | "execution_count": 29, 729 | "metadata": {}, 730 | "outputs": [ 731 | { 732 | "data": { 733 | "text/plain": [ 734 | "1.6129032258064517" 735 | ] 736 | }, 737 | "execution_count": 29, 738 | "metadata": {}, 739 | "output_type": "execute_result" 740 | } 741 | ], 742 | "source": [ 743 | "1/0.62" 744 | ] 745 | }, 746 | { 747 | "cell_type": "code", 748 | "execution_count": 31, 749 | "metadata": {}, 750 | "outputs": [], 751 | "source": [ 752 | "# backtest the strategy\n", 753 | "ptf=pd.DataFrame(100,columns=['Wealth'],index=rr.index)\n", 754 | "betted=pd.DataFrame(0,columns=['Wealth'],index=rr.index)\n", 755 | "bet=10\n", 756 | "c=0\n", 757 | "for a,b in rr.iterrows():\n", 758 | "\n", 759 | " if (b['Predicted']>2)and(b['B365A']>1/0.53):\n", 760 | " betted.iloc[a]=betted.iloc[a-1]+bet\n", 761 | " c+=1\n", 762 | " if b['Predicted']>0:\n", 763 | " ptf.iloc[a]=ptf.iloc[a-1]+b['B365A']*bet\n", 764 | " \n", 765 | " else:\n", 766 | " ptf.iloc[a]=ptf.iloc[a-1]-bet\n", 767 | " if b['Predicted']<-2 and (b['B365H']>1/0.62):\n", 768 | " betted.iloc[a]=betted.iloc[a-1]+bet\n", 769 | " c+=1\n", 770 | " if b['Actual']<0:\n", 771 | " ptf.iloc[a]=ptf.iloc[a-1]+b['B365H']*bet\n", 772 | " \n", 773 | " else:\n", 774 | " ptf.iloc[a]=ptf.iloc[a-1]-bet\n", 775 | " else:\n", 776 | " betted.iloc[a]=betted.iloc[a-1]\n", 777 | " ptf.iloc[a]=ptf.iloc[a-1]\n" 778 | ] 779 | }, 780 | { 781 | "cell_type": "code", 782 | "execution_count": 32, 783 | "metadata": {}, 784 | "outputs": [ 785 | { 786 | "name": "stdout", 787 | "output_type": "stream", 788 | "text": [ 789 | "Number of bets: 619\n" 790 | ] 791 | } 792 | ], 793 | "source": [ 794 | "print('Number of bets: ', c)" 795 | ] 796 | }, 797 | { 798 | "cell_type": "code", 799 | "execution_count": 33, 800 | "metadata": {}, 801 | "outputs": [ 802 | { 803 | "data": { 804 | "image/png": "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o+fO8qlwbHOF36aQi7rAVTOK3bxly5a84YjLqkWLFqxevZpHHnmEcePG8euvv5Kenk5UVFShXyIlmT59OsHBweTk5DBkyBD++OMPHnroIV555RVWrlxZZIat0aNHM3nyZO677z4AFi5cyNdff823337L7t27Wbt2LcYYrrvuOlatWsVll11W6Pi0tDR69uzJyy+/zHPPPcezzz7La6+9VuxwzNdddx0jRoxg1KhRAMyYMYP9+/cTEBCgY/cor1Y/wI9RMeFuG+yxokpV9I0xZ4HG58WSsXrzONt/OjDdSTwO6Fz2NKuP3KGMu3TpQmpqKvXr16d+/foEBgaWqRguXLiQ2bNnk52dTUJCAtu2baNr167F7t+jRw+SkpI4evQox48fp1GjRkRERDBr1iy+/fZbevToAVhDLO/evbtI0ffx8eHWW28F4I477uDGG2+84HDM5+vatSu33347I0eOZOTIkaU+T6U8SXpWDikZ2fhXweQmruIZTwtUxAWuyKtKVFQUixYtcrrNz88Ph8ORt56enl5oe+5wxz4+PoWGPvbx8SE7O7vE4wH279/PSy+9xLp162jUqBHjxo1zut/5Ro0axaJFi/JuQoN1f2LatGnce++9JRxdmIiUOBxzQV999RWrVq1iyZIlPP/882zduhU/P+//76dqlld/2A1AtsN7nyn13l9XbnT55ZeTkZHB22+/nRdbt24dP/30Ey1btmTbtm1kZGRw+vRpVqxYUab3Ls3xZ86coW7dujRo0IDExESWL89vJbvQkMyjR49mwYIFLFq0KK/ZZdiwYbz77rukpqYCcOTIEZKSkooc63A48n7Rffjhh1x66aUXHI65YB4Oh4PDhw8zePBgXnjhhbzJY5TyJl9vSeD1lXsBuLNPSzdnU356qVUOIsLnn3/O5MmTmTFjBoGBgURGRjJz5kxatGjBLbfcQteuXWnXrl1es0lpleb4bt260aNHD6KiomjdujX9+/fP2zZhwgSuuuoqQkNDWblyZaHjoqKiSElJISwsLG8WryuvvJLt27fTt29fwOqa+cEHH9C0aeF+xnXr1mXr1q1ER0fToEEDPv7YGplj/vz5TJo0iX/84x9kZWUxevRounXrxujRo7nnnnuYNWsWCxYsYPz48Zw+fRpjDI888ggNGzYs0/dFKVdYtjmBKYv+IMfJ6DBnM3Pylps3rO3K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", 805 | "text/plain": [ 806 | "
" 807 | ] 808 | }, 809 | "metadata": { 810 | "needs_background": "light" 811 | }, 812 | "output_type": "display_data" 813 | } 814 | ], 815 | "source": [ 816 | "ptf.index=data_.iloc[len(df_train):].index\n", 817 | "betted.index=data_.iloc[len(df_train):].index\n", 818 | "\n", 819 | "plt.plot(ptf,label='Wealth index')\n", 820 | "plt.plot(betted,label='Cumulative bets')\n", 821 | "plt.legend()\n", 822 | "plt.show()" 823 | ] 824 | }, 825 | { 826 | "cell_type": "code", 827 | "execution_count": 34, 828 | "metadata": {}, 829 | "outputs": [ 830 | { 831 | "data": { 832 | "image/png": "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", 833 | "text/plain": [ 834 | "
" 835 | ] 836 | }, 837 | "metadata": { 838 | "needs_background": "light" 839 | }, 840 | "output_type": "display_data" 841 | } 842 | ], 843 | "source": [ 844 | "plt.plot(ptf-betted)\n", 845 | "plt.title('Total bet P&L')\n", 846 | "plt.show()" 847 | ] 848 | }, 849 | { 850 | "cell_type": "code", 851 | "execution_count": 35, 852 | "metadata": {}, 853 | "outputs": [ 854 | { 855 | "data": { 856 | "image/png": "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", 857 | "text/plain": [ 858 | "
" 859 | ] 860 | }, 861 | "metadata": { 862 | "needs_background": "light" 863 | }, 864 | "output_type": "display_data" 865 | } 866 | ], 867 | "source": [ 868 | "plt.plot(ptf-ptf.cummax())\n", 869 | "plt.title('Drawdown')\n", 870 | "plt.show()" 871 | ] 872 | }, 873 | { 874 | "cell_type": "code", 875 | "execution_count": null, 876 | "metadata": {}, 877 | "outputs": [], 878 | "source": [] 879 | } 880 | ], 881 | "metadata": { 882 | "kernelspec": { 883 | "display_name": "Python 3.9.12 ('base')", 884 | "language": "python", 885 | "name": "python3" 886 | }, 887 | "language_info": { 888 | "codemirror_mode": { 889 | "name": "ipython", 890 | "version": 3 891 | }, 892 | "file_extension": ".py", 893 | "mimetype": "text/x-python", 894 | "name": "python", 895 | "nbconvert_exporter": "python", 896 | "pygments_lexer": "ipython3", 897 | "version": "3.9.12" 898 | }, 899 | "orig_nbformat": 4, 900 | "vscode": { 901 | "interpreter": { 902 | "hash": "4f7527b0034a603a2f6ced09004f8a888be406f0f25f6fb9b2bc8cc71cf9bc4b" 903 | } 904 | } 905 | }, 906 | "nbformat": 4, 907 | "nbformat_minor": 2 908 | } 909 | --------------------------------------------------------------------------------