{ "cells": [ { "cell_type": "markdown", "id": "4a867836", "metadata": {}, "source": [ "Bayesian Neural Network model traning and prediction data generation." ] }, { "cell_type": "code", "execution_count": 1, "id": "210da263", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.neural_network import MLPRegressor\n", "import matplotlib.pyplot as plt\n", "from sklearn.metrics import r2_score\n", "\n", "import pickle" ] }, { "cell_type": "code", "execution_count": 2, "id": "edbf3b27", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import tensorflow as tf\n", "from tensorflow import keras\n", "from tensorflow.keras import layers\n", "import tensorflow_probability as tfp\n", "\n", "tfk = tf.keras\n", "tf.keras.backend.set_floatx(\"float32\")\n", "import tensorflow_probability as tfp\n", "tfd = tfp.distributions\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.ensemble import IsolationForest\n", "\n", "from scipy.stats import norm" ] }, { "cell_type": "markdown", "id": "9dadf6ec", "metadata": {}, "source": [ "Load the training databases, generated in player_match_database_creation" ] }, { "cell_type": "code", "execution_count": 3, "id": "fa098fa4", "metadata": {}, "outputs": [], "source": [ "db1 = pd.read_excel('mid_outputs/database_entries.xlsx', index_col = 0) \n", "db2 = pd.read_excel('mid_outputs/season2021/database_entries.xlsx', index_col = 0) \n", "db3 = pd.read_excel('mid_outputs/season2122/database_entries.xlsx', index_col = 0) \n", "db4 = pd.read_excel('mid_outputs/season2223/database_entries.xlsx', index_col = 0) " ] }, { "cell_type": "code", "execution_count": 4, "id": "f71fa9a4", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
matchdayplayerteamoppteamhomevotegoalsassistscards_malusfantavote...miscontrolsdispossessedfoulsfouledaerials_wonaerials_lostcarriesprogressive_carriescarries_into_final_thirdcarries_into_penalty_area
01ZappacostaAtalantaSassuolo06.5000.06.5...0.0171570.0098040.0073530.0122550.0073530.0122550.3848040.0318630.0122550.012255
11DjimsitiAtalantaSassuolo06.0000.06.0...0.0038170.0000000.0114500.0019080.0324430.0209920.3511450.0000000.0019080.000000
21KolasinacAtalantaSassuolo06.5000.06.5...0.0088500.0017700.0088500.0141590.0159290.0230090.3858410.0141590.0176990.001770
31ZorteaAtalantaSassuolo07.0100.010.0...0.0000000.0208330.0312500.0000000.0000000.0104170.4479170.0625000.0416670.010417
41RuggeriAtalantaSassuolo06.5010.07.5...0.0121740.0017390.0139130.0052170.0086960.0191300.3721740.0191300.0156520.005217
..................................................................
3086638Miguel VelosoVeronaMilan05.5000.05.5...0.0060190.0060190.0171970.0068790.0120380.0120380.2656920.0146170.0111780.000860
3086738TamezeVeronaMilan05.5000.05.5...0.0128670.0112170.0105580.0102280.0089080.0102280.2352360.0105580.0112170.001320
3086838Sulemana I.VeronaMilan06.0000.55.5...0.0153610.0138250.0168970.0046080.0153610.0184330.2012290.0061440.0107530.000000
3086938DjuricVeronaMilan05.5000.05.5...0.0190340.0109810.0175700.0212300.1442170.0417280.1918010.0014640.0036600.002196
3087038NgongeVeronaMilan05.5000.05.5...0.0308720.0161070.0174500.0147650.0228190.0469800.2429530.0241610.0147650.012081
\n", "

30871 rows × 122 columns

\n", "
" ], "text/plain": [ " matchday player team oppteam home vote goals \\\n", "0 1 Zappacosta Atalanta Sassuolo 0 6.5 0 \n", "1 1 Djimsiti Atalanta Sassuolo 0 6.0 0 \n", "2 1 Kolasinac Atalanta Sassuolo 0 6.5 0 \n", "3 1 Zortea Atalanta Sassuolo 0 7.0 1 \n", "4 1 Ruggeri Atalanta Sassuolo 0 6.5 0 \n", "... ... ... ... ... ... ... ... \n", "30866 38 Miguel Veloso Verona Milan 0 5.5 0 \n", "30867 38 Tameze Verona Milan 0 5.5 0 \n", "30868 38 Sulemana I. Verona Milan 0 6.0 0 \n", "30869 38 Djuric Verona Milan 0 5.5 0 \n", "30870 38 Ngonge Verona Milan 0 5.5 0 \n", "\n", " assists cards_malus fantavote ... miscontrols dispossessed \\\n", "0 0 0.0 6.5 ... 0.017157 0.009804 \n", "1 0 0.0 6.0 ... 0.003817 0.000000 \n", "2 0 0.0 6.5 ... 0.008850 0.001770 \n", "3 0 0.0 10.0 ... 0.000000 0.020833 \n", "4 1 0.0 7.5 ... 0.012174 0.001739 \n", "... ... ... ... ... ... ... \n", "30866 0 0.0 5.5 ... 0.006019 0.006019 \n", "30867 0 0.0 5.5 ... 0.012867 0.011217 \n", "30868 0 0.5 5.5 ... 0.015361 0.013825 \n", "30869 0 0.0 5.5 ... 0.019034 0.010981 \n", "30870 0 0.0 5.5 ... 0.030872 0.016107 \n", "\n", " fouls fouled aerials_won aerials_lost carries \\\n", "0 0.007353 0.012255 0.007353 0.012255 0.384804 \n", "1 0.011450 0.001908 0.032443 0.020992 0.351145 \n", "2 0.008850 0.014159 0.015929 0.023009 0.385841 \n", "3 0.031250 0.000000 0.000000 0.010417 0.447917 \n", "4 0.013913 0.005217 0.008696 0.019130 0.372174 \n", "... ... ... ... ... ... \n", "30866 0.017197 0.006879 0.012038 0.012038 0.265692 \n", "30867 0.010558 0.010228 0.008908 0.010228 0.235236 \n", "30868 0.016897 0.004608 0.015361 0.018433 0.201229 \n", "30869 0.017570 0.021230 0.144217 0.041728 0.191801 \n", "30870 0.017450 0.014765 0.022819 0.046980 0.242953 \n", "\n", " progressive_carries carries_into_final_third \\\n", "0 0.031863 0.012255 \n", "1 0.000000 0.001908 \n", "2 0.014159 0.017699 \n", "3 0.062500 0.041667 \n", "4 0.019130 0.015652 \n", "... ... ... \n", "30866 0.014617 0.011178 \n", "30867 0.010558 0.011217 \n", "30868 0.006144 0.010753 \n", "30869 0.001464 0.003660 \n", "30870 0.024161 0.014765 \n", "\n", " carries_into_penalty_area \n", "0 0.012255 \n", "1 0.000000 \n", "2 0.001770 \n", "3 0.010417 \n", "4 0.005217 \n", "... ... \n", "30866 0.000860 \n", "30867 0.001320 \n", "30868 0.000000 \n", "30869 0.002196 \n", "30870 0.012081 \n", "\n", "[30871 rows x 122 columns]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "db = pd.concat([db1, db2, db3, db4], ignore_index = True) \n", "\n", "db" ] }, { "cell_type": "code", "execution_count": 5, "id": "1d024554", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
matchdayplayerteamoppteamhomevotegoalsassistscards_malusfantavote...gk_psxggk_psnpxg_per_shot_on_target_againstgk_psxg_netgk_passes_completed_launchedgk_passes_launchedgk_passesgk_passes_throwsgk_goal_kicksgk_crossesgk_crosses_stopped
01MussoAtalantaSassuolo06.5000.06.5...2.4000000.1800000.40000014.00000054.000000141.00000030.00000030.00000048.0000005.000000
11SkorupskiBolognaMilan16.0-200.04.0...4.9000000.2300000.90000033.00000068.000000185.00000029.00000043.000000108.0000003.000000
21RadunovicCagliariTorino06.5000.06.5...10.1000000.380000-0.90000041.00000091.000000156.00000031.00000066.00000098.0000006.000000
31CaprileEmpoliVerona15.0-100.04.0...6.8666670.216667-1.4666679.33333342.000000100.33333323.00000021.33333342.6666672.000000
41TerraccianoFiorentinaGenoa06.0-100.05.0...4.3000000.2100000.30000032.00000066.000000210.00000020.00000026.00000056.0000003.000000
..................................................................
242438Russo A.SassuoloFiorentina15.0-300.02.0...32.5500000.325000-12.116667146.666667365.333333957.000000156.166667238.833333391.50000023.333333
242538ZoetSpeziaRoma05.5-200.53.0...10.0166670.158333-1.81666746.000000145.333333254.16666737.33333351.833333130.3333335.500000
242638Milinkovic-Savic V.TorinoInter15.0-100.04.0...35.8000000.230000-5.200000285.000000939.0000001506.000000185.000000286.000000469.00000036.000000
242738SilvestriUdineseJuventus16.5-100.05.5...48.7000000.3100002.700000144.000000380.000000872.000000142.000000302.000000547.00000013.000000
242838Montipo'VeronaMilan06.0-300.03.0...49.6000000.270000-6.400000360.000000775.000000905.000000124.000000284.000000496.00000026.000000
\n", "

2429 rows × 102 columns

\n", "
" ], "text/plain": [ " matchday player team oppteam home vote \\\n", "0 1 Musso Atalanta Sassuolo 0 6.5 \n", "1 1 Skorupski Bologna Milan 1 6.0 \n", "2 1 Radunovic Cagliari Torino 0 6.5 \n", "3 1 Caprile Empoli Verona 1 5.0 \n", "4 1 Terracciano Fiorentina Genoa 0 6.0 \n", "... ... ... ... ... ... ... \n", "2424 38 Russo A. Sassuolo Fiorentina 1 5.0 \n", "2425 38 Zoet Spezia Roma 0 5.5 \n", "2426 38 Milinkovic-Savic V. Torino Inter 1 5.0 \n", "2427 38 Silvestri Udinese Juventus 1 6.5 \n", "2428 38 Montipo' Verona Milan 0 6.0 \n", "\n", " goals assists cards_malus fantavote ... gk_psxg \\\n", "0 0 0 0.0 6.5 ... 2.400000 \n", "1 -2 0 0.0 4.0 ... 4.900000 \n", "2 0 0 0.0 6.5 ... 10.100000 \n", "3 -1 0 0.0 4.0 ... 6.866667 \n", "4 -1 0 0.0 5.0 ... 4.300000 \n", "... ... ... ... ... ... ... \n", "2424 -3 0 0.0 2.0 ... 32.550000 \n", "2425 -2 0 0.5 3.0 ... 10.016667 \n", "2426 -1 0 0.0 4.0 ... 35.800000 \n", "2427 -1 0 0.0 5.5 ... 48.700000 \n", "2428 -3 0 0.0 3.0 ... 49.600000 \n", "\n", " gk_psnpxg_per_shot_on_target_against gk_psxg_net \\\n", "0 0.180000 0.400000 \n", "1 0.230000 0.900000 \n", "2 0.380000 -0.900000 \n", "3 0.216667 -1.466667 \n", "4 0.210000 0.300000 \n", "... ... ... \n", "2424 0.325000 -12.116667 \n", "2425 0.158333 -1.816667 \n", "2426 0.230000 -5.200000 \n", "2427 0.310000 2.700000 \n", "2428 0.270000 -6.400000 \n", "\n", " gk_passes_completed_launched gk_passes_launched gk_passes \\\n", "0 14.000000 54.000000 141.000000 \n", "1 33.000000 68.000000 185.000000 \n", "2 41.000000 91.000000 156.000000 \n", "3 9.333333 42.000000 100.333333 \n", "4 32.000000 66.000000 210.000000 \n", "... ... ... ... \n", "2424 146.666667 365.333333 957.000000 \n", "2425 46.000000 145.333333 254.166667 \n", "2426 285.000000 939.000000 1506.000000 \n", "2427 144.000000 380.000000 872.000000 \n", "2428 360.000000 775.000000 905.000000 \n", "\n", " gk_passes_throws gk_goal_kicks gk_crosses gk_crosses_stopped \n", "0 30.000000 30.000000 48.000000 5.000000 \n", "1 29.000000 43.000000 108.000000 3.000000 \n", "2 31.000000 66.000000 98.000000 6.000000 \n", "3 23.000000 21.333333 42.666667 2.000000 \n", "4 20.000000 26.000000 56.000000 3.000000 \n", "... ... ... ... ... \n", "2424 156.166667 238.833333 391.500000 23.333333 \n", "2425 37.333333 51.833333 130.333333 5.500000 \n", "2426 185.000000 286.000000 469.000000 36.000000 \n", "2427 142.000000 302.000000 547.000000 13.000000 \n", "2428 124.000000 284.000000 496.000000 26.000000 \n", "\n", "[2429 rows x 102 columns]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "db_gk1 = pd.read_excel('mid_outputs/database_entries_gk.xlsx', index_col = 0) \n", "db_gk2 = pd.read_excel('mid_outputs/season2021/database_entries_gk.xlsx', index_col = 0) \n", "db_gk3 = pd.read_excel('mid_outputs/season2122/database_entries_gk.xlsx', index_col = 0) \n", "db_gk4 = pd.read_excel('mid_outputs/season2223/database_entries_gk.xlsx', index_col = 0) \n", "\n", "db_gk = pd.concat([db_gk1, db_gk2, db_gk3, db_gk4], ignore_index = True) \n", "\n", "db_gk" ] }, { "cell_type": "markdown", "id": "04df0936", "metadata": {}, "source": [ "Load player stats from current season and past seasons" ] }, { "cell_type": "code", "execution_count": 6, "id": "bc9dae87", "metadata": {}, "outputs": [], "source": [ "players_orig = pd.read_excel('mid_outputs/players_stats.xlsx', index_col = 3)\n", "#players = pd.read_excel('mid_outputs/players_stats_rwk.xlsx', index_col = 3) # reworked stats to account for past season\n", "\n", "players_old = pd.read_excel('mid_outputs/season2223/players_stats.xlsx', index_col = 3)\n", "players_old_2 = pd.read_excel('mid_outputs/season2122/players_stats.xlsx', index_col = 3)\n", "players_old_3 = pd.read_excel('mid_outputs/season2021/players_stats.xlsx', index_col = 3)\n", "\n", "players = players_orig" ] }, { "cell_type": "markdown", "id": "397babf2", "metadata": {}, "source": [ "Load team data from current season and add an average Serie A team row" ] }, { "cell_type": "code", "execution_count": 7, "id": "493b0495", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_27732\\661405348.py:3: FutureWarning: Dropping of nuisance columns in DataFrame reductions (with 'numeric_only=None') is deprecated; in a future version this will raise TypeError. Select only valid columns before calling the reduction.\n", " avg_row = pd.DataFrame(index = ['Avg'], data = [team_data.mean()], columns = team_data.columns)\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
teamteam_players_usedteam_possessionteam_gamesteam_games_startsteam_minutesteam_goalsteam_assiststeam_pens_madeteam_pens_att...vs_team_foulsvs_team_fouledvs_team_offsidesvs_team_pens_wonvs_team_pens_concededvs_team_own_goalsvs_team_ball_recoveriesvs_team_aerials_wonvs_team_aerials_lostvs_team_aerials_won_pct
AtalantaAtalanta24.050.77.077.0630.011.0011.00.000.00...64.086.05.000.00.000.00398.00112.00114.0049.600
BolognaBologna23.055.17.077.0630.06.004.00.001.00...87.081.017.000.01.000.00349.0050.0078.0039.100
CagliariCagliari22.038.47.077.0630.02.002.00.000.00...60.075.012.000.00.000.00386.00104.0084.0055.300
EmpoliEmpoli28.044.97.077.0630.01.001.00.000.00...95.089.012.001.00.000.00369.0086.0064.0057.300
FiorentinaFiorentina24.057.67.077.0630.014.0011.00.000.00...85.072.010.001.00.001.00359.00109.0087.0055.600
FrosinoneFrosinone25.049.37.077.0630.09.005.02.002.00...85.064.017.000.02.000.00384.0087.0090.0049.200
GenoaGenoa23.035.37.077.0630.010.009.00.000.00...79.072.013.000.00.000.00349.0079.0097.0044.900
VeronaHellas Verona23.045.17.077.0630.04.002.00.000.00...90.094.012.001.00.000.00387.00135.00128.0051.300
InterInter23.054.77.077.0630.019.0015.03.003.00...82.074.011.000.03.000.00298.0057.00108.0034.500
JuventusJuventus22.050.07.077.0630.011.009.01.002.00...93.078.06.000.02.001.00318.0046.0082.0035.900
LazioLazio20.053.37.077.0630.07.006.01.001.00...84.072.012.000.01.000.00325.0071.0060.0054.200
LecceLecce23.046.37.077.0630.08.006.02.002.00...99.085.06.001.02.000.00354.0081.0081.0050.000
MilanMilan23.056.07.077.0630.015.0010.03.003.00...85.074.010.001.03.000.00329.0072.0066.0052.200
MonzaMonza24.054.47.077.0630.05.004.00.000.00...73.078.012.002.00.000.00319.0083.0065.0056.100
NapoliNapoli21.060.07.077.0630.016.0010.03.005.00...84.070.012.001.05.000.00304.0060.0070.0046.200
RomaRoma23.058.37.077.0630.014.0011.01.001.00...69.079.06.001.01.001.00328.0093.00112.0045.400
SalernitanaSalernitana23.050.07.077.0630.04.003.00.000.00...104.082.013.001.00.000.00357.00151.0093.0061.900
SassuoloSassuolo25.042.67.077.0630.010.007.01.001.00...73.063.024.002.01.001.00336.0095.0063.0060.100
TorinoTorino23.050.07.077.0630.06.004.00.000.00...72.070.08.001.00.000.00371.00104.00101.0050.700
UdineseUdinese24.048.07.077.0630.03.002.00.000.00...77.086.013.001.00.001.00337.0082.00114.0041.800
AvgAvg23.350.07.077.0630.08.756.60.851.05...82.077.211.550.71.050.25347.8587.8587.8549.565
\n", "

21 rows × 303 columns

\n", "
" ], "text/plain": [ " team team_players_used team_possession team_games \\\n", "Atalanta Atalanta 24.0 50.7 7.0 \n", "Bologna Bologna 23.0 55.1 7.0 \n", "Cagliari Cagliari 22.0 38.4 7.0 \n", "Empoli Empoli 28.0 44.9 7.0 \n", "Fiorentina Fiorentina 24.0 57.6 7.0 \n", "Frosinone Frosinone 25.0 49.3 7.0 \n", "Genoa Genoa 23.0 35.3 7.0 \n", "Verona Hellas Verona 23.0 45.1 7.0 \n", "Inter Inter 23.0 54.7 7.0 \n", "Juventus Juventus 22.0 50.0 7.0 \n", "Lazio Lazio 20.0 53.3 7.0 \n", "Lecce Lecce 23.0 46.3 7.0 \n", "Milan Milan 23.0 56.0 7.0 \n", "Monza Monza 24.0 54.4 7.0 \n", "Napoli Napoli 21.0 60.0 7.0 \n", "Roma Roma 23.0 58.3 7.0 \n", "Salernitana Salernitana 23.0 50.0 7.0 \n", "Sassuolo Sassuolo 25.0 42.6 7.0 \n", "Torino Torino 23.0 50.0 7.0 \n", "Udinese Udinese 24.0 48.0 7.0 \n", "Avg Avg 23.3 50.0 7.0 \n", "\n", " team_games_starts team_minutes team_goals team_assists \\\n", "Atalanta 77.0 630.0 11.00 11.0 \n", "Bologna 77.0 630.0 6.00 4.0 \n", "Cagliari 77.0 630.0 2.00 2.0 \n", "Empoli 77.0 630.0 1.00 1.0 \n", "Fiorentina 77.0 630.0 14.00 11.0 \n", "Frosinone 77.0 630.0 9.00 5.0 \n", "Genoa 77.0 630.0 10.00 9.0 \n", "Verona 77.0 630.0 4.00 2.0 \n", "Inter 77.0 630.0 19.00 15.0 \n", "Juventus 77.0 630.0 11.00 9.0 \n", "Lazio 77.0 630.0 7.00 6.0 \n", "Lecce 77.0 630.0 8.00 6.0 \n", "Milan 77.0 630.0 15.00 10.0 \n", "Monza 77.0 630.0 5.00 4.0 \n", "Napoli 77.0 630.0 16.00 10.0 \n", "Roma 77.0 630.0 14.00 11.0 \n", "Salernitana 77.0 630.0 4.00 3.0 \n", "Sassuolo 77.0 630.0 10.00 7.0 \n", "Torino 77.0 630.0 6.00 4.0 \n", "Udinese 77.0 630.0 3.00 2.0 \n", "Avg 77.0 630.0 8.75 6.6 \n", "\n", " team_pens_made team_pens_att ... vs_team_fouls \\\n", "Atalanta 0.00 0.00 ... 64.0 \n", "Bologna 0.00 1.00 ... 87.0 \n", "Cagliari 0.00 0.00 ... 60.0 \n", "Empoli 0.00 0.00 ... 95.0 \n", "Fiorentina 0.00 0.00 ... 85.0 \n", "Frosinone 2.00 2.00 ... 85.0 \n", "Genoa 0.00 0.00 ... 79.0 \n", "Verona 0.00 0.00 ... 90.0 \n", "Inter 3.00 3.00 ... 82.0 \n", "Juventus 1.00 2.00 ... 93.0 \n", "Lazio 1.00 1.00 ... 84.0 \n", "Lecce 2.00 2.00 ... 99.0 \n", "Milan 3.00 3.00 ... 85.0 \n", "Monza 0.00 0.00 ... 73.0 \n", "Napoli 3.00 5.00 ... 84.0 \n", "Roma 1.00 1.00 ... 69.0 \n", "Salernitana 0.00 0.00 ... 104.0 \n", "Sassuolo 1.00 1.00 ... 73.0 \n", "Torino 0.00 0.00 ... 72.0 \n", "Udinese 0.00 0.00 ... 77.0 \n", "Avg 0.85 1.05 ... 82.0 \n", "\n", " vs_team_fouled vs_team_offsides vs_team_pens_won \\\n", "Atalanta 86.0 5.00 0.0 \n", "Bologna 81.0 17.00 0.0 \n", "Cagliari 75.0 12.00 0.0 \n", "Empoli 89.0 12.00 1.0 \n", "Fiorentina 72.0 10.00 1.0 \n", "Frosinone 64.0 17.00 0.0 \n", "Genoa 72.0 13.00 0.0 \n", "Verona 94.0 12.00 1.0 \n", "Inter 74.0 11.00 0.0 \n", "Juventus 78.0 6.00 0.0 \n", "Lazio 72.0 12.00 0.0 \n", "Lecce 85.0 6.00 1.0 \n", "Milan 74.0 10.00 1.0 \n", "Monza 78.0 12.00 2.0 \n", "Napoli 70.0 12.00 1.0 \n", "Roma 79.0 6.00 1.0 \n", "Salernitana 82.0 13.00 1.0 \n", "Sassuolo 63.0 24.00 2.0 \n", "Torino 70.0 8.00 1.0 \n", "Udinese 86.0 13.00 1.0 \n", "Avg 77.2 11.55 0.7 \n", "\n", " vs_team_pens_conceded vs_team_own_goals \\\n", "Atalanta 0.00 0.00 \n", "Bologna 1.00 0.00 \n", "Cagliari 0.00 0.00 \n", "Empoli 0.00 0.00 \n", "Fiorentina 0.00 1.00 \n", "Frosinone 2.00 0.00 \n", "Genoa 0.00 0.00 \n", "Verona 0.00 0.00 \n", "Inter 3.00 0.00 \n", "Juventus 2.00 1.00 \n", "Lazio 1.00 0.00 \n", "Lecce 2.00 0.00 \n", "Milan 3.00 0.00 \n", "Monza 0.00 0.00 \n", "Napoli 5.00 0.00 \n", "Roma 1.00 1.00 \n", "Salernitana 0.00 0.00 \n", "Sassuolo 1.00 1.00 \n", "Torino 0.00 0.00 \n", "Udinese 0.00 1.00 \n", "Avg 1.05 0.25 \n", "\n", " vs_team_ball_recoveries vs_team_aerials_won \\\n", "Atalanta 398.00 112.00 \n", "Bologna 349.00 50.00 \n", "Cagliari 386.00 104.00 \n", "Empoli 369.00 86.00 \n", "Fiorentina 359.00 109.00 \n", "Frosinone 384.00 87.00 \n", "Genoa 349.00 79.00 \n", "Verona 387.00 135.00 \n", "Inter 298.00 57.00 \n", "Juventus 318.00 46.00 \n", "Lazio 325.00 71.00 \n", "Lecce 354.00 81.00 \n", "Milan 329.00 72.00 \n", "Monza 319.00 83.00 \n", "Napoli 304.00 60.00 \n", "Roma 328.00 93.00 \n", "Salernitana 357.00 151.00 \n", "Sassuolo 336.00 95.00 \n", "Torino 371.00 104.00 \n", "Udinese 337.00 82.00 \n", "Avg 347.85 87.85 \n", "\n", " vs_team_aerials_lost vs_team_aerials_won_pct \n", "Atalanta 114.00 49.600 \n", "Bologna 78.00 39.100 \n", "Cagliari 84.00 55.300 \n", "Empoli 64.00 57.300 \n", "Fiorentina 87.00 55.600 \n", "Frosinone 90.00 49.200 \n", "Genoa 97.00 44.900 \n", "Verona 128.00 51.300 \n", "Inter 108.00 34.500 \n", "Juventus 82.00 35.900 \n", "Lazio 60.00 54.200 \n", "Lecce 81.00 50.000 \n", "Milan 66.00 52.200 \n", "Monza 65.00 56.100 \n", "Napoli 70.00 46.200 \n", "Roma 112.00 45.400 \n", "Salernitana 93.00 61.900 \n", "Sassuolo 63.00 60.100 \n", "Torino 101.00 50.700 \n", "Udinese 114.00 41.800 \n", "Avg 87.85 49.565 \n", "\n", "[21 rows x 303 columns]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "team_data = pd.read_excel('mid_outputs/team_data.xlsx', index_col = 0)\n", "\n", "avg_row = pd.DataFrame(index = ['Avg'], data = [team_data.mean()], columns = team_data.columns)\n", "avg_row['team']['Avg'] = 'Avg'\n", "\n", "team_data = pd.concat([team_data, avg_row])\n", "\n", "team_data" ] }, { "cell_type": "markdown", "id": "cc1cd13d", "metadata": {}, "source": [ "Data processing functions copied from player_match_dataset_creation" ] }, { "cell_type": "code", "execution_count": 8, "id": "32f56138", "metadata": {}, "outputs": [], "source": [ "features_abs = ['r',\n", " 'games',\n", " 'games_starts', \n", " 'minutes',\n", " 'shots_on_target_pct',\n", " 'goals_per_shot',\n", " 'goals_per_shot_on_target',\n", " 'passes_pct',\n", " #'dribble_tackles_pct',\n", " #'dribbles_completed_pct',\n", " 'aerials_won_pct',\n", " 'team_possession',\n", " 'team_goals_assists_per90',\n", " 'team_goals_pens_per90',\n", " 'team_goals_assists_pens_per90',\n", " 'team_xg_per90',\n", " 'team_gk_goals_against_per90',\n", " 'team_gk_save_pct',\n", " 'team_gk_clean_sheets_pct',\n", " 'team_passes_pct',\n", " 'team_passes_pct_medium',\n", " 'team_passes_pct_long',\n", " 'team_sca_per90',\n", " 'team_gca_per90',\n", " #'team_dribble_tackles_pct',\n", " 'team_aerials_won_pct',\n", " 'vs_team_possession',\n", " 'vs_team_goals_per90',\n", " 'vs_team_assists_per90',\n", " 'vs_team_xg_per90',\n", " 'vs_team_gk_save_pct',\n", " 'vs_team_gk_clean_sheets_pct',\n", " 'vs_team_gk_pct_passes_launched',\n", " 'vs_team_gk_crosses_stopped_pct',\n", " 'vs_team_shots_on_target_per90',\n", " 'vs_team_passes_pct',\n", " 'vs_team_passes_pct_short',\n", " 'vs_team_passes_pct_medium',\n", " 'vs_team_passes_pct_long',\n", " 'vs_team_sca_per90',\n", " 'vs_team_gca_per90',\n", " #'vs_team_dribble_tackles_pct',\n", " #'vs_team_dribbles_completed_pct',\n", " 'vs_team_aerials_won_pct',\n", " 'opp_team_possession',\n", " 'opp_team_goals_assists_per90',\n", " 'opp_team_goals_pens_per90',\n", " 'opp_team_goals_assists_pens_per90',\n", " 'opp_team_xg_per90',\n", " 'opp_team_gk_goals_against_per90',\n", " 'opp_team_gk_save_pct',\n", " 'opp_team_gk_clean_sheets_pct',\n", " 'opp_team_passes_pct',\n", " 'opp_team_passes_pct_medium',\n", " 'opp_team_passes_pct_long',\n", " 'opp_team_sca_per90',\n", " 'opp_team_gca_per90',\n", " #'opp_team_dribble_tackles_pct',\n", " 'opp_team_aerials_won_pct',\n", " 'opp_vs_team_possession',\n", " 'opp_vs_team_goals_per90',\n", " 'opp_vs_team_assists_per90',\n", " 'opp_vs_team_xg_per90',\n", " 'opp_vs_team_gk_save_pct',\n", " 'opp_vs_team_gk_clean_sheets_pct',\n", " 'opp_vs_team_gk_pct_passes_launched',\n", " 'opp_vs_team_gk_crosses_stopped_pct',\n", " 'opp_vs_team_shots_on_target_per90',\n", " 'opp_vs_team_passes_pct',\n", " 'opp_vs_team_passes_pct_short',\n", " 'opp_vs_team_passes_pct_medium',\n", " 'opp_vs_team_passes_pct_long',\n", " 'opp_vs_team_sca_per90',\n", " 'opp_vs_team_gca_per90',\n", " #'opp_vs_team_dribble_tackles_pct',\n", " #'opp_vs_team_dribbles_completed_pct',\n", " 'opp_vs_team_aerials_won_pct',\n", " \n", " 'vote_avg',\n", " 'vote_std']\n", "\n", "features_rel = [\n", " 'goals',\n", " 'assists',\n", " 'cards_yellow',\n", " 'cards_red',\n", " 'xg',\n", " 'npxg',\n", " 'shots_on_target',\n", " 'passes_completed',\n", " 'passes_into_final_third',\n", " 'passes_into_penalty_area',\n", " 'progressive_passes',\n", " 'passes_live',\n", " 'passes_dead',\n", " 'through_balls',\n", " 'passes_switches',\n", " 'crosses',\n", " 'corner_kicks',\n", " #'dribble_tackles',\n", " #'dribbles_vs',\n", " #'dribbled_past',\n", " 'blocks',\n", " 'blocked_shots',\n", " 'blocked_passes',\n", " 'interceptions',\n", " 'clearances',\n", " 'errors',\n", " 'touches',\n", " 'touches_def_pen_area',\n", " 'touches_def_3rd',\n", " 'touches_mid_3rd',\n", " 'touches_att_3rd',\n", " 'touches_att_pen_area',\n", " 'touches_live_ball',\n", " #'dribbles_completed',\n", " #'dribbles',\n", " 'passes_received',\n", " 'miscontrols',\n", " 'dispossessed',\n", " 'fouls',\n", " 'fouled',\n", " 'aerials_won',\n", " 'aerials_lost',\n", " 'carries',\n", " 'progressive_carries',\n", " 'carries_into_final_third',\n", " 'carries_into_penalty_area']\n", "\n", "features_rel_gamecorr = [\n", " 'goals',\n", " 'assists',\n", " 'xg',\n", " 'npxg',\n", " 'cards_yellow',\n", " 'cards_red'\n", "]" ] }, { "cell_type": "code", "execution_count": 9, "id": "4001f3f8", "metadata": {}, "outputs": [], "source": [ "features_abs_gk = [\n", " 'gk_games',\n", " 'gk_games_starts',\n", " 'gk_minutes',\n", " 'gk_goals_against_per90', \n", " 'gk_save_pct',\n", " 'gk_clean_sheets_pct',\n", " 'gk_psxg_net_per90',\n", " 'gk_passes_pct_launched',\n", " 'gk_pct_passes_launched',\n", " 'gk_passes_length_avg',\n", " 'gk_pct_goal_kicks_launched',\n", " 'gk_goal_kick_length_avg',\n", " 'gk_crosses_stopped_pct',\n", " 'gk_def_actions_outside_pen_area_per90',\n", " 'gk_avg_distance_def_actions',\n", " \n", " 'team_possession',\n", " 'team_goals_assists_per90',\n", " 'team_goals_pens_per90',\n", " 'team_goals_assists_pens_per90',\n", " 'team_xg_per90',\n", " 'team_gk_goals_against_per90',\n", " 'team_gk_save_pct',\n", " 'team_gk_clean_sheets_pct',\n", " 'team_passes_pct',\n", " 'team_passes_pct_medium',\n", " 'team_passes_pct_long',\n", " 'team_sca_per90',\n", " 'team_gca_per90',\n", " #'team_dribble_tackles_pct',\n", " 'team_aerials_won_pct',\n", " 'vs_team_possession',\n", " 'vs_team_goals_per90',\n", " 'vs_team_assists_per90',\n", " 'vs_team_xg_per90',\n", " 'vs_team_gk_save_pct',\n", " 'vs_team_gk_clean_sheets_pct',\n", " 'vs_team_gk_pct_passes_launched',\n", " 'vs_team_gk_crosses_stopped_pct',\n", " 'vs_team_shots_on_target_per90',\n", " 'vs_team_passes_pct',\n", " 'vs_team_passes_pct_short',\n", " 'vs_team_passes_pct_medium',\n", " 'vs_team_passes_pct_long',\n", " 'vs_team_sca_per90',\n", " 'vs_team_gca_per90',\n", " #'vs_team_dribble_tackles_pct',\n", " #'vs_team_dribbles_completed_pct',\n", " 'vs_team_aerials_won_pct',\n", " 'opp_team_possession',\n", " 'opp_team_goals_assists_per90',\n", " 'opp_team_goals_pens_per90',\n", " 'opp_team_goals_assists_pens_per90',\n", " 'opp_team_xg_per90',\n", " 'opp_team_gk_goals_against_per90',\n", " 'opp_team_gk_save_pct',\n", " 'opp_team_gk_clean_sheets_pct',\n", " 'opp_team_passes_pct',\n", " 'opp_team_passes_pct_medium',\n", " 'opp_team_passes_pct_long',\n", " 'opp_team_sca_per90',\n", " 'opp_team_gca_per90',\n", " #'opp_team_dribble_tackles_pct',\n", " 'opp_team_aerials_won_pct',\n", " 'opp_vs_team_possession',\n", " 'opp_vs_team_goals_per90',\n", " 'opp_vs_team_assists_per90',\n", " 'opp_vs_team_xg_per90',\n", " 'opp_vs_team_gk_save_pct',\n", " 'opp_vs_team_gk_clean_sheets_pct',\n", " 'opp_vs_team_gk_pct_passes_launched',\n", " 'opp_vs_team_gk_crosses_stopped_pct',\n", " 'opp_vs_team_shots_on_target_per90',\n", " 'opp_vs_team_passes_pct',\n", " 'opp_vs_team_passes_pct_short',\n", " 'opp_vs_team_passes_pct_medium',\n", " 'opp_vs_team_passes_pct_long',\n", " 'opp_vs_team_sca_per90',\n", " 'opp_vs_team_gca_per90',\n", " #'opp_vs_team_dribble_tackles_pct',\n", " #'opp_vs_team_dribbles_completed_pct',\n", " 'opp_vs_team_aerials_won_pct',\n", " \n", " 'vote_avg',\n", " 'vote_std']\n", "\n", "features_rel_gk = [\n", " 'gk_shots_on_target_against',\n", " 'gk_saves',\n", " 'gk_free_kick_goals_against',\n", " 'gk_corner_kick_goals_against',\n", " 'gk_own_goals_against',\n", " 'gk_psxg',\n", " 'gk_psnpxg_per_shot_on_target_against',\n", " 'gk_psxg_net',\n", " 'gk_passes_completed_launched',\n", " 'gk_passes_launched',\n", " 'gk_passes',\n", " 'gk_passes_throws',\n", " 'gk_goal_kicks',\n", " 'gk_crosses',\n", " 'gk_crosses_stopped',\n", "]" ] }, { "cell_type": "code", "execution_count": 10, "id": "f4017b2f", "metadata": {}, "outputs": [], "source": [ "DEL_G = False\n", "\n", "features_to_del = [\n", " 'goals',\n", " 'assists',\n", " 'xg',\n", " 'npxg'\n", "]\n", "\n", "def player_match_data(player, pteam, oppteam, oldseason = False):\n", " if(not(player in players.index)):\n", " return None\n", " \n", " if(oldseason):\n", " pdata = players_old.loc[[player]]\n", " else:\n", " pdata = players.loc[[player]]\n", " \n", " pteam_stats = team_data.loc[[pteam]].rename(index = {pteam : player})\n", " \n", " oppteam_stats = team_data.loc[[oppteam]].rename(index = {oppteam : player})\n", " \n", " oppteam_stats = oppteam_stats.rename(lambda x: 'opp_' + x, axis='columns')\n", " \n", " out = pd.concat([pdata, pteam_stats, oppteam_stats], axis = 1)\n", " \n", " return(out)\n", "\n", "def player_match_data_ext(player, pteam, oppteam, oldseason = False):\n", " pdata = player_match_data(player, pteam, oppteam, oldseason = oldseason)\n", " \n", " if(not isinstance(pdata, pd.DataFrame)):\n", " return None\n", " \n", " assert pdata['games'][0] > 0\n", " \n", " out = pd.concat([pdata[features_abs], pdata[features_rel]], axis = 1)\n", " \n", " out[features_rel] = out[features_rel] / max(pdata['minutes'][0], 1)\n", " \n", " out[features_rel_gamecorr] = out[features_rel_gamecorr] * (pdata['minutes'][0] / max(pdata['games'][0], 1) / 90)\n", " \n", " if(DEL_G):\n", " out[features_to_del] = 0\n", " \n", " return out\n", "\n", "def player_match_data_ext_gk(player, pteam, oppteam, oldseason = False):\n", " pdata = player_match_data(player, pteam, oppteam, oldseason = oldseason)\n", " \n", " if(not isinstance(pdata, pd.DataFrame)):\n", " return None\n", " \n", " if(pdata['gk_games'][0] <= 0):\n", " return None\n", " \n", " out = pd.concat([pdata[features_abs_gk], pdata[features_rel_gk]], axis = 1)\n", " \n", " out[features_rel_gk] = out[features_rel_gk] / max(pdata['minutes'][0], 1)\n", "\n", " return out\n", " " ] }, { "cell_type": "markdown", "id": "4e6700ec", "metadata": {}, "source": [ "Load data from previous seasons in other leagues, for new players (rookies) in Serie A" ] }, { "cell_type": "code", "execution_count": 11, "id": "3223cfe3", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0nationalitypositionteamteam.1agebirth_yeargamesgames_startsminutes...vs_team_pens_concededvs_team_own_goalsleagueseasonsurnameinitialnamevote_avgvote_stdr
player
Kolasinac0ba BIHDFMarseilleMarseille29199333262214...76Ligue-12022-2023KolasinacSSead Kolašinac60.3D
Freuler1ch SUIMFNott'ham ForestNott'ham Forest30199228242161...62Premier-League2022-2023FreulerRRemo Freuler60.3C
Karlsson2se SWEFWAZ AlkmaarAZ Alkmaar24199823211777...33Eredivisie2022-2023KarlssonJJesper Karlsson60.3A
Kristiansen3dk DENDFLeicester CityLeicester City1920021211892...62Premier-League2022-2023KristiansenVVictor Bernth Kristiansen60.3D
Mina4co COLDFEvertonEverton27199477594...22Premier-League2022-2023MinaYYerry Mina60.3D
Monterisi5it ITADFFrosinoneFrosinone202001116615...02Serie-B2022-2023MonterisiIIlario Monterisi60.3D
Pavard6fr FRADFBayern MunichBayern Munich26199630272431...52Bundesliga2022-2023PavardBBenjamin Pavard60.3D
Thuram7fr FRAFWM'GladbachM'Gladbach24199730282513...60Bundesliga2022-2023ThuramMMarcus Thuram60.3A
Klaassen8nl NEDMFAjaxAjax29199333212046...50Eredivisie2022-2023KlaassenDDavy Klaassen60.3C
Sanchez9cl CHIFW,MFMarseilleMarseille33198835322679...76Ligue-12022-2023SanchezAAlexis Sánchez60.3A
Weah10us USADF,FWLilleLille22200029181748...120Ligue-12022-2023WeahTTimothy Weah60.3C
Guendouzi11fr FRAMFMarseilleMarseille23199933252108...76Ligue-12022-2023GuendouziMMattéo Guendouzi60.3C
Kamada12jp JPNMFEint FrankfurtEint Frankfurt25199632252265...62Bundesliga2022-2023KamadaDDaichi Kamada60.3C
Chukwueze13ng NGAFW,MFVillarrealVillarreal23199937272339...72La-Liga2022-2023ChukwuezeSSamuel Chukwueze60.3C
Pulisic14us USAFW,DFChelseaChelsea231998248821...31Premier-League2022-2023PulisicCChristian Pulisic60.3C
Loftus-Cheek15eng ENGMF,DFChelseaChelsea26199625191536...31Premier-League2022-2023Loftus-CheekRRuben Loftus-Cheek60.3C
Lindstrom16dk DENMF,FWEint FrankfurtEint Frankfurt22200027221679...62Bundesliga2022-2023LindstrmJJesper Lindstrøm60.3C
Cajuste17se SWEMFReimsReims22199931141530...80Ligue-12022-2023CajusteJJens Cajuste60.3C
Cheddira18ma MARFWBariBari24199831302495...02Serie-B2022-2023CheddiraWWalid Cheddira60.3A
Lapadula19pe PERFWCagliariCagliari32199036332882...00Serie-B2022-2023LapadulaGGianluca Lapadula60.3A
Kristensen20dk DENDFLeeds UnitedLeeds United25199726211960...33Premier-League2022-2023NissenRRasmus Nissen60.3D
Azmoun21ir IRNFW,MFLeverkusenLeverkusen271995238927...70Bundesliga2022-2023AzmounSSardar Azmoun60.3A
Renato Sanches22pt PORMFParis S-GParis S-G241997236717...73Ligue-12022-2023SanchesRRenato Sanches60.3C
N'dicka23fr FRADFEint FrankfurtEint Frankfurt22199930302692...62Bundesliga2022-2023NDickaOObite N'Dicka60.3D
Aouar24dz ALGMFLyonLyon241998166526...82Ligue-12022-2023AouarHHoussem Aouar60.3C
Pedersen25no NORDFFeyenoordFeyenoord22200029252117...34Eredivisie2022-2023PedersenMMarcus Pedersen60.3D
Castillejo26es ESPFW,MFValenciaValencia27199525171362...82La-Liga2022-2023CastillejoSSamu Castillejo60.3C
Lucca27it ITAFW,MFAjaxAjax212000140150...50Eredivisie2022-2023LuccaLLorenzo Lucca60.3A
Folorunsho28ng NGAMF,FWBariBari24199827251995...02Serie-B2022-2023FolorunshoMMichael Folorunsho60.3C
Gudmundsson A.29is ISLMF,FWGenoaGenoa25199736322696...00Serie-B2022-2023GumundssonAAlbert Guðmundsson60.3C
Bakker30nl NEDDF,MFLeverkusenLeverkusen22200028191659...70Bundesliga2022-2023BakkerMMitchel Bakker60.3D
Martin31es ESPDFMainz 05Mainz 0525199728201847...60Bundesliga2022-2023MartinAAarón Martín60.3D
Dragusin32ro ROUDFGenoaGenoa20200238373375...00Serie-B2022-2023DragusinRRadu Drăgușin60.3D
Viti33it ITADFNiceNice20200297634...61Ligue-12022-2023VitiMMattia Viti60.3D
Beukema34nl NEDDFAZ AlkmaarAZ Alkmaar23199826242198...33Eredivisie2022-2023BeukemaSSam Beukema60.3D
Reijnders35nl NEDMFAZ AlkmaarAZ Alkmaar24199834343046...33Eredivisie2022-2023ReijndersTTijjani Reijnders60.3C
Luvumbo36ao ANGFW,MFCagliariCagliari20200236151560...00Serie-B2022-2023ZitoZZito60.3A
Retegui37it ITAFWTigreTigre23199921201790...01Primera-Division2022-2023ReteguiMMateo Retegui60.3A
Fabbian38it ITAMFUS RegginaUS Reggina19200336342827...03Serie-B2022-2023FabbianGGiovanni Fabbian60.3C
Beltran L.39ar ARGFWRiver PlateRiver Plate21200125161371...01Primera-Division2022-2023BeltranLLucas Beltrán60.3A
Azzi40br BRADF,MFCagliariCagliari28199416131144...00Serie-B2022-2023AzziPPaulo Azzi60.3D
Nandez41uy URUMF,FWCagliariCagliari26199533302539...00Serie-B2022-2023NandezNNahitan Nández60.3C
Pavoletti42it ITAFW,MFCagliariCagliari3319882310989...00Serie-B2022-2023PavolettiLLeonardo Pavoletti60.3A
Makoumbou43cg CGOMFCagliariCagliari24199836332981...00Serie-B2022-2023MakoumbouAAntoine Makoumbou60.3C
Dossena44it ITADFCagliariCagliari23199823191703...00Serie-B2022-2023DossenaAAlberto Dossena60.3C
Strootman45nl NEDMFGenoaGenoa32199030252229...00Serie-B2022-2023StrootmanKKevin Strootman60.3C
Bani46it ITADFGenoaGenoa28199333312551...00Serie-B2022-2023BaniMMattia Bani60.3D
Frendrup47dk DENMFGenoaGenoa21200137322921...00Serie-B2022-2023FrendrupMMorten Frendrup60.3C
Sabelli48it ITADF,MFGenoaGenoa29199330292514...00Serie-B2022-2023SabelliSStefano Sabelli60.3D
Caso49it ITAFW,MFFrosinoneFrosinone23199835231890...02Serie-B2022-2023CasoGGiuseppe Caso60.3A
Baez50uy URUFWFrosinoneFrosinone271995175667...02Serie-B2022-2023BaezJJaime Báez60.3C
Mulattieri51it ITAFWFrosinoneFrosinone21200029151502...02Serie-B2022-2023MulattieriSSamuele Mulattieri60.3A
\n", "

52 rows × 384 columns

\n", "
" ], "text/plain": [ " Unnamed: 0 nationality position team \\\n", "player \n", "Kolasinac 0 ba BIH DF Marseille \n", "Freuler 1 ch SUI MF Nott'ham Forest \n", "Karlsson 2 se SWE FW AZ Alkmaar \n", "Kristiansen 3 dk DEN DF Leicester City \n", "Mina 4 co COL DF Everton \n", "Monterisi 5 it ITA DF Frosinone \n", "Pavard 6 fr FRA DF Bayern Munich \n", "Thuram 7 fr FRA FW M'Gladbach \n", "Klaassen 8 nl NED MF Ajax \n", "Sanchez 9 cl CHI FW,MF Marseille \n", "Weah 10 us USA DF,FW Lille \n", "Guendouzi 11 fr FRA MF Marseille \n", "Kamada 12 jp JPN MF Eint Frankfurt \n", "Chukwueze 13 ng NGA FW,MF Villarreal \n", "Pulisic 14 us USA FW,DF Chelsea \n", "Loftus-Cheek 15 eng ENG MF,DF Chelsea \n", "Lindstrom 16 dk DEN MF,FW Eint Frankfurt \n", "Cajuste 17 se SWE MF Reims \n", "Cheddira 18 ma MAR FW Bari \n", "Lapadula 19 pe PER FW Cagliari \n", "Kristensen 20 dk DEN DF Leeds United \n", "Azmoun 21 ir IRN FW,MF Leverkusen \n", "Renato Sanches 22 pt POR MF Paris S-G \n", "N'dicka 23 fr FRA DF Eint Frankfurt \n", "Aouar 24 dz ALG MF Lyon \n", "Pedersen 25 no NOR DF Feyenoord \n", "Castillejo 26 es ESP FW,MF Valencia \n", "Lucca 27 it ITA FW,MF Ajax \n", "Folorunsho 28 ng NGA MF,FW Bari \n", "Gudmundsson A. 29 is ISL MF,FW Genoa \n", "Bakker 30 nl NED DF,MF Leverkusen \n", "Martin 31 es ESP DF Mainz 05 \n", "Dragusin 32 ro ROU DF Genoa \n", "Viti 33 it ITA DF Nice \n", "Beukema 34 nl NED DF AZ Alkmaar \n", "Reijnders 35 nl NED MF AZ Alkmaar \n", "Luvumbo 36 ao ANG FW,MF Cagliari \n", "Retegui 37 it ITA FW Tigre \n", "Fabbian 38 it ITA MF US Reggina \n", "Beltran L. 39 ar ARG FW River Plate \n", "Azzi 40 br BRA DF,MF Cagliari \n", "Nandez 41 uy URU MF,FW Cagliari \n", "Pavoletti 42 it ITA FW,MF Cagliari \n", "Makoumbou 43 cg CGO MF Cagliari \n", "Dossena 44 it ITA DF Cagliari \n", "Strootman 45 nl NED MF Genoa \n", "Bani 46 it ITA DF Genoa \n", "Frendrup 47 dk DEN MF Genoa \n", "Sabelli 48 it ITA DF,MF Genoa \n", "Caso 49 it ITA FW,MF Frosinone \n", "Baez 50 uy URU FW Frosinone \n", "Mulattieri 51 it ITA FW Frosinone \n", "\n", " team.1 age birth_year games games_starts \\\n", "player \n", "Kolasinac Marseille 29 1993 33 26 \n", "Freuler Nott'ham Forest 30 1992 28 24 \n", "Karlsson AZ Alkmaar 24 1998 23 21 \n", "Kristiansen Leicester City 19 2002 12 11 \n", "Mina Everton 27 1994 7 7 \n", "Monterisi Frosinone 20 2001 11 6 \n", "Pavard Bayern Munich 26 1996 30 27 \n", "Thuram M'Gladbach 24 1997 30 28 \n", "Klaassen Ajax 29 1993 33 21 \n", "Sanchez Marseille 33 1988 35 32 \n", "Weah Lille 22 2000 29 18 \n", "Guendouzi Marseille 23 1999 33 25 \n", "Kamada Eint Frankfurt 25 1996 32 25 \n", "Chukwueze Villarreal 23 1999 37 27 \n", "Pulisic Chelsea 23 1998 24 8 \n", "Loftus-Cheek Chelsea 26 1996 25 19 \n", "Lindstrom Eint Frankfurt 22 2000 27 22 \n", "Cajuste Reims 22 1999 31 14 \n", "Cheddira Bari 24 1998 31 30 \n", "Lapadula Cagliari 32 1990 36 33 \n", "Kristensen Leeds United 25 1997 26 21 \n", "Azmoun Leverkusen 27 1995 23 8 \n", "Renato Sanches Paris S-G 24 1997 23 6 \n", "N'dicka Eint Frankfurt 22 1999 30 30 \n", "Aouar Lyon 24 1998 16 6 \n", "Pedersen Feyenoord 22 2000 29 25 \n", "Castillejo Valencia 27 1995 25 17 \n", "Lucca Ajax 21 2000 14 0 \n", "Folorunsho Bari 24 1998 27 25 \n", "Gudmundsson A. Genoa 25 1997 36 32 \n", "Bakker Leverkusen 22 2000 28 19 \n", "Martin Mainz 05 25 1997 28 20 \n", "Dragusin Genoa 20 2002 38 37 \n", "Viti Nice 20 2002 9 7 \n", "Beukema AZ Alkmaar 23 1998 26 24 \n", "Reijnders AZ Alkmaar 24 1998 34 34 \n", "Luvumbo Cagliari 20 2002 36 15 \n", "Retegui Tigre 23 1999 21 20 \n", "Fabbian US Reggina 19 2003 36 34 \n", "Beltran L. River Plate 21 2001 25 16 \n", "Azzi Cagliari 28 1994 16 13 \n", "Nandez Cagliari 26 1995 33 30 \n", "Pavoletti Cagliari 33 1988 23 10 \n", "Makoumbou Cagliari 24 1998 36 33 \n", "Dossena Cagliari 23 1998 23 19 \n", "Strootman Genoa 32 1990 30 25 \n", "Bani Genoa 28 1993 33 31 \n", "Frendrup Genoa 21 2001 37 32 \n", "Sabelli Genoa 29 1993 30 29 \n", "Caso Frosinone 23 1998 35 23 \n", "Baez Frosinone 27 1995 17 5 \n", "Mulattieri Frosinone 21 2000 29 15 \n", "\n", " minutes ... vs_team_pens_conceded vs_team_own_goals \\\n", "player ... \n", "Kolasinac 2214 ... 7 6 \n", "Freuler 2161 ... 6 2 \n", "Karlsson 1777 ... 3 3 \n", "Kristiansen 892 ... 6 2 \n", "Mina 594 ... 2 2 \n", "Monterisi 615 ... 0 2 \n", "Pavard 2431 ... 5 2 \n", "Thuram 2513 ... 6 0 \n", "Klaassen 2046 ... 5 0 \n", "Sanchez 2679 ... 7 6 \n", "Weah 1748 ... 12 0 \n", "Guendouzi 2108 ... 7 6 \n", "Kamada 2265 ... 6 2 \n", "Chukwueze 2339 ... 7 2 \n", "Pulisic 821 ... 3 1 \n", "Loftus-Cheek 1536 ... 3 1 \n", "Lindstrom 1679 ... 6 2 \n", "Cajuste 1530 ... 8 0 \n", "Cheddira 2495 ... 0 2 \n", "Lapadula 2882 ... 0 0 \n", "Kristensen 1960 ... 3 3 \n", "Azmoun 927 ... 7 0 \n", "Renato Sanches 717 ... 7 3 \n", "N'dicka 2692 ... 6 2 \n", "Aouar 526 ... 8 2 \n", "Pedersen 2117 ... 3 4 \n", "Castillejo 1362 ... 8 2 \n", "Lucca 150 ... 5 0 \n", "Folorunsho 1995 ... 0 2 \n", "Gudmundsson A. 2696 ... 0 0 \n", "Bakker 1659 ... 7 0 \n", "Martin 1847 ... 6 0 \n", "Dragusin 3375 ... 0 0 \n", "Viti 634 ... 6 1 \n", "Beukema 2198 ... 3 3 \n", "Reijnders 3046 ... 3 3 \n", "Luvumbo 1560 ... 0 0 \n", "Retegui 1790 ... 0 1 \n", "Fabbian 2827 ... 0 3 \n", "Beltran L. 1371 ... 0 1 \n", "Azzi 1144 ... 0 0 \n", "Nandez 2539 ... 0 0 \n", "Pavoletti 989 ... 0 0 \n", "Makoumbou 2981 ... 0 0 \n", "Dossena 1703 ... 0 0 \n", "Strootman 2229 ... 0 0 \n", "Bani 2551 ... 0 0 \n", "Frendrup 2921 ... 0 0 \n", "Sabelli 2514 ... 0 0 \n", "Caso 1890 ... 0 2 \n", "Baez 667 ... 0 2 \n", "Mulattieri 1502 ... 0 2 \n", "\n", " league season surname initial \\\n", "player \n", "Kolasinac Ligue-1 2022-2023 Kolasinac S \n", "Freuler Premier-League 2022-2023 Freuler R \n", "Karlsson Eredivisie 2022-2023 Karlsson J \n", "Kristiansen Premier-League 2022-2023 Kristiansen V \n", "Mina Premier-League 2022-2023 Mina Y \n", "Monterisi Serie-B 2022-2023 Monterisi I \n", "Pavard Bundesliga 2022-2023 Pavard B \n", "Thuram Bundesliga 2022-2023 Thuram M \n", "Klaassen Eredivisie 2022-2023 Klaassen D \n", "Sanchez Ligue-1 2022-2023 Sanchez A \n", "Weah Ligue-1 2022-2023 Weah T \n", "Guendouzi Ligue-1 2022-2023 Guendouzi M \n", "Kamada Bundesliga 2022-2023 Kamada D \n", "Chukwueze La-Liga 2022-2023 Chukwueze S \n", "Pulisic Premier-League 2022-2023 Pulisic C \n", "Loftus-Cheek Premier-League 2022-2023 Loftus-Cheek R \n", "Lindstrom Bundesliga 2022-2023 Lindstrm J \n", "Cajuste Ligue-1 2022-2023 Cajuste J \n", "Cheddira Serie-B 2022-2023 Cheddira W \n", "Lapadula Serie-B 2022-2023 Lapadula G \n", "Kristensen Premier-League 2022-2023 Nissen R \n", "Azmoun Bundesliga 2022-2023 Azmoun S \n", "Renato Sanches Ligue-1 2022-2023 Sanches R \n", "N'dicka Bundesliga 2022-2023 NDicka O \n", "Aouar Ligue-1 2022-2023 Aouar H \n", "Pedersen Eredivisie 2022-2023 Pedersen M \n", "Castillejo La-Liga 2022-2023 Castillejo S \n", "Lucca Eredivisie 2022-2023 Lucca L \n", "Folorunsho Serie-B 2022-2023 Folorunsho M \n", "Gudmundsson A. Serie-B 2022-2023 Gumundsson A \n", "Bakker Bundesliga 2022-2023 Bakker M \n", "Martin Bundesliga 2022-2023 Martin A \n", "Dragusin Serie-B 2022-2023 Dragusin R \n", "Viti Ligue-1 2022-2023 Viti M \n", "Beukema Eredivisie 2022-2023 Beukema S \n", "Reijnders Eredivisie 2022-2023 Reijnders T \n", "Luvumbo Serie-B 2022-2023 Zito Z \n", "Retegui Primera-Division 2022-2023 Retegui M \n", "Fabbian Serie-B 2022-2023 Fabbian G \n", "Beltran L. Primera-Division 2022-2023 Beltran L \n", "Azzi Serie-B 2022-2023 Azzi P \n", "Nandez Serie-B 2022-2023 Nandez N \n", "Pavoletti Serie-B 2022-2023 Pavoletti L \n", "Makoumbou Serie-B 2022-2023 Makoumbou A \n", "Dossena Serie-B 2022-2023 Dossena A \n", "Strootman Serie-B 2022-2023 Strootman K \n", "Bani Serie-B 2022-2023 Bani M \n", "Frendrup Serie-B 2022-2023 Frendrup M \n", "Sabelli Serie-B 2022-2023 Sabelli S \n", "Caso Serie-B 2022-2023 Caso G \n", "Baez Serie-B 2022-2023 Baez J \n", "Mulattieri Serie-B 2022-2023 Mulattieri S \n", "\n", " name vote_avg vote_std r \n", "player \n", "Kolasinac Sead Kolašinac 6 0.3 D \n", "Freuler Remo Freuler 6 0.3 C \n", "Karlsson Jesper Karlsson 6 0.3 A \n", "Kristiansen Victor Bernth Kristiansen 6 0.3 D \n", "Mina Yerry Mina 6 0.3 D \n", "Monterisi Ilario Monterisi 6 0.3 D \n", "Pavard Benjamin Pavard 6 0.3 D \n", "Thuram Marcus Thuram 6 0.3 A \n", "Klaassen Davy Klaassen 6 0.3 C \n", "Sanchez Alexis Sánchez 6 0.3 A \n", "Weah Timothy Weah 6 0.3 C \n", "Guendouzi Mattéo Guendouzi 6 0.3 C \n", "Kamada Daichi Kamada 6 0.3 C \n", "Chukwueze Samuel Chukwueze 6 0.3 C \n", "Pulisic Christian Pulisic 6 0.3 C \n", "Loftus-Cheek Ruben Loftus-Cheek 6 0.3 C \n", "Lindstrom Jesper Lindstrøm 6 0.3 C \n", "Cajuste Jens Cajuste 6 0.3 C \n", "Cheddira Walid Cheddira 6 0.3 A \n", "Lapadula Gianluca Lapadula 6 0.3 A \n", "Kristensen Rasmus Nissen 6 0.3 D \n", "Azmoun Sardar Azmoun 6 0.3 A \n", "Renato Sanches Renato Sanches 6 0.3 C \n", "N'dicka Obite N'Dicka 6 0.3 D \n", "Aouar Houssem Aouar 6 0.3 C \n", "Pedersen Marcus Pedersen 6 0.3 D \n", "Castillejo Samu Castillejo 6 0.3 C \n", "Lucca Lorenzo Lucca 6 0.3 A \n", "Folorunsho Michael Folorunsho 6 0.3 C \n", "Gudmundsson A. Albert Guðmundsson 6 0.3 C \n", "Bakker Mitchel Bakker 6 0.3 D \n", "Martin Aarón Martín 6 0.3 D \n", "Dragusin Radu Drăgușin 6 0.3 D \n", "Viti Mattia Viti 6 0.3 D \n", "Beukema Sam Beukema 6 0.3 D \n", "Reijnders Tijjani Reijnders 6 0.3 C \n", "Luvumbo Zito 6 0.3 A \n", "Retegui Mateo Retegui 6 0.3 A \n", "Fabbian Giovanni Fabbian 6 0.3 C \n", "Beltran L. Lucas Beltrán 6 0.3 A \n", "Azzi Paulo Azzi 6 0.3 D \n", "Nandez Nahitan Nández 6 0.3 C \n", "Pavoletti Leonardo Pavoletti 6 0.3 A \n", "Makoumbou Antoine Makoumbou 6 0.3 C \n", "Dossena Alberto Dossena 6 0.3 C \n", "Strootman Kevin Strootman 6 0.3 C \n", "Bani Mattia Bani 6 0.3 D \n", "Frendrup Morten Frendrup 6 0.3 C \n", "Sabelli Stefano Sabelli 6 0.3 D \n", "Caso Giuseppe Caso 6 0.3 A \n", "Baez Jaime Báez 6 0.3 C \n", "Mulattieri Samuele Mulattieri 6 0.3 A \n", "\n", "[52 rows x 384 columns]" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rookies_data = pd.read_excel('rookies_stats/out_data/rookies_stats.xlsx', index_col = 1)\n", "\n", "rookies_data" ] }, { "cell_type": "markdown", "id": "21fef3ae", "metadata": {}, "source": [ "Players stats rework:\n", "the current season stats are averaged (according to a calculated weight) with the past season data.\n", "In case a player doesn't have past season data, a config file (affine_players) can be used to load the data from an affine player (past season), e.g. Doig affine to Lazovic.\n", "In case, after this process, the player doesn't result in having a minimum amount of games, its stats are averaged with the average Serie A (defensive) player stat, depending on the games remaining to reach the minimum amount. This allows to use players who still haven't played a single game.\n", "\n", "These modified stats are used only for prediction, not for model traning.\n", "\n", "WEIGHT_0 = weight given to the current season in respect to the previous; if the player has a low amount of games this season, the weight is lowered\n", "min_games = minimum games so that the players stats are not averaged with the avg Serie A player stats" ] }, { "cell_type": "code", "execution_count": 12, "id": "6f8707b8", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " \n", "Averaging players stats with past seasons:\n", "Skorupski 1\n", "Di Gregorio 0.9480249480249479\n", "Meret 1\n", "Provedel 1\n", "Terracciano 1\n", "Szczesny 1\n", "Falcone 1\n", "Milinkovic-Savic V. 1\n", "Maignan 1\n", "Montipo' 1\n", "Rui Patricio 1\n", "Consigli 0.8351648351648351\n", "Musso 1\n", "Carnesecchi 0.6820512820512821\n", "Silvestri 1\n", "Ochoa 1\n", "Sportiello 1\n", "Berisha 1\n", "Perin 1\n", "Cragno 1\n", "Mirante 1\n", "Sepe 1\n", "Lamanna 1\n", "Pegolo 1\n", "Perilli 1\n", "Padelli 1\n", "Gollini 1\n", "Perisan 1\n", "Audero 1\n", "Pinsoglio 1\n", "Fiorillo 1\n", "Cerofolini 1\n", "Rossi F. 1\n", "Ravaglia F. 1\n", "Brancolini 1\n", "Berardi A. 1\n", "Gemello 1\n", "Boer 1\n", "Bagnolini 1\n", "Svilar 1\n", "Sorrentino A. 1\n", "Dimarco 0.5314685314685313\n", "Di Lorenzo 0.5530145530145528\n", "Hernandez T. 0.548076923076923\n", "Dumfries 0.5158371040723981\n", "Carlos Augusto 0.6138461538461538\n", "Schuurs 0.6820512820512818\n", "Spinazzola 0.7869822485207099\n", "Danilo 0.5530145530145528\n", "Tomori 0.5314685314685313\n", "Bastoni 0.6047745358090184\n", "Buongiorno 0.5158371040723981\n", "Pavard 0.20461538461538462 (rookie)\n", "Biraghi 0.4428904428904428\n", "Zappacosta 0.835164835164835\n", "Mancini 0.5846153846153845\n", "Darmian 0.6600496277915632\n", "Martinez Quarta 0.5413105413105412\n", "Posch 0.4871794871794871\n", "Romagnoli S. 1\n", "De Vrij 0.7578347578347576\n", "Romagnoli 0.6018099547511311\n", "Bremer 0.6820512820512818\n", "Smalling 0.2740384615384615\n", "Rrahmani 0.3023872679045092\n", "Rodriguez R. 0.5846153846153845\n", "Dragusin 0.5653846153846154 (rookie)\n", "Vasquez 0.8593846153846153\n", "Scalvini 0.6394230769230768\n", "Holm 0.6138461538461539\n", "Kristensen 0.0 (rookie)\n", "Calabria 0.5846153846153845\n", "Acerbi 0.3771712158808933\n", "Cuadrado 0.29702233250620347\n", "Marchizza 1\n", "Bani 0.651048951048951 (rookie)\n", "Kolasinac 0.651048951048951 (rookie)\n", "Toljan 0.6600496277915632\n", "Bakker 0.32884615384615384 (rookie)\n", "Ruggeri 1\n", "Ebuehi 0.5621301775147929\n", "Mazzocchi 0.7578347578347576\n", "Doig 0.5314685314685315\n", "Gendrey 0.5530145530145528\n", "Thiaw 0.8769230769230768\n", "Mario Rui 0.6643356643356643\n", "Milenkovic 0.7578347578347576\n", "Kyriakopoulos 1\n", "Kyriakopoulos 0.5291777188328912 (two seasons ago)\n", "Casale 0.5039787798408487\n", "Terracciano F. 1\n", "Baschirotto 0.47401247401247393\n", "Bijol 0.6394230769230768\n", "Lucumi' 0.4428904428904428\n", "Kristiansen 1 (rookie)\n", "Beukema 0.8263313609467455 (rookie)\n", "Faraoni 0.7625418060200667\n", "Toloi 0.3653846153846154\n", "Djimsiti 0.7307692307692307\n", "Lazzari 0.31318681318681313\n", "Lazaro 0.7625418060200667\n", "Gallo 0.548076923076923\n", "Bellanova 1\n", "Mari' 0.6820512820512818\n", "Erlic 0.7307692307692306\n", "Bastoni S. 0.3230769230769231\n", "Perez N. 0.6018099547511311\n", "Pedersen 0.6350132625994694 (rookie)\n", "Izzo 0.4871794871794871\n", "D'ambrosio 0.8184615384615385\n", "D'ambrosio 0.9202970414201184 (two seasons ago)\n", "Luperto 0.5683760683760682\n", "Florenzi 1\n", "Florenzi 0.6089743589743589 (two seasons ago)\n", "De Silvestri 0.9743589743589742\n", "De Silvestri 0.4956416618947637 (two seasons ago)\n", "Marusic 0.6200466200466198\n", "Magnani 0.8525641025641024\n", "N'dicka 0.40923076923076923 (rookie)\n", "Augello 0.4977130977130977\n", "Dawidowicz 0.8896321070234111\n", "Caldirola 0.5657568238213398\n", "Llorente D. 1\n", "Parisi 0.37202797202797205\n", "Cambiaso 0.5754807692307693\n", "Bradaric 0.6600496277915632\n", "Pongracic 1\n", "Viti 1 (rookie)\n", "Viti 0.4603846153846154 (two seasons ago)\n", "Ostigard 1\n", "Olivera 0.5846153846153845\n", "Ebosele 1\n", "Dodo' 0.4428904428904428\n", "Hien 0.3653846153846154\n", "Azzi 0.9591346153846154 (rookie)\n", "Hysaj 0.42986425339366513\n", "Juan Jesus 0.7794871794871795\n", "Sabelli 0.5115384615384615 (rookie)\n", "Hateboer 0.17194570135746606\n", "Martin 0.5480769230769231 (rookie)\n", "Mina 0.0 (rookie)\n", "Calafiori 1 (two seasons ago)\n", "Monterisi 1 (rookie)\n", "Kalulu 0.17194570135746606\n", "Vojvoda 0.3023872679045092\n", "De Winter 0.876923076923077\n", "De Winter 1 (two seasons ago)\n", "Gatti 0.811965811965812\n", "Birindelli 0.6600496277915632\n", "Masina 0.0\n", "Gyomber 0.7578347578347576\n", "Alex Sandro 0.23384615384615384\n", "Palomino 0.38974358974358975\n", "Pellegrini Lu. 1\n", "Pellegrini Lu. 0.8525641025641026 (two seasons ago)\n", "Djidji 0.0\n", "Ranieri L. 0.9743589743589742\n", "Ranieri L. 0.35851413543721244 (two seasons ago)\n", "Zortea 0.9207692307692308\n", "Zortea 0.3762046521118139 (two seasons ago)\n", "Pirola 0.6745562130177514\n", "Lovato 1\n", "Ismajli 0.4676923076923077\n", "Obert 1 (two seasons ago)\n", "Dossena 0.934113712374582 (rookie)\n", "Patric 0.3247863247863248\n", "Pezzella Giu. 1\n", "Ferrari G. 0.2657342657342657\n", "Venuti 0.18054298642533936\n", "Karsdorp 0.6745562130177514\n", "Kjaer 0.8597285067873303\n", "Lykogiannis 0.5567765567765568\n", "Walukiewicz 1\n", "Walukiewicz 1 (two seasons ago)\n", "Okoli 0.7221719457013575\n", "Amione 0.23609467455621302\n", "Hefti 0.7307692307692308 (two seasons ago)\n", "Ehizibue 0.0\n", "Rugani 0.6495726495726496\n", "Rugani 1 (two seasons ago)\n", "Goldaniga 0.26573426573426573 (two seasons ago)\n", "Fazio 0.41758241758241765\n", "Bereszynski 1\n", "Bereszynski 0.2630769230769231 (two seasons ago)\n", "Gunter 0.0\n", "Soumaoro 0.0\n", "Zanoli 0.0\n", "Daniliuc 0.32478632478632474\n", "Soppy 0.6138461538461538\n", "Zima 0.3247863247863248\n", "Haps 0.12276923076923077 (two seasons ago)\n", "Coppola D. 0.46153846153846145\n", "Cacace 0.9743589743589745\n", "Cacace 1 (two seasons ago)\n", "Sambia 0.13286713286713286\n", "Guessand A. 1\n", "Cabal 0.7972027972027971\n", "Dermaku 0.0\n", "Tonelli 0.0\n", "Tonelli 0.20879120879120883 (two seasons ago)\n", "De Sciglio 0.0\n", "Bonifazi 0.0\n", "Donati 0.0\n", "Kumbulla 0.0\n", "Celik 0.1217948717948718\n", "Amey 0.0\n", "Gila 0.0\n", "Ebosse 0.14615384615384616\n", "Bronn 0.0\n", "Guarino 0.0\n", "Carboni F. 1\n", "Koopmeiners 0.6200466200466198\n", "Zielinski 0.5530145530145528\n", "Zaccagni 0.5846153846153845\n", "Luis Alberto 0.5846153846153845\n", "Pulisic 0.8951923076923077 (rookie)\n", "Bonaventura 0.6820512820512818\n", "Orsolini 0.6394230769230768\n", "Calhanoglu 0.6200466200466198\n", "Samardzic 0.5530145530145528\n", "Felipe Anderson 0.5384615384615383\n", "Politano 0.7578347578347576\n", "Gudmundsson A. 0.5967948717948718 (rookie)\n", "Candreva 0.501098901098901\n", "Barella 0.5846153846153845\n", "Rabiot 0.6394230769230768\n", "Mkhitaryan 0.6600496277915632\n", "Ferguson 0.6394230769230768\n", "Frattesi 0.5115384615384616\n", "Loftus-Cheek 0.8593846153846153 (rookie)\n", "Colpani 0.7578347578347576\n", "Cristante 0.5683760683760682\n", "Strefezza 0.5846153846153845\n", "Chukwueze 0.4977130977130977 (rookie)\n", "Radonjic 0.7307692307692306\n", "Reijnders 0.6319004524886878 (rookie)\n", "Pasalic 0.4567307692307692\n", "Aouar 0.9591346153846154 (rookie)\n", "Bajrami 1\n", "Vlasic 0.5158371040723981\n", "Ederson D.s. 0.5846153846153845\n", "Baldanzi 0.7869822485207099\n", "Kamada 0.4795673076923077 (rookie)\n", "Lindstrom 0.0 (rookie)\n", "De Roon 0.5846153846153845\n", "Pellegrini Lo. 0.3653846153846154\n", "El Shaarawy 0.6047745358090184\n", "Mandragora 0.7055702917771881\n", "Malinovskyi 0.5115384615384615 (two seasons ago)\n", "Kostic 0.395010395010395\n", "De Ketelaere 0.6713942307692308\n", "Pereyra 0.3438914027149321\n", "Renato Sanches 0.26688963210702343 (rookie)\n", "Pessina 0.5846153846153845\n", "Guendouzi 0.46503496503496505 (rookie)\n", "Zambo Anguissa 0.5683760683760682\n", "Duda 1\n", "Lovric 0.5530145530145528\n", "Lazovic 0.38974358974358975\n", "Duncan 0.7015384615384613\n", "Gagliardini 1\n", "Lobotka 0.5384615384615383\n", "Fagioli 0.6745562130177514\n", "Elmas 0.405982905982906\n", "Messias 0.24553846153846154\n", "Matheus Henrique 0.6820512820512818\n", "Frendrup 0.5806652806652807 (rookie)\n", "Ciurria 0.5683760683760682\n", "Locatelli 0.6394230769230768\n", "Ikone' 0.17715617715617715\n", "Ilic 1\n", "Ricci S. 0.6263736263736263\n", "Saponara 0.5291777188328912\n", "Vecino 0.4567307692307692\n", "Pogba 0.9743589743589745\n", "Barak 0.19487179487179487\n", "Nandez 0.651048951048951 (rookie)\n", "Strootman 0.5115384615384615 (rookie)\n", "Klaassen 0.18601398601398603 (rookie)\n", "Weah 0.7408488063660477 (rookie)\n", "Marin 0.5314685314685313\n", "Krunic 0.6354515050167223\n", "Cataldi 0.5039787798408487\n", "Paredes 0.8593846153846153\n", "Freuler 0.32884615384615384 (rookie)\n", "Kastanos 0.7307692307692306\n", "Bennacer 0.0\n", "Castrovilli 0.0\n", "Miranchuk 0.2116710875331565\n", "Harroui 0.4003344481605351\n", "Aebischer 0.6394230769230768\n", "Oudin 0.2828784119106699\n", "Sottil 0.6495726495726496\n", "Tameze 0.41476091476091476\n", "Pobega 0.7692307692307692\n", "Bove 0.6643356643356643\n", "Coulibaly L. 0.08351648351648353\n", "Blin 0.5846153846153845\n", "Moro N. 0.5621301775147929\n", "Fabbian 0.2557692307692308 (rookie)\n", "Machin 0.0\n", "Linetty 0.4567307692307692\n", "Walace 0.5530145530145528\n", "Castillejo 0.4910769230769231 (rookie)\n", "Gaetano 0.3653846153846154\n", "Rovella 0.4910769230769231\n", "Lopez M. 0.10230769230769231\n", "Gyasi 0.3507692307692308\n", "Zalewski 0.3543123543123543\n", "Bohinen 0.7307692307692307\n", "Miretti 0.6495726495726495\n", "Thorstvedt 0.4714640198511166\n", "Fazzini 0.835164835164835\n", "Makoumbou 0.5967948717948718 (rookie)\n", "Folorunsho 0.7957264957264957 (rookie)\n", "Grassi 0.5846153846153845\n", "Baez 1 (rookie)\n", "Sensi 0.10961538461538463\n", "Maleh 0.9027149321266968\n", "Adli 0.9743589743589745\n", "Gonzalez J. 0.3340659340659341\n", "Viola 1 (two seasons ago)\n", "Bourabia 0.24885654885654884\n", "Saelemaekers 0.20461538461538462\n", "Maldini 0.0\n", "Maggiore 0.7307692307692308\n", "Kovalenko 0.17051282051282055\n", "Romero L. 0.5115384615384616\n", "Romero L. 1 (two seasons ago)\n", "Asllani 0.4384615384615384\n", "Vignato S. 1\n", "Ranocchia F. 0.4384615384615385\n", "Sulemana I. 0.9591346153846154\n", "Adopo 1\n", "Basic 0.0\n", "Rog 0.0 (two seasons ago)\n", "Nicolussi Caviglia 0.0\n", "Obiang 0.0\n", "Demme 0.0\n", "Akpa Akpro 0.0\n", "Akpa Akpro 0.0 (two seasons ago)\n", "Urbanski 1\n", "Volpato 0.4384615384615385\n", "Volpato 1 (two seasons ago)\n", "Pafundi 0.3653846153846154\n", "Hrustic 0.0\n", "Zerbin 0.2923076923076923\n", "Carboni V. 1\n", "Faticanti 0.0\n", "Martinez L. 0.5384615384615383\n", "Osimhen 0.6394230769230768\n", "Rafael Leao 0.5846153846153845\n", "Berardi 0.5621301775147929\n", "Lukaku 0.6138461538461538\n", "Vlahovic 0.6495726495726495\n", "Dybala 0.5846153846153845\n", "Giroud 0.5314685314685313\n", "Thuram 0.7161538461538461 (rookie)\n", "Immobile 0.6600496277915632\n", "Kvaratskhelia 0.5158371040723981\n", "Retegui 1 (rookie)\n", "Scamacca 0.3410256410256411 (two seasons ago)\n", "Lookman 0.6600496277915632\n", "Lauriente' 0.7307692307692306\n", "Chiesa 0.974358974358974\n", "Dia 0.3543123543123543\n", "Zapata D. 0.6138461538461538\n", "Gonzalez N. 0.7307692307692307\n", "Sanabria 0.3543123543123543\n", "Arnautovic 0.7307692307692307\n", "Nzola 0.6930521091811415\n", "Milik 0.6495726495726495\n", "Pinamonti 0.6394230769230768\n", "Zirkzee 1\n", "Ngonge 1\n", "Cheddira 0.5940446650124069 (rookie)\n", "Simeone 0.7015384615384613\n", "Sanchez 0.2630769230769231 (rookie)\n", "Beltran L. 0.8593846153846153 (rookie)\n", "Belotti 0.5657568238213398\n", "Muriel 0.40318302387267907\n", "Luvumbo 0.0 (rookie)\n", "Lapadula 0.0 (rookie)\n", "Caprari 0.316008316008316\n", "Jovic 0.198014888337469\n", "Abraham 0.0\n", "Kouame' 0.521978021978022\n", "Caputo 0.6959706959706958\n", "Raspadori 0.8184615384615382\n", "Colombo 0.46503496503496505\n", "Soule' 1\n", "Petagna 0.396029776674938\n", "Bonazzoli 0.7673076923076924\n", "Deulofeu 0.0\n", "Pedro 0.405982905982906\n", "Brekalo 1\n", "Shomurodov 1\n", "Azmoun 0.4003344481605351 (rookie)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Karlsson 0.6672240802675585 (rookie)\n", "Thauvin 1\n", "Cambiaghi 0.6263736263736263\n", "Henry 0.1826923076923077\n", "Jovane 0.0 (two seasons ago)\n", "Mota 0.7055702917771881\n", "Mulattieri 0.5291777188328912 (rookie)\n", "Lucca 1 (rookie)\n", "Kean 0.41758241758241765\n", "Karamoh 0.6959706959706958\n", "Djuric 0.6263736263736263\n", "Banda 0.3247863247863248\n", "Sansone 0.3410256410256411\n", "Success 0.5846153846153845\n", "Defrel 0.32478632478632474\n", "Piccoli 1\n", "Piccoli 1 (two seasons ago)\n", "Caso 0.5261538461538462 (rookie)\n", "Pellegri 0.9743589743589742\n", "Cancellieri 1\n", "Seck 0.6153846153846154\n", "Botheim 0.6263736263736263\n", "Pavoletti 0.5337792642140469 (rookie)\n", "Ekuban 0.38974358974358975 (two seasons ago)\n", "Alvarez A. 0.0\n", "Destro 0.6877828054298643\n", "Ceide 0.46153846153846145\n", "Ake' M. 0.0 (two seasons ago)\n", "Braaf 0.0\n", "Kallon 0.0\n", "Kaio Jorge 0.0\n", "Kaio Jorge 0.0 (two seasons ago)\n", "Vivaldo 0.0\n", "Players with low quantity of games:\n", "Kristiansen 0.8333333333333334\n", "Natan 0.5\n", "Carboni A. 0.33333333333333337\n", "Azzi 0.908253205128205\n", "Kayode 0.6666666666666667\n", "Calafiori 0.6666666666666667\n", "De Winter 0.8717948717948717\n", "Hatzidiakos 0.6666666666666667\n", "Wieteska 0.6666666666666667\n", "Lirola 0.16666666666666663\n", "Kabasele 0.6666666666666667\n", "Obert 0.8333333333333334\n", "Tressoldi 0.0\n", "Touba 0.33333333333333337\n", "Sazonov 0.33333333333333337\n", "Walukiewicz 0.8333333333333334\n", "Vogliacco 0.0\n", "Rugani 0.7421652421652423\n", "Pereira P. 0.5\n", "Cacace 0.7008547008547008\n", "Guessand A. 0.16666666666666663\n", "Cabal 0.7703962703962706\n", "Missori 0.16666666666666663\n", "Bisseck 0.16666666666666663\n", "Corazza 0.6666666666666667\n", "Kristensen T. 0.5\n", "Dermaku 0.16666666666666663\n", "Capradossi 0.0\n", "Bettella 0.0\n", "Amey 0.0\n", "Cittadini 0.0\n", "Gila 0.6666666666666667\n", "Guarino 0.0\n", "Carboni F. 0.33333333333333337\n", "Smajlovic 0.0\n", "Matturro 0.33333333333333337\n", "N'guessan 0.0\n", "Mateus Lusuardi 0.0\n", "Kalaj 0.0\n", "Pierozzi 0.0\n", "Huijsen 0.0\n", "Bonfanti 0.0\n", "Pellegrino 0.0\n", "Comuzzo 0.0\n", "Bartesaghi 0.33333333333333337\n", "Aouar 0.908253205128205\n", "Gomez 0.16666666666666663\n", "Pogba 0.3504273504273504\n", "Musah 0.8333333333333334\n", "Reinier 0.0\n", "Mboula 0.5\n", "Jankto 0.5\n", "Garritano 0.8333333333333334\n", "Iling Junior 0.0\n", "Cajuste 0.0\n", "Machin 0.0\n", "Gaetano 0.9070512820512819\n", "Kutlu 0.5\n", "Payero 0.6666666666666667\n", "Mancosu 0.0\n", "Adli 0.3504273504273504\n", "Serdar 0.6666666666666667\n", "Suslov 0.6666666666666667\n", "Viola 0.33333333333333337\n", "Racic 0.33333333333333337\n", "Romero L. 0.5737179487179487\n", "Vignato S. 0.8333333333333334\n", "Sulemana I. 0.908253205128205\n", "Infantino 0.6666666666666667\n", "Tchatchoua 0.0\n", "Quina 0.33333333333333337\n", "Adopo 0.5\n", "Tchaouna 0.6666666666666667\n", "Amatucci 0.16666666666666663\n", "Gelli 0.6666666666666667\n", "Legowski 0.0\n", "Prati 0.33333333333333337\n", "Lulic K. 0.0\n", "Jagiello 0.0\n", "Akpa Akpro 0.0\n", "Urbanski 0.33333333333333337\n", "Volpato 0.7282051282051283\n", "Pafundi 0.9070512820512819\n", "Bondo 0.16666666666666663\n", "Carboni V. 0.33333333333333337\n", "Faticanti 0.0\n", "Gineitis 0.16666666666666663\n", "Belardinelli 0.0\n", "Zarraga 0.33333333333333337\n", "Camara E. 0.0\n", "Lipani 0.0\n", "Joselito 0.0\n", "Pagano 0.5\n", "Ibrahimovic A. 0.16666666666666663\n", "Toure' E. 0.0\n", "Soule' 0.8333333333333334\n", "Jovane 0.0\n", "Davis K. 0.0\n", "Brenner 0.0\n", "Piccoli 0.8333333333333334\n", "Kvernadze 0.33333333333333337\n", "Van Hooijdonk 0.5\n", "Maric 0.8333333333333334\n", "Ikwuemesi 0.6666666666666667\n", "Yildiz 0.0\n", "Cruz 0.16666666666666663\n", "Puscas 0.33333333333333337\n", "Ake' M. 0.6666666666666667\n", "Vivaldo 0.0\n", "Bidaoui 0.0\n", "Burnete 0.16666666666666663\n", "Corfitzen 0.16666666666666663\n", "Stewart 0.16666666666666663\n" ] } ], "source": [ "#for i in range(players.columns.shape[0]):\n", "# print(str(i) + ' - ' + players.columns[i])\n", "\n", "cols_toadapt = players.columns[9:]\n", "cols_toadapt_rookies = rookies_data.columns.intersection(cols_toadapt)\n", "\n", "players = players_orig.copy()\n", "\n", "min_games = 6\n", "\n", "current_season_games = max(10, max(players_orig['games']))\n", "\n", "# weight_0 as function of current_season_games --> 1 as match day reachs 30 ? \n", "WEIGHT_0_same_team = (1 - (1 - 0.7) * (30 - current_season_games) / (38 - 12)) # 0.7\n", "WEIGHT_0_different_team = (1 - (1 - 0.75) * (30 - current_season_games) / (38 - 12)) # 0.75\n", "WEIGHT_mul_gk = 2\n", "\n", "rcsv = pd.read_csv('config/affine_players.txt') \n", "affine_players = pd.DataFrame(rcsv)\n", "affine_players = affine_players.set_index('player')\n", "\n", "\n", "def calc_weight(games_curr, games_old, same_team = 1, maxgames = current_season_games):\n", " if(same_team):\n", " weight_0 = WEIGHT_0_same_team\n", " else:\n", " weight_0 = WEIGHT_0_different_team\n", "\n", " weight = weight_0 * (games_curr / maxgames) / (max(games_old, 1) / 38)\n", " weight = min(weight, 1)\n", "\n", " return abs(weight)\n", "\n", "print(' ')\n", "print('Averaging players stats with past seasons:')\n", "\n", "\n", "for i in range(players.shape[0]):\n", " p = players.index[i]\n", " \n", "\n", " if(p in players_old.index or p in affine_players.index):\n", " p_ = p\n", " affine = 0\n", " \n", " if(p in affine_players.index):\n", " affine = 1\n", " p_ = affine_players.loc[p]['alike']\n", " \n", " print(p + ' affine to ' + p_)\n", " \n", " if(players.loc[p]['r'] == 'P'):\n", " weight = calc_weight(players.loc[p]['gk_games'], players_old.loc[p_]['gk_games'], affine == 1 or players.loc[p]['team'] == players_old.loc[p]['team'])\n", " weight *= WEIGHT_mul_gk\n", " weight = min(weight, 1)\n", " else:\n", " weight = calc_weight(players.loc[p]['games'], players_old.loc[p_]['games'], affine == 1 or players.loc[p]['team'] == players_old.loc[p]['team'])\n", "\n", " players.at[p, cols_toadapt] = (players.loc[p][cols_toadapt] * weight + (1-weight) * players_old.loc[p_][cols_toadapt])\n", " \n", " print(p + ' ' + str(weight)) \n", " elif(p in rookies_data.index):\n", " p_ = p\n", " weight = calc_weight(players.loc[p]['games'], rookies_data.loc[p_]['games'], False)\n", " players.at[p, cols_toadapt_rookies] = (players.loc[p][cols_toadapt_rookies] * weight + (1-weight) * rookies_data.loc[p_][cols_toadapt_rookies])\n", " \n", " print(p + ' ' + str(weight) + ' (rookie)') \n", "\n", " \n", " # to handle players like Scamacca, who only played 2 seasons ago; only outfield players\n", " if(players.loc[p]['r'] != 'P' and players.loc[p]['games'] < min_games and p in players_old_2.index): \n", " weight = calc_weight(players.loc[p]['games'], players_old_2.loc[p]['games'], players.loc[p]['team'] == players_old_2.loc[p]['team'])\n", " \n", " players.at[p, cols_toadapt] = (players.loc[p][cols_toadapt] * weight + (1-weight) * players_old_2.loc[p][cols_toadapt])\n", " \n", " print(p + ' ' + str(weight) + ' (two seasons ago)')\n", " \n", " \n", "# handle players with low quantitites of games\n", "\n", "print('Players with low quantity of games:')\n", "\n", "def calc_weight_low(current_games, min_games = min_games):\n", " weight = 1 - (min_games - current_games)/min_games\n", " \n", " weight = min(weight, 1)\n", "\n", " return abs(weight)\n", "\n", "#mean_players_stats = players_orig[players_orig['games'] >= min_games][cols_toadapt].mean()\n", "\n", "\n", "# mean players stats based on old season\n", "\n", "mean_players_stats = players_orig.loc[players_orig.index[0]][cols_toadapt] * 0\n", "count = 0\n", "\n", "for i in range(players_old.shape[0]):\n", " if(players_old['games'][i] >= min_games and (players_old['r'][i] == 'D')): # counting only defenders, to add a penalty\n", " mean_players_stats += players_old.loc[players_old.index[i]][cols_toadapt]\n", " count = count + 1\n", " \n", "mean_players_stats /= count\n", "\n", "for i in range(players.shape[0]):\n", " p = players.index[i]\n", " \n", " if(players.loc[p]['games'] < min_games and players.loc[p]['r'] != 'P'):\n", " weight = calc_weight_low(players.loc[p]['games'])\n", " \n", " players.at[p, cols_toadapt] = players.loc[p][cols_toadapt] * weight + (1-weight) * mean_players_stats\n", " \n", " print(p + ' ' + str(weight))\n", " \n", " \n", "players_out = players.copy()\n", "players_out = players_out.set_index(players_out.columns[0])\n", "players_out.insert(2, 'name', players_out.index)\n", "players_out.to_excel('mid_outputs/players_stats_rwk.xlsx')\n" ] }, { "cell_type": "code", "execution_count": 13, "id": "49c28b07", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['games', 'games_starts', 'minutes', 'goals', 'assists', 'pens_made',\n", " 'pens_att', 'cards_yellow', 'cards_red', 'goals_per90',\n", " ...\n", " 'gk_pct_goal_kicks_launched', 'gk_goal_kick_length_avg', 'gk_crosses',\n", " 'gk_crosses_stopped', 'gk_crosses_stopped_pct',\n", " 'gk_def_actions_outside_pen_area',\n", " 'gk_def_actions_outside_pen_area_per90', 'gk_avg_distance_def_actions',\n", " 'vote_avg', 'vote_std'],\n", " dtype='object', length=151)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "players.columns[9:]" ] }, { "cell_type": "code", "execution_count": 14, "id": "d29102e5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 - matchday\n", "1 - player\n", "2 - team\n", "3 - oppteam\n", "4 - home\n", "5 - vote\n", "6 - goals\n", "7 - assists\n", "8 - cards_malus\n", "9 - fantavote\n", "10 - r\n", "11 - games\n", "12 - games_starts\n", "13 - minutes\n", "14 - shots_on_target_pct\n", "15 - goals_per_shot\n", "16 - goals_per_shot_on_target\n", "17 - passes_pct\n", "18 - aerials_won_pct\n", "19 - team_possession\n", "20 - team_goals_assists_per90\n", "21 - team_goals_pens_per90\n", "22 - team_goals_assists_pens_per90\n", "23 - team_xg_per90\n", "24 - team_gk_goals_against_per90\n", "25 - team_gk_save_pct\n", "26 - team_gk_clean_sheets_pct\n", "27 - team_passes_pct\n", "28 - team_passes_pct_medium\n", "29 - team_passes_pct_long\n", "30 - team_sca_per90\n", "31 - team_gca_per90\n", "32 - team_aerials_won_pct\n", "33 - vs_team_possession\n", "34 - vs_team_goals_per90\n", "35 - vs_team_assists_per90\n", "36 - vs_team_xg_per90\n", "37 - vs_team_gk_save_pct\n", "38 - vs_team_gk_clean_sheets_pct\n", "39 - vs_team_gk_pct_passes_launched\n", "40 - vs_team_gk_crosses_stopped_pct\n", "41 - vs_team_shots_on_target_per90\n", "42 - vs_team_passes_pct\n", "43 - vs_team_passes_pct_short\n", "44 - vs_team_passes_pct_medium\n", "45 - vs_team_passes_pct_long\n", "46 - vs_team_sca_per90\n", "47 - vs_team_gca_per90\n", "48 - vs_team_aerials_won_pct\n", "49 - opp_team_possession\n", "50 - opp_team_goals_assists_per90\n", "51 - opp_team_goals_pens_per90\n", "52 - opp_team_goals_assists_pens_per90\n", "53 - opp_team_xg_per90\n", "54 - opp_team_gk_goals_against_per90\n", "55 - opp_team_gk_save_pct\n", "56 - opp_team_gk_clean_sheets_pct\n", "57 - opp_team_passes_pct\n", "58 - opp_team_passes_pct_medium\n", "59 - opp_team_passes_pct_long\n", "60 - opp_team_sca_per90\n", "61 - opp_team_gca_per90\n", "62 - opp_team_aerials_won_pct\n", "63 - opp_vs_team_possession\n", "64 - opp_vs_team_goals_per90\n", "65 - opp_vs_team_assists_per90\n", "66 - opp_vs_team_xg_per90\n", "67 - opp_vs_team_gk_save_pct\n", "68 - opp_vs_team_gk_clean_sheets_pct\n", "69 - opp_vs_team_gk_pct_passes_launched\n", "70 - opp_vs_team_gk_crosses_stopped_pct\n", "71 - opp_vs_team_shots_on_target_per90\n", "72 - opp_vs_team_passes_pct\n", "73 - opp_vs_team_passes_pct_short\n", "74 - opp_vs_team_passes_pct_medium\n", "75 - opp_vs_team_passes_pct_long\n", "76 - opp_vs_team_sca_per90\n", "77 - opp_vs_team_gca_per90\n", "78 - opp_vs_team_aerials_won_pct\n", "79 - vote_avg\n", "80 - vote_std\n", "81 - goals.1\n", "82 - assists.1\n", "83 - cards_yellow\n", "84 - cards_red\n", "85 - xg\n", "86 - npxg\n", "87 - shots_on_target\n", "88 - passes_completed\n", "89 - passes_into_final_third\n", "90 - passes_into_penalty_area\n", "91 - progressive_passes\n", "92 - passes_live\n", "93 - passes_dead\n", "94 - through_balls\n", "95 - passes_switches\n", "96 - crosses\n", "97 - corner_kicks\n", "98 - blocks\n", "99 - blocked_shots\n", "100 - blocked_passes\n", "101 - interceptions\n", "102 - clearances\n", "103 - errors\n", "104 - touches\n", "105 - touches_def_pen_area\n", "106 - touches_def_3rd\n", "107 - touches_mid_3rd\n", "108 - touches_att_3rd\n", "109 - touches_att_pen_area\n", "110 - touches_live_ball\n", "111 - passes_received\n", "112 - miscontrols\n", "113 - dispossessed\n", "114 - fouls\n", "115 - fouled\n", "116 - aerials_won\n", "117 - aerials_lost\n", "118 - carries\n", "119 - progressive_carries\n", "120 - carries_into_final_third\n", "121 - carries_into_penalty_area\n" ] } ], "source": [ "for i in range(db.columns.shape[0]):\n", " print(str(i) + \" - \" + str(db.columns[i]))" ] }, { "cell_type": "markdown", "id": "089690d6", "metadata": {}, "source": [ "Elaborate databases data to have X and y for training, and split into a train test and a validation test.\n", "\n", "For outfield players: X -> y = [vote, fantavote]\n", "\n", "For goalkeepers: X -> y = [vote, fantavote, clean sheet probability]" ] }, { "cell_type": "code", "execution_count": 15, "id": "f19304f6", "metadata": {}, "outputs": [], "source": [ "npdb = np.array(db)\n", "\n", "y = npdb[:, [5,9]] # vote, fantavote\n", "\n", "#y[:, 1] = y[:, 1] - y[:, 0] # target = difference between fantavote and vote\n", "\n", "f_start = 14\n", "\n", "X = npdb[:, f_start:]\n", "\n", "if(DEL_G): \n", " del_g_idx = [\n", " list(db.columns).index('goals.1') - f_start,\n", " list(db.columns).index('assists.1') - f_start,\n", " list(db.columns).index('xg') - f_start,\n", " list(db.columns).index('npxg') - f_start,\n", " list(db.columns).index('shots_on_target') - f_start]\n", " \n", " X[:, del_g_idx] = 0\n", "\n", "\n", "# add role and home factor\n", "toadd = np.zeros((X.shape[0], 4))\n", "toadd[:, 0] = npdb[:, 4] # home\n", "\n", "toadd[:, 1] = npdb[:, 10] == 'D'\n", "toadd[:, 2] = npdb[:, 10] == 'C'\n", "toadd[:, 3] = npdb[:, 10] == 'A'\n", "\n", "X = np.concatenate((X, toadd), axis = 1)\n", "\n" ] }, { "cell_type": "code", "execution_count": 16, "id": "370d41d2", "metadata": {}, "outputs": [], "source": [ "scaler = StandardScaler()\n", "scaler.fit(X)\n", "\n", "X_train_, X_test_, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 12)\n", "\n", "X_train = scaler.transform(X_train_)\n", "X_test = scaler.transform(X_test_)" ] }, { "cell_type": "code", "execution_count": 17, "id": "a7b1fb52", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0 - matchday\n", "1 - player\n", "2 - team\n", "3 - oppteam\n", "4 - home\n", "5 - vote\n", "6 - goals\n", "7 - assists\n", "8 - cards_malus\n", "9 - fantavote\n", "10 - gk_games\n", "11 - gk_games_starts\n", "12 - gk_minutes\n", "13 - gk_goals_against_per90\n", "14 - gk_save_pct\n", "15 - gk_clean_sheets_pct\n", "16 - gk_psxg_net_per90\n", "17 - gk_passes_pct_launched\n", "18 - gk_pct_passes_launched\n", "19 - gk_passes_length_avg\n", "20 - gk_pct_goal_kicks_launched\n", "21 - gk_goal_kick_length_avg\n", "22 - gk_crosses_stopped_pct\n", "23 - gk_def_actions_outside_pen_area_per90\n", "24 - gk_avg_distance_def_actions\n", "25 - team_possession\n", "26 - team_goals_assists_per90\n", "27 - team_goals_pens_per90\n", "28 - team_goals_assists_pens_per90\n", "29 - team_xg_per90\n", "30 - team_gk_goals_against_per90\n", "31 - team_gk_save_pct\n", "32 - team_gk_clean_sheets_pct\n", "33 - team_passes_pct\n", "34 - team_passes_pct_medium\n", "35 - team_passes_pct_long\n", "36 - team_sca_per90\n", "37 - team_gca_per90\n", "38 - team_aerials_won_pct\n", "39 - vs_team_possession\n", "40 - vs_team_goals_per90\n", "41 - vs_team_assists_per90\n", "42 - vs_team_xg_per90\n", "43 - vs_team_gk_save_pct\n", "44 - vs_team_gk_clean_sheets_pct\n", "45 - vs_team_gk_pct_passes_launched\n", "46 - vs_team_gk_crosses_stopped_pct\n", "47 - vs_team_shots_on_target_per90\n", "48 - vs_team_passes_pct\n", "49 - vs_team_passes_pct_short\n", "50 - vs_team_passes_pct_medium\n", "51 - vs_team_passes_pct_long\n", "52 - vs_team_sca_per90\n", "53 - vs_team_gca_per90\n", "54 - vs_team_aerials_won_pct\n", "55 - opp_team_possession\n", "56 - opp_team_goals_assists_per90\n", "57 - opp_team_goals_pens_per90\n", "58 - opp_team_goals_assists_pens_per90\n", "59 - opp_team_xg_per90\n", "60 - opp_team_gk_goals_against_per90\n", "61 - opp_team_gk_save_pct\n", "62 - opp_team_gk_clean_sheets_pct\n", "63 - opp_team_passes_pct\n", "64 - opp_team_passes_pct_medium\n", "65 - opp_team_passes_pct_long\n", "66 - opp_team_sca_per90\n", "67 - opp_team_gca_per90\n", "68 - opp_team_aerials_won_pct\n", "69 - opp_vs_team_possession\n", "70 - opp_vs_team_goals_per90\n", "71 - opp_vs_team_assists_per90\n", "72 - opp_vs_team_xg_per90\n", "73 - opp_vs_team_gk_save_pct\n", "74 - opp_vs_team_gk_clean_sheets_pct\n", "75 - opp_vs_team_gk_pct_passes_launched\n", "76 - opp_vs_team_gk_crosses_stopped_pct\n", "77 - opp_vs_team_shots_on_target_per90\n", "78 - opp_vs_team_passes_pct\n", "79 - opp_vs_team_passes_pct_short\n", "80 - opp_vs_team_passes_pct_medium\n", "81 - opp_vs_team_passes_pct_long\n", "82 - opp_vs_team_sca_per90\n", "83 - opp_vs_team_gca_per90\n", "84 - opp_vs_team_aerials_won_pct\n", "85 - vote_avg\n", "86 - vote_std\n", "87 - gk_shots_on_target_against\n", "88 - gk_saves\n", "89 - gk_free_kick_goals_against\n", "90 - gk_corner_kick_goals_against\n", "91 - gk_own_goals_against\n", "92 - gk_psxg\n", "93 - gk_psnpxg_per_shot_on_target_against\n", "94 - gk_psxg_net\n", "95 - gk_passes_completed_launched\n", "96 - gk_passes_launched\n", "97 - gk_passes\n", "98 - gk_passes_throws\n", "99 - gk_goal_kicks\n", "100 - gk_crosses\n", "101 - gk_crosses_stopped\n" ] } ], "source": [ "for i in range(db_gk.columns.shape[0]):\n", " print(str(i) + \" - \" + str(db_gk.columns[i]))" ] }, { "cell_type": "code", "execution_count": 18, "id": "5a7cf079", "metadata": {}, "outputs": [], "source": [ "npdb_gk= np.array(db_gk)\n", "\n", "y_gk = npdb_gk[:, [5,9,6]] # vote, fantavote, goals == 0 (clean sheet)\n", "y_gk[:, 2] = (y_gk[:, 2] == 0) * 1\n", "\n", "f_start_gk = 13\n", "\n", "X_gk = npdb_gk[:, f_start_gk:]\n", "\n", "# add home factor\n", "toadd_gk = np.zeros((X_gk.shape[0], 1))\n", "toadd_gk[:, 0] = npdb_gk[:, 4] # home\n", "\n", "X_gk = np.concatenate((X_gk, toadd_gk), axis = 1)\n", "\n" ] }, { "cell_type": "code", "execution_count": 19, "id": "0bc0568b", "metadata": {}, "outputs": [], "source": [ "scaler_gk = StandardScaler()\n", "scaler_gk.fit(X_gk)\n", "\n", "X_gk_train_, X_gk_test_, y_gk_train, y_gk_test = train_test_split(X_gk, y_gk, test_size = 0.2, random_state = 18)\n", "\n", "X_gk_train = scaler_gk.transform(X_gk_train_)\n", "X_gk_test = scaler_gk.transform(X_gk_test_)" ] }, { "cell_type": "markdown", "id": "ebd27493", "metadata": {}, "source": [ "MLP Regressor , to see performance of a simple neural network" ] }, { "cell_type": "code", "execution_count": 19, "id": "04564bee", "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "C:\\Users\\nicol\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:549: ConvergenceWarning: lbfgs failed to converge (status=2):\n", "ABNORMAL_TERMINATION_IN_LNSRCH.\n", "\n", "Increase the number of iterations (max_iter) or scale the data as shown in:\n", " https://scikit-learn.org/stable/modules/preprocessing.html\n", " self.n_iter_ = _check_optimize_result(\"lbfgs\", opt_res, self.max_iter)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "0.15507286428738876\n", "0.18856961333473798\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "0.1354212153815001\n", "0.17392551015116653\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "regr = MLPRegressor(max_iter = 400000, solver = 'lbfgs', hidden_layer_sizes = (8, 8), alpha = 500, verbose = True)\n", "\n", "regr.fit(X_train, y_train)\n", "\n", "\n", "y_train_predict = regr.predict(X_train)\n", "\n", "plt.plot([0, 20], [0, 20])\n", "\n", "plt.scatter(y_train[:, 0], y_train_predict[:, 0], color = 'orange', edgecolors = 'black', s = 20)\n", "plt.scatter(y_train[:, 1], y_train_predict[:, 1], color = 'green', edgecolors = 'black', s = 20)\n", "\n", "print(r2_score(y_train[:, 0], y_train_predict[:, 0]))\n", "print(r2_score(y_train[:, 1], y_train_predict[:, 1]))\n", "\n", "\n", "plt.show()\n", "\n", "y_test_predict = regr.predict(X_test)\n", "\n", "plt.plot([0, 20], [0, 20])\n", "\n", "plt.scatter(y_test[:, 0], y_test_predict[:, 0], color = 'orange', edgecolors = 'black', s = 20)\n", "plt.scatter(y_test[:, 1], y_test_predict[:, 1], color = 'green', edgecolors = 'black', s = 20)\n", "\n", "print(r2_score(y_test[:, 0], y_test_predict[:, 0]))\n", "print(r2_score(y_test[:, 1], y_test_predict[:, 1]))\n", "\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "f9513b25", "metadata": {}, "source": [ "Train neural network for outfield players.\n", "\n", "The outputs of the NN are probability distribution of SinhArcsinh type (a skewed distribution, which is a generalization of Gaussian)" ] }, { "cell_type": "code", "execution_count": 20, "id": "8aad9652", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/1000\n", "97/97 [==============================] - 4s 9ms/step - loss: 2.1231 - distribution_lambda_loss: 0.8271 - distribution_lambda_1_loss: 1.2961 - val_loss: 2.0424 - val_distribution_lambda_loss: 0.7918 - val_distribution_lambda_1_loss: 1.2505\n", "Epoch 2/1000\n", "97/97 [==============================] - 0s 3ms/step - loss: 2.1228 - distribution_lambda_loss: 0.8266 - distribution_lambda_1_loss: 1.2962 - val_loss: 2.0378 - val_distribution_lambda_loss: 0.7895 - val_distribution_lambda_1_loss: 1.2483\n", "Epoch 3/1000\n", "97/97 [==============================] - 0s 3ms/step - loss: 2.1235 - distribution_lambda_loss: 0.8279 - distribution_lambda_1_loss: 1.2957 - val_loss: 2.0464 - val_distribution_lambda_loss: 0.7935 - val_distribution_lambda_1_loss: 1.2530\n", "Epoch 4/1000\n", "97/97 [==============================] - 0s 3ms/step - loss: 2.1266 - distribution_lambda_loss: 0.8293 - distribution_lambda_1_loss: 1.2973 - val_loss: 2.0375 - val_distribution_lambda_loss: 0.7873 - val_distribution_lambda_1_loss: 1.2502\n", "Epoch 5/1000\n", "97/97 [==============================] - 0s 3ms/step - loss: 2.1236 - distribution_lambda_loss: 0.8283 - distribution_lambda_1_loss: 1.2953 - val_loss: 2.0412 - val_distribution_lambda_loss: 0.7891 - val_distribution_lambda_1_loss: 1.2521\n", "Epoch 6/1000\n", "97/97 [==============================] - 0s 3ms/step - loss: 2.1209 - distribution_lambda_loss: 0.8254 - distribution_lambda_1_loss: 1.2955 - val_loss: 2.0491 - val_distribution_lambda_loss: 0.7929 - val_distribution_lambda_1_loss: 1.2561\n", "Epoch 7/1000\n", "97/97 [==============================] - 0s 3ms/step - loss: 2.1219 - distribution_lambda_loss: 0.8263 - distribution_lambda_1_loss: 1.2956 - val_loss: 2.0483 - val_distribution_lambda_loss: 0.7934 - val_distribution_lambda_1_loss: 1.2548\n", "Epoch 8/1000\n", "97/97 [==============================] - 0s 3ms/step - loss: 2.1211 - distribution_lambda_loss: 0.8262 - distribution_lambda_1_loss: 1.2948 - val_loss: 2.0477 - val_distribution_lambda_loss: 0.7933 - val_distribution_lambda_1_loss: 1.2544\n", "Epoch 9/1000\n", "97/97 [==============================] - 0s 3ms/step - loss: 2.1272 - distribution_lambda_loss: 0.8300 - distribution_lambda_1_loss: 1.2972 - val_loss: 2.0494 - val_distribution_lambda_loss: 0.7953 - val_distribution_lambda_1_loss: 1.2541\n", "Epoch 10/1000\n", "97/97 [==============================] - 0s 3ms/step - loss: 2.1239 - distribution_lambda_loss: 0.8272 - distribution_lambda_1_loss: 1.2967 - val_loss: 2.0431 - val_distribution_lambda_loss: 0.7905 - val_distribution_lambda_1_loss: 1.2526\n", "Epoch 11/1000\n", "97/97 [==============================] - 0s 3ms/step - loss: 2.1211 - distribution_lambda_loss: 0.8268 - distribution_lambda_1_loss: 1.2943 - val_loss: 2.0435 - val_distribution_lambda_loss: 0.7904 - val_distribution_lambda_1_loss: 1.2531\n", "Epoch 12/1000\n", "97/97 [==============================] - 0s 3ms/step - loss: 2.1212 - distribution_lambda_loss: 0.8269 - distribution_lambda_1_loss: 1.2942 - val_loss: 2.0461 - val_distribution_lambda_loss: 0.7929 - val_distribution_lambda_1_loss: 1.2532\n", "Epoch 13/1000\n", "97/97 [==============================] - 0s 3ms/step - loss: 2.1223 - distribution_lambda_loss: 0.8262 - distribution_lambda_1_loss: 1.2961 - val_loss: 2.0463 - val_distribution_lambda_loss: 0.7928 - val_distribution_lambda_1_loss: 1.2535\n", "Epoch 14/1000\n", "97/97 [==============================] - 0s 3ms/step - loss: 2.1211 - distribution_lambda_loss: 0.8265 - distribution_lambda_1_loss: 1.2946 - val_loss: 2.0430 - val_distribution_lambda_loss: 0.7908 - val_distribution_lambda_1_loss: 1.2522\n" ] } ], "source": [ "load_model_of = True# load scaler and model weights for outfield player predictor\n", "refit_model_of = True\n", "\n", "if(load_model_of):\n", " scaler = pickle.load(open('saves/scaler.pkl', 'rb'))\n", " \n", " X_train = scaler.transform(X_train_)\n", " X_test = scaler.transform(X_test_)\n", "\n", "\n", "n_epochs = 1000\n", "\n", "n_samples = X_train.shape[0]\n", "\n", "batch_size = 256\n", "\n", "X_len = X_train.shape[1]\n", "y_len = y_train.shape[1]\n", "\n", "\n", "#tailweight_param = 1.1\n", "\n", "tailweight_min = 0.5\n", "tailweight_range = 1.2\n", "\n", "\n", "callback = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience = 10)\n", "neg_log_likelihood = lambda x, rv_x: -rv_x.log_prob(x)\n", "\n", "\n", "inputs = tfk.layers.Input(shape=(X_len,), name=\"input\")\n", "x = tfk.layers.Dropout(0.2)(inputs)\n", "x = tfk.layers.Dense(16, activation=\"relu\") (x)\n", "x = tfk.layers.Dropout(0.2)(x)\n", "x = tfk.layers.Dense(16, activation=\"relu\") (x)\n", "\n", "\n", "prob_dist_params = 4\n", "\n", "def prob_dist(t): \n", " return tfp.distributions.SinhArcsinh(loc=t[..., 0], scale=1e-3 + tf.math.softplus(t[..., 1]), skewness = t[..., 2], \n", " tailweight = tailweight_min + tailweight_range * tf.math.sigmoid(t[..., 3]),\n", " allow_nan_stats = False)\n", "\n", "x1 = tfk.layers.Dense(8, activation=\"sigmoid\")(x)\n", "x1 = tfk.layers.Dense(prob_dist_params, activation=\"linear\")(x1)\n", "out_1 = tfp.layers.DistributionLambda(prob_dist)(x1)\n", "\n", "x2 = tfk.layers.Dense(8, activation=\"sigmoid\")(x)\n", "x2 = tfk.layers.Dense(prob_dist_params, activation=\"linear\")(x2)\n", "out_2 = tfp.layers.DistributionLambda(prob_dist)(x2)\n", "\n", "\n", "modelb = tf.keras.Model(inputs, [out_1, out_2])\n", "\n", "modelb.compile(optimizer=tf.keras.optimizers.Nadam(learning_rate = 0.001), \n", " loss=neg_log_likelihood)\n", "\n", "if(load_model_of):\n", " modelb.load_weights('saves/modelb')\n", " \n", "if( (not load_model_of) or refit_model_of):\n", " modelb.fit(X_train.astype('float32'), [y_train[:, 0].astype('float32'), y_train[:, 1].astype('float32')], \n", " validation_data = (X_test.astype('float32'), [y_test[:, 0].astype('float32'), y_test[:, 1].astype('float32')]),\n", " batch_size = batch_size, shuffle = True, epochs=n_epochs, verbose=True, callbacks = [callback])" ] }, { "cell_type": "code", "execution_count": 21, "id": "4e2bf9dc", "metadata": {}, "outputs": [], "source": [ "def sample_predict(X, iterations = 100):\n", " y = np.zeros((2, X.shape[0]))\n", " \n", " dist = modelb(X)\n", " \n", " for i in range(iterations):\n", " y[0, :] += dist[0].sample()\n", " y[1, :] += dist[1].sample()\n", " \n", " return y.transpose() / iterations\n", " " ] }, { "cell_type": "code", "execution_count": 22, "id": "c2674211", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.14318537713364876\n", "0.16192383064613713\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "0.1390455990767111\n", "0.16511344994051125\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "y_train_predict = sample_predict(X_train)\n", "\n", "plt.plot([0, 20], [0, 20])\n", "\n", "plt.scatter(y_train[:, 0], y_train_predict[:, 0], color = 'orange', edgecolors = 'black', s = 20)\n", "plt.scatter(y_train[:, 1], y_train_predict[:, 1], color = 'green', edgecolors = 'black', s = 20)\n", "\n", "print(r2_score(y_train[:, 0], y_train_predict[:, 0]))\n", "print(r2_score(y_train[:, 1], y_train_predict[:, 1]))\n", "\n", "plt.show()\n", "\n", "y_test_predict = sample_predict(X_test)\n", "\n", "plt.plot([0, 20], [0, 20])\n", "\n", "plt.scatter(y_test[:, 0], y_test_predict[:, 0], color = 'orange', edgecolors = 'black', s = 20)\n", "plt.scatter(y_test[:, 1], y_test_predict[:, 1], color = 'green', edgecolors = 'black', s = 20)\n", "\n", "print(r2_score(y_test[:, 0], y_test_predict[:, 0]))\n", "print(r2_score(y_test[:, 1], y_test_predict[:, 1]))\n", "\n", "\n" ] }, { "cell_type": "markdown", "id": "f574ffdb", "metadata": {}, "source": [ "Train neural network for goalkeepers.\n", "\n", "For clean sheet probability prediction, a Bernoulli distribution is used." ] }, { "cell_type": "code", "execution_count": 23, "id": "41e7e1ee", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/2500\n", "16/16 [==============================] - 4s 49ms/step - loss: 2.8318 - distribution_lambda_2_loss: 0.7818 - distribution_lambda_3_loss: 1.5811 - distribution_lambda_4_loss: 0.4689 - val_loss: 2.7879 - val_distribution_lambda_2_loss: 0.7363 - val_distribution_lambda_3_loss: 1.5952 - val_distribution_lambda_4_loss: 0.4564\n", "Epoch 2/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8259 - distribution_lambda_2_loss: 0.7828 - distribution_lambda_3_loss: 1.5794 - distribution_lambda_4_loss: 0.4637 - val_loss: 2.7892 - val_distribution_lambda_2_loss: 0.7348 - val_distribution_lambda_3_loss: 1.5957 - val_distribution_lambda_4_loss: 0.4587\n", "Epoch 3/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8180 - distribution_lambda_2_loss: 0.7852 - distribution_lambda_3_loss: 1.5736 - distribution_lambda_4_loss: 0.4592 - val_loss: 2.7863 - val_distribution_lambda_2_loss: 0.7288 - val_distribution_lambda_3_loss: 1.5961 - val_distribution_lambda_4_loss: 0.4614\n", "Epoch 4/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8057 - distribution_lambda_2_loss: 0.7726 - distribution_lambda_3_loss: 1.5718 - distribution_lambda_4_loss: 0.4614 - val_loss: 2.7873 - val_distribution_lambda_2_loss: 0.7291 - val_distribution_lambda_3_loss: 1.5960 - val_distribution_lambda_4_loss: 0.4622\n", "Epoch 5/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8367 - distribution_lambda_2_loss: 0.8118 - distribution_lambda_3_loss: 1.5704 - distribution_lambda_4_loss: 0.4545 - val_loss: 2.7873 - val_distribution_lambda_2_loss: 0.7271 - val_distribution_lambda_3_loss: 1.5995 - val_distribution_lambda_4_loss: 0.4607\n", "Epoch 6/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8330 - distribution_lambda_2_loss: 0.7990 - distribution_lambda_3_loss: 1.5720 - distribution_lambda_4_loss: 0.4620 - val_loss: 2.7894 - val_distribution_lambda_2_loss: 0.7287 - val_distribution_lambda_3_loss: 1.5997 - val_distribution_lambda_4_loss: 0.4611\n", "Epoch 7/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8403 - distribution_lambda_2_loss: 0.7903 - distribution_lambda_3_loss: 1.5759 - distribution_lambda_4_loss: 0.4741 - val_loss: 2.7913 - val_distribution_lambda_2_loss: 0.7276 - val_distribution_lambda_3_loss: 1.6007 - val_distribution_lambda_4_loss: 0.4630\n", "Epoch 8/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8326 - distribution_lambda_2_loss: 0.7955 - distribution_lambda_3_loss: 1.5704 - distribution_lambda_4_loss: 0.4666 - val_loss: 2.7994 - val_distribution_lambda_2_loss: 0.7282 - val_distribution_lambda_3_loss: 1.6056 - val_distribution_lambda_4_loss: 0.4656\n", "Epoch 9/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8316 - distribution_lambda_2_loss: 0.7943 - distribution_lambda_3_loss: 1.5766 - distribution_lambda_4_loss: 0.4606 - val_loss: 2.8037 - val_distribution_lambda_2_loss: 0.7307 - val_distribution_lambda_3_loss: 1.6069 - val_distribution_lambda_4_loss: 0.4662\n", "Epoch 10/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8247 - distribution_lambda_2_loss: 0.7831 - distribution_lambda_3_loss: 1.5749 - distribution_lambda_4_loss: 0.4667 - val_loss: 2.8047 - val_distribution_lambda_2_loss: 0.7321 - val_distribution_lambda_3_loss: 1.6060 - val_distribution_lambda_4_loss: 0.4666\n", "Epoch 11/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8082 - distribution_lambda_2_loss: 0.7760 - distribution_lambda_3_loss: 1.5706 - distribution_lambda_4_loss: 0.4616 - val_loss: 2.8034 - val_distribution_lambda_2_loss: 0.7312 - val_distribution_lambda_3_loss: 1.6054 - val_distribution_lambda_4_loss: 0.4668\n", "Epoch 12/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8241 - distribution_lambda_2_loss: 0.7949 - distribution_lambda_3_loss: 1.5667 - distribution_lambda_4_loss: 0.4624 - val_loss: 2.8054 - val_distribution_lambda_2_loss: 0.7326 - val_distribution_lambda_3_loss: 1.6052 - val_distribution_lambda_4_loss: 0.4676\n", "Epoch 13/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8073 - distribution_lambda_2_loss: 0.7710 - distribution_lambda_3_loss: 1.5735 - distribution_lambda_4_loss: 0.4629 - val_loss: 2.8044 - val_distribution_lambda_2_loss: 0.7309 - val_distribution_lambda_3_loss: 1.6057 - val_distribution_lambda_4_loss: 0.4678\n", "Epoch 14/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8313 - distribution_lambda_2_loss: 0.7867 - distribution_lambda_3_loss: 1.5764 - distribution_lambda_4_loss: 0.4681 - val_loss: 2.8076 - val_distribution_lambda_2_loss: 0.7304 - val_distribution_lambda_3_loss: 1.6086 - val_distribution_lambda_4_loss: 0.4687\n", "Epoch 15/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8342 - distribution_lambda_2_loss: 0.7911 - distribution_lambda_3_loss: 1.5761 - distribution_lambda_4_loss: 0.4669 - val_loss: 2.8109 - val_distribution_lambda_2_loss: 0.7330 - val_distribution_lambda_3_loss: 1.6093 - val_distribution_lambda_4_loss: 0.4685\n", "Epoch 16/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8313 - distribution_lambda_2_loss: 0.7839 - distribution_lambda_3_loss: 1.5782 - distribution_lambda_4_loss: 0.4692 - val_loss: 2.8061 - val_distribution_lambda_2_loss: 0.7323 - val_distribution_lambda_3_loss: 1.6060 - val_distribution_lambda_4_loss: 0.4678\n", "Epoch 17/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8055 - distribution_lambda_2_loss: 0.7820 - distribution_lambda_3_loss: 1.5624 - distribution_lambda_4_loss: 0.4610 - val_loss: 2.8131 - val_distribution_lambda_2_loss: 0.7344 - val_distribution_lambda_3_loss: 1.6096 - val_distribution_lambda_4_loss: 0.4691\n", "Epoch 18/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8066 - distribution_lambda_2_loss: 0.7833 - distribution_lambda_3_loss: 1.5616 - distribution_lambda_4_loss: 0.4617 - val_loss: 2.8163 - val_distribution_lambda_2_loss: 0.7315 - val_distribution_lambda_3_loss: 1.6135 - val_distribution_lambda_4_loss: 0.4713\n", "Epoch 19/2500\n", "16/16 [==============================] - 0s 5ms/step - loss: 2.8113 - distribution_lambda_2_loss: 0.7828 - distribution_lambda_3_loss: 1.5644 - distribution_lambda_4_loss: 0.4641 - val_loss: 2.8174 - val_distribution_lambda_2_loss: 0.7303 - val_distribution_lambda_3_loss: 1.6121 - val_distribution_lambda_4_loss: 0.4749\n", "Epoch 20/2500\n", "16/16 [==============================] - 0s 5ms/step - loss: 2.8021 - distribution_lambda_2_loss: 0.7805 - distribution_lambda_3_loss: 1.5682 - distribution_lambda_4_loss: 0.4534 - val_loss: 2.8219 - val_distribution_lambda_2_loss: 0.7342 - val_distribution_lambda_3_loss: 1.6140 - val_distribution_lambda_4_loss: 0.4737\n", "Epoch 21/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.7970 - distribution_lambda_2_loss: 0.7893 - distribution_lambda_3_loss: 1.5631 - distribution_lambda_4_loss: 0.4445 - val_loss: 2.8205 - val_distribution_lambda_2_loss: 0.7343 - val_distribution_lambda_3_loss: 1.6152 - val_distribution_lambda_4_loss: 0.4710\n", "Epoch 22/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8084 - distribution_lambda_2_loss: 0.7879 - distribution_lambda_3_loss: 1.5619 - distribution_lambda_4_loss: 0.4587 - val_loss: 2.8244 - val_distribution_lambda_2_loss: 0.7349 - val_distribution_lambda_3_loss: 1.6153 - val_distribution_lambda_4_loss: 0.4742\n", "Epoch 23/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8083 - distribution_lambda_2_loss: 0.7804 - distribution_lambda_3_loss: 1.5672 - distribution_lambda_4_loss: 0.4607 - val_loss: 2.8277 - val_distribution_lambda_2_loss: 0.7357 - val_distribution_lambda_3_loss: 1.6169 - val_distribution_lambda_4_loss: 0.4751\n", "Epoch 24/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.7848 - distribution_lambda_2_loss: 0.7655 - distribution_lambda_3_loss: 1.5584 - distribution_lambda_4_loss: 0.4608 - val_loss: 2.8250 - val_distribution_lambda_2_loss: 0.7350 - val_distribution_lambda_3_loss: 1.6157 - val_distribution_lambda_4_loss: 0.4743\n", "Epoch 25/2500\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "16/16 [==============================] - 0s 4ms/step - loss: 2.8392 - distribution_lambda_2_loss: 0.8073 - distribution_lambda_3_loss: 1.5790 - distribution_lambda_4_loss: 0.4529 - val_loss: 2.8279 - val_distribution_lambda_2_loss: 0.7351 - val_distribution_lambda_3_loss: 1.6155 - val_distribution_lambda_4_loss: 0.4772\n", "Epoch 26/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8193 - distribution_lambda_2_loss: 0.7785 - distribution_lambda_3_loss: 1.5722 - distribution_lambda_4_loss: 0.4686 - val_loss: 2.8286 - val_distribution_lambda_2_loss: 0.7346 - val_distribution_lambda_3_loss: 1.6168 - val_distribution_lambda_4_loss: 0.4772\n", "Epoch 27/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8056 - distribution_lambda_2_loss: 0.7836 - distribution_lambda_3_loss: 1.5648 - distribution_lambda_4_loss: 0.4572 - val_loss: 2.8276 - val_distribution_lambda_2_loss: 0.7344 - val_distribution_lambda_3_loss: 1.6166 - val_distribution_lambda_4_loss: 0.4767\n", "Epoch 28/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.7948 - distribution_lambda_2_loss: 0.7694 - distribution_lambda_3_loss: 1.5693 - distribution_lambda_4_loss: 0.4562 - val_loss: 2.8227 - val_distribution_lambda_2_loss: 0.7330 - val_distribution_lambda_3_loss: 1.6146 - val_distribution_lambda_4_loss: 0.4750\n", "Epoch 29/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.7822 - distribution_lambda_2_loss: 0.7681 - distribution_lambda_3_loss: 1.5583 - distribution_lambda_4_loss: 0.4558 - val_loss: 2.8274 - val_distribution_lambda_2_loss: 0.7346 - val_distribution_lambda_3_loss: 1.6192 - val_distribution_lambda_4_loss: 0.4736\n", "Epoch 30/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8158 - distribution_lambda_2_loss: 0.7959 - distribution_lambda_3_loss: 1.5680 - distribution_lambda_4_loss: 0.4518 - val_loss: 2.8341 - val_distribution_lambda_2_loss: 0.7354 - val_distribution_lambda_3_loss: 1.6206 - val_distribution_lambda_4_loss: 0.4781\n", "Epoch 31/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8014 - distribution_lambda_2_loss: 0.7811 - distribution_lambda_3_loss: 1.5648 - distribution_lambda_4_loss: 0.4555 - val_loss: 2.8387 - val_distribution_lambda_2_loss: 0.7360 - val_distribution_lambda_3_loss: 1.6238 - val_distribution_lambda_4_loss: 0.4788\n", "Epoch 32/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.7946 - distribution_lambda_2_loss: 0.7758 - distribution_lambda_3_loss: 1.5592 - distribution_lambda_4_loss: 0.4596 - val_loss: 2.8409 - val_distribution_lambda_2_loss: 0.7346 - val_distribution_lambda_3_loss: 1.6271 - val_distribution_lambda_4_loss: 0.4792\n", "Epoch 33/2500\n", "16/16 [==============================] - 0s 5ms/step - loss: 2.8158 - distribution_lambda_2_loss: 0.7904 - distribution_lambda_3_loss: 1.5677 - distribution_lambda_4_loss: 0.4577 - val_loss: 2.8404 - val_distribution_lambda_2_loss: 0.7335 - val_distribution_lambda_3_loss: 1.6267 - val_distribution_lambda_4_loss: 0.4803\n", "Epoch 34/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.7946 - distribution_lambda_2_loss: 0.7796 - distribution_lambda_3_loss: 1.5635 - distribution_lambda_4_loss: 0.4515 - val_loss: 2.8403 - val_distribution_lambda_2_loss: 0.7361 - val_distribution_lambda_3_loss: 1.6240 - val_distribution_lambda_4_loss: 0.4802\n", "Epoch 35/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8137 - distribution_lambda_2_loss: 0.7850 - distribution_lambda_3_loss: 1.5682 - distribution_lambda_4_loss: 0.4606 - val_loss: 2.8423 - val_distribution_lambda_2_loss: 0.7361 - val_distribution_lambda_3_loss: 1.6249 - val_distribution_lambda_4_loss: 0.4813\n", "Epoch 36/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8254 - distribution_lambda_2_loss: 0.7804 - distribution_lambda_3_loss: 1.5803 - distribution_lambda_4_loss: 0.4647 - val_loss: 2.8395 - val_distribution_lambda_2_loss: 0.7368 - val_distribution_lambda_3_loss: 1.6214 - val_distribution_lambda_4_loss: 0.4813\n", "Epoch 37/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8213 - distribution_lambda_2_loss: 0.7868 - distribution_lambda_3_loss: 1.5731 - distribution_lambda_4_loss: 0.4614 - val_loss: 2.8386 - val_distribution_lambda_2_loss: 0.7363 - val_distribution_lambda_3_loss: 1.6209 - val_distribution_lambda_4_loss: 0.4814\n", "Epoch 38/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8045 - distribution_lambda_2_loss: 0.7780 - distribution_lambda_3_loss: 1.5652 - distribution_lambda_4_loss: 0.4612 - val_loss: 2.8439 - val_distribution_lambda_2_loss: 0.7346 - val_distribution_lambda_3_loss: 1.6246 - val_distribution_lambda_4_loss: 0.4847\n", "Epoch 39/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.7939 - distribution_lambda_2_loss: 0.7592 - distribution_lambda_3_loss: 1.5697 - distribution_lambda_4_loss: 0.4650 - val_loss: 2.8463 - val_distribution_lambda_2_loss: 0.7363 - val_distribution_lambda_3_loss: 1.6265 - val_distribution_lambda_4_loss: 0.4835\n", "Epoch 40/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.7927 - distribution_lambda_2_loss: 0.7809 - distribution_lambda_3_loss: 1.5560 - distribution_lambda_4_loss: 0.4558 - val_loss: 2.8425 - val_distribution_lambda_2_loss: 0.7361 - val_distribution_lambda_3_loss: 1.6265 - val_distribution_lambda_4_loss: 0.4799\n", "Epoch 41/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.7871 - distribution_lambda_2_loss: 0.7685 - distribution_lambda_3_loss: 1.5573 - distribution_lambda_4_loss: 0.4613 - val_loss: 2.8440 - val_distribution_lambda_2_loss: 0.7353 - val_distribution_lambda_3_loss: 1.6274 - val_distribution_lambda_4_loss: 0.4813\n", "Epoch 42/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8238 - distribution_lambda_2_loss: 0.7881 - distribution_lambda_3_loss: 1.5737 - distribution_lambda_4_loss: 0.4620 - val_loss: 2.8522 - val_distribution_lambda_2_loss: 0.7362 - val_distribution_lambda_3_loss: 1.6299 - val_distribution_lambda_4_loss: 0.4861\n", "Epoch 43/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.7937 - distribution_lambda_2_loss: 0.7708 - distribution_lambda_3_loss: 1.5711 - distribution_lambda_4_loss: 0.4518 - val_loss: 2.8491 - val_distribution_lambda_2_loss: 0.7373 - val_distribution_lambda_3_loss: 1.6271 - val_distribution_lambda_4_loss: 0.4848\n", "Epoch 44/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8023 - distribution_lambda_2_loss: 0.7787 - distribution_lambda_3_loss: 1.5687 - distribution_lambda_4_loss: 0.4549 - val_loss: 2.8461 - val_distribution_lambda_2_loss: 0.7375 - val_distribution_lambda_3_loss: 1.6263 - val_distribution_lambda_4_loss: 0.4822\n", "Epoch 45/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.8141 - distribution_lambda_2_loss: 0.7850 - distribution_lambda_3_loss: 1.5684 - distribution_lambda_4_loss: 0.4607 - val_loss: 2.8474 - val_distribution_lambda_2_loss: 0.7375 - val_distribution_lambda_3_loss: 1.6259 - val_distribution_lambda_4_loss: 0.4839\n", "Epoch 46/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.7816 - distribution_lambda_2_loss: 0.7693 - distribution_lambda_3_loss: 1.5624 - distribution_lambda_4_loss: 0.4499 - val_loss: 2.8509 - val_distribution_lambda_2_loss: 0.7389 - val_distribution_lambda_3_loss: 1.6266 - val_distribution_lambda_4_loss: 0.4854\n", "Epoch 47/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.7844 - distribution_lambda_2_loss: 0.7717 - distribution_lambda_3_loss: 1.5564 - distribution_lambda_4_loss: 0.4562 - val_loss: 2.8501 - val_distribution_lambda_2_loss: 0.7381 - val_distribution_lambda_3_loss: 1.6265 - val_distribution_lambda_4_loss: 0.4855\n", "Epoch 48/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.7855 - distribution_lambda_2_loss: 0.7730 - distribution_lambda_3_loss: 1.5588 - distribution_lambda_4_loss: 0.4536 - val_loss: 2.8556 - val_distribution_lambda_2_loss: 0.7367 - val_distribution_lambda_3_loss: 1.6320 - val_distribution_lambda_4_loss: 0.4869\n", "Epoch 49/2500\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "16/16 [==============================] - 0s 4ms/step - loss: 2.7817 - distribution_lambda_2_loss: 0.7642 - distribution_lambda_3_loss: 1.5567 - distribution_lambda_4_loss: 0.4608 - val_loss: 2.8588 - val_distribution_lambda_2_loss: 0.7381 - val_distribution_lambda_3_loss: 1.6305 - val_distribution_lambda_4_loss: 0.4902\n", "Epoch 50/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.7974 - distribution_lambda_2_loss: 0.7894 - distribution_lambda_3_loss: 1.5578 - distribution_lambda_4_loss: 0.4502 - val_loss: 2.8586 - val_distribution_lambda_2_loss: 0.7389 - val_distribution_lambda_3_loss: 1.6301 - val_distribution_lambda_4_loss: 0.4896\n", "Epoch 51/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.7851 - distribution_lambda_2_loss: 0.7654 - distribution_lambda_3_loss: 1.5580 - distribution_lambda_4_loss: 0.4616 - val_loss: 2.8592 - val_distribution_lambda_2_loss: 0.7364 - val_distribution_lambda_3_loss: 1.6328 - val_distribution_lambda_4_loss: 0.4899\n", "Epoch 52/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.7983 - distribution_lambda_2_loss: 0.7811 - distribution_lambda_3_loss: 1.5583 - distribution_lambda_4_loss: 0.4589 - val_loss: 2.8614 - val_distribution_lambda_2_loss: 0.7400 - val_distribution_lambda_3_loss: 1.6351 - val_distribution_lambda_4_loss: 0.4863\n", "Epoch 53/2500\n", "16/16 [==============================] - 0s 4ms/step - loss: 2.7862 - distribution_lambda_2_loss: 0.7638 - distribution_lambda_3_loss: 1.5650 - distribution_lambda_4_loss: 0.4574 - val_loss: 2.8565 - val_distribution_lambda_2_loss: 0.7386 - val_distribution_lambda_3_loss: 1.6317 - val_distribution_lambda_4_loss: 0.4862\n" ] } ], "source": [ "load_model_gk = True# load scaler and model weights for goalkeeper player predictor\n", "refit_model_gk = True\n", "\n", "if(load_model_gk):\n", " scaler_gk = pickle.load(open('saves/scaler_gk.pkl', 'rb'))\n", " \n", " X_gk_train = scaler_gk.transform(X_gk_train_)\n", " X_gk_test = scaler_gk.transform(X_gk_test_)\n", " \n", " \n", "n_epochs = 2500\n", "\n", "n_samples = X_gk_train.shape[0]\n", "\n", "batch_size = 128\n", "\n", "X_gk_len = X_gk_train.shape[1]\n", "y_gk_len = y_gk_train.shape[1]\n", "\n", "\n", "#tailweight_param = 1.1\n", "\n", "tailweight_min = 0.5\n", "tailweight_range = 0.8\n", "\n", "\n", "callback = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience = 50)\n", "neg_log_likelihood = lambda x, rv_x: -rv_x.log_prob(x)\n", "\n", "\n", "inputs = tfk.layers.Input(shape=(X_gk_len,), name=\"input\")\n", "x = tfk.layers.Dense(16, activation=\"relu\") (inputs)\n", "x = tfk.layers.Dropout(0.3)(x)\n", "x = tfk.layers.Dense(16, activation=\"relu\") (x)\n", "\n", "\n", "prob_dist_params = 4\n", "\n", "def prob_dist(t): \n", " return tfp.distributions.SinhArcsinh(loc=t[..., 0], scale=1e-3 + tf.math.softplus(t[..., 1]), skewness = t[..., 2], \n", " tailweight = tailweight_min + tailweight_range * tf.math.sigmoid(t[..., 3]),\n", " allow_nan_stats = False)\n", "\n", "x1 = tfk.layers.Dense(16, activation=\"sigmoid\")(x)\n", "x1 = tfk.layers.Dropout(0.2)(x1)\n", "x1 = tfk.layers.Dense(prob_dist_params, activation=\"linear\")(x1)\n", "out_1 = tfp.layers.DistributionLambda(prob_dist)(x1)\n", "\n", "x2 = tfk.layers.Dense(16, activation=\"sigmoid\")(x)\n", "\n", "x2 = tfk.layers.Dense(prob_dist_params, activation=\"linear\")(x2)\n", "out_2 = tfp.layers.DistributionLambda(prob_dist)(x2)\n", "\n", "x3 = tfk.layers.Dense(8, activation=\"sigmoid\")(x)\n", "x3 = tfk.layers.Dropout(0.2)(x3)\n", "x3 = tfk.layers.Dense(1, activation=\"sigmoid\")(x3)\n", "out_3 = tfp.layers.DistributionLambda(lambda t: tfp.distributions.Bernoulli(probs = t[..., 0]))(x3)\n", "\n", "modelb_gk = tf.keras.Model(inputs, [out_1, out_2, out_3])\n", "\n", "modelb_gk.compile(optimizer=tf.keras.optimizers.Nadam(learning_rate = 0.001), \n", " loss=neg_log_likelihood)\n", "\n", "if(load_model_gk):\n", " modelb_gk.load_weights('saves/modelb_gk')\n", "\n", "if( (not load_model_gk) or refit_model_gk): \n", " modelb_gk.fit(X_gk_train.astype('float32'), [y_gk_train[:, 0].astype('float32'), y_gk_train[:, 1].astype('float32'), y_gk_train[:, 2].astype('int')], \n", " validation_data = (X_gk_test.astype('float32'), [y_gk_test[:, 0].astype('float32'), y_gk_test[:, 1].astype('float32'), y_gk_test[:, 2].astype('int')]),\n", " batch_size = batch_size, shuffle = True, epochs=n_epochs, verbose=True, callbacks = [callback])" ] }, { "cell_type": "code", "execution_count": 24, "id": "39a9bdc6", "metadata": {}, "outputs": [], "source": [ "def sample_predict_gk(X, iterations = 100):\n", " y = np.zeros((3, X.shape[0]))\n", " \n", " dist = modelb_gk(X)\n", " \n", " for i in range(iterations):\n", " y[0, :] += dist[0].sample()\n", " y[1, :] += dist[1].sample()\n", " y[2, :] += dist[2].sample()\n", " \n", " return y.transpose() / iterations\n" ] }, { "cell_type": "code", "execution_count": 25, "id": "c41cf448", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.11125466234353387\n", "0.31109318411388387\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "0.04536015796966664\n", "0.23520934604862653\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiwAAAGdCAYAAAAxCSikAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABhLElEQVR4nO3deVxU9f4/8NewDagwCsqmgGjgngoqauWaIpZpVpp73X6ZudzUunVt+WabVPfW7Zqm2fVq7lquNzWRVNzNDTJTcUExBRGQGUAZYOb8/jgzhzkwM8woMAO8no/HPHDONp8ZwPPmc17n81EIgiCAiIiIyIm5OLoBRERERJVhwUJEREROjwULEREROT0WLEREROT0WLAQERGR02PBQkRERE6PBQsRERE5PRYsRERE5PTcHN2AqqLX63Hz5k14e3tDoVA4ujlERERkA0EQkJ+fj+DgYLi4WO5HqTMFy82bNxESEuLoZhAREdF9uH79Olq0aGFxfZ0pWLy9vQGIb9jHx8fBrSEiIiJbaDQahISESOdxS+pMwWK8DOTj48OChYiIqJapLM7B0C0RERE5PRYsRERE5PRYsBAREZHTY8FCRERETo8FCxERETk9FixERETk9FiwEBERkdNjwUJEREROjwULEREROT27Cpb4+Hh0794d3t7e8Pf3x4gRI3DhwgXZNoIgYO7cuQgODoaXlxf69euHs2fPVnrsjRs3on379lAqlWjfvj02b95s3zshIiKiOsuugiUpKQnTpk3D0aNHsXv3bpSWlmLw4MEoLCyUtvn888/x5ZdfYsGCBTh+/DgCAwMxaNAg5OfnWzzukSNHMHr0aEyYMAEpKSmYMGECRo0ahWPHjt3/OyMiIqI6QyEIgnC/O9++fRv+/v5ISkpCnz59IAgCgoODMXPmTLz11lsAAK1Wi4CAAHz22Wd45ZVXzB5n9OjR0Gg02Llzp7RsyJAhaNKkCdauXWtTWzQaDVQqFdRqNecSIiIiqiVsPX8/UIZFrVYDAHx9fQEAaWlpyMzMxODBg6VtlEol+vbti8OHD1s8zpEjR2T7AEBsbKzVfbRaLTQajexBREREVW/nmQy8uuokdPr77uN4YPddsAiCgNmzZ+PRRx9Fx44dAQCZmZkAgICAANm2AQEB0jpzMjMz7d4nPj4eKpVKeoSEhNzvWyEiIiIzdHoB/9h1Hq+uPoWdv2di/fHrDmvLfRcs06dPx2+//Wb2kk35KaIFQah02mh795kzZw7UarX0uH7dcR8iERFRXaO+V4KXvj+OhXsvAwBeejQco7q1cFh73O5npxkzZmDbtm3Yv38/WrQoa3xgYCAAscckKChIWp6VlVWhB8VUYGBghd6UyvZRKpVQKpX303wiIiKyIvVWPiavOIGrOXehdHPBZ888jBFdmzu0TXb1sAiCgOnTp2PTpk3Ys2cPwsPDZevDw8MRGBiI3bt3S8uKi4uRlJSE3r17Wzxur169ZPsAQEJCgtV9iIiIqOr9/HsGnl54CFdz7qJ5Yy9sfLW3w4sVwM4elmnTpmHNmjXYunUrvL29pV4RlUoFLy8vKBQKzJw5E/PmzUNERAQiIiIwb948NGjQAGPHjpWOM3HiRDRv3hzx8fEAgNdeew19+vTBZ599huHDh2Pr1q1ITEzEwYMHq/CtEhERkSV6vYAvd6diwd5LAIBerfywYGxX+DVyjqsZdhUsixYtAgD069dPtnzZsmV44YUXAABvvvkm7t27h6lTp+LOnTuIiYlBQkICvL29pe3T09Ph4lLWudO7d2+sW7cO7777Lt577z20bt0a69evR0xMzH2+LSIiIrKV+l4JZq47jb0XbgMA/vJION4e2hZurs4zIP4DjcPiTDgOCxERkf0u3srH5JUnkZZdCKWbC+JHdsLIqJoL19p6/r6v0C0RERHVfrvOZmL2+mQUFusQrPLEkond0LG5ytHNMosFCxERUT2j1wv4KjEV8/eIeZWerXyxcGyU0+RVzGHBQkREVI9oikowa10yfjmfBQB48ZGWeHtoO7g7UV7FHBYsRERE9cSlrHxMXnESV7IL4eHmgk9rOK/yIFiwEBER1QMJZzMxe0MKCrSlCFZ54tsJ3dCphXPmVcxhwUJERFSH6fUCvvrlIub/chEAEBPui4XjotDUifMq5rBgISIiqqM0RSWYvT4ZiefEvMoLvVvinSecP69iDgsWIiKiOuhSVgEmrzyBK7fFvMq8pzvh2ejakVcxhwULERFRHbP7j1uYtT4ZBdpSBKk8sXh8NDqHNHZ0sx4ICxYiIqI6Qq8X8O9fLuLfhrxKj3BxfJVm3rUrr2IOCxYiIqI6IL+oBLPWpyDx3C0AwKReYXj3yfa1Mq9iDgsWIiKiWu7y7QJMXnEClw15lU9GdMRz3UIc3awqxYKFiIioFks05FXytaUI9PHEtxNqf17FHBYsREREtZBeL+DrPZfwr8RUAECPluL4KnUhr2IOCxYiIqJaJr+oBLM3pGD3H2JeZWKvMLz7RHt4uNWNvIo5LFiIiIhqEVlexdUFHz/dEaPqWF7FHBYsREREtcQv525h5rqyvMriCdHoUgfzKuawYCEiInJyer2ABXvFvIogAN1bNsHCcVHw9/Z0dNNqDAsWIiIiJ1agLcXs9clIMORVxvcMxf892aFO51XMYcFCRETkpK7cLsDklSdxKasAHq4u+GhEB4zuHuroZjkECxYiIiIntOf8Lby2Lhn5RaUI8FFi0fhoRIU2cXSzHIYFCxERkRPR6wUs3HsJXxryKt3CmuCb8fUrr2IOCxYiIiInUaAtxRsbUvDz2UwAwLiYULw/rP7lVcxhwUJEROQE0rILMXnFCVw05FU+HN4Bz/eon3kVc1iwEBEROdjeC1n469rTyC8qhb+3Eosn1O+8ijksWIiIiBxEEAR8s+8y/plwAYIARIc1waJxUfD3qd95FXNYsBARETlAobYUb/yQgp2/i3mVsTGhmMu8ikUsWIiIiGrY1exCTF55Aqm3CuDuqsCHwztiDPMqVrFgISIiqkH7DHkVjSGvsmh8NKLDmFepDAsWIiKiGlA+rxIV2hiLxkcjgHkVm7BgISIiqmaF2lL87ccU7Dgj5lXG9AjB3Kc6QOnm6uCW1R52J3v279+PYcOGITg4GAqFAlu2bJGtVygUZh//+Mc/LB5z+fLlZvcpKiqy+w0RERE5k2s5hRj5zWHsOJMJd1cFPnm6I+JHPsxixU5297AUFhaic+fOePHFF/HMM89UWJ+RkSF7vnPnTrz00ktmtzXl4+ODCxcuyJZ5erKbjIiIai/TvEozbyUWjYtCt5a+jm5WrWR3wRIXF4e4uDiL6wMDA2XPt27div79+6NVq1ZWj6tQKCrsS0REVBsJgoBFSZfxj11iXqVraGMsZl7lgVRrhuXWrVvYvn07vv/++0q3LSgoQFhYGHQ6Hbp06YKPPvoIXbt2tbi9VquFVquVnms0mippMxER0YMo1JbizR9/w/Yz4hWH57uH4IPhzKs8qGodneb777+Ht7c3Ro4caXW7tm3bYvny5di2bRvWrl0LT09PPPLII7h48aLFfeLj46FSqaRHSEhIVTefiIjILuk5d/HMosPYfiYD7q4KfDyiI+JHdmKxUgUUgiAI972zQoHNmzdjxIgRZte3bdsWgwYNwtdff23XcfV6PaKiotCnTx/Mnz/f7DbmelhCQkKgVqvh4+Nj1+sRERE9qP2ptzFj7Wmo75WgaSMlFo9nXsUWGo0GKpWq0vN3tV0SOnDgAC5cuID169fbva+Liwu6d+9utYdFqVRCqVQ+SBOJiIgemCAI+Hb/FXz+83noBaBLiJhXCVQxr1KVqq1gWbp0KaKjo9G5c2e79xUEAcnJyejUqVM1tIyIiKhq3C0W8yo//SbmVUZ3C8GHI5hXqQ52FywFBQW4dOmS9DwtLQ3Jycnw9fVFaKg4D4JGo8EPP/yAL774wuwxJk6ciObNmyM+Ph4A8MEHH6Bnz56IiIiARqPB/PnzkZycjIULF97PeyIiIqp26Tl3MXnlCZzPzIebiwLvP9UB42NCoVAoHN20OsnuguXEiRPo37+/9Hz27NkAgEmTJmH58uUAgHXr1kEQBIwZM8bsMdLT0+HiUpb3zcvLw+TJk5GZmQmVSoWuXbti//796NGjh73NIyIiqnYHLt7G9DVleZVF46PQnXmVavVAoVtnYmtoh4iI6H4JgoAl+6/gM0NepXNIYyweH4UglZejm1ZrOTx0S0REVJfcLS7FWxvP4H8pNwEAz0W3wEcjOsLTnXmVmsCChYiIqBLXc+9i8sqTOJehgZuLAv83rD0m9AxjXqUGsWAhIiKy4uDFbExfewp5d0vQtJEHFo6NQkwrP0c3q95hwUJERGSGIAj47sAVfLrTkFdpocKi8dEIbsy8iiOwYCEiIirnXrEOb238DdsMeZVno1vgY+ZVHIoFCxERkYnruXfxysqT+MOQV3nvyfaY2It5FUdjwUJERGRw6FI2pq85hTt3S+DX0APfjGNexVmwYCEionpPEAQsPZiGeTvOQS8AD7dQYTHzKk6FBQsREdVr94p1mLPpN2xJFvMqz0S1wCdPM6/ibFiwEBFRvWWaV3F1UeDdJ9rhhd4tmVdxQixYiIioXjp8KRvTTPIqC8dFoSfzKk6LBQsREdUrxrxK/M7z0OkFdGquwuIJ0WjOvIpTY8FCRET1RlGJDn/fWJZXGdm1OeaN7MS8Si3AgoWIiOqFP++IeZWzN8W8yjtD2+HFR5hXqS1YsBARUZ13+HI2pq85jdzCYvg29MCCsV3Ru3VTRzeL7MCChYiI6ixBELDs0FV8suMcdHoBHZv7YPH4aLRo0sDRTSM7sWAhIqI6qahEh7c3ncGm0zcAAE93bY545lVqLRYsRERU59zIu4dXVp7A7zfEvMrbQ9vhL8yr1GosWIiIqE45cjkH09ecQk5hMZo0cMfCcVHMq9QBLFiIiKhOEAQByw9fxcfbxbxKh2AffDuBeZW6ggULERHVekUlOry9+Qw2nRLzKiO6BCN+5MPw8mBepa5gwUJERLXazbx7eGXlSZy5oYaLAnh7aDu89Gg48yp1DAsWIiKqtY5eycG01SZ5lbFR6P0Q8yp1EQsWIiKqdQRBwPeGvEqpXkD7IDGvEuLLvEpdxYKFiIhqlaISHd7Z/Ds2nvoTAPBU52B89gzzKnUdCxYiIqo1bubdw5RVJ/Hbn2JeZU5cO/y/x5hXqQ9YsBARUa1w7EoOpq05heyCYjRu4I4FY6LwaATzKvUFCxYiInJqgiBg5dFr+PB/f6BUL6BdkA+WMK9S77BgISIip1VUosN7W37HDyfFvMqwzsH4nHmVeokFCxEROaUM9T1MWXkSKYa8yt/j2uLlx1oxr1JPsWAhIiKn82taLqauPinlVb4e0xWPRTRzdLPIgVzs3WH//v0YNmwYgoODoVAosGXLFtn6F154AQqFQvbo2bNnpcfduHEj2rdvD6VSifbt22Pz5s32No2IiGo5QRCw8shVjP3uKLILitE20Bvbpj3KYoXsL1gKCwvRuXNnLFiwwOI2Q4YMQUZGhvTYsWOH1WMeOXIEo0ePxoQJE5CSkoIJEyZg1KhROHbsmL3NIyKiWqqoRIe3Nv6G97aeRalewJMPB2HT1N4I9WO4lgCFIAjCfe+sUGDz5s0YMWKEtOyFF15AXl5ehZ4Xa0aPHg2NRoOdO3dKy4YMGYImTZpg7dq1Nh1Do9FApVJBrVbDx8fH5tcmIiLHy1QX4ZVVJ5FyPQ8uCuDNIW3xSh/mVeoDW8/fdvew2GLfvn3w9/dHZGQkXn75ZWRlZVnd/siRIxg8eLBsWWxsLA4fPmxxH61WC41GI3sQEVHtc/xqLp78+iBSrudB5eWO5S/2wJS+rVmskEyVFyxxcXFYvXo19uzZgy+++ALHjx/HgAEDoNVqLe6TmZmJgIAA2bKAgABkZmZa3Cc+Ph4qlUp6hISEVNl7ICKi6mccX2XMkqPILtCibaA3/jf9UfSJZF6FKqryu4RGjx4t/btjx47o1q0bwsLCsH37dowcOdLifuUraUEQrFbXc+bMwezZs6XnGo2GRQsRUS2hLdXh/7acxfoT1wEATzwchH88+zAaePDmVTKv2n8ygoKCEBYWhosXL1rcJjAwsEJvSlZWVoVeF1NKpRJKpbLK2klERDUjU12EKatOIvl6HhQK4M3YtpjSl3kVsq5aMiymcnJycP36dQQFBVncplevXti9e7dsWUJCAnr37l3dzSMiohp04mouhi04iOTrefDxdMPyF3vg1X7Mq1Dl7O5hKSgowKVLl6TnaWlpSE5Ohq+vL3x9fTF37lw888wzCAoKwtWrV/H222+jadOmePrpp6V9Jk6ciObNmyM+Ph4A8Nprr6FPnz747LPPMHz4cGzduhWJiYk4ePBgFbxFIiJyBquPXcPcbWdRohPQJsAbSyZGI8yvoaObRbWE3QXLiRMn0L9/f+m5MUcyadIkLFq0CGfOnMGKFSuQl5eHoKAg9O/fH+vXr4e3t7e0T3p6Olxcyjp3evfujXXr1uHdd9/Fe++9h9atW2P9+vWIiYl5kPdGREROQFuqw9xtZ7H2VzGvMrRTIP7xbGc0VDKvQrZ7oHFYnAnHYSEicj63NGJe5XS6mFf5W2wbvMpblsmEredvlrdERFQtTl7LxZRVp3A7XwsfTzfMH9MV/dr4O7pZVEuxYCEioiq35lg63t/2O0p0AiIDGmHJhG5o2ZR5Fbp/LFiIiKjKiHmVP7D213QAQFzHQPzzOeZV6MHxJ4iIiKpEliGvcsqQV3ljcBtM5S3LVEVYsBAR0QM7ee0OXl11ElmGvMq/x3RFf+ZVqAqxYCEiogey9td0/N9W5lWoerFgISKi+1Jcqsfc/53FmmNiXmVIh0D8c1RnNGJehaoBf6qIiMhuWZoivLr6FE5euwOFAnh9UCSm9X+IeRWqNixYiIjILqfSxbzKLY0W3p5u+PfzXTCgreXJaomqAgsWIiKy2frj6Xhvy1kU6/R4yL8RvpvYDeHMq1ANYMFCRESVKi7V48OfzmLVUTGvEtshAF+M6sK8CtUY/qQREZFVWflFmLrqFE4Y8iqzHxfzKi4uzKtQzWHBQkREFp1Ov4NXV51CpqYI3ko3/HsM8yrkGCxYiIjIrA3Hr+PdLb9LeZUlE6LRqlkjRzeL6ikWLEREJFNcqsdHP/2BlUevAQAGtw/AF6M6w9vT3cEto/qMBQsREUlu52sxdfVJHL96BwAw6/FIzBjAvAo5HgsWIiICACRfz8OUlSelvMpXz3fBwHbMq5BzYMFCRETYcMKQVynVo3WzhlgysRtaM69CToQFCxFRPVaiE/MqK46IeZXH2wXgX6OZVyHnw4KFiKieup2vxbTVp/Dr1VwAwMzHI/DXARHMq5BTYsFCRFQPpVzPw5RVJ5GhLkIjpRv+NboLBrVnXoWcFwsWIqJ65seTf+LtzWdQXKpHq2YNsWRCNzzkz7wKOTcWLERE9USJTo9Ptp/D8sNXAQCPt/PHl6O7wId5FaoFWLAQEdUD2QVaTF19Cr+miXmV1wZG4LWBzKtQ7cGChYiojvvtT3F8lZuGvMqXozpjcIdARzeLyC4sWIiI6rCNJ//EHGNepWlDLJkYjYf8vR3dLCK7sWAhIqqDyudVBrb1x7+eZ16Fai8WLEREdUyOIa9yzJBX+euAhzDz8UjmVahWY8FCRFSHnPlTjVdWnsBNdREaerjiy9FdEMu8CtUBLFiIiOqITaf+xJxNZ6At1SO8aUMsmRCNiADmVahuYMFCRFTLlej0mLfjHJYdugoAGNDWH/8a3QUqL+ZVqO5wsXeH/fv3Y9iwYQgODoZCocCWLVukdSUlJXjrrbfQqVMnNGzYEMHBwZg4cSJu3rxp9ZjLly+HQqGo8CgqKrL7DRER1Sc5BVpMWHpMKlZmDHgI/5nYjcUK1Tl2FyyFhYXo3LkzFixYUGHd3bt3cerUKbz33ns4deoUNm3ahNTUVDz11FOVHtfHxwcZGRmyh6enp73NIyKqN36/ocZTCw7h6JVcNPRwxeLxUXh9cBuGa6lOsvuSUFxcHOLi4syuU6lU2L17t2zZ119/jR49eiA9PR2hoaEWj6tQKBAYyGAYEZEttpy+gbc2/gZtqR4t/Rrgu4ndmFehOq3aMyxqtRoKhQKNGze2ul1BQQHCwsKg0+nQpUsXfPTRR+jatavF7bVaLbRarfRco9FUVZOJiJxWqU6P+J3nsfRgGgCgf5tm+Or5rrwERHWe3ZeE7FFUVIS///3vGDt2LHx8fCxu17ZtWyxfvhzbtm3D2rVr4enpiUceeQQXL160uE98fDxUKpX0CAkJqY63QETkNHILizHxv79Kxcr0/g/hP5O6s1ihekEhCIJw3zsrFNi8eTNGjBhRYV1JSQmee+45pKenY9++fVYLlvL0ej2ioqLQp08fzJ8/3+w25npYQkJCoFar7XotIqLa4Pcbaryy8iRu5N1DAw9XfDmqM4Z0DHJ0s4gemEajgUqlqvT8XS2XhEpKSjBq1CikpaVhz549dhcQLi4u6N69u9UeFqVSCaVS+aBNJSJyeluTxbxKUYmYV1kysRsimVeheqbKCxZjsXLx4kXs3bsXfn5+dh9DEAQkJyejU6dOVd08IqJao1Snx6c7z+M/hktA/do0w79Hd4WqAS8BUf1jd8FSUFCAS5cuSc/T0tKQnJwMX19fBAcH49lnn8WpU6fw008/QafTITMzEwDg6+sLDw8PAMDEiRPRvHlzxMfHAwA++OAD9OzZExEREdBoNJg/fz6Sk5OxcOHCqniPRES1Tm5hMWasPYVDl3IAAFP7tcbrg9vAlbcsUz1ld8Fy4sQJ9O/fX3o+e/ZsAMCkSZMwd+5cbNu2DQDQpUsX2X579+5Fv379AADp6elwcSnL++bl5WHy5MnIzMyESqVC165dsX//fvTo0cPe5hER1Xpnb4p5lT/viHmVfz7XGUM7Ma9C9dsDhW6dia2hHSIiZ2aaVwnza4AlE7qhTSDzKlR3OTR0S0RE9inV6fHZz+fx3QExr9Inshm+fp55FSIjFixERA52p7AYM9aexsFL2QCAV/u1xhvMqxDJsGAhInKgP25qMHnlCfx55x683MW8yhMPM69CVB4LFiIiB9mWchNv/piCohI9Qn0bYMnEaLQNZAaPyBwWLERENUynF/D5z+fx7f4rAIDHIpri6zFd0biBh4NbRuS8WLAQEdWgvLtiXuXARTGvMqVva/wtlnkVosqwYCEiqiHnMsS8yvVcMa/yj+cexpMPBzu6WUS1AgsWIqIa8NNvN/G3H37DvRIdQny9sGRCN7QLYl6FyFYsWIiIqpFOL+DzXefxbRLzKkQPggULEVE1KZ9XeaVPK/wttg3cXF0q2ZOIymPBQkRUDc5najB5xUmk596Fp7sLPn+2M57qzLwK0f1iwUJEVMVM8yotmoh5lfbBzKsQPQgWLEREVUSnF/CPXRewOOkyAODRh8S8SpOGzKsQPSgWLEREVSDvbjH+ui4Z+1NvAwAm92mFN5lXIaoyLFiIiB5Q+bzKZ888jOFdmju6WUR1CgsWIqIHsONMBt74IQV3i8W8yrcTotEhWOXoZhHVOSxYiIjug04v4IuEC/hmn5hXeeQhP3w9Jgq+zKsQVQsWLEREdlLfLcFr609j3wUxr/LyY+F4a0hb5lWIqhELFiIiO1zIzMfklSdwLYd5FaKaxIKFiMhGO89k4HVDXqV5YzGv0rE58ypENYEFCxFRJXR6AV/uvoCFe8W8Su/WflgwlnkVoprEgoWIyAr1vRK8tq4sr/LSo+GYE8e8ClFNY8FCRGRB6q18TF5xAldz7kLpJuZVRnRlXoXIEViwEBGZ8fPvGXh9QwoKmVchcgosWIiITOj1Av6VmIqv91wCAPRq5YcFY7vCr5HSwS0jqt9YsBARGajvlWDmutPYa8ir/OWRcLw9lHkVImfAgoWICMDFW/mYvPIk0rILoXRzQfzIThgZ1cLRzSIiAxYsRFTv7Tqbidnrk1FYrEOwyhNLJnZjXoXIybBgIaJ6S68X8FViKuYb8io9W/li4dgo5lWInBALFiKqlzRFJZi1Lhm/nM8CALz4SEu8PbQd3JlXIXJKLFiIqN65lJWPyStO4kp2ITzcXPAp8ypETs/uPyX279+PYcOGITg4GAqFAlu2bJGtFwQBc+fORXBwMLy8vNCvXz+cPXu20uNu3LgR7du3h1KpRPv27bF582Z7m0ZEVKmEs5kYsfAwrmQXIljliY1TerNYIaoF7C5YCgsL0blzZyxYsMDs+s8//xxffvklFixYgOPHjyMwMBCDBg1Cfn6+xWMeOXIEo0ePxoQJE5CSkoIJEyZg1KhROHbsmL3NIyIyS68X8OXuVExeeRIF2lLEhPti24xH0akFw7VEtYFCEAThvndWKLB582aMGDECgNi7EhwcjJkzZ+Ktt94CAGi1WgQEBOCzzz7DK6+8YvY4o0ePhkajwc6dO6VlQ4YMQZMmTbB27Vqb2qLRaKBSqaBWq+Hj43O/b4mI6iBNUQlmr09G4jkxr/JC75Z45wnmVYicga3n7yr9bU1LS0NmZiYGDx4sLVMqlejbty8OHz5scb8jR47I9gGA2NhYq/totVpoNBrZg4iovEtZBRix8BASz2XBw80F/3yuM+Y+1YHFClEtU6W/sZmZmQCAgIAA2fKAgABpnaX97N0nPj4eKpVKeoSEhDxAy4moLtr9xy2MWHgIV24XIkjliR9e6YVno5lXIaqNquVPDIVCIXsuCEKFZQ+6z5w5c6BWq6XH9evX77/BRFSnGMdXeXnFCRRoS9Ej3Bfbpj+KziGNHd00IrpPVXpbc2BgIACxxyQoKEhanpWVVaEHpfx+5XtTKttHqVRCqeTgTkQkl19UglnrU5B47hYAYFKvMLz7ZHteAiKq5ar0Nzg8PByBgYHYvXu3tKy4uBhJSUno3bu3xf169eol2wcAEhISrO5DRFTe5dvGvMoteLi54B/PPowPhndksUJUB9jdw1JQUIBLly5Jz9PS0pCcnAxfX1+EhoZi5syZmDdvHiIiIhAREYF58+ahQYMGGDt2rLTPxIkT0bx5c8THxwMAXnvtNfTp0wefffYZhg8fjq1btyIxMREHDx6sgrdIRPVB4h+3MGt9MvK1pQj08cS3E6J5CYioDrG7YDlx4gT69+8vPZ89ezYAYNKkSVi+fDnefPNN3Lt3D1OnTsWdO3cQExODhIQEeHt7S/ukp6fDxaXsL57evXtj3bp1ePfdd/Hee++hdevWWL9+PWJiYh7kvRFRPaDXC/h6zyX8KzEVANCjpS8WjotCM29eMiaqSx5oHBZnwnFYiOqf/KISvL4hBQl/iHmVib3C8O4T7eHhxktARLWFredvziVERLXS5dsFmLziBC7fLoSHqws+HtERo7pzeAOiuooFCxHVOr+cu4WZ68ryKosnRKML8ypEdRoLFiKqNfR6AQv2inkVQQC6t2yCheOi4O/t6eimEVE1Y8FCRLVCgbYUs9cnS3mV8T1D8X9PdmBehaieYMFCRE7vyu0CTF55EpeyCuDh6oKPRnTA6O6hjm4WEdUgFixE5NT2nL+F19YlI7+oFAE+SiwaH42o0CaObhYR1TAWLETklARBwMK9l/DFbjGv0i2sCb4Zz7wKUX3FgoWInE6BthRvbEjBz2fFOcbGxYTi/WHMqxDVZyxYiMippGUXYvKKE7hoyKt8OLwDnu/BvApRfceChYicxt4LWfjr2tPILyqFv7cSiycwr0JEIhYsRORwgiDgm32X8c+ECxAEIDqsCRaNi4K/D/MqRCRiwUJEDlWoLcUbP6Rg5+9iXmVsTCjmMq9CROWwYCEih7maXYjJK08g9VYB3F0V+OCpjhgbw7wKEVXEgoWIHGKfIa+iMeRVFo2PRnQY8ypEZB4LFiKqUeXzKlGhjbFofDQCmFchIitYsBBRjSnUluJvP6ZgxxkxrzKmRwjmPtUBSjdXB7eMiJwdCxYiqhHXcgoxecVJXLiVD3dXBeY+1QHjYsIc3SwiqiVYsBBRtUtKvY0Za05BU1SKZt5KLBoXhW4tfR3dLCKqRViwEFG1EQQBi5Ou4B+7zkMvAF1DG2Mx8ypEdB9YsBBRtSjUluLNH3/D9jMZAIDnu4fgg+HMqxDR/WHBQkRVLj3nLiavPIHzmWJe5f1hHTAuJhQKhcLRTSOiWooFCxFVqf2ptzFj7Wmo75WgaSMlFo9nXoWIHhwLFiKqEoIg4Nv9V/D5z2JepUuImFcJVDGvQkQPjgULET2wu8ViXuWn38S8yqhuLfDRiI7MqxBRlWHBQkQPxDSv4uaiwPvD2mN8zzDmVYioSrFgIaL7duCimFfJuyvmVRaNj0J35lWIqBqwYCEiuwmCgCX7r+AzQ16lc0hjLB4fhSCVl6ObRkR1FAsWIrLL3eJSvLXxDP6XchMA8Fy0mFfxdGdehYiqDwsWIrLZ9dy7mLzyJM5laODmosD/DWuPCcyrEFENYMFCRDY5eDEb09eeMuRVPLBwbBRiWvk5ullEVE+wYCEiqwRBwH8OpCF+5zkxr9JChUXjoxHcmHkVIqo5LlV9wJYtW0KhUFR4TJs2zez2+/btM7v9+fPnq7ppRGSne8U6vLYuGZ/sEIuVZ6NbYP0rvVisEFGNq/IeluPHj0On00nPf//9dwwaNAjPPfec1f0uXLgAHx8f6XmzZs2qumlEZIfruXfxysqT+MOQV3nvyfaY2It5FSJyjCovWMoXGp9++ilat26Nvn37Wt3P398fjRs3rurmENF9OHQpG9PXnMKduyXwa+iBb8Yxr0JEjlXll4RMFRcXY9WqVfjLX/5S6V9lXbt2RVBQEAYOHIi9e/dWemytVguNRiN7ENGDEfMqVzBh6THcuVuCh1uo8L8Zj7JYISKHq9aCZcuWLcjLy8MLL7xgcZugoCAsWbIEGzduxKZNm9CmTRsMHDgQ+/fvt3rs+Ph4qFQq6RESElLFrSeqX+4V6zBrfTI+3i7mVZ6JaoENzKsQkZNQCIIgVNfBY2Nj4eHhgf/973927Tds2DAoFAps27bN4jZarRZarVZ6rtFoEBISArVaLcvCEFHl/rxzF5NXiHkVVxcF3n2iHV7o3ZJ5FSKqdhqNBiqVqtLzd7Xd1nzt2jUkJiZi06ZNdu/bs2dPrFq1yuo2SqUSSqXyfptHRAaHL2VjmkleZeG4KPTkJSAicjLVVrAsW7YM/v7+eOKJJ+ze9/Tp0wgKCqqGVhGRkSAIWHowDfE7z0OnF9CpuQqLJ0SjOS8BEZETqpaCRa/XY9myZZg0aRLc3OQvMWfOHNy4cQMrVqwAAHz11Vdo2bIlOnToIIV0N27ciI0bN1ZH04gIQFGJDn/f+Bu2JIvzAY3s2hzzRnbifEBE5LSqpWBJTExEeno6/vKXv1RYl5GRgfT0dOl5cXEx3njjDdy4cQNeXl7o0KEDtm/fjqFDh1ZH04jqvT/viOOrnL0p5lXeGdoOLz7CvAoRObdqDd3WJFtDO0T12eHL2Zi+5jRyC4vh29ADC8Z2Re/WTR3dLCKqxxweuiUi5yEIApYduopPdpyDTi+gQ7APvp0QjRZNGji6aURENmHBQlTHFZXo8PamM9h0+gYA4OmuzRHPvAoR1TIsWIjqsBt59zBl5UmcuaGGq4sCbw9th78wr0JEtRALFqI66sjlHExfcwo5hcVo0sAdC8dFMa9CRLUWCxaiOkYQBCw/fBUfb2dehYjqDhYsRHVIUYkOb28+g02nxLzKiC7BiB/5MLw8mFchotqNBQtRHXEz7x5eMeRVXBTA20Pb4aVHw5lXIaI6gQULkRNKTU3F5cuX8dBDDyEiIqLS7QobBiM+KassrzI2Cr0fYl6FiOoOFixETiQ3NxcTxo/Fjp27pGVD42KxavVaNGnSxOx23lFPosmA/weFqxva+DfEf17ogRDfinkVW4sgIiJnxJFuiWrIrl27cOzYMfTq1QuDBg0yu01Mj+44dfIESvVly9xcgG7duuPIsV+lZT26d8OplN/QeNA0NOr0OADg7h/7EH77EI4dOSw7pq1FkD3tJCKqKraev1mwED2gyk7wly9fxiO9Y3ArK0daFuDvhyNHjyM8PFxalpqaijZt2sDVBdCZFCzG56mpqYiIiEBqaio69XgEzZ5+G24BkXCBDrFFy7F2yWYUaIFz51NlPSgxMd2RcuoEtKVlx1S6AV2ju+PI0bIiyNZ2EhFVJRYsRA/Alssntp7gfZv44G5BfoWCoUEjH+TeUUvLJk2ahNWrVqCRElj4ItCnLbD/PDBtGVCgBcZPmITly5dj+Muv45RnV7g2bAJvhQYv6j7DsMAUHLsETFgkHmf58uXS+2jTpg3cXFCh16bUpAgCgKZ+jVF6T13htd28VMjOyXvwD5WIyAxbz98uNdgmIofbtWsXPvzwQ+zevdvs+tzcXDwxdAjatGmDoUOHIjIyEk8MHYI7d+5U2LZHtyjkZOfIluVk56BbVBfZ66nV+fB0B1ZNBdLni1893QG1WiNrx5o1a6DTi8XKuEeAED/x64IXxB6WNWvWYMWRq0hu3AeuDZvAQ30F5xfNwuv/SEHk68CyJPE469atk475ySefwNUFaKiUv35DpdhzM2/ePKmdOblisdK9FfD7daBHa/G1c3LVFj8vIqIaI9QRarVaACCo1WpHN4Wc0KVLl4QAfz8BgPQI8PcTrly5IttuaFys4OvtKqyaCiF9PoRVUyH4ersKQ+NiZdv9/PPPgosCgsoLsm1VXhBcFBASEhIEQRCEgQMHCoC4Tlhd9lj5qtiGgQMHSsc0tit9vnzb9PkQ4Oou+MW9JoS99ZMQ9tZPQtNhfxM8PZWy96N0g6Aw/NtIqVRafX1PT09BEARh+PDhAgBhQHvIjml8Pnz48Gr6zhBRfWfr+Zs9LFQvPNI7BkX5ObJehqL8HPTq2V3aJjU1FTt27sL8CTpZD8e/x+uwY+cuXLx4Udr2m2++gV4w3xuiF8T1AJCcnAxAvMRiqm878WtKSkqFtu4/L3++7bwfAsd+ikYPD4KLArizdylyf/oHvFy1svfTQAmUH3JFq9Vaff2ioiIAwK1bt+CiAE5fk/fEnL4GuCiArKysSj5hIqLqxYKF6rxdu3bhVlaO2eLiVlaOdLnj8uXLACyf3C9duiQt+/XXX61ue/ToUQBAXl4egIpFSNI58Wv5S00uCmDG98Cqg8D1HODjIx3wmetXUAa3ge6eBt//pQc0v26GXgC+niR/P/MnisWSOZZe3ygwMNDqMQMDA80fmIiohrBgoTrv2LFjACwXF0eOHAEAuLiIvw6WTu5ubmXDFhUXF1vdtqSkBACg1+vh6iKGV41FyKqDwPTlYoZEr9fL9tcLQNcwMTzbftlQfOf5CVwaNEFxVhoyv5+FxyKaSdtaej/lWXt9o5CQEKvHNK4nInIUDhxHdV5MTAwAsbgY90jZcmNx0atXLwBi8eCiAP76PSAI4sk66Rzw2gqx56O0tOw2nzZt2uDY0SOYUW7bvxq2bdtWPPO7urqitLQU4f5iEWLUJQxIvga4uVWc42dCP3dEPPcqfi4aDADoVLIf21f9G0KJVrbd/vNiQPbyLeChQODYpQqHgpeXF+7du4dCrfz13Qy3Snt5eQEAOnfubPWYXbt2reRTJiKqXixYqM6LjY2Fl9Id05aV4OYdIEAFZKmBj7cAXkp3aeyU1q1bQy8AoU0rFhe514CHHnpIWubl5QVBAO6WKwSUbmIB4+npCQBwd3dHaWkptr0OFJUAlzLFQsDTHQj9q7jelLu3H94rfBuu3m0AQYeI6ytwaNtGKErFFCwgFkF6nQ4vLAFMaii4uQEKAC6uZUVQWFgYzp8/Dy8lkH+vbFvjc+Pt18HBwXBRAC98C5TqTI7pKhZgAQEBdn/uRERViQUL1Xmpqam4py2Bmxfw5tqy5d5ewD1tCS5evIiIiAhERkaiX9/HcPDQAdn+v98A+vV9TDYeS6NGjSAAaNdc7CkxMj739vYGAPj5+eHPP/+UenciDFGQVQfFr02bls33o2zeHs1GzIFroybQ3ctH9rbPce3qabEKMcmmdOrUCcnJybLCAigrNDp16iQtu3PnDqAA8vUARgIIA3ANyN8OQCHexg0YijUAejcAw8u2K90OoFherBEROQIzLFTnGcO0+cXy5cbnpmHalDNnUOoK8eQ+S/xa6iouNzV16lQAQHK6/JjG58b10dHRFYK0qw6WXTqKjo6GIAhYdfQaAsbMg2ujJii+nYbM72ei6Opp8WDl7vzx8/MTl3kAGARgBIDBhucKeRHUoEEDsdh5AsDDAFSGr0MBCEDDhg3LDmxlOyIiR2PBQnWeMUxriTFMu2vXLtzJzTN70r6TmycbPC02NrasaDApboxFg/EyU7du3WSXjkL/Kn69qxUvHXWN7o45m87g3S2/Q+HqhsJz+5G5+g2Uqm9ZbOeNGzfEIqIJgN0AtgBIANAYgGBYb/DUU0+J/wgrd7CW8vXGos7SdqZFHRGRI7BgoRqVmpqKnTt3ysY0qW7Hjx8Xiwt3yHsk3AEoym5R3r59u7hDGIBsABcB5EA6af/000/SMT/55BOrPRKffvopAGDUqFEVxkYxcvP2w2GvGKw7fh0KBXBn3zJk/+9zCNCabacx9Hv79m3x/aghL5Y04na3b9+WXkO6PGRy2QoAcFX88vDDDwMQLwlZ246XhIjI0ViwUI3Izc3FkHJD3g+xMOR9Vbtw4YJYXDSGvEdCBUAQiygA8Pf3F3dYC2ABgNUAvgawBvL1ALZt2yb+w0KPxJYtWwAAkZGR6NPnMejKXVZxDWqHkP+3EOdvF8HH0w3LX+wBzbGNVntOjLy8vMTncZAXS0PE7Yx3/gCGgekUAHYCSIFY5KQA+BmAAjh9+rTUzti4WLjucpVt55rgiti4WIvzKRER1RSGbqlGjB0/Fon7E2XBz8RdiRgzbgx+3vGz2X1smYDQFvn5+fIeCcPrYycABVBQUAAA6N69u7jdnXLbGQKqPXr0kI4pTdB1DWKxYHS13HoAS/+7HDE9eyD7tjjvUKPOQ+A7aAp0rm5oE+CNJROjEeZnyJJYaaexaAkJCcGff/5Z1hN0B4AvpGLJdMwUf39/cT8VgM0m7QwAcE9ehK1dvRZjxo3Brs27pGWPxz2OtatNkspERA7CgoWqXWpqKnbt3CWehI0n94cBnaDDrs27pLt0jHJzczF2/FhxH4PYuFisXb0WTZo0MXt8a4VNfn6+vEfC8PoQAGwuG402PT1dfpmn3HbXrpVdL2nXrh0Sf0kUiwkBYrFwFVLPRbt2ZaO4jR0/FtnZOYCrG3wfnwLvLkMAAJ63/8CmD2ahoVL8NVQoFBAEwWI7FYZrS/fuGe5PXgsg0+SNGu48vnv3rrRo1KhReO+994DbkMsuW2/UpEkT/LzjZ1y8eBGXLl164EKRiKgq8ZIQVTt7A51Sb0xvAL0APAIk7hd7Y0zZepmpRYsWZa9vJpsSGhoKQJxPx1o7pfUAnnjiCXnPxb8MX30ACMCTTz4JQCymjh09BtcmvgiYFg/vLkMgCHrcObgcF5a9iZvpadIxXY3jp1h4feN6vV4v7wkyZljyACggFj0GkZGRaOzbWPzTxDQX4wY09m1stiCJiIhAXFwcixUiciosWKhKWAvT2hPoNPbG6HQ64DCAIwAOAbpSHXaVm4BQdpnJcNI2V9hIvTIWsimNGzcGYDI4moV2mg6eFh4eXlY0GAuBQZCKhpYtWwIQJ0FUBrdF4ItfwdOrHXQoQJZyLjT+PwImkyQCZT0oll7feLeTi4uL1cCvq8nAcampqcjLzTObi8nLzavR8DMR0YNgwUIW2XJHjy29HPYEOi9fvlyW1zDtEQAARVlvjFTYxOpkJ23d4IqFTU5OjtUeCePgaaGhoeJ2OyAPqBoyJGFhZV0fGzZsqBiQ3Q0pILthwwYAwKFMIGBMPNzcfFFccg2ZybNQdPWU1GtyxmR8FzfjULUWArLGQuTmzZviDhZ6Ykxva5Y+Twt3FJm7XdkRd3IREVWGGRaqwJ4Mia1hWlsDnTdv3pQXAkYBAG6VXZaRXWa6COAGgBDILjMZC6HMzEyr2ZTMTDEIImVYXCAPqDYQtzXNsBjvLDJmQSRirhbnUy9hzqYzuN1yEBQACi8eQs7//gWhpEjcQCl+kS5XGVkJyBo1atQIWVlZYk9MMMpCt3+WrTeSemMs5GJMJ3S0NztERFSTWLBQBc+Neg57D+2VFSEJOxLw7Khn8cvuX6Tt7AnT2hrovHHjhtgjkAf5nTI7ACgMRQVMBoNbBKDI5ACGQsD0RJyVlSX+o5Jsyq1bt8TX1kPs1WkA4C6A/eJrm2ZYFAqFuK0rgKcgu6PI1bMJUvz64cCv6QAE3ElaAc3xHwDTofQNcwCZfgaurq5lvSGDADQEUAjgoPj6xnmHAgICcOXKFWAr5Mc0XAkyvXRl/LwsvXfTIux+7uQiIqopVX5JaO7cuVAoFLJHYGCg1X2SkpIQHR0NT09PtGrVCosXL67qZpGNUlNTseeXPRCGCrJLLUKcgD2Je2SXCe5ndNTKAp3NmzcX//ofCnk+Iw6AUBaQlYKnAuSXOgDZIGsA0KxZM/Ef1yAP3V4VF8sm9jO+dm8AXQxfDa9t6tdffzWbI/EY2RaBE7+CxqMpvD3dEHxxKzTHfhAHfzNtp2EwuKSkJOmYLVq0KOthMb3MZAjyNm/eXGyiIJQNhGfmmHq9XjqmVGRZyMUY19tziY2IyBGqpYelQ4cOSExMlJ6bhgDLS0tLw9ChQ/Hyyy9j1apVOHToEKZOnYpmzZrhmWeeqY7mkRXSCdRCEZKUlCQVG7IwbQnEk2ArSGXw/YyOmpGRYfX1jfmMhIQEq5d5fvnlF8TFxQEwZFgAiz0SUg+MkYXXNiUVYybbNiodDN+QV6FQuKMkOx3bPp2Izq2ekxdg5dp59OhR+YGNvUumPSwHIJtPSKFQWD2m6VQEAQEB4r7bIb/92tBjZSzWbCk+edcQETlStRQsbm5ulfaqGC1evBihoaH46quvAIjjV5w4cQL//Oc/WbA4koUB0UxFRkYiplcMjm0+VtYDcQaAAujZu+d9neCk4sHC6xvXp6SkiAssZFhOnTpVtuvVq+JJu9xMxNgOQG9YD5NizcJrJyUl4Z133gFg0oNzDUAnN/iWTIa3biigAAovHELOjq8Q/p9XUVxcXNZOU4Z2SuthkrUJgjy/Ew4grSxrYwwJWzqmtB5A3759xWOWQp6LcQUgGNajXPFpJhfDofmJyNGqpWC5ePEigoODoVQqERMTg3nz5qFVq1Zmtz1y5AgGDx4sWxYbG4ulS5eipKREum5fnlarhVarlZ5rNJqqewP1WN++fcvulDH9i9xwp4zxBGd08uRJccK/JyArBE6cOHFfr9+5c+eyHgENgEYQexkMOZKuXbtK2+3du9dihiUqKkpa5ObmZrU3xph3OXPmTNldOmYGg/vtt9/kjVUArnuboGmLOfD0ag9B0CPv8CpoDm2QCjg3Nzfx59RCEWSatSksLBT/0RXAkwByUVY0pJWNyCsFYC0c09fXV1p04MAB8R/NIB9krimAW8ChQ4cQERGByMhI9B/YH3u37ZXyNWIDgQGPD2DvChE5XJVnWGJiYrBixQrs2rUL3333HTIzM9G7d++ybvlyMjMz5RkCiN3UpaWlyM4ufwtGmfj4eKhUKulhOhw53b/IyEgMGDig7C9y44BopcCAgfIT19KlS1FaXGp2PJDS4lIsX77c7tcPDg4WT/YlABJRluMoASCUXcJo37691QxL27ZtpWNKw+Rb6JEwrm/QoIHVweBM774BAI+gNggc/xU8vdpDX1SA2z9+CM3FDbK8i4uLS1kBZnqrsuGSjOnlUimXsx1ikeJv+GrY1phNadiwodXbr03buXr1anmI2fg5qcVtV61aJW2rUCigcFPItlO4mVyLIiJyoCovWOLi4vDMM8+gU6dOePzxx6UZcL///nuL+yjKTWdrHKmz/HJTc+bMgVqtlh7Xr1+vgtbXD5WNs/Hjhh8ROyhWtix2UCx+3PCjbNnWrVvFf1goBDZv3gx73bx5UzzBekB+gvWA7E6dgwcPWh087eDBg9IxGzY0zNNjIXjq7e0NwDBzsWmGZIThq+Hk3rlzZ2lX786xCBzzKdwa+KFYn46MvNm498QJYKy43pgj8fDwENsZDHkRFCy208PDQzqmp6en/PKNSbEIwbAehtmYjZeOTLcLErczvZupqKjIaojZOIx/amoq9iTaFrYmInKEah84rmHDhujUqZPF//ACAwOla/NGWVlZcHNzg5+fn8XjKpVK+Pj4yB51UVUO4mXrUPbGW5CXLl2K8ePHY9myZfh5x88VxuKQLvNZuPvG0mVAa1JSUqyeYI2zC0tttlAsmb6nqKgoqz0S0dHRAAyFi7F3x/QuHUPvTqNGjVBcqse7W87Ad8gMKNzccbfgMDIbvI7S8JuAHypcljFewkJXADMAjDN87QL5eqDSsU6Mx5Q+VwvHNP3cGzRoYPVzMq6/nzu+iIhqUrUXLFqtFufOnUNQUJDZ9b169cLu3btlyxISEtCtWzeL+ZX6wNbiwh62DmV/+fJlNPVvipdeegmrVq3Ciy++iKb+TZGWlibbburUqeI/tkI+5P22cutNVFaASbMHh8HsvD/G9ZUN92966crHx8dqj4TxEopUIA+HvBB4SlzcwDcQ4/5zFKuOpgOCgLwDK3F7aTyE3+5VKIKMWZ8OHTpYvczTsWNHqZ1t2rQx+5kYRUZGAjAUWFaOaSzAAJT93ln4nIy3Skt3FlnYzjRrQ0TkCFVesLzxxhtISkpCWloajh07hmeffRYajQaTJk0CIF7KmThxorT9lClTcO3aNcyePRvnzp3Df//7XyxduhRvvPFGVTetVrG1uLCVPeNs9OjZAzmaHNlr52hy0K1HN9kxIyMj4eruKka3TS/fuAGu7q4VZmC2pQCTZg+2MO+Pcb1Op7OaDSkpKZGOKRVBFnokjOs7dOggLgiD2FsSYfjaEvAIisTBBo/g+NU78Fa6oUPuAagPrweCBLNFkPEyVE5OjlgsFUO+XbG4nWm2629/+5v4j/J1uqFWeOuttwAYcjxWLjOZZsLGjx9vtXdp/PjxAEzyMxamBTAd14aIyBGqvGD5888/MWbMGLRp0wYjR46Eh4cHjh49Ks3DkpGRUTb6JsRJ5Hbs2IF9+/ahS5cu+OijjzB//vx6fUtzdQziZWuX/65du5CbnWs2G5KbnSvrDdu1axd0JTqz2+pKdLJtbS3AIiMj4ebhZnbeHzcPN6kI8vf3F0/aOshP2joAgkmRAkMvg/GkbdojYThpG3sZpDugyvUyNMwdhMCxnyFf54qH/Bth6/RH4H77grjynnxbiJEQ6a41qdfmaQA9Da/dC2I+BvI7ev7888+y8VaMM1X3FtsIRdkYNFI7LRRgpndyhYeHl13mMv2cDJe5jJM0tm7d2mrgmLc1E5GjVXnBsm7dOty8eRPFxcW4ceMGNm7cKN7RYbB8+XLs27dPtk/fvn1x6tQpaLVapKWlYcqUKVXdrFqlOvIEts6YbAxJW3rtn376SVp07Ngxq9seOXIEgH0F2K5du6zeeWQsgqSemKblXttQH0jrYZKLsXBJyJiLiYyMhG9TX5NeGzf4ZkxB08DXoHBzx+D2Adg8tTdaNWsElUpldUJFlUolb9fPAI4CyII4A7Vhuh7TYPm+ffvK2mmcqfpwWTt/+aVsWgRrl4RMST9LFhh/lqQJKvNdZYFj14KKE1QSETkCZ2t2QrYWF/awdcZkqWfCwmub9lwYeyYsbWscRt+eAszWIigyMhJNfJuYLRia+DaRnWClO8i6AhgPoB+ACZB6JIzrU1NTxd6lJoDLrsYIuPUJvBs/CQDIO7AKr/f0gbeneL1GrVZbvUtJrVYDMJkpWleunToACvkloaZNm5a100zPiWxUWiuXhEw/TymbYiGXY5pNWbt6LR7v87gscPx4n4oTVBIROQKTdE7IWFwk7kqETtBJA5i5Jrji8bjH7/uvXVtmTB41ahTe+7/3LA7lbtpzERwcbNOw77ICzMxAZ6YFmDQuiYVtjbcBp6am4k7unQoTL0IA7my+I5t4UaczjMe/FWaH5jeuNxZWHmMj0cz1bbi5NIVeKER26Re4d/hXXLk8EW0MwVeJhcLKeGu+NFuyhUHrTHtYpFzOTgBDUGHgOmMuR/o8LQwwZ/p5SvMKhUEsqow33hl+802zKbZOUElE5AgsWJyULcWFvYwnUWsiIyPRs2dPcY6bzSYrFEDPXvLh9qXcgwLybZWQ5R7sKcBkYVozRZBxKHt75r4ZPnw4/vfT/ywOzf/0009L76dhp8fh5zoVChcPlCiuI0v5MUrPiNkR00LAmP2wNJR9eHg4gLKeFkvtzMvLkxZJuRxjjsQoAMC9st4t2ec52PrnaU+xaBQREcFChYicDgsWJ1Udf+3Kgq+Gk3biLjH4+vOOn6Xt3D3cxYHaugHQQ7xweALwcPeQHS8yMhJ+zfzEO4p6o6x4OQn4NfOTtdfWAszV1VU8ThNUPGnfKuthsedELM2CbKGXo3nz5ijR6bH6XDGaDp0JALhbcBTZHl9AuHAP2AG4K91l70e6o8hCr4203shCO017WKTerTuo8HmW792y9fO8n9661NRUXL58mT0sRORUWLA4uar6a9cYfC1/CUUn6LBr8y7pEkpqaioOJB2QbwcA/sD+zftll1pSU1ORczsHCIQYDjUKAHJu5ci2taV3BzC5fDMG4givxssdbgD+VdbDYs+JuLIg8Y8/JeC7y43w61Vx0sC85NVQ71oHaYz9AKDkVgl2796NQYMGATCZc8lCr43xTh0pnGthbibTcG5kZCR8VD7iHUamn6cL4KPykb0newpaW4ub3NxcjB0/Vvw5MYiNi8Xa1WsrHdSOiKi6MXTrAFU5eq2tbA2+SjMWW9hOWm96zDGQh1nHyo8JAM+Neg4JexNkwdOEvQl4dtSzspeRBXlNx0K5Ki42BnkBk5CoSfDUXEhUuixjJhzsERiBfR498OvVXLhDh6yNH0KduhayCYEMg8UaA78AxEH0jL02wRDv/mkOKXRrnAFapVJZva3YtGBJTU2FRq0xOy2BRq0x+/NiSyFoLG5SU1OxY8cOpKammh25uKrH/iEiqkrsYalBjvwL1u4sg4XtzB5zLeQzAQfIj5mamoo9v+yp0LsjCAL2bN4j64mRTQBoJsNiLiSakJCAo0ePolevXlIPiClBEMzOwtzw6gD4jZsOrasHWjVriEnhRXjh81/FDI7JZTPja/fq1Us6ptRrcxrAJpMXE6Mr+OmnnzBo0KCy+YfK1xWG56ZD8yclJcmnJTB8TsZLV0lJSdLndD8/S9Z662ztgSMichQWLDXI1gxJdbD1Eop0qcPCJQzTQcmkDMudHPkJfrs8w2JLr41x21u3blkN8ppO7GfrSTsyMlIeZnVxRZP+L8FnsHhvb6irGlumDUZmeprVgkEK2sLQa6MAkAGzxY2xVyc4OFjcodz4KMbn5Wcqt/Y5mbqfnyVr2RR7QsxERI7AS0I1pDpGr7WXLZdQIiMjMWDgALMzBg8YOEB20pIyLGbGIsm5nVPxPVkYr8WUdAIvP/VUcLn1sP0SxqhRo6RB3lziVAiY9jF8uonFSt6hNfhuUjf4eLrbNV6MXq+3Okmj8VKN1AtlgWnPlqWRdo2fk3G9vT9LtkyLUB1j/xARVSUWLDXEGWbDtTXL8OOGHxE7KFa2LHZQLH7c8KNsma3vKTQ01Op8NsZpGwCTHh5jz4Uxx5EBWQ+PPSdtY97EI6A1glr+C54NOkGvvYusbR9BfXAN0q+JZ2l7JgCUhty38N6N6429UHADMBjiCLKDAbhVvJMqMjISAx4fAMUOhexzUuxUYMDjZcWivT9LthR2tg4sSETkKLwkVEPuZzwMoHpuMa3sziNb70Cx9T1JvRHG4KmRKwDBzMR6Vi7LGNlzCWP79u1o2HEA/GKnQ+HmgZLiP5F1+WOUXhXn7jHmTWQTAJpeDjMzAaA0Kq2F924sWKReqPJ3XTUEcjbnVMiGfPftd+Lkk5vLRsD1beaL/yz5j/Tcnp8le7Ip1TH2DxFRVWEPSw0xXmqp7K9nI1tnN65OERERiIuLs1jc2PpXuXSCbVbuAIZzvukJ1tbeA1t7Q0p0evzu0Q5Nn5gNhZsH7rr8igyf2SiN/lMcTVYoO5bdEwAaw8GmvUbl5vOxtzdk6vSpyLubJ+uNybubh1envSptY09viD2vb2sPHBGRI7CHpSYpAKFUkPUUCG7mb0t1ZEDXHt8s+KZCj0DjZo2xaOEi+YYKiBMDDgLQEEAhgAOoEEa1q9emkt6QnAItpq4+hStu4q3Qebq1UHuuARSGz7yl+MU4yJsUTN6fCN0gndRO18MVx3bJzs62OsBddna2Xe8HsNAbAkDX8P57QzjSLRHVFSxYakhqair2JBpu7W0O2fwv5W/trU23mL48+WXk5ueKPQINANwFcvfn4v9N/n/4Zbc4u7A0WV8QxIn1jMIBpJm5A8XKbc1GFXpDjAzD2Osbt8Cwrw/iproIXm4KXNvwEe51Omr2pG1655NUCOy0XghIc/RYGODOuN6eAe7sucxl62W76pqXioiopvGSUA2RnYxMB0RrKS427Zp3hoCuLYzjqwhDBXEo+S4AegNCnIA9iXuk4Ktssj4zsxCb/pW/YcMGec+F8bJMYwCCYT1MLovku4q9NiMADAJcC1zRc8xfMXv7n7ipLkJ404Z4M8oF9y4dtRj6NQ7yBpQVAkuXLsX48eOxbNkys5dFpPFVLAxwZzq+yjcLvkHjBo1l76dxg4q9UPaEfo0qu2wH2D7AHhGRM2PBUkPsuW3UWW4xrWxEXltHxZVlLs5BvBx03nzmIjU1VfzHGMiLm7Hl1sPkRLwbwBYAiS7oNHouMkIHQ1uqx4C2/tgy7RFc//3Xsh4e0yIoCIAgH8H28uXLaOrfFC+99BJWrVqFF198EU39m4p3GpnIyMiwmmG5ceOGtK0tuRSg3KB5Zo5ZIZxsI2ZTiKgu4CWhGmJP17yjJ6yzexTVazA7Y7EpKeuSaD3rEhkZWXbMhyH2WgDiidt0PeSXRU7/cRGrr3oiJeMeAGDGgIcw6/FIuLgoyob77wrgScguxyFNPtx/95juuJMnDzbn5OYguns0crNzpWVZWVliEeQK+SWpBgAEw3qUu7xn/IxCzOdSXFxcrA6aZ66HxR7MphBRrSbUEWq1WgAgqNVqRzfFotzcXCE2LlaAeFoSAAixcbFCbm7ufW+bk5Nj8zFtFRsXK7g2dBUwEgJmQcBICK4NXYXYuFjZdj///LP4mq6Qvb7xeUJCgt3HvHDhggAFBCgh4GnDtk8bnisgpKamVmjvkh92Cu3/vlEIe+snof17O4WdZ27K1u/YsUM8pme5Y3qKx9yxY0fZ+zFuZ9JO43am70d674Hl3nuA/L3v2LFDXB5ebjvDc+Nry9rpBQG9IaAXBDxieK6Qb0tEVFfYev5mD0sNsmeGXcHG2Y2r+m4iewK/6enpVmcsvmYYkM3uELGVu29MXb58GY+MmwmPR16Ei7sSJbk3kbXva7R5catsO6nnwsI4MMaei+3bt1sdA8Y4XgsAxMbGwk3phtI7pRWmJXBTuknbtW7d2uoQ/qaX96R2qlBh9mvce/AeFiKi2owZlkpUx8zKtgQlbRmd9H6H+7f2nuwJ/J49e9bqjMVnz561+5jStl7ltm0g37ZUp8djr30Fz35T4OKuxF39cWTcmYXs9DPoHtNdtmt6err4DwvjwFwrP9KthXa6urpKi1JTU1GqLTU7LUGptlT+2ZoWQcbtDEP4m5IyLGqUBYkHA9DggTIsRER1AQsWCxw5cJuthYi9dxNV9ZwyubmGTMdpAAsArAbwNYBk+XrZMbMBXASQY/6YFXokyg3N/9BDDyG3sBhP/ONneHQcAgBQu63D7QYfQehYKM1jtHu36f3TKCsETI9pKASMjOOxWHrv7du3lxbZ+tnb8z2S9bAYg8QJkAauYw8LEdVnLFgssHVivepg60nO3ruJpPdk8te7uTllbB2R19fX12px4evrKx2z/8D+wDbIC5v/wewov9Z6JC5lF2HY1wdxIU+Avvgesko+QZ56FXBJLxZBhs/I9M6f0NBQ8Zhx5Y5pGOnWOJeRNI+Rhbt0TMdrsfWzt+dWZVkPi5nCij0sRFSf8U82Mxw9cJuto5PaczeR9J4CIRu8TRdQ1msjbW/jiLxNmza1mvmQ5tsBoFAooHBTQHhKkHIcih2KCse0dqt0g3Z9MWPbNZQKCvh7AclLX0eJWzqQabKdYTLnXr16SYukQd4sFICyQsDG/IyxsNu7Y6+YN2oJ4KpY2PV/vL/0WdozP5HUw2IsrADZ58keFiKqz/g/oBn2jDh6Pyq7BdmeQsTWIdovX75cNjy+mfCn8T3ZMyKvxMLnZPp+pWOanIgFQbB8TNNiTXBBk4IX4fPU0ygVgH5tmuHfo7uiyUfXxZ/gcqFXhatCCr0CtheA0vfdwui15kbkraywq2xEXtNeMLsKKyKieoaXhMyoroHb7MnF2Do6qa2Dgkl/vVu41GL8611WrJmee1uKX0wzFwEBhu4MC5+Tcb09OQ7psoxhVFoXtQ/8cz6Ej+/TAIDnO/ti6aTuOHpgDwSdYDb0KugEWYYlLS1NdkxLI93Kvu9mRq8tP+/PnsQ9wFOQD3A3DLJRfqVLbHkK2Yi8CnXFS2zOMmAgEZEzYg+LGdU1/4o9tyDbcws0UPmgYNKdMhaKBuOdMtJJcy3MXmoxPWnKigvTyx2GQsCY+bBnAr7IyEg8+tijOHjwINwPhcPf/x24NQ6Evvge/K/uwqeffgcAOHbsmNX3c+TIEamX5dixY/KRbo0McxkZt73veX9UKBvgzvAbJeuNMfbEmFyKM3eJjfP+EBFZxoLFAlsvtdjqfnMxVT46qYWiwSgyMhJ+zfyQcyenwqUWv2Z+FUbkHTBwAPbs2yMvBNyAAQPLeg/sPRF7eHigYce+8I2dARcXT5RobyL7h08Q0a61tE1MTIzV92OaYZG2tTDSrem2VT0Lsr2X2Kr6546IqK5gwWKBvT0clanuXExlbO0NSU1NRc7tnAqFFQQgZ3NOhRPsjxt+rDC7ceyg2AonWFtPxOfOX8Cp0jA0jXsGAHDP5SSyVZ9D36MQezZfk14/NjZWLKy251SY1dmvmZ8swxIbGws3DzeUbi8VL4mZbOvm4SbbtqpnQbarJ8aO1yciqm9YsFSiqno47LksUh1s7Q2xt7Cy9QRry3Z3Cosxa8slqGLEYkXt9gPy3FYCCr3Z1z9+7Di6x3RHzuay+Yn8mvnh+LHjsuOmpqaitLi04rw/rkCprtRs75Yt33dpfiST1y8/P9L9ft857w8RkRxDtzVENmOxSfDT3IzF1eXHDT8idlCsbFnsoFj8uOFH6fn9Bj9tGb3X2nZ/3NRg2IKDOJ8H6IuLcDsjHnnu34vFioXXDw8PR3ZWNhISEvDBBx8gISEB2VnZCA8Plx17w4YN4j+GQx6QfarcejvZMguzM3zfiYjqAvaw1CBH5xNs6eVwRPBzW8pNvPljCopK9Aj1bQCXo2twM+GoWAjY8PqDBg2SXdYpzzhzMsIgzidk1LLcejuYzSTB/CzMjv6+ExHVCVU96+K8efOEbt26CY0aNRKaNWsmDB8+XDh//rzVffbu3SufydbwOHfunM2vWxtmazZKTU0VduzYYXbmYWdgz6zSRhcuXLD7PZXq9MK87X8IYW/9JIS99ZMw/j9HhTuF2vt6fWtsnVnZHtIszLMgYK7JY1bFWZiNnP37TkTkCLaevxWCYOO0wDYaMmQInn/+eXTv3h2lpaV45513cObMGfzxxx9o2LCh2X327duH/v3748KFC/Dx8ZGWN2vWTDbhnDUajQYqlQpqtVp2DLp/tgQ/c3NzMXb8WHnoNk4M3ZYfC8ZU3t1izFh7GgcuZgMApvRtjb/FtoGrS9not1UZPHX3dEcpDJMVms6sDDeUFJVUsndFqampaNOmTYUeFqQA2Cyu5+UeIqLK2Xr+rvKCpbzbt2/D398fSUlJ6NOnj9ltjAXLnTt30Lhx4/t6HRYsjjFk6BAk7k8UJ2o0FAKuu1zxeJ/HK4wtY3QuQ4PJK0/geu49eLm74vNnH8awzsHV1sbqKi6k9z643KUzK++diIjkbD1/V3voVq1WAyibCM+arl27IigoCAMHDsTevXutbqvVaqHRaGQPqlm2zipt6qffbmLkN4dxPfceQny9sGlq72otVgD7Z7W2la2jERMR0YOr1tCtIAiYPXs2Hn30UXTs2NHidkFBQViyZAmio6Oh1WqxcuVKDBw4EPv27bPYKxMfH48PPviguppONrDnFmidXsDnu87j26QrAIDHIpri6zFd0biBR7W3s7puKeeYKURENadaLwlNmzYN27dvx8GDB9GiRQu79h02bBgUCgW2bdtmdr1Wq4VWq5WeazQahISE8JJQDbL1Ukv5vMorfVrhb7Ft4OZac3fV8/INEZFzsvWSULX1sMyYMQPbtm3D/v377S5WAKBnz55YtWqVxfVKpRJKpfJBmkgPyJZboM9najB5xUmk596Fp7sLPn+2M56q5ktA5vDWYiKi2q3KCxZBEDBjxgxs3rwZ+/btqzCIl61Onz6NoKCgKm4dVTVrhcD23zLwxg8puFeiQ4smXlgyoRvaBzum94uXb4iIarcqL1imTZuGNWvWYOvWrfD29kZmpjjlr0qlgpeXFwBgzpw5uHHjBlasWAEA+Oqrr9CyZUt06NABxcXFWLVqFTZu3IiNGzdWdfOoipkrBFq1fgj/TLiARfvEjMujD4l5lSYNqz+vUhkOeU9EVDtVecGyaJE4j0q/fv1ky5ctW4YXXngBAJCRkYH09HRpXXFxMd544w3cuHEDXl5e6NChA7Zv346hQ4dWdfOomhgLAfXdEry4/Dj2p94GAEzu0wpv1nBehYiI6p5qH4elpnAcFse7kJmPyStP4FqOmFf57JmHMbxLc0c3i4iInJjDQ7dUv+w4I+ZV7haLeZVvJ0SjQ7DK0c0iIqI6ggULPRCdXsAXCRfwjSGv8shDfvh6TBR8nSCvQkREdQcLFrpv6rsleG39aey7IOZVXn4sHG8Nacu8ChERVTkWLHRfUm/l4+UVzKsQEVHNYMFCdtt5JgOvG/IqzRuLeZWOzZlXISKi6sOChWym0wv4cvcFLNwr5lV6t/bDgrHMqxARUfVjwUI2Ud8rwWvryvIqLz0ajjlxzKsQEVHNYMFClUq9lY/JK07gas5dKN3EvMqIrsyrEBFRzWHBQlb9/HsGXt+QgkLmVYiIyIFYsJBZer2AfyWm4us9lwAAvVr5YcHYrvBrxBmyiYio5rFgoQrU90owa30y9pzPAgD85ZFwvD2UeRUiInIcFiwkc/FWPiavPIm07EIo3VwQP7ITRka1cHSziIionmPBQpJdZzMxe30yCot1CFZ5YsnEbsyrEBGRU2DBQtDrBXyVmIr5hrxKz1a+WDg2inkVIiJyGixY6jlNUQlmrUvGL4a8youPtMTbQ9vBnXkVIiJyIixY6rFLWfmYvOIkrmQXwsPNBfFPd8Iz0cyrEBGR82HBUk8lnM3E7A0pKNCWIljliW8ndEOnFsyrEBGRc2LBUs/o9QK++uUi5v9yEQAQE+6LheOi0JR5FSIicmIsWOoRTVEJZq9PRuI5Ma/yQu+WeOcJ5lWIiMj5sWCpJy5lFWDyyhO4clvMq8x7uhOeZV6FiIhqCRYs9cDuP25h1vpkFGhLEaTyxOLx0egc0tjRzSIiIrIZC5Y6TK8XMH/PRXyVKOZVeoSL46s082ZehYiIahcWLHVUflEJZq1PQeK5WwCASb3C8O6T7ZlXISKiWokFSx10+XYBJq84gcuGvMonIzriuW4hjm4WERHRfWPBUsckGvIq+dpSBPp44tsJzKsQEVHtx4KljtDrBXy95xL+lZgKAOjRUhxfhXkVIiKqC1iw1AH5RSV4fUMKEv4Q8yoTe4Xh3Sfaw8ONeRUiIqobWLDUclduF+BlY17F1QUfj+iIUd2ZVyEiorqFBUst9su5W5i5riyvsnhCNLowr0JERHUQC5ZaSK8XsHDvJXyZmApBALq3bIKF46Lg7+3p6KYRERFVCxYstUyBthSvb0jGrrNiXmV8z1D835MdmFchIqI6rdrOct988w3Cw8Ph6emJ6OhoHDhwwOr2SUlJiI6OhqenJ1q1aoXFixdXV9NqrSu3CzBi4SHsOnsLHq4u+OyZTvh4RCcWK0REVOdVy5lu/fr1mDlzJt555x2cPn0ajz32GOLi4pCenm52+7S0NAwdOhSPPfYYTp8+jbfffht//etfsXHjxupoXq205/wtDF94CJeyChDgo8S6V3pidPdQRzeLiIioRigEQRCq+qAxMTGIiorCokWLpGXt2rXDiBEjEB8fX2H7t956C9u2bcO5c+ekZVOmTEFKSgqOHDli02tqNBqoVCqo1Wr4+Pg8+JtwEoIg5lW+2C3mVaLDmmDReOZViIiobrD1/F3lPSzFxcU4efIkBg8eLFs+ePBgHD582Ow+R44cqbB9bGwsTpw4gZKSErP7aLVaaDQa2aOuKdCW4tVVp/DPBLFYGRcTirUv92SxQkRE9U6VFyzZ2dnQ6XQICAiQLQ8ICEBmZqbZfTIzM81uX1paiuzsbLP7xMfHQ6VSSY+QkLo39sjSA2n4+WwmPFxd8OnITvjkaeZViIiofqq2s59CoZA9FwShwrLKtje33GjOnDlQq9XS4/r16w/YYufzar/WGNopEOte6YnnezCvQkRE9VeV39bctGlTuLq6VuhNycrKqtCLYhQYGGh2ezc3N/j5+ZndR6lUQqms2/PkeLi54Jtx0Y5uBhERkcNVeQ+Lh4cHoqOjsXv3btny3bt3o3fv3mb36dWrV4XtExIS0K1bN7i7u1d1E4mIiKiWqZZLQrNnz8Z//vMf/Pe//8W5c+cwa9YspKenY8qUKQDEyzkTJ06Utp8yZQquXbuG2bNn49y5c/jvf/+LpUuX4o033qiO5hEREVEtUy0j3Y4ePRo5OTn48MMPkZGRgY4dO2LHjh0ICwsDAGRkZMjGZAkPD8eOHTswa9YsLFy4EMHBwZg/fz6eeeaZ6mgeERER1TLVMg6LI9TVcViIiIjqMoeNw0JERERU1ViwEBERkdNjwUJEREROjwULEREROT0WLEREROT0WLAQERGR02PBQkRERE6PBQsRERE5PRYsRERE5PSqZWh+RzAO2KvRaBzcEiIiIrKV8bxd2cD7daZgyc/PBwCEhIQ4uCVERERkr/z8fKhUKovr68xcQnq9Hjdv3oS3tzcUCoWjm1NlNBoNQkJCcP36dc6R5KT4PXJu/P44P36PnF91fo8EQUB+fj6Cg4Ph4mI5qVJnelhcXFzQokULRzej2vj4+PAX2cnxe+Tc+P1xfvweOb/q+h5Z61kxYuiWiIiInB4LFiIiInJ6LFicnFKpxPvvvw+lUunoppAF/B45N35/nB+/R87PGb5HdSZ0S0RERHUXe1iIiIjI6bFgISIiIqfHgoWIiIicHgsWIiIicnosWJzYN998g/DwcHh6eiI6OhoHDhxwdJPIYO7cuVAoFLJHYGCgo5tVr+3fvx/Dhg1DcHAwFAoFtmzZIlsvCALmzp2L4OBgeHl5oV+/fjh79qxjGltPVfY9euGFFyr8XvXs2dMxja2H4uPj0b17d3h7e8Pf3x8jRozAhQsXZNs48veIBYuTWr9+PWbOnIl33nkHp0+fxmOPPYa4uDikp6c7umlk0KFDB2RkZEiPM2fOOLpJ9VphYSE6d+6MBQsWmF3/+eef48svv8SCBQtw/PhxBAYGYtCgQdI8ZFT9KvseAcCQIUNkv1c7duyowRbWb0lJSZg2bRqOHj2K3bt3o7S0FIMHD0ZhYaG0jUN/jwRySj169BCmTJkiW9a2bVvh73//u4NaRKbef/99oXPnzo5uBlkAQNi8ebP0XK/XC4GBgcKnn34qLSsqKhJUKpWwePFiB7SQyn+PBEEQJk2aJAwfPtwh7aGKsrKyBABCUlKSIAiO/z1iD4sTKi4uxsmTJzF48GDZ8sGDB+Pw4cMOahWVd/HiRQQHByM8PBzPP/88rly54ugmkQVpaWnIzMyU/U4plUr07duXv1NOZt++ffD390dkZCRefvllZGVlObpJ9ZZarQYA+Pr6AnD87xELFieUnZ0NnU6HgIAA2fKAgABkZmY6qFVkKiYmBitWrMCuXbvw3XffITMzE71790ZOTo6jm0ZmGH9v+Dvl3OLi4rB69Wrs2bMHX3zxBY4fP44BAwZAq9U6umn1jiAImD17Nh599FF07NgRgON/j+rMbM11kUKhkD0XBKHCMnKMuLg46d+dOnVCr1690Lp1a3z//feYPXu2A1tG1vB3yrmNHj1a+nfHjh3RrVs3hIWFYfv27Rg5cqQDW1b/TJ8+Hb/99hsOHjxYYZ2jfo/Yw+KEmjZtCldX1woVa1ZWVoXKlpxDw4YN0alTJ1y8eNHRTSEzjHdw8XeqdgkKCkJYWBh/r2rYjBkzsG3bNuzduxctWrSQljv694gFixPy8PBAdHQ0du/eLVu+e/du9O7d20GtImu0Wi3OnTuHoKAgRzeFzAgPD0dgYKDsd6q4uBhJSUn8nXJiOTk5uH79On+vaoggCJg+fTo2bdqEPXv2IDw8XLbe0b9HvCTkpGbPno0JEyagW7du6NWrF5YsWYL09HRMmTLF0U0jAG+88QaGDRuG0NBQZGVl4eOPP4ZGo8GkSZMc3bR6q6CgAJcuXZKep6WlITk5Gb6+vggNDcXMmTMxb948REREICIiAvPmzUODBg0wduxYB7a6frH2PfL19cXcuXPxzDPPICgoCFevXsXbb7+Npk2b4umnn3Zgq+uPadOmYc2aNdi6dSu8vb2lnhSVSgUvLy8oFArH/h5V+31IdN8WLlwohIWFCR4eHkJUVJR0axk53ujRo4WgoCDB3d1dCA4OFkaOHCmcPXvW0c2q1/bu3SsAqPCYNGmSIAjiLZnvv/++EBgYKCiVSqFPnz7CmTNnHNvoesba9+ju3bvC4MGDhWbNmgnu7u5CaGioMGnSJCE9Pd3Rza43zH1vAAjLli2TtnHk75HC0EgiIiIip8UMCxERETk9FixERETk9FiwEBERkdNjwUJEREROjwULEREROT0WLEREROT0WLAQERGR02PBQkRERE6PBQsRERE5PRYsRERE5PRYsBAREZHTY8FCRERETu//A2U542srL+JiAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "y_gk_train_predict = sample_predict_gk(X_gk_train)\n", "\n", "plt.plot([0, 20], [0, 20])\n", "\n", "plt.scatter(y_gk_train[:, 0], y_gk_train_predict[:, 0], color = 'orange', edgecolors = 'black', s = 20)\n", "plt.scatter(y_gk_train[:, 1], y_gk_train_predict[:, 1], color = 'green', edgecolors = 'black', s = 20)\n", "\n", "print(r2_score(y_gk_train[:, 0], y_gk_train_predict[:, 0]))\n", "print(r2_score(y_gk_train[:, 1], y_gk_train_predict[:, 1]))\n", "\n", "plt.show()\n", "\n", "y_gk_test_predict = sample_predict_gk(X_gk_test)\n", "\n", "plt.plot([0, 20], [0, 20])\n", "\n", "plt.scatter(y_gk_test[:, 0], y_gk_test_predict[:, 0], color = 'orange', edgecolors = 'black', s = 20)\n", "plt.scatter(y_gk_test[:, 1], y_gk_test_predict[:, 1], color = 'green', edgecolors = 'black', s = 20)\n", "\n", "print(r2_score(y_gk_test[:, 0], y_gk_test_predict[:, 0]))\n", "print(r2_score(y_gk_test[:, 1], y_gk_test_predict[:, 1]))\n", "\n", "\n" ] }, { "cell_type": "markdown", "id": "91869883", "metadata": {}, "source": [ "Use the following codes to save the scalers and the model weights" ] }, { "cell_type": "code", "execution_count": 26, "id": "cecf5392", "metadata": {}, "outputs": [], "source": [ "save_model_of = True\n", "save_model_gk = True\n", "\n", "if(save_model_of):\n", " pickle.dump(scaler, open('saves/scaler.pkl', 'wb'))\n", " modelb.save_weights('saves/modelb')\n", " \n", "if(save_model_gk):\n", " pickle.dump(scaler_gk, open('saves/scaler_gk.pkl', 'wb'))\n", " modelb_gk.save_weights('saves/modelb_gk')\n", " " ] }, { "cell_type": "markdown", "id": "32635a0e", "metadata": {}, "source": [ "Generalized prediction function for a player (playing for team against opp_team, at home or not)\n", "\n", "Estimate prediction mean and sigma (using a custom definitions).\n", "\n", "Generate a plot.\n" ] }, { "cell_type": "code", "execution_count": 27, "id": "ddf433f9", "metadata": {}, "outputs": [], "source": [ "def vote_predict_NNb(player, team, opp_team, home = 1, plot = 0, log = 0, oldseason = False):\n", " if(players['r'][player] == 'P'):\n", " ptest = player_match_data_ext_gk(player, team, opp_team, oldseason = oldseason)\n", "\n", " x_ptest = np.array(ptest)[:, 3:]\n", " r = np.array(ptest)[0, 0]\n", "\n", " # add home and role\n", " xadd = np.zeros((1, 1))\n", " xadd[0, 0] = home\n", "\n", " x_ptest = np.concatenate((x_ptest, xadd), axis = 1)\n", "\n", " x_scaled = scaler_gk.transform(x_ptest)\n", "\n", " dist = modelb_gk(x_scaled)\n", " \n", " clean_shoot_prob = dist[2].probs.numpy()[0]\n", " else:\n", " ptest = player_match_data_ext(player, team, opp_team, oldseason = oldseason)\n", "\n", " x_ptest = np.array(ptest)[:, 4:]\n", " r = np.array(ptest)[0, 0]\n", "\n", " # add home and role\n", " xadd = np.zeros((1, 4))\n", " xadd[0, 0] = home\n", " xadd[0, 1] = r == 'D'\n", " xadd[0, 2] = r == 'C'\n", " xadd[0, 3] = r == 'A'\n", "\n", " x_ptest = np.concatenate((x_ptest, xadd), axis = 1)\n", "\n", " x_scaled = scaler.transform(x_ptest)\n", "\n", " dist = modelb(x_scaled)\n", " \n", " \n", " x = np.arange(0, 40, 0.002)\n", "\n", " px1 = dist[0].prob(x);\n", " px2 = dist[1].prob(x);\n", "\n", " \n", " #sample1 = dist[0].sample(10000)\n", " #sample2 = dist[1].sample(10000)\n", " \n", " m1 = np.average(x, weights = px1)\n", " m2 = np.average(x, weights = px2)\n", " \n", " #m1 = np.mean(sample1)\n", " #m2 = np.mean(sample2)\n", " \n", " #s1 = np.std(sample1)\n", " #s2 = np.std(sample2)\n", " \n", " # not standard deviation, but expected range extimated by quantile \n", " \n", " if(players['r'][player] == 'P'):\n", " s1 = ( dist[0].quantile(0.9545) - m1 ) / 2\n", " s2 = -( dist[1].quantile(1 - 0.9) - m2 ) / 2\n", " else:\n", " s1 = ( dist[0].quantile(0.9545) - m1 ) / 2\n", " s2 = ( dist[1].quantile(0.9) - m2 ) / 2\n", " \n", "\n", " \n", " #y_pred_m = np.array([dist[0].loc, dist[1].loc]).flatten()\n", " y_pred_m = np.array([m1, m2]).flatten()\n", " #y_pred_s = np.array([dist[0].scale, dist[1].scale]).flatten()\n", " y_pred_s = np.array([s1, s2]).flatten()\n", " \n", " clean_sheet_text = ''\n", " if(players['r'][player] == 'P'):\n", " clean_sheet_text = ' (' + \"{:.1f}\".format(clean_shoot_prob*100) + '% cs)'\n", " \n", " if(plot):\n", " ax = plt.gca()\n", " \n", " plt.plot(x, px1, \n", " label = 'MV ' + \"{:.2f}\".format(y_pred_m[0]) + ' ± ' + \"{:.2f}\".format(2 * y_pred_s[0]),\n", " color = 'b')\n", " plt.plot(x, px2, \n", " label = 'FV ' + \"{:.2f}\".format(y_pred_m[1]) + ' + ' + \"{:.2f}\".format(2 * y_pred_s[1]) + clean_sheet_text,\n", " color = 'g')\n", " \n", " plt.fill_between(x, px1, color = 'lightblue')\n", " plt.fill_between(x, px2, color = 'lightgreen')\n", " \n", " plt.legend()\n", " \n", " plt.vlines(x = y_pred_m[0], color = 'b', ymin = 0, ymax = 3, linestyle = 'dashed')\n", " plt.vlines(x = y_pred_m[1], color = 'g', ymin = 0, ymax = 3, linestyle = 'dashed')\n", " \n", " plt.title(player + ' (' + team + ' vs ' + opp_team + ')')\n", " \n", " plt.xlim([0, 15])\n", " \n", " if(players['r'][player] == 'P'): \n", " plt.ylim([0, 2.5])\n", " else:\n", " plt.ylim([0, 1.5])\n", " \n", " plt.show()\n", " \n", " if(log):\n", " print(player + ': ' + \n", " 'MV ' + \"{:.2f}\".format(y_pred_m[0]) + ' ± ' + \"{:.2f}\".format(2 * y_pred_s[0]) +\n", " '; FV ' + \"{:.2f}\".format(y_pred_m[1]) + ' + ' + \"{:.2f}\".format(2 * y_pred_s[1]) + clean_sheet_text);\n", " return [y_pred_m, y_pred_s, dist]\n" ] }, { "cell_type": "markdown", "id": "98817aa0", "metadata": {}, "source": [ "Load Serie A calendar. " ] }, { "cell_type": "code", "execution_count": 28, "id": "d31bad38", "metadata": {}, "outputs": [], "source": [ "cal = np.array(pd.read_excel('fantacalcio/seriea_calendar.xlsx', header = None))\n", "\n", "cal_df = pd.DataFrame(columns = ['matchday', 'team1', 'team2'])\n", "\n", "matchday = 0\n", "\n", "for i in range(cal.shape[0]):\n", " if(cal[i, 0][0].isnumeric()):\n", " matchday = matchday + 1\n", " continue\n", " \n", " teams = cal[i, 0].split('-')\n", " \n", " frame = pd.DataFrame([[matchday, teams[0], teams[1]]], columns = cal_df.columns)\n", "\n", " cal_df = pd.concat([cal_df, frame], ignore_index = True)\n", " " ] }, { "cell_type": "code", "execution_count": 29, "id": "62b9f588", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " matchday team1 team2\n", "0 1 Bologna Milan\n", "1 1 Empoli Verona\n", "2 1 Frosinone Napoli\n", "3 1 Genoa Fiorentina\n", "4 1 Inter Monza\n", "5 1 Lecce Lazio\n", "6 1 Roma Salernitana\n", "7 1 Sassuolo Atalanta\n", "8 1 Torino Cagliari\n", "9 1 Udinese Juventus\n", "10 2 Cagliari Inter\n", "11 2 Fiorentina Lecce\n", "12 2 Frosinone Atalanta\n", "13 2 Verona Roma\n", "14 2 Juventus Bologna\n", "15 2 Lazio Genoa\n", "16 2 Milan Torino\n", "17 2 Monza Empoli\n", "18 2 Napoli Sassuolo\n", "19 2 Salernitana Udinese\n", "20 3 Atalanta Monza\n", "21 3 Bologna Cagliari\n", "22 3 Empoli Juventus\n", "23 3 Inter Fiorentina\n", "24 3 Lecce Salernitana\n", "25 3 Napoli Lazio\n", "26 3 Roma Milan\n", "27 3 Sassuolo Verona\n", "28 3 Torino Genoa\n", "29 3 Udinese Frosinone\n", "30 4 Cagliari Udinese\n", "31 4 Fiorentina Atalanta\n", "32 4 Frosinone Sassuolo\n", "33 4 Genoa Napoli\n", "34 4 Verona Bologna\n", "35 4 Inter Milan\n", "36 4 Juventus Lazio\n", "37 4 Monza Lecce\n", "38 4 Roma Empoli\n", "39 4 Salernitana Torino\n", "40 5 Atalanta Cagliari\n", "41 5 Bologna Napoli\n", "42 5 Empoli Inter\n", "43 5 Lazio Monza\n", "44 5 Lecce Genoa\n", "45 5 Milan Verona\n", "46 5 Salernitana Frosinone\n", "47 5 Sassuolo Juventus\n", "48 5 Torino Roma\n", "49 5 Udinese Fiorentina\n", "50 6 Cagliari Milan\n", "51 6 Empoli Salernitana\n", "52 6 Frosinone Fiorentina\n", "53 6 Genoa Roma\n", "54 6 Verona Atalanta\n", "55 6 Inter Sassuolo\n", "56 6 Juventus Lecce\n", "57 6 Lazio Torino\n", "58 6 Monza Bologna\n", "59 6 Napoli Udinese\n", "60 7 Atalanta Juventus\n", "61 7 Bologna Empoli\n", "62 7 Fiorentina Cagliari\n", "63 7 Lecce Napoli\n", "64 7 Milan Lazio\n", "65 7 Roma Frosinone\n", "66 7 Salernitana Inter\n", "67 7 Sassuolo Monza\n", "68 7 Torino Verona\n", "69 7 Udinese Genoa\n", "70 8 Cagliari Roma\n", "71 8 Empoli Udinese\n", "72 8 Frosinone Verona\n", "73 8 Genoa Milan\n", "74 8 Inter Bologna\n", "75 8 Juventus Torino\n", "76 8 Lazio Atalanta\n", "77 8 Lecce Sassuolo\n", "78 8 Monza Salernitana\n", "79 8 Napoli Fiorentina\n", "80 9 Atalanta Genoa\n", "81 9 Bologna Frosinone\n", "82 9 Fiorentina Empoli\n", "83 9 Verona Napoli\n", "84 9 Milan Juventus\n", "85 9 Roma Monza\n", "86 9 Salernitana Cagliari\n", "87 9 Sassuolo Lazio\n", "88 9 Torino Inter\n", "89 9 Udinese Lecce\n", "90 10 Cagliari Frosinone\n", "91 10 Empoli Atalanta\n", "92 10 Genoa Salernitana\n", "93 10 Inter Roma\n", "94 10 Juventus Verona\n", "95 10 Lazio Fiorentina\n", "96 10 Lecce Torino\n", "97 10 Monza Udinese\n", "98 10 Napoli Milan\n", "99 10 Sassuolo Bologna\n", "100 11 Atalanta Inter\n", "101 11 Bologna Lazio\n", "102 11 Cagliari Genoa\n", "103 11 Fiorentina Juventus\n", "104 11 Frosinone Empoli\n", "105 11 Verona Monza\n", "106 11 Milan Udinese\n", "107 11 Roma Lecce\n", "108 11 Salernitana Napoli\n", "109 11 Torino Sassuolo\n", "110 12 Fiorentina Bologna\n", "111 12 Genoa Verona\n", "112 12 Inter Frosinone\n", "113 12 Juventus Cagliari\n", "114 12 Lazio Roma\n", "115 12 Lecce Milan\n", "116 12 Monza Torino\n", "117 12 Napoli Empoli\n", "118 12 Sassuolo Salernitana\n", "119 12 Udinese Atalanta\n", "120 13 Atalanta Napoli\n", "121 13 Bologna Torino\n", "122 13 Cagliari Monza\n", "123 13 Empoli Sassuolo\n", "124 13 Frosinone Genoa\n", "125 13 Verona Lecce\n", "126 13 Juventus Inter\n", "127 13 Milan Fiorentina\n", "128 13 Roma Udinese\n", "129 13 Salernitana Lazio\n", "130 14 Fiorentina Salernitana\n", "131 14 Genoa Empoli\n", "132 14 Lazio Cagliari\n", "133 14 Lecce Bologna\n", "134 14 Milan Frosinone\n", "135 14 Monza Juventus\n", "136 14 Napoli Inter\n", "137 14 Sassuolo Roma\n", "138 14 Torino Atalanta\n", "139 14 Udinese Verona\n", "140 15 Atalanta Milan\n", "141 15 Cagliari Sassuolo\n", "142 15 Empoli Lecce\n", "143 15 Frosinone Torino\n", "144 15 Verona Lazio\n", "145 15 Inter Udinese\n", "146 15 Juventus Napoli\n", "147 15 Monza Genoa\n", "148 15 Roma Fiorentina\n", "149 15 Salernitana Bologna\n", "150 16 Atalanta Salernitana\n", "151 16 Bologna Roma\n", "152 16 Fiorentina Verona\n", "153 16 Genoa Juventus\n", "154 16 Lazio Inter\n", "155 16 Lecce Frosinone\n", "156 16 Milan Monza\n", "157 16 Napoli Cagliari\n", "158 16 Torino Empoli\n", "159 16 Udinese Sassuolo\n", "160 17 Bologna Atalanta\n", "161 17 Empoli Lazio\n", "162 17 Frosinone Juventus\n", "163 17 Verona Cagliari\n", "164 17 Inter Lecce\n", "165 17 Monza Fiorentina\n", "166 17 Roma Napoli\n", "167 17 Salernitana Milan\n", "168 17 Sassuolo Genoa\n", "169 17 Torino Udinese\n", "170 18 Atalanta Lecce\n", "171 18 Cagliari Empoli\n", "172 18 Fiorentina Torino\n", "173 18 Genoa Inter\n", "174 18 Verona Salernitana\n", "175 18 Juventus Roma\n", "176 18 Milan Sassuolo\n", "177 18 Udinese Bologna\n", "178 18 Lazio Frosinone\n", "179 18 Napoli Monza\n", "180 19 Bologna Genoa\n", "181 19 Empoli Milan\n", "182 19 Frosinone Monza\n", "183 19 Roma Atalanta\n", "184 19 Lecce Cagliari\n", "185 19 Sassuolo Fiorentina\n", "186 19 Inter Verona\n", "187 19 Salernitana Juventus\n", "188 19 Udinese Lazio\n", "189 19 Torino Napoli\n", "190 20 Atalanta Frosinone\n", "191 20 Cagliari Bologna\n", "192 20 Fiorentina Udinese\n", "193 20 Genoa Torino\n", "194 20 Verona Empoli\n", "195 20 Juventus Sassuolo\n", "196 20 Lazio Lecce\n", "197 20 Milan Roma\n", "198 20 Monza Inter\n", "199 20 Napoli Salernitana\n", "200 21 Bologna Fiorentina\n", "201 21 Empoli Monza\n", "202 21 Frosinone Cagliari\n", "203 21 Inter Atalanta\n", "204 21 Lecce Juventus\n", "205 21 Roma Verona\n", "206 21 Salernitana Genoa\n", "207 21 Sassuolo Napoli\n", "208 21 Torino Lazio\n", "209 21 Udinese Milan\n", "210 22 Atalanta Udinese\n", "211 22 Cagliari Torino\n", "212 22 Fiorentina Inter\n", "213 22 Genoa Lecce\n", "214 22 Verona Frosinone\n", "215 22 Juventus Empoli\n", "216 22 Lazio Napoli\n", "217 22 Milan Bologna\n", "218 22 Monza Sassuolo\n", "219 22 Salernitana Roma\n", "220 23 Atalanta Lazio\n", "221 23 Bologna Sassuolo\n", "222 23 Empoli Genoa\n", "223 23 Frosinone Milan\n", "224 23 Inter Juventus\n", "225 23 Lecce Fiorentina\n", "226 23 Napoli Verona\n", "227 23 Roma Cagliari\n", "228 23 Torino Salernitana\n", "229 23 Udinese Monza\n", "230 24 Bologna Lecce\n", "231 24 Cagliari Lazio\n", "232 24 Fiorentina Frosinone\n", "233 24 Genoa Atalanta\n", "234 24 Juventus Udinese\n", "235 24 Milan Napoli\n", "236 24 Monza Verona\n", "237 24 Roma Inter\n", "238 24 Salernitana Empoli\n", "239 24 Sassuolo Torino\n", "240 25 Atalanta Sassuolo\n", "241 25 Empoli Fiorentina\n", "242 25 Frosinone Roma\n", "243 25 Verona Juventus\n", "244 25 Inter Salernitana\n", "245 25 Lazio Bologna\n", "246 25 Monza Milan\n", "247 25 Napoli Genoa\n", "248 25 Torino Lecce\n", "249 25 Udinese Cagliari\n", "250 26 Bologna Verona\n", "251 26 Cagliari Napoli\n", "252 26 Fiorentina Lazio\n", "253 26 Genoa Udinese\n", "254 26 Juventus Frosinone\n", "255 26 Lecce Inter\n", "256 26 Milan Atalanta\n", "257 26 Roma Torino\n", "258 26 Salernitana Monza\n", "259 26 Sassuolo Empoli\n", "260 27 Atalanta Bologna\n", "261 27 Empoli Cagliari\n", "262 27 Frosinone Lecce\n", "263 27 Verona Sassuolo\n", "264 27 Inter Genoa\n", "265 27 Lazio Milan\n", "266 27 Monza Roma\n", "267 27 Napoli Juventus\n", "268 27 Torino Fiorentina\n", "269 27 Udinese Salernitana\n", "270 28 Bologna Inter\n", "271 28 Cagliari Salernitana\n", "272 28 Fiorentina Roma\n", "273 28 Genoa Monza\n", "274 28 Juventus Atalanta\n", "275 28 Lazio Udinese\n", "276 28 Lecce Verona\n", "277 28 Milan Empoli\n", "278 28 Napoli Torino\n", "279 28 Sassuolo Frosinone\n", "280 29 Atalanta Fiorentina\n", "281 29 Empoli Bologna\n", "282 29 Frosinone Lazio\n", "283 29 Verona Milan\n", "284 29 Inter Napoli\n", "285 29 Juventus Genoa\n", "286 29 Monza Cagliari\n", "287 29 Roma Sassuolo\n", "288 29 Salernitana Lecce\n", "289 29 Udinese Torino\n", "290 30 Bologna Salernitana\n", "291 30 Cagliari Verona\n", "292 30 Fiorentina Milan\n", "293 30 Genoa Frosinone\n", "294 30 Inter Empoli\n", "295 30 Lazio Juventus\n", "296 30 Lecce Roma\n", "297 30 Napoli Atalanta\n", "298 30 Sassuolo Udinese\n", "299 30 Torino Monza\n", "300 31 Cagliari Atalanta\n", "301 31 Empoli Torino\n", "302 31 Frosinone Bologna\n", "303 31 Verona Genoa\n", "304 31 Juventus Fiorentina\n", "305 31 Milan Lecce\n", "306 31 Monza Napoli\n", "307 31 Roma Lazio\n", "308 31 Salernitana Sassuolo\n", "309 31 Udinese Inter\n", "310 32 Atalanta Verona\n", "311 32 Bologna Monza\n", "312 32 Fiorentina Genoa\n", "313 32 Inter Cagliari\n", "314 32 Lazio Salernitana\n", "315 32 Lecce Empoli\n", "316 32 Napoli Frosinone\n", "317 32 Sassuolo Milan\n", "318 32 Torino Juventus\n", "319 32 Udinese Roma\n", "320 33 Cagliari Juventus\n", "321 33 Empoli Napoli\n", "322 33 Genoa Lazio\n", "323 33 Verona Udinese\n", "324 33 Milan Inter\n", "325 33 Monza Atalanta\n", "326 33 Roma Bologna\n", "327 33 Salernitana Fiorentina\n", "328 33 Sassuolo Lecce\n", "329 33 Torino Frosinone\n", "330 34 Atalanta Empoli\n", "331 34 Bologna Udinese\n", "332 34 Fiorentina Sassuolo\n", "333 34 Frosinone Salernitana\n", "334 34 Genoa Cagliari\n", "335 34 Inter Torino\n", "336 34 Juventus Milan\n", "337 34 Lazio Verona\n", "338 34 Lecce Monza\n", "339 34 Napoli Roma\n", "340 35 Cagliari Lecce\n", "341 35 Empoli Frosinone\n", "342 35 Verona Fiorentina\n", "343 35 Milan Genoa\n", "344 35 Monza Lazio\n", "345 35 Roma Juventus\n", "346 35 Salernitana Atalanta\n", "347 35 Sassuolo Inter\n", "348 35 Torino Bologna\n", "349 35 Udinese Napoli\n", "350 36 Atalanta Roma\n", "351 36 Fiorentina Monza\n", "352 36 Frosinone Inter\n", "353 36 Genoa Sassuolo\n", "354 36 Verona Torino\n", "355 36 Juventus Salernitana\n", "356 36 Lazio Empoli\n", "357 36 Lecce Udinese\n", "358 36 Milan Cagliari\n", "359 36 Napoli Bologna\n", "360 37 Bologna Juventus\n", "361 37 Fiorentina Napoli\n", "362 37 Inter Lazio\n", "363 37 Lecce Atalanta\n", "364 37 Monza Frosinone\n", "365 37 Roma Genoa\n", "366 37 Salernitana Verona\n", "367 37 Sassuolo Cagliari\n", "368 37 Torino Milan\n", "369 37 Udinese Empoli\n", "370 38 Atalanta Torino\n", "371 38 Cagliari Fiorentina\n", "372 38 Empoli Roma\n", "373 38 Frosinone Udinese\n", "374 38 Genoa Bologna\n", "375 38 Verona Inter\n", "376 38 Juventus Monza\n", "377 38 Lazio Sassuolo\n", "378 38 Milan Salernitana\n", "379 38 Napoli Lecce\n" ] } ], "source": [ "print(cal_df.to_string())" ] }, { "cell_type": "markdown", "id": "62872819", "metadata": {}, "source": [ "Function for generating a prediction for a player, taking match data from a given matchday, according to Serie A calendar." ] }, { "cell_type": "code", "execution_count": 30, "id": "c58ba41d", "metadata": {}, "outputs": [], "source": [ "def PlayerMatch(player, match = 0):\n", " team = players.loc[player]['team']\n", " \n", " if(match == 0):\n", " oppteam = 'Avg'\n", " home = 1\n", " else:\n", " for i in range (cal_df.shape[0]):\n", " if(cal_df['matchday'][i] == match):\n", " if(cal_df['team1'][i] == team):\n", " home = 1\n", " oppteam = cal_df['team2'][i]\n", " elif(cal_df['team2'][i] == team):\n", " home = 0\n", " oppteam = cal_df['team1'][i]\n", " \n", " return [player, team, oppteam, home]\n", "\n", "def predict_player(player, match = 0, plot = 0, log = 0, oldseason = False):\n", " [player, team, oppteam, home] = PlayerMatch(player, match)\n", " return vote_predict_NNb(player, team, oppteam, home = home, plot = plot, log = log, oldseason = oldseason)" ] }, { "cell_type": "markdown", "id": "e8b63a98", "metadata": {}, "source": [ "Load current matchday playing probabilities for Serie A players." ] }, { "cell_type": "code", "execution_count": 31, "id": "f79792b6", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
starterpercentage
player
Berisha1.090
Ebuehi1.090
Ismajli1.080
Luperto1.090
Bastoni S.1.085
.........
Ikone'0.030
Barak0.040
Sottil0.040
Kouame'0.055
Beltran L.0.060
\n", "

462 rows × 2 columns

\n", "
" ], "text/plain": [ " starter percentage\n", "player \n", "Berisha 1.0 90\n", "Ebuehi 1.0 90\n", "Ismajli 1.0 80\n", "Luperto 1.0 90\n", "Bastoni S. 1.0 85\n", "... ... ...\n", "Ikone' 0.0 30\n", "Barak 0.0 40\n", "Sottil 0.0 40\n", "Kouame' 0.0 55\n", "Beltran L. 0.0 60\n", "\n", "[462 rows x 2 columns]" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "probables = pd.read_excel('mid_outputs/match_probable_players.xlsx', index_col = 0) \n", "\n", "probables" ] }, { "cell_type": "markdown", "id": "e4751014", "metadata": {}, "source": [ "Generate prediction data for each Serie A player for the current matchday.\n", "\n", "Output to excel file, using a template made for data elaboration." ] }, { "cell_type": "code", "execution_count": 32, "id": "5e63c2b7", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Sommer: MV 6.20 ± 0.78; FV 5.60 + 1.26 (63.2% cs)\n", "Skorupski: MV 6.03 ± 0.91; FV 3.80 + 2.05 (1.6% cs)\n", "Di Gregorio: MV 6.14 ± 0.77; FV 5.73 + 1.28 (74.7% cs)\n", "Meret: MV 5.71 ± 0.99; FV 3.10 + 2.68 (0.8% cs)\n", "Provedel: MV 6.21 ± 0.87; FV 4.88 + 1.44 (16.7% cs)\n", "Terracciano: MV 6.19 ± 0.82; FV 4.74 + 1.52 (12.4% cs)\n", "Szczesny: MV 6.14 ± 0.81; FV 5.53 + 1.26 (59.4% cs)\n", "Falcone: MV 6.15 ± 0.86; FV 4.98 + 1.40 (14.9% cs)\n", "Milinkovic-Savic V.: MV 6.24 ± 0.90; FV 5.07 + 1.60 (25.0% cs)\n", "Maignan: MV 6.20 ± 0.93; FV 5.10 + 1.50 (22.0% cs)\n", "Montipo': MV 6.16 ± 0.86; FV 4.97 + 1.38 (27.6% cs)\n", "Rui Patricio: MV 6.16 ± 0.79; FV 5.03 + 1.35 (17.8% cs)\n", "Turati: MV 6.12 ± 0.90; FV 4.97 + 1.37 (22.7% cs)\n", "Consigli: MV 6.15 ± 0.91; FV 4.03 + 2.07 (2.8% cs)\n", "Musso: MV 6.13 ± 0.79; FV 5.56 + 1.26 (54.3% cs)\n", "Carnesecchi: MV 6.11 ± 0.85; FV 5.00 + 1.36 (21.2% cs)\n", "Radunovic: MV 5.35 ± 1.05; FV 2.98 + 2.92 (0.9% cs)\n", "Silvestri: MV 6.16 ± 0.80; FV 5.63 + 1.27 (59.2% cs)\n", "Martinez Jo.: MV 6.04 ± 0.91; FV 3.74 + 2.11 (1.9% cs)\n", "Ochoa: MV 6.20 ± 0.91; FV 3.71 + 2.22 (2.6% cs)\n", "Sportiello: MV 6.15 ± 0.90; FV 5.05 + 1.38 (31.9% cs)\n", "Berisha: MV 6.25 ± 0.91; FV 4.95 + 1.44 (12.6% cs)\n", "Caprile: MV 6.23 ± 0.90; FV 4.90 + 1.55 (14.1% cs)\n", "Perin: MV 6.16 ± 0.80; FV 5.40 + 1.26 (51.7% cs)\n", "Cragno: MV 6.06 ± 0.93; FV 3.49 + 2.46 (1.1% cs)\n", "Mirante: MV 6.20 ± 0.93; FV 5.10 + 1.50 (22.0% cs)\n", "Sepe: MV 6.21 ± 0.87; FV 4.88 + 1.44 (16.7% cs)\n", "Leali: MV 6.04 ± 0.91; FV 3.74 + 2.11 (1.9% cs)\n", "Lamanna: MV 6.14 ± 0.77; FV 5.72 + 1.28 (74.0% cs)\n", "Sommariva: MV 6.04 ± 0.91; FV 3.74 + 2.11 (1.9% cs)\n", "Pegolo: MV 6.14 ± 0.91; FV 3.90 + 2.13 (2.0% cs)\n", "Perilli: MV 6.16 ± 0.86; FV 4.97 + 1.38 (27.6% cs)\n", "Padelli: MV 6.16 ± 0.80; FV 5.63 + 1.27 (59.2% cs)\n", "Scuffet: MV 5.35 ± 1.05; FV 2.98 + 2.92 (0.9% cs)\n", "Gollini: MV 5.71 ± 0.99; FV 3.10 + 2.68 (0.8% cs)\n", "Perisan: MV 6.21 ± 0.88; FV 4.71 + 1.65 (10.9% cs)\n", "Audero: MV 6.20 ± 0.78; FV 5.60 + 1.26 (63.2% cs)\n", "Di Gennaro: MV 6.20 ± 0.78; FV 5.60 + 1.26 (63.2% cs)\n", "Pinsoglio: MV 6.14 ± 0.81; FV 5.53 + 1.26 (59.4% cs)\n", "Aresti: MV 5.35 ± 1.05; FV 2.98 + 2.92 (0.9% cs)\n", "Fiorillo: MV 6.20 ± 0.91; FV 3.71 + 2.22 (2.6% cs)\n", "Cerofolini: MV 6.12 ± 0.90; FV 4.98 + 1.37 (23.0% cs)\n", "Rossi F.: MV 6.13 ± 0.79; FV 5.56 + 1.26 (54.3% cs)\n", "Costil: MV 6.20 ± 0.91; FV 3.71 + 2.22 (2.6% cs)\n", "Ravaglia F.: MV 6.03 ± 0.91; FV 3.80 + 2.05 (1.6% cs)\n", "Frattali: MV 6.12 ± 0.90; FV 4.97 + 1.37 (22.7% cs)\n", "Contini: MV 5.71 ± 0.99; FV 3.10 + 2.68 (0.8% cs)\n", "Brancolini: MV 6.15 ± 0.86; FV 4.98 + 1.40 (14.9% cs)\n", "Berardi A.: MV 6.16 ± 0.86; FV 4.97 + 1.38 (27.6% cs)\n", "Gemello: MV 6.24 ± 0.90; FV 5.07 + 1.60 (25.0% cs)\n", "Boer: MV 6.16 ± 0.79; FV 5.03 + 1.35 (17.8% cs)\n", "Bagnolini: MV 6.03 ± 0.91; FV 3.80 + 2.05 (1.6% cs)\n", "Svilar: MV 6.16 ± 0.79; FV 5.03 + 1.35 (17.8% cs)\n", "Sorrentino A.: MV 6.14 ± 0.77; FV 5.75 + 1.28 (74.3% cs)\n", "Martinelli T.: MV 6.19 ± 0.82; FV 4.74 + 1.52 (12.4% cs)\n", "Popa: MV 6.24 ± 0.90; FV 5.07 + 1.60 (25.0% cs)\n", "Stubljar: MV 6.25 ± 0.91; FV 4.95 + 1.44 (12.6% cs)\n", "Gori: MV 6.14 ± 0.77; FV 5.72 + 1.28 (74.0% cs)\n", "Christensen O.: MV 6.12 ± 0.84; FV 4.16 + 1.81 (3.6% cs)\n", "Borbei: MV 6.15 ± 0.86; FV 4.98 + 1.40 (14.9% cs)\n", "Okoye: MV 6.16 ± 0.80; FV 5.63 + 1.27 (59.2% cs)\n", "Mandas: MV 6.21 ± 0.87; FV 4.88 + 1.44 (16.7% cs)\n", "Dimarco: MV 6.30 ± 0.69; FV 6.53 + 1.05\n", "Di Lorenzo: MV 6.22 ± 1.15; FV 6.58 + 1.76\n", "Hernandez T.: MV 6.13 ± 1.24; FV 6.66 + 2.20\n", "Dumfries: MV 6.26 ± 0.78; FV 6.56 + 1.27\n", "Carlos Augusto: MV 6.23 ± 0.78; FV 6.45 + 1.13\n", "Schuurs: MV 5.97 ± 0.86; FV 6.12 + 1.16\n", "Spinazzola: MV 6.26 ± 0.79; FV 6.61 + 1.42\n", "Danilo: MV 6.18 ± 0.90; FV 6.41 + 1.29\n", "Tomori: MV 6.16 ± 1.10; FV 6.40 + 1.54\n", "Bastoni: MV 6.26 ± 0.78; FV 6.33 + 0.81\n", "Buongiorno: MV 5.85 ± 0.94; FV 6.03 + 1.25\n", "Pavard: MV 6.15 ± 0.61; FV 6.24 + 0.69\n", "Biraghi: MV 5.81 ± 1.09; FV 6.12 + 1.60\n", "Zappacosta: MV 6.03 ± 0.97; FV 6.21 + 1.33\n", "Mancini: MV 6.10 ± 0.98; FV 6.41 + 1.47\n", "Darmian: MV 6.15 ± 0.64; FV 6.25 + 0.70\n", "Martinez Quarta: MV 5.86 ± 1.27; FV 5.99 + 1.61\n", "Posch: MV 5.61 ± 0.99; FV 5.66 + 1.12\n", "Romagnoli S.: MV 6.19 ± 0.86; FV 6.48 + 1.44\n", "De Vrij: MV 6.23 ± 0.69; FV 6.26 + 0.64\n", "Romagnoli: MV 5.88 ± 0.99; FV 5.86 + 1.11\n", "Bremer: MV 6.03 ± 0.85; FV 6.08 + 0.93\n", "Smalling: MV 6.19 ± 0.85; FV 6.48 + 1.31\n", "Rrahmani: MV 5.96 ± 1.12; FV 5.92 + 1.26\n", "Rodriguez R.: MV 5.90 ± 0.75; FV 5.89 + 0.76\n", "Dragusin: MV 5.90 ± 1.07; FV 6.06 + 1.38\n", "Vasquez: MV 6.11 ± 0.66; FV 6.14 + 0.65\n", "Scalvini: MV 6.07 ± 0.96; FV 6.23 + 1.26\n", "Holm: MV 6.04 ± 0.65; FV 6.14 + 0.75\n", "Kristensen: MV 6.05 ± 0.67; FV 6.30 + 1.01\n", "Calabria: MV 6.04 ± 1.01; FV 6.26 + 1.42\n", "Acerbi: MV 6.06 ± 0.55; FV 6.07 + 0.48\n", "Cuadrado: MV 6.04 ± 0.69; FV 6.11 + 0.72\n", "Marchizza: MV 6.09 ± 0.73; FV 6.24 + 0.86\n", "Bani: MV 5.89 ± 1.30; FV 6.13 + 1.84\n", "Kolasinac: MV 6.02 ± 0.73; FV 6.13 + 0.88\n", "Toljan: MV 5.88 ± 0.84; FV 5.94 + 1.02\n", "Bakker: MV 6.06 ± 0.65; FV 6.19 + 0.92\n", "Ruggeri: MV 6.15 ± 0.98; FV 6.43 + 1.50\n", "Ebuehi: MV 5.98 ± 0.73; FV 6.10 + 0.93\n", "Mazzocchi: MV 5.67 ± 0.74; FV 5.64 + 0.73\n", "Doig: MV 6.02 ± 1.00; FV 6.26 + 1.43\n", "Gendrey: MV 5.91 ± 0.74; FV 5.93 + 0.86\n", "Thiaw: MV 5.80 ± 1.39; FV 5.73 + 1.36\n", "Mario Rui: MV 5.90 ± 0.92; FV 5.91 + 1.04\n", "Milenkovic: MV 5.64 ± 1.27; FV 5.69 + 1.50\n", "Kyriakopoulos: MV 6.20 ± 0.93; FV 6.36 + 1.31\n", "Casale: MV 5.72 ± 0.93; FV 5.70 + 1.03\n", "Kamara H.: MV 6.00 ± 0.49; FV 6.03 + 0.45\n", "Terracciano F.: MV 5.96 ± 0.74; FV 6.00 + 0.80\n", "Baschirotto: MV 5.93 ± 0.94; FV 6.01 + 1.24\n", "Bijol: MV 6.07 ± 0.87; FV 6.23 + 1.17\n", "Lucumi': MV 5.53 ± 1.00; FV 5.51 + 1.06\n", "Kristiansen: MV 5.72 ± 0.88; FV 5.77 + 1.07\n", "Beukema: MV 5.61 ± 1.09; FV 5.60 + 1.24\n", "Natan: MV 6.00 ± 0.93; FV 6.03 + 1.08\n", "Faraoni: MV 5.88 ± 0.73; FV 5.97 + 0.91\n", "Toloi: MV 6.13 ± 0.94; FV 6.30 + 1.25\n", "Djimsiti: MV 6.03 ± 0.68; FV 6.05 + 0.66\n", "Lazzari: MV 5.93 ± 0.71; FV 5.93 + 0.73\n", "Lazaro: MV 5.97 ± 0.71; FV 6.01 + 0.78\n", "Gallo: MV 5.93 ± 0.82; FV 5.95 + 0.99\n", "Bellanova: MV 5.63 ± 1.17; FV 5.65 + 1.30\n", "Mari': MV 6.10 ± 0.83; FV 6.17 + 1.00\n", "Erlic: MV 5.88 ± 0.81; FV 5.86 + 0.82\n", "Bastoni S.: MV 6.02 ± 0.91; FV 6.36 + 1.53\n", "Perez N.: MV 5.95 ± 0.71; FV 5.96 + 0.75\n", "Pedersen: MV 5.92 ± 0.55; FV 5.91 + 0.55\n", "Izzo: MV 6.11 ± 0.86; FV 6.19 + 1.08\n", "D'ambrosio: MV 6.04 ± 0.57; FV 5.99 + 0.51\n", "Luperto: MV 5.84 ± 0.94; FV 5.77 + 1.02\n", "Florenzi: MV 6.15 ± 0.93; FV 6.31 + 1.22\n", "De Silvestri: MV 5.62 ± 0.91; FV 5.66 + 1.01\n", "Marusic: MV 5.69 ± 0.98; FV 5.63 + 1.06\n", "Magnani: MV 5.93 ± 0.90; FV 5.94 + 0.99\n", "N'dicka: MV 5.96 ± 0.71; FV 6.00 + 0.74\n", "Augello: MV 5.76 ± 0.83; FV 5.76 + 0.95\n", "Dawidowicz: MV 5.92 ± 0.75; FV 5.91 + 0.79\n", "Carboni A.: MV 6.06 ± 0.75; FV 6.09 + 0.84\n", "Caldirola: MV 6.10 ± 0.88; FV 6.22 + 1.20\n", "Llorente D.: MV 5.99 ± 0.71; FV 6.04 + 0.71\n", "Parisi: MV 5.83 ± 1.00; FV 6.00 + 1.37\n", "Cambiaso: MV 5.99 ± 0.80; FV 6.03 + 0.78\n", "Bradaric: MV 5.76 ± 0.84; FV 5.77 + 0.93\n", "Pongracic: MV 5.92 ± 0.91; FV 5.89 + 1.09\n", "Viti: MV 5.90 ± 0.78; FV 5.85 + 0.70\n", "Ostigard: MV 5.91 ± 1.28; FV 6.27 + 2.08\n", "Olivera: MV 5.96 ± 0.79; FV 6.05 + 0.97\n", "Ebosele: MV 5.98 ± 0.76; FV 6.02 + 0.77\n", "Dodo': MV 5.70 ± 1.25; FV 5.77 + 1.49\n", "Hien: MV 5.90 ± 0.82; FV 5.88 + 0.85\n", "Azzi: MV 5.86 ± 0.68; FV 5.86 + 0.72\n", "Kayode: MV 5.96 ± 1.11; FV 6.03 + 1.28\n", "Dorgu: MV 5.95 ± 0.53; FV 5.93 + 0.49\n", "Hysaj: MV 5.74 ± 0.81; FV 5.76 + 0.93\n", "Juan Jesus: MV 5.96 ± 0.87; FV 5.94 + 0.92\n", "Sabelli: MV 5.95 ± 0.59; FV 6.01 + 0.73\n", "Hateboer: MV 5.93 ± 0.86; FV 6.08 + 1.20\n", "Martin: MV 5.66 ± 1.10; FV 5.70 + 1.31\n", "Mina: MV 5.79 ± 0.85; FV 5.97 + 1.12\n", "Zappa: MV 5.60 ± 0.86; FV 5.51 + 0.89\n", "Calafiori: MV 5.51 ± 1.14; FV 5.51 + 1.26\n", "Monterisi: MV 6.21 ± 1.03; FV 6.66 + 1.85\n", "Kalulu: MV 5.83 ± 1.22; FV 5.87 + 1.38\n", "Vojvoda: MV 5.79 ± 0.80; FV 5.86 + 0.94\n", "De Winter: MV 5.77 ± 1.10; FV 5.76 + 1.26\n", "Gatti: MV 5.80 ± 1.07; FV 5.64 + 1.10\n", "Birindelli: MV 6.02 ± 0.70; FV 6.01 + 0.75\n", "Zemura: MV 5.94 ± 0.47; FV 5.93 + 0.40\n", "Hatzidiakos: MV 5.68 ± 1.10; FV 5.55 + 1.24\n", "Wieteska: MV 5.63 ± 1.22; FV 5.47 + 1.40\n", "Masina: MV 6.24 ± 0.93; FV 6.76 + 1.90\n", "Gyomber: MV 5.71 ± 0.86; FV 5.64 + 0.86\n", "Alex Sandro: MV 5.85 ± 1.01; FV 5.72 + 1.01\n", "Lirola: MV 6.05 ± 0.88; FV 6.25 + 1.16\n", "Palomino: MV 6.07 ± 0.82; FV 6.18 + 1.00\n", "Pellegrini Lu.: MV 5.68 ± 0.72; FV 5.59 + 0.69\n", "Djidji: MV 5.70 ± 0.87; FV 5.74 + 0.97\n", "Kabasele: MV 5.98 ± 0.59; FV 6.00 + 0.60\n", "Ranieri L.: MV 5.62 ± 1.14; FV 5.64 + 1.29\n", "Zortea: MV 6.05 ± 0.84; FV 6.33 + 1.28\n", "Pirola: MV 5.71 ± 0.79; FV 5.68 + 0.80\n", "Lovato: MV 5.65 ± 0.83; FV 5.57 + 0.83\n", "Ismajli: MV 5.91 ± 0.72; FV 5.89 + 0.63\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Vina: MV 5.69 ± 1.01; FV 5.70 + 1.15\n", "Obert: MV 5.66 ± 0.99; FV 5.55 + 1.08\n", "Tressoldi: MV 5.92 ± 0.89; FV 5.98 + 1.08\n", "Dossena: MV 5.51 ± 1.04; FV 5.39 + 1.15\n", "Oyono: MV 5.92 ± 0.56; FV 5.90 + 0.46\n", "Touba: MV 5.99 ± 0.82; FV 6.06 + 1.05\n", "Sazonov: MV 5.89 ± 0.72; FV 5.92 + 0.81\n", "Patric: MV 5.84 ± 0.68; FV 5.80 + 0.68\n", "Pezzella Giu.: MV 5.77 ± 0.68; FV 5.70 + 0.68\n", "Ferrari G.: MV 5.82 ± 0.85; FV 5.88 + 1.04\n", "Venuti: MV 5.89 ± 0.67; FV 5.87 + 0.74\n", "Karsdorp: MV 5.99 ± 0.54; FV 6.02 + 0.52\n", "Kjaer: MV 5.67 ± 1.21; FV 5.53 + 1.21\n", "Lykogiannis: MV 5.53 ± 0.72; FV 5.47 + 0.65\n", "Walukiewicz: MV 5.78 ± 0.89; FV 5.71 + 0.94\n", "Okoli: MV 5.89 ± 0.75; FV 5.87 + 0.69\n", "Amione: MV 5.90 ± 0.85; FV 5.95 + 1.05\n", "Di Pardo: MV 5.73 ± 0.92; FV 5.66 + 0.99\n", "Hefti: MV 5.60 ± 1.00; FV 5.51 + 0.98\n", "Ehizibue: MV 6.03 ± 0.88; FV 6.28 + 1.33\n", "Vogliacco: MV 5.81 ± 1.11; FV 5.83 + 1.30\n", "Rugani: MV 6.03 ± 0.53; FV 6.04 + 0.48\n", "Goldaniga: MV 5.65 ± 1.17; FV 5.51 + 1.34\n", "Pereira P.: MV 6.13 ± 0.83; FV 6.21 + 1.00\n", "Fazio: MV 5.82 ± 1.13; FV 5.90 + 1.40\n", "Bereszynski: MV 5.82 ± 0.80; FV 5.78 + 0.88\n", "Gunter: MV 5.72 ± 0.96; FV 5.67 + 0.99\n", "Soumaoro: MV 5.52 ± 1.24; FV 5.49 + 1.44\n", "Zanoli: MV 6.03 ± 1.09; FV 6.17 + 1.45\n", "Daniliuc: MV 5.77 ± 0.89; FV 5.75 + 0.99\n", "Soppy: MV 5.93 ± 0.66; FV 5.97 + 0.75\n", "Zima: MV 5.73 ± 1.01; FV 5.68 + 1.05\n", "Haps: MV 5.65 ± 1.15; FV 5.68 + 1.34\n", "Coppola D.: MV 5.82 ± 0.67; FV 5.78 + 0.68\n", "Cacace: MV 5.85 ± 0.65; FV 5.81 + 0.66\n", "Sambia: MV 5.88 ± 0.74; FV 5.87 + 0.76\n", "Guessand A.: MV 6.10 ± 0.83; FV 6.24 + 1.05\n", "Cabal: MV 5.99 ± 0.70; FV 6.02 + 0.74\n", "Missori: MV 5.93 ± 0.98; FV 5.98 + 1.18\n", "Bisseck: MV 6.11 ± 0.86; FV 6.22 + 0.99\n", "Ferreira J.: MV 5.90 ± 0.48; FV 5.87 + 0.46\n", "Corazza: MV 5.54 ± 0.82; FV 5.50 + 0.80\n", "Kristensen T.: MV 5.90 ± 0.56; FV 5.87 + 0.58\n", "Dermaku: MV 5.98 ± 0.83; FV 6.05 + 1.09\n", "Tonelli: MV 5.85 ± 0.72; FV 5.81 + 0.66\n", "De Sciglio: MV 5.90 ± 0.60; FV 5.88 + 0.50\n", "Capradossi: MV 5.82 ± 1.12; FV 5.74 + 1.23\n", "Bonifazi: MV 5.45 ± 1.04; FV 5.41 + 1.05\n", "Donati: MV 6.22 ± 1.18; FV 6.44 + 1.64\n", "Bettella: MV 6.11 ± 0.85; FV 6.24 + 1.11\n", "Kumbulla: MV 5.71 ± 1.47; FV 5.42 + 1.25\n", "Celik: MV 5.87 ± 0.74; FV 5.83 + 0.75\n", "Amey: MV 5.55 ± 1.05; FV 5.58 + 1.17\n", "Cittadini: MV 6.11 ± 0.85; FV 6.24 + 1.11\n", "Gila: MV 5.76 ± 0.89; FV 5.71 + 0.94\n", "Ebosse: MV 5.91 ± 0.52; FV 5.88 + 0.47\n", "Bronn: MV 5.70 ± 0.77; FV 5.62 + 0.74\n", "Guarino: MV 5.95 ± 0.79; FV 6.00 + 0.87\n", "Carboni F.: MV 6.11 ± 0.81; FV 6.18 + 0.97\n", "Smajlovic: MV 5.99 ± 0.85; FV 6.10 + 1.17\n", "Matturro: MV 5.67 ± 1.18; FV 5.63 + 1.34\n", "N'guessan: MV 5.79 ± 0.96; FV 5.88 + 1.17\n", "Mateus Lusuardi: MV 6.01 ± 0.76; FV 6.06 + 0.77\n", "Kalaj: MV 6.01 ± 0.76; FV 6.06 + 0.77\n", "Pierozzi: MV 5.76 ± 1.11; FV 5.91 + 1.42\n", "Huijsen: MV 6.01 ± 0.83; FV 6.08 + 0.91\n", "Bonfanti: MV 6.02 ± 0.87; FV 6.14 + 1.10\n", "Pellegrino: MV 5.96 ± 1.10; FV 6.17 + 1.47\n", "Comuzzo: MV 5.76 ± 1.11; FV 5.91 + 1.42\n", "Bartesaghi: MV 6.01 ± 0.98; FV 6.16 + 1.28\n", "Koopmeiners: MV 6.36 ± 1.10; FV 7.01 + 2.31\n", "Zielinski: MV 6.32 ± 1.02; FV 6.81 + 1.91\n", "Zaccagni: MV 6.21 ± 1.02; FV 6.65 + 1.83\n", "Luis Alberto: MV 6.14 ± 1.05; FV 6.61 + 1.87\n", "Pulisic: MV 6.34 ± 1.31; FV 7.37 + 3.21\n", "Bonaventura: MV 6.17 ± 1.11; FV 6.68 + 2.01\n", "Orsolini: MV 5.97 ± 1.46; FV 6.19 + 2.14\n", "Calhanoglu: MV 6.33 ± 0.79; FV 6.52 + 1.08\n", "Samardzic: MV 6.30 ± 0.95; FV 6.80 + 1.84\n", "Felipe Anderson: MV 5.91 ± 1.05; FV 6.25 + 1.66\n", "Politano: MV 6.40 ± 1.08; FV 6.99 + 2.18\n", "Gudmundsson A.: MV 6.29 ± 1.16; FV 6.94 + 2.31\n", "Candreva: MV 6.09 ± 1.16; FV 6.66 + 2.23\n", "Barella: MV 6.25 ± 0.81; FV 6.51 + 1.18\n", "Rabiot: MV 6.23 ± 1.04; FV 6.76 + 2.01\n", "Mkhitaryan: MV 6.36 ± 0.97; FV 6.86 + 1.86\n", "Ferguson: MV 5.91 ± 0.96; FV 6.15 + 1.36\n", "Frattesi: MV 6.20 ± 0.91; FV 6.59 + 1.53\n", "Loftus-Cheek: MV 6.23 ± 0.99; FV 6.63 + 1.73\n", "Colpani: MV 6.45 ± 1.08; FV 7.16 + 2.44\n", "Cristante: MV 6.22 ± 1.00; FV 6.67 + 1.70\n", "Strefezza: MV 6.08 ± 0.90; FV 6.42 + 1.55\n", "Chukwueze: MV 5.99 ± 0.84; FV 6.24 + 1.22\n", "Radonjic: MV 6.08 ± 1.15; FV 6.58 + 2.01\n", "Reijnders: MV 6.18 ± 0.97; FV 6.51 + 1.56\n", "Pasalic: MV 6.05 ± 1.05; FV 6.56 + 1.90\n", "Aouar: MV 6.20 ± 1.08; FV 6.76 + 2.07\n", "Bajrami: MV 6.04 ± 0.67; FV 6.21 + 0.94\n", "Vlasic: MV 5.92 ± 0.90; FV 6.18 + 1.31\n", "Ederson D.s.: MV 6.11 ± 0.92; FV 6.39 + 1.38\n", "Baldanzi: MV 6.08 ± 1.07; FV 6.58 + 1.97\n", "Kamada: MV 5.92 ± 0.94; FV 6.21 + 1.41\n", "Lindstrom: MV 6.03 ± 0.84; FV 6.35 + 1.32\n", "De Roon: MV 6.14 ± 0.95; FV 6.42 + 1.42\n", "Pellegrini Lo.: MV 6.06 ± 1.22; FV 6.70 + 2.32\n", "El Shaarawy: MV 6.20 ± 0.85; FV 6.54 + 1.45\n", "Mandragora: MV 5.87 ± 1.09; FV 6.15 + 1.56\n", "Malinovskyi: MV 5.95 ± 1.05; FV 6.32 + 1.70\n", "Kostic: MV 6.15 ± 0.80; FV 6.42 + 1.16\n", "De Ketelaere: MV 6.15 ± 1.03; FV 6.55 + 1.76\n", "Gomez: MV 6.11 ± 0.86; FV 6.24 + 1.12\n", "Pereyra: MV 6.23 ± 1.07; FV 6.82 + 2.12\n", "Renato Sanches: MV 6.17 ± 0.68; FV 6.42 + 0.99\n", "Pessina: MV 6.21 ± 0.89; FV 6.48 + 1.36\n", "Guendouzi: MV 5.84 ± 0.83; FV 5.92 + 1.03\n", "Zambo Anguissa: MV 6.01 ± 0.99; FV 6.19 + 1.30\n", "Duda: MV 6.27 ± 0.99; FV 6.72 + 1.81\n", "Thorsby: MV 5.89 ± 1.41; FV 6.28 + 2.17\n", "Mckennie: MV 6.19 ± 0.81; FV 6.30 + 0.91\n", "Lovric: MV 6.14 ± 0.89; FV 6.51 + 1.48\n", "Lazovic: MV 6.12 ± 0.91; FV 6.44 + 1.48\n", "Duncan: MV 6.06 ± 0.90; FV 6.36 + 1.40\n", "Gagliardini: MV 6.22 ± 0.89; FV 6.57 + 1.46\n", "Arthur Melo: MV 5.99 ± 0.82; FV 6.08 + 0.99\n", "Lobotka: MV 6.05 ± 0.89; FV 6.16 + 1.06\n", "Fagioli: MV 6.09 ± 0.87; FV 6.36 + 1.26\n", "Elmas: MV 5.95 ± 1.06; FV 6.36 + 1.63\n", "Messias: MV 5.94 ± 1.17; FV 6.40 + 1.96\n", "Matheus Henrique: MV 5.91 ± 1.01; FV 6.14 + 1.47\n", "Frendrup: MV 6.11 ± 0.85; FV 6.32 + 1.21\n", "Ciurria: MV 6.24 ± 0.99; FV 6.74 + 1.91\n", "Locatelli: MV 6.01 ± 0.70; FV 6.04 + 0.70\n", "Mazzitelli: MV 6.15 ± 1.05; FV 6.70 + 2.01\n", "Ikone': MV 5.96 ± 1.02; FV 6.30 + 1.57\n", "Ilic: MV 5.82 ± 0.73; FV 5.91 + 0.89\n", "Ricci S.: MV 5.90 ± 0.83; FV 6.00 + 1.05\n", "Ndoye: MV 5.69 ± 0.79; FV 5.71 + 0.89\n", "Saponara: MV 6.10 ± 0.83; FV 6.37 + 1.28\n", "Vecino: MV 5.82 ± 1.03; FV 5.94 + 1.35\n", "Pogba: MV 5.98 ± 0.75; FV 6.01 + 0.75\n", "Barak: MV 5.86 ± 0.93; FV 6.11 + 1.34\n", "Nandez: MV 5.93 ± 0.98; FV 6.02 + 1.23\n", "Rafia: MV 6.01 ± 0.67; FV 6.23 + 1.11\n", "Strootman: MV 5.90 ± 0.77; FV 5.99 + 0.99\n", "Klaassen: MV 6.13 ± 0.71; FV 6.40 + 1.09\n", "Weah: MV 5.98 ± 0.52; FV 6.01 + 0.48\n", "Marin: MV 5.99 ± 0.68; FV 6.09 + 0.80\n", "Musah: MV 6.19 ± 0.93; FV 6.37 + 1.25\n", "Boloca: MV 6.05 ± 0.90; FV 6.17 + 1.09\n", "Krunic: MV 6.01 ± 0.86; FV 6.07 + 1.04\n", "Cataldi: MV 5.92 ± 0.70; FV 5.90 + 0.70\n", "Paredes: MV 6.00 ± 0.90; FV 6.11 + 1.08\n", "Freuler: MV 5.70 ± 0.62; FV 5.64 + 0.67\n", "Kastanos: MV 5.91 ± 0.54; FV 5.92 + 0.56\n", "Bennacer: MV 6.16 ± 0.97; FV 6.48 + 1.55\n", "Castrovilli: MV 5.94 ± 1.09; FV 6.32 + 1.69\n", "Brescianini: MV 5.98 ± 0.48; FV 5.98 + 0.41\n", "Miranchuk: MV 6.18 ± 1.01; FV 6.60 + 1.74\n", "Reinier: MV 6.02 ± 0.79; FV 6.07 + 0.81\n", "Harroui: MV 6.17 ± 0.76; FV 6.45 + 1.09\n", "Aebischer: MV 5.69 ± 0.72; FV 5.68 + 0.81\n", "Oudin: MV 6.16 ± 1.04; FV 6.63 + 1.90\n", "Mboula: MV 5.97 ± 0.97; FV 6.09 + 1.23\n", "Ramadani: MV 5.98 ± 0.91; FV 6.10 + 1.22\n", "Jankto: MV 5.89 ± 0.75; FV 5.89 + 0.87\n", "Garritano: MV 6.14 ± 0.69; FV 6.18 + 0.64\n", "Sottil: MV 5.78 ± 0.74; FV 5.92 + 0.86\n", "Tameze: MV 5.89 ± 0.60; FV 5.87 + 0.59\n", "Pobega: MV 5.98 ± 0.56; FV 6.02 + 0.67\n", "Bove: MV 6.01 ± 0.77; FV 6.17 + 1.01\n", "Coulibaly L.: MV 5.88 ± 0.97; FV 6.04 + 1.36\n", "Blin: MV 5.92 ± 0.58; FV 5.90 + 0.60\n", "Moro N.: MV 5.70 ± 0.80; FV 5.75 + 0.95\n", "Iling Junior: MV 6.01 ± 0.84; FV 6.10 + 0.94\n", "Fabbian: MV 5.70 ± 0.81; FV 5.77 + 1.02\n", "Cajuste : MV 5.90 ± 1.05; FV 5.94 + 1.21\n", "Machin: MV 6.10 ± 0.86; FV 6.23 + 1.14\n", "Linetty: MV 5.84 ± 0.69; FV 5.84 + 0.74\n", "Walace: MV 5.90 ± 0.58; FV 5.88 + 0.57\n", "Castillejo: MV 5.89 ± 0.61; FV 6.01 + 0.75\n", "Gaetano: MV 6.19 ± 0.97; FV 6.64 + 1.78\n", "Rovella: MV 5.91 ± 0.88; FV 5.90 + 1.00\n", "Lopez M.: MV 5.79 ± 0.96; FV 5.83 + 1.13\n", "Gyasi: MV 5.69 ± 0.85; FV 5.75 + 1.02\n", "Zalewski: MV 5.99 ± 0.69; FV 6.09 + 0.82\n", "Hongla: MV 5.90 ± 0.62; FV 5.91 + 0.64\n", "Bohinen: MV 5.89 ± 0.50; FV 5.86 + 0.44\n", "Miretti: MV 5.93 ± 0.59; FV 5.94 + 0.57\n", "Thorstvedt: MV 5.94 ± 0.60; FV 5.99 + 0.68\n", "Fazzini: MV 5.90 ± 0.54; FV 5.88 + 0.52\n", "Barrenechea: MV 6.01 ± 0.59; FV 6.00 + 0.51\n", "Oristanio: MV 5.78 ± 0.62; FV 5.85 + 0.67\n", "El Azzouzi: MV 5.86 ± 0.64; FV 5.85 + 0.77\n", "Makoumbou: MV 5.88 ± 0.63; FV 5.91 + 0.72\n", "Folorunsho: MV 5.94 ± 0.99; FV 6.22 + 1.47\n", "Kaba: MV 5.89 ± 0.64; FV 5.80 + 0.74\n", "Martegani: MV 5.91 ± 0.62; FV 5.90 + 0.61\n", "Kutlu: MV 5.90 ± 0.96; FV 5.91 + 1.08\n", "Payero: MV 5.92 ± 0.56; FV 5.91 + 0.56\n", "Grassi: MV 5.91 ± 0.65; FV 5.88 + 0.59\n", "Mancosu: MV 5.85 ± 1.10; FV 5.81 + 1.23\n", "Badelj: MV 5.69 ± 1.05; FV 5.64 + 1.16\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Baez: MV 5.93 ± 0.55; FV 5.92 + 0.47\n", "Sensi: MV 6.10 ± 0.81; FV 6.33 + 1.10\n", "Maleh: MV 5.72 ± 0.97; FV 5.83 + 1.25\n", "Adli: MV 6.08 ± 1.00; FV 6.26 + 1.33\n", "Gonzalez J.: MV 5.88 ± 0.71; FV 5.94 + 0.92\n", "Serdar: MV 5.91 ± 0.66; FV 5.92 + 0.74\n", "Suslov: MV 6.02 ± 0.68; FV 6.07 + 0.78\n", "Viola: MV 5.89 ± 0.96; FV 5.86 + 1.10\n", "Deiola: MV 5.51 ± 0.88; FV 5.48 + 0.82\n", "Bourabia: MV 6.04 ± 0.68; FV 6.10 + 0.68\n", "Saelemaekers: MV 5.70 ± 0.97; FV 5.81 + 1.18\n", "Maldini: MV 6.11 ± 0.84; FV 6.42 + 1.36\n", "Maggiore: MV 5.89 ± 0.52; FV 5.86 + 0.50\n", "Racic: MV 6.03 ± 0.92; FV 6.15 + 1.15\n", "Kovalenko: MV 6.03 ± 0.68; FV 6.07 + 0.68\n", "Romero L.: MV 6.06 ± 0.98; FV 6.27 + 1.39\n", "Asllani: MV 5.94 ± 0.55; FV 5.92 + 0.46\n", "Vignato S.: MV 5.94 ± 0.64; FV 5.93 + 0.63\n", "Ranocchia F.: MV 5.97 ± 0.57; FV 6.06 + 0.63\n", "Sulemana I.: MV 5.69 ± 0.69; FV 5.62 + 0.71\n", "Infantino: MV 5.87 ± 0.98; FV 5.95 + 1.19\n", "Tchatchoua: MV 5.96 ± 0.92; FV 6.07 + 1.17\n", "Quina: MV 6.14 ± 0.73; FV 6.25 + 0.85\n", "Adopo: MV 5.99 ± 0.90; FV 6.10 + 1.10\n", "Basic: MV 5.94 ± 0.70; FV 5.98 + 0.84\n", "Tchaouna: MV 5.86 ± 0.64; FV 5.84 + 0.66\n", "Amatucci: MV 5.82 ± 1.09; FV 6.00 + 1.45\n", "Gelli: MV 6.00 ± 0.82; FV 6.02 + 0.77\n", "Legowski: MV 5.91 ± 0.86; FV 5.98 + 1.06\n", "Prati: MV 5.87 ± 1.01; FV 5.84 + 1.15\n", "Lulic K.: MV 6.02 ± 0.79; FV 6.07 + 0.81\n", "Rog: MV 5.86 ± 0.73; FV 5.88 + 0.83\n", "Nicolussi Caviglia: MV 5.94 ± 0.88; FV 6.01 + 1.09\n", "Jagiello: MV 5.82 ± 1.10; FV 5.87 + 1.31\n", "Obiang: MV 5.94 ± 0.53; FV 5.92 + 0.52\n", "Demme: MV 6.01 ± 0.63; FV 6.00 + 0.54\n", "Akpa Akpro: MV 6.10 ± 0.86; FV 6.23 + 1.14\n", "Urbanski: MV 5.63 ± 1.04; FV 5.70 + 1.23\n", "Volpato: MV 6.00 ± 0.85; FV 6.16 + 1.17\n", "Pafundi: MV 6.17 ± 0.76; FV 6.28 + 0.83\n", "Hrustic: MV 5.59 ± 0.69; FV 5.59 + 0.65\n", "Bondo: MV 6.10 ± 0.84; FV 6.19 + 1.03\n", "Zerbin: MV 5.99 ± 0.81; FV 6.11 + 0.99\n", "Carboni V.: MV 6.23 ± 0.92; FV 6.40 + 1.23\n", "Faticanti: MV 5.97 ± 0.86; FV 6.06 + 1.17\n", "Gineitis: MV 5.74 ± 0.89; FV 5.80 + 1.04\n", "Belardinelli: MV 5.99 ± 0.79; FV 6.06 + 0.92\n", "Zarraga: MV 5.98 ± 0.75; FV 6.03 + 0.85\n", "Camara E.: MV 6.05 ± 0.82; FV 6.18 + 1.03\n", "Lipani: MV 5.95 ± 0.87; FV 6.04 + 1.10\n", "Joselito: MV 5.96 ± 0.92; FV 6.07 + 1.17\n", "Pagano: MV 5.94 ± 0.71; FV 5.95 + 0.75\n", "Ibrahimovic A.: MV 6.05 ± 0.75; FV 6.10 + 0.75\n", "Martinez L.: MV 6.49 ± 1.39; FV 7.82 + 3.71\n", "Osimhen: MV 6.44 ± 1.49; FV 7.81 + 3.97\n", "Rafael Leao: MV 6.44 ± 1.27; FV 7.44 + 3.10\n", "Berardi: MV 6.48 ± 1.29; FV 7.57 + 3.26\n", "Lukaku: MV 6.37 ± 1.45; FV 7.58 + 3.64\n", "Vlahovic: MV 6.32 ± 1.39; FV 7.39 + 3.37\n", "Dybala: MV 6.39 ± 1.48; FV 7.56 + 3.64\n", "Giroud: MV 6.36 ± 1.34; FV 7.45 + 3.38\n", "Thuram: MV 6.49 ± 1.08; FV 7.22 + 2.52\n", "Immobile: MV 5.92 ± 1.17; FV 6.40 + 1.90\n", "Kvaratskhelia: MV 6.39 ± 1.29; FV 7.41 + 3.15\n", "Retegui: MV 6.07 ± 1.36; FV 6.83 + 2.69\n", "Scamacca: MV 6.31 ± 1.30; FV 7.36 + 3.23\n", "Lookman: MV 6.31 ± 1.27; FV 7.29 + 3.10\n", "Lauriente': MV 6.27 ± 1.15; FV 6.95 + 2.49\n", "Chiesa: MV 6.42 ± 1.19; FV 7.29 + 2.80\n", "Dia: MV 6.15 ± 1.33; FV 7.03 + 2.84\n", "Zapata D.: MV 5.88 ± 0.88; FV 6.15 + 1.29\n", "Gonzalez N.: MV 6.32 ± 1.09; FV 7.01 + 2.39\n", "Sanabria: MV 5.88 ± 1.00; FV 6.28 + 1.58\n", "Arnautovic: MV 6.23 ± 0.87; FV 6.62 + 1.54\n", "Nzola: MV 5.85 ± 0.98; FV 6.20 + 1.46\n", "Milik: MV 6.21 ± 0.84; FV 6.59 + 1.51\n", "Pinamonti: MV 5.99 ± 1.18; FV 6.53 + 2.06\n", "Okafor: MV 6.28 ± 1.10; FV 6.95 + 2.37\n", "Zirkzee: MV 6.03 ± 0.93; FV 6.36 + 1.48\n", "Krstovic: MV 6.32 ± 1.31; FV 7.38 + 3.27\n", "Ngonge: MV 5.94 ± 1.06; FV 6.37 + 1.73\n", "Almqvist: MV 6.23 ± 1.08; FV 6.78 + 2.09\n", "Cheddira: MV 6.24 ± 1.11; FV 6.89 + 2.26\n", "Simeone: MV 6.01 ± 1.18; FV 6.60 + 2.06\n", "Sanchez: MV 6.16 ± 0.77; FV 6.49 + 1.32\n", "Beltran L.: MV 5.86 ± 0.86; FV 6.11 + 1.24\n", "Belotti: MV 6.23 ± 1.00; FV 6.76 + 1.97\n", "Muriel: MV 6.18 ± 0.83; FV 6.46 + 1.38\n", "Luvumbo: MV 5.98 ± 0.67; FV 6.11 + 0.90\n", "Toure' E.: MV 6.01 ± 0.88; FV 6.18 + 1.16\n", "Lapadula: MV 6.06 ± 1.04; FV 6.61 + 2.01\n", "Caprari: MV 6.21 ± 0.97; FV 6.67 + 1.76\n", "Jovic: MV 6.05 ± 1.15; FV 6.57 + 2.09\n", "Abraham: MV 6.23 ± 1.22; FV 7.13 + 2.84\n", "Kouame': MV 5.93 ± 1.00; FV 6.30 + 1.57\n", "Caputo: MV 5.80 ± 0.95; FV 6.12 + 1.39\n", "Raspadori: MV 6.04 ± 1.11; FV 6.56 + 1.91\n", "Colombo: MV 6.20 ± 1.03; FV 6.76 + 2.06\n", "Soule': MV 6.36 ± 0.70; FV 6.59 + 1.13\n", "Petagna: MV 5.80 ± 0.96; FV 6.12 + 1.34\n", "Bonazzoli: MV 5.96 ± 0.96; FV 6.33 + 1.52\n", "Deulofeu: MV 6.44 ± 1.20; FV 7.38 + 2.94\n", "Pedro: MV 5.91 ± 0.87; FV 6.16 + 1.25\n", "Brekalo: MV 5.90 ± 0.89; FV 6.08 + 1.13\n", "Shomurodov: MV 5.65 ± 0.63; FV 5.68 + 0.60\n", "Azmoun: MV 6.02 ± 0.69; FV 6.24 + 1.07\n", "Castellanos: MV 5.84 ± 0.52; FV 5.86 + 0.52\n", "Karlsson: MV 5.72 ± 0.76; FV 5.90 + 0.99\n", "Thauvin: MV 5.92 ± 0.67; FV 6.11 + 0.95\n", "Cambiaghi: MV 5.99 ± 0.76; FV 6.17 + 1.03\n", "Henry: MV 5.93 ± 1.03; FV 6.31 + 1.66\n", "Jovane: MV 5.90 ± 0.88; FV 6.04 + 1.15\n", "Mota: MV 6.10 ± 0.96; FV 6.48 + 1.61\n", "Mulattieri: MV 6.05 ± 0.64; FV 6.29 + 1.13\n", "Lucca: MV 6.09 ± 1.18; FV 6.81 + 2.39\n", "Isaksen: MV 5.73 ± 0.88; FV 5.72 + 0.91\n", "Kean: MV 6.06 ± 0.95; FV 6.42 + 1.52\n", "Karamoh: MV 5.96 ± 0.72; FV 6.15 + 0.96\n", "Djuric: MV 5.99 ± 0.65; FV 6.13 + 0.80\n", "Davis K.: MV 6.06 ± 0.81; FV 6.26 + 1.09\n", "Banda: MV 6.08 ± 0.78; FV 6.34 + 1.29\n", "Brenner: MV 6.06 ± 0.81; FV 6.26 + 1.09\n", "Sansone: MV 6.19 ± 1.06; FV 6.80 + 2.18\n", "Success: MV 6.05 ± 0.88; FV 6.37 + 1.42\n", "Defrel: MV 5.88 ± 0.87; FV 6.18 + 1.35\n", "Piccoli: MV 5.93 ± 0.56; FV 5.95 + 0.60\n", "Caso: MV 6.16 ± 0.79; FV 6.49 + 1.33\n", "Pellegri: MV 5.72 ± 0.77; FV 5.72 + 0.77\n", "Cancellieri: MV 5.77 ± 0.93; FV 6.00 + 1.31\n", "Seck: MV 5.96 ± 0.73; FV 6.04 + 0.79\n", "Botheim: MV 5.63 ± 0.72; FV 5.65 + 0.72\n", "Cuni: MV 5.95 ± 0.39; FV 5.98 + 0.34\n", "Pavoletti: MV 5.78 ± 0.72; FV 5.96 + 0.95\n", "Ekuban: MV 5.82 ± 0.68; FV 5.90 + 0.72\n", "Alvarez A.: MV 5.92 ± 0.80; FV 6.18 + 1.20\n", "Kvernadze: MV 6.02 ± 0.71; FV 6.06 + 0.71\n", "Shpendi S.: MV 5.95 ± 0.44; FV 5.97 + 0.42\n", "Destro: MV 5.65 ± 0.82; FV 5.69 + 0.90\n", "Van Hooijdonk: MV 5.59 ± 0.81; FV 5.59 + 0.84\n", "Ceide: MV 5.82 ± 0.71; FV 5.86 + 0.72\n", "Maric: MV 6.01 ± 0.48; FV 6.04 + 0.44\n", "Ikwuemesi: MV 5.86 ± 0.62; FV 5.86 + 0.63\n", "Yildiz: MV 6.02 ± 0.83; FV 6.13 + 0.96\n", "Cruz: MV 5.94 ± 0.80; FV 6.04 + 1.00\n", "Puscas: MV 5.96 ± 0.94; FV 6.02 + 1.14\n", "Ake' M.: MV 6.02 ± 0.65; FV 6.08 + 0.69\n", "Braaf: MV 5.66 ± 0.74; FV 5.77 + 0.82\n", "Kallon: MV 5.87 ± 0.89; FV 6.11 + 1.22\n", "Kaio Jorge: MV 5.97 ± 0.48; FV 5.99 + 0.42\n", "Vivaldo: MV 6.06 ± 0.81; FV 6.26 + 1.09\n", "Bidaoui: MV 6.02 ± 0.77; FV 6.11 + 0.85\n", "Burnete: MV 5.94 ± 0.83; FV 6.03 + 1.12\n", "Corfitzen: MV 5.97 ± 0.81; FV 6.08 + 1.09\n", "Stewart: MV 5.92 ± 0.79; FV 6.01 + 0.98\n" ] }, { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
roleteamoppteamhomestartervote%MVMV stdFVFV stdMV locMV scaleMV skewnessMV tailweightFV locFV scaleFV skewnessFV tailweightClean Sheet %
player
MussoPAtalantaLazio01.00706.1305880.3954585.5601760.6300956.1176710.4733470.0202541.1891046.2198710.682691-0.6514371.18065354.287124
Rossi F.PAtalantaLazio00.0016.1305880.3954585.5601760.6300956.1176710.4733470.0202541.1891046.2198710.682691-0.6514371.18065354.287124
CarnesecchiPAtalantaLazio00.0056.1118420.4239854.9999800.6798326.0612380.4921380.0762151.1846125.2436091.016311-0.1763091.05163821.158487
RuggeriDAtalantaLazio00.55556.1460590.4919736.4310800.7483396.1302730.5719700.0203030.8888665.9145061.0290780.3603061.2999180.000000
ZorteaDAtalantaLazio00.00306.0494770.4216636.3259810.6395716.0054040.4847180.0669810.9522445.8741210.8717030.3712441.2999160.000000
............................................................
HenryAVeronaFrosinone00.00405.9307220.5166546.3148500.8303925.6767890.5293710.3473780.8437305.4852090.9003120.6174251.2999300.000000
DjuricAVeronaFrosinone00.45555.9906640.3243706.1256850.4014145.9818590.3835080.0169781.0545385.9033920.5891550.2749421.2999010.000000
KallonAVeronaFrosinone00.0005.8661260.4453146.1061370.6105795.6680990.4581000.3139460.9194955.5325060.7032590.5571211.2999250.000000
CruzAVeronaFrosinone00.55555.9382630.3977216.0352460.4978885.9887130.482585-0.0771010.9994155.8595640.7843960.1654251.2998900.000000
BraafAVeronaFrosinone00.0005.6579230.3719755.7713350.4098645.5196600.3901900.2587091.0010915.4806100.5577430.3731641.2999090.000000
\n", "

542 rows × 19 columns

\n", "
" ], "text/plain": [ " role team oppteam home starter vote% MV MV std \\\n", "player \n", "Musso P Atalanta Lazio 0 1.00 70 6.130588 0.395458 \n", "Rossi F. P Atalanta Lazio 0 0.00 1 6.130588 0.395458 \n", "Carnesecchi P Atalanta Lazio 0 0.00 5 6.111842 0.423985 \n", "Ruggeri D Atalanta Lazio 0 0.55 55 6.146059 0.491973 \n", "Zortea D Atalanta Lazio 0 0.00 30 6.049477 0.421663 \n", "... ... ... ... ... ... ... ... ... \n", "Henry A Verona Frosinone 0 0.00 40 5.930722 0.516654 \n", "Djuric A Verona Frosinone 0 0.45 55 5.990664 0.324370 \n", "Kallon A Verona Frosinone 0 0.00 0 5.866126 0.445314 \n", "Cruz A Verona Frosinone 0 0.55 55 5.938263 0.397721 \n", "Braaf A Verona Frosinone 0 0.00 0 5.657923 0.371975 \n", "\n", " FV FV std MV loc MV scale MV skewness \\\n", "player \n", "Musso 5.560176 0.630095 6.117671 0.473347 0.020254 \n", "Rossi F. 5.560176 0.630095 6.117671 0.473347 0.020254 \n", "Carnesecchi 4.999980 0.679832 6.061238 0.492138 0.076215 \n", "Ruggeri 6.431080 0.748339 6.130273 0.571970 0.020303 \n", "Zortea 6.325981 0.639571 6.005404 0.484718 0.066981 \n", "... ... ... ... ... ... \n", "Henry 6.314850 0.830392 5.676789 0.529371 0.347378 \n", "Djuric 6.125685 0.401414 5.981859 0.383508 0.016978 \n", "Kallon 6.106137 0.610579 5.668099 0.458100 0.313946 \n", "Cruz 6.035246 0.497888 5.988713 0.482585 -0.077101 \n", "Braaf 5.771335 0.409864 5.519660 0.390190 0.258709 \n", "\n", " MV tailweight FV loc FV scale FV skewness FV tailweight \\\n", "player \n", "Musso 1.189104 6.219871 0.682691 -0.651437 1.180653 \n", "Rossi F. 1.189104 6.219871 0.682691 -0.651437 1.180653 \n", "Carnesecchi 1.184612 5.243609 1.016311 -0.176309 1.051638 \n", "Ruggeri 0.888866 5.914506 1.029078 0.360306 1.299918 \n", "Zortea 0.952244 5.874121 0.871703 0.371244 1.299916 \n", "... ... ... ... ... ... \n", "Henry 0.843730 5.485209 0.900312 0.617425 1.299930 \n", "Djuric 1.054538 5.903392 0.589155 0.274942 1.299901 \n", "Kallon 0.919495 5.532506 0.703259 0.557121 1.299925 \n", "Cruz 0.999415 5.859564 0.784396 0.165425 1.299890 \n", "Braaf 1.001091 5.480610 0.557743 0.373164 1.299909 \n", "\n", " Clean Sheet % \n", "player \n", "Musso 54.287124 \n", "Rossi F. 54.287124 \n", "Carnesecchi 21.158487 \n", "Ruggeri 0.000000 \n", "Zortea 0.000000 \n", "... ... \n", "Henry 0.000000 \n", "Djuric 0.000000 \n", "Kallon 0.000000 \n", "Cruz 0.000000 \n", "Braaf 0.000000 \n", "\n", "[542 rows x 19 columns]" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "matchday_out = 8\n", "\n", "output = pd.DataFrame(columns = ['player', 'role', 'team', 'oppteam', 'home', 'starter', 'vote%', 'MV', 'MV std', 'FV', 'FV std', 'MV loc', 'MV scale', 'MV skewness', 'MV tailweight', 'FV loc', 'FV scale', 'FV skewness', 'FV tailweight', 'Clean Sheet %'])\n", "\n", "for i in range(players.shape[0]):\n", " try:\n", " [player, team, oppteam, home] = PlayerMatch(players.index[i], matchday_out)\n", " \n", " [mean, std, dist] = vote_predict_NNb(player, team, oppteam, home = home, log = 1)\n", " \n", " role = players['r'][player] \n", " \n", " starter = 0\n", " voteperc = 0\n", " \n", " cs = 0\n", " if(role == 'P'):\n", " cs = dist[2].probs.numpy()[0] * 100\n", " \n", " if(player in probables.index):\n", " starter = probables['starter'][player]\n", " voteperc = probables['percentage'][player]\n", " \n", " row = [player, role, team, oppteam, home, \n", " starter, voteperc, \n", " mean[0], std[0], \n", " mean[1], std[1], \n", " dist[0].loc.numpy()[0], dist[0].scale.numpy()[0], \n", " dist[0].skewness.numpy()[0], dist[0].tailweight.numpy()[0], \n", " dist[1].loc.numpy()[0], dist[1].scale.numpy()[0], \n", " dist[1].skewness.numpy()[0], dist[1].tailweight.numpy()[0],\n", " cs]\n", " \n", " row_df = pd.DataFrame(data = [row], columns = output.columns)\n", " \n", " output = pd.concat([output, row_df])\n", " \n", " except:\n", " print(players.index[i] + ' no data')\n", "\n", "output = output.set_index('player')\n", "\n", "output = output.sort_values(['team', 'role', 'FV'], ascending = [True, False, False])\n", "#output.to_excel('outputs/pred_matchday_' + str(matchday_out) + '.xlsx')\n", "\n", "output" ] }, { "cell_type": "code", "execution_count": 33, "id": "6befd611", "metadata": {}, "outputs": [], "source": [ "import shutil\n", "\n", "template_file = 'outputs/pred_matchday_base.xlsx'\n", "dest_file = 'outputs/pred_matchday_' + str(matchday_out) + '.xlsx'\n", "\n", "shutil.copyfile(template_file, dest_file)\n", "\n", "with pd.ExcelWriter(dest_file, mode = 'a', engine=\"openpyxl\", if_sheet_exists = 'replace') as writer: \n", " output.to_excel(writer, sheet_name='data')" ] }, { "cell_type": "markdown", "id": "eed7a7ac", "metadata": {}, "source": [ "Predict average Serie A performance for each player" ] }, { "cell_type": "code", "execution_count": 34, "id": "2b637a15", "metadata": {}, "outputs": [], "source": [ "gk_starters = ['Maignan', 'Ochoa', 'Silvestri', 'Consigli', 'Provedel', 'Di Gregorio', 'Meret', 'Milinkovic-Savic V.',\n", " 'Terracciano', 'Sommer', 'Szczesny', 'Skorupski', 'Berisha', 'Musso', 'Radunovic', 'Rui Patricio',\n", " 'Montipo\\'', 'Falcone', 'Martinez Jo.', 'Turati']" ] }, { "cell_type": "code", "execution_count": null, "id": "60d73507", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Sommer (6.17, 0.41); (5.61, 0.63)\n", "Skorupski (6.12, 0.40); (5.49, 0.63)\n", "Di Gregorio (6.15, 0.50); (4.97, 0.69)\n", "Meret (6.00, 0.44); (4.56, 0.83)\n", "Provedel (6.20, 0.45); (4.52, 0.86)\n", "Terracciano (6.18, 0.43); (5.13, 0.66)\n", "Szczesny (6.16, 0.40); (5.66, 0.63)\n", "Falcone (6.19, 0.45); (5.02, 0.71)\n", "Milinkovic-Savic V. (6.18, 0.41); (5.09, 0.66)\n", "Maignan (6.19, 0.47); (4.98, 0.69)\n", "Montipo' (6.17, 0.39); (5.19, 0.64)\n", "Rui Patricio (5.84, 0.46); (3.85, 1.05)\n", "Turati (6.20, 0.48); (4.97, 0.72)\n", "Consigli (6.04, 0.46); (4.02, 1.02)\n", "Musso (6.18, 0.38); (5.69, 0.64)\n", "Carnesecchi (6.14, 0.43); (5.01, 0.68)\n", "Radunovic (6.04, 0.44); (4.57, 0.88)\n", "Silvestri (5.65, 0.47); (3.63, 1.23)\n", "Martinez Jo. (6.08, 0.44); (4.57, 0.89)\n", "Ochoa (6.14, 0.46); (3.61, 1.16)\n", "Sportiello (6.16, 0.43); (5.06, 0.67)\n", "Berisha (6.06, 0.46); (3.55, 1.19)\n", "Caprile (6.11, 0.45); (3.83, 1.08)\n", "Perin (6.16, 0.41); (5.15, 0.65)\n", "Cragno (6.03, 0.46); (3.63, 1.14)\n", "Mirante (6.19, 0.47); (4.98, 0.69)\n", "Sepe (6.20, 0.45); (4.52, 0.86)\n", "Leali (6.08, 0.44); (4.57, 0.89)\n", "Lamanna (6.14, 0.50); (4.97, 0.69)\n", "Sommariva (6.08, 0.44); (4.57, 0.89)\n", "Pegolo (6.05, 0.46); (3.94, 1.04)\n", "Perilli (6.17, 0.39); (5.19, 0.64)\n", "Padelli (5.65, 0.47); (3.63, 1.23)\n", "Scuffet (6.04, 0.44); (4.57, 0.88)\n", "Gollini (6.00, 0.44); (4.56, 0.83)\n", "Perisan (6.06, 0.46); (3.65, 1.15)\n", "Audero (6.17, 0.41); (5.61, 0.63)\n", "Di Gennaro (6.17, 0.41); (5.61, 0.63)\n", "Pinsoglio (6.16, 0.40); (5.66, 0.63)\n", "Aresti (6.04, 0.44); (4.57, 0.88)\n", "Fiorillo (6.14, 0.46); (3.61, 1.16)\n", "Cerofolini (6.18, 0.47); (4.69, 0.78)\n", "Rossi F. (6.18, 0.38); (5.69, 0.64)\n", "Costil (6.14, 0.46); (3.61, 1.16)\n", "Ravaglia F. (6.12, 0.40); (5.49, 0.63)\n", "Frattali (6.20, 0.48); (4.97, 0.72)\n", "Contini (6.00, 0.44); (4.56, 0.83)\n", "Brancolini (6.19, 0.45); (5.02, 0.71)\n", "Berardi A. (6.17, 0.39); (5.19, 0.64)\n", "Gemello (6.18, 0.41); (5.09, 0.66)\n", "Boer (5.84, 0.46); (3.85, 1.05)\n", "Bagnolini (6.12, 0.40); (5.49, 0.63)\n", "Svilar (5.84, 0.46); (3.85, 1.05)\n", "Sorrentino A. (6.16, 0.48); (4.97, 0.69)\n", "Martinelli T. (6.18, 0.43); (5.13, 0.66)\n", "Popa (6.18, 0.41); (5.09, 0.66)\n", "Stubljar (6.06, 0.46); (3.55, 1.19)\n", "Gori (6.14, 0.50); (4.97, 0.69)\n", "Christensen O. (6.10, 0.45); (4.22, 0.92)\n", "Borbei (6.19, 0.45); (5.02, 0.71)\n", "Okoye (5.65, 0.47); (3.63, 1.23)\n", "Mandas (6.20, 0.45); (4.52, 0.86)\n", "Dimarco (6.34, 0.42); (6.68, 0.73)\n", "Di Lorenzo (6.30, 0.51); (6.76, 0.91)\n", "Hernandez T. (6.20, 0.54); (6.60, 0.91)\n", "Dumfries (6.28, 0.47); (6.72, 0.84)\n", "Carlos Augusto (6.25, 0.47); (6.60, 0.77)\n", "Schuurs (6.09, 0.43); (6.27, 0.59)\n", "Spinazzola (6.17, 0.37); (6.47, 0.64)\n", "Danilo (6.16, 0.49); (6.41, 0.72)\n", "Tomori (6.21, 0.49); (6.43, 0.72)\n", "Bastoni (6.26, 0.44); (6.39, 0.53)\n", "Buongiorno (6.04, 0.45); (6.25, 0.67)\n", "Pavard (6.14, 0.35); (6.27, 0.44)\n", "Biraghi (6.14, 0.48); (6.58, 0.89)\n", "Zappacosta (5.98, 0.49); (6.11, 0.63)\n", "Mancini (5.93, 0.51); (6.14, 0.71)\n", "Darmian (6.15, 0.37); (6.28, 0.45)\n", "Martinez Quarta (6.16, 0.56); (6.45, 0.85)\n", "Posch (6.01, 0.44); (6.16, 0.61)\n", "Romagnoli S. (6.06, 0.50); (6.24, 0.73)\n", "De Vrij (6.23, 0.39); (6.29, 0.41)\n", "Romagnoli (5.96, 0.48); (5.98, 0.55)\n", "Bremer (6.05, 0.49); (6.17, 0.62)\n", "Smalling (6.08, 0.42); (6.31, 0.63)\n", "Rrahmani (6.13, 0.51); (6.30, 0.67)\n", "Rodriguez R. (5.97, 0.36); (5.97, 0.33)\n", "Dragusin (6.03, 0.46); (6.20, 0.62)\n", "Vasquez (6.17, 0.31); (6.19, 0.30)\n", "Scalvini (6.04, 0.50); (6.17, 0.62)\n", "Holm (6.03, 0.33); (6.10, 0.36)\n", "Kristensen (6.00, 0.33); (6.18, 0.48)\n", "Calabria (6.04, 0.41); (6.17, 0.54)\n", "Acerbi (6.06, 0.31); (6.09, 0.31)\n", "Cuadrado (6.05, 0.40); (6.15, 0.48)\n", "Marchizza (6.00, 0.41); (6.12, 0.54)\n", "Bani (6.06, 0.56); (6.27, 0.77)\n", "Kolasinac (6.02, 0.37); (6.12, 0.44)\n", "Toljan (5.85, 0.44); (5.90, 0.52)\n", "Bakker (6.03, 0.32); (6.14, 0.43)\n", "Ruggeri (6.11, 0.50); (6.33, 0.70)\n", "Ebuehi (5.82, 0.41); (5.92, 0.52)\n", "Mazzocchi (5.66, 0.39); (5.65, 0.40)\n", "Doig (5.96, 0.50); (6.16, 0.70)\n", "Gendrey (5.90, 0.39); (5.91, 0.43)\n", "Thiaw (5.88, 0.61); (5.82, 0.62)\n", "Mario Rui (5.97, 0.35); (6.00, 0.39)\n", "Milenkovic (5.84, 0.54); (5.88, 0.63)\n", "Kyriakopoulos (6.00, 0.46); (6.09, 0.58)\n", "Casale (5.86, 0.43); (5.85, 0.49)\n", "Kamara H. (5.92, 0.26); (5.93, 0.26)\n", "Terracciano F. (5.95, 0.38); (5.97, 0.39)\n", "Baschirotto (5.84, 0.54); (5.93, 0.66)\n", "Bijol (5.78, 0.53); (5.85, 0.65)\n", "Lucumi' (5.94, 0.39); (5.93, 0.42)\n", "Kristiansen (6.11, 0.42); (6.24, 0.54)\n", "Beukema (6.04, 0.46); (6.06, 0.49)\n", "Natan (6.15, 0.41); (6.26, 0.49)\n", "Faraoni (5.81, 0.37); (5.87, 0.44)\n", "Toloi (6.09, 0.47); (6.23, 0.59)\n", "Djimsiti (6.03, 0.35); (6.05, 0.34)\n", "Lazzari (5.99, 0.35); (6.00, 0.36)\n", "Lazaro (6.05, 0.37); (6.10, 0.39)\n", "Gallo (5.86, 0.44); (5.84, 0.48)\n", "Bellanova (5.71, 0.55); (5.76, 0.64)\n", "Mari' (5.89, 0.45); (5.89, 0.50)\n", "Erlic (5.86, 0.43); (5.82, 0.44)\n", "Bastoni S. (5.81, 0.48); (6.00, 0.67)\n", "Perez N. (5.72, 0.49); (5.71, 0.54)\n", "Pedersen (5.92, 0.28); (5.92, 0.29)\n", "Izzo (5.93, 0.45); (5.96, 0.52)\n", "D'ambrosio (5.96, 0.29); (5.93, 0.26)\n", "Luperto (5.61, 0.59); (5.56, 0.67)\n", "Florenzi (6.15, 0.39); (6.24, 0.44)\n", "De Silvestri (5.99, 0.40); (6.11, 0.52)\n", "Marusic (5.81, 0.45); (5.76, 0.50)\n", "Magnani (5.96, 0.44); (5.97, 0.48)\n", "N'dicka (5.87, 0.41); (5.89, 0.46)\n", "Augello (5.86, 0.38); (5.94, 0.46)\n", "Dawidowicz (5.94, 0.37); (5.93, 0.38)\n", "Carboni A. (5.95, 0.40); (5.98, 0.45)\n", "Caldirola (5.88, 0.48); (5.92, 0.59)\n", "Llorente D. (5.87, 0.38); (5.87, 0.39)\n", "Parisi (6.04, 0.44); (6.17, 0.61)\n", "Cambiaso (5.96, 0.42); (6.02, 0.47)\n", "Bradaric (5.72, 0.45); (5.76, 0.52)\n", "Pongracic (5.84, 0.52); (5.79, 0.55)\n", "Viti (5.89, 0.43); (5.81, 0.42)\n", "Ostigard (6.13, 0.54); (6.56, 0.92)\n", "Olivera (6.03, 0.34); (6.12, 0.40)\n", "Ebosele (5.80, 0.42); (5.78, 0.45)\n", "Dodo' (5.89, 0.54); (6.01, 0.70)\n", "Hien (5.93, 0.40); (5.91, 0.40)\n", "Azzi (5.90, 0.27); (5.90, 0.26)\n", "Kayode (6.17, 0.47); (6.28, 0.58)\n", "Dorgu (5.92, 0.26); (5.90, 0.22)\n", "Hysaj (5.89, 0.37); (5.92, 0.44)\n", "Juan Jesus (6.09, 0.35); (6.13, 0.35)\n", "Sabelli (6.00, 0.27); (6.06, 0.33)\n", "Hateboer (5.87, 0.43); (5.96, 0.57)\n", "Martin (5.87, 0.45); (5.93, 0.55)\n", "Mina (6.08, 0.38); (6.34, 0.63)\n", "Zappa (5.72, 0.36); (5.66, 0.34)\n", "Calafiori (5.90, 0.44); (5.90, 0.50)\n", "Monterisi (6.06, 0.56); (6.45, 0.97)\n", "Kalulu (5.92, 0.48); (5.95, 0.56)\n", "Vojvoda (5.93, 0.37); (6.00, 0.45)\n", "De Winter (5.92, 0.47); (5.92, 0.53)\n", "Gatti (5.77, 0.59); (5.70, 0.60)\n", "Birindelli (5.90, 0.36); (5.88, 0.38)\n", "Zemura (5.87, 0.26); (5.84, 0.23)\n", "Hatzidiakos (5.79, 0.44); (5.75, 0.47)\n", "Wieteska (5.71, 0.57); (5.67, 0.67)\n", "Masina (5.86, 0.47); (6.20, 0.71)\n", "Gyomber (5.64, 0.50); (5.57, 0.52)\n", "Alex Sandro (5.83, 0.53); (5.71, 0.56)\n", "Lirola (5.93, 0.49); (6.07, 0.65)\n", "Palomino (6.06, 0.41); (6.16, 0.49)\n", "Pellegrini Lu. (5.80, 0.33); (5.74, 0.32)\n", "Djidji (5.91, 0.38); (5.95, 0.45)\n", "Kabasele (5.88, 0.34); (5.87, 0.39)\n", "Ranieri L. (5.79, 0.49); (5.86, 0.61)\n", "Zortea (6.03, 0.42); (6.26, 0.61)\n", "Pirola (5.67, 0.43); (5.65, 0.46)\n", "Lovato (5.59, 0.47); (5.52, 0.49)\n", "Ismajli (5.76, 0.46); (5.69, 0.48)\n", "Vina (5.65, 0.53); (5.66, 0.60)\n", "Obert (5.76, 0.38); (5.71, 0.37)\n", "Tressoldi (5.91, 0.45); (5.97, 0.55)\n", "Dossena (5.67, 0.43); (5.60, 0.42)\n", "Oyono (5.88, 0.33); (5.85, 0.32)\n", "Touba (5.94, 0.43); (5.98, 0.50)\n", "Sazonov (5.95, 0.35); (5.97, 0.38)\n", "Patric (5.89, 0.32); (5.86, 0.31)\n", "Pezzella Giu. (5.57, 0.43); (5.48, 0.42)\n", "Ferrari G. (5.79, 0.44); (5.85, 0.53)\n", "Venuti (5.88, 0.36); (5.88, 0.38)\n", "Karsdorp (5.94, 0.28); (5.97, 0.29)\n", "Kjaer (5.78, 0.48); (5.66, 0.50)\n", "Lykogiannis (5.89, 0.26); (5.88, 0.27)\n", "Walukiewicz (5.59, 0.56); (5.54, 0.62)\n", "Okoli (5.78, 0.44); (5.71, 0.47)\n", "Amione (5.87, 0.42); (5.91, 0.52)\n", "Di Pardo (5.85, 0.34); (5.83, 0.33)\n", "Hefti (5.82, 0.39); (5.78, 0.37)\n", "Ehizibue (5.75, 0.46); (5.80, 0.57)\n", "Vogliacco (5.94, 0.47); (5.97, 0.53)\n", "Rugani (6.01, 0.28); (6.02, 0.28)\n", "Goldaniga (5.72, 0.51); (5.65, 0.54)\n", "Pereira P. (5.98, 0.43); (6.03, 0.49)\n", "Fazio (5.77, 0.61); (5.88, 0.77)\n", "Bereszynski (5.62, 0.50); (5.58, 0.54)\n", "Gunter (5.75, 0.49); (5.69, 0.51)\n", "Soumaoro (5.90, 0.49); (5.85, 0.54)\n", "Zanoli (6.11, 0.47); (6.38, 0.72)\n", "Daniliuc (5.72, 0.49); (5.71, 0.56)\n", "Soppy (5.97, 0.34); (6.00, 0.38)\n", "Zima (5.90, 0.45); (5.88, 0.48)\n", "Haps (5.90, 0.46); (5.94, 0.55)\n", "Coppola D. (5.82, 0.34); (5.77, 0.33)\n", "Cacace (5.59, 0.45); (5.52, 0.46)\n", "Sambia (5.84, 0.41); (5.84, 0.43)\n", "Guessand A. (5.90, 0.47); (6.00, 0.59)\n", "Cabal (5.98, 0.35); (6.00, 0.35)\n", "Missori (5.92, 0.51); (6.00, 0.62)\n", "Bisseck (6.10, 0.47); (6.29, 0.63)\n", "Ferreira J. (5.76, 0.30); (5.70, 0.30)\n", "Corazza (5.91, 0.33); (5.91, 0.35)\n", "Kristensen T. (5.63, 0.41); (5.58, 0.41)\n", "Dermaku (5.92, 0.43); (5.98, 0.52)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Tonelli (5.62, 0.47); (5.53, 0.49)\n", "De Sciglio (5.88, 0.31); (5.86, 0.29)\n", "Capradossi (5.89, 0.46); (5.93, 0.54)\n", "Bonifazi (5.85, 0.38); (5.80, 0.38)\n", "Donati (5.95, 0.66); (6.01, 0.76)\n", "Bettella (5.95, 0.44); (6.03, 0.54)\n", "Kumbulla (5.52, 0.73); (5.28, 0.68)\n", "Celik (5.73, 0.45); (5.67, 0.47)\n", "Amey (5.94, 0.43); (6.00, 0.54)\n", "Cittadini (5.95, 0.44); (6.03, 0.54)\n", "Gila (5.88, 0.40); (5.86, 0.43)\n", "Ebosse (5.82, 0.31); (5.77, 0.32)\n", "Bronn (5.64, 0.42); (5.55, 0.42)\n", "Guarino (5.81, 0.49); (5.88, 0.60)\n", "Carboni F. (5.97, 0.42); (6.02, 0.49)\n", "Smajlovic (5.93, 0.45); (6.00, 0.55)\n", "Matturro (5.88, 0.49); (5.86, 0.53)\n", "N'guessan (5.95, 0.43); (6.03, 0.52)\n", "Mateus Lusuardi (5.93, 0.45); (6.00, 0.54)\n", "Kalaj (5.93, 0.45); (6.00, 0.54)\n", "Pierozzi (5.98, 0.46); (6.08, 0.57)\n", "Huijsen (5.97, 0.43); (6.06, 0.53)\n", "Bonfanti (6.00, 0.43); (6.11, 0.54)\n", "Pellegrino (5.98, 0.44); (6.07, 0.54)\n", "Comuzzo (5.98, 0.46); (6.08, 0.57)\n", "Bartesaghi (6.03, 0.41); (6.10, 0.48)\n", "Koopmeiners (6.33, 0.55); (6.94, 1.12)\n", "Zielinski (6.34, 0.47); (6.77, 0.87)\n", "Zaccagni (6.28, 0.52); (6.79, 1.01)\n", "Luis Alberto (6.27, 0.54); (6.86, 1.09)\n", "Pulisic (6.38, 0.60); (7.22, 1.38)\n", "Bonaventura (6.33, 0.56); (6.98, 1.16)\n", "Orsolini (6.18, 0.69); (6.89, 1.40)\n", "Calhanoglu (6.33, 0.44); (6.62, 0.68)\n", "Samardzic (6.14, 0.45); (6.50, 0.78)\n", "Felipe Anderson (6.01, 0.55); (6.47, 0.94)\n", "Politano (6.41, 0.51); (6.97, 1.06)\n", "Gudmundsson A. (6.35, 0.51); (6.94, 1.07)\n", "Candreva (6.16, 0.62); (6.79, 1.21)\n", "Barella (6.27, 0.47); (6.67, 0.80)\n", "Rabiot (6.19, 0.55); (6.71, 1.06)\n", "Mkhitaryan (6.35, 0.53); (6.94, 1.05)\n", "Ferguson (6.22, 0.49); (6.63, 0.85)\n", "Frattesi (6.23, 0.51); (6.72, 0.95)\n", "Loftus-Cheek (6.25, 0.47); (6.61, 0.78)\n", "Colpani (6.32, 0.52); (6.89, 1.06)\n", "Cristante (6.15, 0.50); (6.49, 0.79)\n", "Strefezza (6.01, 0.44); (6.29, 0.69)\n", "Chukwueze (5.92, 0.39); (6.14, 0.54)\n", "Radonjic (6.21, 0.59); (6.87, 1.21)\n", "Reijnders (6.19, 0.45); (6.47, 0.68)\n", "Pasalic (6.00, 0.52); (6.45, 0.89)\n", "Aouar (6.04, 0.56); (6.55, 1.00)\n", "Bajrami (6.06, 0.36); (6.25, 0.51)\n", "Vlasic (5.99, 0.47); (6.29, 0.71)\n", "Ederson D.s. (6.08, 0.46); (6.31, 0.65)\n", "Baldanzi (5.94, 0.54); (6.36, 0.90)\n", "Kamada (6.00, 0.49); (6.37, 0.79)\n", "Lindstrom (6.08, 0.39); (6.35, 0.64)\n", "De Roon (6.12, 0.49); (6.35, 0.69)\n", "Pellegrini Lo. (5.95, 0.58); (6.47, 0.98)\n", "El Shaarawy (6.15, 0.42); (6.48, 0.73)\n", "Mandragora (6.04, 0.52); (6.41, 0.84)\n", "Malinovskyi (6.01, 0.54); (6.49, 0.96)\n", "Kostic (6.13, 0.44); (6.44, 0.70)\n", "De Ketelaere (6.12, 0.51); (6.47, 0.82)\n", "Gomez (5.96, 0.44); (6.03, 0.55)\n" ] } ], "source": [ "output = pd.DataFrame(columns = ['player', 'role', 'team', 'oppteam', 'home', 'starter', 'vote%', 'MV', 'MV std', 'FV', 'FV std', 'MV loc', 'MV scale', 'MV skewness', 'MV tailweight', 'FV loc', 'FV scale', 'FV skewness', 'FV tailweight', 'Clean Sheet %'])\n", "\n", "tot_matches = 2 # home and not home\n", "\n", "current_season_games = max(players_orig['games'])\n", "\n", "for i in range(players.shape[0]):\n", " try:\n", " home = 0\n", "\n", " for k in range(tot_matches):\n", " #matchday_out = k + 1\n", " #[player, team, oppteam, home] = PlayerMatch(players.index[i], matchday_out)\n", "\n", " player = players.index[i]\n", " team = players['team'][i]\n", " oppteam = 'Avg'\n", " home = not home\n", "\n", " [mean, std, dist] = vote_predict_NNb(player, team, oppteam, home = home)\n", "\n", " role = players['r'][player] \n", "\n", " starter = 0\n", " voteperc = 0\n", "\n", " games = max( players_orig['games'][i], players_orig['gk_games'][i] )\n", " mins = max( players_orig['minutes'][i], players_orig['gk_minutes'][i] )\n", "\n", " cs = 0\n", " if(role == 'P'):\n", " cs = dist[2].probs.numpy()[0] * 100\n", "\n", " starter = int( player in gk_starters )\n", " if(starter):\n", " voteperc = 100\n", " else:\n", " voteperc = 0\n", " else:\n", " starter = int ( 1 * (games >= current_season_games * 2/3 and mins / games >= 45 ) )\n", " voteperc = int( min( 1, games / current_season_games ) * 100) \n", "\n", " if(k == 0):\n", " row = [player, role, team, 'Avg', 1, starter, voteperc]\n", "\n", " numrow_ = [mean[0], std[0], \n", " mean[1], std[1], \n", " dist[0].loc.numpy()[0], dist[0].scale.numpy()[0], \n", " dist[0].skewness.numpy()[0], dist[0].tailweight.numpy()[0], \n", " dist[1].loc.numpy()[0], dist[1].scale.numpy()[0], \n", " dist[1].skewness.numpy()[0], dist[1].tailweight.numpy()[0],\n", " cs] \n", "\n", " if(k == 0):\n", " numrow = numrow_\n", " else:\n", " for j in range(len(numrow)):\n", " numrow[j] += numrow_[j]\n", "\n", " for j in range(len(numrow)):\n", " numrow[j] /= tot_matches\n", "\n", " print(players.index[i] + ' (' + \"{:.2f}\".format(numrow[0]) + ', ' + \"{:.2f}\".format(numrow[1]) + \n", " '); (' + \"{:.2f}\".format(numrow[2]) + ', ' + \"{:.2f}\".format(numrow[3]) + ')' )\n", "\n", " row += numrow # list concat\n", "\n", " row_df = pd.DataFrame(data = [row], columns = output.columns)\n", "\n", " output = pd.concat([output, row_df])\n", " except:\n", " print(players.index[i] + ' no data')\n", " \n", " \n", "\n", "output = output.set_index('player')\n", "\n", "output = output.sort_values(['team', 'role', 'FV'], ascending = [True, False, False])\n", "#output.to_excel('outputs/pred_matchday_' + str(matchday_out) + '.xlsx')\n", "\n", "output" ] }, { "cell_type": "code", "execution_count": null, "id": "b47cbd63", "metadata": {}, "outputs": [], "source": [ "import shutil\n", "\n", "output = output.sort_values(['role', 'FV'], ascending = [False, False])\n", "\n", "template_file = 'outputs/pred_matchday_base.xlsx'\n", "dest_file = 'outputs/pred_avg_seriea.xlsx'\n", "\n", "shutil.copyfile(template_file, dest_file)\n", "\n", "with pd.ExcelWriter(dest_file, mode = 'a', engine=\"openpyxl\", if_sheet_exists = 'replace') as writer: \n", " output.to_excel(writer, sheet_name='data')" ] }, { "cell_type": "markdown", "id": "cf9df3bb", "metadata": {}, "source": [ "Various predictions." ] }, { "cell_type": "code", "execution_count": 54, "id": "7300f3c2", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Meret: MV 5.90 ± 1.55; FV 5.53 + 1.18 (43.4% cs)\n", "Szczesny: MV 5.90 ± 1.55; FV 5.54 + 1.23 (53.7% cs)\n", "Provedel: MV 5.89 ± 1.56; FV 5.03 + 1.63 (28.1% cs)\n", "Maignan: MV 5.90 ± 1.55; FV 5.21 + 1.44 (29.1% cs)\n", "Rui Patricio: MV 5.84 ± 1.66; FV 3.89 + 2.53 (10.0% cs)\n", "Sommer: MV 5.90 ± 1.55; FV 5.57 + 1.20 (57.7% cs)\n", "Milinkovic-Savic V.: MV 5.85 ± 1.64; FV 5.11 + 1.72 (40.7% cs)\n", "Musso: MV 5.90 ± 1.55; FV 5.60 + 1.35 (58.3% cs)\n", "Caprile: MV 5.86 ± 1.61; FV 3.99 + 2.22 (6.3% cs)\n", "Silvestri: MV 5.90 ± 1.55; FV 5.19 + 1.44 (32.8% cs)\n", "Terracciano: MV 5.88 ± 1.58; FV 4.24 + 2.15 (16.7% cs)\n", "Skorupski: MV 5.89 ± 1.57; FV 4.48 + 2.02 (22.3% cs)\n", "Falcone: MV 5.90 ± 1.55; FV 5.32 + 1.44 (38.7% cs)\n", "Di Gregorio: MV 5.90 ± 1.55; FV 5.21 + 1.54 (32.9% cs)\n", "Consigli: MV 5.79 ± 1.73; FV 3.82 + 2.56 (8.2% cs)\n", "Radunovic: MV 5.71 ± 1.90; FV 4.24 + 2.26 (21.5% cs)\n", "Montipo': MV 5.87 ± 1.59; FV 4.34 + 2.10 (16.6% cs)\n", "Martinez Jo.: MV 5.90 ± 1.55; FV 5.24 + 1.34 (27.6% cs)\n", "Turati: MV 5.90 ± 1.55; FV 5.04 + 1.48 (22.6% cs)\n", "Ochoa: MV 5.90 ± 1.55; FV 4.95 + 1.55 (19.2% cs)\n" ] }, { "data": { "text/plain": [ "[array([5.89767402, 4.95480099]),\n", " array([0.7759559 , 0.77737534], dtype=float32),\n", " [,\n", " ,\n", " ]]" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "predict_player('Meret', log = 1, plot = 0)\n", "predict_player('Szczesny', log = 1, plot = 0)\n", "predict_player('Provedel', log = 1, plot = 0)\n", "predict_player('Maignan', log = 1, plot = 0)\n", "predict_player('Rui Patricio', log = 1, plot = 0)\n", "predict_player('Sommer', log = 1, plot = 0)\n", "predict_player('Milinkovic-Savic V.', log = 1, plot = 0)\n", "predict_player('Musso', log = 1, plot = 0)\n", "predict_player('Caprile', log = 1, plot = 0)\n", "predict_player('Silvestri', log = 1, plot = 0)\n", "predict_player('Terracciano', log = 1, plot = 0)\n", "predict_player('Skorupski', log = 1, plot = 0)\n", "predict_player('Falcone', log = 1, plot = 0)\n", "predict_player('Di Gregorio', log = 1, plot = 0)\n", "predict_player('Consigli', log = 1, plot = 0)\n", "predict_player('Radunovic', log = 1, plot = 0)\n", "predict_player('Montipo\\'', log = 1, plot = 0)\n", "predict_player('Martinez Jo.', log = 1, plot = 0)\n", "predict_player('Turati', log = 1, plot = 0)\n", "predict_player('Ochoa', log = 1, plot = 0)" ] }, { "cell_type": "code", "execution_count": 37, "id": "4b9f5a7d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Osimhen: MV 6.47 ± 1.49; FV 7.95 + 4.15\n", "Osimhen: MV 6.48 ± 1.46; FV 8.08 + 4.29\n" ] }, { "data": { "text/plain": [ "[array([6.48246781, 8.07706693]),\n", " array([0.72848487, 2.14604 ], dtype=float32),\n", " [,\n", " ]]" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "predict_player('Osimhen', log = 1)\n", "predict_player('Osimhen', log = 1, oldseason= True)" ] }, { "cell_type": "code", "execution_count": 56, "id": "10c7ad3e", "metadata": {}, "outputs": [ { "data": { "image/png": "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0uLtt9/Gr7/+ij/++APlypWTOpwidfLkScTHx6NBgwZQKBRQKBTYv38/vv/+eygUChiNRqlDLDJ+fn6oXr26VVlISEipG9j93nvvYeLEiejfvz9q1aqFwYMH45133sHMmTOlDk0yvr6+AMDPzX/p9Xr07dsXUVFR2L17d6lrFTl48CDi4+NRvnx5y+dmdHQ03n33XVSoUEHq8KwU22REpVKhQYMG2L17t1X57t270bx5c4mikoYoinjrrbewceNG7N27FxUrVpQ6pCLXrl07nDt3DpGRkZatYcOGGDRoECIjIyGXy6UOsci0aNEi29Tuy5cvW+6cXVqkp6dDJrP+CJPL5SV+au+TVKxYEb6+vlafmzqdDvv37y91n5tZiciVK1fwv//9Dx4eHlKHVOQGDx6Ms2fPWn1u+vv747333sPvv/8udXhWinU3TVhYGAYPHoyGDRuiWbNm+OmnnxATE4PRo0dLHVqRevPNN7F69Wps2bIFLi4ulr963Nzc4ODgIHF0RcPFxSXbGBknJyd4eHiUurEz77zzDpo3b44ZM2agb9++OHbsGH766Sf89NNPUodWpLp3747PP/8c5cuXR40aNXD69GnMnj0bI0aMkDq0QpWamoqrV69aHkdFRSEyMhLu7u4oX748xo8fjxkzZqBKlSqoUqUKZsyYAUdHRwwcOFDCqAvek94Hf39/9OnTB6dOncK2bdtgNBotn5vu7u5QqVRShV3gnvbz8N8kTKlUwtfXF9WqVSvqUJ9M2sk8Tzdv3jwxKChIVKlUYv369UvldFYAOW5Lly6VOjRJldapvaIoilu3bhVr1qwpqtVqMTg4WPzpp5+kDqnIJScni+PGjRPLly8vajQasVKlSuLkyZNFrVYrdWiF6o8//sjx82Do0KGiKJqn906dOlX09fUV1Wq1+Pzzz4vnzp2TNuhC8KT3ISoqKtfPzT/++EPq0AvU034e/qu4Tu0VRFEUiyjvISIiIsqm2I4ZISIiotKByQgRERFJiskIERERSYrJCBEREUmKyQgRERFJiskIERERSYrJCBEREUmKyQgRERFJiskIERERSYrJCBEREUmKyQgRERFJ6v8TGhZFndWZzAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Rafael Leao: MV 6.48 ± 1.37; FV 7.84 + 4.05\n" ] }, { "data": { "text/plain": [ "[array([6.48351824, 7.84102121]),\n", " array([0.6832447, 2.0243561], dtype=float32),\n", " [,\n", " ]]" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "predict_player('Rafael Leao', plot = 1, log = 1)" ] }, { "cell_type": "markdown", "id": "30744d7a", "metadata": {}, "source": [ "Tensorflow seems to have a custom definition for SinhArcsinh distribution. \n", "\n", "Here the code to generate the probability density function is reproduced." ] }, { "cell_type": "code", "execution_count": 110, "id": "3ec6c3dc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 110, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# custom franction to calculate the probability density function\n", "\n", "def sinh_archsinh_pdf(x, mu, sigma, eps, delta):\n", "\n", " mul = np.sinh( np.arcsinh(2) * delta)\n", " \n", " mul = 2 / mul\n", " \n", " sigma_corr = sigma * mul\n", " \n", " z = (x - mu) / sigma_corr\n", " \n", " \n", " \n", " S = np.sinh( -eps + (1/delta) * np.arcsinh(z))\n", " \n", " f = np.exp(-0.5 * S * S)\n", "\n", " f /= np.sqrt(2 * np.pi)\n", " \n", " f *= 1 / ( sigma_corr * delta )\n", " \n", " f *= np.sqrt(1 + S * S)\n", " \n", " f /= np.sqrt(1 + z * z)\n", " \n", " return f\n", " \n", "\n", "x = np.arange(start = 0, stop = 15, step = 0.001)\n", "\n", "\n", "plt.plot(x, sinh_archsinh_pdf(x, 5.54, 1.4, 0.8, 1.68))\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "id": "605dc968", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.13" } }, "nbformat": 4, "nbformat_minor": 5 }