{ "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_datasets as tfds\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) " ] }, { "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...touches_live_balldribbles_completeddribblespasses_receivedmiscontrolsdispossessedfoulsfouledaerials_wonaerials_lost
01ToloiAtalantaSampdoria07.0100.010.0...0.6170960.0011710.0046840.3571430.0070260.0011710.0093680.0058550.0187350.008197
11DjimsitiAtalantaSampdoria06.0000.06.0...0.7368420.0000000.0029240.5116960.0029240.0087720.0029240.0029240.0058480.008772
21HateboerAtalantaSampdoria06.0000.55.5...0.5744230.0020960.0052410.3396230.0062890.0052410.0136270.0020960.0157230.012579
31OkoliAtalantaSampdoria05.5000.55.0...0.5985400.0000000.0012170.2785890.0133820.0036500.0158150.0085160.0486620.026764
41ZorteaAtalantaSampdoria06.0000.55.5...0.6349210.0529100.1111110.3280420.0264550.0052910.0211640.0000000.0264550.005291
..................................................................
2294238TamezeVeronaLazio05.5000.05.5...0.6293710.0132090.0233100.3581970.0198140.0101010.0128210.0132090.0236990.021368
2294338HonglaVeronaLazio07.0100.59.5...0.5821810.0015360.0076800.3410140.0184330.0122890.0230410.0076800.0230410.026114
2294438LasagnaVeronaLazio07.0100.59.5...0.3699320.0084460.0160470.2626690.0464530.0228040.0160470.0084460.0261820.041385
2294538CaprariVeronaLazio06.0000.06.0...0.6024100.0237310.0434470.4538150.0339540.0197150.0153340.0270170.0029210.009858
2294638SimeoneVeronaLazio07.0100.010.0...0.4070860.0086690.0229930.3203920.0512630.0301550.0211080.0218620.0226160.040709
\n", "

22947 rows × 131 columns

\n", "
" ], "text/plain": [ " matchday player team oppteam home vote goals assists \\\n", "0 1 Toloi Atalanta Sampdoria 0 7.0 1 0 \n", "1 1 Djimsiti Atalanta Sampdoria 0 6.0 0 0 \n", "2 1 Hateboer Atalanta Sampdoria 0 6.0 0 0 \n", "3 1 Okoli Atalanta Sampdoria 0 5.5 0 0 \n", "4 1 Zortea Atalanta Sampdoria 0 6.0 0 0 \n", "... ... ... ... ... ... ... ... ... \n", "22942 38 Tameze Verona Lazio 0 5.5 0 0 \n", "22943 38 Hongla Verona Lazio 0 7.0 1 0 \n", "22944 38 Lasagna Verona Lazio 0 7.0 1 0 \n", "22945 38 Caprari Verona Lazio 0 6.0 0 0 \n", "22946 38 Simeone Verona Lazio 0 7.0 1 0 \n", "\n", " cards_malus fantavote ... touches_live_ball dribbles_completed \\\n", "0 0.0 10.0 ... 0.617096 0.001171 \n", "1 0.0 6.0 ... 0.736842 0.000000 \n", "2 0.5 5.5 ... 0.574423 0.002096 \n", "3 0.5 5.0 ... 0.598540 0.000000 \n", "4 0.5 5.5 ... 0.634921 0.052910 \n", "... ... ... ... ... ... \n", "22942 0.0 5.5 ... 0.629371 0.013209 \n", "22943 0.5 9.5 ... 0.582181 0.001536 \n", "22944 0.5 9.5 ... 0.369932 0.008446 \n", "22945 0.0 6.0 ... 0.602410 0.023731 \n", "22946 0.0 10.0 ... 0.407086 0.008669 \n", "\n", " dribbles passes_received miscontrols dispossessed fouls \\\n", "0 0.004684 0.357143 0.007026 0.001171 0.009368 \n", "1 0.002924 0.511696 0.002924 0.008772 0.002924 \n", "2 0.005241 0.339623 0.006289 0.005241 0.013627 \n", "3 0.001217 0.278589 0.013382 0.003650 0.015815 \n", "4 0.111111 0.328042 0.026455 0.005291 0.021164 \n", "... ... ... ... ... ... \n", "22942 0.023310 0.358197 0.019814 0.010101 0.012821 \n", "22943 0.007680 0.341014 0.018433 0.012289 0.023041 \n", "22944 0.016047 0.262669 0.046453 0.022804 0.016047 \n", "22945 0.043447 0.453815 0.033954 0.019715 0.015334 \n", "22946 0.022993 0.320392 0.051263 0.030155 0.021108 \n", "\n", " fouled aerials_won aerials_lost \n", "0 0.005855 0.018735 0.008197 \n", "1 0.002924 0.005848 0.008772 \n", "2 0.002096 0.015723 0.012579 \n", "3 0.008516 0.048662 0.026764 \n", "4 0.000000 0.026455 0.005291 \n", "... ... ... ... \n", "22942 0.013209 0.023699 0.021368 \n", "22943 0.007680 0.023041 0.026114 \n", "22944 0.008446 0.026182 0.041385 \n", "22945 0.027017 0.002921 0.009858 \n", "22946 0.021862 0.022616 0.040709 \n", "\n", "[22947 rows x 131 columns]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "db = pd.concat([db1, db2, db3], 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
01MussoAtalantaSampdoria06.0000.55.5...5.9000000.2200000.9059.0126.000000222.00000062.00000055.00000098.03.000000
11SkorupskiBolognaLazio06.5-200.04.5...21.0000000.270000-2.0062.0162.000000408.00000081.000000104.000000203.010.000000
21Radu I.CremoneseFiorentina05.0-300.02.0...21.0000000.2900002.0038.0143.000000265.00000034.00000067.000000107.06.000000
31VicarioEmpoliSpezia05.5-100.04.5...20.4000000.3000001.4068.0213.000000505.00000085.00000076.000000285.020.000000
41GolliniFiorentinaCremonese15.0-200.03.0...7.6500000.270000-1.3528.079.500000207.00000028.50000040.00000064.03.000000
..................................................................
84114ConsigliSassuoloRoma16.5-100.05.5...16.6000000.370000-2.4084.0205.000000523.00000077.000000134.000000189.013.000000
84214ZoetSpeziaUdinese16.0-100.05.0...17.6166670.246667-2.5551.5160.833333305.66666758.83333368.666667150.56.666667
84314Milinkovic-Savic V.TorinoSampdoria16.0000.06.0...16.8000000.2700000.8097.0335.000000507.00000055.000000102.000000160.011.000000
84414SilvestriUdineseSpezia07.0-100.06.0...16.0000000.2800002.0059.0148.000000287.00000057.000000110.000000194.04.000000
84514Montipo'VeronaJuventus16.0-100.05.0...19.7000000.250000-6.30109.0241.000000329.00000047.000000116.000000177.06.000000
\n", "

846 rows × 108 columns

\n", "
" ], "text/plain": [ " matchday player team oppteam home vote goals \\\n", "0 1 Musso Atalanta Sampdoria 0 6.0 0 \n", "1 1 Skorupski Bologna Lazio 0 6.5 -2 \n", "2 1 Radu I. Cremonese Fiorentina 0 5.0 -3 \n", "3 1 Vicario Empoli Spezia 0 5.5 -1 \n", "4 1 Gollini Fiorentina Cremonese 1 5.0 -2 \n", ".. ... ... ... ... ... ... ... \n", "841 14 Consigli Sassuolo Roma 1 6.5 -1 \n", "842 14 Zoet Spezia Udinese 1 6.0 -1 \n", "843 14 Milinkovic-Savic V. Torino Sampdoria 1 6.0 0 \n", "844 14 Silvestri Udinese Spezia 0 7.0 -1 \n", "845 14 Montipo' Verona Juventus 1 6.0 -1 \n", "\n", " assists cards_malus fantavote ... gk_psxg \\\n", "0 0 0.5 5.5 ... 5.900000 \n", "1 0 0.0 4.5 ... 21.000000 \n", "2 0 0.0 2.0 ... 21.000000 \n", "3 0 0.0 4.5 ... 20.400000 \n", "4 0 0.0 3.0 ... 7.650000 \n", ".. ... ... ... ... ... \n", "841 0 0.0 5.5 ... 16.600000 \n", "842 0 0.0 5.0 ... 17.616667 \n", "843 0 0.0 6.0 ... 16.800000 \n", "844 0 0.0 6.0 ... 16.000000 \n", "845 0 0.0 5.0 ... 19.700000 \n", "\n", " gk_psnpxg_per_shot_on_target_against gk_psxg_net \\\n", "0 0.220000 0.90 \n", "1 0.270000 -2.00 \n", "2 0.290000 2.00 \n", "3 0.300000 1.40 \n", "4 0.270000 -1.35 \n", ".. ... ... \n", "841 0.370000 -2.40 \n", "842 0.246667 -2.55 \n", "843 0.270000 0.80 \n", "844 0.280000 2.00 \n", "845 0.250000 -6.30 \n", "\n", " gk_passes_completed_launched gk_passes_launched gk_passes \\\n", "0 59.0 126.000000 222.000000 \n", "1 62.0 162.000000 408.000000 \n", "2 38.0 143.000000 265.000000 \n", "3 68.0 213.000000 505.000000 \n", "4 28.0 79.500000 207.000000 \n", ".. ... ... ... \n", "841 84.0 205.000000 523.000000 \n", "842 51.5 160.833333 305.666667 \n", "843 97.0 335.000000 507.000000 \n", "844 59.0 148.000000 287.000000 \n", "845 109.0 241.000000 329.000000 \n", "\n", " gk_passes_throws gk_goal_kicks gk_crosses gk_crosses_stopped \n", "0 62.000000 55.000000 98.0 3.000000 \n", "1 81.000000 104.000000 203.0 10.000000 \n", "2 34.000000 67.000000 107.0 6.000000 \n", "3 85.000000 76.000000 285.0 20.000000 \n", "4 28.500000 40.000000 64.0 3.000000 \n", ".. ... ... ... ... \n", "841 77.000000 134.000000 189.0 13.000000 \n", "842 58.833333 68.666667 150.5 6.666667 \n", "843 55.000000 102.000000 160.0 11.000000 \n", "844 57.000000 110.000000 194.0 4.000000 \n", "845 47.000000 116.000000 177.0 6.000000 \n", "\n", "[846 rows x 108 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", "\n", "db_gk = pd.concat([db_gk1, db_gk1, db_gk1], 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/season2122/players_stats.xlsx', index_col = 3)\n", "players_old_2 = 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_17524\\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
AtalantaAtalanta23.046.40014.0154.01260.019.014.04.05.0...150.0168.0019.000.05.01.0834.0181.0211.046.200
BolognaBologna23.051.10014.0154.01260.017.012.03.03.0...182.0158.0024.002.03.00.0731.0165.0123.057.300
CremoneseCremonese27.043.20014.0154.01260.011.05.01.03.0...145.0188.0019.002.03.00.0744.0242.0184.056.800
EmpoliEmpoli25.046.00014.0154.01260.010.05.00.00.0...176.0151.0028.002.00.00.0723.0163.0135.054.700
FiorentinaFiorentina25.058.70014.0154.01260.017.015.01.03.0...186.0176.0035.001.03.00.0694.0193.0224.046.300
VeronaHellas Verona29.043.90014.0154.01260.010.07.00.00.0...130.0205.0018.001.00.01.0758.0240.0229.051.200
InterInter23.054.60014.0154.01260.031.022.02.02.0...182.0154.0014.001.02.00.0596.0126.0172.042.300
JuventusJuventus26.050.50014.0154.01260.021.017.01.02.0...161.0156.0021.000.02.00.0674.0184.0166.052.600
LazioLazio21.050.00014.0154.01260.025.020.01.02.0...197.0124.0035.001.02.01.0746.0151.0126.054.500
LecceLecce24.040.70014.0154.01260.012.08.01.02.0...184.0184.0027.003.02.00.0703.0216.0188.053.500
MilanMilan27.053.90014.0154.01260.026.021.02.02.0...164.0161.0015.002.02.01.0690.0168.0205.045.000
MonzaMonza29.055.50014.0154.01260.013.08.01.01.0...207.0178.0024.000.01.00.0692.0141.0160.046.800
NapoliNapoli24.059.80014.0154.01260.034.028.03.03.0...195.0116.0018.001.03.00.0687.0142.0181.044.000
RomaRoma23.050.80014.0154.01260.017.011.02.03.0...198.0157.007.000.03.00.0709.0142.0159.047.200
SalernitanaSalernitana24.047.10014.0154.01260.018.012.01.01.0...150.0157.0034.004.01.01.0750.0169.0175.049.100
SampdoriaSampdoria24.050.80014.0154.01260.06.06.00.00.0...220.0192.0042.001.00.00.0742.0215.0217.049.800
SassuoloSassuolo26.048.10014.0154.01260.015.012.01.02.0...177.0120.0047.002.02.00.0710.0146.0130.052.900
SpeziaSpezia24.046.90014.0154.01260.010.06.01.01.0...136.0177.0032.001.01.02.0776.0212.0179.054.200
TorinoTorino23.051.30014.0154.01260.015.010.01.01.0...148.0199.0017.002.01.00.0710.0228.0215.051.500
UdineseUdinese22.050.60014.0154.01260.021.019.00.00.0...176.0162.0017.002.00.01.0707.0142.0187.043.200
AvgAvg24.649.99514.0154.01260.017.412.91.31.8...173.2164.1524.651.41.80.4718.8178.3178.349.955
\n", "

21 rows × 313 columns

\n", "
" ], "text/plain": [ " team team_players_used team_possession team_games \\\n", "Atalanta Atalanta 23.0 46.400 14.0 \n", "Bologna Bologna 23.0 51.100 14.0 \n", "Cremonese Cremonese 27.0 43.200 14.0 \n", "Empoli Empoli 25.0 46.000 14.0 \n", "Fiorentina Fiorentina 25.0 58.700 14.0 \n", "Verona Hellas Verona 29.0 43.900 14.0 \n", "Inter Inter 23.0 54.600 14.0 \n", "Juventus Juventus 26.0 50.500 14.0 \n", "Lazio Lazio 21.0 50.000 14.0 \n", "Lecce Lecce 24.0 40.700 14.0 \n", "Milan Milan 27.0 53.900 14.0 \n", "Monza Monza 29.0 55.500 14.0 \n", "Napoli Napoli 24.0 59.800 14.0 \n", "Roma Roma 23.0 50.800 14.0 \n", "Salernitana Salernitana 24.0 47.100 14.0 \n", "Sampdoria Sampdoria 24.0 50.800 14.0 \n", "Sassuolo Sassuolo 26.0 48.100 14.0 \n", "Spezia Spezia 24.0 46.900 14.0 \n", "Torino Torino 23.0 51.300 14.0 \n", "Udinese Udinese 22.0 50.600 14.0 \n", "Avg Avg 24.6 49.995 14.0 \n", "\n", " team_games_starts team_minutes team_goals team_assists \\\n", "Atalanta 154.0 1260.0 19.0 14.0 \n", "Bologna 154.0 1260.0 17.0 12.0 \n", "Cremonese 154.0 1260.0 11.0 5.0 \n", "Empoli 154.0 1260.0 10.0 5.0 \n", "Fiorentina 154.0 1260.0 17.0 15.0 \n", "Verona 154.0 1260.0 10.0 7.0 \n", "Inter 154.0 1260.0 31.0 22.0 \n", "Juventus 154.0 1260.0 21.0 17.0 \n", "Lazio 154.0 1260.0 25.0 20.0 \n", "Lecce 154.0 1260.0 12.0 8.0 \n", "Milan 154.0 1260.0 26.0 21.0 \n", "Monza 154.0 1260.0 13.0 8.0 \n", "Napoli 154.0 1260.0 34.0 28.0 \n", "Roma 154.0 1260.0 17.0 11.0 \n", "Salernitana 154.0 1260.0 18.0 12.0 \n", "Sampdoria 154.0 1260.0 6.0 6.0 \n", "Sassuolo 154.0 1260.0 15.0 12.0 \n", "Spezia 154.0 1260.0 10.0 6.0 \n", "Torino 154.0 1260.0 15.0 10.0 \n", "Udinese 154.0 1260.0 21.0 19.0 \n", "Avg 154.0 1260.0 17.4 12.9 \n", "\n", " team_pens_made team_pens_att ... vs_team_fouls \\\n", "Atalanta 4.0 5.0 ... 150.0 \n", "Bologna 3.0 3.0 ... 182.0 \n", "Cremonese 1.0 3.0 ... 145.0 \n", "Empoli 0.0 0.0 ... 176.0 \n", "Fiorentina 1.0 3.0 ... 186.0 \n", "Verona 0.0 0.0 ... 130.0 \n", "Inter 2.0 2.0 ... 182.0 \n", "Juventus 1.0 2.0 ... 161.0 \n", "Lazio 1.0 2.0 ... 197.0 \n", "Lecce 1.0 2.0 ... 184.0 \n", "Milan 2.0 2.0 ... 164.0 \n", "Monza 1.0 1.0 ... 207.0 \n", "Napoli 3.0 3.0 ... 195.0 \n", "Roma 2.0 3.0 ... 198.0 \n", "Salernitana 1.0 1.0 ... 150.0 \n", "Sampdoria 0.0 0.0 ... 220.0 \n", "Sassuolo 1.0 2.0 ... 177.0 \n", "Spezia 1.0 1.0 ... 136.0 \n", "Torino 1.0 1.0 ... 148.0 \n", "Udinese 0.0 0.0 ... 176.0 \n", "Avg 1.3 1.8 ... 173.2 \n", "\n", " vs_team_fouled vs_team_offsides vs_team_pens_won \\\n", "Atalanta 168.00 19.00 0.0 \n", "Bologna 158.00 24.00 2.0 \n", "Cremonese 188.00 19.00 2.0 \n", "Empoli 151.00 28.00 2.0 \n", "Fiorentina 176.00 35.00 1.0 \n", "Verona 205.00 18.00 1.0 \n", "Inter 154.00 14.00 1.0 \n", "Juventus 156.00 21.00 0.0 \n", "Lazio 124.00 35.00 1.0 \n", "Lecce 184.00 27.00 3.0 \n", "Milan 161.00 15.00 2.0 \n", "Monza 178.00 24.00 0.0 \n", "Napoli 116.00 18.00 1.0 \n", "Roma 157.00 7.00 0.0 \n", "Salernitana 157.00 34.00 4.0 \n", "Sampdoria 192.00 42.00 1.0 \n", "Sassuolo 120.00 47.00 2.0 \n", "Spezia 177.00 32.00 1.0 \n", "Torino 199.00 17.00 2.0 \n", "Udinese 162.00 17.00 2.0 \n", "Avg 164.15 24.65 1.4 \n", "\n", " vs_team_pens_conceded vs_team_own_goals \\\n", "Atalanta 5.0 1.0 \n", "Bologna 3.0 0.0 \n", "Cremonese 3.0 0.0 \n", "Empoli 0.0 0.0 \n", "Fiorentina 3.0 0.0 \n", "Verona 0.0 1.0 \n", "Inter 2.0 0.0 \n", "Juventus 2.0 0.0 \n", "Lazio 2.0 1.0 \n", "Lecce 2.0 0.0 \n", "Milan 2.0 1.0 \n", "Monza 1.0 0.0 \n", "Napoli 3.0 0.0 \n", "Roma 3.0 0.0 \n", "Salernitana 1.0 1.0 \n", "Sampdoria 0.0 0.0 \n", "Sassuolo 2.0 0.0 \n", "Spezia 1.0 2.0 \n", "Torino 1.0 0.0 \n", "Udinese 0.0 1.0 \n", "Avg 1.8 0.4 \n", "\n", " vs_team_ball_recoveries vs_team_aerials_won \\\n", "Atalanta 834.0 181.0 \n", "Bologna 731.0 165.0 \n", "Cremonese 744.0 242.0 \n", "Empoli 723.0 163.0 \n", "Fiorentina 694.0 193.0 \n", "Verona 758.0 240.0 \n", "Inter 596.0 126.0 \n", "Juventus 674.0 184.0 \n", "Lazio 746.0 151.0 \n", "Lecce 703.0 216.0 \n", "Milan 690.0 168.0 \n", "Monza 692.0 141.0 \n", "Napoli 687.0 142.0 \n", "Roma 709.0 142.0 \n", "Salernitana 750.0 169.0 \n", "Sampdoria 742.0 215.0 \n", "Sassuolo 710.0 146.0 \n", "Spezia 776.0 212.0 \n", "Torino 710.0 228.0 \n", "Udinese 707.0 142.0 \n", "Avg 718.8 178.3 \n", "\n", " vs_team_aerials_lost vs_team_aerials_won_pct \n", "Atalanta 211.0 46.200 \n", "Bologna 123.0 57.300 \n", "Cremonese 184.0 56.800 \n", "Empoli 135.0 54.700 \n", "Fiorentina 224.0 46.300 \n", "Verona 229.0 51.200 \n", "Inter 172.0 42.300 \n", "Juventus 166.0 52.600 \n", "Lazio 126.0 54.500 \n", "Lecce 188.0 53.500 \n", "Milan 205.0 45.000 \n", "Monza 160.0 46.800 \n", "Napoli 181.0 44.000 \n", "Roma 159.0 47.200 \n", "Salernitana 175.0 49.100 \n", "Sampdoria 217.0 49.800 \n", "Sassuolo 130.0 52.900 \n", "Spezia 179.0 54.200 \n", "Torino 215.0 51.500 \n", "Udinese 187.0 43.200 \n", "Avg 178.3 49.955 \n", "\n", "[21 rows x 313 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": "f4017b2f", "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", "\n", "features_rel_gamecorr = [\n", " 'goals',\n", " 'xg',\n", " 'npxg',\n", " 'assists',\n", " 'cards_yellow',\n", " 'cards_red'\n", "]\n", "\n", "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", "\n", "\n", "\n", "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", "]\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": "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": 9, "id": "6f8707b8", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " \n", "Averaging players stats with past seasons:\n", "Meret 1\n", "Provedel 1\n", "Maignan 0.9682692307692308\n", "Silvestri 1\n", "Sepe 1\n", "Szczesny 1\n", "Consigli 1\n", "Falcone 1\n", "Musso 1\n", "Vicario 1\n", "Rui Patricio 1\n", "Milinkovic-Savic V. 1\n", "Audero 1\n", "Montipo' 1\n", "Sportiello 1\n", "Skorupski 1\n", "Perin 1\n", "Handanovic 0.957053757053757\n", "Tatarusanu 1\n", "Dragowski 1\n", "Terracciano 1\n", "Berisha 1\n", "Radu I. 1\n", "Cragno 1\n", "Mirante 0.9682692307692308\n", "Ujkani 1\n", "Pegolo 1\n", "Padelli 1\n", "Bardi 1\n", "Cordaz 0.957053757053757\n", "Pinsoglio 1\n", "Fiorillo 1\n", "Sirigu 1\n", "Rossi F. 1\n", "Berardi A. 1\n", "Gemello 1\n", "Ravaglia 1\n", "Zoet 1\n", "Boer 1\n", "Adamonis 1\n", "Marfella 1\n", "Zovko 1\n", "Piana 1\n", "Smalling 1\n", "Hernandez T. 0.829945054945055\n", "Bastoni S. 0.7139312300602624\n", "Udogie 0.6955729984301412\n", "Dumfries 0.9389277389277388\n", "Romagnoli 1\n", "Rodrigo Becao 0.569105180533752\n", "Parisi 1\n", "Mazzocchi 1\n", "Bremer 0.8351648351648351\n", "Demiral 0.94850863422292\n", "Dimarco 0.9682692307692308\n", "Di Lorenzo 0.9389277389277388\n", "Ibanez 0.9113122171945701\n", "Tomori 0.9995037220843672\n", "Toloi 1\n", "Gosens 1\n", "Rrahmani 0.5365301365301365\n", "Kalulu 1\n", "Bijol affine to Rodrigo Becao\n", "Bijol 0.6955729984301412\n", "Doig affine to Lazovic\n", "Doig 0.5207498383968971\n", "Mario Rui 0.7160310277957336\n", "Spinazzola 1\n", "Lazzari 0.928110599078341\n", "Mancini 0.9389277389277388\n", "Danilo 1\n", "Kyriakopoulos 0.7631678666161424\n", "Vojvoda 0.6105342932929139\n", "Scalvini 1\n", "Skriniar 0.8852747252747253\n", "Juan Jesus 0.5269492412349555\n", "Bonucci 0.829945054945055\n", "Calabria 0.5958579881656805\n", "Bastoni 0.7139312300602624\n", "Depaoli 1\n", "Darmian 0.8852747252747253\n", "Mari' 1\n", "Martinez Quarta 1\n", "Maehle 1\n", "Biraghi 0.7776061776061776\n", "Medel 0.9389277389277388\n", "Patric 0.829945054945055\n", "Rodriguez R. 0.7811247575953458\n", "Aina 1\n", "Cambiaso 1\n", "Perez N. 1\n", "Hysaj 0.8394846532777566\n", "Faraoni 0.5532967032967032\n", "Milenkovic 0.6509372979961215\n", "Marusic 0.9389277389277388\n", "Colley 0.8991071428571429\n", "Toljan 1\n", "Ampadu 0.7127699886320576\n", "Singo 0.6323390894819467\n", "Casale 0.4465811965811966\n", "Soppy 0.8202511773940345\n", "Kiwior 1\n", "Ghiglione 0.8833474218089602\n", "Ghiglione 0.5924716248138645\n", "De Vrij 0.8115018315018314\n", "Alex Sandro 1\n", "Ceccherini 0.5207498383968971\n", "Fazio 1\n", "Rogerio 1\n", "Reca 0.9738021978021977\n", "Gunter 0.8852747252747252\n", "Djidji 1\n", "Augello 0.7992063492063493\n", "Bellanova 0.5926976249556895\n", "Erlic 0.7655677655677655\n", "Ismajli 1\n", "Ebuehi 0.6043956043956044\n", "Kasius 1\n", "Acerbi 0.6124542124542124\n", "Zappacosta 0.1301874595992243\n", "Chiriches 0.39598332701780975\n", "Gyomber 0.7853243530662884\n", "Pezzella Giu. 0.6562009419152276\n", "Ferrari G. 0.7992063492063493\n", "Bereszynski 0.8220408163265306\n", "Hateboer 1\n", "Karsdorp 0.5532967032967033\n", "Nuytinck 0.4918192918192918\n", "Lykogiannis 0.902276295133438\n", "Buongiorno 1\n", "Nikolaou 0.7992063492063493\n", "Ayhan 0.8660296225513617\n", "Stojanovic 0.8047952047952047\n", "Izzo 1\n", "D'ambrosio 0.44263736263736264\n", "Rugani 0.36886446886446883\n", "De Sciglio 0.8852747252747253\n", "Luperto 1\n", "De Silvestri 0.6425381070542361\n", "Djimsiti 0.3569656150301312\n", "Palomino 0.0\n", "Bonifazi 0.7041958041958042\n", "Hristov 1\n", "Kjaer 1\n", "Igor 0.663956043956044\n", "Soumaoro 0.71138147566719\n", "Ballo-Toure' affine to Calabria\n", "Ballo-Toure' 0.25536770921386304\n", "De Winter 1\n", "Ferrari A. 1\n", "Florenzi 0.18443223443223442\n", "Sala 0.7377289377289378\n", "Caldara 0.5926976249556895\n", "Murru 0.502997002997003\n", "Walukiewicz 0.6562009419152276\n", "Walukiewicz 0.4495488812600273\n", "Kumbulla 0.3905623787976729\n", "Amian 0.4841346153846154\n", "Ostigard 1\n", "Marrone 0.21873364730507583\n", "Radovanovic 1\n", "Venuti 0.48112756808408985\n", "Magnani 1\n", "Magnani 0.35410989010989\n", "Terzic 1\n", "Gabbia 1\n", "Zortea 0.6335733232284956\n", "Dawidowicz 0.7811247575953458\n", "Carboni 0.3062271062271062\n", "Lovato 0.28708791208791207\n", "Tuia 0.17012617012617012\n", "Amione 1\n", "Vasquez 0.5741758241758242\n", "Zima 0.6639560439560439\n", "Coppola D. 1\n", "Conti 0.3161695447409733\n", "Conti 1\n", "Tonelli 0.0\n", "Radu 0.0\n", "Fares 0.0\n", "Fares 0.0\n", "Marchizza 0.24175824175824173\n", "Romagna 0.0\n", "Romagna 0.0\n", "Ranieri L. 0.08506308506308506\n", "Cetin 0.38278388278388276\n", "Muldur 0.07139312300602622\n", "Ferrer 0.0\n", "Ruggeri 0.6562009419152276\n", "Antov 1\n", "Amey 0.0\n", "Kamenovic 0.0\n", "Vina 0.25536770921386304\n", "Zanoli 0.18443223443223442\n", "Ruan 0.44263736263736264\n", "Cacace 0.44263736263736264\n", "Milinkovic-Savic 0.7776061776061776\n", "Barella 0.8606837606837607\n", "Zaccagni 0.9921182266009851\n", "Zielinski 0.8852747252747253\n", "Luis Alberto 0.7811247575953458\n", "Frattesi 0.8606837606837607\n", "Politano 0.8718614718614718\n", "Koopmeiners 1\n", "Pereyra 1\n", "Felipe Anderson 0.8153846153846154\n", "Calhanoglu 0.846218487394958\n", "Diaz B. 0.8567174760723147\n", "Pellegrini Lo. 1\n", "Zambo Anguissa 1\n", "Lobotka 1\n", "Malinovskyi 0.959047619047619\n", "Candreva 0.8931623931623932\n", "Pasalic 0.7776061776061776\n", "Bennacer 0.9995037220843672\n", "Samardzic 1\n", "Chiesa 0.15808477237048665\n", "Brozovic 0.569105180533752\n", "Bonaventura 0.8567174760723147\n", "Sensi 1\n", "Bandinelli 0.8852747252747253\n", "Ikone' 1\n", "Barak 0.8711633194391815\n", "Mkhitaryan 0.814959234314073\n", "Pessina 1\n", "Tonali 0.7377289377289378\n", "Arslan 0.959047619047619\n", "Lazovic 0.6509372979961215\n", "Cristante 0.9113122171945701\n", "Elmas 0.7776061776061776\n", "Bajrami 0.8852747252747253\n", "Vecino 1\n", "Mandragora 1\n", "Djuricic 1\n", "Lukic 0.7588069073783359\n", "Soriano 0.8220408163265306\n", "Zaniolo 0.7904238618524334\n", "Sottil 0.6455128205128206\n", "Traore' Hj. 0.3569656150301312\n", "Messias 0.9363482671174977\n", "Cuadrado 0.8718614718614718\n", "Locatelli 0.7853243530662884\n", "Rabiot 0.6916208791208792\n", "Dominguez 0.94850863422292\n", "Tameze 0.7571428571428571\n", "Miranchuk 0.9670329670329669\n", "De Roon 0.959047619047619\n", "Verdi 1\n", "Walace 0.8606837606837607\n", "Mckennie 1\n", "Makengo 0.8047952047952047\n", "Ricci S. 1\n", "Coulibaly L. 1\n", "Sabiri 1\n", "Miretti 1\n", "Haas 1\n", "Orsolini 0.8394846532777566\n", "Ederson D.s. 1\n", "El Shaarawy 0.7377289377289378\n", "Bourabia 1\n", "Henderson L. 0.6989010989010989\n", "Maggiore 0.590580847723705\n", "Ilic 0.4841346153846154\n", "Kovalenko 0.5958579881656805\n", "Zalewski 1\n", "Ferguson affine to Svanberg\n", "Ferguson 0.4918192918192918\n", "Saponara 0.8394846532777566\n", "Rincon 1\n", "Cataldi 0.829945054945055\n", "Zurkowski 0.13124018838304552\n", "Rovella 0.9843014128728415\n", "Agudelo 1\n", "Amrabat 1\n", "Lopez M. 0.8220408163265306\n", "Gyasi 0.7377289377289378\n", "Pobega 0.6263736263736264\n", "Harroui 1\n", "Ceide 1\n", "Grassi 0.6124542124542124\n", "Krunic 0.5532967032967033\n", "Linetty 1\n", "Miguel Veloso 1\n", "Ekdal 0.8833474218089602\n", "Schouten 1\n", "Saelemaekers 0.43034188034188037\n", "Basic 0.7631678666161424\n", "Aebischer 1\n", "Ranocchia F. affine to Henderson L.\n", "Ranocchia F. 0.34945054945054943\n", "Verre 1\n", "Gagliardini 0.6147741147741148\n", "Vieira 1\n", "Castrovilli 0.0\n", "Maldini 1\n", "Maldini 1\n", "Marin 0.8931623931623932\n", "Maleh 0.5532967032967033\n", "Matheus Henrique 0.70821978021978\n", "Asllani 0.6989966555183946\n", "Duncan 0.5365301365301365\n", "Molina S. 0.39598332701780975\n", "Kastanos 0.5737891737891738\n", "Bohinen 1\n", "Benassi 0.38278388278388276\n", "Vignato 0.7377289377289377\n", "Obiang 1\n", "Obiang 0.26826506826506824\n", "Askildsen 1\n", "Hongla 1\n", "Yepes 1\n", "Capezzi 0.0\n", "Jajalo 0.20119880119880118\n", "Bakayoko 0.0\n", "Fagioli affine to Henderson L.\n", "Fagioli 0.34945054945054943\n", "Demme 0.34945054945054943\n", "Akpa Akpro 0.0\n", "Akpa Akpro 0.0\n", "Darboe 0.0\n", "Darboe 0.44263736263736264\n", "Bove 1\n", "Bove 1\n", "Urbanski 0.0\n", "Romero L. 0.5532967032967032\n", "Bianco 0.0\n", "Sher 0.0\n", "Nguiamba 0.0\n", "Volpato 1\n", "Praszelik 0.0\n", "Immobile 0.7853243530662884\n", "Vlahovic 1\n", "Rafael Leao 0.846218487394958\n", "Martinez L. 0.8852747252747253\n", "Dybala 0.6335733232284956\n", "Arnautovic 0.8047952047952047\n", "Beto 1\n", "Giroud 0.9158014399393709\n", "Osimhen 0.8196988196988197\n", "Deulofeu 0.9113122171945701\n", "Lukaku 0.2459096459096459\n", "Pedro 0.829945054945055\n", "Abraham 0.8374220374220374\n", "Berardi 0.40239760239760236\n", "Simeone 0.5249607535321821\n", "Correa 1\n", "Zapata D. 0.7377289377289377\n", "Dzeko 0.8606837606837607\n", "Nzola 1\n", "Sanabria 0.6868510799545282\n", "Muriel 0.7377289377289378\n", "Rebic 0.829945054945055\n", "Bonazzoli 0.9682692307692308\n", "Caprari 0.9186813186813187\n", "Di Maria affine to Chiesa\n", "Di Maria 0.94850863422292\n", "Lozano 0.959047619047619\n", "Pinamonti 0.8931623931623932\n", "Barrow 0.6509372979961215\n", "Henry 0.9743589743589743\n", "Piatek 1\n", "Gonzalez N. 0.40239760239760236\n", "Caputo 0.8606837606837607\n", "Raspadori 0.6379731379731379\n", "Okereke 1\n", "Cabral 1\n", "Gabbiadini 1\n", "Belotti 1\n", "Origi affine to Rebic\n", "Origi 0.829945054945055\n", "Alvarez A. affine to Raspadori\n", "Alvarez A. 0.5532967032967033\n", "Verde 0.4694638694638694\n", "Destro 0.8506308506308506\n", "Kean 0.829945054945055\n", "Pellegri 1\n", "Success 1\n", "Lasagna 0.94850863422292\n", "Pjaca 0.6698717948717949\n", "Petagna 0.8612637362637364\n", "Nestorovski 1\n", "Nestorovski 0.502997002997003\n", "Piccoli affine to Lasagna\n", "Piccoli 0.3161695447409733\n", "Kallon 1\n", "Di Francesco F. 1\n", "Boga 0.7377289377289378\n", "Quagliarella 0.7377289377289377\n", "Ibrahimovic 0.0\n", "Shomurodov 0.47425431711146\n", "Djuric 1\n", "Strelec 1\n", "Antiste 0.25518925518925517\n", "Seck 1\n", "Sansone 0.6557590557590557\n", "Pussetto 0.41012558869701726\n", "Afena-Gyan 0.9457013574660633\n", "Defrel 0.23296703296703294\n", "Cancellieri 1\n", "Edera 0.0\n", "Oddei 0.0\n", "Oddei 0.8852747252747253\n", "Raimondo 0.0\n", "Kaio Jorge 0.0\n", "Lazetic 1\n", "Players with low quantity of games:\n", "Masina 0.6666666666666667\n", "Dest 0.6666666666666667\n", "Thiaw 0.5\n", "Donati 0.6666666666666667\n", "Umtiti 0.6666666666666667\n", "Ostigard 0.5\n", "Sambia 0.8333333333333334\n", "Aiwu 0.0\n", "Hendry 0.33333333333333337\n", "Pirola 0.8333333333333334\n", "Amione 0.6666666666666667\n", "Gatti 0.5\n", "Gila 0.5\n", "Cabal 0.5\n", "Sosa 0.5\n", "Conti 0.8504971219256934\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Dermaku 0.16666666666666663\n", "Paletta 0.0\n", "Romagna 0.0\n", "Cetin 0.681013431013431\n", "Adopo 0.5\n", "Antov 0.6666666666666667\n", "Amey 0.16666666666666663\n", "Ferrarini 0.0\n", "Kamenovic 0.16666666666666663\n", "Zanotti 0.0\n", "Motoc 0.0\n", "Bayeye 0.0\n", "Ebosele 0.33333333333333337\n", "Buta 0.0\n", "Ndiaye 0.0\n", "Abankwah 0.0\n", "Guessand A. 0.0\n", "Guarino 0.0\n", "Pogba 0.0\n", "Wijnaldum 0.16666666666666663\n", "Vranckx 0.5\n", "Winks 0.0\n", "Maldini 0.8333333333333334\n", "Moro N. 0.6666666666666667\n", "Valoti 0.8333333333333334\n", "Gaetano 0.5\n", "Bohinen 0.8333333333333334\n", "Milanese 0.16666666666666663\n", "Listkowski 0.8333333333333334\n", "Adli 0.6666666666666667\n", "Hrustic 0.8333333333333334\n", "D'andrea 0.8333333333333334\n", "Baez 0.33333333333333337\n", "Yepes 0.6666666666666667\n", "Bondo 0.6666666666666667\n", "Capezzi 0.8333333333333334\n", "Machin 0.0\n", "Scozzarella 0.0\n", "Akpa Akpro 0.0\n", "Darboe 0.5382417582417582\n", "Bove 0.8333333333333334\n", "Urbanski 0.16666666666666663\n", "Bertini 0.0\n", "Cortinovis 0.16666666666666663\n", "Romero L. 0.78003663003663\n", "Bianco 0.0\n", "Sher 0.16666666666666663\n", "Nguiamba 0.5\n", "Volpato 0.5\n", "Praszelik 0.33333333333333337\n", "Trimboli 0.0\n", "Pafundi 0.0\n", "Bjorkengren 0.0\n", "Vignato S. 0.16666666666666663\n", "Samek 0.0\n", "Zerbin 0.6666666666666667\n", "Ilkhan 0.6666666666666667\n", "Degli Innocenti 0.16666666666666663\n", "Acella 0.0\n", "Tripi 0.0\n", "Garbett 0.0\n", "Iling-Junior 0.33333333333333337\n", "Tsadjout 0.5\n", "Rodriguez P. 0.6666666666666667\n", "Edera 0.0\n", "Oddei 0.39069597069597073\n", "Raimondo 0.16666666666666663\n", "Kristoffersen 0.16666666666666663\n", "De Luca 0.16666666666666663\n", "Soule' 0.8333333333333334\n", "Lazetic 0.16666666666666663\n", "Voelkerling Persson 0.0\n", "Sanca 0.5\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", "\n", "players = players_orig.copy()\n", "\n", "min_games = 6\n", "\n", "current_season_games = 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", "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", " \n", " # to handle players like Lukaku, 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))\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", "mean_players_stats = players_orig.loc[players_orig.index[0]][cols_toadapt] * 0\n", "count = 0\n", "\n", "for i in range(players_orig.shape[0]):\n", " if(players_orig['games'][i] >= min_games and (players_orig['r'][i] == 'D')): # counting only defenders, to add a penalty\n", " mean_players_stats += players_orig.loc[players_orig.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": 10, "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=156)" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "players.columns[9:]" ] }, { "cell_type": "code", "execution_count": 11, "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 - dribble_tackles_pct\n", "19 - dribbles_completed_pct\n", "20 - aerials_won_pct\n", "21 - team_possession\n", "22 - team_goals_assists_per90\n", "23 - team_goals_pens_per90\n", "24 - team_goals_assists_pens_per90\n", "25 - team_xg_per90\n", "26 - team_gk_goals_against_per90\n", "27 - team_gk_save_pct\n", "28 - team_gk_clean_sheets_pct\n", "29 - team_passes_pct\n", "30 - team_passes_pct_medium\n", "31 - team_passes_pct_long\n", "32 - team_sca_per90\n", "33 - team_gca_per90\n", "34 - team_dribble_tackles_pct\n", "35 - team_aerials_won_pct\n", "36 - vs_team_possession\n", "37 - vs_team_goals_per90\n", "38 - vs_team_assists_per90\n", "39 - vs_team_xg_per90\n", "40 - vs_team_gk_save_pct\n", "41 - vs_team_gk_clean_sheets_pct\n", "42 - vs_team_gk_pct_passes_launched\n", "43 - vs_team_gk_crosses_stopped_pct\n", "44 - vs_team_shots_on_target_per90\n", "45 - vs_team_passes_pct\n", "46 - vs_team_passes_pct_short\n", "47 - vs_team_passes_pct_medium\n", "48 - vs_team_passes_pct_long\n", "49 - vs_team_sca_per90\n", "50 - vs_team_gca_per90\n", "51 - vs_team_dribble_tackles_pct\n", "52 - vs_team_dribbles_completed_pct\n", "53 - vs_team_aerials_won_pct\n", "54 - opp_team_possession\n", "55 - opp_team_goals_assists_per90\n", "56 - opp_team_goals_pens_per90\n", "57 - opp_team_goals_assists_pens_per90\n", "58 - opp_team_xg_per90\n", "59 - opp_team_gk_goals_against_per90\n", "60 - opp_team_gk_save_pct\n", "61 - opp_team_gk_clean_sheets_pct\n", "62 - opp_team_passes_pct\n", "63 - opp_team_passes_pct_medium\n", "64 - opp_team_passes_pct_long\n", "65 - opp_team_sca_per90\n", "66 - opp_team_gca_per90\n", "67 - opp_team_dribble_tackles_pct\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_dribble_tackles_pct\n", "85 - opp_vs_team_dribbles_completed_pct\n", "86 - opp_vs_team_aerials_won_pct\n", "87 - vote_avg\n", "88 - vote_std\n", "89 - goals.1\n", "90 - assists.1\n", "91 - cards_yellow\n", "92 - cards_red\n", "93 - xg\n", "94 - npxg\n", "95 - shots_on_target\n", "96 - passes_completed\n", "97 - passes_into_final_third\n", "98 - passes_into_penalty_area\n", "99 - progressive_passes\n", "100 - passes_live\n", "101 - passes_dead\n", "102 - through_balls\n", "103 - passes_switches\n", "104 - crosses\n", "105 - corner_kicks\n", "106 - dribble_tackles\n", "107 - dribbles_vs\n", "108 - dribbled_past\n", "109 - blocks\n", "110 - blocked_shots\n", "111 - blocked_passes\n", "112 - interceptions\n", "113 - clearances\n", "114 - errors\n", "115 - touches\n", "116 - touches_def_pen_area\n", "117 - touches_def_3rd\n", "118 - touches_mid_3rd\n", "119 - touches_att_3rd\n", "120 - touches_att_pen_area\n", "121 - touches_live_ball\n", "122 - dribbles_completed\n", "123 - dribbles\n", "124 - passes_received\n", "125 - miscontrols\n", "126 - dispossessed\n", "127 - fouls\n", "128 - fouled\n", "129 - aerials_won\n", "130 - aerials_lost\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": 12, "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": 13, "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": 14, "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_dribble_tackles_pct\n", "39 - team_aerials_won_pct\n", "40 - vs_team_possession\n", "41 - vs_team_goals_per90\n", "42 - vs_team_assists_per90\n", "43 - vs_team_xg_per90\n", "44 - vs_team_gk_save_pct\n", "45 - vs_team_gk_clean_sheets_pct\n", "46 - vs_team_gk_pct_passes_launched\n", "47 - vs_team_gk_crosses_stopped_pct\n", "48 - vs_team_shots_on_target_per90\n", "49 - vs_team_passes_pct\n", "50 - vs_team_passes_pct_short\n", "51 - vs_team_passes_pct_medium\n", "52 - vs_team_passes_pct_long\n", "53 - vs_team_sca_per90\n", "54 - vs_team_gca_per90\n", "55 - vs_team_dribble_tackles_pct\n", "56 - vs_team_dribbles_completed_pct\n", "57 - vs_team_aerials_won_pct\n", "58 - opp_team_possession\n", "59 - opp_team_goals_assists_per90\n", "60 - opp_team_goals_pens_per90\n", "61 - opp_team_goals_assists_pens_per90\n", "62 - opp_team_xg_per90\n", "63 - opp_team_gk_goals_against_per90\n", "64 - opp_team_gk_save_pct\n", "65 - opp_team_gk_clean_sheets_pct\n", "66 - opp_team_passes_pct\n", "67 - opp_team_passes_pct_medium\n", "68 - opp_team_passes_pct_long\n", "69 - opp_team_sca_per90\n", "70 - opp_team_gca_per90\n", "71 - opp_team_dribble_tackles_pct\n", "72 - opp_team_aerials_won_pct\n", "73 - opp_vs_team_possession\n", "74 - opp_vs_team_goals_per90\n", "75 - opp_vs_team_assists_per90\n", "76 - opp_vs_team_xg_per90\n", "77 - opp_vs_team_gk_save_pct\n", "78 - opp_vs_team_gk_clean_sheets_pct\n", "79 - opp_vs_team_gk_pct_passes_launched\n", "80 - opp_vs_team_gk_crosses_stopped_pct\n", "81 - opp_vs_team_shots_on_target_per90\n", "82 - opp_vs_team_passes_pct\n", "83 - opp_vs_team_passes_pct_short\n", "84 - opp_vs_team_passes_pct_medium\n", "85 - opp_vs_team_passes_pct_long\n", "86 - opp_vs_team_sca_per90\n", "87 - opp_vs_team_gca_per90\n", "88 - opp_vs_team_dribble_tackles_pct\n", "89 - opp_vs_team_dribbles_completed_pct\n", "90 - opp_vs_team_aerials_won_pct\n", "91 - vote_avg\n", "92 - vote_std\n", "93 - gk_shots_on_target_against\n", "94 - gk_saves\n", "95 - gk_free_kick_goals_against\n", "96 - gk_corner_kick_goals_against\n", "97 - gk_own_goals_against\n", "98 - gk_psxg\n", "99 - gk_psnpxg_per_shot_on_target_against\n", "100 - gk_psxg_net\n", "101 - gk_passes_completed_launched\n", "102 - gk_passes_launched\n", "103 - gk_passes\n", "104 - gk_passes_throws\n", "105 - gk_goal_kicks\n", "106 - gk_crosses\n", "107 - 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": 15, "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": 16, "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": 17, "id": "04564bee", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.1569906306642661\n", "0.19152381866355805\n" ] }, { "data": { "image/png": "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as6cOSgpKZF+zpw5c40tttfC3xfvTe6DSf3bY+kjQxAb1qLe74OIiIhqV+/TmsPDw+Hj42PXm5Kfn2/Xi2IVFRXlcHtfX1+0aeO4YqzBYIDBYKifRjtxc5e2uLlLW7ffDxEREamr9x4Wf39/JCUlYf369YrL169fjyFDhji8zeDBg+22T09PR//+/eHn51ffTSQiIqJGxi1DQrNnz8b//u//4v/+7/9w5MgRPP3008jJycHMmTMBiMM59913n7T9zJkzcfr0acyePRtHjhzB//3f/+HTTz/FM888447mERERUSPjlkq3kydPRmFhIf7xj38gNzcXPXv2xOrVqxEfHw8AyM3NVdRkSUhIwOrVq/H000/j448/RkxMDD788EPcdddd7mgeERERNTJuqcPiCe6sw0JERETu4bE6LERERET1jQELEREReT0GLEREROT1GLAQERGR12PAQkRERF6PAQsRERF5PQYsRERE5PUYsBAREZHXY8BCREREXs8tpfk9wVqw12g0erglREREpJX1uF1b4f0mE7BcvnwZABAbG+vhlhAREZGrLl++jNDQUNXrm8xaQmazGefPn0dwcDB0Ol297ddoNCI2NhZnzpzhGkWNAF+vxoOvVePB16pxaWyvlyAIuHz5MmJiYqDXq2eqNJkeFr1ej/bt27tt/yEhIY3ihScRX6/Gg69V48HXqnFpTK+Xs54VKybdEhERkddjwEJERERejwFLLQwGA1555RUYDAZPN4U04OvVePC1ajz4WjUuTfX1ajJJt0RERNR0sYeFiIiIvB4DFiIiIvJ6DFiIiIjI6zFgISIiIq/HgKUWCxYsQEJCAgICApCUlISff/7Z000iG6+++ip0Op3iJyoqytPNIott27Zh/PjxiImJgU6nw7JlyxTXC4KAV199FTExMQgMDMQtt9yCQ4cOeaaxzVxtr9WMGTPsPmuDBg3yTGObuXnz5mHAgAEIDg5GREQEJk6ciMzMTMU2Te2zxYDFiW+//RZPPfUUXnzxRezbtw8333wzUlJSkJOT4+mmkY0ePXogNzdX+jl48KCnm0QWZWVl6N27N+bPn+/w+rfffhv//ve/MX/+fOzatQtRUVEYPXq0tD4YNZzaXisAGDt2rOKztnr16gZsIVlt3boVjz32GHbu3In169ejuroaY8aMQVlZmbRNk/tsCaTqhhtuEGbOnKm4rFu3bsLzzz/voRaRI6+88orQu3dvTzeDNAAgpKWlSf+bzWYhKipKePPNN6XLysvLhdDQUGHRokUeaCFZ2b5WgiAI999/vzBhwgSPtIecy8/PFwAIW7duFQShaX622MOiorKyEnv27MGYMWMUl48ZMwa//vqrh1pFao4dO4aYmBgkJCTgnnvuwcmTJz3dJNIgOzsbeXl5is+ZwWDAsGHD+DnzUlu2bEFERAQSExPx4IMPIj8/39NNIgAlJSUAgLCwMABN87PFgEVFQUEBTCYTIiMjFZdHRkYiLy/PQ60iRwYOHIgvv/wS69atw3//+1/k5eVhyJAhKCws9HTTqBbWzxI/Z41DSkoKFi9ejE2bNuHdd9/Frl27MGLECFRUVHi6ac2aIAiYPXs2brrpJvTs2RNA0/xsNZnVmt1Fp9Mp/hcEwe4y8qyUlBTp7169emHw4MHo1KkTvvjiC8yePduDLSOt+DlrHCZPniz93bNnT/Tv3x/x8fFYtWoV7rzzTg+2rHl7/PHHceDAAWzfvt3uuqb02WIPi4rw8HD4+PjYRaL5+fl2ESt5l6CgIPTq1QvHjh3zdFOoFtbZXPycNU7R0dGIj4/nZ82DZs2ahRUrVmDz5s1o3769dHlT/GwxYFHh7++PpKQkrF+/XnH5+vXrMWTIEA+1irSoqKjAkSNHEB0d7emmUC0SEhIQFRWl+JxVVlZi69at/Jw1AoWFhThz5gw/ax4gCAIef/xx/Pjjj9i0aRMSEhIU1zfFzxaHhJyYPXs2pk+fjv79+2Pw4MH45JNPkJOTg5kzZ3q6aSTzzDPPYPz48YiLi0N+fj7eeOMNGI1G3H///Z5uGgEoLS3F8ePHpf+zs7ORkZGBsLAwxMXF4amnnsLcuXPRpUsXdOnSBXPnzkWLFi0wZcoUD7a6eXL2WoWFheHVV1/FXXfdhejoaJw6dQovvPACwsPDcccdd3iw1c3TY489hq+//hrLly9HcHCw1JMSGhqKwMBA6HS6pvfZ8ugcpUbg448/FuLj4wV/f3+hX79+0pQx8h6TJ08WoqOjBT8/PyEmJka48847hUOHDnm6WWSxefNmAYDdz/333y8Igjj98pVXXhGioqIEg8EgDB06VDh48KBnG91MOXutrly5IowZM0Zo27at4OfnJ8TFxQn333+/kJOT4+lmN0uOXicAwmeffSZt09Q+WzpBEISGD5OIiIiItGMOCxEREXk9BixERETk9RiwEBERkddjwEJERERejwELEREReT0GLEREROT1GLAQERGR12PAQkRERF6PAQsRERF5PQYsRERE5PUYsBAREZHXY8BCREREXu//AXrvaKbgwO1mAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "0.1532751047011487\n", "0.17630547391900842\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": 17, "id": "8aad9652", "metadata": {}, "outputs": [], "source": [ "load_model_of = True# load scaler and model weights for outfield player predictor\n", "refit_model_of = False\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": 18, "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": 19, "id": "c2674211", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.1422293477741312\n", "0.16931391630989778\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "0.1431761226649988\n", "0.16687106328443524\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": 19, "id": "41e7e1ee", "metadata": {}, "outputs": [], "source": [ "load_model_gk = True # load scaler and model weights for goalkeeper player predictor\n", "refit_model_gk = False\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 = 2000\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 = 1.5\n", "\n", "\n", "callback = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience = 30)\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=\"sigmoid\") (inputs)\n", "x = tfk.layers.Dropout(0.3)(x)\n", "x = tfk.layers.Dense(16, activation=\"sigmoid\") (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", "\n", "x22 = tfk.layers.Dense(prob_dist_params, activation=\"linear\")(x2)\n", "out_2 = tfp.layers.DistributionLambda(prob_dist)(x22)\n", "\n", "x23 = tfk.layers.Dense(1, activation=\"sigmoid\")(x2)\n", "out_3 = tfp.layers.DistributionLambda(lambda t: tfp.distributions.Bernoulli(probs = t[..., 0]))(x23)\n", "\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": 20, "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": 22, "id": "c41cf448", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.45257318940839\n", "0.5349007718848356\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "0.37645262592381834\n", "0.43365123619886836\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiwAAAGdCAYAAAAxCSikAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABgEklEQVR4nO3dd3hUZfr/8fekB0gCAdIgQIAEpBhCBykK0kUQFARFXHfddZcmqCvqurb9ir1Q1N/uIugiiEhVQIp0QQRJaAKhBIJAgBBSKGkz5/fHJEOGFBJImEnyeV3XXMmc85yT++QwnDtPNRmGYSAiIiLixFwcHYCIiIjIjShhEREREaenhEVEREScnhIWERERcXpKWERERMTpKWERERERp6eERURERJyeEhYRERFxem6ODqC0WCwWTp8+jY+PDyaTydHhiIiISDEYhkFaWhohISG4uBRej1JhEpbTp08TGhrq6DBERETkJpw8eZK6desWur/CJCw+Pj6A9YJ9fX0dHI2IiIgUR2pqKqGhobbneGEqTMKS2wzk6+urhEVERKScuVF3DnW6FREREaenhEVEREScnhIWERERcXpKWERERMTpKWERERERp6eERURERJyeEhYRERFxekpYRERExOkpYRERERGnV6KEZcqUKbRr1w4fHx8CAgIYPHgwhw4dsitjGAavvvoqISEheHt7c/fdd7N///4bnnvhwoU0a9YMT09PmjVrxuLFi0t2JSIiIlJhlShh2bhxI2PGjOHnn39mzZo1ZGdn07t3by5fvmwr88477/DBBx8wffp0duzYQVBQEL169SItLa3Q827bto3hw4czatQodu/ezahRoxg2bBjbt2+/+SsTERGRCsNkGIZxswefP3+egIAANm7cSLdu3TAMg5CQEJ5++mmef/55ADIyMggMDOTtt9/mL3/5S4HnGT58OKmpqaxcudK2rW/fvtSoUYN58+YVK5bU1FT8/PxISUnRWkIiIiLlRHGf37fUhyUlJQUAf39/AOLi4khISKB37962Mp6ennTv3p2tW7cWep5t27bZHQPQp0+fIo/JyMggNTXV7iUiIiKl74d9Z3jqf79ittx0Hcctu+mExTAMJk2aRJcuXWjRogUACQkJAAQGBtqVDQwMtO0rSEJCQomPmTJlCn5+frZXaGjozV6KiIiIFCA9y8wrS/fx1Jxd/LA/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\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": 21, "id": "cecf5392", "metadata": {}, "outputs": [], "source": [ "save_model_of = False\n", "save_model_gk = False\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": 22, "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": 23, "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": 24, "id": "62b9f588", "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", "
matchdayteam1team2
01FiorentinaCremonese
11VeronaNapoli
21JuventusSassuolo
31LazioBologna
41LecceInter
............
37538MilanLazio
37638SassuoloMonza
37738NapoliSalernitana
37838UdineseSampdoria
37938RomaSpezia
\n", "

380 rows × 3 columns

\n", "
" ], "text/plain": [ " matchday team1 team2\n", "0 1 Fiorentina Cremonese\n", "1 1 Verona Napoli\n", "2 1 Juventus Sassuolo\n", "3 1 Lazio Bologna\n", "4 1 Lecce Inter\n", ".. ... ... ...\n", "375 38 Milan Lazio\n", "376 38 Sassuolo Monza\n", "377 38 Napoli Salernitana\n", "378 38 Udinese Sampdoria\n", "379 38 Roma Spezia\n", "\n", "[380 rows x 3 columns]" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cal_df" ] }, { "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": 25, "id": "861a06ce", "metadata": {}, "outputs": [], "source": [ "matchday = 15" ] }, { "cell_type": "code", "execution_count": 26, "id": "c58ba41d", "metadata": {}, "outputs": [], "source": [ "def PlayerMatch(player, match = matchday):\n", " team = players.loc[player]['team']\n", " \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 = matchday, 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": 27, "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
Vicario1.0100
Ebuehi1.0100
Ismajli1.0100
Walukiewicz1.0100
Parisi1.0100
.........
Basic0.055
Bertini0.010
Marcos Antonio0.050
Romero L.0.050
Cancellieri0.455
\n", "

449 rows × 2 columns

\n", "
" ], "text/plain": [ " starter percentage\n", "player \n", "Vicario 1.0 100\n", "Ebuehi 1.0 100\n", "Ismajli 1.0 100\n", "Walukiewicz 1.0 100\n", "Parisi 1.0 100\n", "... ... ...\n", "Basic 0.0 55\n", "Bertini 0.0 10\n", "Marcos Antonio 0.0 50\n", "Romero L. 0.0 50\n", "Cancellieri 0.4 55\n", "\n", "[449 rows x 2 columns]" ] }, "execution_count": 27, "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": 30, "id": "5e63c2b7", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Meret: MV 6.33 ± 0.80; FV 5.10 + 1.31 (16.0% cs)\n", "Provedel: MV 6.21 ± 0.81; FV 5.42 + 1.22 (41.5% cs)\n", "Maignan: MV 6.27 ± 0.84; FV 5.66 + 1.16 (56.8% cs)\n", "Silvestri: MV 6.34 ± 0.71; FV 4.18 + 1.60 (2.7% cs)\n", "Sepe: MV 6.39 ± 0.74; FV 4.76 + 1.42 (6.4% cs)\n", "Szczesny: MV 6.15 ± 0.77; FV 5.54 + 1.19 (47.8% cs)\n", "Consigli: MV 6.12 ± 0.70; FV 4.86 + 1.35 (12.9% cs)\n", "Falcone: MV 6.34 ± 0.79; FV 5.47 + 1.21 (34.2% cs)\n", "Musso: MV 6.42 ± 0.88; FV 5.22 + 1.28 (23.7% cs)\n", "Vicario: MV 6.32 ± 0.85; FV 5.64 + 1.17 (51.2% cs)\n", "Rui Patricio: MV 6.22 ± 0.80; FV 5.60 + 1.18 (51.2% cs)\n", "Milinkovic-Savic V.: MV 6.27 ± 0.77; FV 4.90 + 1.38 (12.4% cs)\n", "Audero: MV 6.34 ± 0.77; FV 5.27 + 1.28 (17.9% cs)\n", "Montipo': MV 6.44 ± 0.78; FV 5.19 + 1.29 (13.4% cs)\n", "Sportiello: MV 6.32 ± 0.86; FV 5.06 + 1.31 (18.5% cs)\n", "Skorupski: MV 6.34 ± 0.80; FV 4.68 + 1.42 (8.3% cs)\n", "Di Gregorio: MV 5.83 ± 0.80; FV 3.91 + 1.59 (4.5% cs)\n", "Perin: MV 6.21 ± 0.80; FV 5.55 + 1.19 (48.3% cs)\n", "Handanovic: MV 5.89 ± 0.66; FV 3.40 + 1.88 (1.4% cs)\n", "Tatarusanu: MV 6.22 ± 0.78; FV 5.53 + 1.19 (45.2% cs)\n", "Gollini: MV 6.28 ± 0.79; FV 5.22 + 1.28 (22.2% cs)\n", "Dragowski: MV 6.52 ± 0.82; FV 5.18 + 1.30 (13.1% cs)\n", "Terracciano: MV 6.30 ± 0.71; FV 4.72 + 1.43 (5.7% cs)\n", "Berisha: MV 6.27 ± 0.77; FV 4.90 + 1.38 (12.4% cs)\n", "Radu I.: MV 6.22 ± 0.79; FV 5.35 + 1.23 (35.3% cs)\n", "Cragno: MV 5.83 ± 0.80; FV 3.91 + 1.59 (4.5% cs)\n", "Luis Maximiano: MV 6.22 ± 0.84; FV 5.19 + 1.26 (33.8% cs)\n", "Onana: MV 6.32 ± 0.73; FV 5.05 + 1.33 (11.7% cs)\n", "Carnesecchi: MV 6.17 ± 0.82; FV 5.58 + 1.17 (56.1% cs)\n", "Mirante: MV 6.27 ± 0.84; FV 5.66 + 1.16 (56.8% cs)\n", "Sarr M.: MV 6.22 ± 0.79; FV 5.35 + 1.23 (35.3% cs)\n", "Lamanna: MV 5.83 ± 0.80; FV 3.91 + 1.59 (4.5% cs)\n", "Ujkani: MV 6.32 ± 0.85; FV 5.64 + 1.17 (51.2% cs)\n", "Pegolo: MV 6.12 ± 0.70; FV 4.86 + 1.35 (12.9% cs)\n", "Perilli: MV 6.44 ± 0.78; FV 5.19 + 1.29 (13.4% cs)\n", "Padelli: MV 6.34 ± 0.71; FV 4.18 + 1.60 (2.7% cs)\n", "Perisan: MV 6.32 ± 0.85; FV 5.64 + 1.17 (51.2% cs)\n", "Bardi: MV 6.34 ± 0.80; FV 4.68 + 1.42 (8.3% cs)\n", "Cordaz: MV 5.89 ± 0.66; FV 3.40 + 1.88 (1.4% cs)\n", "Pinsoglio: MV 6.15 ± 0.77; FV 5.54 + 1.19 (47.8% cs)\n", "Fiorillo: MV 6.39 ± 0.74; FV 4.76 + 1.42 (6.4% cs)\n", "Sirigu: MV 6.33 ± 0.80; FV 5.10 + 1.31 (16.0% cs)\n", "Cerofolini: MV 6.30 ± 0.71; FV 4.72 + 1.43 (5.7% cs)\n", "Rossi F.: MV 6.42 ± 0.88; FV 5.22 + 1.28 (23.7% cs)\n", "Contini: MV 6.34 ± 0.77; FV 5.27 + 1.28 (17.9% cs)\n", "Brancolini: MV 6.34 ± 0.79; FV 5.47 + 1.21 (34.2% cs)\n", "Bleve: MV 6.34 ± 0.79; FV 5.47 + 1.21 (34.2% cs)\n", "Berardi A.: MV 6.44 ± 0.78; FV 5.19 + 1.29 (13.4% cs)\n", "Russo A.: MV 6.12 ± 0.70; FV 4.86 + 1.35 (12.9% cs)\n", "Gemello: MV 6.27 ± 0.77; FV 4.90 + 1.38 (12.4% cs)\n", "Ravaglia: MV 6.34 ± 0.77; FV 5.27 + 1.28 (17.9% cs)\n", "Zoet: MV 6.51 ± 0.83; FV 5.20 + 1.29 (14.8% cs)\n", "Boer: MV 6.22 ± 0.80; FV 5.60 + 1.18 (51.2% cs)\n", "Adamonis: MV 6.21 ± 0.81; FV 5.42 + 1.22 (41.5% cs)\n", "Marfella: MV 6.33 ± 0.80; FV 5.10 + 1.31 (16.0% cs)\n", "Zovko: MV 6.52 ± 0.82; FV 5.18 + 1.30 (13.1% cs)\n", "Piana: MV 6.34 ± 0.71; FV 4.18 + 1.60 (2.7% cs)\n", "Bagnolini: MV 6.34 ± 0.80; FV 4.68 + 1.42 (8.3% cs)\n", "Svilar: MV 6.22 ± 0.80; FV 5.60 + 1.18 (51.2% cs)\n", "Sorrentino A.: MV 5.83 ± 0.80; FV 3.91 + 1.59 (4.5% cs)\n", "Ciezkowski: MV 6.22 ± 0.79; FV 5.35 + 1.23 (35.3% cs)\n", "Micai: MV 6.39 ± 0.74; FV 4.76 + 1.42 (6.4% cs)\n", "Chiesa M.: MV 6.44 ± 0.78; FV 5.19 + 1.29 (13.4% cs)\n", "Saro: MV 6.22 ± 0.79; FV 5.35 + 1.23 (35.3% cs)\n", "Smalling: MV 6.17 ± 1.06; FV 6.60 + 1.91\n", "Hernandez T.: MV 6.30 ± 1.06; FV 6.85 + 2.12\n", "Kim: MV 6.25 ± 0.88; FV 6.57 + 1.40\n", "Bastoni S.: MV 6.22 ± 1.06; FV 7.07 + 2.89\n", "Udogie: MV 5.90 ± 1.03; FV 6.16 + 1.60\n", "Dumfries: MV 5.93 ± 0.89; FV 6.14 + 1.36\n", "Romagnoli: MV 6.05 ± 0.80; FV 6.12 + 0.81\n", "Rodrigo Becao: MV 5.93 ± 0.87; FV 6.05 + 1.12\n", "Parisi: MV 6.19 ± 0.83; FV 6.53 + 1.54\n", "Mazzocchi: MV 6.21 ± 1.07; FV 6.85 + 2.38\n", "Bremer: MV 6.06 ± 0.75; FV 6.14 + 0.83\n", "Demiral: MV 5.95 ± 1.08; FV 6.28 + 1.90\n", "Valeri: MV 6.10 ± 0.70; FV 6.41 + 1.30\n", "Dimarco: MV 6.14 ± 1.04; FV 6.61 + 1.97\n", "Di Lorenzo: MV 6.09 ± 0.70; FV 6.20 + 0.82\n", "Ibanez: MV 6.01 ± 0.94; FV 6.07 + 0.90\n", "Tomori: MV 6.16 ± 0.83; FV 6.42 + 1.28\n", "Toloi: MV 6.17 ± 0.94; FV 6.60 + 1.78\n", "Gosens: MV 5.75 ± 0.65; FV 5.80 + 0.85\n", "Rrahmani: MV 6.13 ± 0.78; FV 6.24 + 0.89\n", "Kalulu: MV 6.06 ± 0.71; FV 6.10 + 0.70\n", "Bijol: MV 5.86 ± 0.96; FV 6.05 + 1.43\n", "Doig: MV 6.32 ± 1.08; FV 7.19 + 2.96\n", "Mario Rui: MV 6.10 ± 0.77; FV 6.25 + 0.98\n", "Spinazzola: MV 5.98 ± 0.66; FV 5.98 + 0.65\n", "Lazzari: MV 5.93 ± 0.75; FV 5.94 + 0.65\n", "Mancini: MV 6.04 ± 0.76; FV 6.07 + 0.67\n", "Danilo: MV 6.03 ± 0.90; FV 6.10 + 0.75\n", "Kyriakopoulos: MV 5.90 ± 0.90; FV 6.09 + 1.36\n", "Vojvoda: MV 5.93 ± 0.76; FV 5.98 + 0.83\n", "Scalvini: MV 5.95 ± 1.08; FV 6.26 + 1.85\n", "Carlos Augusto: MV 5.98 ± 0.97; FV 6.37 + 1.71\n", "Skriniar: MV 5.75 ± 0.68; FV 5.70 + 0.58\n", "Schuurs: MV 5.98 ± 0.73; FV 6.02 + 0.66\n", "Juan Jesus: MV 6.14 ± 0.71; FV 6.34 + 1.09\n", "Bonucci: MV 5.98 ± 0.92; FV 6.18 + 1.28\n", "Calabria: MV 6.10 ± 0.68; FV 6.27 + 0.97\n", "Bastoni: MV 5.84 ± 0.91; FV 5.86 + 0.82\n", "Depaoli: MV 6.12 ± 1.00; FV 6.95 + 2.72\n", "Darmian: MV 5.85 ± 0.64; FV 5.85 + 0.63\n", "Sernicola: MV 6.03 ± 0.82; FV 6.34 + 1.56\n", "Mari': MV 5.91 ± 1.20; FV 6.44 + 2.26\n", "Martinez Quarta: MV 5.80 ± 1.06; FV 5.79 + 1.06\n", "Maehle: MV 5.97 ± 0.60; FV 5.98 + 0.75\n", "Olivera: MV 6.11 ± 0.70; FV 6.37 + 1.20\n", "Biraghi: MV 5.73 ± 0.79; FV 5.74 + 0.86\n", "Medel: MV 5.93 ± 0.77; FV 5.93 + 0.64\n", "Patric: MV 5.95 ± 0.78; FV 5.95 + 0.63\n", "Rodriguez R.: MV 5.83 ± 0.86; FV 5.84 + 0.70\n", "Aina: MV 5.90 ± 0.89; FV 6.02 + 1.13\n", "Cambiaso: MV 5.92 ± 0.84; FV 5.94 + 0.71\n", "Perez N.: MV 5.77 ± 1.20; FV 5.79 + 1.28\n", "Holm: MV 6.06 ± 0.86; FV 6.55 + 1.99\n", "Baschirotto: MV 6.24 ± 0.94; FV 6.64 + 1.69\n", "Dodo': MV 5.61 ± 0.85; FV 5.54 + 0.82\n", "Hysaj: MV 5.90 ± 0.63; FV 5.87 + 0.61\n", "Faraoni: MV 6.08 ± 0.76; FV 6.42 + 1.51\n", "Bianchetti: MV 5.81 ± 0.81; FV 5.86 + 0.92\n", "Milenkovic: MV 5.72 ± 1.13; FV 5.85 + 1.43\n", "Marusic: MV 5.86 ± 0.79; FV 5.87 + 0.71\n", "Colley: MV 5.73 ± 1.02; FV 5.93 + 1.48\n", "Toljan: MV 5.65 ± 0.80; FV 5.61 + 0.70\n", "Celik: MV 5.95 ± 0.71; FV 5.94 + 0.65\n", "Ampadu: MV 5.83 ± 0.87; FV 5.81 + 0.74\n", "Singo: MV 5.89 ± 0.72; FV 5.92 + 0.74\n", "Casale: MV 5.88 ± 0.79; FV 5.83 + 0.64\n", "Daniliuc: MV 5.87 ± 1.05; FV 5.85 + 0.89\n", "Pongracic: MV 5.96 ± 0.78; FV 5.96 + 0.65\n", "Soppy: MV 5.77 ± 0.83; FV 5.80 + 0.88\n", "Kiwior: MV 5.86 ± 0.81; FV 5.85 + 0.66\n", "Posch: MV 6.06 ± 1.23; FV 6.76 + 2.64\n", "Masina: MV 5.70 ± 0.80; FV 5.75 + 1.03\n", "Ghiglione: MV 5.95 ± 0.82; FV 6.01 + 0.90\n", "De Vrij: MV 5.69 ± 0.77; FV 5.66 + 0.72\n", "Alex Sandro: MV 5.70 ± 1.12; FV 5.70 + 0.85\n", "Ceccherini: MV 6.09 ± 0.95; FV 6.40 + 1.59\n", "Fazio: MV 5.96 ± 1.11; FV 5.92 + 1.05\n", "Rogerio: MV 5.65 ± 0.94; FV 5.61 + 0.91\n", "Reca: MV 6.13 ± 0.95; FV 6.74 + 2.24\n", "Gunter: MV 5.89 ± 0.78; FV 6.04 + 1.20\n", "Djidji: MV 5.77 ± 0.93; FV 5.89 + 1.17\n", "Augello: MV 5.80 ± 0.64; FV 5.80 + 0.64\n", "Bellanova: MV 5.74 ± 0.75; FV 5.72 + 0.68\n", "Erlic: MV 5.67 ± 1.02; FV 5.61 + 0.92\n", "Ismajli: MV 6.01 ± 0.72; FV 6.02 + 0.62\n", "Ebuehi: MV 5.91 ± 0.72; FV 5.87 + 0.60\n", "Kasius: MV 6.03 ± 0.83; FV 6.13 + 0.83\n", "Lucumi': MV 5.79 ± 0.78; FV 5.76 + 0.65\n", "Hien: MV 5.84 ± 0.76; FV 5.83 + 0.67\n", "Acerbi: MV 5.93 ± 0.79; FV 5.98 + 0.76\n", "Zappacosta: MV 5.96 ± 0.75; FV 6.11 + 1.07\n", "Chiriches: MV 5.81 ± 1.06; FV 5.75 + 0.78\n", "Gyomber: MV 5.75 ± 0.96; FV 5.71 + 0.74\n", "Pezzella Giu.: MV 6.00 ± 0.70; FV 6.02 + 0.67\n", "Ferrari G.: MV 5.65 ± 0.99; FV 5.59 + 0.82\n", "Bereszynski: MV 5.76 ± 0.63; FV 5.73 + 0.54\n", "Hateboer: MV 5.66 ± 0.84; FV 5.71 + 1.19\n", "Karsdorp: MV 5.84 ± 0.77; FV 5.81 + 0.66\n", "Nuytinck: MV 5.85 ± 1.14; FV 5.84 + 1.00\n", "Lykogiannis: MV 5.99 ± 0.73; FV 6.21 + 1.20\n", "Buongiorno: MV 5.72 ± 1.00; FV 5.68 + 0.74\n", "Nikolaou: MV 5.73 ± 0.81; FV 5.69 + 0.66\n", "Lazaro: MV 5.76 ± 0.87; FV 5.75 + 0.84\n", "Gallo: MV 5.99 ± 0.80; FV 5.99 + 0.67\n", "Ayhan: MV 5.68 ± 1.13; FV 5.64 + 1.08\n", "Dest: MV 5.84 ± 0.75; FV 5.82 + 0.65\n", "Stojanovic: MV 5.82 ± 0.82; FV 5.80 + 0.66\n", "Birindelli: MV 5.77 ± 0.65; FV 5.75 + 0.59\n", "Gendrey: MV 5.88 ± 0.70; FV 5.87 + 0.62\n", "Ebosse: MV 5.66 ± 0.70; FV 5.58 + 0.59\n", "Lochoshvili: MV 5.84 ± 0.73; FV 5.84 + 0.62\n", "Bronn: MV 5.86 ± 0.70; FV 5.83 + 0.59\n", "Thiaw: MV 6.01 ± 0.82; FV 6.08 + 0.85\n", "Izzo: MV 6.05 ± 0.80; FV 6.10 + 0.68\n", "D'ambrosio: MV 6.00 ± 0.67; FV 6.04 + 0.69\n", "Rugani: MV 5.97 ± 0.75; FV 5.98 + 0.63\n", "De Sciglio: MV 5.80 ± 0.62; FV 5.74 + 0.54\n", "Luperto: MV 5.81 ± 1.10; FV 5.75 + 0.78\n", "De Silvestri: MV 5.82 ± 0.84; FV 5.86 + 0.87\n", "Djimsiti: MV 5.81 ± 0.85; FV 5.84 + 0.88\n", "Palomino: MV 5.96 ± 1.06; FV 5.99 + 1.06\n", "Bonifazi: MV 5.69 ± 0.86; FV 5.65 + 0.68\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Hristov: MV 5.79 ± 0.67; FV 5.75 + 0.57\n", "Donati: MV 5.75 ± 0.81; FV 5.70 + 0.68\n", "Umtiti: MV 5.95 ± 0.85; FV 5.95 + 0.72\n", "Kjaer: MV 6.02 ± 0.64; FV 6.01 + 0.63\n", "Igor: MV 5.62 ± 1.20; FV 5.55 + 1.11\n", "Okoli: MV 5.57 ± 0.93; FV 5.52 + 0.82\n", "Soumaoro: MV 5.71 ± 1.02; FV 5.68 + 0.80\n", "Caldirola: MV 5.88 ± 0.86; FV 5.85 + 0.70\n", "Ballo-Toure': MV 6.17 ± 0.80; FV 6.52 + 1.48\n", "Bradaric: MV 5.82 ± 0.79; FV 5.84 + 0.70\n", "De Winter: MV 5.87 ± 0.91; FV 5.81 + 0.69\n", "Quagliata: MV 5.96 ± 0.63; FV 5.97 + 0.64\n", "Ferrari A.: MV 5.65 ± 0.77; FV 5.60 + 0.64\n", "Florenzi: MV 6.15 ± 0.82; FV 6.39 + 1.17\n", "Sala: MV 6.04 ± 0.75; FV 6.17 + 0.95\n", "Caldara: MV 5.82 ± 0.91; FV 5.80 + 0.77\n", "Murru: MV 5.77 ± 0.66; FV 5.81 + 0.82\n", "Marlon: MV 5.71 ± 0.74; FV 5.63 + 0.61\n", "Walukiewicz: MV 5.86 ± 0.74; FV 5.84 + 0.61\n", "Kumbulla: MV 5.92 ± 0.66; FV 5.89 + 0.59\n", "Amian: MV 5.74 ± 0.84; FV 5.72 + 0.72\n", "Ostigard: MV 5.96 ± 0.71; FV 5.99 + 0.68\n", "Sambia: MV 5.74 ± 0.79; FV 5.68 + 0.65\n", "Aiwu: MV 5.95 ± 0.81; FV 5.99 + 0.83\n", "Ehizibue: MV 5.71 ± 0.63; FV 5.66 + 0.53\n", "Hendry: MV 5.99 ± 0.82; FV 6.03 + 0.82\n", "Marrone: MV 5.54 ± 0.90; FV 5.50 + 0.75\n", "Radovanovic: MV 5.52 ± 0.91; FV 5.58 + 0.74\n", "Murillo: MV 5.75 ± 0.64; FV 5.62 + 0.53\n", "Venuti: MV 5.59 ± 0.70; FV 5.51 + 0.62\n", "Magnani: MV 5.92 ± 0.76; FV 5.88 + 0.65\n", "Terzic: MV 5.93 ± 0.59; FV 5.90 + 0.56\n", "Gabbia: MV 5.81 ± 0.86; FV 5.75 + 0.67\n", "Zortea: MV 5.75 ± 0.65; FV 5.74 + 0.66\n", "Dawidowicz: MV 5.73 ± 0.67; FV 5.64 + 0.65\n", "Pirola: MV 5.84 ± 0.64; FV 5.77 + 0.54\n", "Carboni: MV 5.72 ± 0.91; FV 5.68 + 0.75\n", "Lovato: MV 5.74 ± 0.89; FV 5.70 + 0.71\n", "Tuia: MV 5.92 ± 0.85; FV 5.98 + 0.99\n", "Amione: MV 5.72 ± 0.66; FV 5.68 + 0.58\n", "Vasquez: MV 5.84 ± 0.81; FV 5.84 + 0.66\n", "Zima: MV 5.63 ± 0.89; FV 5.58 + 0.72\n", "Coppola D.: MV 5.84 ± 0.75; FV 5.84 + 0.69\n", "Gatti: MV 5.89 ± 0.81; FV 5.91 + 0.72\n", "Gila: MV 5.76 ± 1.01; FV 5.68 + 0.86\n", "Cabal: MV 5.99 ± 0.78; FV 6.09 + 0.89\n", "Sosa: MV 5.66 ± 0.92; FV 5.61 + 0.79\n", "Conti: MV 6.03 ± 0.96; FV 6.42 + 1.74\n", "Dermaku: MV 6.01 ± 0.80; FV 6.07 + 0.82\n", "Tonelli: MV 5.72 ± 0.80; FV 5.66 + 0.65\n", "Radu: MV 5.63 ± 1.01; FV 5.56 + 0.88\n", "Paletta: MV 5.92 ± 0.82; FV 5.96 + 0.81\n", "Fares: MV 5.74 ± 0.69; FV 5.67 + 0.59\n", "Marchizza: MV 5.71 ± 0.72; FV 5.70 + 0.67\n", "Romagna: MV 5.84 ± 0.85; FV 5.89 + 0.94\n", "Ranieri L.: MV 5.66 ± 0.74; FV 5.61 + 0.72\n", "Cetin: MV 6.01 ± 0.86; FV 6.01 + 0.72\n", "Muldur: MV 5.62 ± 0.83; FV 5.55 + 0.72\n", "Adopo: MV 5.71 ± 0.98; FV 5.66 + 0.84\n", "Ferrer: MV 5.91 ± 0.82; FV 5.96 + 0.79\n", "Ruggeri: MV 5.84 ± 0.72; FV 5.86 + 0.65\n", "Antov: MV 5.66 ± 1.00; FV 5.61 + 0.83\n", "Amey: MV 6.02 ± 0.83; FV 6.09 + 0.81\n", "Ferrarini: MV 5.92 ± 0.82; FV 5.96 + 0.81\n", "Kamenovic: MV 5.90 ± 0.79; FV 5.91 + 0.69\n", "Vina: MV 5.78 ± 0.84; FV 5.74 + 0.68\n", "Zanoli: MV 5.87 ± 0.63; FV 5.83 + 0.57\n", "Zanotti: MV 5.79 ± 0.76; FV 5.80 + 0.73\n", "Ruan: MV 5.65 ± 1.02; FV 5.69 + 0.74\n", "Motoc: MV 5.90 ± 0.82; FV 5.94 + 0.79\n", "Cacace: MV 5.92 ± 0.72; FV 5.87 + 0.60\n", "Bayeye: MV 5.83 ± 0.87; FV 5.86 + 0.83\n", "Ebosele: MV 5.77 ± 0.94; FV 5.77 + 0.99\n", "Buta: MV 5.72 ± 0.89; FV 5.69 + 0.90\n", "Ndiaye: MV 5.95 ± 0.81; FV 5.99 + 0.83\n", "Abankwah: MV 5.72 ± 0.89; FV 5.69 + 0.90\n", "Guessand A.: MV 5.72 ± 0.89; FV 5.69 + 0.90\n", "Guarino: MV 5.97 ± 0.79; FV 6.01 + 0.78\n", "Milinkovic-Savic: MV 6.31 ± 1.16; FV 7.17 + 2.90\n", "Barella: MV 6.32 ± 1.16; FV 7.34 + 3.33\n", "Kvaratskhelia: MV 6.58 ± 1.39; FV 8.36 + 5.47\n", "Zaccagni: MV 6.34 ± 1.13; FV 7.34 + 3.25\n", "Zielinski: MV 6.32 ± 0.96; FV 6.89 + 2.03\n", "Luis Alberto: MV 6.19 ± 0.85; FV 6.61 + 1.65\n", "Frattesi: MV 6.23 ± 1.19; FV 7.37 + 3.58\n", "Politano: MV 6.19 ± 0.77; FV 6.62 + 1.48\n", "Koopmeiners: MV 6.30 ± 1.23; FV 7.40 + 3.47\n", "Vlasic: MV 6.21 ± 1.08; FV 7.12 + 2.96\n", "Pereyra: MV 6.08 ± 1.07; FV 6.58 + 2.07\n", "Felipe Anderson: MV 6.08 ± 0.90; FV 6.48 + 1.77\n", "Calhanoglu: MV 6.27 ± 1.04; FV 6.89 + 2.30\n", "Strefezza: MV 6.42 ± 1.09; FV 7.23 + 3.03\n", "Diaz B.: MV 6.34 ± 1.25; FV 7.63 + 3.97\n", "Pellegrini Lo.: MV 6.11 ± 1.15; FV 6.86 + 2.65\n", "Zambo Anguissa: MV 6.35 ± 1.09; FV 7.08 + 2.55\n", "Lobotka: MV 6.17 ± 0.72; FV 6.42 + 1.16\n", "Malinovskyi: MV 6.09 ± 0.86; FV 6.50 + 1.69\n", "Candreva: MV 6.30 ± 1.02; FV 6.95 + 2.38\n", "Pasalic: MV 6.06 ± 1.12; FV 6.85 + 2.67\n", "Bennacer: MV 6.19 ± 0.73; FV 6.50 + 1.28\n", "Kostic: MV 6.04 ± 0.81; FV 6.34 + 1.37\n", "Radonjic: MV 6.20 ± 0.88; FV 6.79 + 2.11\n", "Samardzic: MV 6.00 ± 0.93; FV 6.32 + 1.60\n", "Chiesa: MV 6.04 ± 0.83; FV 6.35 + 1.44\n", "Lovric: MV 6.10 ± 0.76; FV 6.40 + 1.43\n", "De Ketelaere: MV 5.94 ± 0.69; FV 5.97 + 0.76\n", "Brozovic: MV 6.13 ± 0.87; FV 6.38 + 1.33\n", "Pogba: MV 5.88 ± 0.76; FV 5.90 + 0.73\n", "Bonaventura: MV 6.00 ± 0.86; FV 6.29 + 1.48\n", "Sensi: MV 6.14 ± 1.10; FV 6.79 + 2.41\n", "Bandinelli: MV 6.10 ± 0.97; FV 6.66 + 2.12\n", "Ikone': MV 5.96 ± 0.90; FV 6.27 + 1.60\n", "Barak: MV 5.76 ± 0.70; FV 5.75 + 0.72\n", "Mkhitaryan: MV 6.11 ± 0.81; FV 6.43 + 1.46\n", "Pessina: MV 6.00 ± 0.87; FV 6.39 + 1.70\n", "Tonali: MV 6.23 ± 0.95; FV 6.69 + 1.86\n", "Arslan: MV 5.81 ± 0.76; FV 5.86 + 0.94\n", "Lazovic: MV 6.14 ± 0.77; FV 6.50 + 1.41\n", "Cristante: MV 6.04 ± 0.98; FV 6.30 + 1.46\n", "Elmas: MV 6.08 ± 0.74; FV 6.40 + 1.32\n", "Bajrami: MV 5.96 ± 0.85; FV 6.23 + 1.40\n", "Vecino: MV 5.86 ± 0.86; FV 5.90 + 0.90\n", "Paredes: MV 5.69 ± 0.67; FV 5.60 + 0.57\n", "Mandragora: MV 5.82 ± 0.84; FV 5.94 + 1.10\n", "Djuricic: MV 5.81 ± 0.88; FV 6.11 + 1.63\n", "Lukic: MV 5.98 ± 1.08; FV 6.31 + 1.76\n", "Soriano: MV 5.99 ± 0.69; FV 6.03 + 0.73\n", "Zaniolo: MV 5.92 ± 1.01; FV 6.35 + 1.93\n", "Sottil: MV 5.94 ± 0.93; FV 6.23 + 1.51\n", "Traore' Hj.: MV 6.14 ± 1.13; FV 7.04 + 3.02\n", "Messias: MV 6.12 ± 1.11; FV 6.92 + 2.70\n", "Thorstvedt: MV 5.96 ± 0.92; FV 6.42 + 1.97\n", "Cuadrado: MV 5.82 ± 0.95; FV 5.80 + 0.92\n", "Locatelli: MV 6.02 ± 0.73; FV 6.08 + 0.79\n", "Rabiot: MV 6.09 ± 1.01; FV 6.32 + 1.39\n", "Dominguez: MV 6.07 ± 0.90; FV 6.33 + 1.35\n", "Tameze: MV 6.00 ± 0.76; FV 6.17 + 1.08\n", "Miranchuk: MV 6.08 ± 1.17; FV 6.89 + 2.76\n", "Vilhena: MV 5.75 ± 0.75; FV 5.82 + 1.02\n", "De Roon: MV 5.93 ± 0.71; FV 5.97 + 0.76\n", "Verdi: MV 6.09 ± 0.63; FV 6.32 + 0.98\n", "Walace: MV 5.82 ± 0.73; FV 5.84 + 0.71\n", "Wijnaldum: MV 5.94 ± 0.85; FV 5.96 + 0.77\n", "Mckennie: MV 5.77 ± 0.71; FV 5.83 + 0.94\n", "Makengo: MV 5.84 ± 0.72; FV 5.87 + 0.78\n", "Ricci S.: MV 6.05 ± 0.73; FV 6.15 + 0.88\n", "Coulibaly L.: MV 6.08 ± 1.00; FV 6.51 + 1.92\n", "Sabiri: MV 5.77 ± 0.81; FV 5.95 + 1.36\n", "Miretti: MV 5.93 ± 0.68; FV 5.95 + 0.73\n", "Colpani: MV 6.19 ± 0.89; FV 6.85 + 2.32\n", "Haas: MV 6.02 ± 0.76; FV 6.29 + 1.42\n", "Orsolini: MV 6.05 ± 1.23; FV 6.98 + 3.05\n", "Matic: MV 6.00 ± 0.64; FV 5.99 + 0.64\n", "Ascacibar: MV 6.00 ± 0.72; FV 6.03 + 0.70\n", "Ederson D.s.: MV 5.84 ± 0.67; FV 5.85 + 0.70\n", "Ciurria: MV 5.99 ± 0.88; FV 6.31 + 1.46\n", "Gonzalez J.: MV 6.15 ± 0.90; FV 6.62 + 1.92\n", "El Shaarawy: MV 6.18 ± 0.86; FV 6.59 + 1.75\n", "Meite': MV 5.88 ± 0.70; FV 5.89 + 0.66\n", "Bourabia: MV 5.97 ± 0.68; FV 5.99 + 0.66\n", "Ndombele': MV 5.88 ± 0.63; FV 5.84 + 0.58\n", "Henderson L.: MV 5.92 ± 0.71; FV 5.98 + 0.91\n", "Maggiore: MV 5.99 ± 0.70; FV 6.05 + 0.86\n", "Ilic: MV 6.01 ± 0.74; FV 6.15 + 1.00\n", "Kovalenko: MV 6.02 ± 0.76; FV 6.21 + 1.17\n", "Zalewski: MV 5.98 ± 0.67; FV 6.00 + 0.74\n", "Pickel: MV 5.92 ± 0.71; FV 6.02 + 1.02\n", "Ferguson: MV 6.15 ± 1.09; FV 6.82 + 2.42\n", "Camara Ma.: MV 6.11 ± 0.61; FV 6.18 + 0.68\n", "Saponara: MV 5.83 ± 0.89; FV 5.97 + 1.17\n", "Rincon: MV 5.80 ± 0.68; FV 5.80 + 0.74\n", "Cataldi: MV 5.92 ± 0.72; FV 5.92 + 0.68\n", "Zurkowski: MV 5.95 ± 0.94; FV 6.23 + 1.54\n", "Rovella: MV 5.86 ± 1.07; FV 5.81 + 0.83\n", "Agudelo: MV 5.95 ± 0.68; FV 6.00 + 0.89\n", "Amrabat: MV 5.76 ± 0.98; FV 5.79 + 1.09\n", "Lopez M.: MV 5.86 ± 0.80; FV 5.88 + 0.84\n", "Gyasi: MV 5.86 ± 0.99; FV 6.33 + 2.02\n", "Pobega: MV 6.02 ± 0.68; FV 6.13 + 0.92\n", "Harroui: MV 5.78 ± 0.72; FV 5.88 + 1.11\n", "Ceide: MV 5.86 ± 0.71; FV 5.85 + 0.74\n", "Baldanzi: MV 6.34 ± 1.02; FV 7.34 + 3.35\n", "Blin: MV 6.06 ± 0.61; FV 6.08 + 0.62\n", "Hjulmand: MV 6.02 ± 0.94; FV 5.99 + 0.77\n", "D'alessandro: MV 6.05 ± 0.62; FV 6.11 + 0.81\n", "Grassi: MV 6.01 ± 0.61; FV 5.96 + 0.57\n", "Krunic: MV 6.01 ± 0.66; FV 6.04 + 0.74\n", "Linetty: MV 5.78 ± 0.81; FV 5.79 + 0.76\n", "Miguel Veloso: MV 6.05 ± 0.74; FV 6.21 + 0.98\n", "Ekdal: MV 5.82 ± 0.77; FV 5.80 + 0.66\n", "Schouten: MV 5.89 ± 0.77; FV 5.85 + 0.64\n", "Villar: MV 5.84 ± 0.62; FV 5.80 + 0.55\n", "Saelemaekers: MV 5.98 ± 0.75; FV 6.08 + 0.96\n", "Vranckx: MV 5.97 ± 0.81; FV 6.03 + 0.79\n", "Basic: MV 5.91 ± 0.60; FV 5.88 + 0.60\n", "Aebischer: MV 5.87 ± 0.77; FV 5.90 + 0.74\n", "Marcos Antonio: MV 5.80 ± 0.63; FV 5.74 + 0.54\n", "Ranocchia F.: MV 6.07 ± 0.90; FV 6.56 + 1.85\n", "Bistrovic: MV 5.95 ± 0.63; FV 5.95 + 0.71\n", "Verre: MV 5.77 ± 0.63; FV 5.75 + 0.56\n", "Gagliardini: MV 5.94 ± 0.76; FV 6.04 + 1.00\n", "Barberis: MV 5.79 ± 0.76; FV 5.78 + 0.67\n", "Leris: MV 5.71 ± 0.69; FV 5.72 + 0.88\n", "Vieira: MV 5.72 ± 0.66; FV 5.69 + 0.65\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Winks: MV 5.92 ± 0.74; FV 5.98 + 0.89\n", "Castrovilli: MV 5.83 ± 0.83; FV 5.94 + 1.11\n", "Maldini: MV 6.15 ± 1.04; FV 7.10 + 3.02\n", "Marin: MV 5.80 ± 0.75; FV 5.78 + 0.64\n", "Maleh: MV 5.76 ± 0.69; FV 5.77 + 0.79\n", "Matheus Henrique: MV 5.79 ± 0.70; FV 5.79 + 0.72\n", "Asllani: MV 5.83 ± 0.63; FV 5.81 + 0.59\n", "Moro N.: MV 5.88 ± 0.70; FV 5.89 + 0.65\n", "Oudin: MV 6.09 ± 0.70; FV 6.25 + 0.91\n", "Duncan: MV 5.75 ± 0.78; FV 5.79 + 0.90\n", "Molina S.: MV 5.84 ± 0.77; FV 5.88 + 0.81\n", "Kastanos: MV 5.74 ± 0.72; FV 5.72 + 0.65\n", "Valoti: MV 5.83 ± 0.66; FV 5.79 + 0.59\n", "Gaetano: MV 6.00 ± 0.69; FV 6.04 + 0.76\n", "Escalante: MV 5.83 ± 0.80; FV 5.77 + 0.64\n", "Bohinen: MV 5.96 ± 0.68; FV 5.97 + 0.64\n", "Terracciano F.: MV 6.08 ± 0.59; FV 6.20 + 0.82\n", "Milanese: MV 5.91 ± 0.85; FV 5.96 + 0.83\n", "Castagnetti: MV 5.98 ± 0.65; FV 5.99 + 0.65\n", "Listkowski: MV 6.02 ± 0.64; FV 6.05 + 0.67\n", "Adli: MV 5.72 ± 0.67; FV 5.72 + 0.64\n", "Hrustic: MV 5.86 ± 0.75; FV 5.87 + 0.73\n", "D'andrea: MV 5.97 ± 0.68; FV 6.06 + 1.01\n", "Benassi: MV 5.75 ± 0.64; FV 5.74 + 0.62\n", "Baez: MV 5.93 ± 0.86; FV 5.98 + 0.81\n", "Vignato: MV 5.86 ± 0.78; FV 5.90 + 0.84\n", "Obiang: MV 5.84 ± 0.77; FV 5.83 + 0.66\n", "Askildsen: MV 5.77 ± 0.63; FV 5.77 + 0.57\n", "Hongla: MV 5.82 ± 0.63; FV 5.82 + 0.67\n", "Yepes: MV 5.66 ± 0.73; FV 5.63 + 0.64\n", "Helgason: MV 5.94 ± 0.66; FV 5.94 + 0.63\n", "Bondo: MV 5.99 ± 0.84; FV 6.05 + 0.77\n", "Ellertsson: MV 5.93 ± 0.74; FV 5.97 + 0.79\n", "Capezzi: MV 5.94 ± 0.71; FV 5.96 + 0.65\n", "Jajalo: MV 5.73 ± 0.67; FV 5.71 + 0.60\n", "Machin: MV 5.92 ± 0.82; FV 5.98 + 0.85\n", "Bakayoko: MV 5.75 ± 0.78; FV 5.69 + 0.65\n", "Scozzarella: MV 5.92 ± 0.82; FV 5.98 + 0.85\n", "Fagioli: MV 5.98 ± 0.80; FV 6.20 + 1.29\n", "Demme: MV 5.90 ± 0.75; FV 5.99 + 0.98\n", "Akpa Akpro: MV 5.98 ± 0.79; FV 6.02 + 0.83\n", "Darboe: MV 5.97 ± 0.92; FV 6.00 + 0.77\n", "Bove: MV 5.84 ± 0.78; FV 5.84 + 0.69\n", "Urbanski: MV 5.98 ± 0.83; FV 6.04 + 0.81\n", "Bertini: MV 5.87 ± 0.79; FV 5.88 + 0.71\n", "Cortinovis: MV 6.02 ± 0.77; FV 6.20 + 1.09\n", "Romero L.: MV 5.86 ± 0.86; FV 5.98 + 1.17\n", "Bianco: MV 5.76 ± 0.83; FV 5.77 + 0.87\n", "Sher: MV 5.98 ± 0.77; FV 6.10 + 0.97\n", "Nguiamba: MV 6.07 ± 0.79; FV 6.22 + 0.97\n", "Volpato: MV 6.10 ± 1.00; FV 6.44 + 1.64\n", "Praszelik: MV 6.08 ± 0.75; FV 6.28 + 1.07\n", "Trimboli: MV 5.92 ± 0.74; FV 5.98 + 0.89\n", "Pafundi: MV 5.75 ± 0.84; FV 5.75 + 0.88\n", "Bjorkengren: MV 6.05 ± 0.80; FV 6.17 + 0.93\n", "Vignato S.: MV 5.97 ± 0.86; FV 6.04 + 0.87\n", "Samek: MV 6.05 ± 0.80; FV 6.17 + 0.93\n", "Zerbin: MV 5.92 ± 0.67; FV 5.93 + 0.74\n", "Ilkhan: MV 5.72 ± 0.70; FV 5.66 + 0.59\n", "Degli Innocenti: MV 6.01 ± 0.83; FV 6.07 + 0.86\n", "Fazzini: MV 5.76 ± 0.85; FV 5.71 + 0.66\n", "Acella: MV 5.96 ± 0.81; FV 6.02 + 0.89\n", "Tripi: MV 5.96 ± 0.84; FV 6.00 + 0.79\n", "Garbett: MV 5.85 ± 0.83; FV 5.89 + 0.82\n", "Iling-Junior: MV 5.91 ± 0.86; FV 5.94 + 0.79\n", "Immobile: MV 6.38 ± 1.41; FV 8.11 + 5.10\n", "Vlahovic: MV 6.17 ± 1.44; FV 7.56 + 4.21\n", "Rafael Leao: MV 6.34 ± 1.43; FV 7.95 + 4.79\n", "Martinez L.: MV 6.27 ± 1.41; FV 7.99 + 4.91\n", "Dybala: MV 6.48 ± 1.27; FV 7.95 + 4.58\n", "Arnautovic: MV 6.33 ± 1.39; FV 8.06 + 5.00\n", "Beto: MV 6.13 ± 1.12; FV 7.18 + 3.26\n", "Giroud: MV 6.29 ± 1.35; FV 7.79 + 4.45\n", "Osimhen: MV 6.44 ± 1.45; FV 8.31 + 5.52\n", "Deulofeu: MV 6.16 ± 1.13; FV 7.00 + 2.77\n", "Lukaku: MV 6.41 ± 1.42; FV 8.29 + 5.46\n", "Milik: MV 6.04 ± 0.91; FV 6.39 + 1.55\n", "Pedro: MV 6.12 ± 0.91; FV 6.45 + 1.57\n", "Abraham: MV 6.20 ± 1.30; FV 7.66 + 4.26\n", "Berardi: MV 6.34 ± 1.39; FV 8.04 + 4.97\n", "Dia: MV 6.29 ± 1.40; FV 8.00 + 4.92\n", "Lookman: MV 6.42 ± 1.32; FV 8.02 + 4.79\n", "Simeone: MV 6.25 ± 1.39; FV 7.74 + 4.47\n", "Correa: MV 6.17 ± 0.83; FV 6.84 + 2.34\n", "Zapata D.: MV 6.09 ± 1.19; FV 7.18 + 3.36\n", "Dzeko: MV 6.12 ± 1.32; FV 7.38 + 3.80\n", "Nzola: MV 6.16 ± 1.31; FV 7.63 + 4.25\n", "Sanabria: MV 6.02 ± 1.11; FV 6.73 + 2.53\n", "Muriel: MV 6.20 ± 1.32; FV 7.29 + 3.53\n", "Rebic: MV 6.23 ± 1.31; FV 7.63 + 4.14\n", "Bonazzoli: MV 6.12 ± 0.98; FV 6.62 + 2.00\n", "Caprari: MV 6.02 ± 0.84; FV 6.51 + 1.86\n", "Di Maria: MV 5.93 ± 1.29; FV 6.29 + 2.06\n", "Lozano: MV 6.24 ± 1.22; FV 7.32 + 3.42\n", "Ceesay: MV 6.23 ± 1.13; FV 7.29 + 3.37\n", "Pinamonti: MV 5.94 ± 1.12; FV 6.73 + 2.71\n", "Kouame': MV 6.03 ± 1.06; FV 6.68 + 2.33\n", "Lauriente': MV 6.30 ± 1.38; FV 7.60 + 4.13\n", "Jovic: MV 5.89 ± 1.10; FV 6.38 + 2.06\n", "Barrow: MV 6.12 ± 1.28; FV 7.17 + 3.37\n", "Henry: MV 6.07 ± 1.15; FV 7.11 + 3.22\n", "Piatek: MV 6.08 ± 1.35; FV 7.35 + 3.84\n", "Gonzalez N.: MV 6.05 ± 1.07; FV 6.65 + 2.25\n", "Dessers: MV 6.14 ± 1.00; FV 7.09 + 3.01\n", "Caputo: MV 5.80 ± 0.75; FV 5.97 + 1.26\n", "Raspadori: MV 5.94 ± 0.91; FV 6.32 + 1.64\n", "Lammers: MV 6.02 ± 0.79; FV 6.31 + 1.45\n", "Okereke: MV 6.03 ± 1.09; FV 6.74 + 2.58\n", "Cabral: MV 5.94 ± 0.83; FV 6.32 + 1.69\n", "Gabbiadini: MV 5.82 ± 0.79; FV 6.08 + 1.48\n", "Belotti: MV 5.82 ± 0.62; FV 5.81 + 0.62\n", "Origi: MV 6.05 ± 1.13; FV 6.79 + 2.57\n", "Botheim: MV 6.04 ± 0.92; FV 6.64 + 2.15\n", "Alvarez A.: MV 6.16 ± 1.23; FV 7.25 + 3.47\n", "Verde: MV 6.23 ± 1.04; FV 7.19 + 3.12\n", "Destro: MV 6.05 ± 1.22; FV 7.01 + 3.17\n", "Kean: MV 5.84 ± 0.95; FV 6.11 + 1.54\n", "Pellegri: MV 5.82 ± 0.79; FV 6.01 + 1.33\n", "Satriano: MV 5.97 ± 0.96; FV 6.55 + 2.16\n", "Success: MV 5.87 ± 0.68; FV 5.87 + 0.76\n", "Mota: MV 5.92 ± 0.92; FV 6.61 + 2.27\n", "Banda: MV 6.08 ± 0.73; FV 6.24 + 1.05\n", "Hojlund: MV 5.90 ± 0.88; FV 6.40 + 1.92\n", "Lasagna: MV 5.93 ± 0.80; FV 6.53 + 2.08\n", "Pjaca: MV 5.98 ± 0.79; FV 6.14 + 1.12\n", "Gytkjaer: MV 5.94 ± 0.83; FV 6.54 + 2.05\n", "Petagna: MV 5.90 ± 0.89; FV 6.37 + 1.79\n", "Nestorovski: MV 5.93 ± 0.77; FV 6.05 + 1.15\n", "Zanimacchia: MV 5.97 ± 0.68; FV 6.05 + 0.84\n", "Piccoli: MV 6.06 ± 0.88; FV 6.78 + 2.42\n", "Kallon: MV 6.06 ± 0.70; FV 6.47 + 1.78\n", "Ciofani D.: MV 6.16 ± 0.84; FV 6.94 + 2.66\n", "Di Francesco F.: MV 6.01 ± 0.89; FV 6.40 + 1.77\n", "Boga: MV 5.82 ± 0.65; FV 5.81 + 0.73\n", "Zirkzee: MV 6.11 ± 1.15; FV 7.10 + 3.13\n", "Quagliarella: MV 5.82 ± 0.68; FV 5.91 + 1.07\n", "Ibrahimovic: MV 6.39 ± 1.31; FV 7.95 + 4.67\n", "Shomurodov: MV 6.02 ± 0.94; FV 6.62 + 2.27\n", "Djuric: MV 6.00 ± 0.59; FV 5.96 + 0.71\n", "Strelec: MV 6.03 ± 0.59; FV 6.04 + 0.85\n", "Antiste: MV 5.78 ± 0.81; FV 6.12 + 1.65\n", "Seck: MV 6.03 ± 0.61; FV 6.03 + 0.70\n", "Buonaiuto: MV 6.06 ± 0.72; FV 6.19 + 0.85\n", "Sansone: MV 5.87 ± 0.79; FV 6.02 + 1.12\n", "Pussetto: MV 5.86 ± 0.74; FV 6.10 + 1.51\n", "Cambiaghi: MV 5.98 ± 0.60; FV 5.95 + 0.64\n", "Colombo: MV 6.12 ± 1.03; FV 7.05 + 2.97\n", "Afena-Gyan: MV 5.80 ± 0.67; FV 5.79 + 0.60\n", "Defrel: MV 5.80 ± 0.82; FV 5.96 + 1.28\n", "Karamoh: MV 5.98 ± 0.67; FV 5.99 + 0.74\n", "Cancellieri: MV 5.85 ± 0.65; FV 5.77 + 0.57\n", "Tsadjout: MV 6.03 ± 0.80; FV 6.16 + 1.01\n", "Rodriguez P.: MV 6.01 ± 0.69; FV 6.06 + 0.73\n", "Valencia D.: MV 5.67 ± 0.64; FV 5.71 + 0.65\n", "Edera: MV 5.84 ± 0.88; FV 5.89 + 0.90\n", "Oddei: MV 6.00 ± 0.80; FV 6.08 + 0.92\n", "Raimondo: MV 6.00 ± 0.85; FV 6.09 + 0.89\n", "Kristoffersen: MV 5.92 ± 0.85; FV 5.96 + 0.87\n", "Kaio Jorge: MV 5.95 ± 0.68; FV 5.96 + 0.72\n", "De Luca: MV 5.91 ± 0.77; FV 5.97 + 0.89\n", "Soule': MV 5.97 ± 0.83; FV 6.01 + 0.72\n", "Lazetic: MV 5.99 ± 0.84; FV 6.08 + 0.94\n", "Voelkerling Persson: MV 6.04 ± 0.83; FV 6.17 + 0.96\n", "Sanca: MV 5.99 ± 0.74; FV 6.08 + 0.83\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
MussoPAtalantaInter11.0906.4231820.4376005.2249190.6419636.1639420.3305880.5358401.3576065.7355020.856370-0.4296740.65192923.657246
Rossi F.PAtalantaInter10.016.4231820.4376005.2249190.6419636.1639420.3305880.5358401.3576065.7355020.856370-0.4296740.65192923.657246
SportielloPAtalantaInter10.056.3195220.4277805.0560670.6548436.0693460.3288210.5223521.3526375.6349870.860918-0.4829470.65245818.510461
ToloiDAtalantaInter11.0856.1733150.4697796.5969370.8885186.0984490.5360810.1033241.1537395.8176241.0203000.4929891.9220280.000000
DemiralDAtalantaInter11.0705.9537530.5404736.2817660.9499855.9343390.6410270.0224311.1097735.4822471.1609220.4550211.9053400.000000
............................................................
HenryAVeronaSpezia11.0906.0685980.5760607.1145681.6083396.0140720.6710000.0601421.1080525.4926821.2631240.7151611.9102370.000000
PiccoliAVeronaSpezia10.006.0598330.4412046.7848681.2094206.0144520.5141280.0653971.1525535.6205151.1236720.6166071.9332590.000000
LasagnaAVeronaSpezia10.0605.9293440.4000606.5284701.0397745.9156770.4769400.0212491.1552445.5557681.0465130.5712231.9268640.000000
KallonAVeronaSpezia11.0706.0581850.3519646.4699730.8923556.0187030.4097730.0714371.1892205.6630490.9686270.5265841.9275800.000000
DjuricAVeronaSpezia10.0405.9967160.2971275.9607670.3560385.9719030.3501550.0525941.2090705.7815540.6078890.2142491.8913850.000000
\n", "

554 rows × 19 columns

\n", "
" ], "text/plain": [ " role team oppteam home starter vote% MV MV std \\\n", "player \n", "Musso P Atalanta Inter 1 1.0 90 6.423182 0.437600 \n", "Rossi F. P Atalanta Inter 1 0.0 1 6.423182 0.437600 \n", "Sportiello P Atalanta Inter 1 0.0 5 6.319522 0.427780 \n", "Toloi D Atalanta Inter 1 1.0 85 6.173315 0.469779 \n", "Demiral D Atalanta Inter 1 1.0 70 5.953753 0.540473 \n", "... ... ... ... ... ... ... ... ... \n", "Henry A Verona Spezia 1 1.0 90 6.068598 0.576060 \n", "Piccoli A Verona Spezia 1 0.0 0 6.059833 0.441204 \n", "Lasagna A Verona Spezia 1 0.0 60 5.929344 0.400060 \n", "Kallon A Verona Spezia 1 1.0 70 6.058185 0.351964 \n", "Djuric A Verona Spezia 1 0.0 40 5.996716 0.297127 \n", "\n", " FV FV std MV loc MV scale MV skewness \\\n", "player \n", "Musso 5.224919 0.641963 6.163942 0.330588 0.535840 \n", "Rossi F. 5.224919 0.641963 6.163942 0.330588 0.535840 \n", "Sportiello 5.056067 0.654843 6.069346 0.328821 0.522352 \n", "Toloi 6.596937 0.888518 6.098449 0.536081 0.103324 \n", "Demiral 6.281766 0.949985 5.934339 0.641027 0.022431 \n", "... ... ... ... ... ... \n", "Henry 7.114568 1.608339 6.014072 0.671000 0.060142 \n", "Piccoli 6.784868 1.209420 6.014452 0.514128 0.065397 \n", "Lasagna 6.528470 1.039774 5.915677 0.476940 0.021249 \n", "Kallon 6.469973 0.892355 6.018703 0.409773 0.071437 \n", "Djuric 5.960767 0.356038 5.971903 0.350155 0.052594 \n", "\n", " MV tailweight FV loc FV scale FV skewness FV tailweight \\\n", "player \n", "Musso 1.357606 5.735502 0.856370 -0.429674 0.651929 \n", "Rossi F. 1.357606 5.735502 0.856370 -0.429674 0.651929 \n", "Sportiello 1.352637 5.634987 0.860918 -0.482947 0.652458 \n", "Toloi 1.153739 5.817624 1.020300 0.492989 1.922028 \n", "Demiral 1.109773 5.482247 1.160922 0.455021 1.905340 \n", "... ... ... ... ... ... \n", "Henry 1.108052 5.492682 1.263124 0.715161 1.910237 \n", "Piccoli 1.152553 5.620515 1.123672 0.616607 1.933259 \n", "Lasagna 1.155244 5.555768 1.046513 0.571223 1.926864 \n", "Kallon 1.189220 5.663049 0.968627 0.526584 1.927580 \n", "Djuric 1.209070 5.781554 0.607889 0.214249 1.891385 \n", "\n", " Clean Sheet % \n", "player \n", "Musso 23.657246 \n", "Rossi F. 23.657246 \n", "Sportiello 18.510461 \n", "Toloi 0.000000 \n", "Demiral 0.000000 \n", "... ... \n", "Henry 0.000000 \n", "Piccoli 0.000000 \n", "Lasagna 0.000000 \n", "Kallon 0.000000 \n", "Djuric 0.000000 \n", "\n", "[554 rows x 19 columns]" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "matchday_out = 15\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": 31, "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": 38, "id": "2b637a15", "metadata": {}, "outputs": [], "source": [ "gk_starters = ['Maignan', 'Sepe', 'Silvestri', 'Consigli', 'Provedel', 'Di Gregorio', 'Meret', 'Milinkovic-Savic V.',\n", " 'Terracciano', 'Handanovic', 'Szczesny', 'Skorupski', 'Vicario', 'Musso', 'Radu I.', 'Rui Patricio',\n", " 'Montipo\\'', 'Falcone', 'Dragowski', 'Audero']" ] }, { "cell_type": "code", "execution_count": 33, "id": "60d73507", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Meret (6.26, 0.41); (5.52, 0.60)\n", "Provedel (6.34, 0.44); (5.62, 0.59)\n", "Maignan (6.22, 0.38); (5.53, 0.60)\n", "Silvestri (6.32, 0.41); (5.45, 0.61)\n", "Sepe (6.41, 0.37); (4.91, 0.69)\n", "Szczesny (6.25, 0.43); (5.73, 0.57)\n", "Consigli (6.24, 0.37); (5.24, 0.63)\n", "Falcone (6.40, 0.37); (4.83, 0.70)\n", "Musso (6.27, 0.43); (5.73, 0.57)\n", "Vicario (6.45, 0.41); (5.30, 0.63)\n", "Rui Patricio (6.24, 0.40); (5.38, 0.61)\n", "Milinkovic-Savic V. (6.27, 0.38); (5.08, 0.67)\n", "Audero (6.18, 0.34); (4.22, 0.80)\n", "Montipo' (6.22, 0.33); (4.29, 0.78)\n", "Sportiello (6.27, 0.41); (5.63, 0.58)\n", "Skorupski (6.04, 0.36); (3.94, 0.82)\n", "Di Gregorio (6.13, 0.40); (4.30, 0.76)\n", "Perin (6.36, 0.47); (5.81, 0.57)\n", "Handanovic (5.93, 0.37); (4.22, 0.76)\n", "Tatarusanu (6.17, 0.36); (5.40, 0.61)\n", "Gollini (6.03, 0.41); (5.40, 0.60)\n", "Dragowski (6.35, 0.37); (4.39, 0.76)\n", "Terracciano (6.09, 0.35); (4.64, 0.72)\n", "Berisha (6.27, 0.38); (5.08, 0.67)\n", "Radu I. (6.27, 0.42); (4.63, 0.72)\n", "Cragno (6.13, 0.40); (4.30, 0.76)\n", "Luis Maximiano (6.05, 0.46); (5.19, 0.62)\n", "Onana (6.23, 0.37); (5.38, 0.62)\n", "Carnesecchi (6.27, 0.45); (5.50, 0.60)\n", "Mirante (6.22, 0.38); (5.53, 0.60)\n", "Sarr M. (6.27, 0.42); (4.63, 0.72)\n", "Lamanna (6.13, 0.40); (4.30, 0.76)\n", "Ujkani (6.45, 0.41); (5.30, 0.63)\n", "Pegolo (6.24, 0.37); (5.24, 0.63)\n", "Perilli (6.22, 0.33); (4.29, 0.78)\n", "Padelli (6.32, 0.41); (5.45, 0.61)\n", "Perisan (6.45, 0.41); (5.30, 0.63)\n", "Bardi (6.04, 0.36); (3.94, 0.82)\n", "Cordaz (5.93, 0.37); (4.22, 0.76)\n", "Pinsoglio (6.25, 0.43); (5.73, 0.57)\n", "Fiorillo (6.41, 0.37); (4.91, 0.69)\n", "Sirigu (6.26, 0.41); (5.52, 0.60)\n", "Cerofolini (6.09, 0.35); (4.64, 0.72)\n", "Rossi F. (6.27, 0.43); (5.73, 0.57)\n", "Contini (6.18, 0.34); (4.22, 0.80)\n", "Brancolini (6.40, 0.37); (4.83, 0.70)\n", "Bleve (6.40, 0.37); (4.83, 0.70)\n", "Berardi A. (6.22, 0.33); (4.29, 0.78)\n", "Russo A. (6.24, 0.37); (5.24, 0.63)\n", "Gemello (6.27, 0.38); (5.08, 0.67)\n", "Ravaglia (6.18, 0.34); (4.22, 0.80)\n", "Zoet (6.24, 0.36); (4.14, 0.80)\n", "Boer (6.24, 0.40); (5.38, 0.61)\n", "Adamonis (6.34, 0.44); (5.62, 0.59)\n", "Marfella (6.26, 0.41); (5.52, 0.60)\n", "Zovko (6.35, 0.37); (4.39, 0.76)\n", "Piana (6.32, 0.41); (5.45, 0.61)\n", "Bagnolini (6.04, 0.36); (3.94, 0.82)\n", "Svilar (6.24, 0.40); (5.38, 0.61)\n", "Sorrentino A. (6.13, 0.40); (4.30, 0.76)\n", "Ciezkowski (6.27, 0.42); (4.63, 0.72)\n", "Micai (6.41, 0.37); (4.91, 0.69)\n", "Chiesa M. (6.22, 0.33); (4.29, 0.78)\n", "Saro (6.27, 0.42); (4.63, 0.72)\n", "Smalling (6.16, 0.54); (6.65, 1.02)\n", "Hernandez T. (6.28, 0.53); (6.83, 1.05)\n", "Kim (6.28, 0.45); (6.62, 0.73)\n", "Bastoni S. (6.09, 0.52); (6.62, 1.05)\n", "Udogie (6.10, 0.57); (6.78, 1.26)\n", "Dumfries (6.07, 0.50); (6.58, 1.02)\n", "Romagnoli (6.20, 0.45); (6.41, 0.54)\n", "Rodrigo Becao (6.13, 0.44); (6.41, 0.68)\n", "Parisi (6.15, 0.44); (6.51, 0.80)\n", "Mazzocchi (6.14, 0.51); (6.70, 1.06)\n", "Bremer (6.15, 0.41); (6.30, 0.48)\n", "Demiral (6.09, 0.50); (6.51, 0.92)\n", "Valeri (6.08, 0.35); (6.40, 0.67)\n", "Dimarco (6.25, 0.56); (6.95, 1.27)\n", "Di Lorenzo (6.11, 0.36); (6.22, 0.41)\n", "Ibanez (5.97, 0.49); (6.04, 0.50)\n", "Tomori (6.12, 0.39); (6.33, 0.59)\n", "Toloi (6.21, 0.45); (6.51, 0.68)\n", "Gosens (5.84, 0.33); (5.92, 0.49)\n", "Rrahmani (6.17, 0.41); (6.30, 0.47)\n", "Kalulu (6.03, 0.34); (6.05, 0.34)\n", "Bijol (6.07, 0.51); (6.47, 0.91)\n", "Doig (6.16, 0.51); (6.72, 1.05)\n", "Mario Rui (6.14, 0.41); (6.31, 0.52)\n", "Spinazzola (5.95, 0.33); (5.95, 0.33)\n", "Lazzari (6.03, 0.41); (6.10, 0.36)\n", "Mancini (6.02, 0.38); (6.06, 0.34)\n", "Danilo (6.14, 0.47); (6.24, 0.41)\n", "Kyriakopoulos (5.88, 0.44); (5.95, 0.52)\n", "Vojvoda (5.99, 0.38); (6.08, 0.45)\n", "Scalvini (6.09, 0.53); (6.51, 0.95)\n", "Carlos Augusto (5.83, 0.45); (5.95, 0.58)\n", "Skriniar (5.81, 0.34); (5.78, 0.30)\n", "Schuurs (6.03, 0.36); (6.07, 0.34)\n", "Juan Jesus (6.18, 0.38); (6.40, 0.57)\n", "Bonucci (6.05, 0.48); (6.37, 0.78)\n", "Calabria (6.07, 0.33); (6.21, 0.45)\n", "Bastoni (5.94, 0.44); (6.02, 0.43)\n", "Depaoli (5.93, 0.46); (6.31, 0.86)\n", "Darmian (5.94, 0.32); (5.96, 0.35)\n", "Sernicola (5.96, 0.41); (6.27, 0.77)\n", "Mari' (5.80, 0.58); (6.06, 0.86)\n", "Martinez Quarta (6.00, 0.49); (6.09, 0.54)\n", "Maehle (6.03, 0.30); (6.07, 0.36)\n", "Olivera (6.17, 0.38); (6.48, 0.66)\n", "Biraghi (5.88, 0.39); (5.98, 0.50)\n", "Medel (5.89, 0.39); (5.88, 0.32)\n", "Patric (6.02, 0.42); (6.06, 0.34)\n", "Rodriguez R. (5.92, 0.40); (5.94, 0.34)\n", "Aina (5.99, 0.46); (6.27, 0.73)\n", "Cambiaso (5.86, 0.43); (5.86, 0.36)\n", "Perez N. (5.99, 0.53); (6.08, 0.62)\n", "Holm (5.93, 0.41); (6.14, 0.65)\n", "Baschirotto (6.15, 0.47); (6.56, 0.86)\n", "Dodo' (5.72, 0.41); (5.70, 0.39)\n", "Hysaj (5.95, 0.33); (5.95, 0.33)\n", "Faraoni (5.93, 0.38); (6.14, 0.61)\n", "Bianchetti (5.74, 0.41); (5.79, 0.47)\n", "Milenkovic (5.98, 0.57); (6.26, 0.88)\n", "Marusic (5.90, 0.42); (5.94, 0.38)\n", "Colley (5.65, 0.55); (5.75, 0.68)\n", "Toljan (5.68, 0.41); (5.63, 0.35)\n", "Celik (5.90, 0.35); (5.89, 0.32)\n", "Ampadu (5.79, 0.51); (5.74, 0.41)\n", "Singo (5.96, 0.35); (6.00, 0.39)\n", "Casale (5.92, 0.43); (5.91, 0.34)\n", "Daniliuc (5.83, 0.55); (5.78, 0.46)\n", "Pongracic (5.88, 0.42); (5.86, 0.33)\n", "Soppy (5.88, 0.41); (5.91, 0.39)\n", "Kiwior (5.78, 0.50); (5.72, 0.38)\n", "Posch (5.96, 0.59); (6.46, 1.09)\n", "Masina (5.98, 0.42); (6.23, 0.72)\n", "Ghiglione (5.95, 0.42); (6.04, 0.49)\n", "De Vrij (5.78, 0.38); (5.80, 0.39)\n", "Alex Sandro (5.75, 0.52); (5.73, 0.40)\n", "Ceccherini (5.86, 0.51); (6.04, 0.73)\n", "Fazio (5.93, 0.55); (5.90, 0.50)\n", "Rogerio (5.69, 0.50); (5.63, 0.44)\n", "Reca (6.01, 0.48); (6.38, 0.84)\n", "Gunter (5.73, 0.41); (5.75, 0.43)\n", "Djidji (5.85, 0.44); (6.00, 0.60)\n", "Augello (5.72, 0.34); (5.70, 0.31)\n", "Bellanova (5.81, 0.38); (5.82, 0.36)\n", "Erlic (5.70, 0.52); (5.64, 0.43)\n", "Ismajli (5.97, 0.40); (5.97, 0.32)\n", "Ebuehi (5.82, 0.37); (5.77, 0.31)\n", "Kasius (5.99, 0.42); (6.07, 0.44)\n", "Lucumi' (5.77, 0.39); (5.73, 0.32)\n", "Hien (5.67, 0.45); (5.62, 0.37)\n", "Acerbi (6.02, 0.39); (6.09, 0.41)\n", "Zappacosta (6.06, 0.38); (6.24, 0.54)\n", "Chiriches (5.77, 0.57); (5.69, 0.44)\n", "Gyomber (5.74, 0.51); (5.68, 0.38)\n", "Pezzella Giu. (5.91, 0.35); (5.90, 0.32)\n", "Ferrari G. (5.69, 0.51); (5.64, 0.41)\n", "Bereszynski (5.69, 0.33); (5.61, 0.27)\n", "Hateboer (5.77, 0.46); (5.97, 0.72)\n", "Karsdorp (5.80, 0.37); (5.76, 0.32)\n", "Nuytinck (6.01, 0.43); (6.08, 0.37)\n", "Lykogiannis (5.90, 0.35); (6.04, 0.51)\n", "Buongiorno (5.83, 0.45); (5.78, 0.35)\n", "Nikolaou (5.68, 0.47); (5.65, 0.37)\n", "Lazaro (5.83, 0.42); (5.86, 0.41)\n", "Gallo (5.86, 0.41); (5.82, 0.34)\n", "Ayhan (5.69, 0.58); (5.64, 0.53)\n", "Dest (5.84, 0.36); (5.83, 0.32)\n", "Stojanovic (5.68, 0.51); (5.62, 0.44)\n", "Birindelli (5.75, 0.32); (5.72, 0.28)\n", "Gendrey (5.77, 0.35); (5.71, 0.30)\n", "Ebosse (5.86, 0.33); (5.81, 0.29)\n", "Lochoshvili (5.81, 0.37); (5.80, 0.32)\n", "Bronn (5.85, 0.35); (5.81, 0.29)\n", "Thiaw (6.00, 0.40); (6.06, 0.42)\n", "Izzo (5.98, 0.41); (5.99, 0.33)\n", "D'ambrosio (6.06, 0.34); (6.12, 0.36)\n", "Rugani (6.01, 0.39); (6.04, 0.32)\n", "De Sciglio (5.83, 0.32); (5.79, 0.28)\n", "Luperto (5.70, 0.58); (5.67, 0.44)\n", "De Silvestri (5.78, 0.41); (5.81, 0.42)\n", "Djimsiti (5.94, 0.40); (5.98, 0.38)\n", "Palomino (6.07, 0.47); (6.15, 0.43)\n", "Bonifazi (5.66, 0.44); (5.63, 0.34)\n", "Hristov (5.75, 0.35); (5.67, 0.28)\n", "Donati (5.65, 0.42); (5.59, 0.35)\n", "Umtiti (5.82, 0.48); (5.79, 0.39)\n", "Kjaer (6.01, 0.31); (6.00, 0.31)\n", "Igor (5.65, 0.53); (5.61, 0.42)\n", "Okoli (5.65, 0.47); (5.62, 0.38)\n", "Soumaoro (5.70, 0.56); (5.64, 0.45)\n", "Caldirola (5.75, 0.48); (5.69, 0.37)\n", "Ballo-Toure' (6.13, 0.38); (6.46, 0.69)\n", "Bradaric (5.82, 0.40); (5.82, 0.34)\n", "De Winter (5.77, 0.53); (5.70, 0.39)\n", "Quagliata (5.94, 0.32); (5.96, 0.33)\n", "Ferrari A. (5.55, 0.47); (5.50, 0.39)\n", "Florenzi (6.11, 0.39); (6.33, 0.55)\n", "Sala (5.96, 0.38); (6.00, 0.39)\n", "Caldara (5.77, 0.55); (5.70, 0.45)\n", "Murru (5.70, 0.35); (5.69, 0.36)\n", "Marlon (5.62, 0.39); (5.55, 0.32)\n", "Walukiewicz (5.77, 0.39); (5.73, 0.32)\n", "Kumbulla (5.87, 0.32); (5.84, 0.29)\n", "Amian (5.72, 0.48); (5.66, 0.41)\n", "Ostigard (6.00, 0.38); (6.06, 0.36)\n", "Sambia (5.70, 0.39); (5.64, 0.32)\n", "Aiwu (5.93, 0.43); (5.98, 0.44)\n", "Ehizibue (5.87, 0.30); (5.80, 0.27)\n", "Hendry (5.98, 0.44); (6.03, 0.44)\n", "Marrone (5.51, 0.45); (5.45, 0.38)\n", "Radovanovic (5.52, 0.44); (5.56, 0.36)\n", "Murillo (5.63, 0.35); (5.52, 0.29)\n", "Venuti (5.67, 0.34); (5.63, 0.30)\n", "Magnani (5.76, 0.46); (5.72, 0.36)\n", "Terzic (6.01, 0.29); (5.96, 0.28)\n", "Gabbia (5.84, 0.41); (5.81, 0.33)\n", "Zortea (5.85, 0.32); (5.84, 0.34)\n", "Dawidowicz (5.58, 0.35); (5.48, 0.29)\n", "Pirola (5.82, 0.32); (5.73, 0.27)\n", "Carboni (5.65, 0.48); (5.60, 0.39)\n", "Lovato (5.72, 0.45); (5.68, 0.35)\n", "Tuia (5.76, 0.45); (5.80, 0.48)\n", "Amione (5.63, 0.35); (5.56, 0.30)\n", "Vasquez (5.77, 0.42); (5.75, 0.35)\n", "Zima (5.70, 0.41); (5.66, 0.34)\n", "Coppola D. (5.69, 0.43); (5.64, 0.36)\n", "Gatti (5.95, 0.45); (5.99, 0.38)\n", "Gila (5.81, 0.49); (5.78, 0.40)\n", "Cabal (5.82, 0.43); (5.83, 0.39)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Sosa (5.64, 0.48); (5.57, 0.42)\n", "Conti (5.91, 0.56); (6.23, 0.88)\n", "Dermaku (5.90, 0.43); (5.93, 0.39)\n", "Tonelli (5.61, 0.47); (5.58, 0.38)\n", "Radu (5.65, 0.49); (5.59, 0.43)\n", "Paletta (5.82, 0.42); (5.83, 0.39)\n", "Fares (5.76, 0.36); (5.71, 0.32)\n", "Marchizza (5.75, 0.37); (5.72, 0.32)\n", "Romagna (5.85, 0.44); (5.87, 0.41)\n", "Ranieri L. (5.72, 0.37); (5.71, 0.38)\n", "Cetin (5.88, 0.52); (5.83, 0.40)\n", "Muldur (5.64, 0.43); (5.58, 0.36)\n", "Adopo (5.82, 0.44); (5.81, 0.38)\n", "Ferrer (5.86, 0.44); (5.86, 0.36)\n", "Ruggeri (5.95, 0.35); (5.96, 0.32)\n", "Antov (5.61, 0.51); (5.54, 0.43)\n", "Amey (5.95, 0.42); (6.01, 0.41)\n", "Ferrarini (5.82, 0.42); (5.83, 0.39)\n", "Kamenovic (5.97, 0.43); (6.03, 0.38)\n", "Vina (5.73, 0.41); (5.69, 0.34)\n", "Zanoli (5.90, 0.32); (5.88, 0.29)\n", "Zanotti (5.89, 0.39); (5.93, 0.41)\n", "Ruan (5.66, 0.53); (5.71, 0.37)\n", "Motoc (5.88, 0.41); (5.91, 0.38)\n", "Cacace (5.83, 0.39); (5.78, 0.31)\n", "Bayeye (5.92, 0.41); (5.97, 0.42)\n", "Ebosele (5.96, 0.44); (6.03, 0.42)\n", "Buta (5.92, 0.40); (5.97, 0.39)\n", "Ndiaye (5.93, 0.43); (5.98, 0.44)\n", "Abankwah (5.92, 0.40); (5.97, 0.39)\n", "Guessand A. (5.92, 0.40); (5.97, 0.39)\n", "Guarino (5.90, 0.43); (5.93, 0.40)\n", "Milinkovic-Savic (6.45, 0.64); (7.83, 2.14)\n", "Barella (6.40, 0.62); (7.64, 1.97)\n", "Kvaratskhelia (6.59, 0.70); (8.44, 2.82)\n", "Zaccagni (6.48, 0.65); (8.04, 2.38)\n", "Zielinski (6.39, 0.54); (7.11, 1.27)\n", "Luis Alberto (6.38, 0.55); (7.19, 1.43)\n", "Frattesi (6.20, 0.59); (7.26, 1.69)\n", "Politano (6.25, 0.43); (6.75, 0.91)\n", "Koopmeiners (6.32, 0.59); (7.32, 1.64)\n", "Vlasic (6.28, 0.56); (7.41, 1.76)\n", "Pereyra (6.25, 0.56); (6.98, 1.28)\n", "Felipe Anderson (6.29, 0.59); (7.38, 1.73)\n", "Calhanoglu (6.36, 0.57); (7.21, 1.46)\n", "Strefezza (6.34, 0.51); (7.12, 1.38)\n", "Diaz B. (6.31, 0.63); (7.60, 1.98)\n", "Pellegrini Lo. (6.10, 0.59); (6.88, 1.36)\n", "Zambo Anguissa (6.39, 0.57); (7.23, 1.45)\n", "Lobotka (6.20, 0.39); (6.48, 0.61)\n", "Malinovskyi (6.16, 0.43); (6.45, 0.71)\n", "Candreva (6.25, 0.49); (6.81, 1.05)\n", "Pasalic (6.14, 0.56); (7.00, 1.44)\n", "Bennacer (6.16, 0.35); (6.44, 0.59)\n", "Kostic (6.20, 0.49); (6.79, 1.07)\n", "Radonjic (6.27, 0.48); (7.03, 1.30)\n", "Samardzic (6.21, 0.52); (6.87, 1.19)\n", "Chiesa (6.21, 0.51); (6.97, 1.29)\n", "Lovric (6.19, 0.38); (6.53, 0.70)\n", "De Ketelaere (5.90, 0.34); (5.91, 0.36)\n", "Brozovic (6.21, 0.47); (6.53, 0.76)\n", "Pogba (5.93, 0.41); (5.99, 0.39)\n", "Bonaventura (6.17, 0.49); (6.81, 1.16)\n", "Sensi (5.99, 0.53); (6.42, 0.95)\n", "Bandinelli (5.99, 0.48); (6.39, 0.92)\n", "Ikone' (6.12, 0.50); (6.71, 1.10)\n", "Barak (5.82, 0.35); (5.86, 0.42)\n", "Mkhitaryan (6.19, 0.44); (6.62, 0.87)\n", "Pessina (5.89, 0.41); (6.07, 0.64)\n", "Tonali (6.19, 0.45); (6.61, 0.85)\n", "Arslan (6.02, 0.39); (6.21, 0.60)\n", "Lazovic (6.05, 0.38); (6.33, 0.65)\n", "Cristante (6.00, 0.48); (6.26, 0.72)\n", "Elmas (6.13, 0.40); (6.51, 0.76)\n", "Bajrami (5.80, 0.40); (5.91, 0.56)\n", "Vecino (5.95, 0.49); (6.07, 0.59)\n", "Paredes (5.72, 0.35); (5.66, 0.30)\n", "Mandragora (5.95, 0.42); (6.17, 0.66)\n", "Djuricic (5.78, 0.48); (6.05, 0.79)\n", "Lukic (6.08, 0.54); (6.56, 1.02)\n", "Soriano (5.94, 0.34); (5.96, 0.36)\n", "Zaniolo (5.87, 0.49); (6.28, 0.94)\n", "Sottil (6.08, 0.54); (6.72, 1.17)\n", "Traore' Hj. (6.11, 0.56); (6.92, 1.40)\n", "Messias (6.07, 0.54); (6.80, 1.26)\n", "Thorstvedt (5.95, 0.45); (6.28, 0.84)\n", "Cuadrado (5.88, 0.54); (5.86, 0.51)\n", "Locatelli (6.08, 0.39); (6.18, 0.43)\n", "Rabiot (6.17, 0.55); (6.79, 1.16)\n", "Dominguez (6.00, 0.43); (6.19, 0.60)\n", "Tameze (5.86, 0.40); (5.91, 0.41)\n", "Miranchuk (6.16, 0.61); (7.20, 1.65)\n", "Vilhena (5.73, 0.36); (5.76, 0.43)\n", "De Roon (6.01, 0.36); (6.04, 0.36)\n", "Verdi (6.01, 0.32); (6.13, 0.46)\n", "Walace (5.96, 0.35); (5.99, 0.34)\n", "Wijnaldum (5.89, 0.41); (5.91, 0.39)\n", "Mckennie (5.80, 0.39); (5.90, 0.55)\n", "Makengo (5.97, 0.35); (6.00, 0.36)\n", "Ricci S. (6.11, 0.37); (6.26, 0.47)\n", "Coulibaly L. (6.01, 0.50); (6.35, 0.86)\n", "Sabiri (5.74, 0.42); (5.80, 0.56)\n", "Miretti (5.99, 0.36); (6.05, 0.41)\n", "Colpani (6.10, 0.40); (6.54, 0.90)\n", "Haas (5.90, 0.38); (6.12, 0.66)\n", "Orsolini (5.96, 0.59); (6.61, 1.23)\n", "Matic (5.99, 0.32); (5.99, 0.32)\n", "Ascacibar (6.00, 0.37); (6.04, 0.38)\n", "Ederson D.s. (5.93, 0.33); (5.93, 0.35)\n", "Ciurria (5.89, 0.41); (6.01, 0.56)\n", "Gonzalez J. (6.05, 0.47); (6.48, 0.90)\n", "El Shaarawy (6.16, 0.43); (6.63, 0.93)\n", "Meite' (5.87, 0.36); (5.88, 0.34)\n", "Bourabia (5.90, 0.34); (5.90, 0.31)\n", "Ndombele' (5.92, 0.32); (5.91, 0.30)\n", "Henderson L. (5.79, 0.35); (5.81, 0.42)\n", "Maggiore (5.92, 0.34); (5.95, 0.37)\n", "Ilic (5.82, 0.37); (5.84, 0.38)\n", "Kovalenko (5.92, 0.37); (5.99, 0.44)\n", "Zalewski (5.96, 0.33); (5.98, 0.37)\n", "Pickel (5.88, 0.35); (5.97, 0.51)\n", "Ferguson (6.07, 0.51); (6.59, 1.02)\n", "Camara Ma. (6.10, 0.30); (6.18, 0.34)\n", "Saponara (5.96, 0.46); (6.25, 0.74)\n", "Rincon (5.74, 0.36); (5.75, 0.36)\n", "Cataldi (5.99, 0.38); (6.04, 0.37)\n", "Zurkowski (6.12, 0.52); (6.72, 1.14)\n", "Rovella (5.75, 0.55); (5.71, 0.44)\n", "Agudelo (5.86, 0.33); (5.86, 0.34)\n", "Amrabat (5.91, 0.47); (5.96, 0.48)\n", "Lopez M. (5.88, 0.40); (5.92, 0.39)\n", "Gyasi (5.80, 0.47); (5.95, 0.67)\n", "Pobega (5.99, 0.33); (6.06, 0.43)\n", "Harroui (5.79, 0.36); (5.87, 0.52)\n", "Ceide (5.87, 0.35); (5.86, 0.34)\n", "Baldanzi (6.25, 0.47); (7.03, 1.36)\n", "Blin (6.00, 0.30); (5.98, 0.30)\n", "Hjulmand (5.93, 0.53); (5.88, 0.42)\n", "D'alessandro (5.98, 0.30); (5.99, 0.36)\n", "Grassi (5.94, 0.32); (5.91, 0.29)\n", "Krunic (5.97, 0.32); (5.98, 0.35)\n", "Linetty (5.84, 0.40); (5.85, 0.40)\n", "Miguel Veloso (5.92, 0.37); (5.96, 0.40)\n", "Ekdal (5.77, 0.38); (5.73, 0.33)\n", "Schouten (5.87, 0.39); (5.84, 0.32)\n", "Villar (5.78, 0.32); (5.72, 0.28)\n", "Saelemaekers (5.94, 0.36); (6.01, 0.45)\n", "Vranckx (5.95, 0.39); (6.01, 0.39)\n", "Basic (6.03, 0.31); (6.07, 0.38)\n", "Aebischer (5.85, 0.37); (5.86, 0.36)\n", "Marcos Antonio (5.82, 0.32); (5.77, 0.28)\n", "Ranocchia F. (5.96, 0.41); (6.20, 0.68)\n", "Bistrovic (5.84, 0.31); (5.85, 0.32)\n", "Verre (5.71, 0.33); (5.67, 0.28)\n", "Gagliardini (6.01, 0.40); (6.19, 0.56)\n", "Barberis (5.72, 0.38); (5.71, 0.33)\n", "Leris (5.69, 0.35); (5.70, 0.41)\n", "Vieira (5.67, 0.34); (5.65, 0.32)\n", "Winks (5.85, 0.41); (5.90, 0.43)\n", "Castrovilli (5.97, 0.42); (6.14, 0.61)\n", "Maldini (6.04, 0.50); (6.69, 1.15)\n", "Marin (5.72, 0.37); (5.68, 0.32)\n", "Maleh (5.87, 0.35); (5.95, 0.47)\n", "Matheus Henrique (5.82, 0.35); (5.82, 0.34)\n", "Asllani (5.90, 0.32); (5.89, 0.32)\n", "Moro N. (5.84, 0.34); (5.83, 0.31)\n", "Oudin (6.01, 0.35); (6.09, 0.41)\n", "Duncan (5.86, 0.39); (5.95, 0.49)\n", "Molina S. (5.78, 0.38); (5.79, 0.37)\n", "Kastanos (5.72, 0.36); (5.68, 0.31)\n", "Valoti (5.78, 0.33); (5.72, 0.28)\n", "Gaetano (6.03, 0.36); (6.09, 0.39)\n", "Escalante (5.77, 0.42); (5.73, 0.35)\n", "Bohinen (5.92, 0.34); (5.92, 0.31)\n", "Terracciano F. (6.01, 0.30); (6.02, 0.34)\n", "Milanese (5.88, 0.44); (5.93, 0.44)\n", "Castagnetti (5.97, 0.33); (5.99, 0.34)\n", "Listkowski (5.93, 0.32); (5.91, 0.30)\n", "Adli (5.73, 0.33); (5.73, 0.32)\n", "Hrustic (5.66, 0.42); (5.61, 0.36)\n", "D'andrea (5.95, 0.34); (6.00, 0.43)\n", "Benassi (5.83, 0.32); (5.83, 0.33)\n", "Baez (5.92, 0.46); (5.97, 0.44)\n", "Vignato (5.82, 0.38); (5.86, 0.40)\n", "Obiang (5.86, 0.39); (5.84, 0.32)\n", "Askildsen (5.69, 0.32); (5.65, 0.27)\n", "Hongla (5.70, 0.32); (5.70, 0.29)\n", "Yepes (5.56, 0.42); (5.48, 0.37)\n", "Helgason (5.82, 0.33); (5.80, 0.29)\n", "Bondo (5.91, 0.42); (5.94, 0.37)\n", "Ellertsson (5.88, 0.38); (5.90, 0.34)\n", "Capezzi (5.92, 0.35); (5.93, 0.32)\n", "Jajalo (5.88, 0.33); (5.86, 0.30)\n", "Machin (5.84, 0.41); (5.86, 0.39)\n", "Bakayoko (5.80, 0.37); (5.74, 0.32)\n", "Scozzarella (5.84, 0.41); (5.86, 0.39)\n", "Fagioli (6.12, 0.46); (6.60, 0.94)\n", "Demme (5.97, 0.41); (6.14, 0.57)\n", "Akpa Akpro (5.90, 0.44); (5.95, 0.42)\n", "Darboe (5.96, 0.47); (5.99, 0.41)\n", "Bove (5.78, 0.38); (5.77, 0.34)\n", "Urbanski (5.92, 0.41); (5.96, 0.41)\n", "Bertini (5.94, 0.41); (5.99, 0.39)\n", "Cortinovis (5.85, 0.39); (5.89, 0.42)\n", "Romero L. (5.98, 0.51); (6.35, 0.89)\n", "Bianco (5.92, 0.40); (5.98, 0.46)\n", "Sher (5.90, 0.40); (5.94, 0.39)\n", "Nguiamba (5.98, 0.41); (6.05, 0.41)\n", "Volpato (6.08, 0.51); (6.45, 0.86)\n", "Praszelik (5.96, 0.39); (6.04, 0.46)\n", "Trimboli (5.85, 0.41); (5.90, 0.43)\n", "Pafundi (5.93, 0.40); (5.98, 0.40)\n", "Bjorkengren (5.94, 0.42); (6.00, 0.43)\n", "Vignato S. (5.88, 0.43); (5.91, 0.41)\n", "Samek (5.94, 0.42); (6.00, 0.43)\n", "Zerbin (5.95, 0.35); (5.99, 0.38)\n", "Ilkhan (5.75, 0.35); (5.71, 0.30)\n", "Degli Innocenti (5.94, 0.46); (5.99, 0.44)\n", "Fazzini (5.63, 0.48); (5.58, 0.38)\n", "Acella (5.95, 0.43); (6.03, 0.48)\n", "Tripi (5.92, 0.41); (5.95, 0.40)\n", "Garbett (5.92, 0.41); (5.97, 0.43)\n", "Iling-Junior (5.99, 0.50); (6.03, 0.45)\n", "Immobile (6.48, 0.72); (8.40, 2.84)\n", "Vlahovic (6.32, 0.71); (8.05, 2.52)\n", "Rafael Leao (6.34, 0.71); (7.84, 2.30)\n", "Martinez L. (6.33, 0.72); (8.16, 2.62)\n", "Dybala (6.47, 0.64); (7.99, 2.33)\n", "Arnautovic (6.28, 0.68); (7.90, 2.35)\n", "Beto (6.27, 0.66); (7.92, 2.37)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Giroud (6.27, 0.67); (7.70, 2.15)\n", "Osimhen (6.45, 0.73); (8.40, 2.85)\n", "Deulofeu (6.35, 0.64); (7.68, 2.04)\n", "Lukaku (6.47, 0.71); (8.41, 2.84)\n", "Milik (6.18, 0.56); (7.02, 1.39)\n", "Pedro (6.32, 0.57); (7.20, 1.49)\n", "Abraham (6.20, 0.64); (7.60, 2.07)\n", "Berardi (6.32, 0.69); (7.97, 2.41)\n", "Dia (6.25, 0.69); (7.86, 2.33)\n", "Lookman (6.44, 0.65); (8.01, 2.39)\n", "Simeone (6.27, 0.70); (7.91, 2.39)\n", "Correa (6.27, 0.48); (7.10, 1.43)\n", "Zapata D. (6.16, 0.62); (7.38, 1.87)\n", "Dzeko (6.19, 0.69); (7.69, 2.19)\n", "Nzola (6.06, 0.63); (7.16, 1.71)\n", "Sanabria (6.08, 0.59); (7.03, 1.54)\n", "Muriel (6.21, 0.65); (7.30, 1.76)\n", "Rebic (6.22, 0.66); (7.52, 1.99)\n", "Bonazzoli (6.06, 0.48); (6.46, 0.89)\n", "Caprari (5.90, 0.38); (6.11, 0.66)\n", "Di Maria (6.08, 0.65); (6.81, 1.40)\n", "Lozano (6.29, 0.65); (7.62, 2.03)\n", "Ceesay (6.07, 0.55); (6.97, 1.44)\n", "Pinamonti (5.95, 0.54); (6.66, 1.26)\n", "Kouame' (6.19, 0.61); (7.36, 1.79)\n", "Lauriente' (6.28, 0.69); (7.47, 1.95)\n", "Jovic (6.02, 0.61); (6.88, 1.46)\n", "Barrow (6.04, 0.62); (6.90, 1.45)\n", "Henry (5.96, 0.54); (6.54, 1.14)\n", "Piatek (6.06, 0.65); (7.22, 1.79)\n", "Gonzalez N. (6.23, 0.61); (7.31, 1.71)\n", "Dessers (6.09, 0.49); (6.91, 1.34)\n", "Caputo (5.78, 0.40); (5.97, 0.64)\n", "Raspadori (6.03, 0.51); (6.60, 1.08)\n", "Lammers (5.92, 0.39); (6.09, 0.62)\n", "Okereke (6.00, 0.54); (6.60, 1.17)\n", "Cabral (6.08, 0.48); (6.86, 1.29)\n", "Gabbiadini (5.81, 0.42); (6.07, 0.74)\n", "Belotti (5.77, 0.31); (5.79, 0.32)\n", "Origi (6.03, 0.56); (6.70, 1.22)\n", "Botheim (5.97, 0.42); (6.39, 0.88)\n", "Alvarez A. (6.13, 0.60); (7.13, 1.62)\n", "Verde (6.10, 0.45); (6.67, 1.04)\n", "Destro (5.92, 0.60); (6.60, 1.28)\n", "Kean (5.96, 0.56); (6.62, 1.23)\n", "Pellegri (5.89, 0.41); (6.21, 0.79)\n", "Satriano (5.89, 0.45); (6.28, 0.89)\n", "Success (5.98, 0.33); (5.99, 0.37)\n", "Mota (5.84, 0.41); (6.25, 0.86)\n", "Banda (5.98, 0.36); (6.06, 0.45)\n", "Hojlund (6.01, 0.43); (6.54, 1.01)\n", "Lasagna (5.76, 0.36); (5.90, 0.57)\n", "Pjaca (5.90, 0.40); (5.99, 0.53)\n", "Gytkjaer (5.85, 0.37); (6.14, 0.74)\n", "Petagna (5.80, 0.39); (5.95, 0.58)\n", "Nestorovski (6.06, 0.39); (6.37, 0.75)\n", "Zanimacchia (5.97, 0.34); (6.06, 0.45)\n", "Piccoli (5.89, 0.40); (6.17, 0.75)\n", "Kallon (5.91, 0.34); (6.09, 0.64)\n", "Ciofani D. (6.13, 0.41); (6.85, 1.25)\n", "Di Francesco F. (5.89, 0.43); (6.12, 0.72)\n", "Boga (5.88, 0.32); (5.86, 0.36)\n", "Zirkzee (6.04, 0.53); (6.82, 1.31)\n", "Quagliarella (5.79, 0.36); (5.90, 0.55)\n", "Ibrahimovic (6.36, 0.65); (7.89, 2.28)\n", "Shomurodov (5.97, 0.46); (6.55, 1.08)\n", "Djuric (5.89, 0.30); (5.86, 0.30)\n", "Strelec (5.94, 0.29); (5.91, 0.32)\n", "Antiste (5.80, 0.40); (6.09, 0.77)\n", "Seck (6.06, 0.31); (6.10, 0.37)\n", "Buonaiuto (6.05, 0.36); (6.19, 0.46)\n", "Sansone (5.81, 0.38); (5.88, 0.48)\n", "Pussetto (5.83, 0.39); (6.08, 0.75)\n", "Cambiaghi (5.91, 0.30); (5.89, 0.31)\n", "Colombo (6.01, 0.49); (6.74, 1.24)\n", "Afena-Gyan (5.75, 0.33); (5.73, 0.30)\n", "Defrel (5.82, 0.41); (5.95, 0.60)\n", "Karamoh (6.03, 0.33); (6.11, 0.39)\n", "Cancellieri (5.93, 0.34); (5.91, 0.31)\n", "Tsadjout (6.03, 0.42); (6.20, 0.57)\n", "Rodriguez P. (5.92, 0.34); (5.94, 0.34)\n", "Valencia D. (5.68, 0.32); (5.70, 0.29)\n", "Edera (5.92, 0.43); (5.98, 0.47)\n", "Oddei (5.99, 0.40); (6.03, 0.41)\n", "Raimondo (5.95, 0.43); (6.02, 0.45)\n", "Kristoffersen (5.89, 0.43); (5.94, 0.41)\n", "Kaio Jorge (5.98, 0.36); (6.03, 0.39)\n", "De Luca (5.86, 0.44); (5.92, 0.46)\n", "Soule' (6.01, 0.45); (6.08, 0.39)\n", "Lazetic (5.97, 0.41); (6.05, 0.46)\n", "Voelkerling Persson (5.94, 0.44); (6.01, 0.45)\n", "Sanca (5.91, 0.37); (5.94, 0.36)\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
MussoPAtalantaAvg111006.2730520.4332535.7293540.5727796.0200630.3334880.5210171.3528895.9507120.803720-0.2004970.65154963.398904
Rossi F.PAtalantaAvg1006.2730520.4332535.7293540.5727796.0200630.3334880.5210171.3528895.9507120.803720-0.2004970.65154963.398904
SportielloPAtalantaAvg1006.2693990.4058685.6303670.5827746.0357430.3161960.5092421.3558475.9241960.807376-0.2643650.64206951.028043
ScalviniDAtalantaAvg11716.0858590.5325786.5143910.9488176.0297680.6187350.0673701.1245695.6771001.0774080.5006531.9073120.000000
ToloiDAtalantaAvg11716.2113020.4496566.5117710.6808136.1296490.5086790.1186791.1653215.9826560.9173840.3919231.9317780.000000
............................................................
HenryAVeronaAvg111005.9636650.5449476.5379351.1376515.9406910.6450680.0262511.1085765.4811701.1655790.5618151.9031130.000000
PiccoliAVeronaAvg10285.8912380.3960266.1684260.7477635.8862650.4750340.0077501.1530885.5311990.8974260.4655561.9072190.000000
KallonAVeronaAvg10785.9108430.3447606.0863450.6441355.9013020.4127040.0172071.1767905.5610290.8189820.4285021.9036130.000000
LasagnaAVeronaAvg11855.7568090.3637715.8950580.5706215.7806920.445713-0.0397561.1531285.4671750.7901180.3722301.8931090.000000
DjuricAVeronaAvg10715.8877460.3013175.8598970.2958135.8825440.3626060.0108151.1950725.7692650.5557780.1206731.8810250.000000
\n", "

554 rows × 19 columns

\n", "
" ], "text/plain": [ " role team oppteam home starter vote% MV MV std \\\n", "player \n", "Musso P Atalanta Avg 1 1 100 6.273052 0.433253 \n", "Rossi F. P Atalanta Avg 1 0 0 6.273052 0.433253 \n", "Sportiello P Atalanta Avg 1 0 0 6.269399 0.405868 \n", "Scalvini D Atalanta Avg 1 1 71 6.085859 0.532578 \n", "Toloi D Atalanta Avg 1 1 71 6.211302 0.449656 \n", "... ... ... ... ... ... ... ... ... \n", "Henry A Verona Avg 1 1 100 5.963665 0.544947 \n", "Piccoli A Verona Avg 1 0 28 5.891238 0.396026 \n", "Kallon A Verona Avg 1 0 78 5.910843 0.344760 \n", "Lasagna A Verona Avg 1 1 85 5.756809 0.363771 \n", "Djuric A Verona Avg 1 0 71 5.887746 0.301317 \n", "\n", " FV FV std MV loc MV scale MV skewness \\\n", "player \n", "Musso 5.729354 0.572779 6.020063 0.333488 0.521017 \n", "Rossi F. 5.729354 0.572779 6.020063 0.333488 0.521017 \n", "Sportiello 5.630367 0.582774 6.035743 0.316196 0.509242 \n", "Scalvini 6.514391 0.948817 6.029768 0.618735 0.067370 \n", "Toloi 6.511771 0.680813 6.129649 0.508679 0.118679 \n", "... ... ... ... ... ... \n", "Henry 6.537935 1.137651 5.940691 0.645068 0.026251 \n", "Piccoli 6.168426 0.747763 5.886265 0.475034 0.007750 \n", "Kallon 6.086345 0.644135 5.901302 0.412704 0.017207 \n", "Lasagna 5.895058 0.570621 5.780692 0.445713 -0.039756 \n", "Djuric 5.859897 0.295813 5.882544 0.362606 0.010815 \n", "\n", " MV tailweight FV loc FV scale FV skewness FV tailweight \\\n", "player \n", "Musso 1.352889 5.950712 0.803720 -0.200497 0.651549 \n", "Rossi F. 1.352889 5.950712 0.803720 -0.200497 0.651549 \n", "Sportiello 1.355847 5.924196 0.807376 -0.264365 0.642069 \n", "Scalvini 1.124569 5.677100 1.077408 0.500653 1.907312 \n", "Toloi 1.165321 5.982656 0.917384 0.391923 1.931778 \n", "... ... ... ... ... ... \n", "Henry 1.108576 5.481170 1.165579 0.561815 1.903113 \n", "Piccoli 1.153088 5.531199 0.897426 0.465556 1.907219 \n", "Kallon 1.176790 5.561029 0.818982 0.428502 1.903613 \n", "Lasagna 1.153128 5.467175 0.790118 0.372230 1.893109 \n", "Djuric 1.195072 5.769265 0.555778 0.120673 1.881025 \n", "\n", " Clean Sheet % \n", "player \n", "Musso 63.398904 \n", "Rossi F. 63.398904 \n", "Sportiello 51.028043 \n", "Scalvini 0.000000 \n", "Toloi 0.000000 \n", "... ... \n", "Henry 0.000000 \n", "Piccoli 0.000000 \n", "Kallon 0.000000 \n", "Lasagna 0.000000 \n", "Djuric 0.000000 \n", "\n", "[554 rows x 19 columns]" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "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", " 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", " \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": 34, "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": "a9687e92", "metadata": {}, "source": [ "Same code but considering previous season" ] }, { "cell_type": "code", "execution_count": 41, "id": "89e1dc82", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Meret (5.79, 0.46); (5.22, 0.60)\n", "Provedel (6.40, 0.38); (4.78, 0.71)\n", "Maignan (6.38, 0.38); (5.01, 0.67)\n", "Silvestri (6.40, 0.38); (4.53, 0.74)\n", "Sepe (6.38, 0.37); (4.77, 0.71)\n", "Szczesny (6.29, 0.39); (5.05, 0.66)\n", "Consigli (6.31, 0.37); (4.42, 0.76)\n", "Falcone (6.33, 0.41); (5.23, 0.64)\n", "Musso (6.39, 0.37); (4.71, 0.72)\n", "Vicario (6.40, 0.38); (4.57, 0.74)\n", "Rui Patricio (6.36, 0.38); (4.57, 0.73)\n", "Milinkovic-Savic V. (6.28, 0.36); (4.68, 0.72)\n", "Audero (6.32, 0.36); (4.39, 0.77)\n", "Montipo' (6.37, 0.36); (4.63, 0.73)\n", "Sportiello (6.33, 0.41); (5.58, 0.59)\n", "Skorupski (6.39, 0.39); (4.61, 0.73)\n", "Di Gregorio (6.13, 0.40); (4.30, 0.76)\n", "Perin (6.23, 0.41); (5.53, 0.59)\n", "Handanovic (6.44, 0.39); (4.66, 0.73)\n", "Tatarusanu (6.06, 0.43); (5.47, 0.59)\n", "Gollini (6.03, 0.41); (5.40, 0.60)\n", "Dragowski (5.66, 0.42); (3.79, 0.84)\n", "Terracciano (6.22, 0.34); (4.44, 0.75)\n", "Berisha (6.26, 0.43); (5.58, 0.59)\n", "Radu I. (5.33, 0.40); (3.14, 0.99)\n", "Cragno (6.36, 0.36); (4.65, 0.72)\n", "Luis Maximiano (6.05, 0.46); (5.19, 0.62)\n", "Onana (6.23, 0.37); (5.38, 0.62)\n", "Carnesecchi (6.27, 0.45); (5.50, 0.60)\n", "Mirante (6.38, 0.38); (5.01, 0.67)\n", "Sarr M. (6.27, 0.42); (4.63, 0.72)\n", "Lamanna (6.13, 0.40); (4.30, 0.76)\n", "Ujkani (6.40, 0.38); (4.57, 0.74)\n", "Pegolo (6.28, 0.36); (4.38, 0.76)\n", "Perilli (6.22, 0.33); (4.29, 0.78)\n", "Padelli (6.45, 0.40); (4.62, 0.73)\n", "Perisan (6.45, 0.41); (5.30, 0.63)\n", "Bardi (6.40, 0.38); (4.71, 0.72)\n", "Cordaz (6.44, 0.39); (4.66, 0.73)\n", "Pinsoglio (6.26, 0.40); (5.18, 0.64)\n", "Fiorillo (6.33, 0.36); (4.62, 0.74)\n", "Sirigu (6.36, 0.36); (4.96, 0.68)\n", "Cerofolini (6.09, 0.35); (4.64, 0.72)\n", "Rossi F. (6.38, 0.37); (4.78, 0.70)\n", "Contini (6.18, 0.34); (4.22, 0.80)\n", "Brancolini (6.40, 0.37); (4.83, 0.70)\n", "Bleve (6.40, 0.37); (4.83, 0.70)\n", "Berardi A. (6.33, 0.35); (4.49, 0.75)\n", "Russo A. (6.24, 0.37); (5.24, 0.63)\n", "Gemello (6.26, 0.43); (5.64, 0.59)\n", "Ravaglia (6.37, 0.36); (4.57, 0.74)\n", "Zoet (5.55, 0.33); (2.93, 1.10)\n", "Boer (6.36, 0.38); (4.57, 0.73)\n", "Adamonis (6.16, 0.40); (4.50, 0.73)\n", "Marfella (6.37, 0.37); (5.05, 0.67)\n", "Zovko (6.38, 0.37); (4.50, 0.75)\n", "Piana (6.40, 0.38); (4.53, 0.74)\n", "Bagnolini (6.04, 0.36); (3.94, 0.82)\n", "Svilar (6.24, 0.40); (5.38, 0.61)\n", "Sorrentino A. (6.13, 0.40); (4.30, 0.76)\n", "Ciezkowski (6.27, 0.42); (4.63, 0.72)\n", "Micai (6.41, 0.37); (4.91, 0.69)\n", "Chiesa M. (6.22, 0.33); (4.29, 0.78)\n", "Saro (6.27, 0.42); (4.63, 0.72)\n", "Smalling (6.16, 0.46); (6.51, 0.80)\n", "Hernandez T. (6.24, 0.60); (6.99, 1.34)\n", "Kim (6.28, 0.45); (6.62, 0.73)\n", "Bastoni S. (6.08, 0.49); (6.43, 0.82)\n", "Udogie (6.04, 0.56); (6.54, 1.08)\n", "Dumfries (6.18, 0.51); (6.86, 1.22)\n", "Romagnoli (5.99, 0.48); (6.00, 0.39)\n", "Rodrigo Becao (6.00, 0.52); (6.13, 0.63)\n", "Parisi (5.87, 0.40); (5.88, 0.34)\n", "Mazzocchi (5.81, 0.40); (5.83, 0.36)\n", "Bremer (6.21, 0.47); (6.40, 0.55)\n", "Demiral (6.02, 0.52); (6.06, 0.49)\n", "Valeri (6.08, 0.35); (6.40, 0.67)\n", "Dimarco (6.17, 0.46); (6.58, 0.85)\n", "Di Lorenzo (6.15, 0.41); (6.31, 0.49)\n", "Ibanez (5.81, 0.51); (5.87, 0.58)\n", "Tomori (6.09, 0.39); (6.16, 0.36)\n", "Toloi (6.03, 0.48); (6.15, 0.56)\n", "Gosens (6.07, 0.34); (6.17, 0.40)\n", "Rrahmani (6.23, 0.50); (6.63, 0.85)\n", "Kalulu (6.20, 0.49); (6.56, 0.80)\n", "Bijol (6.07, 0.51); (6.47, 0.91)\n", "Doig (6.16, 0.51); (6.72, 1.05)\n", "Mario Rui (6.03, 0.42); (6.13, 0.44)\n", "Spinazzola (6.02, 0.32); (6.02, 0.34)\n", "Lazzari (6.01, 0.51); (6.38, 0.91)\n", "Mancini (5.76, 0.50); (5.72, 0.40)\n", "Danilo (6.12, 0.42); (6.25, 0.48)\n", "Kyriakopoulos (5.78, 0.52); (5.74, 0.45)\n", "Vojvoda (5.95, 0.37); (6.00, 0.40)\n", "Scalvini (5.98, 0.38); (6.05, 0.41)\n", "Carlos Augusto (5.83, 0.45); (5.95, 0.58)\n", "Skriniar (6.15, 0.46); (6.35, 0.59)\n", "Schuurs (6.03, 0.36); (6.07, 0.34)\n", "Juan Jesus (6.12, 0.44); (6.36, 0.63)\n", "Bonucci (6.21, 0.56); (6.77, 1.10)\n", "Calabria (6.10, 0.35); (6.36, 0.60)\n", "Bastoni (6.16, 0.41); (6.32, 0.50)\n", "Depaoli (5.74, 0.40); (5.78, 0.48)\n", "Darmian (6.06, 0.37); (6.30, 0.64)\n", "Sernicola (5.96, 0.41); (6.27, 0.77)\n", "Mari' (6.02, 0.59); (6.27, 0.86)\n", "Martinez Quarta (5.76, 0.50); (5.73, 0.49)\n", "Maehle (6.03, 0.30); (6.07, 0.36)\n", "Olivera (6.17, 0.38); (6.48, 0.66)\n", "Biraghi (5.87, 0.57); (6.14, 0.87)\n", "Medel (5.75, 0.54); (5.69, 0.42)\n", "Patric (5.77, 0.56); (5.77, 0.56)\n", "Rodriguez R. (5.88, 0.39); (5.89, 0.33)\n", "Aina (5.88, 0.36); (5.89, 0.33)\n", "Cambiaso (5.88, 0.51); (5.94, 0.54)\n", "Perez N. (5.74, 0.41); (5.70, 0.35)\n", "Holm (5.93, 0.41); (6.14, 0.65)\n", "Baschirotto (6.15, 0.47); (6.56, 0.86)\n", "Dodo' (5.72, 0.41); (5.70, 0.39)\n", "Hysaj (5.70, 0.40); (5.70, 0.41)\n", "Faraoni (6.07, 0.44); (6.44, 0.81)\n", "Bianchetti (5.74, 0.41); (5.79, 0.47)\n", "Milenkovic (5.80, 0.51); (5.79, 0.47)\n", "Marusic (5.68, 0.48); (5.65, 0.46)\n", "Colley (5.78, 0.53); (5.73, 0.39)\n", "Toljan (5.81, 0.38); (5.80, 0.33)\n", "Celik (5.90, 0.35); (5.89, 0.32)\n", "Ampadu (5.77, 0.51); (5.71, 0.39)\n", "Singo (6.14, 0.54); (6.63, 1.00)\n", "Casale (5.82, 0.41); (5.79, 0.34)\n", "Daniliuc (5.83, 0.55); (5.78, 0.46)\n", "Pongracic (5.88, 0.42); (5.86, 0.33)\n", "Soppy (5.87, 0.33); (5.84, 0.30)\n", "Kiwior (5.78, 0.39); (5.76, 0.32)\n", "Posch (5.96, 0.59); (6.46, 1.09)\n", "Masina (5.98, 0.42); (6.23, 0.72)\n", "Ghiglione (5.72, 0.37); (5.69, 0.32)\n", "De Vrij (5.81, 0.36); (5.79, 0.31)\n", "Alex Sandro (5.83, 0.34); (5.79, 0.29)\n", "Ceccherini (5.76, 0.48); (5.78, 0.49)\n", "Fazio (5.69, 0.58); (5.64, 0.55)\n", "Rogerio (5.77, 0.40); (5.75, 0.35)\n", "Reca (5.75, 0.38); (5.72, 0.32)\n", "Gunter (5.73, 0.53); (5.67, 0.44)\n", "Djidji (5.82, 0.46); (5.79, 0.36)\n", "Augello (5.77, 0.40); (5.84, 0.46)\n", "Bellanova (5.82, 0.42); (5.85, 0.43)\n", "Erlic (5.84, 0.54); (5.95, 0.67)\n", "Ismajli (5.64, 0.53); (5.58, 0.43)\n", "Ebuehi (5.64, 0.38); (5.57, 0.32)\n", "Kasius (5.96, 0.32); (5.95, 0.31)\n", "Lucumi' (5.77, 0.39); (5.73, 0.32)\n", "Hien (5.67, 0.45); (5.62, 0.37)\n", "Acerbi (6.01, 0.53); (6.29, 0.80)\n", "Zappacosta (6.08, 0.39); (6.28, 0.56)\n", "Chiriches (5.71, 0.53); (5.65, 0.42)\n", "Gyomber (5.68, 0.52); (5.62, 0.42)\n", "Pezzella Giu. (5.95, 0.37); (5.98, 0.36)\n", "Ferrari G. (5.69, 0.55); (5.63, 0.47)\n", "Bereszynski (5.66, 0.42); (5.60, 0.36)\n", "Hateboer (5.78, 0.34); (5.77, 0.31)\n", "Karsdorp (5.96, 0.43); (6.01, 0.39)\n", "Nuytinck (5.98, 0.52); (6.03, 0.50)\n", "Lykogiannis (5.72, 0.35); (5.69, 0.31)\n", "Buongiorno (5.87, 0.40); (5.85, 0.33)\n", "Nikolaou (5.66, 0.44); (5.62, 0.35)\n", "Lazaro (5.83, 0.42); (5.86, 0.41)\n", "Gallo (5.86, 0.41); (5.82, 0.34)\n", "Ayhan (5.71, 0.57); (5.77, 0.67)\n", "Dest (5.84, 0.36); (5.83, 0.32)\n", "Stojanovic (5.75, 0.51); (5.71, 0.47)\n", "Birindelli (5.75, 0.32); (5.72, 0.28)\n", "Gendrey (5.77, 0.35); (5.71, 0.30)\n", "Ebosse (5.86, 0.33); (5.81, 0.29)\n", "Lochoshvili (5.81, 0.37); (5.80, 0.32)\n", "Bronn (5.85, 0.35); (5.81, 0.29)\n", "Thiaw (6.00, 0.40); (6.06, 0.42)\n", "Izzo (5.76, 0.35); (5.68, 0.30)\n", "D'ambrosio (6.13, 0.38); (6.27, 0.46)\n", "Rugani (5.94, 0.34); (5.93, 0.29)\n", "De Sciglio (6.06, 0.50); (6.32, 0.74)\n", "Luperto (5.74, 0.59); (5.66, 0.47)\n", "De Silvestri (5.83, 0.52); (6.09, 0.81)\n", "Djimsiti (5.89, 0.45); (5.93, 0.44)\n", "Palomino (6.07, 0.47); (6.15, 0.43)\n", "Bonifazi (5.64, 0.50); (5.62, 0.38)\n", "Hristov (5.69, 0.47); (5.85, 0.69)\n", "Donati (5.65, 0.42); (5.59, 0.35)\n", "Umtiti (5.82, 0.48); (5.79, 0.39)\n", "Kjaer (6.01, 0.31); (6.00, 0.31)\n", "Igor (5.72, 0.53); (5.67, 0.42)\n", "Okoli (5.65, 0.47); (5.62, 0.38)\n", "Soumaoro (5.74, 0.52); (5.69, 0.40)\n", "Caldirola (5.75, 0.48); (5.69, 0.37)\n", "Ballo-Toure' (5.73, 0.32); (5.69, 0.28)\n", "Bradaric (5.82, 0.40); (5.82, 0.34)\n", "De Winter (5.77, 0.53); (5.70, 0.39)\n", "Quagliata (5.94, 0.32); (5.96, 0.33)\n", "Ferrari A. (5.75, 0.48); (5.82, 0.59)\n", "Florenzi (6.11, 0.39); (6.34, 0.58)\n", "Sala (5.85, 0.39); (5.99, 0.55)\n", "Caldara (5.82, 0.55); (5.78, 0.49)\n", "Murru (5.61, 0.40); (5.65, 0.54)\n", "Marlon (5.62, 0.39); (5.55, 0.32)\n", "Walukiewicz (5.69, 0.44); (5.65, 0.34)\n", "Kumbulla (5.78, 0.34); (5.72, 0.29)\n", "Amian (5.71, 0.52); (5.66, 0.46)\n", "Ostigard (6.00, 0.38); (6.06, 0.36)\n", "Sambia (5.70, 0.39); (5.64, 0.32)\n", "Aiwu (5.93, 0.43); (5.98, 0.44)\n", "Ehizibue (5.87, 0.30); (5.80, 0.27)\n", "Hendry (5.98, 0.44); (6.03, 0.44)\n", "Marrone (5.51, 0.45); (5.45, 0.38)\n", "Radovanovic (5.77, 0.51); (5.84, 0.58)\n", "Murillo (5.63, 0.35); (5.52, 0.29)\n", "Venuti (5.81, 0.33); (5.78, 0.30)\n", "Magnani (5.77, 0.46); (5.73, 0.35)\n", "Terzic (5.94, 0.30); (5.91, 0.29)\n", "Gabbia (5.61, 0.47); (5.56, 0.39)\n", "Zortea (5.80, 0.38); (5.82, 0.42)\n", "Dawidowicz (5.75, 0.39); (5.72, 0.32)\n", "Pirola (5.82, 0.32); (5.73, 0.27)\n", "Carboni (5.62, 0.45); (5.57, 0.36)\n", "Lovato (5.82, 0.50); (5.78, 0.38)\n", "Tuia (5.76, 0.45); (5.80, 0.48)\n", "Amione (5.63, 0.35); (5.56, 0.30)\n", "Vasquez (5.89, 0.43); (5.93, 0.40)\n", "Zima (5.87, 0.35); (5.86, 0.31)\n", "Coppola D. (5.99, 0.36); (6.00, 0.34)\n", "Gatti (5.95, 0.45); (5.99, 0.38)\n", "Gila (5.81, 0.49); (5.78, 0.40)\n", "Cabal (5.82, 0.43); (5.83, 0.39)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Sosa (5.64, 0.48); (5.57, 0.42)\n", "Conti (6.10, 0.55); (6.68, 1.13)\n", "Dermaku (5.90, 0.43); (5.93, 0.39)\n", "Tonelli (5.61, 0.47); (5.58, 0.38)\n", "Radu (5.65, 0.49); (5.59, 0.43)\n", "Paletta (5.82, 0.42); (5.83, 0.39)\n", "Fares (5.76, 0.36); (5.71, 0.32)\n", "Marchizza (5.64, 0.38); (5.57, 0.32)\n", "Romagna (5.85, 0.44); (5.87, 0.41)\n", "Ranieri L. (5.71, 0.37); (5.70, 0.38)\n", "Cetin (5.88, 0.52); (5.83, 0.40)\n", "Muldur (5.65, 0.42); (5.60, 0.36)\n", "Adopo (5.82, 0.44); (5.81, 0.38)\n", "Ferrer (5.86, 0.44); (5.86, 0.36)\n", "Ruggeri (5.85, 0.34); (5.84, 0.31)\n", "Antov (5.61, 0.51); (5.54, 0.43)\n", "Amey (5.95, 0.42); (6.01, 0.41)\n", "Ferrarini (5.82, 0.42); (5.83, 0.39)\n", "Kamenovic (6.19, 0.44); (6.40, 0.54)\n", "Vina (5.73, 0.48); (5.68, 0.39)\n", "Zanoli (5.93, 0.32); (5.91, 0.29)\n", "Zanotti (5.89, 0.39); (5.93, 0.41)\n", "Ruan (5.63, 0.56); (5.64, 0.39)\n", "Motoc (5.88, 0.41); (5.91, 0.38)\n", "Cacace (5.84, 0.35); (5.79, 0.29)\n", "Bayeye (5.92, 0.41); (5.97, 0.42)\n", "Ebosele (5.96, 0.44); (6.03, 0.42)\n", "Buta (5.92, 0.40); (5.97, 0.39)\n", "Ndiaye (5.93, 0.43); (5.98, 0.44)\n", "Abankwah (5.92, 0.40); (5.97, 0.39)\n", "Guessand A. (5.92, 0.40); (5.97, 0.39)\n", "Guarino (5.90, 0.43); (5.93, 0.40)\n", "Milinkovic-Savic (6.44, 0.62); (7.60, 1.86)\n", "Barella (6.33, 0.53); (6.93, 1.12)\n", "Kvaratskhelia (6.59, 0.70); (8.44, 2.82)\n", "Zaccagni (6.31, 0.59); (7.24, 1.55)\n", "Zielinski (6.23, 0.54); (6.91, 1.21)\n", "Luis Alberto (6.25, 0.62); (7.24, 1.62)\n", "Frattesi (6.03, 0.52); (6.46, 0.97)\n", "Politano (6.13, 0.41); (6.47, 0.72)\n", "Koopmeiners (6.24, 0.54); (6.86, 1.15)\n", "Vlasic (6.28, 0.56); (7.41, 1.76)\n", "Pereyra (6.12, 0.56); (6.67, 1.09)\n", "Felipe Anderson (6.23, 0.62); (7.34, 1.76)\n", "Calhanoglu (6.30, 0.64); (7.42, 1.80)\n", "Strefezza (6.34, 0.51); (7.12, 1.38)\n", "Diaz B. (6.12, 0.55); (6.74, 1.15)\n", "Pellegrini Lo. (6.25, 0.66); (7.62, 2.06)\n", "Zambo Anguissa (6.10, 0.37); (6.15, 0.36)\n", "Lobotka (6.23, 0.43); (6.55, 0.68)\n", "Malinovskyi (6.27, 0.59); (7.30, 1.67)\n", "Candreva (6.16, 0.67); (7.20, 1.71)\n", "Pasalic (6.24, 0.68); (7.77, 2.24)\n", "Bennacer (6.21, 0.44); (6.50, 0.69)\n", "Kostic (6.20, 0.49); (6.79, 1.07)\n", "Radonjic (6.27, 0.48); (7.03, 1.30)\n", "Samardzic (6.15, 0.47); (6.63, 0.95)\n", "Chiesa (6.25, 0.52); (7.04, 1.35)\n", "Lovric (6.19, 0.38); (6.53, 0.70)\n", "De Ketelaere (5.90, 0.34); (5.91, 0.36)\n", "Brozovic (6.17, 0.38); (6.38, 0.51)\n", "Pogba (5.93, 0.41); (5.99, 0.39)\n", "Bonaventura (6.10, 0.61); (6.68, 1.20)\n", "Sensi (5.84, 0.36); (5.93, 0.50)\n", "Bandinelli (5.84, 0.43); (5.94, 0.57)\n", "Ikone' (5.88, 0.40); (6.08, 0.65)\n", "Barak (6.20, 0.69); (7.64, 2.13)\n", "Mkhitaryan (6.21, 0.58); (6.99, 1.34)\n", "Pessina (5.85, 0.36); (5.86, 0.39)\n", "Tonali (6.28, 0.54); (6.88, 1.12)\n", "Arslan (5.93, 0.40); (5.99, 0.46)\n", "Lazovic (6.13, 0.39); (6.47, 0.73)\n", "Cristante (5.95, 0.48); (6.05, 0.53)\n", "Elmas (6.11, 0.39); (6.37, 0.63)\n", "Bajrami (6.24, 0.55); (7.04, 1.40)\n", "Vecino (6.06, 0.40); (6.33, 0.67)\n", "Paredes (5.72, 0.35); (5.66, 0.30)\n", "Mandragora (5.97, 0.41); (6.04, 0.47)\n", "Djuricic (5.78, 0.48); (6.05, 0.79)\n", "Lukic (6.07, 0.51); (6.47, 0.90)\n", "Soriano (5.86, 0.41); (5.85, 0.37)\n", "Zaniolo (5.91, 0.53); (6.20, 0.83)\n", "Sottil (6.01, 0.53); (6.53, 1.03)\n", "Traore' Hj. (6.18, 0.57); (7.13, 1.57)\n", "Messias (6.13, 0.60); (7.05, 1.52)\n", "Thorstvedt (5.95, 0.45); (6.28, 0.84)\n", "Cuadrado (6.25, 0.48); (6.63, 0.81)\n", "Locatelli (6.20, 0.48); (6.57, 0.81)\n", "Rabiot (5.77, 0.36); (5.74, 0.32)\n", "Dominguez (5.96, 0.41); (6.00, 0.39)\n", "Tameze (6.16, 0.44); (6.59, 0.87)\n", "Miranchuk (6.06, 0.56); (6.79, 1.28)\n", "Vilhena (5.73, 0.36); (5.76, 0.43)\n", "De Roon (6.00, 0.46); (6.24, 0.70)\n", "Verdi (6.25, 0.62); (7.47, 1.88)\n", "Walace (5.86, 0.41); (5.87, 0.36)\n", "Wijnaldum (5.89, 0.41); (5.91, 0.39)\n", "Mckennie (6.18, 0.51); (6.77, 1.08)\n", "Makengo (5.91, 0.48); (5.97, 0.49)\n", "Ricci S. (5.88, 0.39); (5.92, 0.36)\n", "Coulibaly L. (5.84, 0.45); (6.09, 0.75)\n", "Sabiri (6.04, 0.61); (6.92, 1.49)\n", "Miretti (6.06, 0.42); (6.14, 0.38)\n", "Colpani (6.10, 0.40); (6.54, 0.90)\n", "Haas (5.86, 0.37); (5.88, 0.36)\n", "Orsolini (6.14, 0.57); (7.08, 1.50)\n", "Matic (5.99, 0.32); (5.99, 0.32)\n", "Ascacibar (6.00, 0.37); (6.04, 0.38)\n", "Ederson D.s. (6.15, 0.54); (6.78, 1.19)\n", "Ciurria (5.89, 0.41); (6.01, 0.56)\n", "Gonzalez J. (6.05, 0.47); (6.48, 0.90)\n", "El Shaarawy (6.02, 0.46); (6.38, 0.84)\n", "Meite' (5.87, 0.36); (5.88, 0.34)\n", "Bourabia (6.17, 0.52); (6.95, 1.34)\n", "Ndombele' (5.92, 0.32); (5.91, 0.30)\n", "Henderson L. (5.96, 0.43); (6.18, 0.69)\n", "Maggiore (5.98, 0.45); (6.16, 0.63)\n", "Ilic (5.99, 0.41); (6.13, 0.52)\n", "Kovalenko (5.92, 0.44); (6.19, 0.72)\n", "Zalewski (5.83, 0.34); (5.80, 0.31)\n", "Pickel (5.88, 0.35); (5.97, 0.51)\n", "Ferguson (6.07, 0.51); (6.59, 1.02)\n", "Camara Ma. (6.10, 0.30); (6.18, 0.34)\n", "Saponara (6.21, 0.48); (6.77, 1.05)\n", "Rincon (5.77, 0.34); (5.76, 0.31)\n", "Cataldi (6.09, 0.44); (6.23, 0.51)\n", "Zurkowski (6.11, 0.52); (6.70, 1.11)\n", "Rovella (5.96, 0.38); (6.03, 0.46)\n", "Agudelo (5.93, 0.50); (6.31, 0.90)\n", "Amrabat (6.00, 0.38); (6.17, 0.56)\n", "Lopez M. (6.03, 0.46); (6.21, 0.60)\n", "Gyasi (5.88, 0.56); (6.36, 1.05)\n", "Pobega (6.15, 0.45); (6.50, 0.79)\n", "Harroui (5.84, 0.32); (5.82, 0.29)\n", "Ceide (5.96, 0.35); (5.97, 0.38)\n", "Baldanzi (6.25, 0.47); (7.03, 1.36)\n", "Blin (6.00, 0.30); (5.98, 0.30)\n", "Hjulmand (5.93, 0.53); (5.88, 0.42)\n", "D'alessandro (5.98, 0.30); (5.99, 0.36)\n", "Grassi (5.89, 0.44); (5.86, 0.34)\n", "Krunic (6.00, 0.32); (6.02, 0.35)\n", "Linetty (5.77, 0.32); (5.75, 0.30)\n", "Miguel Veloso (5.93, 0.48); (6.00, 0.51)\n", "Ekdal (5.74, 0.48); (5.73, 0.47)\n", "Schouten (6.01, 0.48); (6.24, 0.70)\n", "Villar (5.78, 0.32); (5.72, 0.28)\n", "Saelemaekers (6.00, 0.40); (6.15, 0.54)\n", "Vranckx (5.95, 0.39); (6.01, 0.39)\n", "Basic (5.83, 0.35); (5.84, 0.36)\n", "Aebischer (5.85, 0.30); (5.84, 0.29)\n", "Marcos Antonio (5.82, 0.32); (5.77, 0.28)\n", "Ranocchia F. (5.96, 0.41); (6.20, 0.68)\n", "Bistrovic (5.84, 0.31); (5.85, 0.32)\n", "Verre (5.67, 0.37); (5.62, 0.32)\n", "Gagliardini (6.10, 0.39); (6.38, 0.71)\n", "Barberis (5.72, 0.38); (5.71, 0.33)\n", "Leris (5.69, 0.35); (5.70, 0.41)\n", "Vieira (5.70, 0.34); (5.69, 0.34)\n", "Winks (5.85, 0.41); (5.90, 0.43)\n", "Castrovilli (5.97, 0.42); (6.14, 0.61)\n", "Maldini (6.11, 0.40); (6.71, 1.15)\n", "Marin (5.87, 0.51); (5.89, 0.48)\n", "Maleh (5.97, 0.37); (6.19, 0.65)\n", "Matheus Henrique (5.88, 0.39); (5.90, 0.34)\n", "Asllani (6.00, 0.39); (6.11, 0.49)\n", "Moro N. (5.84, 0.34); (5.83, 0.31)\n", "Oudin (6.01, 0.35); (6.09, 0.41)\n", "Duncan (5.92, 0.43); (6.10, 0.62)\n", "Molina S. (5.78, 0.38); (5.79, 0.37)\n", "Kastanos (5.83, 0.45); (5.83, 0.40)\n", "Valoti (5.78, 0.33); (5.72, 0.28)\n", "Gaetano (6.03, 0.36); (6.09, 0.39)\n", "Escalante (5.77, 0.42); (5.73, 0.35)\n", "Bohinen (5.82, 0.38); (5.84, 0.38)\n", "Terracciano F. (6.01, 0.30); (6.02, 0.34)\n", "Milanese (5.88, 0.44); (5.93, 0.44)\n", "Castagnetti (5.97, 0.33); (5.99, 0.34)\n", "Listkowski (5.93, 0.32); (5.91, 0.30)\n", "Adli (5.73, 0.33); (5.73, 0.32)\n", "Hrustic (5.66, 0.42); (5.61, 0.36)\n", "D'andrea (5.95, 0.34); (6.00, 0.43)\n", "Benassi (5.77, 0.32); (5.77, 0.33)\n", "Baez (5.92, 0.46); (5.97, 0.44)\n", "Vignato (5.87, 0.33); (5.87, 0.32)\n", "Obiang (5.86, 0.39); (5.84, 0.32)\n", "Askildsen (5.84, 0.33); (5.78, 0.29)\n", "Hongla (5.78, 0.37); (5.83, 0.45)\n", "Yepes (6.04, 0.33); (6.10, 0.35)\n", "Helgason (5.82, 0.33); (5.80, 0.29)\n", "Bondo (5.91, 0.42); (5.94, 0.37)\n", "Ellertsson (5.88, 0.38); (5.90, 0.34)\n", "Capezzi (5.93, 0.33); (5.92, 0.30)\n", "Jajalo (5.87, 0.33); (5.85, 0.30)\n", "Machin (5.84, 0.41); (5.86, 0.39)\n", "Bakayoko (5.80, 0.37); (5.74, 0.32)\n", "Scozzarella (5.84, 0.41); (5.86, 0.39)\n", "Fagioli (6.12, 0.46); (6.60, 0.94)\n", "Demme (6.00, 0.37); (6.19, 0.57)\n", "Akpa Akpro (5.90, 0.44); (5.95, 0.42)\n", "Darboe (5.90, 0.43); (6.01, 0.43)\n", "Bove (6.20, 0.36); (6.67, 0.90)\n", "Urbanski (5.92, 0.41); (5.96, 0.41)\n", "Bertini (5.94, 0.41); (5.99, 0.39)\n", "Cortinovis (5.85, 0.39); (5.89, 0.42)\n", "Romero L. (5.81, 0.31); (5.80, 0.31)\n", "Bianco (5.92, 0.40); (5.98, 0.46)\n", "Sher (5.96, 0.31); (5.94, 0.29)\n", "Nguiamba (6.04, 0.37); (6.08, 0.34)\n", "Volpato (6.23, 0.40); (7.16, 1.52)\n", "Praszelik (6.00, 0.30); (5.98, 0.30)\n", "Trimboli (5.85, 0.41); (5.90, 0.43)\n", "Pafundi (5.93, 0.40); (5.98, 0.40)\n", "Bjorkengren (5.94, 0.42); (6.00, 0.43)\n", "Vignato S. (5.88, 0.43); (5.91, 0.41)\n", "Samek (5.94, 0.42); (6.00, 0.43)\n", "Zerbin (5.95, 0.35); (5.99, 0.38)\n", "Ilkhan (5.75, 0.35); (5.71, 0.30)\n", "Degli Innocenti (5.94, 0.46); (5.99, 0.44)\n", "Fazzini (5.63, 0.48); (5.58, 0.38)\n", "Acella (5.95, 0.43); (6.03, 0.48)\n", "Tripi (5.92, 0.41); (5.95, 0.40)\n", "Garbett (5.92, 0.41); (5.97, 0.43)\n", "Iling-Junior (5.99, 0.50); (6.03, 0.45)\n", "Immobile (6.49, 0.72); (8.44, 2.88)\n", "Vlahovic (6.35, 0.70); (8.01, 2.47)\n", "Rafael Leao (6.46, 0.68); (8.11, 2.48)\n", "Martinez L. (6.32, 0.73); (8.24, 2.70)\n", "Dybala (6.33, 0.61); (7.56, 1.93)\n", "Arnautovic (6.23, 0.67); (7.74, 2.21)\n", "Beto (6.20, 0.69); (7.68, 2.18)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Giroud (6.25, 0.68); (7.80, 2.27)\n", "Osimhen (6.39, 0.71); (8.15, 2.58)\n", "Deulofeu (6.42, 0.64); (7.86, 2.22)\n", "Lukaku (6.47, 0.71); (8.41, 2.84)\n", "Milik (6.18, 0.56); (7.02, 1.39)\n", "Pedro (6.26, 0.61); (7.42, 1.81)\n", "Abraham (6.23, 0.71); (7.87, 2.37)\n", "Berardi (6.46, 0.68); (8.20, 2.60)\n", "Dia (6.25, 0.69); (7.86, 2.33)\n", "Lookman (6.44, 0.65); (8.01, 2.39)\n", "Simeone (6.18, 0.73); (7.79, 2.32)\n", "Correa (6.13, 0.59); (7.15, 1.63)\n", "Zapata D. (6.39, 0.69); (8.22, 2.64)\n", "Dzeko (6.30, 0.68); (7.94, 2.38)\n", "Nzola (5.88, 0.43); (6.24, 0.84)\n", "Sanabria (6.12, 0.58); (7.16, 1.62)\n", "Muriel (6.36, 0.68); (7.99, 2.41)\n", "Rebic (6.06, 0.49); (6.59, 1.03)\n", "Bonazzoli (6.16, 0.60); (7.25, 1.71)\n", "Caprari (6.36, 0.64); (7.86, 2.24)\n", "Di Maria (6.08, 0.65); (6.81, 1.40)\n", "Lozano (6.19, 0.58); (7.16, 1.57)\n", "Ceesay (6.07, 0.55); (6.97, 1.44)\n", "Pinamonti (6.11, 0.65); (7.38, 1.91)\n", "Kouame' (6.19, 0.61); (7.36, 1.79)\n", "Lauriente' (6.28, 0.69); (7.47, 1.95)\n", "Jovic (6.02, 0.61); (6.88, 1.46)\n", "Barrow (6.11, 0.61); (7.09, 1.58)\n", "Henry (6.07, 0.63); (7.08, 1.64)\n", "Piatek (6.03, 0.52); (6.87, 1.36)\n", "Gonzalez N. (6.24, 0.64); (7.47, 1.89)\n", "Dessers (6.09, 0.49); (6.91, 1.34)\n", "Caputo (6.02, 0.64); (6.99, 1.58)\n", "Raspadori (6.11, 0.67); (7.15, 1.70)\n", "Lammers (5.92, 0.39); (6.09, 0.62)\n", "Okereke (6.00, 0.55); (6.62, 1.19)\n", "Cabral (6.08, 0.48); (6.86, 1.29)\n", "Gabbiadini (6.10, 0.65); (7.24, 1.78)\n", "Belotti (6.21, 0.66); (7.62, 2.11)\n", "Origi (6.03, 0.56); (6.70, 1.22)\n", "Botheim (5.97, 0.42); (6.39, 0.88)\n", "Alvarez A. (6.13, 0.60); (7.13, 1.62)\n", "Verde (6.25, 0.52); (7.14, 1.47)\n", "Destro (6.06, 0.65); (7.23, 1.80)\n", "Kean (6.02, 0.56); (6.70, 1.26)\n", "Pellegri (5.84, 0.33); (5.91, 0.54)\n", "Satriano (5.89, 0.45); (6.28, 0.89)\n", "Success (6.24, 0.59); (7.14, 1.49)\n", "Mota (5.84, 0.41); (6.25, 0.86)\n", "Banda (5.98, 0.36); (6.06, 0.45)\n", "Hojlund (6.01, 0.43); (6.54, 1.01)\n", "Lasagna (5.89, 0.40); (6.19, 0.78)\n", "Pjaca (5.99, 0.47); (6.45, 0.97)\n", "Gytkjaer (5.85, 0.37); (6.14, 0.74)\n", "Petagna (5.99, 0.54); (6.66, 1.23)\n", "Nestorovski (6.07, 0.46); (6.53, 0.95)\n", "Zanimacchia (5.97, 0.34); (6.06, 0.45)\n", "Piccoli (5.70, 0.39); (5.67, 0.34)\n", "Kallon (5.80, 0.36); (5.82, 0.40)\n", "Ciofani D. (6.13, 0.41); (6.85, 1.25)\n", "Di Francesco F. (6.13, 0.47); (6.73, 1.09)\n", "Boga (5.98, 0.38); (6.02, 0.39)\n", "Zirkzee (6.04, 0.53); (6.82, 1.31)\n", "Quagliarella (5.88, 0.47); (6.24, 0.85)\n", "Ibrahimovic (6.36, 0.65); (7.89, 2.28)\n", "Shomurodov (6.04, 0.51); (6.80, 1.30)\n", "Djuric (5.89, 0.30); (5.86, 0.30)\n", "Strelec (5.77, 0.38); (5.95, 0.66)\n", "Antiste (5.75, 0.37); (5.80, 0.49)\n", "Seck (5.94, 0.33); (6.04, 0.51)\n", "Buonaiuto (6.05, 0.36); (6.19, 0.46)\n", "Sansone (6.00, 0.46); (6.40, 0.86)\n", "Pussetto (5.99, 0.55); (6.67, 1.24)\n", "Cambiaghi (5.91, 0.30); (5.89, 0.31)\n", "Colombo (6.01, 0.49); (6.74, 1.24)\n", "Afena-Gyan (5.87, 0.54); (6.22, 0.91)\n", "Defrel (5.84, 0.42); (6.00, 0.63)\n", "Karamoh (6.03, 0.33); (6.11, 0.39)\n", "Cancellieri (6.19, 0.49); (6.76, 1.09)\n", "Tsadjout (6.03, 0.42); (6.20, 0.57)\n", "Rodriguez P. (5.92, 0.34); (5.94, 0.34)\n", "Valencia D. (5.68, 0.32); (5.70, 0.29)\n", "Edera (5.92, 0.43); (5.98, 0.47)\n", "Oddei (6.12, 0.31); (6.11, 0.31)\n", "Raimondo (5.95, 0.43); (6.02, 0.45)\n", "Kristoffersen (5.89, 0.43); (5.94, 0.41)\n", "Kaio Jorge (5.98, 0.36); (6.03, 0.39)\n", "De Luca (5.86, 0.44); (5.92, 0.46)\n", "Soule' (6.01, 0.45); (6.08, 0.39)\n", "Lazetic (5.97, 0.41); (6.05, 0.46)\n", "Voelkerling Persson (5.94, 0.44); (6.01, 0.45)\n", "Sanca (5.91, 0.37); (5.94, 0.36)\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_old['games'])\n", "\n", "for i in range(players.shape[0]):\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", " oldseason_ok = True\n", " \n", " try:\n", " [mean, std, dist] = vote_predict_NNb(player, team, oppteam, home = home, oldseason = True)\n", " games = max( players_old['games'][i], players_old['gk_games'][i] )\n", " mins = max( players_old['minutes'][i], players_old['gk_minutes'][i] )\n", " except:\n", " [mean, std, dist] = vote_predict_NNb(player, team, oppteam, home = home)\n", " oldseason_ok = False\n", " games = 0\n", " mins = 0\n", " \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", " 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 (not oldseason_ok):\n", " starter = -1\n", " voteperc = -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", " \n", " \n", "\n", "output = output.set_index('player')\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_season2122.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": 28, "id": "7300f3c2", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Terracciano: MV 6.30 ± 0.71; FV 4.72 + 1.43 (5.7% cs)\n", "Maignan: MV 6.27 ± 0.84; FV 5.66 + 1.16 (56.8% cs)\n", "Tatarusanu: MV 6.22 ± 0.78; FV 5.53 + 1.19 (45.2% cs)\n", "Handanovic: MV 5.89 ± 0.66; FV 3.40 + 1.88 (1.4% cs)\n", "Onana: MV 6.32 ± 0.73; FV 5.05 + 1.33 (11.7% cs)\n", "Sepe: MV 6.39 ± 0.74; FV 4.76 + 1.42 (6.4% cs)\n", "Di Gregorio: MV 5.83 ± 0.80; FV 3.91 + 1.59 (4.5% cs)\n", "Szczesny: MV 6.15 ± 0.77; FV 5.54 + 1.19 (47.8% cs)\n", "Audero: MV 6.34 ± 0.77; FV 5.27 + 1.28 (17.9% cs)\n", "Silvestri: MV 6.34 ± 0.71; FV 4.18 + 1.60 (2.7% cs)\n", "Carnesecchi: MV 6.17 ± 0.82; FV 5.58 + 1.17 (56.1% cs)\n", "Dragowski: MV 6.52 ± 0.82; FV 5.18 + 1.30 (13.1% cs)\n", "Milinkovic-Savic V.: MV 6.27 ± 0.77; FV 4.90 + 1.38 (12.4% cs)\n", "Sportiello: MV 6.32 ± 0.86; FV 5.06 + 1.31 (18.5% cs)\n", "Falcone: MV 6.34 ± 0.79; FV 5.47 + 1.21 (34.2% cs)\n", "Consigli: MV 6.12 ± 0.70; FV 4.86 + 1.35 (12.9% cs)\n", "Vicario: MV 6.32 ± 0.85; FV 5.64 + 1.17 (51.2% cs)\n" ] }, { "data": { "text/plain": [ "[array([6.31691631, 5.6403682 ]),\n", " array([0.42497158, 0.58689165], dtype=float32),\n", " [,\n", " ,\n", " ]]" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "predict_player('Terracciano', log = 1, plot = 0)\n", "predict_player('Maignan', log = 1, plot = 0)\n", "predict_player('Tatarusanu', log = 1, plot = 0)\n", "predict_player('Handanovic', log = 1, plot = 0)\n", "predict_player('Onana', log = 1, plot = 0)\n", "predict_player('Sepe', log = 1, plot = 0)\n", "predict_player('Di Gregorio', log = 1, plot = 0)\n", "predict_player('Szczesny', log = 1, plot = 0)\n", "predict_player('Audero', log = 1, plot = 0)\n", "predict_player('Silvestri', log = 1, plot = 0)\n", "predict_player('Carnesecchi', log = 1, plot = 0)\n", "predict_player('Dragowski', log = 1, plot = 0)\n", "predict_player('Milinkovic-Savic V.', log = 1, plot = 0)\n", "predict_player('Sportiello', log = 1, plot = 0)\n", "predict_player('Falcone', log = 1, plot = 0)\n", "predict_player('Consigli', log = 1, plot = 0)\n", "predict_player('Vicario', log = 1, plot = 0)" ] }, { "cell_type": "code", "execution_count": 36, "id": "bd126870", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Muriel: MV 6.20 ± 1.32; FV 7.29 + 3.53\n", "Tonali: MV 6.23 ± 0.95; FV 6.69 + 1.86\n", "Lobotka: MV 6.17 ± 0.72; FV 6.42 + 1.16\n", "Politano: MV 6.19 ± 0.77; FV 6.62 + 1.48\n", "Zapata D.: MV 6.09 ± 1.19; FV 7.18 + 3.36\n", "Frattesi: MV 6.23 ± 1.19; FV 7.37 + 3.58\n", "Gonzalez N.: MV 6.05 ± 1.07; FV 6.65 + 2.25\n", "Abraham: MV 6.20 ± 1.30; FV 7.66 + 4.26\n", "Pobega: MV 6.02 ± 0.68; FV 6.13 + 0.92\n", "Mario Rui: MV 6.10 ± 0.77; FV 6.25 + 0.98\n", "Cuadrado: MV 5.82 ± 0.95; FV 5.80 + 0.92\n", "Skriniar: MV 5.75 ± 0.68; FV 5.70 + 0.58\n", "Lukaku: MV 6.41 ± 1.42; FV 8.29 + 5.46\n" ] }, { "data": { "text/plain": [ "[array([6.41176047, 8.29456946]),\n", " array([0.70926785, 2.7289915 ], dtype=float32),\n", " [,\n", " ]]" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "predict_player('Muriel', plot = 0, log = 1)\n", "predict_player('Tonali', plot = 0, log = 1)\n", "predict_player('Lobotka', plot = 0, log = 1)\n", "predict_player('Politano', plot = 0, log = 1)\n", "predict_player('Zapata D.', plot = 0, log = 1)\n", "predict_player('Frattesi', plot = 0, log = 1)\n", "predict_player('Gonzalez N.', plot = 0, log = 1)\n", "predict_player('Abraham', plot = 0, log = 1)\n", "predict_player('Pobega', plot = 0, log = 1)\n", "predict_player('Mario Rui', plot = 0, log = 1)\n", "predict_player('Cuadrado', plot = 0, log = 1)\n", "predict_player('Skriniar', plot = 0, log = 1)\n", "predict_player('Lukaku', plot = 0, log = 1)" ] }, { "cell_type": "code", "execution_count": 35, "id": "4b9f5a7d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Skriniar: MV 6.06 ± 0.88; FV 6.21 + 1.04\n", "Cuadrado: MV 6.11 ± 0.82; FV 6.33 + 1.20\n", "Bastoni: MV 6.10 ± 0.80; FV 6.23 + 0.95\n", "Barak: MV 6.08 ± 1.33; FV 7.10 + 3.33\n", "Politano: MV 6.08 ± 0.74; FV 6.35 + 1.22\n", "Smalling: MV 6.18 ± 0.92; FV 6.51 + 1.54\n", "Gosens: MV 6.02 ± 0.66; FV 6.08 + 0.75\n", "Skriniar: MV 5.75 ± 0.68; FV 5.70 + 0.58\n", "Cuadrado: MV 5.82 ± 0.95; FV 5.80 + 0.92\n", "Bastoni: MV 5.84 ± 0.91; FV 5.86 + 0.82\n", "Barak: MV 5.76 ± 0.70; FV 5.75 + 0.72\n", "Politano: MV 6.19 ± 0.77; FV 6.62 + 1.48\n", "Smalling: MV 6.17 ± 1.06; FV 6.60 + 1.91\n", "Gosens: MV 5.75 ± 0.65; FV 5.80 + 0.85\n" ] }, { "data": { "text/plain": [ "[array([5.75403311, 5.80380687]),\n", " array([0.3249786 , 0.42722106], dtype=float32),\n", " [,\n", " ]]" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "predict_player('Skriniar', log = 1, oldseason= True)\n", "predict_player('Cuadrado', log = 1, oldseason= True)\n", "predict_player('Bastoni', log = 1, oldseason= True)\n", "predict_player('Barak', log = 1, oldseason= True)\n", "predict_player('Politano', log = 1, oldseason= True)\n", "predict_player('Smalling', log = 1, oldseason= True)\n", "predict_player('Gosens', log = 1, oldseason= True)\n", "\n", "predict_player('Skriniar', log = 1, oldseason= False)\n", "predict_player('Cuadrado', log = 1, oldseason= False)\n", "predict_player('Bastoni', log = 1, oldseason= False)\n", "predict_player('Barak', log = 1, oldseason= False)\n", "predict_player('Politano', log = 1, oldseason= False)\n", "predict_player('Smalling', log = 1, oldseason= False)\n", "predict_player('Gosens', log = 1, oldseason= False)" ] }, { "cell_type": "code", "execution_count": 34, "id": "10c7ad3e", "metadata": {}, "outputs": [ { "data": { "image/png": "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CAsLw549e3Dy5El88MEHZY4A8fDwwPTp03H48GGcOnUK48ePx/jx47F9+/ZiZY8ePYrFixejRYsWFbl1AMDMmTPNCVd5GAwG2Nvb47XXXis1OSvL22+/Df+iR3nfRSaT4amnnsIvv/yCs2fPYsWKFfjjjz9KTBStiUN7iWoBtRpYv17qKKxLrVBj/dM2dlNWdvdkd9WtopPrtWnTBhcvXsTGjRsxevRoAKZaicDAQNStW9dcbsCAAfD29saKFSswY8YM8/b8/HysXbsWs2fPLvUa06dPR79+/TBnzhzztrvPXZKIiAiL16+//jpWrlyJAwcOoHfv3ubtubm5GD16NJYsWYKPP/64XPf8IBwdHbFw4UIAwMGDB3Hr1q1yH/v7779jx44d+Omnn/D7779b7HN3d8dLL71kfh0cHIzJkydj7ty5Vom7NKwZISKyUUWT3UmxVCYJGj9+PJYvX25+HR0djQkTJliUUSgUGDNmDFasWGExy+z69euh1WrNicy9jEYjtmzZgoYNG6J3797w9vZG+/btsWnTpnLHJ4oidu7ciTNnzqBLly4W+15++WX079+/UrUU1enGjRt44YUX8P3338PBweG+5a9fv46NGzeia9euVRoXkxEiInooPPfcczhw4AAuXbqEy5cv4+DBg3j22WeLlZswYQIuXbqEPXv2mLdFR0djyJAhcHd3L/HcqampyM3NxSeffII+ffpgx44dGDx4MIYMGYK9e/eWGVdWVhacnJygVCrRv39/fP311+jZs6d5/48//ojY2FhERUWV+173798PJycn8zJ79mz88MMPxbZZkyiKGDduHCZNmoTw8PAyy44cORIODg4ICAiAi4sLli5datVY7sVmGqJaIC/P9qaDz9PmcTr4+3BwMP17S3XtivLy8kL//v2xcuVKiKKI/v37w8vLq1i5sLAwdOzYEdHR0ejWrRsuXLiA/fv3Y8eOHaWe22g0AgCeeuopTJ06FQDQqlUrHDp0CIsWLSrzL39nZ2fExcUhNzcXO3fuRGRkJOrWrYuIiAhcuXIFr7/+Onbs2FGh2UfDw8MtOo5+9dVXuHbtGj799FPzNg8Pj3Kfrzy+/vprZGdnY9q0afct+7///Q8zZszAmTNn8N577yEyMhILFiywajx3q3Aysm/fPsydOxexsbFITk7Gzz//XO5evAcPHkTXrl3RrFkz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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Rafael Leao: MV 6.34 ± 1.43; FV 7.95 + 4.79\n" ] }, { "data": { "text/plain": [ "[array([6.3442238 , 7.94607029]),\n", " array([0.71331024, 2.395806 ], dtype=float32),\n", " [,\n", " ]]" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "predict_player('Rafael Leao', plot = 1, log = 1)" ] }, { "cell_type": "markdown", "id": "0a5de8a1", "metadata": {}, "source": [ "Code for predicting the probability distribution of total team points" ] }, { "cell_type": "code", "execution_count": 30, "id": "65f9a572", "metadata": {}, "outputs": [], "source": [ "squad = ['Falcone',\n", " 'Valeri',\n", " 'Di Lorenzo',\n", " 'Parisi',\n", " 'Mario Rui',\n", " 'Strefezza',\n", " 'Frattesi',\n", " 'Felipe Anderson',\n", " 'Beto',\n", " 'Abraham',\n", " 'Nzola']\n", "\n", "\n", "dist = [None] * len(squad)\n", "\n", "defenders = list([0]) * len(squad)\n", "\n", "\n", "for i in range(len(squad)):\n", " [X, y, dist[i]] = predict_player(squad[i], plot = 0, log = 0) \n", " \n", " if(players['r'][squad[i]] == 'D'):\n", " defenders[i] = 1" ] }, { "cell_type": "code", "execution_count": 31, "id": "2e78f674", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Avg Total Points = 75.96627577018738\n", "Avg Mod Points = 1.478\n", "Avg Clean Sheets = 0.364\n" ] } ], "source": [ "ITERS = 500\n", "\n", "MOD = True\n", "\n", "total_points = np.zeros(ITERS)\n", "clean_sheets = np.zeros(ITERS)\n", "mod_points = np.zeros(ITERS)\n", "\n", "mv_samples = [None] * len(squad)\n", "fv_samples = [None] * len(squad)\n", "\n", "for i in range(len(squad)):\n", " mv_samples[i] = dist[i][0].sample(ITERS)\n", " fv_samples[i] = dist[i][1].sample(ITERS)\n", " \n", "cs_samples = dist[0][2].sample(ITERS)\n", "\n", "for k in range(ITERS):\n", " d_points = list([0]) * len(squad)\n", " \n", " cleansheet = float(cs_samples[k])\n", " total_points[k] += cleansheet\n", " clean_sheets[k] += cleansheet\n", " \n", " for i in range(len(squad)): \n", " if(defenders[i] == 1):\n", " d_points[i] = float(mv_samples[i][k])\n", "\n", " total_points[k] += float(fv_samples[i][k])\n", " \n", " d_points.sort(reverse = True)\n", "\n", " if(MOD and d_points[3] > 0): # minimum 3 defenders to get MOD\n", " mod_avg = 0\n", " for j in range(3):\n", " mod_avg += round(d_points[j] * 2) / 2\n", " mod_avg /= 3\n", "\n", " if(mod_avg >= 7):\n", " mod_points[k] = 6\n", " elif(mod_avg >= 6.5):\n", " mod_points[k] = 3\n", " elif(mod_avg >= 6):\n", " mod_points[k] = 1\n", "\n", " total_points[k] += mod_points[k]\n", " \n", " \n", "print('Avg Total Points = ' + str(total_points.mean()))\n", "print('Avg Mod Points = ' + str(mod_points.mean()))\n", "print('Avg Clean Sheets = ' + str(clean_sheets.mean()))\n" ] }, { "cell_type": "code", "execution_count": 32, "id": "c5d752d8", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "loc_0 = total_points.mean()\n", "\n", "squad_model = tf.keras.Sequential(\n", " [\n", " tf.keras.layers.Dense(3),\n", " tfp.layers.DistributionLambda(\n", " lambda t: tfp.distributions.SinhArcsinh(loc= loc_0 + t[..., 0], scale = 1e-3 + tf.math.softplus(t[..., 1]), \n", " skewness = t[..., 2], tailweight = 0.8) # fixed tailweight seems ok\n", " )\n", " ]\n", ")\n", "\n", "def negloglik(y, distr):\n", " return -distr.log_prob(y)\n", "\n", "squad_model.compile(optimizer=tf.optimizers.Adam(learning_rate=1), loss=negloglik)\n", "\n", "dummy_input = np.zeros(total_points.shape)[:, np.newaxis]\n", "squad_model.fit(dummy_input, total_points, epochs=100, verbose=False)" ] }, { "cell_type": "code", "execution_count": 33, "id": "9754ec4c", "metadata": {}, "outputs": [ { "data": { "image/png": "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GiE9cuQINm7ciMjISI16vXv31ni+YsUK2Nvb4/z586hfv75UPmbMGPTq1avI/hYuXIjQ0FB8+OGHAIBx48bh77//xsKFC9GmTZsizztz5gzMzc2hVqulKcyjRo2CmZlZaS+ZiKhc4wgrERERVRq2trbo0qULVq9ejfDwcHTp0gW2trYF6l25cgUDBgxAzZo1YWlpiRo1agAAkpOTNer5+voW219CQgJatGihUdaiRQskJCQUe56Hhwfi4+MRGxuLL774Ao0bN8YXX3xRkkskIqpQOMJKRERElcq7776LkSNHAgC+//77Qut069YNLi4uWLZsGZydnaFWq1G/fn3k5uZq1CvJiKdMJtN4LoQoUPYsQ0NDuLu7A8hfgOnSpUv44IMPpPtf9fT0IITQOCcvL++5sRARlTccYSUiIqJKpWPHjsjNzUVubm6h953evXsXCQkJmDZtGtq2bQtPT0+kp6e/UF+enp44fPiwRll0dDQ8PT1L1c706dOxYcMGnDhxAgBgZ2eHlJQUjTrx8fEvFCMRkS7jCCuRjjEwMMAHH3wg/UxERGVLLpdLU3ILW8TI2toaNjY2+Omnn+Dk5ITk5GRMmjTphfqaOHEi+vbtC29vb7Rt2xa//fYbtm7din379pWqnZo1a6JHjx747LPPsHPnTrz11ltYsGAB1qxZAz8/P/z88884e/ZsgdWOiYjKO46wEukYmUwGe3t72NvbP3fKGBERvRhLS0tYWloWekxPTw8bN25EXFwc6tevj7Fjx2LBggUv1E9QUBC+/vprLFiwAPXq1cOPP/6I8PBwje1nSmr8+PH4/fffcfToUXTo0AHTp0/HJ598gqZNm+LBgwcYPHjwC8VIRKTLZOLZGyDKqczMTCgUCmRkZBT5BkRERPQsvn8QERHpLk4JJtIxKpUKUVFRAICAgADuuUdERERElRYTViIdo1KpcOjQIQCAv78/E1YiIiIiqrR4DysRERERERHpJCasREREREREpJOYsBIRERG9Aj/99BNcXFygp6eHxYsXazscIqJyiQkrERERVQqpqal4//33Ub16dRgZGcHR0REdOnRATEwMgPxtxbZv314mfWVmZmLkyJH49NNPcePGDQwfPrxM2iUiqmy46BIRERFVCr1790ZeXh5Wr16NmjVr4vbt29i/fz/u3btX4jby8vJgYGDw3HrJycnIy8tDly5d4OTk9DJhExFVahxhJSIiogrv/v37OHz4MObNm4c2bdrA1dUVb7zxBiZPnowuXbrAzc0NANCzZ0/IZDLpeVhYGBo3boyVK1eiZs2aMDIyghACGRkZGD58OOzt7WFpaYm33noLp06dAgCsWrUKDRo0AADUrFkTMpkMSUlJAIDffvsNPj4+MDY2Rs2aNTFz5kwolUrpPJlMVuARFhYGAIUeexKnSqXC0KFDUaNGDZiYmMDDwwNff/31a/ndEhG9ShxhJdIx+vr6eO+996SfiYjo5Zmbm8Pc3Bzbt29H8+bNYWRkpHE8NjYW9vb2CA8PR8eOHTW2FLt8+TI2bdqELVu2SOVdunRBlSpVsGvXLigUCvz4449o27YtLl68iODgYLi4uCAwMBDHjh2Di4sL7Ozs8Mcff2DgwIH45ptvEBAQgCtXrkhThWfMmIHg4GB07NhR6jcyMhKDBg1CixYtAAApKSnSsezsbHTs2BF+fn4AALVajWrVqmHTpk2wtbVFdHQ0hg8fDicnJ/Tt2/fV/FKJiF4DmRBCaDuIspCZmQmFQoGMjAxYWlpqOxwiIion+P5ReWzZsgXDhg3Do0eP4O3tjVatWqFfv35o2LAhgPwRzG3btiEoKEg6JywsDLNnz8aNGzdgZ2cHADhw4AB69uyJ1NRUjcTX3d0dn3zyCYYPH474+Hg0adIEiYmJ0ihoy5Yt0alTJ0yePFk65+eff8Ynn3yCmzdvasR65coVNGvWDJ9++ikmTpyocUwIgd69eyM5ORlRUVEwMTEp9Ho/+ugj3L59G5s3b37h3xkRkbZx+IaIiIgqhd69e6NLly6IiopCTEwM9uzZg/nz52P58uUIDQ0t8jxXV1cpWQWAuLg4ZGVlwcbGRqPeo0ePcOXKlSLbiYuLQ2xsLL744gupTKVS4fHjx3j48CFMTU0BABkZGejatSs6depUIFkFgClTpiAmJgaxsbEayeoPP/yA5cuX49q1a3j06BFyc3PRuHHj5/1aiIh0GhNWIh2jUqnw999/AwCaN2+uMS2NiIhejrGxMdq1a4d27drhs88+w3vvvYcZM2YUm7CamZlpPFer1XByckJkZGSBulZWVkW2o1arMXPmTPTq1avQuID894Dg4GBYWlpi2bJlBer9/PPP+OqrrxAZGYlq1apJ5Zs2bcLYsWOxaNEi+Pn5wcLCAgsWLMDRo0eLjIeIqDxgwkqkY1QqFfbt2wcAaNq0KRNWIqJXyMvLS9rKxsDAACqV6rnneHt749atW9DX15em+5aEt7c3Lly4AHd39yLrjB07FmfOnEFsbKyUxD4RExOD9957Dz/++COaN2+ucSwqKgr+/v748MMPpbLiRnuJiMoLJqxERERU4d29exdvv/023n33XTRs2BAWFhY4fvw45s+fjx49egAA3NzcsH//frRo0QJGRkawtrYutK3AwED4+fkhKCgI8+bNg4eHB27evIldu3YhKCgIvr6+hZ732WefoWvXrnBxccHbb78NPT09nD59GmfOnMH//d//ITw8HEuWLMG2bdugp6eHW7duAchfMCorKws9e/ZEv3790KFDB+mYXC6HnZ0d3N3dsWbNGvzxxx+oUaMG1q5di9jYWNSoUeMV/DaJiF4fbmtDREREFZ65uTmaNWuGr776Ci1btkT9+vUxffp0DBs2DN999x0AYNGiRdi7dy9cXFzQpEmTItuSyWTYtWsXWrZsiXfffRd16tRBv379kJSUBAcHhyLP69ChA3bu3Im9e/eiadOmaN68Ob788ku4uroCAA4dOgSVSoXu3bvDyclJeixcuBD//PMPbt++jdWrV2sca9q0KQBgxIgR6NWrF4KDg9GsWTPcvXtXY7SViKi84irBRDomNzcXc+bMAQBMnjwZhoaGWo6IqGLj+wcREZHu4ggrERERERER6SQmrERERERERKSTmLASERERERGRTuIqwUQ6Rl9fH++88470MxERERFRZcVPw0Q6Rk9Pr1T7+hERERERVVScEkxERESkw1q3bo0xY8ZoOwwiIq1gwkqkY1QqFY4dO4Zjx45BpVJpOxwiogohNDQUMpmswOPy5csv1N6qVatgZWVVoNzNzQ2LFy9+uWCfsXXrVnz++edl2iYRUXnBKcFEOkalUmH37t0AgMaNG0Mul2s5IiKiiqFjx44IDw/XKLOzs9N4npubq3P7X1epUkXbIRARaQ1HWImIiKhSMDIygqOjo8ajbdu2GDlyJMaNGwdbW1u0a9cOAPDll1+iQYMGMDMzg4uLCz788ENkZWUBACIjIzFkyBBkZGRII7VhYWFo3bo1rl27hrFjx0rlT0RHR6Nly5YwMTGBi4sLRo0ahezsbOn4kiVLULt2bRgbG8PBwQF9+vSRjnFKMBFVZkxYiYiIqFJb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NWV45plnMH/+fEydOhXx8fF49NFHMXfuXNdqBDVliYuLw+7du1FTU4Pi4mIcOHAANpsNMTExqsrRoiM1m0wmNDU1oaKi4pJz1EBNOWw2Gx588EEUFhYiNTXVdXUVUFcOIiKirkxVDeudd96JnJwcZGdnu16JiYl4+OGHkZ2djdjYWJhMJtcur0DzPYm7d+9GUlKSjJVfXmNjI/Ly8hAeHu76QK6GDMOGDcOxY8dajR0/fhzR0dEAoKosAPDee+8hNDQU48ePd42pKUNdXR00mtb/SWu1WtdjbdSUpYW3tzfCw8NRUVGB7du3495771Vljo7UPHjwYOj1+lZzLBYLfv75Z8Xmao9acrQ0q/n5+di5cyeCg4NbHVdLDiIioi5Prt2erpaLdwkWQoilS5cKf39/sWnTJpGTkyOmTZsmwsPDRVVVlXxF/sZf//pXsWvXLlFQUCD27dsnJkyYIHx9fcXJkyeFEOrIIETzrpo6nU4sXrxY5Ofni48++kh4eXmJ9evXu+aoJYvD4RBRUVFi3rx5bY6pJcPjjz8uIiIixFdffSUKCwvFpk2bREhIiHj22Wddc9SSZdu2bWLr1q2ioKBA7NixQyQkJIhbbrlFNDU1CSGUmaO6ulpkZWWJrKwsAUC89tprIisry7XrbEdqTk5OFpGRkWLnzp3i4MGD4g9/+INISEgQdrtdMTnKy8tFVlaW+PrrrwUAsWHDBpGVlSUsFotqcthsNjFx4kQRGRkpsrOzhcVicb0aGxsVlYOIiMjddbmG1el0ioULFwqTySQMBoMYMWKEyMnJka/AdkyZMkWEh4cLvV4vzGazuP/++0Vubq7ruBoytPjyyy9Fv379hMFgEL179xarV69udVwtWbZv3y4AiGPHjrU5ppYMVVVVYvbs2SIqKkp4enqK2NhY8dxzz7X6AK6WLBs3bhSxsbHCw8NDmEwmMWvWLFFZWek6rsQc33//vQDQ5vX44493uOb6+nrx5JNPiqCgIGE0GsWECRNEUVGRonK899577R5fuHChanK0PJKnvdf333+vqBxERETuThJCiOtwIZeIiIiIiIioU1R1DysRERERERG5DzasREREREREpEhsWImIiIiIiEiR2LASERERERGRIrFhJSIiIiIiIkViw0pERERERESKxIaViIiIiIiIFIkNKxERERERESkSG1YiIiIiIiJSJDasREREREREpEhsWImIiIiIiEiR/j8nSGvuU2s8yQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "squad_points_dist = squad_model(np.zeros(1)[:, np.newaxis])\n", "\n", "\n", "x = np.arange(start = 0, stop = 200, step = 0.001)\n", "prb = squad_points_dist.prob(x)\n", "\n", "mn = total_points.mean()\n", "\n", "f, ax = plt.subplots(1, 2)\n", "\n", "ax[0].plot(x, prb)\n", "ax[0].fill_between(x, prb, color = 'lightblue')\n", "ax[0].vlines(x = mn, color = 'grey', ymin = 0, ymax = 3, linestyle = 'dashed', label = 'mean = ' + \"{:.2f}\".format(mn))\n", "\n", "ax[0].set_xlim([40, 120])\n", "ax[0].set_ylim([0, 0.12])\n", "\n", "ax[0].legend()\n", "\n", "#ax[0].hist(total_points, bins = 20, density = True)\n", "\n", "\n", "ax[1].text(0.1, 0.8, \"\\n\".join(squad), fontsize=10, transform=ax[1].transAxes, verticalalignment = 'top')\n", "\n", "text = \"\\n\".join(['Avg Total Points = ' + \"{:.2f}\".format(total_points.mean()), \n", " 'Avg Mod Points = ' + \"{:.2f}\".format(mod_points.mean()), \n", " 'Avg Clean Sheets = ' + \"{:.2f}\".format(clean_sheets.mean())])\n", "\n", "ax[1].text(0.5, 0.8, text, fontsize=10, transform=ax[1].transAxes, verticalalignment = 'top')\n", "\n", "ax[1].axis('off')\n", "\n", "\n", "\n", "plt.subplots_adjust(right=1.5)\n", "\n", "plt.show()" ] }, { "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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\n", "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 }