Files
fantabeto/6_neural_network_training_and_prediction.ipynb
T
Giuseppe Musicco 6d9167596c Update matchday #8
2023-10-05 19:41:20 +02:00

7817 lines
604 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "markdown",
"id": "4a867836",
"metadata": {},
"source": [
"Bayesian Neural Network model traning and prediction data generation."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "210da263",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"\n",
"from sklearn.preprocessing import StandardScaler\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.neural_network import MLPRegressor\n",
"import matplotlib.pyplot as plt\n",
"from sklearn.metrics import r2_score\n",
"\n",
"import pickle"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "edbf3b27",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import tensorflow as tf\n",
"from tensorflow import keras\n",
"from tensorflow.keras import layers\n",
"import tensorflow_probability as tfp\n",
"\n",
"tfk = tf.keras\n",
"tf.keras.backend.set_floatx(\"float32\")\n",
"import tensorflow_probability as tfp\n",
"tfd = tfp.distributions\n",
"from sklearn.preprocessing import StandardScaler\n",
"from sklearn.ensemble import IsolationForest\n",
"\n",
"from scipy.stats import norm"
]
},
{
"cell_type": "markdown",
"id": "9dadf6ec",
"metadata": {},
"source": [
"Load the training databases, generated in player_match_database_creation"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "fa098fa4",
"metadata": {},
"outputs": [],
"source": [
"db1 = pd.read_excel('mid_outputs/database_entries.xlsx', index_col = 0) \n",
"db2 = pd.read_excel('mid_outputs/season2021/database_entries.xlsx', index_col = 0) \n",
"db3 = pd.read_excel('mid_outputs/season2122/database_entries.xlsx', index_col = 0) \n",
"db4 = pd.read_excel('mid_outputs/season2223/database_entries.xlsx', index_col = 0) "
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "f71fa9a4",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>matchday</th>\n",
" <th>player</th>\n",
" <th>team</th>\n",
" <th>oppteam</th>\n",
" <th>home</th>\n",
" <th>vote</th>\n",
" <th>goals</th>\n",
" <th>assists</th>\n",
" <th>cards_malus</th>\n",
" <th>fantavote</th>\n",
" <th>...</th>\n",
" <th>miscontrols</th>\n",
" <th>dispossessed</th>\n",
" <th>fouls</th>\n",
" <th>fouled</th>\n",
" <th>aerials_won</th>\n",
" <th>aerials_lost</th>\n",
" <th>carries</th>\n",
" <th>progressive_carries</th>\n",
" <th>carries_into_final_third</th>\n",
" <th>carries_into_penalty_area</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>Zappacosta</td>\n",
" <td>Atalanta</td>\n",
" <td>Sassuolo</td>\n",
" <td>0</td>\n",
" <td>6.5</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>6.5</td>\n",
" <td>...</td>\n",
" <td>0.017157</td>\n",
" <td>0.009804</td>\n",
" <td>0.007353</td>\n",
" <td>0.012255</td>\n",
" <td>0.007353</td>\n",
" <td>0.012255</td>\n",
" <td>0.384804</td>\n",
" <td>0.031863</td>\n",
" <td>0.012255</td>\n",
" <td>0.012255</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>Djimsiti</td>\n",
" <td>Atalanta</td>\n",
" <td>Sassuolo</td>\n",
" <td>0</td>\n",
" <td>6.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>6.0</td>\n",
" <td>...</td>\n",
" <td>0.003817</td>\n",
" <td>0.000000</td>\n",
" <td>0.011450</td>\n",
" <td>0.001908</td>\n",
" <td>0.032443</td>\n",
" <td>0.020992</td>\n",
" <td>0.351145</td>\n",
" <td>0.000000</td>\n",
" <td>0.001908</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>Kolasinac</td>\n",
" <td>Atalanta</td>\n",
" <td>Sassuolo</td>\n",
" <td>0</td>\n",
" <td>6.5</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>6.5</td>\n",
" <td>...</td>\n",
" <td>0.008850</td>\n",
" <td>0.001770</td>\n",
" <td>0.008850</td>\n",
" <td>0.014159</td>\n",
" <td>0.015929</td>\n",
" <td>0.023009</td>\n",
" <td>0.385841</td>\n",
" <td>0.014159</td>\n",
" <td>0.017699</td>\n",
" <td>0.001770</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>Zortea</td>\n",
" <td>Atalanta</td>\n",
" <td>Sassuolo</td>\n",
" <td>0</td>\n",
" <td>7.0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>10.0</td>\n",
" <td>...</td>\n",
" <td>0.000000</td>\n",
" <td>0.020833</td>\n",
" <td>0.031250</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.010417</td>\n",
" <td>0.447917</td>\n",
" <td>0.062500</td>\n",
" <td>0.041667</td>\n",
" <td>0.010417</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>Ruggeri</td>\n",
" <td>Atalanta</td>\n",
" <td>Sassuolo</td>\n",
" <td>0</td>\n",
" <td>6.5</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>7.5</td>\n",
" <td>...</td>\n",
" <td>0.012174</td>\n",
" <td>0.001739</td>\n",
" <td>0.013913</td>\n",
" <td>0.005217</td>\n",
" <td>0.008696</td>\n",
" <td>0.019130</td>\n",
" <td>0.372174</td>\n",
" <td>0.019130</td>\n",
" <td>0.015652</td>\n",
" <td>0.005217</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30866</th>\n",
" <td>38</td>\n",
" <td>Miguel Veloso</td>\n",
" <td>Verona</td>\n",
" <td>Milan</td>\n",
" <td>0</td>\n",
" <td>5.5</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>5.5</td>\n",
" <td>...</td>\n",
" <td>0.006019</td>\n",
" <td>0.006019</td>\n",
" <td>0.017197</td>\n",
" <td>0.006879</td>\n",
" <td>0.012038</td>\n",
" <td>0.012038</td>\n",
" <td>0.265692</td>\n",
" <td>0.014617</td>\n",
" <td>0.011178</td>\n",
" <td>0.000860</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30867</th>\n",
" <td>38</td>\n",
" <td>Tameze</td>\n",
" <td>Verona</td>\n",
" <td>Milan</td>\n",
" <td>0</td>\n",
" <td>5.5</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>5.5</td>\n",
" <td>...</td>\n",
" <td>0.012867</td>\n",
" <td>0.011217</td>\n",
" <td>0.010558</td>\n",
" <td>0.010228</td>\n",
" <td>0.008908</td>\n",
" <td>0.010228</td>\n",
" <td>0.235236</td>\n",
" <td>0.010558</td>\n",
" <td>0.011217</td>\n",
" <td>0.001320</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30868</th>\n",
" <td>38</td>\n",
" <td>Sulemana I.</td>\n",
" <td>Verona</td>\n",
" <td>Milan</td>\n",
" <td>0</td>\n",
" <td>6.0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.5</td>\n",
" <td>5.5</td>\n",
" <td>...</td>\n",
" <td>0.015361</td>\n",
" <td>0.013825</td>\n",
" <td>0.016897</td>\n",
" <td>0.004608</td>\n",
" <td>0.015361</td>\n",
" <td>0.018433</td>\n",
" <td>0.201229</td>\n",
" <td>0.006144</td>\n",
" <td>0.010753</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30869</th>\n",
" <td>38</td>\n",
" <td>Djuric</td>\n",
" <td>Verona</td>\n",
" <td>Milan</td>\n",
" <td>0</td>\n",
" <td>5.5</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>5.5</td>\n",
" <td>...</td>\n",
" <td>0.019034</td>\n",
" <td>0.010981</td>\n",
" <td>0.017570</td>\n",
" <td>0.021230</td>\n",
" <td>0.144217</td>\n",
" <td>0.041728</td>\n",
" <td>0.191801</td>\n",
" <td>0.001464</td>\n",
" <td>0.003660</td>\n",
" <td>0.002196</td>\n",
" </tr>\n",
" <tr>\n",
" <th>30870</th>\n",
" <td>38</td>\n",
" <td>Ngonge</td>\n",
" <td>Verona</td>\n",
" <td>Milan</td>\n",
" <td>0</td>\n",
" <td>5.5</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>5.5</td>\n",
" <td>...</td>\n",
" <td>0.030872</td>\n",
" <td>0.016107</td>\n",
" <td>0.017450</td>\n",
" <td>0.014765</td>\n",
" <td>0.022819</td>\n",
" <td>0.046980</td>\n",
" <td>0.242953</td>\n",
" <td>0.024161</td>\n",
" <td>0.014765</td>\n",
" <td>0.012081</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>30871 rows × 122 columns</p>\n",
"</div>"
],
"text/plain": [
" matchday player team oppteam home vote goals \\\n",
"0 1 Zappacosta Atalanta Sassuolo 0 6.5 0 \n",
"1 1 Djimsiti Atalanta Sassuolo 0 6.0 0 \n",
"2 1 Kolasinac Atalanta Sassuolo 0 6.5 0 \n",
"3 1 Zortea Atalanta Sassuolo 0 7.0 1 \n",
"4 1 Ruggeri Atalanta Sassuolo 0 6.5 0 \n",
"... ... ... ... ... ... ... ... \n",
"30866 38 Miguel Veloso Verona Milan 0 5.5 0 \n",
"30867 38 Tameze Verona Milan 0 5.5 0 \n",
"30868 38 Sulemana I. Verona Milan 0 6.0 0 \n",
"30869 38 Djuric Verona Milan 0 5.5 0 \n",
"30870 38 Ngonge Verona Milan 0 5.5 0 \n",
"\n",
" assists cards_malus fantavote ... miscontrols dispossessed \\\n",
"0 0 0.0 6.5 ... 0.017157 0.009804 \n",
"1 0 0.0 6.0 ... 0.003817 0.000000 \n",
"2 0 0.0 6.5 ... 0.008850 0.001770 \n",
"3 0 0.0 10.0 ... 0.000000 0.020833 \n",
"4 1 0.0 7.5 ... 0.012174 0.001739 \n",
"... ... ... ... ... ... ... \n",
"30866 0 0.0 5.5 ... 0.006019 0.006019 \n",
"30867 0 0.0 5.5 ... 0.012867 0.011217 \n",
"30868 0 0.5 5.5 ... 0.015361 0.013825 \n",
"30869 0 0.0 5.5 ... 0.019034 0.010981 \n",
"30870 0 0.0 5.5 ... 0.030872 0.016107 \n",
"\n",
" fouls fouled aerials_won aerials_lost carries \\\n",
"0 0.007353 0.012255 0.007353 0.012255 0.384804 \n",
"1 0.011450 0.001908 0.032443 0.020992 0.351145 \n",
"2 0.008850 0.014159 0.015929 0.023009 0.385841 \n",
"3 0.031250 0.000000 0.000000 0.010417 0.447917 \n",
"4 0.013913 0.005217 0.008696 0.019130 0.372174 \n",
"... ... ... ... ... ... \n",
"30866 0.017197 0.006879 0.012038 0.012038 0.265692 \n",
"30867 0.010558 0.010228 0.008908 0.010228 0.235236 \n",
"30868 0.016897 0.004608 0.015361 0.018433 0.201229 \n",
"30869 0.017570 0.021230 0.144217 0.041728 0.191801 \n",
"30870 0.017450 0.014765 0.022819 0.046980 0.242953 \n",
"\n",
" progressive_carries carries_into_final_third \\\n",
"0 0.031863 0.012255 \n",
"1 0.000000 0.001908 \n",
"2 0.014159 0.017699 \n",
"3 0.062500 0.041667 \n",
"4 0.019130 0.015652 \n",
"... ... ... \n",
"30866 0.014617 0.011178 \n",
"30867 0.010558 0.011217 \n",
"30868 0.006144 0.010753 \n",
"30869 0.001464 0.003660 \n",
"30870 0.024161 0.014765 \n",
"\n",
" carries_into_penalty_area \n",
"0 0.012255 \n",
"1 0.000000 \n",
"2 0.001770 \n",
"3 0.010417 \n",
"4 0.005217 \n",
"... ... \n",
"30866 0.000860 \n",
"30867 0.001320 \n",
"30868 0.000000 \n",
"30869 0.002196 \n",
"30870 0.012081 \n",
"\n",
"[30871 rows x 122 columns]"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"db = pd.concat([db1, db2, db3, db4], ignore_index = True) \n",
"\n",
"db"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "1d024554",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>matchday</th>\n",
" <th>player</th>\n",
" <th>team</th>\n",
" <th>oppteam</th>\n",
" <th>home</th>\n",
" <th>vote</th>\n",
" <th>goals</th>\n",
" <th>assists</th>\n",
" <th>cards_malus</th>\n",
" <th>fantavote</th>\n",
" <th>...</th>\n",
" <th>gk_psxg</th>\n",
" <th>gk_psnpxg_per_shot_on_target_against</th>\n",
" <th>gk_psxg_net</th>\n",
" <th>gk_passes_completed_launched</th>\n",
" <th>gk_passes_launched</th>\n",
" <th>gk_passes</th>\n",
" <th>gk_passes_throws</th>\n",
" <th>gk_goal_kicks</th>\n",
" <th>gk_crosses</th>\n",
" <th>gk_crosses_stopped</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>Musso</td>\n",
" <td>Atalanta</td>\n",
" <td>Sassuolo</td>\n",
" <td>0</td>\n",
" <td>6.5</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>6.5</td>\n",
" <td>...</td>\n",
" <td>2.400000</td>\n",
" <td>0.180000</td>\n",
" <td>0.400000</td>\n",
" <td>14.000000</td>\n",
" <td>54.000000</td>\n",
" <td>141.000000</td>\n",
" <td>30.000000</td>\n",
" <td>30.000000</td>\n",
" <td>48.000000</td>\n",
" <td>5.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>Skorupski</td>\n",
" <td>Bologna</td>\n",
" <td>Milan</td>\n",
" <td>1</td>\n",
" <td>6.0</td>\n",
" <td>-2</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>4.900000</td>\n",
" <td>0.230000</td>\n",
" <td>0.900000</td>\n",
" <td>33.000000</td>\n",
" <td>68.000000</td>\n",
" <td>185.000000</td>\n",
" <td>29.000000</td>\n",
" <td>43.000000</td>\n",
" <td>108.000000</td>\n",
" <td>3.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>Radunovic</td>\n",
" <td>Cagliari</td>\n",
" <td>Torino</td>\n",
" <td>0</td>\n",
" <td>6.5</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>6.5</td>\n",
" <td>...</td>\n",
" <td>10.100000</td>\n",
" <td>0.380000</td>\n",
" <td>-0.900000</td>\n",
" <td>41.000000</td>\n",
" <td>91.000000</td>\n",
" <td>156.000000</td>\n",
" <td>31.000000</td>\n",
" <td>66.000000</td>\n",
" <td>98.000000</td>\n",
" <td>6.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>Caprile</td>\n",
" <td>Empoli</td>\n",
" <td>Verona</td>\n",
" <td>1</td>\n",
" <td>5.0</td>\n",
" <td>-1</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>6.866667</td>\n",
" <td>0.216667</td>\n",
" <td>-1.466667</td>\n",
" <td>9.333333</td>\n",
" <td>42.000000</td>\n",
" <td>100.333333</td>\n",
" <td>23.000000</td>\n",
" <td>21.333333</td>\n",
" <td>42.666667</td>\n",
" <td>2.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>Terracciano</td>\n",
" <td>Fiorentina</td>\n",
" <td>Genoa</td>\n",
" <td>0</td>\n",
" <td>6.0</td>\n",
" <td>-1</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>5.0</td>\n",
" <td>...</td>\n",
" <td>4.300000</td>\n",
" <td>0.210000</td>\n",
" <td>0.300000</td>\n",
" <td>32.000000</td>\n",
" <td>66.000000</td>\n",
" <td>210.000000</td>\n",
" <td>20.000000</td>\n",
" <td>26.000000</td>\n",
" <td>56.000000</td>\n",
" <td>3.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2424</th>\n",
" <td>38</td>\n",
" <td>Russo A.</td>\n",
" <td>Sassuolo</td>\n",
" <td>Fiorentina</td>\n",
" <td>1</td>\n",
" <td>5.0</td>\n",
" <td>-3</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>32.550000</td>\n",
" <td>0.325000</td>\n",
" <td>-12.116667</td>\n",
" <td>146.666667</td>\n",
" <td>365.333333</td>\n",
" <td>957.000000</td>\n",
" <td>156.166667</td>\n",
" <td>238.833333</td>\n",
" <td>391.500000</td>\n",
" <td>23.333333</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2425</th>\n",
" <td>38</td>\n",
" <td>Zoet</td>\n",
" <td>Spezia</td>\n",
" <td>Roma</td>\n",
" <td>0</td>\n",
" <td>5.5</td>\n",
" <td>-2</td>\n",
" <td>0</td>\n",
" <td>0.5</td>\n",
" <td>3.0</td>\n",
" <td>...</td>\n",
" <td>10.016667</td>\n",
" <td>0.158333</td>\n",
" <td>-1.816667</td>\n",
" <td>46.000000</td>\n",
" <td>145.333333</td>\n",
" <td>254.166667</td>\n",
" <td>37.333333</td>\n",
" <td>51.833333</td>\n",
" <td>130.333333</td>\n",
" <td>5.500000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2426</th>\n",
" <td>38</td>\n",
" <td>Milinkovic-Savic V.</td>\n",
" <td>Torino</td>\n",
" <td>Inter</td>\n",
" <td>1</td>\n",
" <td>5.0</td>\n",
" <td>-1</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>4.0</td>\n",
" <td>...</td>\n",
" <td>35.800000</td>\n",
" <td>0.230000</td>\n",
" <td>-5.200000</td>\n",
" <td>285.000000</td>\n",
" <td>939.000000</td>\n",
" <td>1506.000000</td>\n",
" <td>185.000000</td>\n",
" <td>286.000000</td>\n",
" <td>469.000000</td>\n",
" <td>36.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2427</th>\n",
" <td>38</td>\n",
" <td>Silvestri</td>\n",
" <td>Udinese</td>\n",
" <td>Juventus</td>\n",
" <td>1</td>\n",
" <td>6.5</td>\n",
" <td>-1</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>5.5</td>\n",
" <td>...</td>\n",
" <td>48.700000</td>\n",
" <td>0.310000</td>\n",
" <td>2.700000</td>\n",
" <td>144.000000</td>\n",
" <td>380.000000</td>\n",
" <td>872.000000</td>\n",
" <td>142.000000</td>\n",
" <td>302.000000</td>\n",
" <td>547.000000</td>\n",
" <td>13.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2428</th>\n",
" <td>38</td>\n",
" <td>Montipo'</td>\n",
" <td>Verona</td>\n",
" <td>Milan</td>\n",
" <td>0</td>\n",
" <td>6.0</td>\n",
" <td>-3</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>3.0</td>\n",
" <td>...</td>\n",
" <td>49.600000</td>\n",
" <td>0.270000</td>\n",
" <td>-6.400000</td>\n",
" <td>360.000000</td>\n",
" <td>775.000000</td>\n",
" <td>905.000000</td>\n",
" <td>124.000000</td>\n",
" <td>284.000000</td>\n",
" <td>496.000000</td>\n",
" <td>26.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>2429 rows × 102 columns</p>\n",
"</div>"
],
"text/plain": [
" matchday player team oppteam home vote \\\n",
"0 1 Musso Atalanta Sassuolo 0 6.5 \n",
"1 1 Skorupski Bologna Milan 1 6.0 \n",
"2 1 Radunovic Cagliari Torino 0 6.5 \n",
"3 1 Caprile Empoli Verona 1 5.0 \n",
"4 1 Terracciano Fiorentina Genoa 0 6.0 \n",
"... ... ... ... ... ... ... \n",
"2424 38 Russo A. Sassuolo Fiorentina 1 5.0 \n",
"2425 38 Zoet Spezia Roma 0 5.5 \n",
"2426 38 Milinkovic-Savic V. Torino Inter 1 5.0 \n",
"2427 38 Silvestri Udinese Juventus 1 6.5 \n",
"2428 38 Montipo' Verona Milan 0 6.0 \n",
"\n",
" goals assists cards_malus fantavote ... gk_psxg \\\n",
"0 0 0 0.0 6.5 ... 2.400000 \n",
"1 -2 0 0.0 4.0 ... 4.900000 \n",
"2 0 0 0.0 6.5 ... 10.100000 \n",
"3 -1 0 0.0 4.0 ... 6.866667 \n",
"4 -1 0 0.0 5.0 ... 4.300000 \n",
"... ... ... ... ... ... ... \n",
"2424 -3 0 0.0 2.0 ... 32.550000 \n",
"2425 -2 0 0.5 3.0 ... 10.016667 \n",
"2426 -1 0 0.0 4.0 ... 35.800000 \n",
"2427 -1 0 0.0 5.5 ... 48.700000 \n",
"2428 -3 0 0.0 3.0 ... 49.600000 \n",
"\n",
" gk_psnpxg_per_shot_on_target_against gk_psxg_net \\\n",
"0 0.180000 0.400000 \n",
"1 0.230000 0.900000 \n",
"2 0.380000 -0.900000 \n",
"3 0.216667 -1.466667 \n",
"4 0.210000 0.300000 \n",
"... ... ... \n",
"2424 0.325000 -12.116667 \n",
"2425 0.158333 -1.816667 \n",
"2426 0.230000 -5.200000 \n",
"2427 0.310000 2.700000 \n",
"2428 0.270000 -6.400000 \n",
"\n",
" gk_passes_completed_launched gk_passes_launched gk_passes \\\n",
"0 14.000000 54.000000 141.000000 \n",
"1 33.000000 68.000000 185.000000 \n",
"2 41.000000 91.000000 156.000000 \n",
"3 9.333333 42.000000 100.333333 \n",
"4 32.000000 66.000000 210.000000 \n",
"... ... ... ... \n",
"2424 146.666667 365.333333 957.000000 \n",
"2425 46.000000 145.333333 254.166667 \n",
"2426 285.000000 939.000000 1506.000000 \n",
"2427 144.000000 380.000000 872.000000 \n",
"2428 360.000000 775.000000 905.000000 \n",
"\n",
" gk_passes_throws gk_goal_kicks gk_crosses gk_crosses_stopped \n",
"0 30.000000 30.000000 48.000000 5.000000 \n",
"1 29.000000 43.000000 108.000000 3.000000 \n",
"2 31.000000 66.000000 98.000000 6.000000 \n",
"3 23.000000 21.333333 42.666667 2.000000 \n",
"4 20.000000 26.000000 56.000000 3.000000 \n",
"... ... ... ... ... \n",
"2424 156.166667 238.833333 391.500000 23.333333 \n",
"2425 37.333333 51.833333 130.333333 5.500000 \n",
"2426 185.000000 286.000000 469.000000 36.000000 \n",
"2427 142.000000 302.000000 547.000000 13.000000 \n",
"2428 124.000000 284.000000 496.000000 26.000000 \n",
"\n",
"[2429 rows x 102 columns]"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"db_gk1 = pd.read_excel('mid_outputs/database_entries_gk.xlsx', index_col = 0) \n",
"db_gk2 = pd.read_excel('mid_outputs/season2021/database_entries_gk.xlsx', index_col = 0) \n",
"db_gk3 = pd.read_excel('mid_outputs/season2122/database_entries_gk.xlsx', index_col = 0) \n",
"db_gk4 = pd.read_excel('mid_outputs/season2223/database_entries_gk.xlsx', index_col = 0) \n",
"\n",
"db_gk = pd.concat([db_gk1, db_gk2, db_gk3, db_gk4], ignore_index = True) \n",
"\n",
"db_gk"
]
},
{
"cell_type": "markdown",
"id": "04df0936",
"metadata": {},
"source": [
"Load player stats from current season and past seasons"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "bc9dae87",
"metadata": {},
"outputs": [],
"source": [
"players_orig = pd.read_excel('mid_outputs/players_stats.xlsx', index_col = 3)\n",
"#players = pd.read_excel('mid_outputs/players_stats_rwk.xlsx', index_col = 3) # reworked stats to account for past season\n",
"\n",
"players_old = pd.read_excel('mid_outputs/season2223/players_stats.xlsx', index_col = 3)\n",
"players_old_2 = pd.read_excel('mid_outputs/season2122/players_stats.xlsx', index_col = 3)\n",
"players_old_3 = pd.read_excel('mid_outputs/season2021/players_stats.xlsx', index_col = 3)\n",
"\n",
"players = players_orig"
]
},
{
"cell_type": "markdown",
"id": "397babf2",
"metadata": {},
"source": [
"Load team data from current season and add an average Serie A team row"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "493b0495",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\nicol\\AppData\\Local\\Temp\\ipykernel_27732\\661405348.py:3: FutureWarning: Dropping of nuisance columns in DataFrame reductions (with 'numeric_only=None') is deprecated; in a future version this will raise TypeError. Select only valid columns before calling the reduction.\n",
" avg_row = pd.DataFrame(index = ['Avg'], data = [team_data.mean()], columns = team_data.columns)\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>team</th>\n",
" <th>team_players_used</th>\n",
" <th>team_possession</th>\n",
" <th>team_games</th>\n",
" <th>team_games_starts</th>\n",
" <th>team_minutes</th>\n",
" <th>team_goals</th>\n",
" <th>team_assists</th>\n",
" <th>team_pens_made</th>\n",
" <th>team_pens_att</th>\n",
" <th>...</th>\n",
" <th>vs_team_fouls</th>\n",
" <th>vs_team_fouled</th>\n",
" <th>vs_team_offsides</th>\n",
" <th>vs_team_pens_won</th>\n",
" <th>vs_team_pens_conceded</th>\n",
" <th>vs_team_own_goals</th>\n",
" <th>vs_team_ball_recoveries</th>\n",
" <th>vs_team_aerials_won</th>\n",
" <th>vs_team_aerials_lost</th>\n",
" <th>vs_team_aerials_won_pct</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Atalanta</th>\n",
" <td>Atalanta</td>\n",
" <td>24.0</td>\n",
" <td>50.7</td>\n",
" <td>7.0</td>\n",
" <td>77.0</td>\n",
" <td>630.0</td>\n",
" <td>11.00</td>\n",
" <td>11.0</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>...</td>\n",
" <td>64.0</td>\n",
" <td>86.0</td>\n",
" <td>5.00</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>398.00</td>\n",
" <td>112.00</td>\n",
" <td>114.00</td>\n",
" <td>49.600</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Bologna</th>\n",
" <td>Bologna</td>\n",
" <td>23.0</td>\n",
" <td>55.1</td>\n",
" <td>7.0</td>\n",
" <td>77.0</td>\n",
" <td>630.0</td>\n",
" <td>6.00</td>\n",
" <td>4.0</td>\n",
" <td>0.00</td>\n",
" <td>1.00</td>\n",
" <td>...</td>\n",
" <td>87.0</td>\n",
" <td>81.0</td>\n",
" <td>17.00</td>\n",
" <td>0.0</td>\n",
" <td>1.00</td>\n",
" <td>0.00</td>\n",
" <td>349.00</td>\n",
" <td>50.00</td>\n",
" <td>78.00</td>\n",
" <td>39.100</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Cagliari</th>\n",
" <td>Cagliari</td>\n",
" <td>22.0</td>\n",
" <td>38.4</td>\n",
" <td>7.0</td>\n",
" <td>77.0</td>\n",
" <td>630.0</td>\n",
" <td>2.00</td>\n",
" <td>2.0</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>...</td>\n",
" <td>60.0</td>\n",
" <td>75.0</td>\n",
" <td>12.00</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>386.00</td>\n",
" <td>104.00</td>\n",
" <td>84.00</td>\n",
" <td>55.300</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Empoli</th>\n",
" <td>Empoli</td>\n",
" <td>28.0</td>\n",
" <td>44.9</td>\n",
" <td>7.0</td>\n",
" <td>77.0</td>\n",
" <td>630.0</td>\n",
" <td>1.00</td>\n",
" <td>1.0</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>...</td>\n",
" <td>95.0</td>\n",
" <td>89.0</td>\n",
" <td>12.00</td>\n",
" <td>1.0</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>369.00</td>\n",
" <td>86.00</td>\n",
" <td>64.00</td>\n",
" <td>57.300</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fiorentina</th>\n",
" <td>Fiorentina</td>\n",
" <td>24.0</td>\n",
" <td>57.6</td>\n",
" <td>7.0</td>\n",
" <td>77.0</td>\n",
" <td>630.0</td>\n",
" <td>14.00</td>\n",
" <td>11.0</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>...</td>\n",
" <td>85.0</td>\n",
" <td>72.0</td>\n",
" <td>10.00</td>\n",
" <td>1.0</td>\n",
" <td>0.00</td>\n",
" <td>1.00</td>\n",
" <td>359.00</td>\n",
" <td>109.00</td>\n",
" <td>87.00</td>\n",
" <td>55.600</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Frosinone</th>\n",
" <td>Frosinone</td>\n",
" <td>25.0</td>\n",
" <td>49.3</td>\n",
" <td>7.0</td>\n",
" <td>77.0</td>\n",
" <td>630.0</td>\n",
" <td>9.00</td>\n",
" <td>5.0</td>\n",
" <td>2.00</td>\n",
" <td>2.00</td>\n",
" <td>...</td>\n",
" <td>85.0</td>\n",
" <td>64.0</td>\n",
" <td>17.00</td>\n",
" <td>0.0</td>\n",
" <td>2.00</td>\n",
" <td>0.00</td>\n",
" <td>384.00</td>\n",
" <td>87.00</td>\n",
" <td>90.00</td>\n",
" <td>49.200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Genoa</th>\n",
" <td>Genoa</td>\n",
" <td>23.0</td>\n",
" <td>35.3</td>\n",
" <td>7.0</td>\n",
" <td>77.0</td>\n",
" <td>630.0</td>\n",
" <td>10.00</td>\n",
" <td>9.0</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>...</td>\n",
" <td>79.0</td>\n",
" <td>72.0</td>\n",
" <td>13.00</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>349.00</td>\n",
" <td>79.00</td>\n",
" <td>97.00</td>\n",
" <td>44.900</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Verona</th>\n",
" <td>Hellas Verona</td>\n",
" <td>23.0</td>\n",
" <td>45.1</td>\n",
" <td>7.0</td>\n",
" <td>77.0</td>\n",
" <td>630.0</td>\n",
" <td>4.00</td>\n",
" <td>2.0</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>...</td>\n",
" <td>90.0</td>\n",
" <td>94.0</td>\n",
" <td>12.00</td>\n",
" <td>1.0</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>387.00</td>\n",
" <td>135.00</td>\n",
" <td>128.00</td>\n",
" <td>51.300</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Inter</th>\n",
" <td>Inter</td>\n",
" <td>23.0</td>\n",
" <td>54.7</td>\n",
" <td>7.0</td>\n",
" <td>77.0</td>\n",
" <td>630.0</td>\n",
" <td>19.00</td>\n",
" <td>15.0</td>\n",
" <td>3.00</td>\n",
" <td>3.00</td>\n",
" <td>...</td>\n",
" <td>82.0</td>\n",
" <td>74.0</td>\n",
" <td>11.00</td>\n",
" <td>0.0</td>\n",
" <td>3.00</td>\n",
" <td>0.00</td>\n",
" <td>298.00</td>\n",
" <td>57.00</td>\n",
" <td>108.00</td>\n",
" <td>34.500</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Juventus</th>\n",
" <td>Juventus</td>\n",
" <td>22.0</td>\n",
" <td>50.0</td>\n",
" <td>7.0</td>\n",
" <td>77.0</td>\n",
" <td>630.0</td>\n",
" <td>11.00</td>\n",
" <td>9.0</td>\n",
" <td>1.00</td>\n",
" <td>2.00</td>\n",
" <td>...</td>\n",
" <td>93.0</td>\n",
" <td>78.0</td>\n",
" <td>6.00</td>\n",
" <td>0.0</td>\n",
" <td>2.00</td>\n",
" <td>1.00</td>\n",
" <td>318.00</td>\n",
" <td>46.00</td>\n",
" <td>82.00</td>\n",
" <td>35.900</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Lazio</th>\n",
" <td>Lazio</td>\n",
" <td>20.0</td>\n",
" <td>53.3</td>\n",
" <td>7.0</td>\n",
" <td>77.0</td>\n",
" <td>630.0</td>\n",
" <td>7.00</td>\n",
" <td>6.0</td>\n",
" <td>1.00</td>\n",
" <td>1.00</td>\n",
" <td>...</td>\n",
" <td>84.0</td>\n",
" <td>72.0</td>\n",
" <td>12.00</td>\n",
" <td>0.0</td>\n",
" <td>1.00</td>\n",
" <td>0.00</td>\n",
" <td>325.00</td>\n",
" <td>71.00</td>\n",
" <td>60.00</td>\n",
" <td>54.200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Lecce</th>\n",
" <td>Lecce</td>\n",
" <td>23.0</td>\n",
" <td>46.3</td>\n",
" <td>7.0</td>\n",
" <td>77.0</td>\n",
" <td>630.0</td>\n",
" <td>8.00</td>\n",
" <td>6.0</td>\n",
" <td>2.00</td>\n",
" <td>2.00</td>\n",
" <td>...</td>\n",
" <td>99.0</td>\n",
" <td>85.0</td>\n",
" <td>6.00</td>\n",
" <td>1.0</td>\n",
" <td>2.00</td>\n",
" <td>0.00</td>\n",
" <td>354.00</td>\n",
" <td>81.00</td>\n",
" <td>81.00</td>\n",
" <td>50.000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Milan</th>\n",
" <td>Milan</td>\n",
" <td>23.0</td>\n",
" <td>56.0</td>\n",
" <td>7.0</td>\n",
" <td>77.0</td>\n",
" <td>630.0</td>\n",
" <td>15.00</td>\n",
" <td>10.0</td>\n",
" <td>3.00</td>\n",
" <td>3.00</td>\n",
" <td>...</td>\n",
" <td>85.0</td>\n",
" <td>74.0</td>\n",
" <td>10.00</td>\n",
" <td>1.0</td>\n",
" <td>3.00</td>\n",
" <td>0.00</td>\n",
" <td>329.00</td>\n",
" <td>72.00</td>\n",
" <td>66.00</td>\n",
" <td>52.200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Monza</th>\n",
" <td>Monza</td>\n",
" <td>24.0</td>\n",
" <td>54.4</td>\n",
" <td>7.0</td>\n",
" <td>77.0</td>\n",
" <td>630.0</td>\n",
" <td>5.00</td>\n",
" <td>4.0</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>...</td>\n",
" <td>73.0</td>\n",
" <td>78.0</td>\n",
" <td>12.00</td>\n",
" <td>2.0</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>319.00</td>\n",
" <td>83.00</td>\n",
" <td>65.00</td>\n",
" <td>56.100</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Napoli</th>\n",
" <td>Napoli</td>\n",
" <td>21.0</td>\n",
" <td>60.0</td>\n",
" <td>7.0</td>\n",
" <td>77.0</td>\n",
" <td>630.0</td>\n",
" <td>16.00</td>\n",
" <td>10.0</td>\n",
" <td>3.00</td>\n",
" <td>5.00</td>\n",
" <td>...</td>\n",
" <td>84.0</td>\n",
" <td>70.0</td>\n",
" <td>12.00</td>\n",
" <td>1.0</td>\n",
" <td>5.00</td>\n",
" <td>0.00</td>\n",
" <td>304.00</td>\n",
" <td>60.00</td>\n",
" <td>70.00</td>\n",
" <td>46.200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Roma</th>\n",
" <td>Roma</td>\n",
" <td>23.0</td>\n",
" <td>58.3</td>\n",
" <td>7.0</td>\n",
" <td>77.0</td>\n",
" <td>630.0</td>\n",
" <td>14.00</td>\n",
" <td>11.0</td>\n",
" <td>1.00</td>\n",
" <td>1.00</td>\n",
" <td>...</td>\n",
" <td>69.0</td>\n",
" <td>79.0</td>\n",
" <td>6.00</td>\n",
" <td>1.0</td>\n",
" <td>1.00</td>\n",
" <td>1.00</td>\n",
" <td>328.00</td>\n",
" <td>93.00</td>\n",
" <td>112.00</td>\n",
" <td>45.400</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Salernitana</th>\n",
" <td>Salernitana</td>\n",
" <td>23.0</td>\n",
" <td>50.0</td>\n",
" <td>7.0</td>\n",
" <td>77.0</td>\n",
" <td>630.0</td>\n",
" <td>4.00</td>\n",
" <td>3.0</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>...</td>\n",
" <td>104.0</td>\n",
" <td>82.0</td>\n",
" <td>13.00</td>\n",
" <td>1.0</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>357.00</td>\n",
" <td>151.00</td>\n",
" <td>93.00</td>\n",
" <td>61.900</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sassuolo</th>\n",
" <td>Sassuolo</td>\n",
" <td>25.0</td>\n",
" <td>42.6</td>\n",
" <td>7.0</td>\n",
" <td>77.0</td>\n",
" <td>630.0</td>\n",
" <td>10.00</td>\n",
" <td>7.0</td>\n",
" <td>1.00</td>\n",
" <td>1.00</td>\n",
" <td>...</td>\n",
" <td>73.0</td>\n",
" <td>63.0</td>\n",
" <td>24.00</td>\n",
" <td>2.0</td>\n",
" <td>1.00</td>\n",
" <td>1.00</td>\n",
" <td>336.00</td>\n",
" <td>95.00</td>\n",
" <td>63.00</td>\n",
" <td>60.100</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Torino</th>\n",
" <td>Torino</td>\n",
" <td>23.0</td>\n",
" <td>50.0</td>\n",
" <td>7.0</td>\n",
" <td>77.0</td>\n",
" <td>630.0</td>\n",
" <td>6.00</td>\n",
" <td>4.0</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>...</td>\n",
" <td>72.0</td>\n",
" <td>70.0</td>\n",
" <td>8.00</td>\n",
" <td>1.0</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>371.00</td>\n",
" <td>104.00</td>\n",
" <td>101.00</td>\n",
" <td>50.700</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Udinese</th>\n",
" <td>Udinese</td>\n",
" <td>24.0</td>\n",
" <td>48.0</td>\n",
" <td>7.0</td>\n",
" <td>77.0</td>\n",
" <td>630.0</td>\n",
" <td>3.00</td>\n",
" <td>2.0</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>...</td>\n",
" <td>77.0</td>\n",
" <td>86.0</td>\n",
" <td>13.00</td>\n",
" <td>1.0</td>\n",
" <td>0.00</td>\n",
" <td>1.00</td>\n",
" <td>337.00</td>\n",
" <td>82.00</td>\n",
" <td>114.00</td>\n",
" <td>41.800</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Avg</th>\n",
" <td>Avg</td>\n",
" <td>23.3</td>\n",
" <td>50.0</td>\n",
" <td>7.0</td>\n",
" <td>77.0</td>\n",
" <td>630.0</td>\n",
" <td>8.75</td>\n",
" <td>6.6</td>\n",
" <td>0.85</td>\n",
" <td>1.05</td>\n",
" <td>...</td>\n",
" <td>82.0</td>\n",
" <td>77.2</td>\n",
" <td>11.55</td>\n",
" <td>0.7</td>\n",
" <td>1.05</td>\n",
" <td>0.25</td>\n",
" <td>347.85</td>\n",
" <td>87.85</td>\n",
" <td>87.85</td>\n",
" <td>49.565</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>21 rows × 303 columns</p>\n",
"</div>"
],
"text/plain": [
" team team_players_used team_possession team_games \\\n",
"Atalanta Atalanta 24.0 50.7 7.0 \n",
"Bologna Bologna 23.0 55.1 7.0 \n",
"Cagliari Cagliari 22.0 38.4 7.0 \n",
"Empoli Empoli 28.0 44.9 7.0 \n",
"Fiorentina Fiorentina 24.0 57.6 7.0 \n",
"Frosinone Frosinone 25.0 49.3 7.0 \n",
"Genoa Genoa 23.0 35.3 7.0 \n",
"Verona Hellas Verona 23.0 45.1 7.0 \n",
"Inter Inter 23.0 54.7 7.0 \n",
"Juventus Juventus 22.0 50.0 7.0 \n",
"Lazio Lazio 20.0 53.3 7.0 \n",
"Lecce Lecce 23.0 46.3 7.0 \n",
"Milan Milan 23.0 56.0 7.0 \n",
"Monza Monza 24.0 54.4 7.0 \n",
"Napoli Napoli 21.0 60.0 7.0 \n",
"Roma Roma 23.0 58.3 7.0 \n",
"Salernitana Salernitana 23.0 50.0 7.0 \n",
"Sassuolo Sassuolo 25.0 42.6 7.0 \n",
"Torino Torino 23.0 50.0 7.0 \n",
"Udinese Udinese 24.0 48.0 7.0 \n",
"Avg Avg 23.3 50.0 7.0 \n",
"\n",
" team_games_starts team_minutes team_goals team_assists \\\n",
"Atalanta 77.0 630.0 11.00 11.0 \n",
"Bologna 77.0 630.0 6.00 4.0 \n",
"Cagliari 77.0 630.0 2.00 2.0 \n",
"Empoli 77.0 630.0 1.00 1.0 \n",
"Fiorentina 77.0 630.0 14.00 11.0 \n",
"Frosinone 77.0 630.0 9.00 5.0 \n",
"Genoa 77.0 630.0 10.00 9.0 \n",
"Verona 77.0 630.0 4.00 2.0 \n",
"Inter 77.0 630.0 19.00 15.0 \n",
"Juventus 77.0 630.0 11.00 9.0 \n",
"Lazio 77.0 630.0 7.00 6.0 \n",
"Lecce 77.0 630.0 8.00 6.0 \n",
"Milan 77.0 630.0 15.00 10.0 \n",
"Monza 77.0 630.0 5.00 4.0 \n",
"Napoli 77.0 630.0 16.00 10.0 \n",
"Roma 77.0 630.0 14.00 11.0 \n",
"Salernitana 77.0 630.0 4.00 3.0 \n",
"Sassuolo 77.0 630.0 10.00 7.0 \n",
"Torino 77.0 630.0 6.00 4.0 \n",
"Udinese 77.0 630.0 3.00 2.0 \n",
"Avg 77.0 630.0 8.75 6.6 \n",
"\n",
" team_pens_made team_pens_att ... vs_team_fouls \\\n",
"Atalanta 0.00 0.00 ... 64.0 \n",
"Bologna 0.00 1.00 ... 87.0 \n",
"Cagliari 0.00 0.00 ... 60.0 \n",
"Empoli 0.00 0.00 ... 95.0 \n",
"Fiorentina 0.00 0.00 ... 85.0 \n",
"Frosinone 2.00 2.00 ... 85.0 \n",
"Genoa 0.00 0.00 ... 79.0 \n",
"Verona 0.00 0.00 ... 90.0 \n",
"Inter 3.00 3.00 ... 82.0 \n",
"Juventus 1.00 2.00 ... 93.0 \n",
"Lazio 1.00 1.00 ... 84.0 \n",
"Lecce 2.00 2.00 ... 99.0 \n",
"Milan 3.00 3.00 ... 85.0 \n",
"Monza 0.00 0.00 ... 73.0 \n",
"Napoli 3.00 5.00 ... 84.0 \n",
"Roma 1.00 1.00 ... 69.0 \n",
"Salernitana 0.00 0.00 ... 104.0 \n",
"Sassuolo 1.00 1.00 ... 73.0 \n",
"Torino 0.00 0.00 ... 72.0 \n",
"Udinese 0.00 0.00 ... 77.0 \n",
"Avg 0.85 1.05 ... 82.0 \n",
"\n",
" vs_team_fouled vs_team_offsides vs_team_pens_won \\\n",
"Atalanta 86.0 5.00 0.0 \n",
"Bologna 81.0 17.00 0.0 \n",
"Cagliari 75.0 12.00 0.0 \n",
"Empoli 89.0 12.00 1.0 \n",
"Fiorentina 72.0 10.00 1.0 \n",
"Frosinone 64.0 17.00 0.0 \n",
"Genoa 72.0 13.00 0.0 \n",
"Verona 94.0 12.00 1.0 \n",
"Inter 74.0 11.00 0.0 \n",
"Juventus 78.0 6.00 0.0 \n",
"Lazio 72.0 12.00 0.0 \n",
"Lecce 85.0 6.00 1.0 \n",
"Milan 74.0 10.00 1.0 \n",
"Monza 78.0 12.00 2.0 \n",
"Napoli 70.0 12.00 1.0 \n",
"Roma 79.0 6.00 1.0 \n",
"Salernitana 82.0 13.00 1.0 \n",
"Sassuolo 63.0 24.00 2.0 \n",
"Torino 70.0 8.00 1.0 \n",
"Udinese 86.0 13.00 1.0 \n",
"Avg 77.2 11.55 0.7 \n",
"\n",
" vs_team_pens_conceded vs_team_own_goals \\\n",
"Atalanta 0.00 0.00 \n",
"Bologna 1.00 0.00 \n",
"Cagliari 0.00 0.00 \n",
"Empoli 0.00 0.00 \n",
"Fiorentina 0.00 1.00 \n",
"Frosinone 2.00 0.00 \n",
"Genoa 0.00 0.00 \n",
"Verona 0.00 0.00 \n",
"Inter 3.00 0.00 \n",
"Juventus 2.00 1.00 \n",
"Lazio 1.00 0.00 \n",
"Lecce 2.00 0.00 \n",
"Milan 3.00 0.00 \n",
"Monza 0.00 0.00 \n",
"Napoli 5.00 0.00 \n",
"Roma 1.00 1.00 \n",
"Salernitana 0.00 0.00 \n",
"Sassuolo 1.00 1.00 \n",
"Torino 0.00 0.00 \n",
"Udinese 0.00 1.00 \n",
"Avg 1.05 0.25 \n",
"\n",
" vs_team_ball_recoveries vs_team_aerials_won \\\n",
"Atalanta 398.00 112.00 \n",
"Bologna 349.00 50.00 \n",
"Cagliari 386.00 104.00 \n",
"Empoli 369.00 86.00 \n",
"Fiorentina 359.00 109.00 \n",
"Frosinone 384.00 87.00 \n",
"Genoa 349.00 79.00 \n",
"Verona 387.00 135.00 \n",
"Inter 298.00 57.00 \n",
"Juventus 318.00 46.00 \n",
"Lazio 325.00 71.00 \n",
"Lecce 354.00 81.00 \n",
"Milan 329.00 72.00 \n",
"Monza 319.00 83.00 \n",
"Napoli 304.00 60.00 \n",
"Roma 328.00 93.00 \n",
"Salernitana 357.00 151.00 \n",
"Sassuolo 336.00 95.00 \n",
"Torino 371.00 104.00 \n",
"Udinese 337.00 82.00 \n",
"Avg 347.85 87.85 \n",
"\n",
" vs_team_aerials_lost vs_team_aerials_won_pct \n",
"Atalanta 114.00 49.600 \n",
"Bologna 78.00 39.100 \n",
"Cagliari 84.00 55.300 \n",
"Empoli 64.00 57.300 \n",
"Fiorentina 87.00 55.600 \n",
"Frosinone 90.00 49.200 \n",
"Genoa 97.00 44.900 \n",
"Verona 128.00 51.300 \n",
"Inter 108.00 34.500 \n",
"Juventus 82.00 35.900 \n",
"Lazio 60.00 54.200 \n",
"Lecce 81.00 50.000 \n",
"Milan 66.00 52.200 \n",
"Monza 65.00 56.100 \n",
"Napoli 70.00 46.200 \n",
"Roma 112.00 45.400 \n",
"Salernitana 93.00 61.900 \n",
"Sassuolo 63.00 60.100 \n",
"Torino 101.00 50.700 \n",
"Udinese 114.00 41.800 \n",
"Avg 87.85 49.565 \n",
"\n",
"[21 rows x 303 columns]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"team_data = pd.read_excel('mid_outputs/team_data.xlsx', index_col = 0)\n",
"\n",
"avg_row = pd.DataFrame(index = ['Avg'], data = [team_data.mean()], columns = team_data.columns)\n",
"avg_row['team']['Avg'] = 'Avg'\n",
"\n",
"team_data = pd.concat([team_data, avg_row])\n",
"\n",
"team_data"
]
},
{
"cell_type": "markdown",
"id": "cc1cd13d",
"metadata": {},
"source": [
"Data processing functions copied from player_match_dataset_creation"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "32f56138",
"metadata": {},
"outputs": [],
"source": [
"features_abs = ['r',\n",
" 'games',\n",
" 'games_starts', \n",
" 'minutes',\n",
" 'shots_on_target_pct',\n",
" 'goals_per_shot',\n",
" 'goals_per_shot_on_target',\n",
" 'passes_pct',\n",
" #'dribble_tackles_pct',\n",
" #'dribbles_completed_pct',\n",
" 'aerials_won_pct',\n",
" 'team_possession',\n",
" 'team_goals_assists_per90',\n",
" 'team_goals_pens_per90',\n",
" 'team_goals_assists_pens_per90',\n",
" 'team_xg_per90',\n",
" 'team_gk_goals_against_per90',\n",
" 'team_gk_save_pct',\n",
" 'team_gk_clean_sheets_pct',\n",
" 'team_passes_pct',\n",
" 'team_passes_pct_medium',\n",
" 'team_passes_pct_long',\n",
" 'team_sca_per90',\n",
" 'team_gca_per90',\n",
" #'team_dribble_tackles_pct',\n",
" 'team_aerials_won_pct',\n",
" 'vs_team_possession',\n",
" 'vs_team_goals_per90',\n",
" 'vs_team_assists_per90',\n",
" 'vs_team_xg_per90',\n",
" 'vs_team_gk_save_pct',\n",
" 'vs_team_gk_clean_sheets_pct',\n",
" 'vs_team_gk_pct_passes_launched',\n",
" 'vs_team_gk_crosses_stopped_pct',\n",
" 'vs_team_shots_on_target_per90',\n",
" 'vs_team_passes_pct',\n",
" 'vs_team_passes_pct_short',\n",
" 'vs_team_passes_pct_medium',\n",
" 'vs_team_passes_pct_long',\n",
" 'vs_team_sca_per90',\n",
" 'vs_team_gca_per90',\n",
" #'vs_team_dribble_tackles_pct',\n",
" #'vs_team_dribbles_completed_pct',\n",
" 'vs_team_aerials_won_pct',\n",
" 'opp_team_possession',\n",
" 'opp_team_goals_assists_per90',\n",
" 'opp_team_goals_pens_per90',\n",
" 'opp_team_goals_assists_pens_per90',\n",
" 'opp_team_xg_per90',\n",
" 'opp_team_gk_goals_against_per90',\n",
" 'opp_team_gk_save_pct',\n",
" 'opp_team_gk_clean_sheets_pct',\n",
" 'opp_team_passes_pct',\n",
" 'opp_team_passes_pct_medium',\n",
" 'opp_team_passes_pct_long',\n",
" 'opp_team_sca_per90',\n",
" 'opp_team_gca_per90',\n",
" #'opp_team_dribble_tackles_pct',\n",
" 'opp_team_aerials_won_pct',\n",
" 'opp_vs_team_possession',\n",
" 'opp_vs_team_goals_per90',\n",
" 'opp_vs_team_assists_per90',\n",
" 'opp_vs_team_xg_per90',\n",
" 'opp_vs_team_gk_save_pct',\n",
" 'opp_vs_team_gk_clean_sheets_pct',\n",
" 'opp_vs_team_gk_pct_passes_launched',\n",
" 'opp_vs_team_gk_crosses_stopped_pct',\n",
" 'opp_vs_team_shots_on_target_per90',\n",
" 'opp_vs_team_passes_pct',\n",
" 'opp_vs_team_passes_pct_short',\n",
" 'opp_vs_team_passes_pct_medium',\n",
" 'opp_vs_team_passes_pct_long',\n",
" 'opp_vs_team_sca_per90',\n",
" 'opp_vs_team_gca_per90',\n",
" #'opp_vs_team_dribble_tackles_pct',\n",
" #'opp_vs_team_dribbles_completed_pct',\n",
" 'opp_vs_team_aerials_won_pct',\n",
" \n",
" 'vote_avg',\n",
" 'vote_std']\n",
"\n",
"features_rel = [\n",
" 'goals',\n",
" 'assists',\n",
" 'cards_yellow',\n",
" 'cards_red',\n",
" 'xg',\n",
" 'npxg',\n",
" 'shots_on_target',\n",
" 'passes_completed',\n",
" 'passes_into_final_third',\n",
" 'passes_into_penalty_area',\n",
" 'progressive_passes',\n",
" 'passes_live',\n",
" 'passes_dead',\n",
" 'through_balls',\n",
" 'passes_switches',\n",
" 'crosses',\n",
" 'corner_kicks',\n",
" #'dribble_tackles',\n",
" #'dribbles_vs',\n",
" #'dribbled_past',\n",
" 'blocks',\n",
" 'blocked_shots',\n",
" 'blocked_passes',\n",
" 'interceptions',\n",
" 'clearances',\n",
" 'errors',\n",
" 'touches',\n",
" 'touches_def_pen_area',\n",
" 'touches_def_3rd',\n",
" 'touches_mid_3rd',\n",
" 'touches_att_3rd',\n",
" 'touches_att_pen_area',\n",
" 'touches_live_ball',\n",
" #'dribbles_completed',\n",
" #'dribbles',\n",
" 'passes_received',\n",
" 'miscontrols',\n",
" 'dispossessed',\n",
" 'fouls',\n",
" 'fouled',\n",
" 'aerials_won',\n",
" 'aerials_lost',\n",
" 'carries',\n",
" 'progressive_carries',\n",
" 'carries_into_final_third',\n",
" 'carries_into_penalty_area']\n",
"\n",
"features_rel_gamecorr = [\n",
" 'goals',\n",
" 'assists',\n",
" 'xg',\n",
" 'npxg',\n",
" 'cards_yellow',\n",
" 'cards_red'\n",
"]"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "4001f3f8",
"metadata": {},
"outputs": [],
"source": [
"features_abs_gk = [\n",
" 'gk_games',\n",
" 'gk_games_starts',\n",
" 'gk_minutes',\n",
" 'gk_goals_against_per90', \n",
" 'gk_save_pct',\n",
" 'gk_clean_sheets_pct',\n",
" 'gk_psxg_net_per90',\n",
" 'gk_passes_pct_launched',\n",
" 'gk_pct_passes_launched',\n",
" 'gk_passes_length_avg',\n",
" 'gk_pct_goal_kicks_launched',\n",
" 'gk_goal_kick_length_avg',\n",
" 'gk_crosses_stopped_pct',\n",
" 'gk_def_actions_outside_pen_area_per90',\n",
" 'gk_avg_distance_def_actions',\n",
" \n",
" 'team_possession',\n",
" 'team_goals_assists_per90',\n",
" 'team_goals_pens_per90',\n",
" 'team_goals_assists_pens_per90',\n",
" 'team_xg_per90',\n",
" 'team_gk_goals_against_per90',\n",
" 'team_gk_save_pct',\n",
" 'team_gk_clean_sheets_pct',\n",
" 'team_passes_pct',\n",
" 'team_passes_pct_medium',\n",
" 'team_passes_pct_long',\n",
" 'team_sca_per90',\n",
" 'team_gca_per90',\n",
" #'team_dribble_tackles_pct',\n",
" 'team_aerials_won_pct',\n",
" 'vs_team_possession',\n",
" 'vs_team_goals_per90',\n",
" 'vs_team_assists_per90',\n",
" 'vs_team_xg_per90',\n",
" 'vs_team_gk_save_pct',\n",
" 'vs_team_gk_clean_sheets_pct',\n",
" 'vs_team_gk_pct_passes_launched',\n",
" 'vs_team_gk_crosses_stopped_pct',\n",
" 'vs_team_shots_on_target_per90',\n",
" 'vs_team_passes_pct',\n",
" 'vs_team_passes_pct_short',\n",
" 'vs_team_passes_pct_medium',\n",
" 'vs_team_passes_pct_long',\n",
" 'vs_team_sca_per90',\n",
" 'vs_team_gca_per90',\n",
" #'vs_team_dribble_tackles_pct',\n",
" #'vs_team_dribbles_completed_pct',\n",
" 'vs_team_aerials_won_pct',\n",
" 'opp_team_possession',\n",
" 'opp_team_goals_assists_per90',\n",
" 'opp_team_goals_pens_per90',\n",
" 'opp_team_goals_assists_pens_per90',\n",
" 'opp_team_xg_per90',\n",
" 'opp_team_gk_goals_against_per90',\n",
" 'opp_team_gk_save_pct',\n",
" 'opp_team_gk_clean_sheets_pct',\n",
" 'opp_team_passes_pct',\n",
" 'opp_team_passes_pct_medium',\n",
" 'opp_team_passes_pct_long',\n",
" 'opp_team_sca_per90',\n",
" 'opp_team_gca_per90',\n",
" #'opp_team_dribble_tackles_pct',\n",
" 'opp_team_aerials_won_pct',\n",
" 'opp_vs_team_possession',\n",
" 'opp_vs_team_goals_per90',\n",
" 'opp_vs_team_assists_per90',\n",
" 'opp_vs_team_xg_per90',\n",
" 'opp_vs_team_gk_save_pct',\n",
" 'opp_vs_team_gk_clean_sheets_pct',\n",
" 'opp_vs_team_gk_pct_passes_launched',\n",
" 'opp_vs_team_gk_crosses_stopped_pct',\n",
" 'opp_vs_team_shots_on_target_per90',\n",
" 'opp_vs_team_passes_pct',\n",
" 'opp_vs_team_passes_pct_short',\n",
" 'opp_vs_team_passes_pct_medium',\n",
" 'opp_vs_team_passes_pct_long',\n",
" 'opp_vs_team_sca_per90',\n",
" 'opp_vs_team_gca_per90',\n",
" #'opp_vs_team_dribble_tackles_pct',\n",
" #'opp_vs_team_dribbles_completed_pct',\n",
" 'opp_vs_team_aerials_won_pct',\n",
" \n",
" 'vote_avg',\n",
" 'vote_std']\n",
"\n",
"features_rel_gk = [\n",
" 'gk_shots_on_target_against',\n",
" 'gk_saves',\n",
" 'gk_free_kick_goals_against',\n",
" 'gk_corner_kick_goals_against',\n",
" 'gk_own_goals_against',\n",
" 'gk_psxg',\n",
" 'gk_psnpxg_per_shot_on_target_against',\n",
" 'gk_psxg_net',\n",
" 'gk_passes_completed_launched',\n",
" 'gk_passes_launched',\n",
" 'gk_passes',\n",
" 'gk_passes_throws',\n",
" 'gk_goal_kicks',\n",
" 'gk_crosses',\n",
" 'gk_crosses_stopped',\n",
"]"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "f4017b2f",
"metadata": {},
"outputs": [],
"source": [
"DEL_G = False\n",
"\n",
"features_to_del = [\n",
" 'goals',\n",
" 'assists',\n",
" 'xg',\n",
" 'npxg'\n",
"]\n",
"\n",
"def player_match_data(player, pteam, oppteam, oldseason = False):\n",
" if(not(player in players.index)):\n",
" return None\n",
" \n",
" if(oldseason):\n",
" pdata = players_old.loc[[player]]\n",
" else:\n",
" pdata = players.loc[[player]]\n",
" \n",
" pteam_stats = team_data.loc[[pteam]].rename(index = {pteam : player})\n",
" \n",
" oppteam_stats = team_data.loc[[oppteam]].rename(index = {oppteam : player})\n",
" \n",
" oppteam_stats = oppteam_stats.rename(lambda x: 'opp_' + x, axis='columns')\n",
" \n",
" out = pd.concat([pdata, pteam_stats, oppteam_stats], axis = 1)\n",
" \n",
" return(out)\n",
"\n",
"def player_match_data_ext(player, pteam, oppteam, oldseason = False):\n",
" pdata = player_match_data(player, pteam, oppteam, oldseason = oldseason)\n",
" \n",
" if(not isinstance(pdata, pd.DataFrame)):\n",
" return None\n",
" \n",
" assert pdata['games'][0] > 0\n",
" \n",
" out = pd.concat([pdata[features_abs], pdata[features_rel]], axis = 1)\n",
" \n",
" out[features_rel] = out[features_rel] / max(pdata['minutes'][0], 1)\n",
" \n",
" out[features_rel_gamecorr] = out[features_rel_gamecorr] * (pdata['minutes'][0] / max(pdata['games'][0], 1) / 90)\n",
" \n",
" if(DEL_G):\n",
" out[features_to_del] = 0\n",
" \n",
" return out\n",
"\n",
"def player_match_data_ext_gk(player, pteam, oppteam, oldseason = False):\n",
" pdata = player_match_data(player, pteam, oppteam, oldseason = oldseason)\n",
" \n",
" if(not isinstance(pdata, pd.DataFrame)):\n",
" return None\n",
" \n",
" if(pdata['gk_games'][0] <= 0):\n",
" return None\n",
" \n",
" out = pd.concat([pdata[features_abs_gk], pdata[features_rel_gk]], axis = 1)\n",
" \n",
" out[features_rel_gk] = out[features_rel_gk] / max(pdata['minutes'][0], 1)\n",
"\n",
" return out\n",
" "
]
},
{
"cell_type": "markdown",
"id": "4e6700ec",
"metadata": {},
"source": [
"Load data from previous seasons in other leagues, for new players (rookies) in Serie A"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "3223cfe3",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Unnamed: 0</th>\n",
" <th>nationality</th>\n",
" <th>position</th>\n",
" <th>team</th>\n",
" <th>team.1</th>\n",
" <th>age</th>\n",
" <th>birth_year</th>\n",
" <th>games</th>\n",
" <th>games_starts</th>\n",
" <th>minutes</th>\n",
" <th>...</th>\n",
" <th>vs_team_pens_conceded</th>\n",
" <th>vs_team_own_goals</th>\n",
" <th>league</th>\n",
" <th>season</th>\n",
" <th>surname</th>\n",
" <th>initial</th>\n",
" <th>name</th>\n",
" <th>vote_avg</th>\n",
" <th>vote_std</th>\n",
" <th>r</th>\n",
" </tr>\n",
" <tr>\n",
" <th>player</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Kolasinac</th>\n",
" <td>0</td>\n",
" <td>ba BIH</td>\n",
" <td>DF</td>\n",
" <td>Marseille</td>\n",
" <td>Marseille</td>\n",
" <td>29</td>\n",
" <td>1993</td>\n",
" <td>33</td>\n",
" <td>26</td>\n",
" <td>2214</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>Ligue-1</td>\n",
" <td>2022-2023</td>\n",
" <td>Kolasinac</td>\n",
" <td>S</td>\n",
" <td>Sead Kolašinac</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Freuler</th>\n",
" <td>1</td>\n",
" <td>ch SUI</td>\n",
" <td>MF</td>\n",
" <td>Nott'ham Forest</td>\n",
" <td>Nott'ham Forest</td>\n",
" <td>30</td>\n",
" <td>1992</td>\n",
" <td>28</td>\n",
" <td>24</td>\n",
" <td>2161</td>\n",
" <td>...</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>Premier-League</td>\n",
" <td>2022-2023</td>\n",
" <td>Freuler</td>\n",
" <td>R</td>\n",
" <td>Remo Freuler</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Karlsson</th>\n",
" <td>2</td>\n",
" <td>se SWE</td>\n",
" <td>FW</td>\n",
" <td>AZ Alkmaar</td>\n",
" <td>AZ Alkmaar</td>\n",
" <td>24</td>\n",
" <td>1998</td>\n",
" <td>23</td>\n",
" <td>21</td>\n",
" <td>1777</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>Eredivisie</td>\n",
" <td>2022-2023</td>\n",
" <td>Karlsson</td>\n",
" <td>J</td>\n",
" <td>Jesper Karlsson</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Kristiansen</th>\n",
" <td>3</td>\n",
" <td>dk DEN</td>\n",
" <td>DF</td>\n",
" <td>Leicester City</td>\n",
" <td>Leicester City</td>\n",
" <td>19</td>\n",
" <td>2002</td>\n",
" <td>12</td>\n",
" <td>11</td>\n",
" <td>892</td>\n",
" <td>...</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>Premier-League</td>\n",
" <td>2022-2023</td>\n",
" <td>Kristiansen</td>\n",
" <td>V</td>\n",
" <td>Victor Bernth Kristiansen</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Mina</th>\n",
" <td>4</td>\n",
" <td>co COL</td>\n",
" <td>DF</td>\n",
" <td>Everton</td>\n",
" <td>Everton</td>\n",
" <td>27</td>\n",
" <td>1994</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>594</td>\n",
" <td>...</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>Premier-League</td>\n",
" <td>2022-2023</td>\n",
" <td>Mina</td>\n",
" <td>Y</td>\n",
" <td>Yerry Mina</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Monterisi</th>\n",
" <td>5</td>\n",
" <td>it ITA</td>\n",
" <td>DF</td>\n",
" <td>Frosinone</td>\n",
" <td>Frosinone</td>\n",
" <td>20</td>\n",
" <td>2001</td>\n",
" <td>11</td>\n",
" <td>6</td>\n",
" <td>615</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>Serie-B</td>\n",
" <td>2022-2023</td>\n",
" <td>Monterisi</td>\n",
" <td>I</td>\n",
" <td>Ilario Monterisi</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Pavard</th>\n",
" <td>6</td>\n",
" <td>fr FRA</td>\n",
" <td>DF</td>\n",
" <td>Bayern Munich</td>\n",
" <td>Bayern Munich</td>\n",
" <td>26</td>\n",
" <td>1996</td>\n",
" <td>30</td>\n",
" <td>27</td>\n",
" <td>2431</td>\n",
" <td>...</td>\n",
" <td>5</td>\n",
" <td>2</td>\n",
" <td>Bundesliga</td>\n",
" <td>2022-2023</td>\n",
" <td>Pavard</td>\n",
" <td>B</td>\n",
" <td>Benjamin Pavard</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Thuram</th>\n",
" <td>7</td>\n",
" <td>fr FRA</td>\n",
" <td>FW</td>\n",
" <td>M'Gladbach</td>\n",
" <td>M'Gladbach</td>\n",
" <td>24</td>\n",
" <td>1997</td>\n",
" <td>30</td>\n",
" <td>28</td>\n",
" <td>2513</td>\n",
" <td>...</td>\n",
" <td>6</td>\n",
" <td>0</td>\n",
" <td>Bundesliga</td>\n",
" <td>2022-2023</td>\n",
" <td>Thuram</td>\n",
" <td>M</td>\n",
" <td>Marcus Thuram</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Klaassen</th>\n",
" <td>8</td>\n",
" <td>nl NED</td>\n",
" <td>MF</td>\n",
" <td>Ajax</td>\n",
" <td>Ajax</td>\n",
" <td>29</td>\n",
" <td>1993</td>\n",
" <td>33</td>\n",
" <td>21</td>\n",
" <td>2046</td>\n",
" <td>...</td>\n",
" <td>5</td>\n",
" <td>0</td>\n",
" <td>Eredivisie</td>\n",
" <td>2022-2023</td>\n",
" <td>Klaassen</td>\n",
" <td>D</td>\n",
" <td>Davy Klaassen</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sanchez</th>\n",
" <td>9</td>\n",
" <td>cl CHI</td>\n",
" <td>FW,MF</td>\n",
" <td>Marseille</td>\n",
" <td>Marseille</td>\n",
" <td>33</td>\n",
" <td>1988</td>\n",
" <td>35</td>\n",
" <td>32</td>\n",
" <td>2679</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>Ligue-1</td>\n",
" <td>2022-2023</td>\n",
" <td>Sanchez</td>\n",
" <td>A</td>\n",
" <td>Alexis Sánchez</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Weah</th>\n",
" <td>10</td>\n",
" <td>us USA</td>\n",
" <td>DF,FW</td>\n",
" <td>Lille</td>\n",
" <td>Lille</td>\n",
" <td>22</td>\n",
" <td>2000</td>\n",
" <td>29</td>\n",
" <td>18</td>\n",
" <td>1748</td>\n",
" <td>...</td>\n",
" <td>12</td>\n",
" <td>0</td>\n",
" <td>Ligue-1</td>\n",
" <td>2022-2023</td>\n",
" <td>Weah</td>\n",
" <td>T</td>\n",
" <td>Timothy Weah</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Guendouzi</th>\n",
" <td>11</td>\n",
" <td>fr FRA</td>\n",
" <td>MF</td>\n",
" <td>Marseille</td>\n",
" <td>Marseille</td>\n",
" <td>23</td>\n",
" <td>1999</td>\n",
" <td>33</td>\n",
" <td>25</td>\n",
" <td>2108</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>6</td>\n",
" <td>Ligue-1</td>\n",
" <td>2022-2023</td>\n",
" <td>Guendouzi</td>\n",
" <td>M</td>\n",
" <td>Mattéo Guendouzi</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Kamada</th>\n",
" <td>12</td>\n",
" <td>jp JPN</td>\n",
" <td>MF</td>\n",
" <td>Eint Frankfurt</td>\n",
" <td>Eint Frankfurt</td>\n",
" <td>25</td>\n",
" <td>1996</td>\n",
" <td>32</td>\n",
" <td>25</td>\n",
" <td>2265</td>\n",
" <td>...</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>Bundesliga</td>\n",
" <td>2022-2023</td>\n",
" <td>Kamada</td>\n",
" <td>D</td>\n",
" <td>Daichi Kamada</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Chukwueze</th>\n",
" <td>13</td>\n",
" <td>ng NGA</td>\n",
" <td>FW,MF</td>\n",
" <td>Villarreal</td>\n",
" <td>Villarreal</td>\n",
" <td>23</td>\n",
" <td>1999</td>\n",
" <td>37</td>\n",
" <td>27</td>\n",
" <td>2339</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>2</td>\n",
" <td>La-Liga</td>\n",
" <td>2022-2023</td>\n",
" <td>Chukwueze</td>\n",
" <td>S</td>\n",
" <td>Samuel Chukwueze</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Pulisic</th>\n",
" <td>14</td>\n",
" <td>us USA</td>\n",
" <td>FW,DF</td>\n",
" <td>Chelsea</td>\n",
" <td>Chelsea</td>\n",
" <td>23</td>\n",
" <td>1998</td>\n",
" <td>24</td>\n",
" <td>8</td>\n",
" <td>821</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>Premier-League</td>\n",
" <td>2022-2023</td>\n",
" <td>Pulisic</td>\n",
" <td>C</td>\n",
" <td>Christian Pulisic</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Loftus-Cheek</th>\n",
" <td>15</td>\n",
" <td>eng ENG</td>\n",
" <td>MF,DF</td>\n",
" <td>Chelsea</td>\n",
" <td>Chelsea</td>\n",
" <td>26</td>\n",
" <td>1996</td>\n",
" <td>25</td>\n",
" <td>19</td>\n",
" <td>1536</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>Premier-League</td>\n",
" <td>2022-2023</td>\n",
" <td>Loftus-Cheek</td>\n",
" <td>R</td>\n",
" <td>Ruben Loftus-Cheek</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Lindstrom</th>\n",
" <td>16</td>\n",
" <td>dk DEN</td>\n",
" <td>MF,FW</td>\n",
" <td>Eint Frankfurt</td>\n",
" <td>Eint Frankfurt</td>\n",
" <td>22</td>\n",
" <td>2000</td>\n",
" <td>27</td>\n",
" <td>22</td>\n",
" <td>1679</td>\n",
" <td>...</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>Bundesliga</td>\n",
" <td>2022-2023</td>\n",
" <td>Lindstrm</td>\n",
" <td>J</td>\n",
" <td>Jesper Lindstrøm</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Cajuste</th>\n",
" <td>17</td>\n",
" <td>se SWE</td>\n",
" <td>MF</td>\n",
" <td>Reims</td>\n",
" <td>Reims</td>\n",
" <td>22</td>\n",
" <td>1999</td>\n",
" <td>31</td>\n",
" <td>14</td>\n",
" <td>1530</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>0</td>\n",
" <td>Ligue-1</td>\n",
" <td>2022-2023</td>\n",
" <td>Cajuste</td>\n",
" <td>J</td>\n",
" <td>Jens Cajuste</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Cheddira</th>\n",
" <td>18</td>\n",
" <td>ma MAR</td>\n",
" <td>FW</td>\n",
" <td>Bari</td>\n",
" <td>Bari</td>\n",
" <td>24</td>\n",
" <td>1998</td>\n",
" <td>31</td>\n",
" <td>30</td>\n",
" <td>2495</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>Serie-B</td>\n",
" <td>2022-2023</td>\n",
" <td>Cheddira</td>\n",
" <td>W</td>\n",
" <td>Walid Cheddira</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Lapadula</th>\n",
" <td>19</td>\n",
" <td>pe PER</td>\n",
" <td>FW</td>\n",
" <td>Cagliari</td>\n",
" <td>Cagliari</td>\n",
" <td>32</td>\n",
" <td>1990</td>\n",
" <td>36</td>\n",
" <td>33</td>\n",
" <td>2882</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Serie-B</td>\n",
" <td>2022-2023</td>\n",
" <td>Lapadula</td>\n",
" <td>G</td>\n",
" <td>Gianluca Lapadula</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Kristensen</th>\n",
" <td>20</td>\n",
" <td>dk DEN</td>\n",
" <td>DF</td>\n",
" <td>Leeds United</td>\n",
" <td>Leeds United</td>\n",
" <td>25</td>\n",
" <td>1997</td>\n",
" <td>26</td>\n",
" <td>21</td>\n",
" <td>1960</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>Premier-League</td>\n",
" <td>2022-2023</td>\n",
" <td>Nissen</td>\n",
" <td>R</td>\n",
" <td>Rasmus Nissen</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Azmoun</th>\n",
" <td>21</td>\n",
" <td>ir IRN</td>\n",
" <td>FW,MF</td>\n",
" <td>Leverkusen</td>\n",
" <td>Leverkusen</td>\n",
" <td>27</td>\n",
" <td>1995</td>\n",
" <td>23</td>\n",
" <td>8</td>\n",
" <td>927</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>0</td>\n",
" <td>Bundesliga</td>\n",
" <td>2022-2023</td>\n",
" <td>Azmoun</td>\n",
" <td>S</td>\n",
" <td>Sardar Azmoun</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Renato Sanches</th>\n",
" <td>22</td>\n",
" <td>pt POR</td>\n",
" <td>MF</td>\n",
" <td>Paris S-G</td>\n",
" <td>Paris S-G</td>\n",
" <td>24</td>\n",
" <td>1997</td>\n",
" <td>23</td>\n",
" <td>6</td>\n",
" <td>717</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>3</td>\n",
" <td>Ligue-1</td>\n",
" <td>2022-2023</td>\n",
" <td>Sanches</td>\n",
" <td>R</td>\n",
" <td>Renato Sanches</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>N'dicka</th>\n",
" <td>23</td>\n",
" <td>fr FRA</td>\n",
" <td>DF</td>\n",
" <td>Eint Frankfurt</td>\n",
" <td>Eint Frankfurt</td>\n",
" <td>22</td>\n",
" <td>1999</td>\n",
" <td>30</td>\n",
" <td>30</td>\n",
" <td>2692</td>\n",
" <td>...</td>\n",
" <td>6</td>\n",
" <td>2</td>\n",
" <td>Bundesliga</td>\n",
" <td>2022-2023</td>\n",
" <td>NDicka</td>\n",
" <td>O</td>\n",
" <td>Obite N'Dicka</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Aouar</th>\n",
" <td>24</td>\n",
" <td>dz ALG</td>\n",
" <td>MF</td>\n",
" <td>Lyon</td>\n",
" <td>Lyon</td>\n",
" <td>24</td>\n",
" <td>1998</td>\n",
" <td>16</td>\n",
" <td>6</td>\n",
" <td>526</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>2</td>\n",
" <td>Ligue-1</td>\n",
" <td>2022-2023</td>\n",
" <td>Aouar</td>\n",
" <td>H</td>\n",
" <td>Houssem Aouar</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Pedersen</th>\n",
" <td>25</td>\n",
" <td>no NOR</td>\n",
" <td>DF</td>\n",
" <td>Feyenoord</td>\n",
" <td>Feyenoord</td>\n",
" <td>22</td>\n",
" <td>2000</td>\n",
" <td>29</td>\n",
" <td>25</td>\n",
" <td>2117</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>4</td>\n",
" <td>Eredivisie</td>\n",
" <td>2022-2023</td>\n",
" <td>Pedersen</td>\n",
" <td>M</td>\n",
" <td>Marcus Pedersen</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Castillejo</th>\n",
" <td>26</td>\n",
" <td>es ESP</td>\n",
" <td>FW,MF</td>\n",
" <td>Valencia</td>\n",
" <td>Valencia</td>\n",
" <td>27</td>\n",
" <td>1995</td>\n",
" <td>25</td>\n",
" <td>17</td>\n",
" <td>1362</td>\n",
" <td>...</td>\n",
" <td>8</td>\n",
" <td>2</td>\n",
" <td>La-Liga</td>\n",
" <td>2022-2023</td>\n",
" <td>Castillejo</td>\n",
" <td>S</td>\n",
" <td>Samu Castillejo</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Lucca</th>\n",
" <td>27</td>\n",
" <td>it ITA</td>\n",
" <td>FW,MF</td>\n",
" <td>Ajax</td>\n",
" <td>Ajax</td>\n",
" <td>21</td>\n",
" <td>2000</td>\n",
" <td>14</td>\n",
" <td>0</td>\n",
" <td>150</td>\n",
" <td>...</td>\n",
" <td>5</td>\n",
" <td>0</td>\n",
" <td>Eredivisie</td>\n",
" <td>2022-2023</td>\n",
" <td>Lucca</td>\n",
" <td>L</td>\n",
" <td>Lorenzo Lucca</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Folorunsho</th>\n",
" <td>28</td>\n",
" <td>ng NGA</td>\n",
" <td>MF,FW</td>\n",
" <td>Bari</td>\n",
" <td>Bari</td>\n",
" <td>24</td>\n",
" <td>1998</td>\n",
" <td>27</td>\n",
" <td>25</td>\n",
" <td>1995</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>Serie-B</td>\n",
" <td>2022-2023</td>\n",
" <td>Folorunsho</td>\n",
" <td>M</td>\n",
" <td>Michael Folorunsho</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Gudmundsson A.</th>\n",
" <td>29</td>\n",
" <td>is ISL</td>\n",
" <td>MF,FW</td>\n",
" <td>Genoa</td>\n",
" <td>Genoa</td>\n",
" <td>25</td>\n",
" <td>1997</td>\n",
" <td>36</td>\n",
" <td>32</td>\n",
" <td>2696</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Serie-B</td>\n",
" <td>2022-2023</td>\n",
" <td>Gumundsson</td>\n",
" <td>A</td>\n",
" <td>Albert Guðmundsson</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Bakker</th>\n",
" <td>30</td>\n",
" <td>nl NED</td>\n",
" <td>DF,MF</td>\n",
" <td>Leverkusen</td>\n",
" <td>Leverkusen</td>\n",
" <td>22</td>\n",
" <td>2000</td>\n",
" <td>28</td>\n",
" <td>19</td>\n",
" <td>1659</td>\n",
" <td>...</td>\n",
" <td>7</td>\n",
" <td>0</td>\n",
" <td>Bundesliga</td>\n",
" <td>2022-2023</td>\n",
" <td>Bakker</td>\n",
" <td>M</td>\n",
" <td>Mitchel Bakker</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Martin</th>\n",
" <td>31</td>\n",
" <td>es ESP</td>\n",
" <td>DF</td>\n",
" <td>Mainz 05</td>\n",
" <td>Mainz 05</td>\n",
" <td>25</td>\n",
" <td>1997</td>\n",
" <td>28</td>\n",
" <td>20</td>\n",
" <td>1847</td>\n",
" <td>...</td>\n",
" <td>6</td>\n",
" <td>0</td>\n",
" <td>Bundesliga</td>\n",
" <td>2022-2023</td>\n",
" <td>Martin</td>\n",
" <td>A</td>\n",
" <td>Aarón Martín</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Dragusin</th>\n",
" <td>32</td>\n",
" <td>ro ROU</td>\n",
" <td>DF</td>\n",
" <td>Genoa</td>\n",
" <td>Genoa</td>\n",
" <td>20</td>\n",
" <td>2002</td>\n",
" <td>38</td>\n",
" <td>37</td>\n",
" <td>3375</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Serie-B</td>\n",
" <td>2022-2023</td>\n",
" <td>Dragusin</td>\n",
" <td>R</td>\n",
" <td>Radu Drăgușin</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Viti</th>\n",
" <td>33</td>\n",
" <td>it ITA</td>\n",
" <td>DF</td>\n",
" <td>Nice</td>\n",
" <td>Nice</td>\n",
" <td>20</td>\n",
" <td>2002</td>\n",
" <td>9</td>\n",
" <td>7</td>\n",
" <td>634</td>\n",
" <td>...</td>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" <td>Ligue-1</td>\n",
" <td>2022-2023</td>\n",
" <td>Viti</td>\n",
" <td>M</td>\n",
" <td>Mattia Viti</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Beukema</th>\n",
" <td>34</td>\n",
" <td>nl NED</td>\n",
" <td>DF</td>\n",
" <td>AZ Alkmaar</td>\n",
" <td>AZ Alkmaar</td>\n",
" <td>23</td>\n",
" <td>1998</td>\n",
" <td>26</td>\n",
" <td>24</td>\n",
" <td>2198</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>Eredivisie</td>\n",
" <td>2022-2023</td>\n",
" <td>Beukema</td>\n",
" <td>S</td>\n",
" <td>Sam Beukema</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Reijnders</th>\n",
" <td>35</td>\n",
" <td>nl NED</td>\n",
" <td>MF</td>\n",
" <td>AZ Alkmaar</td>\n",
" <td>AZ Alkmaar</td>\n",
" <td>24</td>\n",
" <td>1998</td>\n",
" <td>34</td>\n",
" <td>34</td>\n",
" <td>3046</td>\n",
" <td>...</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>Eredivisie</td>\n",
" <td>2022-2023</td>\n",
" <td>Reijnders</td>\n",
" <td>T</td>\n",
" <td>Tijjani Reijnders</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Luvumbo</th>\n",
" <td>36</td>\n",
" <td>ao ANG</td>\n",
" <td>FW,MF</td>\n",
" <td>Cagliari</td>\n",
" <td>Cagliari</td>\n",
" <td>20</td>\n",
" <td>2002</td>\n",
" <td>36</td>\n",
" <td>15</td>\n",
" <td>1560</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Serie-B</td>\n",
" <td>2022-2023</td>\n",
" <td>Zito</td>\n",
" <td>Z</td>\n",
" <td>Zito</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Retegui</th>\n",
" <td>37</td>\n",
" <td>it ITA</td>\n",
" <td>FW</td>\n",
" <td>Tigre</td>\n",
" <td>Tigre</td>\n",
" <td>23</td>\n",
" <td>1999</td>\n",
" <td>21</td>\n",
" <td>20</td>\n",
" <td>1790</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>Primera-Division</td>\n",
" <td>2022-2023</td>\n",
" <td>Retegui</td>\n",
" <td>M</td>\n",
" <td>Mateo Retegui</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fabbian</th>\n",
" <td>38</td>\n",
" <td>it ITA</td>\n",
" <td>MF</td>\n",
" <td>US Reggina</td>\n",
" <td>US Reggina</td>\n",
" <td>19</td>\n",
" <td>2003</td>\n",
" <td>36</td>\n",
" <td>34</td>\n",
" <td>2827</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>Serie-B</td>\n",
" <td>2022-2023</td>\n",
" <td>Fabbian</td>\n",
" <td>G</td>\n",
" <td>Giovanni Fabbian</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Beltran L.</th>\n",
" <td>39</td>\n",
" <td>ar ARG</td>\n",
" <td>FW</td>\n",
" <td>River Plate</td>\n",
" <td>River Plate</td>\n",
" <td>21</td>\n",
" <td>2001</td>\n",
" <td>25</td>\n",
" <td>16</td>\n",
" <td>1371</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>Primera-Division</td>\n",
" <td>2022-2023</td>\n",
" <td>Beltran</td>\n",
" <td>L</td>\n",
" <td>Lucas Beltrán</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Azzi</th>\n",
" <td>40</td>\n",
" <td>br BRA</td>\n",
" <td>DF,MF</td>\n",
" <td>Cagliari</td>\n",
" <td>Cagliari</td>\n",
" <td>28</td>\n",
" <td>1994</td>\n",
" <td>16</td>\n",
" <td>13</td>\n",
" <td>1144</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Serie-B</td>\n",
" <td>2022-2023</td>\n",
" <td>Azzi</td>\n",
" <td>P</td>\n",
" <td>Paulo Azzi</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Nandez</th>\n",
" <td>41</td>\n",
" <td>uy URU</td>\n",
" <td>MF,FW</td>\n",
" <td>Cagliari</td>\n",
" <td>Cagliari</td>\n",
" <td>26</td>\n",
" <td>1995</td>\n",
" <td>33</td>\n",
" <td>30</td>\n",
" <td>2539</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Serie-B</td>\n",
" <td>2022-2023</td>\n",
" <td>Nandez</td>\n",
" <td>N</td>\n",
" <td>Nahitan Nández</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Pavoletti</th>\n",
" <td>42</td>\n",
" <td>it ITA</td>\n",
" <td>FW,MF</td>\n",
" <td>Cagliari</td>\n",
" <td>Cagliari</td>\n",
" <td>33</td>\n",
" <td>1988</td>\n",
" <td>23</td>\n",
" <td>10</td>\n",
" <td>989</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Serie-B</td>\n",
" <td>2022-2023</td>\n",
" <td>Pavoletti</td>\n",
" <td>L</td>\n",
" <td>Leonardo Pavoletti</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Makoumbou</th>\n",
" <td>43</td>\n",
" <td>cg CGO</td>\n",
" <td>MF</td>\n",
" <td>Cagliari</td>\n",
" <td>Cagliari</td>\n",
" <td>24</td>\n",
" <td>1998</td>\n",
" <td>36</td>\n",
" <td>33</td>\n",
" <td>2981</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Serie-B</td>\n",
" <td>2022-2023</td>\n",
" <td>Makoumbou</td>\n",
" <td>A</td>\n",
" <td>Antoine Makoumbou</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Dossena</th>\n",
" <td>44</td>\n",
" <td>it ITA</td>\n",
" <td>DF</td>\n",
" <td>Cagliari</td>\n",
" <td>Cagliari</td>\n",
" <td>23</td>\n",
" <td>1998</td>\n",
" <td>23</td>\n",
" <td>19</td>\n",
" <td>1703</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Serie-B</td>\n",
" <td>2022-2023</td>\n",
" <td>Dossena</td>\n",
" <td>A</td>\n",
" <td>Alberto Dossena</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Strootman</th>\n",
" <td>45</td>\n",
" <td>nl NED</td>\n",
" <td>MF</td>\n",
" <td>Genoa</td>\n",
" <td>Genoa</td>\n",
" <td>32</td>\n",
" <td>1990</td>\n",
" <td>30</td>\n",
" <td>25</td>\n",
" <td>2229</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Serie-B</td>\n",
" <td>2022-2023</td>\n",
" <td>Strootman</td>\n",
" <td>K</td>\n",
" <td>Kevin Strootman</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Bani</th>\n",
" <td>46</td>\n",
" <td>it ITA</td>\n",
" <td>DF</td>\n",
" <td>Genoa</td>\n",
" <td>Genoa</td>\n",
" <td>28</td>\n",
" <td>1993</td>\n",
" <td>33</td>\n",
" <td>31</td>\n",
" <td>2551</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Serie-B</td>\n",
" <td>2022-2023</td>\n",
" <td>Bani</td>\n",
" <td>M</td>\n",
" <td>Mattia Bani</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Frendrup</th>\n",
" <td>47</td>\n",
" <td>dk DEN</td>\n",
" <td>MF</td>\n",
" <td>Genoa</td>\n",
" <td>Genoa</td>\n",
" <td>21</td>\n",
" <td>2001</td>\n",
" <td>37</td>\n",
" <td>32</td>\n",
" <td>2921</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Serie-B</td>\n",
" <td>2022-2023</td>\n",
" <td>Frendrup</td>\n",
" <td>M</td>\n",
" <td>Morten Frendrup</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sabelli</th>\n",
" <td>48</td>\n",
" <td>it ITA</td>\n",
" <td>DF,MF</td>\n",
" <td>Genoa</td>\n",
" <td>Genoa</td>\n",
" <td>29</td>\n",
" <td>1993</td>\n",
" <td>30</td>\n",
" <td>29</td>\n",
" <td>2514</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>Serie-B</td>\n",
" <td>2022-2023</td>\n",
" <td>Sabelli</td>\n",
" <td>S</td>\n",
" <td>Stefano Sabelli</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>D</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Caso</th>\n",
" <td>49</td>\n",
" <td>it ITA</td>\n",
" <td>FW,MF</td>\n",
" <td>Frosinone</td>\n",
" <td>Frosinone</td>\n",
" <td>23</td>\n",
" <td>1998</td>\n",
" <td>35</td>\n",
" <td>23</td>\n",
" <td>1890</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>Serie-B</td>\n",
" <td>2022-2023</td>\n",
" <td>Caso</td>\n",
" <td>G</td>\n",
" <td>Giuseppe Caso</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>A</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Baez</th>\n",
" <td>50</td>\n",
" <td>uy URU</td>\n",
" <td>FW</td>\n",
" <td>Frosinone</td>\n",
" <td>Frosinone</td>\n",
" <td>27</td>\n",
" <td>1995</td>\n",
" <td>17</td>\n",
" <td>5</td>\n",
" <td>667</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>Serie-B</td>\n",
" <td>2022-2023</td>\n",
" <td>Baez</td>\n",
" <td>J</td>\n",
" <td>Jaime Báez</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>C</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Mulattieri</th>\n",
" <td>51</td>\n",
" <td>it ITA</td>\n",
" <td>FW</td>\n",
" <td>Frosinone</td>\n",
" <td>Frosinone</td>\n",
" <td>21</td>\n",
" <td>2000</td>\n",
" <td>29</td>\n",
" <td>15</td>\n",
" <td>1502</td>\n",
" <td>...</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>Serie-B</td>\n",
" <td>2022-2023</td>\n",
" <td>Mulattieri</td>\n",
" <td>S</td>\n",
" <td>Samuele Mulattieri</td>\n",
" <td>6</td>\n",
" <td>0.3</td>\n",
" <td>A</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>52 rows × 384 columns</p>\n",
"</div>"
],
"text/plain": [
" Unnamed: 0 nationality position team \\\n",
"player \n",
"Kolasinac 0 ba BIH DF Marseille \n",
"Freuler 1 ch SUI MF Nott'ham Forest \n",
"Karlsson 2 se SWE FW AZ Alkmaar \n",
"Kristiansen 3 dk DEN DF Leicester City \n",
"Mina 4 co COL DF Everton \n",
"Monterisi 5 it ITA DF Frosinone \n",
"Pavard 6 fr FRA DF Bayern Munich \n",
"Thuram 7 fr FRA FW M'Gladbach \n",
"Klaassen 8 nl NED MF Ajax \n",
"Sanchez 9 cl CHI FW,MF Marseille \n",
"Weah 10 us USA DF,FW Lille \n",
"Guendouzi 11 fr FRA MF Marseille \n",
"Kamada 12 jp JPN MF Eint Frankfurt \n",
"Chukwueze 13 ng NGA FW,MF Villarreal \n",
"Pulisic 14 us USA FW,DF Chelsea \n",
"Loftus-Cheek 15 eng ENG MF,DF Chelsea \n",
"Lindstrom 16 dk DEN MF,FW Eint Frankfurt \n",
"Cajuste 17 se SWE MF Reims \n",
"Cheddira 18 ma MAR FW Bari \n",
"Lapadula 19 pe PER FW Cagliari \n",
"Kristensen 20 dk DEN DF Leeds United \n",
"Azmoun 21 ir IRN FW,MF Leverkusen \n",
"Renato Sanches 22 pt POR MF Paris S-G \n",
"N'dicka 23 fr FRA DF Eint Frankfurt \n",
"Aouar 24 dz ALG MF Lyon \n",
"Pedersen 25 no NOR DF Feyenoord \n",
"Castillejo 26 es ESP FW,MF Valencia \n",
"Lucca 27 it ITA FW,MF Ajax \n",
"Folorunsho 28 ng NGA MF,FW Bari \n",
"Gudmundsson A. 29 is ISL MF,FW Genoa \n",
"Bakker 30 nl NED DF,MF Leverkusen \n",
"Martin 31 es ESP DF Mainz 05 \n",
"Dragusin 32 ro ROU DF Genoa \n",
"Viti 33 it ITA DF Nice \n",
"Beukema 34 nl NED DF AZ Alkmaar \n",
"Reijnders 35 nl NED MF AZ Alkmaar \n",
"Luvumbo 36 ao ANG FW,MF Cagliari \n",
"Retegui 37 it ITA FW Tigre \n",
"Fabbian 38 it ITA MF US Reggina \n",
"Beltran L. 39 ar ARG FW River Plate \n",
"Azzi 40 br BRA DF,MF Cagliari \n",
"Nandez 41 uy URU MF,FW Cagliari \n",
"Pavoletti 42 it ITA FW,MF Cagliari \n",
"Makoumbou 43 cg CGO MF Cagliari \n",
"Dossena 44 it ITA DF Cagliari \n",
"Strootman 45 nl NED MF Genoa \n",
"Bani 46 it ITA DF Genoa \n",
"Frendrup 47 dk DEN MF Genoa \n",
"Sabelli 48 it ITA DF,MF Genoa \n",
"Caso 49 it ITA FW,MF Frosinone \n",
"Baez 50 uy URU FW Frosinone \n",
"Mulattieri 51 it ITA FW Frosinone \n",
"\n",
" team.1 age birth_year games games_starts \\\n",
"player \n",
"Kolasinac Marseille 29 1993 33 26 \n",
"Freuler Nott'ham Forest 30 1992 28 24 \n",
"Karlsson AZ Alkmaar 24 1998 23 21 \n",
"Kristiansen Leicester City 19 2002 12 11 \n",
"Mina Everton 27 1994 7 7 \n",
"Monterisi Frosinone 20 2001 11 6 \n",
"Pavard Bayern Munich 26 1996 30 27 \n",
"Thuram M'Gladbach 24 1997 30 28 \n",
"Klaassen Ajax 29 1993 33 21 \n",
"Sanchez Marseille 33 1988 35 32 \n",
"Weah Lille 22 2000 29 18 \n",
"Guendouzi Marseille 23 1999 33 25 \n",
"Kamada Eint Frankfurt 25 1996 32 25 \n",
"Chukwueze Villarreal 23 1999 37 27 \n",
"Pulisic Chelsea 23 1998 24 8 \n",
"Loftus-Cheek Chelsea 26 1996 25 19 \n",
"Lindstrom Eint Frankfurt 22 2000 27 22 \n",
"Cajuste Reims 22 1999 31 14 \n",
"Cheddira Bari 24 1998 31 30 \n",
"Lapadula Cagliari 32 1990 36 33 \n",
"Kristensen Leeds United 25 1997 26 21 \n",
"Azmoun Leverkusen 27 1995 23 8 \n",
"Renato Sanches Paris S-G 24 1997 23 6 \n",
"N'dicka Eint Frankfurt 22 1999 30 30 \n",
"Aouar Lyon 24 1998 16 6 \n",
"Pedersen Feyenoord 22 2000 29 25 \n",
"Castillejo Valencia 27 1995 25 17 \n",
"Lucca Ajax 21 2000 14 0 \n",
"Folorunsho Bari 24 1998 27 25 \n",
"Gudmundsson A. Genoa 25 1997 36 32 \n",
"Bakker Leverkusen 22 2000 28 19 \n",
"Martin Mainz 05 25 1997 28 20 \n",
"Dragusin Genoa 20 2002 38 37 \n",
"Viti Nice 20 2002 9 7 \n",
"Beukema AZ Alkmaar 23 1998 26 24 \n",
"Reijnders AZ Alkmaar 24 1998 34 34 \n",
"Luvumbo Cagliari 20 2002 36 15 \n",
"Retegui Tigre 23 1999 21 20 \n",
"Fabbian US Reggina 19 2003 36 34 \n",
"Beltran L. River Plate 21 2001 25 16 \n",
"Azzi Cagliari 28 1994 16 13 \n",
"Nandez Cagliari 26 1995 33 30 \n",
"Pavoletti Cagliari 33 1988 23 10 \n",
"Makoumbou Cagliari 24 1998 36 33 \n",
"Dossena Cagliari 23 1998 23 19 \n",
"Strootman Genoa 32 1990 30 25 \n",
"Bani Genoa 28 1993 33 31 \n",
"Frendrup Genoa 21 2001 37 32 \n",
"Sabelli Genoa 29 1993 30 29 \n",
"Caso Frosinone 23 1998 35 23 \n",
"Baez Frosinone 27 1995 17 5 \n",
"Mulattieri Frosinone 21 2000 29 15 \n",
"\n",
" minutes ... vs_team_pens_conceded vs_team_own_goals \\\n",
"player ... \n",
"Kolasinac 2214 ... 7 6 \n",
"Freuler 2161 ... 6 2 \n",
"Karlsson 1777 ... 3 3 \n",
"Kristiansen 892 ... 6 2 \n",
"Mina 594 ... 2 2 \n",
"Monterisi 615 ... 0 2 \n",
"Pavard 2431 ... 5 2 \n",
"Thuram 2513 ... 6 0 \n",
"Klaassen 2046 ... 5 0 \n",
"Sanchez 2679 ... 7 6 \n",
"Weah 1748 ... 12 0 \n",
"Guendouzi 2108 ... 7 6 \n",
"Kamada 2265 ... 6 2 \n",
"Chukwueze 2339 ... 7 2 \n",
"Pulisic 821 ... 3 1 \n",
"Loftus-Cheek 1536 ... 3 1 \n",
"Lindstrom 1679 ... 6 2 \n",
"Cajuste 1530 ... 8 0 \n",
"Cheddira 2495 ... 0 2 \n",
"Lapadula 2882 ... 0 0 \n",
"Kristensen 1960 ... 3 3 \n",
"Azmoun 927 ... 7 0 \n",
"Renato Sanches 717 ... 7 3 \n",
"N'dicka 2692 ... 6 2 \n",
"Aouar 526 ... 8 2 \n",
"Pedersen 2117 ... 3 4 \n",
"Castillejo 1362 ... 8 2 \n",
"Lucca 150 ... 5 0 \n",
"Folorunsho 1995 ... 0 2 \n",
"Gudmundsson A. 2696 ... 0 0 \n",
"Bakker 1659 ... 7 0 \n",
"Martin 1847 ... 6 0 \n",
"Dragusin 3375 ... 0 0 \n",
"Viti 634 ... 6 1 \n",
"Beukema 2198 ... 3 3 \n",
"Reijnders 3046 ... 3 3 \n",
"Luvumbo 1560 ... 0 0 \n",
"Retegui 1790 ... 0 1 \n",
"Fabbian 2827 ... 0 3 \n",
"Beltran L. 1371 ... 0 1 \n",
"Azzi 1144 ... 0 0 \n",
"Nandez 2539 ... 0 0 \n",
"Pavoletti 989 ... 0 0 \n",
"Makoumbou 2981 ... 0 0 \n",
"Dossena 1703 ... 0 0 \n",
"Strootman 2229 ... 0 0 \n",
"Bani 2551 ... 0 0 \n",
"Frendrup 2921 ... 0 0 \n",
"Sabelli 2514 ... 0 0 \n",
"Caso 1890 ... 0 2 \n",
"Baez 667 ... 0 2 \n",
"Mulattieri 1502 ... 0 2 \n",
"\n",
" league season surname initial \\\n",
"player \n",
"Kolasinac Ligue-1 2022-2023 Kolasinac S \n",
"Freuler Premier-League 2022-2023 Freuler R \n",
"Karlsson Eredivisie 2022-2023 Karlsson J \n",
"Kristiansen Premier-League 2022-2023 Kristiansen V \n",
"Mina Premier-League 2022-2023 Mina Y \n",
"Monterisi Serie-B 2022-2023 Monterisi I \n",
"Pavard Bundesliga 2022-2023 Pavard B \n",
"Thuram Bundesliga 2022-2023 Thuram M \n",
"Klaassen Eredivisie 2022-2023 Klaassen D \n",
"Sanchez Ligue-1 2022-2023 Sanchez A \n",
"Weah Ligue-1 2022-2023 Weah T \n",
"Guendouzi Ligue-1 2022-2023 Guendouzi M \n",
"Kamada Bundesliga 2022-2023 Kamada D \n",
"Chukwueze La-Liga 2022-2023 Chukwueze S \n",
"Pulisic Premier-League 2022-2023 Pulisic C \n",
"Loftus-Cheek Premier-League 2022-2023 Loftus-Cheek R \n",
"Lindstrom Bundesliga 2022-2023 Lindstrm J \n",
"Cajuste Ligue-1 2022-2023 Cajuste J \n",
"Cheddira Serie-B 2022-2023 Cheddira W \n",
"Lapadula Serie-B 2022-2023 Lapadula G \n",
"Kristensen Premier-League 2022-2023 Nissen R \n",
"Azmoun Bundesliga 2022-2023 Azmoun S \n",
"Renato Sanches Ligue-1 2022-2023 Sanches R \n",
"N'dicka Bundesliga 2022-2023 NDicka O \n",
"Aouar Ligue-1 2022-2023 Aouar H \n",
"Pedersen Eredivisie 2022-2023 Pedersen M \n",
"Castillejo La-Liga 2022-2023 Castillejo S \n",
"Lucca Eredivisie 2022-2023 Lucca L \n",
"Folorunsho Serie-B 2022-2023 Folorunsho M \n",
"Gudmundsson A. Serie-B 2022-2023 Gumundsson A \n",
"Bakker Bundesliga 2022-2023 Bakker M \n",
"Martin Bundesliga 2022-2023 Martin A \n",
"Dragusin Serie-B 2022-2023 Dragusin R \n",
"Viti Ligue-1 2022-2023 Viti M \n",
"Beukema Eredivisie 2022-2023 Beukema S \n",
"Reijnders Eredivisie 2022-2023 Reijnders T \n",
"Luvumbo Serie-B 2022-2023 Zito Z \n",
"Retegui Primera-Division 2022-2023 Retegui M \n",
"Fabbian Serie-B 2022-2023 Fabbian G \n",
"Beltran L. Primera-Division 2022-2023 Beltran L \n",
"Azzi Serie-B 2022-2023 Azzi P \n",
"Nandez Serie-B 2022-2023 Nandez N \n",
"Pavoletti Serie-B 2022-2023 Pavoletti L \n",
"Makoumbou Serie-B 2022-2023 Makoumbou A \n",
"Dossena Serie-B 2022-2023 Dossena A \n",
"Strootman Serie-B 2022-2023 Strootman K \n",
"Bani Serie-B 2022-2023 Bani M \n",
"Frendrup Serie-B 2022-2023 Frendrup M \n",
"Sabelli Serie-B 2022-2023 Sabelli S \n",
"Caso Serie-B 2022-2023 Caso G \n",
"Baez Serie-B 2022-2023 Baez J \n",
"Mulattieri Serie-B 2022-2023 Mulattieri S \n",
"\n",
" name vote_avg vote_std r \n",
"player \n",
"Kolasinac Sead Kolašinac 6 0.3 D \n",
"Freuler Remo Freuler 6 0.3 C \n",
"Karlsson Jesper Karlsson 6 0.3 A \n",
"Kristiansen Victor Bernth Kristiansen 6 0.3 D \n",
"Mina Yerry Mina 6 0.3 D \n",
"Monterisi Ilario Monterisi 6 0.3 D \n",
"Pavard Benjamin Pavard 6 0.3 D \n",
"Thuram Marcus Thuram 6 0.3 A \n",
"Klaassen Davy Klaassen 6 0.3 C \n",
"Sanchez Alexis Sánchez 6 0.3 A \n",
"Weah Timothy Weah 6 0.3 C \n",
"Guendouzi Mattéo Guendouzi 6 0.3 C \n",
"Kamada Daichi Kamada 6 0.3 C \n",
"Chukwueze Samuel Chukwueze 6 0.3 C \n",
"Pulisic Christian Pulisic 6 0.3 C \n",
"Loftus-Cheek Ruben Loftus-Cheek 6 0.3 C \n",
"Lindstrom Jesper Lindstrøm 6 0.3 C \n",
"Cajuste Jens Cajuste 6 0.3 C \n",
"Cheddira Walid Cheddira 6 0.3 A \n",
"Lapadula Gianluca Lapadula 6 0.3 A \n",
"Kristensen Rasmus Nissen 6 0.3 D \n",
"Azmoun Sardar Azmoun 6 0.3 A \n",
"Renato Sanches Renato Sanches 6 0.3 C \n",
"N'dicka Obite N'Dicka 6 0.3 D \n",
"Aouar Houssem Aouar 6 0.3 C \n",
"Pedersen Marcus Pedersen 6 0.3 D \n",
"Castillejo Samu Castillejo 6 0.3 C \n",
"Lucca Lorenzo Lucca 6 0.3 A \n",
"Folorunsho Michael Folorunsho 6 0.3 C \n",
"Gudmundsson A. Albert Guðmundsson 6 0.3 C \n",
"Bakker Mitchel Bakker 6 0.3 D \n",
"Martin Aarón Martín 6 0.3 D \n",
"Dragusin Radu Drăgușin 6 0.3 D \n",
"Viti Mattia Viti 6 0.3 D \n",
"Beukema Sam Beukema 6 0.3 D \n",
"Reijnders Tijjani Reijnders 6 0.3 C \n",
"Luvumbo Zito 6 0.3 A \n",
"Retegui Mateo Retegui 6 0.3 A \n",
"Fabbian Giovanni Fabbian 6 0.3 C \n",
"Beltran L. Lucas Beltrán 6 0.3 A \n",
"Azzi Paulo Azzi 6 0.3 D \n",
"Nandez Nahitan Nández 6 0.3 C \n",
"Pavoletti Leonardo Pavoletti 6 0.3 A \n",
"Makoumbou Antoine Makoumbou 6 0.3 C \n",
"Dossena Alberto Dossena 6 0.3 C \n",
"Strootman Kevin Strootman 6 0.3 C \n",
"Bani Mattia Bani 6 0.3 D \n",
"Frendrup Morten Frendrup 6 0.3 C \n",
"Sabelli Stefano Sabelli 6 0.3 D \n",
"Caso Giuseppe Caso 6 0.3 A \n",
"Baez Jaime Báez 6 0.3 C \n",
"Mulattieri Samuele Mulattieri 6 0.3 A \n",
"\n",
"[52 rows x 384 columns]"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rookies_data = pd.read_excel('rookies_stats/out_data/rookies_stats.xlsx', index_col = 1)\n",
"\n",
"rookies_data"
]
},
{
"cell_type": "markdown",
"id": "21fef3ae",
"metadata": {},
"source": [
"Players stats rework:\n",
"the current season stats are averaged (according to a calculated weight) with the past season data.\n",
"In case a player doesn't have past season data, a config file (affine_players) can be used to load the data from an affine player (past season), e.g. Doig affine to Lazovic.\n",
"In case, after this process, the player doesn't result in having a minimum amount of games, its stats are averaged with the average Serie A (defensive) player stat, depending on the games remaining to reach the minimum amount. This allows to use players who still haven't played a single game.\n",
"\n",
"These modified stats are used only for prediction, not for model traning.\n",
"\n",
"WEIGHT_0 = weight given to the current season in respect to the previous; if the player has a low amount of games this season, the weight is lowered\n",
"min_games = minimum games so that the players stats are not averaged with the avg Serie A player stats"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "6f8707b8",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" \n",
"Averaging players stats with past seasons:\n",
"Skorupski 1\n",
"Di Gregorio 0.9480249480249479\n",
"Meret 1\n",
"Provedel 1\n",
"Terracciano 1\n",
"Szczesny 1\n",
"Falcone 1\n",
"Milinkovic-Savic V. 1\n",
"Maignan 1\n",
"Montipo' 1\n",
"Rui Patricio 1\n",
"Consigli 0.8351648351648351\n",
"Musso 1\n",
"Carnesecchi 0.6820512820512821\n",
"Silvestri 1\n",
"Ochoa 1\n",
"Sportiello 1\n",
"Berisha 1\n",
"Perin 1\n",
"Cragno 1\n",
"Mirante 1\n",
"Sepe 1\n",
"Lamanna 1\n",
"Pegolo 1\n",
"Perilli 1\n",
"Padelli 1\n",
"Gollini 1\n",
"Perisan 1\n",
"Audero 1\n",
"Pinsoglio 1\n",
"Fiorillo 1\n",
"Cerofolini 1\n",
"Rossi F. 1\n",
"Ravaglia F. 1\n",
"Brancolini 1\n",
"Berardi A. 1\n",
"Gemello 1\n",
"Boer 1\n",
"Bagnolini 1\n",
"Svilar 1\n",
"Sorrentino A. 1\n",
"Dimarco 0.5314685314685313\n",
"Di Lorenzo 0.5530145530145528\n",
"Hernandez T. 0.548076923076923\n",
"Dumfries 0.5158371040723981\n",
"Carlos Augusto 0.6138461538461538\n",
"Schuurs 0.6820512820512818\n",
"Spinazzola 0.7869822485207099\n",
"Danilo 0.5530145530145528\n",
"Tomori 0.5314685314685313\n",
"Bastoni 0.6047745358090184\n",
"Buongiorno 0.5158371040723981\n",
"Pavard 0.20461538461538462 (rookie)\n",
"Biraghi 0.4428904428904428\n",
"Zappacosta 0.835164835164835\n",
"Mancini 0.5846153846153845\n",
"Darmian 0.6600496277915632\n",
"Martinez Quarta 0.5413105413105412\n",
"Posch 0.4871794871794871\n",
"Romagnoli S. 1\n",
"De Vrij 0.7578347578347576\n",
"Romagnoli 0.6018099547511311\n",
"Bremer 0.6820512820512818\n",
"Smalling 0.2740384615384615\n",
"Rrahmani 0.3023872679045092\n",
"Rodriguez R. 0.5846153846153845\n",
"Dragusin 0.5653846153846154 (rookie)\n",
"Vasquez 0.8593846153846153\n",
"Scalvini 0.6394230769230768\n",
"Holm 0.6138461538461539\n",
"Kristensen 0.0 (rookie)\n",
"Calabria 0.5846153846153845\n",
"Acerbi 0.3771712158808933\n",
"Cuadrado 0.29702233250620347\n",
"Marchizza 1\n",
"Bani 0.651048951048951 (rookie)\n",
"Kolasinac 0.651048951048951 (rookie)\n",
"Toljan 0.6600496277915632\n",
"Bakker 0.32884615384615384 (rookie)\n",
"Ruggeri 1\n",
"Ebuehi 0.5621301775147929\n",
"Mazzocchi 0.7578347578347576\n",
"Doig 0.5314685314685315\n",
"Gendrey 0.5530145530145528\n",
"Thiaw 0.8769230769230768\n",
"Mario Rui 0.6643356643356643\n",
"Milenkovic 0.7578347578347576\n",
"Kyriakopoulos 1\n",
"Kyriakopoulos 0.5291777188328912 (two seasons ago)\n",
"Casale 0.5039787798408487\n",
"Terracciano F. 1\n",
"Baschirotto 0.47401247401247393\n",
"Bijol 0.6394230769230768\n",
"Lucumi' 0.4428904428904428\n",
"Kristiansen 1 (rookie)\n",
"Beukema 0.8263313609467455 (rookie)\n",
"Faraoni 0.7625418060200667\n",
"Toloi 0.3653846153846154\n",
"Djimsiti 0.7307692307692307\n",
"Lazzari 0.31318681318681313\n",
"Lazaro 0.7625418060200667\n",
"Gallo 0.548076923076923\n",
"Bellanova 1\n",
"Mari' 0.6820512820512818\n",
"Erlic 0.7307692307692306\n",
"Bastoni S. 0.3230769230769231\n",
"Perez N. 0.6018099547511311\n",
"Pedersen 0.6350132625994694 (rookie)\n",
"Izzo 0.4871794871794871\n",
"D'ambrosio 0.8184615384615385\n",
"D'ambrosio 0.9202970414201184 (two seasons ago)\n",
"Luperto 0.5683760683760682\n",
"Florenzi 1\n",
"Florenzi 0.6089743589743589 (two seasons ago)\n",
"De Silvestri 0.9743589743589742\n",
"De Silvestri 0.4956416618947637 (two seasons ago)\n",
"Marusic 0.6200466200466198\n",
"Magnani 0.8525641025641024\n",
"N'dicka 0.40923076923076923 (rookie)\n",
"Augello 0.4977130977130977\n",
"Dawidowicz 0.8896321070234111\n",
"Caldirola 0.5657568238213398\n",
"Llorente D. 1\n",
"Parisi 0.37202797202797205\n",
"Cambiaso 0.5754807692307693\n",
"Bradaric 0.6600496277915632\n",
"Pongracic 1\n",
"Viti 1 (rookie)\n",
"Viti 0.4603846153846154 (two seasons ago)\n",
"Ostigard 1\n",
"Olivera 0.5846153846153845\n",
"Ebosele 1\n",
"Dodo' 0.4428904428904428\n",
"Hien 0.3653846153846154\n",
"Azzi 0.9591346153846154 (rookie)\n",
"Hysaj 0.42986425339366513\n",
"Juan Jesus 0.7794871794871795\n",
"Sabelli 0.5115384615384615 (rookie)\n",
"Hateboer 0.17194570135746606\n",
"Martin 0.5480769230769231 (rookie)\n",
"Mina 0.0 (rookie)\n",
"Calafiori 1 (two seasons ago)\n",
"Monterisi 1 (rookie)\n",
"Kalulu 0.17194570135746606\n",
"Vojvoda 0.3023872679045092\n",
"De Winter 0.876923076923077\n",
"De Winter 1 (two seasons ago)\n",
"Gatti 0.811965811965812\n",
"Birindelli 0.6600496277915632\n",
"Masina 0.0\n",
"Gyomber 0.7578347578347576\n",
"Alex Sandro 0.23384615384615384\n",
"Palomino 0.38974358974358975\n",
"Pellegrini Lu. 1\n",
"Pellegrini Lu. 0.8525641025641026 (two seasons ago)\n",
"Djidji 0.0\n",
"Ranieri L. 0.9743589743589742\n",
"Ranieri L. 0.35851413543721244 (two seasons ago)\n",
"Zortea 0.9207692307692308\n",
"Zortea 0.3762046521118139 (two seasons ago)\n",
"Pirola 0.6745562130177514\n",
"Lovato 1\n",
"Ismajli 0.4676923076923077\n",
"Obert 1 (two seasons ago)\n",
"Dossena 0.934113712374582 (rookie)\n",
"Patric 0.3247863247863248\n",
"Pezzella Giu. 1\n",
"Ferrari G. 0.2657342657342657\n",
"Venuti 0.18054298642533936\n",
"Karsdorp 0.6745562130177514\n",
"Kjaer 0.8597285067873303\n",
"Lykogiannis 0.5567765567765568\n",
"Walukiewicz 1\n",
"Walukiewicz 1 (two seasons ago)\n",
"Okoli 0.7221719457013575\n",
"Amione 0.23609467455621302\n",
"Hefti 0.7307692307692308 (two seasons ago)\n",
"Ehizibue 0.0\n",
"Rugani 0.6495726495726496\n",
"Rugani 1 (two seasons ago)\n",
"Goldaniga 0.26573426573426573 (two seasons ago)\n",
"Fazio 0.41758241758241765\n",
"Bereszynski 1\n",
"Bereszynski 0.2630769230769231 (two seasons ago)\n",
"Gunter 0.0\n",
"Soumaoro 0.0\n",
"Zanoli 0.0\n",
"Daniliuc 0.32478632478632474\n",
"Soppy 0.6138461538461538\n",
"Zima 0.3247863247863248\n",
"Haps 0.12276923076923077 (two seasons ago)\n",
"Coppola D. 0.46153846153846145\n",
"Cacace 0.9743589743589745\n",
"Cacace 1 (two seasons ago)\n",
"Sambia 0.13286713286713286\n",
"Guessand A. 1\n",
"Cabal 0.7972027972027971\n",
"Dermaku 0.0\n",
"Tonelli 0.0\n",
"Tonelli 0.20879120879120883 (two seasons ago)\n",
"De Sciglio 0.0\n",
"Bonifazi 0.0\n",
"Donati 0.0\n",
"Kumbulla 0.0\n",
"Celik 0.1217948717948718\n",
"Amey 0.0\n",
"Gila 0.0\n",
"Ebosse 0.14615384615384616\n",
"Bronn 0.0\n",
"Guarino 0.0\n",
"Carboni F. 1\n",
"Koopmeiners 0.6200466200466198\n",
"Zielinski 0.5530145530145528\n",
"Zaccagni 0.5846153846153845\n",
"Luis Alberto 0.5846153846153845\n",
"Pulisic 0.8951923076923077 (rookie)\n",
"Bonaventura 0.6820512820512818\n",
"Orsolini 0.6394230769230768\n",
"Calhanoglu 0.6200466200466198\n",
"Samardzic 0.5530145530145528\n",
"Felipe Anderson 0.5384615384615383\n",
"Politano 0.7578347578347576\n",
"Gudmundsson A. 0.5967948717948718 (rookie)\n",
"Candreva 0.501098901098901\n",
"Barella 0.5846153846153845\n",
"Rabiot 0.6394230769230768\n",
"Mkhitaryan 0.6600496277915632\n",
"Ferguson 0.6394230769230768\n",
"Frattesi 0.5115384615384616\n",
"Loftus-Cheek 0.8593846153846153 (rookie)\n",
"Colpani 0.7578347578347576\n",
"Cristante 0.5683760683760682\n",
"Strefezza 0.5846153846153845\n",
"Chukwueze 0.4977130977130977 (rookie)\n",
"Radonjic 0.7307692307692306\n",
"Reijnders 0.6319004524886878 (rookie)\n",
"Pasalic 0.4567307692307692\n",
"Aouar 0.9591346153846154 (rookie)\n",
"Bajrami 1\n",
"Vlasic 0.5158371040723981\n",
"Ederson D.s. 0.5846153846153845\n",
"Baldanzi 0.7869822485207099\n",
"Kamada 0.4795673076923077 (rookie)\n",
"Lindstrom 0.0 (rookie)\n",
"De Roon 0.5846153846153845\n",
"Pellegrini Lo. 0.3653846153846154\n",
"El Shaarawy 0.6047745358090184\n",
"Mandragora 0.7055702917771881\n",
"Malinovskyi 0.5115384615384615 (two seasons ago)\n",
"Kostic 0.395010395010395\n",
"De Ketelaere 0.6713942307692308\n",
"Pereyra 0.3438914027149321\n",
"Renato Sanches 0.26688963210702343 (rookie)\n",
"Pessina 0.5846153846153845\n",
"Guendouzi 0.46503496503496505 (rookie)\n",
"Zambo Anguissa 0.5683760683760682\n",
"Duda 1\n",
"Lovric 0.5530145530145528\n",
"Lazovic 0.38974358974358975\n",
"Duncan 0.7015384615384613\n",
"Gagliardini 1\n",
"Lobotka 0.5384615384615383\n",
"Fagioli 0.6745562130177514\n",
"Elmas 0.405982905982906\n",
"Messias 0.24553846153846154\n",
"Matheus Henrique 0.6820512820512818\n",
"Frendrup 0.5806652806652807 (rookie)\n",
"Ciurria 0.5683760683760682\n",
"Locatelli 0.6394230769230768\n",
"Ikone' 0.17715617715617715\n",
"Ilic 1\n",
"Ricci S. 0.6263736263736263\n",
"Saponara 0.5291777188328912\n",
"Vecino 0.4567307692307692\n",
"Pogba 0.9743589743589745\n",
"Barak 0.19487179487179487\n",
"Nandez 0.651048951048951 (rookie)\n",
"Strootman 0.5115384615384615 (rookie)\n",
"Klaassen 0.18601398601398603 (rookie)\n",
"Weah 0.7408488063660477 (rookie)\n",
"Marin 0.5314685314685313\n",
"Krunic 0.6354515050167223\n",
"Cataldi 0.5039787798408487\n",
"Paredes 0.8593846153846153\n",
"Freuler 0.32884615384615384 (rookie)\n",
"Kastanos 0.7307692307692306\n",
"Bennacer 0.0\n",
"Castrovilli 0.0\n",
"Miranchuk 0.2116710875331565\n",
"Harroui 0.4003344481605351\n",
"Aebischer 0.6394230769230768\n",
"Oudin 0.2828784119106699\n",
"Sottil 0.6495726495726496\n",
"Tameze 0.41476091476091476\n",
"Pobega 0.7692307692307692\n",
"Bove 0.6643356643356643\n",
"Coulibaly L. 0.08351648351648353\n",
"Blin 0.5846153846153845\n",
"Moro N. 0.5621301775147929\n",
"Fabbian 0.2557692307692308 (rookie)\n",
"Machin 0.0\n",
"Linetty 0.4567307692307692\n",
"Walace 0.5530145530145528\n",
"Castillejo 0.4910769230769231 (rookie)\n",
"Gaetano 0.3653846153846154\n",
"Rovella 0.4910769230769231\n",
"Lopez M. 0.10230769230769231\n",
"Gyasi 0.3507692307692308\n",
"Zalewski 0.3543123543123543\n",
"Bohinen 0.7307692307692307\n",
"Miretti 0.6495726495726495\n",
"Thorstvedt 0.4714640198511166\n",
"Fazzini 0.835164835164835\n",
"Makoumbou 0.5967948717948718 (rookie)\n",
"Folorunsho 0.7957264957264957 (rookie)\n",
"Grassi 0.5846153846153845\n",
"Baez 1 (rookie)\n",
"Sensi 0.10961538461538463\n",
"Maleh 0.9027149321266968\n",
"Adli 0.9743589743589745\n",
"Gonzalez J. 0.3340659340659341\n",
"Viola 1 (two seasons ago)\n",
"Bourabia 0.24885654885654884\n",
"Saelemaekers 0.20461538461538462\n",
"Maldini 0.0\n",
"Maggiore 0.7307692307692308\n",
"Kovalenko 0.17051282051282055\n",
"Romero L. 0.5115384615384616\n",
"Romero L. 1 (two seasons ago)\n",
"Asllani 0.4384615384615384\n",
"Vignato S. 1\n",
"Ranocchia F. 0.4384615384615385\n",
"Sulemana I. 0.9591346153846154\n",
"Adopo 1\n",
"Basic 0.0\n",
"Rog 0.0 (two seasons ago)\n",
"Nicolussi Caviglia 0.0\n",
"Obiang 0.0\n",
"Demme 0.0\n",
"Akpa Akpro 0.0\n",
"Akpa Akpro 0.0 (two seasons ago)\n",
"Urbanski 1\n",
"Volpato 0.4384615384615385\n",
"Volpato 1 (two seasons ago)\n",
"Pafundi 0.3653846153846154\n",
"Hrustic 0.0\n",
"Zerbin 0.2923076923076923\n",
"Carboni V. 1\n",
"Faticanti 0.0\n",
"Martinez L. 0.5384615384615383\n",
"Osimhen 0.6394230769230768\n",
"Rafael Leao 0.5846153846153845\n",
"Berardi 0.5621301775147929\n",
"Lukaku 0.6138461538461538\n",
"Vlahovic 0.6495726495726495\n",
"Dybala 0.5846153846153845\n",
"Giroud 0.5314685314685313\n",
"Thuram 0.7161538461538461 (rookie)\n",
"Immobile 0.6600496277915632\n",
"Kvaratskhelia 0.5158371040723981\n",
"Retegui 1 (rookie)\n",
"Scamacca 0.3410256410256411 (two seasons ago)\n",
"Lookman 0.6600496277915632\n",
"Lauriente' 0.7307692307692306\n",
"Chiesa 0.974358974358974\n",
"Dia 0.3543123543123543\n",
"Zapata D. 0.6138461538461538\n",
"Gonzalez N. 0.7307692307692307\n",
"Sanabria 0.3543123543123543\n",
"Arnautovic 0.7307692307692307\n",
"Nzola 0.6930521091811415\n",
"Milik 0.6495726495726495\n",
"Pinamonti 0.6394230769230768\n",
"Zirkzee 1\n",
"Ngonge 1\n",
"Cheddira 0.5940446650124069 (rookie)\n",
"Simeone 0.7015384615384613\n",
"Sanchez 0.2630769230769231 (rookie)\n",
"Beltran L. 0.8593846153846153 (rookie)\n",
"Belotti 0.5657568238213398\n",
"Muriel 0.40318302387267907\n",
"Luvumbo 0.0 (rookie)\n",
"Lapadula 0.0 (rookie)\n",
"Caprari 0.316008316008316\n",
"Jovic 0.198014888337469\n",
"Abraham 0.0\n",
"Kouame' 0.521978021978022\n",
"Caputo 0.6959706959706958\n",
"Raspadori 0.8184615384615382\n",
"Colombo 0.46503496503496505\n",
"Soule' 1\n",
"Petagna 0.396029776674938\n",
"Bonazzoli 0.7673076923076924\n",
"Deulofeu 0.0\n",
"Pedro 0.405982905982906\n",
"Brekalo 1\n",
"Shomurodov 1\n",
"Azmoun 0.4003344481605351 (rookie)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Karlsson 0.6672240802675585 (rookie)\n",
"Thauvin 1\n",
"Cambiaghi 0.6263736263736263\n",
"Henry 0.1826923076923077\n",
"Jovane 0.0 (two seasons ago)\n",
"Mota 0.7055702917771881\n",
"Mulattieri 0.5291777188328912 (rookie)\n",
"Lucca 1 (rookie)\n",
"Kean 0.41758241758241765\n",
"Karamoh 0.6959706959706958\n",
"Djuric 0.6263736263736263\n",
"Banda 0.3247863247863248\n",
"Sansone 0.3410256410256411\n",
"Success 0.5846153846153845\n",
"Defrel 0.32478632478632474\n",
"Piccoli 1\n",
"Piccoli 1 (two seasons ago)\n",
"Caso 0.5261538461538462 (rookie)\n",
"Pellegri 0.9743589743589742\n",
"Cancellieri 1\n",
"Seck 0.6153846153846154\n",
"Botheim 0.6263736263736263\n",
"Pavoletti 0.5337792642140469 (rookie)\n",
"Ekuban 0.38974358974358975 (two seasons ago)\n",
"Alvarez A. 0.0\n",
"Destro 0.6877828054298643\n",
"Ceide 0.46153846153846145\n",
"Ake' M. 0.0 (two seasons ago)\n",
"Braaf 0.0\n",
"Kallon 0.0\n",
"Kaio Jorge 0.0\n",
"Kaio Jorge 0.0 (two seasons ago)\n",
"Vivaldo 0.0\n",
"Players with low quantity of games:\n",
"Kristiansen 0.8333333333333334\n",
"Natan 0.5\n",
"Carboni A. 0.33333333333333337\n",
"Azzi 0.908253205128205\n",
"Kayode 0.6666666666666667\n",
"Calafiori 0.6666666666666667\n",
"De Winter 0.8717948717948717\n",
"Hatzidiakos 0.6666666666666667\n",
"Wieteska 0.6666666666666667\n",
"Lirola 0.16666666666666663\n",
"Kabasele 0.6666666666666667\n",
"Obert 0.8333333333333334\n",
"Tressoldi 0.0\n",
"Touba 0.33333333333333337\n",
"Sazonov 0.33333333333333337\n",
"Walukiewicz 0.8333333333333334\n",
"Vogliacco 0.0\n",
"Rugani 0.7421652421652423\n",
"Pereira P. 0.5\n",
"Cacace 0.7008547008547008\n",
"Guessand A. 0.16666666666666663\n",
"Cabal 0.7703962703962706\n",
"Missori 0.16666666666666663\n",
"Bisseck 0.16666666666666663\n",
"Corazza 0.6666666666666667\n",
"Kristensen T. 0.5\n",
"Dermaku 0.16666666666666663\n",
"Capradossi 0.0\n",
"Bettella 0.0\n",
"Amey 0.0\n",
"Cittadini 0.0\n",
"Gila 0.6666666666666667\n",
"Guarino 0.0\n",
"Carboni F. 0.33333333333333337\n",
"Smajlovic 0.0\n",
"Matturro 0.33333333333333337\n",
"N'guessan 0.0\n",
"Mateus Lusuardi 0.0\n",
"Kalaj 0.0\n",
"Pierozzi 0.0\n",
"Huijsen 0.0\n",
"Bonfanti 0.0\n",
"Pellegrino 0.0\n",
"Comuzzo 0.0\n",
"Bartesaghi 0.33333333333333337\n",
"Aouar 0.908253205128205\n",
"Gomez 0.16666666666666663\n",
"Pogba 0.3504273504273504\n",
"Musah 0.8333333333333334\n",
"Reinier 0.0\n",
"Mboula 0.5\n",
"Jankto 0.5\n",
"Garritano 0.8333333333333334\n",
"Iling Junior 0.0\n",
"Cajuste 0.0\n",
"Machin 0.0\n",
"Gaetano 0.9070512820512819\n",
"Kutlu 0.5\n",
"Payero 0.6666666666666667\n",
"Mancosu 0.0\n",
"Adli 0.3504273504273504\n",
"Serdar 0.6666666666666667\n",
"Suslov 0.6666666666666667\n",
"Viola 0.33333333333333337\n",
"Racic 0.33333333333333337\n",
"Romero L. 0.5737179487179487\n",
"Vignato S. 0.8333333333333334\n",
"Sulemana I. 0.908253205128205\n",
"Infantino 0.6666666666666667\n",
"Tchatchoua 0.0\n",
"Quina 0.33333333333333337\n",
"Adopo 0.5\n",
"Tchaouna 0.6666666666666667\n",
"Amatucci 0.16666666666666663\n",
"Gelli 0.6666666666666667\n",
"Legowski 0.0\n",
"Prati 0.33333333333333337\n",
"Lulic K. 0.0\n",
"Jagiello 0.0\n",
"Akpa Akpro 0.0\n",
"Urbanski 0.33333333333333337\n",
"Volpato 0.7282051282051283\n",
"Pafundi 0.9070512820512819\n",
"Bondo 0.16666666666666663\n",
"Carboni V. 0.33333333333333337\n",
"Faticanti 0.0\n",
"Gineitis 0.16666666666666663\n",
"Belardinelli 0.0\n",
"Zarraga 0.33333333333333337\n",
"Camara E. 0.0\n",
"Lipani 0.0\n",
"Joselito 0.0\n",
"Pagano 0.5\n",
"Ibrahimovic A. 0.16666666666666663\n",
"Toure' E. 0.0\n",
"Soule' 0.8333333333333334\n",
"Jovane 0.0\n",
"Davis K. 0.0\n",
"Brenner 0.0\n",
"Piccoli 0.8333333333333334\n",
"Kvernadze 0.33333333333333337\n",
"Van Hooijdonk 0.5\n",
"Maric 0.8333333333333334\n",
"Ikwuemesi 0.6666666666666667\n",
"Yildiz 0.0\n",
"Cruz 0.16666666666666663\n",
"Puscas 0.33333333333333337\n",
"Ake' M. 0.6666666666666667\n",
"Vivaldo 0.0\n",
"Bidaoui 0.0\n",
"Burnete 0.16666666666666663\n",
"Corfitzen 0.16666666666666663\n",
"Stewart 0.16666666666666663\n"
]
}
],
"source": [
"#for i in range(players.columns.shape[0]):\n",
"# print(str(i) + ' - ' + players.columns[i])\n",
"\n",
"cols_toadapt = players.columns[9:]\n",
"cols_toadapt_rookies = rookies_data.columns.intersection(cols_toadapt)\n",
"\n",
"players = players_orig.copy()\n",
"\n",
"min_games = 6\n",
"\n",
"current_season_games = max(10, max(players_orig['games']))\n",
"\n",
"# weight_0 as function of current_season_games --> 1 as match day reachs 30 ? \n",
"WEIGHT_0_same_team = (1 - (1 - 0.7) * (30 - current_season_games) / (38 - 12)) # 0.7\n",
"WEIGHT_0_different_team = (1 - (1 - 0.75) * (30 - current_season_games) / (38 - 12)) # 0.75\n",
"WEIGHT_mul_gk = 2\n",
"\n",
"rcsv = pd.read_csv('config/affine_players.txt') \n",
"affine_players = pd.DataFrame(rcsv)\n",
"affine_players = affine_players.set_index('player')\n",
"\n",
"\n",
"def calc_weight(games_curr, games_old, same_team = 1, maxgames = current_season_games):\n",
" if(same_team):\n",
" weight_0 = WEIGHT_0_same_team\n",
" else:\n",
" weight_0 = WEIGHT_0_different_team\n",
"\n",
" weight = weight_0 * (games_curr / maxgames) / (max(games_old, 1) / 38)\n",
" weight = min(weight, 1)\n",
"\n",
" return abs(weight)\n",
"\n",
"print(' ')\n",
"print('Averaging players stats with past seasons:')\n",
"\n",
"\n",
"for i in range(players.shape[0]):\n",
" p = players.index[i]\n",
" \n",
"\n",
" if(p in players_old.index or p in affine_players.index):\n",
" p_ = p\n",
" affine = 0\n",
" \n",
" if(p in affine_players.index):\n",
" affine = 1\n",
" p_ = affine_players.loc[p]['alike']\n",
" \n",
" print(p + ' affine to ' + p_)\n",
" \n",
" if(players.loc[p]['r'] == 'P'):\n",
" weight = calc_weight(players.loc[p]['gk_games'], players_old.loc[p_]['gk_games'], affine == 1 or players.loc[p]['team'] == players_old.loc[p]['team'])\n",
" weight *= WEIGHT_mul_gk\n",
" weight = min(weight, 1)\n",
" else:\n",
" weight = calc_weight(players.loc[p]['games'], players_old.loc[p_]['games'], affine == 1 or players.loc[p]['team'] == players_old.loc[p]['team'])\n",
"\n",
" players.at[p, cols_toadapt] = (players.loc[p][cols_toadapt] * weight + (1-weight) * players_old.loc[p_][cols_toadapt])\n",
" \n",
" print(p + ' ' + str(weight)) \n",
" elif(p in rookies_data.index):\n",
" p_ = p\n",
" weight = calc_weight(players.loc[p]['games'], rookies_data.loc[p_]['games'], False)\n",
" players.at[p, cols_toadapt_rookies] = (players.loc[p][cols_toadapt_rookies] * weight + (1-weight) * rookies_data.loc[p_][cols_toadapt_rookies])\n",
" \n",
" print(p + ' ' + str(weight) + ' (rookie)') \n",
"\n",
" \n",
" # to handle players like Scamacca, who only played 2 seasons ago; only outfield players\n",
" if(players.loc[p]['r'] != 'P' and players.loc[p]['games'] < min_games and p in players_old_2.index): \n",
" weight = calc_weight(players.loc[p]['games'], players_old_2.loc[p]['games'], players.loc[p]['team'] == players_old_2.loc[p]['team'])\n",
" \n",
" players.at[p, cols_toadapt] = (players.loc[p][cols_toadapt] * weight + (1-weight) * players_old_2.loc[p][cols_toadapt])\n",
" \n",
" print(p + ' ' + str(weight) + ' (two seasons ago)')\n",
" \n",
" \n",
"# handle players with low quantitites of games\n",
"\n",
"print('Players with low quantity of games:')\n",
"\n",
"def calc_weight_low(current_games, min_games = min_games):\n",
" weight = 1 - (min_games - current_games)/min_games\n",
" \n",
" weight = min(weight, 1)\n",
"\n",
" return abs(weight)\n",
"\n",
"#mean_players_stats = players_orig[players_orig['games'] >= min_games][cols_toadapt].mean()\n",
"\n",
"\n",
"# mean players stats based on old season\n",
"\n",
"mean_players_stats = players_orig.loc[players_orig.index[0]][cols_toadapt] * 0\n",
"count = 0\n",
"\n",
"for i in range(players_old.shape[0]):\n",
" if(players_old['games'][i] >= min_games and (players_old['r'][i] == 'D')): # counting only defenders, to add a penalty\n",
" mean_players_stats += players_old.loc[players_old.index[i]][cols_toadapt]\n",
" count = count + 1\n",
" \n",
"mean_players_stats /= count\n",
"\n",
"for i in range(players.shape[0]):\n",
" p = players.index[i]\n",
" \n",
" if(players.loc[p]['games'] < min_games and players.loc[p]['r'] != 'P'):\n",
" weight = calc_weight_low(players.loc[p]['games'])\n",
" \n",
" players.at[p, cols_toadapt] = players.loc[p][cols_toadapt] * weight + (1-weight) * mean_players_stats\n",
" \n",
" print(p + ' ' + str(weight))\n",
" \n",
" \n",
"players_out = players.copy()\n",
"players_out = players_out.set_index(players_out.columns[0])\n",
"players_out.insert(2, 'name', players_out.index)\n",
"players_out.to_excel('mid_outputs/players_stats_rwk.xlsx')\n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "49c28b07",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['games', 'games_starts', 'minutes', 'goals', 'assists', 'pens_made',\n",
" 'pens_att', 'cards_yellow', 'cards_red', 'goals_per90',\n",
" ...\n",
" 'gk_pct_goal_kicks_launched', 'gk_goal_kick_length_avg', 'gk_crosses',\n",
" 'gk_crosses_stopped', 'gk_crosses_stopped_pct',\n",
" 'gk_def_actions_outside_pen_area',\n",
" 'gk_def_actions_outside_pen_area_per90', 'gk_avg_distance_def_actions',\n",
" 'vote_avg', 'vote_std'],\n",
" dtype='object', length=151)"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"players.columns[9:]"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "d29102e5",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 - matchday\n",
"1 - player\n",
"2 - team\n",
"3 - oppteam\n",
"4 - home\n",
"5 - vote\n",
"6 - goals\n",
"7 - assists\n",
"8 - cards_malus\n",
"9 - fantavote\n",
"10 - r\n",
"11 - games\n",
"12 - games_starts\n",
"13 - minutes\n",
"14 - shots_on_target_pct\n",
"15 - goals_per_shot\n",
"16 - goals_per_shot_on_target\n",
"17 - passes_pct\n",
"18 - aerials_won_pct\n",
"19 - team_possession\n",
"20 - team_goals_assists_per90\n",
"21 - team_goals_pens_per90\n",
"22 - team_goals_assists_pens_per90\n",
"23 - team_xg_per90\n",
"24 - team_gk_goals_against_per90\n",
"25 - team_gk_save_pct\n",
"26 - team_gk_clean_sheets_pct\n",
"27 - team_passes_pct\n",
"28 - team_passes_pct_medium\n",
"29 - team_passes_pct_long\n",
"30 - team_sca_per90\n",
"31 - team_gca_per90\n",
"32 - team_aerials_won_pct\n",
"33 - vs_team_possession\n",
"34 - vs_team_goals_per90\n",
"35 - vs_team_assists_per90\n",
"36 - vs_team_xg_per90\n",
"37 - vs_team_gk_save_pct\n",
"38 - vs_team_gk_clean_sheets_pct\n",
"39 - vs_team_gk_pct_passes_launched\n",
"40 - vs_team_gk_crosses_stopped_pct\n",
"41 - vs_team_shots_on_target_per90\n",
"42 - vs_team_passes_pct\n",
"43 - vs_team_passes_pct_short\n",
"44 - vs_team_passes_pct_medium\n",
"45 - vs_team_passes_pct_long\n",
"46 - vs_team_sca_per90\n",
"47 - vs_team_gca_per90\n",
"48 - vs_team_aerials_won_pct\n",
"49 - opp_team_possession\n",
"50 - opp_team_goals_assists_per90\n",
"51 - opp_team_goals_pens_per90\n",
"52 - opp_team_goals_assists_pens_per90\n",
"53 - opp_team_xg_per90\n",
"54 - opp_team_gk_goals_against_per90\n",
"55 - opp_team_gk_save_pct\n",
"56 - opp_team_gk_clean_sheets_pct\n",
"57 - opp_team_passes_pct\n",
"58 - opp_team_passes_pct_medium\n",
"59 - opp_team_passes_pct_long\n",
"60 - opp_team_sca_per90\n",
"61 - opp_team_gca_per90\n",
"62 - opp_team_aerials_won_pct\n",
"63 - opp_vs_team_possession\n",
"64 - opp_vs_team_goals_per90\n",
"65 - opp_vs_team_assists_per90\n",
"66 - opp_vs_team_xg_per90\n",
"67 - opp_vs_team_gk_save_pct\n",
"68 - opp_vs_team_gk_clean_sheets_pct\n",
"69 - opp_vs_team_gk_pct_passes_launched\n",
"70 - opp_vs_team_gk_crosses_stopped_pct\n",
"71 - opp_vs_team_shots_on_target_per90\n",
"72 - opp_vs_team_passes_pct\n",
"73 - opp_vs_team_passes_pct_short\n",
"74 - opp_vs_team_passes_pct_medium\n",
"75 - opp_vs_team_passes_pct_long\n",
"76 - opp_vs_team_sca_per90\n",
"77 - opp_vs_team_gca_per90\n",
"78 - opp_vs_team_aerials_won_pct\n",
"79 - vote_avg\n",
"80 - vote_std\n",
"81 - goals.1\n",
"82 - assists.1\n",
"83 - cards_yellow\n",
"84 - cards_red\n",
"85 - xg\n",
"86 - npxg\n",
"87 - shots_on_target\n",
"88 - passes_completed\n",
"89 - passes_into_final_third\n",
"90 - passes_into_penalty_area\n",
"91 - progressive_passes\n",
"92 - passes_live\n",
"93 - passes_dead\n",
"94 - through_balls\n",
"95 - passes_switches\n",
"96 - crosses\n",
"97 - corner_kicks\n",
"98 - blocks\n",
"99 - blocked_shots\n",
"100 - blocked_passes\n",
"101 - interceptions\n",
"102 - clearances\n",
"103 - errors\n",
"104 - touches\n",
"105 - touches_def_pen_area\n",
"106 - touches_def_3rd\n",
"107 - touches_mid_3rd\n",
"108 - touches_att_3rd\n",
"109 - touches_att_pen_area\n",
"110 - touches_live_ball\n",
"111 - passes_received\n",
"112 - miscontrols\n",
"113 - dispossessed\n",
"114 - fouls\n",
"115 - fouled\n",
"116 - aerials_won\n",
"117 - aerials_lost\n",
"118 - carries\n",
"119 - progressive_carries\n",
"120 - carries_into_final_third\n",
"121 - carries_into_penalty_area\n"
]
}
],
"source": [
"for i in range(db.columns.shape[0]):\n",
" print(str(i) + \" - \" + str(db.columns[i]))"
]
},
{
"cell_type": "markdown",
"id": "089690d6",
"metadata": {},
"source": [
"Elaborate databases data to have X and y for training, and split into a train test and a validation test.\n",
"\n",
"For outfield players: X -> y = [vote, fantavote]\n",
"\n",
"For goalkeepers: X -> y = [vote, fantavote, clean sheet probability]"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "f19304f6",
"metadata": {},
"outputs": [],
"source": [
"npdb = np.array(db)\n",
"\n",
"y = npdb[:, [5,9]] # vote, fantavote\n",
"\n",
"#y[:, 1] = y[:, 1] - y[:, 0] # target = difference between fantavote and vote\n",
"\n",
"f_start = 14\n",
"\n",
"X = npdb[:, f_start:]\n",
"\n",
"if(DEL_G): \n",
" del_g_idx = [\n",
" list(db.columns).index('goals.1') - f_start,\n",
" list(db.columns).index('assists.1') - f_start,\n",
" list(db.columns).index('xg') - f_start,\n",
" list(db.columns).index('npxg') - f_start,\n",
" list(db.columns).index('shots_on_target') - f_start]\n",
" \n",
" X[:, del_g_idx] = 0\n",
"\n",
"\n",
"# add role and home factor\n",
"toadd = np.zeros((X.shape[0], 4))\n",
"toadd[:, 0] = npdb[:, 4] # home\n",
"\n",
"toadd[:, 1] = npdb[:, 10] == 'D'\n",
"toadd[:, 2] = npdb[:, 10] == 'C'\n",
"toadd[:, 3] = npdb[:, 10] == 'A'\n",
"\n",
"X = np.concatenate((X, toadd), axis = 1)\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "370d41d2",
"metadata": {},
"outputs": [],
"source": [
"scaler = StandardScaler()\n",
"scaler.fit(X)\n",
"\n",
"X_train_, X_test_, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 12)\n",
"\n",
"X_train = scaler.transform(X_train_)\n",
"X_test = scaler.transform(X_test_)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "a7b1fb52",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 - matchday\n",
"1 - player\n",
"2 - team\n",
"3 - oppteam\n",
"4 - home\n",
"5 - vote\n",
"6 - goals\n",
"7 - assists\n",
"8 - cards_malus\n",
"9 - fantavote\n",
"10 - gk_games\n",
"11 - gk_games_starts\n",
"12 - gk_minutes\n",
"13 - gk_goals_against_per90\n",
"14 - gk_save_pct\n",
"15 - gk_clean_sheets_pct\n",
"16 - gk_psxg_net_per90\n",
"17 - gk_passes_pct_launched\n",
"18 - gk_pct_passes_launched\n",
"19 - gk_passes_length_avg\n",
"20 - gk_pct_goal_kicks_launched\n",
"21 - gk_goal_kick_length_avg\n",
"22 - gk_crosses_stopped_pct\n",
"23 - gk_def_actions_outside_pen_area_per90\n",
"24 - gk_avg_distance_def_actions\n",
"25 - team_possession\n",
"26 - team_goals_assists_per90\n",
"27 - team_goals_pens_per90\n",
"28 - team_goals_assists_pens_per90\n",
"29 - team_xg_per90\n",
"30 - team_gk_goals_against_per90\n",
"31 - team_gk_save_pct\n",
"32 - team_gk_clean_sheets_pct\n",
"33 - team_passes_pct\n",
"34 - team_passes_pct_medium\n",
"35 - team_passes_pct_long\n",
"36 - team_sca_per90\n",
"37 - team_gca_per90\n",
"38 - team_aerials_won_pct\n",
"39 - vs_team_possession\n",
"40 - vs_team_goals_per90\n",
"41 - vs_team_assists_per90\n",
"42 - vs_team_xg_per90\n",
"43 - vs_team_gk_save_pct\n",
"44 - vs_team_gk_clean_sheets_pct\n",
"45 - vs_team_gk_pct_passes_launched\n",
"46 - vs_team_gk_crosses_stopped_pct\n",
"47 - vs_team_shots_on_target_per90\n",
"48 - vs_team_passes_pct\n",
"49 - vs_team_passes_pct_short\n",
"50 - vs_team_passes_pct_medium\n",
"51 - vs_team_passes_pct_long\n",
"52 - vs_team_sca_per90\n",
"53 - vs_team_gca_per90\n",
"54 - vs_team_aerials_won_pct\n",
"55 - opp_team_possession\n",
"56 - opp_team_goals_assists_per90\n",
"57 - opp_team_goals_pens_per90\n",
"58 - opp_team_goals_assists_pens_per90\n",
"59 - opp_team_xg_per90\n",
"60 - opp_team_gk_goals_against_per90\n",
"61 - opp_team_gk_save_pct\n",
"62 - opp_team_gk_clean_sheets_pct\n",
"63 - opp_team_passes_pct\n",
"64 - opp_team_passes_pct_medium\n",
"65 - opp_team_passes_pct_long\n",
"66 - opp_team_sca_per90\n",
"67 - opp_team_gca_per90\n",
"68 - opp_team_aerials_won_pct\n",
"69 - opp_vs_team_possession\n",
"70 - opp_vs_team_goals_per90\n",
"71 - opp_vs_team_assists_per90\n",
"72 - opp_vs_team_xg_per90\n",
"73 - opp_vs_team_gk_save_pct\n",
"74 - opp_vs_team_gk_clean_sheets_pct\n",
"75 - opp_vs_team_gk_pct_passes_launched\n",
"76 - opp_vs_team_gk_crosses_stopped_pct\n",
"77 - opp_vs_team_shots_on_target_per90\n",
"78 - opp_vs_team_passes_pct\n",
"79 - opp_vs_team_passes_pct_short\n",
"80 - opp_vs_team_passes_pct_medium\n",
"81 - opp_vs_team_passes_pct_long\n",
"82 - opp_vs_team_sca_per90\n",
"83 - opp_vs_team_gca_per90\n",
"84 - opp_vs_team_aerials_won_pct\n",
"85 - vote_avg\n",
"86 - vote_std\n",
"87 - gk_shots_on_target_against\n",
"88 - gk_saves\n",
"89 - gk_free_kick_goals_against\n",
"90 - gk_corner_kick_goals_against\n",
"91 - gk_own_goals_against\n",
"92 - gk_psxg\n",
"93 - gk_psnpxg_per_shot_on_target_against\n",
"94 - gk_psxg_net\n",
"95 - gk_passes_completed_launched\n",
"96 - gk_passes_launched\n",
"97 - gk_passes\n",
"98 - gk_passes_throws\n",
"99 - gk_goal_kicks\n",
"100 - gk_crosses\n",
"101 - gk_crosses_stopped\n"
]
}
],
"source": [
"for i in range(db_gk.columns.shape[0]):\n",
" print(str(i) + \" - \" + str(db_gk.columns[i]))"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "5a7cf079",
"metadata": {},
"outputs": [],
"source": [
"npdb_gk= np.array(db_gk)\n",
"\n",
"y_gk = npdb_gk[:, [5,9,6]] # vote, fantavote, goals == 0 (clean sheet)\n",
"y_gk[:, 2] = (y_gk[:, 2] == 0) * 1\n",
"\n",
"f_start_gk = 13\n",
"\n",
"X_gk = npdb_gk[:, f_start_gk:]\n",
"\n",
"# add home factor\n",
"toadd_gk = np.zeros((X_gk.shape[0], 1))\n",
"toadd_gk[:, 0] = npdb_gk[:, 4] # home\n",
"\n",
"X_gk = np.concatenate((X_gk, toadd_gk), axis = 1)\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "0bc0568b",
"metadata": {},
"outputs": [],
"source": [
"scaler_gk = StandardScaler()\n",
"scaler_gk.fit(X_gk)\n",
"\n",
"X_gk_train_, X_gk_test_, y_gk_train, y_gk_test = train_test_split(X_gk, y_gk, test_size = 0.2, random_state = 18)\n",
"\n",
"X_gk_train = scaler_gk.transform(X_gk_train_)\n",
"X_gk_test = scaler_gk.transform(X_gk_test_)"
]
},
{
"cell_type": "markdown",
"id": "ebd27493",
"metadata": {},
"source": [
"MLP Regressor , to see performance of a simple neural network"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "04564bee",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\nicol\\anaconda3\\lib\\site-packages\\sklearn\\neural_network\\_multilayer_perceptron.py:549: ConvergenceWarning: lbfgs failed to converge (status=2):\n",
"ABNORMAL_TERMINATION_IN_LNSRCH.\n",
"\n",
"Increase the number of iterations (max_iter) or scale the data as shown in:\n",
" https://scikit-learn.org/stable/modules/preprocessing.html\n",
" self.n_iter_ = _check_optimize_result(\"lbfgs\", opt_res, self.max_iter)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.15507286428738876\n",
"0.18856961333473798\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.1354212153815001\n",
"0.17392551015116653\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"regr = MLPRegressor(max_iter = 400000, solver = 'lbfgs', hidden_layer_sizes = (8, 8), alpha = 500, verbose = True)\n",
"\n",
"regr.fit(X_train, y_train)\n",
"\n",
"\n",
"y_train_predict = regr.predict(X_train)\n",
"\n",
"plt.plot([0, 20], [0, 20])\n",
"\n",
"plt.scatter(y_train[:, 0], y_train_predict[:, 0], color = 'orange', edgecolors = 'black', s = 20)\n",
"plt.scatter(y_train[:, 1], y_train_predict[:, 1], color = 'green', edgecolors = 'black', s = 20)\n",
"\n",
"print(r2_score(y_train[:, 0], y_train_predict[:, 0]))\n",
"print(r2_score(y_train[:, 1], y_train_predict[:, 1]))\n",
"\n",
"\n",
"plt.show()\n",
"\n",
"y_test_predict = regr.predict(X_test)\n",
"\n",
"plt.plot([0, 20], [0, 20])\n",
"\n",
"plt.scatter(y_test[:, 0], y_test_predict[:, 0], color = 'orange', edgecolors = 'black', s = 20)\n",
"plt.scatter(y_test[:, 1], y_test_predict[:, 1], color = 'green', edgecolors = 'black', s = 20)\n",
"\n",
"print(r2_score(y_test[:, 0], y_test_predict[:, 0]))\n",
"print(r2_score(y_test[:, 1], y_test_predict[:, 1]))\n",
"\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "f9513b25",
"metadata": {},
"source": [
"Train neural network for outfield players.\n",
"\n",
"The outputs of the NN are probability distribution of SinhArcsinh type (a skewed distribution, which is a generalization of Gaussian)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "8aad9652",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/1000\n",
"97/97 [==============================] - 4s 9ms/step - loss: 2.1231 - distribution_lambda_loss: 0.8271 - distribution_lambda_1_loss: 1.2961 - val_loss: 2.0424 - val_distribution_lambda_loss: 0.7918 - val_distribution_lambda_1_loss: 1.2505\n",
"Epoch 2/1000\n",
"97/97 [==============================] - 0s 3ms/step - loss: 2.1228 - distribution_lambda_loss: 0.8266 - distribution_lambda_1_loss: 1.2962 - val_loss: 2.0378 - val_distribution_lambda_loss: 0.7895 - val_distribution_lambda_1_loss: 1.2483\n",
"Epoch 3/1000\n",
"97/97 [==============================] - 0s 3ms/step - loss: 2.1235 - distribution_lambda_loss: 0.8279 - distribution_lambda_1_loss: 1.2957 - val_loss: 2.0464 - val_distribution_lambda_loss: 0.7935 - val_distribution_lambda_1_loss: 1.2530\n",
"Epoch 4/1000\n",
"97/97 [==============================] - 0s 3ms/step - loss: 2.1266 - distribution_lambda_loss: 0.8293 - distribution_lambda_1_loss: 1.2973 - val_loss: 2.0375 - val_distribution_lambda_loss: 0.7873 - val_distribution_lambda_1_loss: 1.2502\n",
"Epoch 5/1000\n",
"97/97 [==============================] - 0s 3ms/step - loss: 2.1236 - distribution_lambda_loss: 0.8283 - distribution_lambda_1_loss: 1.2953 - val_loss: 2.0412 - val_distribution_lambda_loss: 0.7891 - val_distribution_lambda_1_loss: 1.2521\n",
"Epoch 6/1000\n",
"97/97 [==============================] - 0s 3ms/step - loss: 2.1209 - distribution_lambda_loss: 0.8254 - distribution_lambda_1_loss: 1.2955 - val_loss: 2.0491 - val_distribution_lambda_loss: 0.7929 - val_distribution_lambda_1_loss: 1.2561\n",
"Epoch 7/1000\n",
"97/97 [==============================] - 0s 3ms/step - loss: 2.1219 - distribution_lambda_loss: 0.8263 - distribution_lambda_1_loss: 1.2956 - val_loss: 2.0483 - val_distribution_lambda_loss: 0.7934 - val_distribution_lambda_1_loss: 1.2548\n",
"Epoch 8/1000\n",
"97/97 [==============================] - 0s 3ms/step - loss: 2.1211 - distribution_lambda_loss: 0.8262 - distribution_lambda_1_loss: 1.2948 - val_loss: 2.0477 - val_distribution_lambda_loss: 0.7933 - val_distribution_lambda_1_loss: 1.2544\n",
"Epoch 9/1000\n",
"97/97 [==============================] - 0s 3ms/step - loss: 2.1272 - distribution_lambda_loss: 0.8300 - distribution_lambda_1_loss: 1.2972 - val_loss: 2.0494 - val_distribution_lambda_loss: 0.7953 - val_distribution_lambda_1_loss: 1.2541\n",
"Epoch 10/1000\n",
"97/97 [==============================] - 0s 3ms/step - loss: 2.1239 - distribution_lambda_loss: 0.8272 - distribution_lambda_1_loss: 1.2967 - val_loss: 2.0431 - val_distribution_lambda_loss: 0.7905 - val_distribution_lambda_1_loss: 1.2526\n",
"Epoch 11/1000\n",
"97/97 [==============================] - 0s 3ms/step - loss: 2.1211 - distribution_lambda_loss: 0.8268 - distribution_lambda_1_loss: 1.2943 - val_loss: 2.0435 - val_distribution_lambda_loss: 0.7904 - val_distribution_lambda_1_loss: 1.2531\n",
"Epoch 12/1000\n",
"97/97 [==============================] - 0s 3ms/step - loss: 2.1212 - distribution_lambda_loss: 0.8269 - distribution_lambda_1_loss: 1.2942 - val_loss: 2.0461 - val_distribution_lambda_loss: 0.7929 - val_distribution_lambda_1_loss: 1.2532\n",
"Epoch 13/1000\n",
"97/97 [==============================] - 0s 3ms/step - loss: 2.1223 - distribution_lambda_loss: 0.8262 - distribution_lambda_1_loss: 1.2961 - val_loss: 2.0463 - val_distribution_lambda_loss: 0.7928 - val_distribution_lambda_1_loss: 1.2535\n",
"Epoch 14/1000\n",
"97/97 [==============================] - 0s 3ms/step - loss: 2.1211 - distribution_lambda_loss: 0.8265 - distribution_lambda_1_loss: 1.2946 - val_loss: 2.0430 - val_distribution_lambda_loss: 0.7908 - val_distribution_lambda_1_loss: 1.2522\n"
]
}
],
"source": [
"load_model_of = True# load scaler and model weights for outfield player predictor\n",
"refit_model_of = True\n",
"\n",
"if(load_model_of):\n",
" scaler = pickle.load(open('saves/scaler.pkl', 'rb'))\n",
" \n",
" X_train = scaler.transform(X_train_)\n",
" X_test = scaler.transform(X_test_)\n",
"\n",
"\n",
"n_epochs = 1000\n",
"\n",
"n_samples = X_train.shape[0]\n",
"\n",
"batch_size = 256\n",
"\n",
"X_len = X_train.shape[1]\n",
"y_len = y_train.shape[1]\n",
"\n",
"\n",
"#tailweight_param = 1.1\n",
"\n",
"tailweight_min = 0.5\n",
"tailweight_range = 1.2\n",
"\n",
"\n",
"callback = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience = 10)\n",
"neg_log_likelihood = lambda x, rv_x: -rv_x.log_prob(x)\n",
"\n",
"\n",
"inputs = tfk.layers.Input(shape=(X_len,), name=\"input\")\n",
"x = tfk.layers.Dropout(0.2)(inputs)\n",
"x = tfk.layers.Dense(16, activation=\"relu\") (x)\n",
"x = tfk.layers.Dropout(0.2)(x)\n",
"x = tfk.layers.Dense(16, activation=\"relu\") (x)\n",
"\n",
"\n",
"prob_dist_params = 4\n",
"\n",
"def prob_dist(t): \n",
" return tfp.distributions.SinhArcsinh(loc=t[..., 0], scale=1e-3 + tf.math.softplus(t[..., 1]), skewness = t[..., 2], \n",
" tailweight = tailweight_min + tailweight_range * tf.math.sigmoid(t[..., 3]),\n",
" allow_nan_stats = False)\n",
"\n",
"x1 = tfk.layers.Dense(8, activation=\"sigmoid\")(x)\n",
"x1 = tfk.layers.Dense(prob_dist_params, activation=\"linear\")(x1)\n",
"out_1 = tfp.layers.DistributionLambda(prob_dist)(x1)\n",
"\n",
"x2 = tfk.layers.Dense(8, activation=\"sigmoid\")(x)\n",
"x2 = tfk.layers.Dense(prob_dist_params, activation=\"linear\")(x2)\n",
"out_2 = tfp.layers.DistributionLambda(prob_dist)(x2)\n",
"\n",
"\n",
"modelb = tf.keras.Model(inputs, [out_1, out_2])\n",
"\n",
"modelb.compile(optimizer=tf.keras.optimizers.Nadam(learning_rate = 0.001), \n",
" loss=neg_log_likelihood)\n",
"\n",
"if(load_model_of):\n",
" modelb.load_weights('saves/modelb')\n",
" \n",
"if( (not load_model_of) or refit_model_of):\n",
" modelb.fit(X_train.astype('float32'), [y_train[:, 0].astype('float32'), y_train[:, 1].astype('float32')], \n",
" validation_data = (X_test.astype('float32'), [y_test[:, 0].astype('float32'), y_test[:, 1].astype('float32')]),\n",
" batch_size = batch_size, shuffle = True, epochs=n_epochs, verbose=True, callbacks = [callback])"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "4e2bf9dc",
"metadata": {},
"outputs": [],
"source": [
"def sample_predict(X, iterations = 100):\n",
" y = np.zeros((2, X.shape[0]))\n",
" \n",
" dist = modelb(X)\n",
" \n",
" for i in range(iterations):\n",
" y[0, :] += dist[0].sample()\n",
" y[1, :] += dist[1].sample()\n",
" \n",
" return y.transpose() / iterations\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "c2674211",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.14318537713364876\n",
"0.16192383064613713\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.1390455990767111\n",
"0.16511344994051125\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"y_train_predict = sample_predict(X_train)\n",
"\n",
"plt.plot([0, 20], [0, 20])\n",
"\n",
"plt.scatter(y_train[:, 0], y_train_predict[:, 0], color = 'orange', edgecolors = 'black', s = 20)\n",
"plt.scatter(y_train[:, 1], y_train_predict[:, 1], color = 'green', edgecolors = 'black', s = 20)\n",
"\n",
"print(r2_score(y_train[:, 0], y_train_predict[:, 0]))\n",
"print(r2_score(y_train[:, 1], y_train_predict[:, 1]))\n",
"\n",
"plt.show()\n",
"\n",
"y_test_predict = sample_predict(X_test)\n",
"\n",
"plt.plot([0, 20], [0, 20])\n",
"\n",
"plt.scatter(y_test[:, 0], y_test_predict[:, 0], color = 'orange', edgecolors = 'black', s = 20)\n",
"plt.scatter(y_test[:, 1], y_test_predict[:, 1], color = 'green', edgecolors = 'black', s = 20)\n",
"\n",
"print(r2_score(y_test[:, 0], y_test_predict[:, 0]))\n",
"print(r2_score(y_test[:, 1], y_test_predict[:, 1]))\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "f574ffdb",
"metadata": {},
"source": [
"Train neural network for goalkeepers.\n",
"\n",
"For clean sheet probability prediction, a Bernoulli distribution is used."
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "41e7e1ee",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/2500\n",
"16/16 [==============================] - 4s 49ms/step - loss: 2.8318 - distribution_lambda_2_loss: 0.7818 - distribution_lambda_3_loss: 1.5811 - distribution_lambda_4_loss: 0.4689 - val_loss: 2.7879 - val_distribution_lambda_2_loss: 0.7363 - val_distribution_lambda_3_loss: 1.5952 - val_distribution_lambda_4_loss: 0.4564\n",
"Epoch 2/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8259 - distribution_lambda_2_loss: 0.7828 - distribution_lambda_3_loss: 1.5794 - distribution_lambda_4_loss: 0.4637 - val_loss: 2.7892 - val_distribution_lambda_2_loss: 0.7348 - val_distribution_lambda_3_loss: 1.5957 - val_distribution_lambda_4_loss: 0.4587\n",
"Epoch 3/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8180 - distribution_lambda_2_loss: 0.7852 - distribution_lambda_3_loss: 1.5736 - distribution_lambda_4_loss: 0.4592 - val_loss: 2.7863 - val_distribution_lambda_2_loss: 0.7288 - val_distribution_lambda_3_loss: 1.5961 - val_distribution_lambda_4_loss: 0.4614\n",
"Epoch 4/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8057 - distribution_lambda_2_loss: 0.7726 - distribution_lambda_3_loss: 1.5718 - distribution_lambda_4_loss: 0.4614 - val_loss: 2.7873 - val_distribution_lambda_2_loss: 0.7291 - val_distribution_lambda_3_loss: 1.5960 - val_distribution_lambda_4_loss: 0.4622\n",
"Epoch 5/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8367 - distribution_lambda_2_loss: 0.8118 - distribution_lambda_3_loss: 1.5704 - distribution_lambda_4_loss: 0.4545 - val_loss: 2.7873 - val_distribution_lambda_2_loss: 0.7271 - val_distribution_lambda_3_loss: 1.5995 - val_distribution_lambda_4_loss: 0.4607\n",
"Epoch 6/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8330 - distribution_lambda_2_loss: 0.7990 - distribution_lambda_3_loss: 1.5720 - distribution_lambda_4_loss: 0.4620 - val_loss: 2.7894 - val_distribution_lambda_2_loss: 0.7287 - val_distribution_lambda_3_loss: 1.5997 - val_distribution_lambda_4_loss: 0.4611\n",
"Epoch 7/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8403 - distribution_lambda_2_loss: 0.7903 - distribution_lambda_3_loss: 1.5759 - distribution_lambda_4_loss: 0.4741 - val_loss: 2.7913 - val_distribution_lambda_2_loss: 0.7276 - val_distribution_lambda_3_loss: 1.6007 - val_distribution_lambda_4_loss: 0.4630\n",
"Epoch 8/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8326 - distribution_lambda_2_loss: 0.7955 - distribution_lambda_3_loss: 1.5704 - distribution_lambda_4_loss: 0.4666 - val_loss: 2.7994 - val_distribution_lambda_2_loss: 0.7282 - val_distribution_lambda_3_loss: 1.6056 - val_distribution_lambda_4_loss: 0.4656\n",
"Epoch 9/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8316 - distribution_lambda_2_loss: 0.7943 - distribution_lambda_3_loss: 1.5766 - distribution_lambda_4_loss: 0.4606 - val_loss: 2.8037 - val_distribution_lambda_2_loss: 0.7307 - val_distribution_lambda_3_loss: 1.6069 - val_distribution_lambda_4_loss: 0.4662\n",
"Epoch 10/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8247 - distribution_lambda_2_loss: 0.7831 - distribution_lambda_3_loss: 1.5749 - distribution_lambda_4_loss: 0.4667 - val_loss: 2.8047 - val_distribution_lambda_2_loss: 0.7321 - val_distribution_lambda_3_loss: 1.6060 - val_distribution_lambda_4_loss: 0.4666\n",
"Epoch 11/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8082 - distribution_lambda_2_loss: 0.7760 - distribution_lambda_3_loss: 1.5706 - distribution_lambda_4_loss: 0.4616 - val_loss: 2.8034 - val_distribution_lambda_2_loss: 0.7312 - val_distribution_lambda_3_loss: 1.6054 - val_distribution_lambda_4_loss: 0.4668\n",
"Epoch 12/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8241 - distribution_lambda_2_loss: 0.7949 - distribution_lambda_3_loss: 1.5667 - distribution_lambda_4_loss: 0.4624 - val_loss: 2.8054 - val_distribution_lambda_2_loss: 0.7326 - val_distribution_lambda_3_loss: 1.6052 - val_distribution_lambda_4_loss: 0.4676\n",
"Epoch 13/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8073 - distribution_lambda_2_loss: 0.7710 - distribution_lambda_3_loss: 1.5735 - distribution_lambda_4_loss: 0.4629 - val_loss: 2.8044 - val_distribution_lambda_2_loss: 0.7309 - val_distribution_lambda_3_loss: 1.6057 - val_distribution_lambda_4_loss: 0.4678\n",
"Epoch 14/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8313 - distribution_lambda_2_loss: 0.7867 - distribution_lambda_3_loss: 1.5764 - distribution_lambda_4_loss: 0.4681 - val_loss: 2.8076 - val_distribution_lambda_2_loss: 0.7304 - val_distribution_lambda_3_loss: 1.6086 - val_distribution_lambda_4_loss: 0.4687\n",
"Epoch 15/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8342 - distribution_lambda_2_loss: 0.7911 - distribution_lambda_3_loss: 1.5761 - distribution_lambda_4_loss: 0.4669 - val_loss: 2.8109 - val_distribution_lambda_2_loss: 0.7330 - val_distribution_lambda_3_loss: 1.6093 - val_distribution_lambda_4_loss: 0.4685\n",
"Epoch 16/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8313 - distribution_lambda_2_loss: 0.7839 - distribution_lambda_3_loss: 1.5782 - distribution_lambda_4_loss: 0.4692 - val_loss: 2.8061 - val_distribution_lambda_2_loss: 0.7323 - val_distribution_lambda_3_loss: 1.6060 - val_distribution_lambda_4_loss: 0.4678\n",
"Epoch 17/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8055 - distribution_lambda_2_loss: 0.7820 - distribution_lambda_3_loss: 1.5624 - distribution_lambda_4_loss: 0.4610 - val_loss: 2.8131 - val_distribution_lambda_2_loss: 0.7344 - val_distribution_lambda_3_loss: 1.6096 - val_distribution_lambda_4_loss: 0.4691\n",
"Epoch 18/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8066 - distribution_lambda_2_loss: 0.7833 - distribution_lambda_3_loss: 1.5616 - distribution_lambda_4_loss: 0.4617 - val_loss: 2.8163 - val_distribution_lambda_2_loss: 0.7315 - val_distribution_lambda_3_loss: 1.6135 - val_distribution_lambda_4_loss: 0.4713\n",
"Epoch 19/2500\n",
"16/16 [==============================] - 0s 5ms/step - loss: 2.8113 - distribution_lambda_2_loss: 0.7828 - distribution_lambda_3_loss: 1.5644 - distribution_lambda_4_loss: 0.4641 - val_loss: 2.8174 - val_distribution_lambda_2_loss: 0.7303 - val_distribution_lambda_3_loss: 1.6121 - val_distribution_lambda_4_loss: 0.4749\n",
"Epoch 20/2500\n",
"16/16 [==============================] - 0s 5ms/step - loss: 2.8021 - distribution_lambda_2_loss: 0.7805 - distribution_lambda_3_loss: 1.5682 - distribution_lambda_4_loss: 0.4534 - val_loss: 2.8219 - val_distribution_lambda_2_loss: 0.7342 - val_distribution_lambda_3_loss: 1.6140 - val_distribution_lambda_4_loss: 0.4737\n",
"Epoch 21/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.7970 - distribution_lambda_2_loss: 0.7893 - distribution_lambda_3_loss: 1.5631 - distribution_lambda_4_loss: 0.4445 - val_loss: 2.8205 - val_distribution_lambda_2_loss: 0.7343 - val_distribution_lambda_3_loss: 1.6152 - val_distribution_lambda_4_loss: 0.4710\n",
"Epoch 22/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8084 - distribution_lambda_2_loss: 0.7879 - distribution_lambda_3_loss: 1.5619 - distribution_lambda_4_loss: 0.4587 - val_loss: 2.8244 - val_distribution_lambda_2_loss: 0.7349 - val_distribution_lambda_3_loss: 1.6153 - val_distribution_lambda_4_loss: 0.4742\n",
"Epoch 23/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8083 - distribution_lambda_2_loss: 0.7804 - distribution_lambda_3_loss: 1.5672 - distribution_lambda_4_loss: 0.4607 - val_loss: 2.8277 - val_distribution_lambda_2_loss: 0.7357 - val_distribution_lambda_3_loss: 1.6169 - val_distribution_lambda_4_loss: 0.4751\n",
"Epoch 24/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.7848 - distribution_lambda_2_loss: 0.7655 - distribution_lambda_3_loss: 1.5584 - distribution_lambda_4_loss: 0.4608 - val_loss: 2.8250 - val_distribution_lambda_2_loss: 0.7350 - val_distribution_lambda_3_loss: 1.6157 - val_distribution_lambda_4_loss: 0.4743\n",
"Epoch 25/2500\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"16/16 [==============================] - 0s 4ms/step - loss: 2.8392 - distribution_lambda_2_loss: 0.8073 - distribution_lambda_3_loss: 1.5790 - distribution_lambda_4_loss: 0.4529 - val_loss: 2.8279 - val_distribution_lambda_2_loss: 0.7351 - val_distribution_lambda_3_loss: 1.6155 - val_distribution_lambda_4_loss: 0.4772\n",
"Epoch 26/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8193 - distribution_lambda_2_loss: 0.7785 - distribution_lambda_3_loss: 1.5722 - distribution_lambda_4_loss: 0.4686 - val_loss: 2.8286 - val_distribution_lambda_2_loss: 0.7346 - val_distribution_lambda_3_loss: 1.6168 - val_distribution_lambda_4_loss: 0.4772\n",
"Epoch 27/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8056 - distribution_lambda_2_loss: 0.7836 - distribution_lambda_3_loss: 1.5648 - distribution_lambda_4_loss: 0.4572 - val_loss: 2.8276 - val_distribution_lambda_2_loss: 0.7344 - val_distribution_lambda_3_loss: 1.6166 - val_distribution_lambda_4_loss: 0.4767\n",
"Epoch 28/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.7948 - distribution_lambda_2_loss: 0.7694 - distribution_lambda_3_loss: 1.5693 - distribution_lambda_4_loss: 0.4562 - val_loss: 2.8227 - val_distribution_lambda_2_loss: 0.7330 - val_distribution_lambda_3_loss: 1.6146 - val_distribution_lambda_4_loss: 0.4750\n",
"Epoch 29/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.7822 - distribution_lambda_2_loss: 0.7681 - distribution_lambda_3_loss: 1.5583 - distribution_lambda_4_loss: 0.4558 - val_loss: 2.8274 - val_distribution_lambda_2_loss: 0.7346 - val_distribution_lambda_3_loss: 1.6192 - val_distribution_lambda_4_loss: 0.4736\n",
"Epoch 30/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8158 - distribution_lambda_2_loss: 0.7959 - distribution_lambda_3_loss: 1.5680 - distribution_lambda_4_loss: 0.4518 - val_loss: 2.8341 - val_distribution_lambda_2_loss: 0.7354 - val_distribution_lambda_3_loss: 1.6206 - val_distribution_lambda_4_loss: 0.4781\n",
"Epoch 31/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8014 - distribution_lambda_2_loss: 0.7811 - distribution_lambda_3_loss: 1.5648 - distribution_lambda_4_loss: 0.4555 - val_loss: 2.8387 - val_distribution_lambda_2_loss: 0.7360 - val_distribution_lambda_3_loss: 1.6238 - val_distribution_lambda_4_loss: 0.4788\n",
"Epoch 32/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.7946 - distribution_lambda_2_loss: 0.7758 - distribution_lambda_3_loss: 1.5592 - distribution_lambda_4_loss: 0.4596 - val_loss: 2.8409 - val_distribution_lambda_2_loss: 0.7346 - val_distribution_lambda_3_loss: 1.6271 - val_distribution_lambda_4_loss: 0.4792\n",
"Epoch 33/2500\n",
"16/16 [==============================] - 0s 5ms/step - loss: 2.8158 - distribution_lambda_2_loss: 0.7904 - distribution_lambda_3_loss: 1.5677 - distribution_lambda_4_loss: 0.4577 - val_loss: 2.8404 - val_distribution_lambda_2_loss: 0.7335 - val_distribution_lambda_3_loss: 1.6267 - val_distribution_lambda_4_loss: 0.4803\n",
"Epoch 34/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.7946 - distribution_lambda_2_loss: 0.7796 - distribution_lambda_3_loss: 1.5635 - distribution_lambda_4_loss: 0.4515 - val_loss: 2.8403 - val_distribution_lambda_2_loss: 0.7361 - val_distribution_lambda_3_loss: 1.6240 - val_distribution_lambda_4_loss: 0.4802\n",
"Epoch 35/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8137 - distribution_lambda_2_loss: 0.7850 - distribution_lambda_3_loss: 1.5682 - distribution_lambda_4_loss: 0.4606 - val_loss: 2.8423 - val_distribution_lambda_2_loss: 0.7361 - val_distribution_lambda_3_loss: 1.6249 - val_distribution_lambda_4_loss: 0.4813\n",
"Epoch 36/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8254 - distribution_lambda_2_loss: 0.7804 - distribution_lambda_3_loss: 1.5803 - distribution_lambda_4_loss: 0.4647 - val_loss: 2.8395 - val_distribution_lambda_2_loss: 0.7368 - val_distribution_lambda_3_loss: 1.6214 - val_distribution_lambda_4_loss: 0.4813\n",
"Epoch 37/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8213 - distribution_lambda_2_loss: 0.7868 - distribution_lambda_3_loss: 1.5731 - distribution_lambda_4_loss: 0.4614 - val_loss: 2.8386 - val_distribution_lambda_2_loss: 0.7363 - val_distribution_lambda_3_loss: 1.6209 - val_distribution_lambda_4_loss: 0.4814\n",
"Epoch 38/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8045 - distribution_lambda_2_loss: 0.7780 - distribution_lambda_3_loss: 1.5652 - distribution_lambda_4_loss: 0.4612 - val_loss: 2.8439 - val_distribution_lambda_2_loss: 0.7346 - val_distribution_lambda_3_loss: 1.6246 - val_distribution_lambda_4_loss: 0.4847\n",
"Epoch 39/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.7939 - distribution_lambda_2_loss: 0.7592 - distribution_lambda_3_loss: 1.5697 - distribution_lambda_4_loss: 0.4650 - val_loss: 2.8463 - val_distribution_lambda_2_loss: 0.7363 - val_distribution_lambda_3_loss: 1.6265 - val_distribution_lambda_4_loss: 0.4835\n",
"Epoch 40/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.7927 - distribution_lambda_2_loss: 0.7809 - distribution_lambda_3_loss: 1.5560 - distribution_lambda_4_loss: 0.4558 - val_loss: 2.8425 - val_distribution_lambda_2_loss: 0.7361 - val_distribution_lambda_3_loss: 1.6265 - val_distribution_lambda_4_loss: 0.4799\n",
"Epoch 41/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.7871 - distribution_lambda_2_loss: 0.7685 - distribution_lambda_3_loss: 1.5573 - distribution_lambda_4_loss: 0.4613 - val_loss: 2.8440 - val_distribution_lambda_2_loss: 0.7353 - val_distribution_lambda_3_loss: 1.6274 - val_distribution_lambda_4_loss: 0.4813\n",
"Epoch 42/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8238 - distribution_lambda_2_loss: 0.7881 - distribution_lambda_3_loss: 1.5737 - distribution_lambda_4_loss: 0.4620 - val_loss: 2.8522 - val_distribution_lambda_2_loss: 0.7362 - val_distribution_lambda_3_loss: 1.6299 - val_distribution_lambda_4_loss: 0.4861\n",
"Epoch 43/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.7937 - distribution_lambda_2_loss: 0.7708 - distribution_lambda_3_loss: 1.5711 - distribution_lambda_4_loss: 0.4518 - val_loss: 2.8491 - val_distribution_lambda_2_loss: 0.7373 - val_distribution_lambda_3_loss: 1.6271 - val_distribution_lambda_4_loss: 0.4848\n",
"Epoch 44/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8023 - distribution_lambda_2_loss: 0.7787 - distribution_lambda_3_loss: 1.5687 - distribution_lambda_4_loss: 0.4549 - val_loss: 2.8461 - val_distribution_lambda_2_loss: 0.7375 - val_distribution_lambda_3_loss: 1.6263 - val_distribution_lambda_4_loss: 0.4822\n",
"Epoch 45/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.8141 - distribution_lambda_2_loss: 0.7850 - distribution_lambda_3_loss: 1.5684 - distribution_lambda_4_loss: 0.4607 - val_loss: 2.8474 - val_distribution_lambda_2_loss: 0.7375 - val_distribution_lambda_3_loss: 1.6259 - val_distribution_lambda_4_loss: 0.4839\n",
"Epoch 46/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.7816 - distribution_lambda_2_loss: 0.7693 - distribution_lambda_3_loss: 1.5624 - distribution_lambda_4_loss: 0.4499 - val_loss: 2.8509 - val_distribution_lambda_2_loss: 0.7389 - val_distribution_lambda_3_loss: 1.6266 - val_distribution_lambda_4_loss: 0.4854\n",
"Epoch 47/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.7844 - distribution_lambda_2_loss: 0.7717 - distribution_lambda_3_loss: 1.5564 - distribution_lambda_4_loss: 0.4562 - val_loss: 2.8501 - val_distribution_lambda_2_loss: 0.7381 - val_distribution_lambda_3_loss: 1.6265 - val_distribution_lambda_4_loss: 0.4855\n",
"Epoch 48/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.7855 - distribution_lambda_2_loss: 0.7730 - distribution_lambda_3_loss: 1.5588 - distribution_lambda_4_loss: 0.4536 - val_loss: 2.8556 - val_distribution_lambda_2_loss: 0.7367 - val_distribution_lambda_3_loss: 1.6320 - val_distribution_lambda_4_loss: 0.4869\n",
"Epoch 49/2500\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"16/16 [==============================] - 0s 4ms/step - loss: 2.7817 - distribution_lambda_2_loss: 0.7642 - distribution_lambda_3_loss: 1.5567 - distribution_lambda_4_loss: 0.4608 - val_loss: 2.8588 - val_distribution_lambda_2_loss: 0.7381 - val_distribution_lambda_3_loss: 1.6305 - val_distribution_lambda_4_loss: 0.4902\n",
"Epoch 50/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.7974 - distribution_lambda_2_loss: 0.7894 - distribution_lambda_3_loss: 1.5578 - distribution_lambda_4_loss: 0.4502 - val_loss: 2.8586 - val_distribution_lambda_2_loss: 0.7389 - val_distribution_lambda_3_loss: 1.6301 - val_distribution_lambda_4_loss: 0.4896\n",
"Epoch 51/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.7851 - distribution_lambda_2_loss: 0.7654 - distribution_lambda_3_loss: 1.5580 - distribution_lambda_4_loss: 0.4616 - val_loss: 2.8592 - val_distribution_lambda_2_loss: 0.7364 - val_distribution_lambda_3_loss: 1.6328 - val_distribution_lambda_4_loss: 0.4899\n",
"Epoch 52/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.7983 - distribution_lambda_2_loss: 0.7811 - distribution_lambda_3_loss: 1.5583 - distribution_lambda_4_loss: 0.4589 - val_loss: 2.8614 - val_distribution_lambda_2_loss: 0.7400 - val_distribution_lambda_3_loss: 1.6351 - val_distribution_lambda_4_loss: 0.4863\n",
"Epoch 53/2500\n",
"16/16 [==============================] - 0s 4ms/step - loss: 2.7862 - distribution_lambda_2_loss: 0.7638 - distribution_lambda_3_loss: 1.5650 - distribution_lambda_4_loss: 0.4574 - val_loss: 2.8565 - val_distribution_lambda_2_loss: 0.7386 - val_distribution_lambda_3_loss: 1.6317 - val_distribution_lambda_4_loss: 0.4862\n"
]
}
],
"source": [
"load_model_gk = True# load scaler and model weights for goalkeeper player predictor\n",
"refit_model_gk = True\n",
"\n",
"if(load_model_gk):\n",
" scaler_gk = pickle.load(open('saves/scaler_gk.pkl', 'rb'))\n",
" \n",
" X_gk_train = scaler_gk.transform(X_gk_train_)\n",
" X_gk_test = scaler_gk.transform(X_gk_test_)\n",
" \n",
" \n",
"n_epochs = 2500\n",
"\n",
"n_samples = X_gk_train.shape[0]\n",
"\n",
"batch_size = 128\n",
"\n",
"X_gk_len = X_gk_train.shape[1]\n",
"y_gk_len = y_gk_train.shape[1]\n",
"\n",
"\n",
"#tailweight_param = 1.1\n",
"\n",
"tailweight_min = 0.5\n",
"tailweight_range = 0.8\n",
"\n",
"\n",
"callback = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience = 50)\n",
"neg_log_likelihood = lambda x, rv_x: -rv_x.log_prob(x)\n",
"\n",
"\n",
"inputs = tfk.layers.Input(shape=(X_gk_len,), name=\"input\")\n",
"x = tfk.layers.Dense(16, activation=\"relu\") (inputs)\n",
"x = tfk.layers.Dropout(0.3)(x)\n",
"x = tfk.layers.Dense(16, activation=\"relu\") (x)\n",
"\n",
"\n",
"prob_dist_params = 4\n",
"\n",
"def prob_dist(t): \n",
" return tfp.distributions.SinhArcsinh(loc=t[..., 0], scale=1e-3 + tf.math.softplus(t[..., 1]), skewness = t[..., 2], \n",
" tailweight = tailweight_min + tailweight_range * tf.math.sigmoid(t[..., 3]),\n",
" allow_nan_stats = False)\n",
"\n",
"x1 = tfk.layers.Dense(16, activation=\"sigmoid\")(x)\n",
"x1 = tfk.layers.Dropout(0.2)(x1)\n",
"x1 = tfk.layers.Dense(prob_dist_params, activation=\"linear\")(x1)\n",
"out_1 = tfp.layers.DistributionLambda(prob_dist)(x1)\n",
"\n",
"x2 = tfk.layers.Dense(16, activation=\"sigmoid\")(x)\n",
"\n",
"x2 = tfk.layers.Dense(prob_dist_params, activation=\"linear\")(x2)\n",
"out_2 = tfp.layers.DistributionLambda(prob_dist)(x2)\n",
"\n",
"x3 = tfk.layers.Dense(8, activation=\"sigmoid\")(x)\n",
"x3 = tfk.layers.Dropout(0.2)(x3)\n",
"x3 = tfk.layers.Dense(1, activation=\"sigmoid\")(x3)\n",
"out_3 = tfp.layers.DistributionLambda(lambda t: tfp.distributions.Bernoulli(probs = t[..., 0]))(x3)\n",
"\n",
"modelb_gk = tf.keras.Model(inputs, [out_1, out_2, out_3])\n",
"\n",
"modelb_gk.compile(optimizer=tf.keras.optimizers.Nadam(learning_rate = 0.001), \n",
" loss=neg_log_likelihood)\n",
"\n",
"if(load_model_gk):\n",
" modelb_gk.load_weights('saves/modelb_gk')\n",
"\n",
"if( (not load_model_gk) or refit_model_gk): \n",
" modelb_gk.fit(X_gk_train.astype('float32'), [y_gk_train[:, 0].astype('float32'), y_gk_train[:, 1].astype('float32'), y_gk_train[:, 2].astype('int')], \n",
" validation_data = (X_gk_test.astype('float32'), [y_gk_test[:, 0].astype('float32'), y_gk_test[:, 1].astype('float32'), y_gk_test[:, 2].astype('int')]),\n",
" batch_size = batch_size, shuffle = True, epochs=n_epochs, verbose=True, callbacks = [callback])"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "39a9bdc6",
"metadata": {},
"outputs": [],
"source": [
"def sample_predict_gk(X, iterations = 100):\n",
" y = np.zeros((3, X.shape[0]))\n",
" \n",
" dist = modelb_gk(X)\n",
" \n",
" for i in range(iterations):\n",
" y[0, :] += dist[0].sample()\n",
" y[1, :] += dist[1].sample()\n",
" y[2, :] += dist[2].sample()\n",
" \n",
" return y.transpose() / iterations\n"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "c41cf448",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.11125466234353387\n",
"0.31109318411388387\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.04536015796966664\n",
"0.23520934604862653\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"y_gk_train_predict = sample_predict_gk(X_gk_train)\n",
"\n",
"plt.plot([0, 20], [0, 20])\n",
"\n",
"plt.scatter(y_gk_train[:, 0], y_gk_train_predict[:, 0], color = 'orange', edgecolors = 'black', s = 20)\n",
"plt.scatter(y_gk_train[:, 1], y_gk_train_predict[:, 1], color = 'green', edgecolors = 'black', s = 20)\n",
"\n",
"print(r2_score(y_gk_train[:, 0], y_gk_train_predict[:, 0]))\n",
"print(r2_score(y_gk_train[:, 1], y_gk_train_predict[:, 1]))\n",
"\n",
"plt.show()\n",
"\n",
"y_gk_test_predict = sample_predict_gk(X_gk_test)\n",
"\n",
"plt.plot([0, 20], [0, 20])\n",
"\n",
"plt.scatter(y_gk_test[:, 0], y_gk_test_predict[:, 0], color = 'orange', edgecolors = 'black', s = 20)\n",
"plt.scatter(y_gk_test[:, 1], y_gk_test_predict[:, 1], color = 'green', edgecolors = 'black', s = 20)\n",
"\n",
"print(r2_score(y_gk_test[:, 0], y_gk_test_predict[:, 0]))\n",
"print(r2_score(y_gk_test[:, 1], y_gk_test_predict[:, 1]))\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "91869883",
"metadata": {},
"source": [
"Use the following codes to save the scalers and the model weights"
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "cecf5392",
"metadata": {},
"outputs": [],
"source": [
"save_model_of = True\n",
"save_model_gk = True\n",
"\n",
"if(save_model_of):\n",
" pickle.dump(scaler, open('saves/scaler.pkl', 'wb'))\n",
" modelb.save_weights('saves/modelb')\n",
" \n",
"if(save_model_gk):\n",
" pickle.dump(scaler_gk, open('saves/scaler_gk.pkl', 'wb'))\n",
" modelb_gk.save_weights('saves/modelb_gk')\n",
" "
]
},
{
"cell_type": "markdown",
"id": "32635a0e",
"metadata": {},
"source": [
"Generalized prediction function for a player (playing for team against opp_team, at home or not)\n",
"\n",
"Estimate prediction mean and sigma (using a custom definitions).\n",
"\n",
"Generate a plot.\n"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "ddf433f9",
"metadata": {},
"outputs": [],
"source": [
"def vote_predict_NNb(player, team, opp_team, home = 1, plot = 0, log = 0, oldseason = False):\n",
" if(players['r'][player] == 'P'):\n",
" ptest = player_match_data_ext_gk(player, team, opp_team, oldseason = oldseason)\n",
"\n",
" x_ptest = np.array(ptest)[:, 3:]\n",
" r = np.array(ptest)[0, 0]\n",
"\n",
" # add home and role\n",
" xadd = np.zeros((1, 1))\n",
" xadd[0, 0] = home\n",
"\n",
" x_ptest = np.concatenate((x_ptest, xadd), axis = 1)\n",
"\n",
" x_scaled = scaler_gk.transform(x_ptest)\n",
"\n",
" dist = modelb_gk(x_scaled)\n",
" \n",
" clean_shoot_prob = dist[2].probs.numpy()[0]\n",
" else:\n",
" ptest = player_match_data_ext(player, team, opp_team, oldseason = oldseason)\n",
"\n",
" x_ptest = np.array(ptest)[:, 4:]\n",
" r = np.array(ptest)[0, 0]\n",
"\n",
" # add home and role\n",
" xadd = np.zeros((1, 4))\n",
" xadd[0, 0] = home\n",
" xadd[0, 1] = r == 'D'\n",
" xadd[0, 2] = r == 'C'\n",
" xadd[0, 3] = r == 'A'\n",
"\n",
" x_ptest = np.concatenate((x_ptest, xadd), axis = 1)\n",
"\n",
" x_scaled = scaler.transform(x_ptest)\n",
"\n",
" dist = modelb(x_scaled)\n",
" \n",
" \n",
" x = np.arange(0, 40, 0.002)\n",
"\n",
" px1 = dist[0].prob(x);\n",
" px2 = dist[1].prob(x);\n",
"\n",
" \n",
" #sample1 = dist[0].sample(10000)\n",
" #sample2 = dist[1].sample(10000)\n",
" \n",
" m1 = np.average(x, weights = px1)\n",
" m2 = np.average(x, weights = px2)\n",
" \n",
" #m1 = np.mean(sample1)\n",
" #m2 = np.mean(sample2)\n",
" \n",
" #s1 = np.std(sample1)\n",
" #s2 = np.std(sample2)\n",
" \n",
" # not standard deviation, but expected range extimated by quantile \n",
" \n",
" if(players['r'][player] == 'P'):\n",
" s1 = ( dist[0].quantile(0.9545) - m1 ) / 2\n",
" s2 = -( dist[1].quantile(1 - 0.9) - m2 ) / 2\n",
" else:\n",
" s1 = ( dist[0].quantile(0.9545) - m1 ) / 2\n",
" s2 = ( dist[1].quantile(0.9) - m2 ) / 2\n",
" \n",
"\n",
" \n",
" #y_pred_m = np.array([dist[0].loc, dist[1].loc]).flatten()\n",
" y_pred_m = np.array([m1, m2]).flatten()\n",
" #y_pred_s = np.array([dist[0].scale, dist[1].scale]).flatten()\n",
" y_pred_s = np.array([s1, s2]).flatten()\n",
" \n",
" clean_sheet_text = ''\n",
" if(players['r'][player] == 'P'):\n",
" clean_sheet_text = ' (' + \"{:.1f}\".format(clean_shoot_prob*100) + '% cs)'\n",
" \n",
" if(plot):\n",
" ax = plt.gca()\n",
" \n",
" plt.plot(x, px1, \n",
" label = 'MV ' + \"{:.2f}\".format(y_pred_m[0]) + ' ± ' + \"{:.2f}\".format(2 * y_pred_s[0]),\n",
" color = 'b')\n",
" plt.plot(x, px2, \n",
" label = 'FV ' + \"{:.2f}\".format(y_pred_m[1]) + ' + ' + \"{:.2f}\".format(2 * y_pred_s[1]) + clean_sheet_text,\n",
" color = 'g')\n",
" \n",
" plt.fill_between(x, px1, color = 'lightblue')\n",
" plt.fill_between(x, px2, color = 'lightgreen')\n",
" \n",
" plt.legend()\n",
" \n",
" plt.vlines(x = y_pred_m[0], color = 'b', ymin = 0, ymax = 3, linestyle = 'dashed')\n",
" plt.vlines(x = y_pred_m[1], color = 'g', ymin = 0, ymax = 3, linestyle = 'dashed')\n",
" \n",
" plt.title(player + ' (' + team + ' vs ' + opp_team + ')')\n",
" \n",
" plt.xlim([0, 15])\n",
" \n",
" if(players['r'][player] == 'P'): \n",
" plt.ylim([0, 2.5])\n",
" else:\n",
" plt.ylim([0, 1.5])\n",
" \n",
" plt.show()\n",
" \n",
" if(log):\n",
" print(player + ': ' + \n",
" 'MV ' + \"{:.2f}\".format(y_pred_m[0]) + ' ± ' + \"{:.2f}\".format(2 * y_pred_s[0]) +\n",
" '; FV ' + \"{:.2f}\".format(y_pred_m[1]) + ' + ' + \"{:.2f}\".format(2 * y_pred_s[1]) + clean_sheet_text);\n",
" return [y_pred_m, y_pred_s, dist]\n"
]
},
{
"cell_type": "markdown",
"id": "98817aa0",
"metadata": {},
"source": [
"Load Serie A calendar. "
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "d31bad38",
"metadata": {},
"outputs": [],
"source": [
"cal = np.array(pd.read_excel('fantacalcio/seriea_calendar.xlsx', header = None))\n",
"\n",
"cal_df = pd.DataFrame(columns = ['matchday', 'team1', 'team2'])\n",
"\n",
"matchday = 0\n",
"\n",
"for i in range(cal.shape[0]):\n",
" if(cal[i, 0][0].isnumeric()):\n",
" matchday = matchday + 1\n",
" continue\n",
" \n",
" teams = cal[i, 0].split('-')\n",
" \n",
" frame = pd.DataFrame([[matchday, teams[0], teams[1]]], columns = cal_df.columns)\n",
"\n",
" cal_df = pd.concat([cal_df, frame], ignore_index = True)\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "62b9f588",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" matchday team1 team2\n",
"0 1 Bologna Milan\n",
"1 1 Empoli Verona\n",
"2 1 Frosinone Napoli\n",
"3 1 Genoa Fiorentina\n",
"4 1 Inter Monza\n",
"5 1 Lecce Lazio\n",
"6 1 Roma Salernitana\n",
"7 1 Sassuolo Atalanta\n",
"8 1 Torino Cagliari\n",
"9 1 Udinese Juventus\n",
"10 2 Cagliari Inter\n",
"11 2 Fiorentina Lecce\n",
"12 2 Frosinone Atalanta\n",
"13 2 Verona Roma\n",
"14 2 Juventus Bologna\n",
"15 2 Lazio Genoa\n",
"16 2 Milan Torino\n",
"17 2 Monza Empoli\n",
"18 2 Napoli Sassuolo\n",
"19 2 Salernitana Udinese\n",
"20 3 Atalanta Monza\n",
"21 3 Bologna Cagliari\n",
"22 3 Empoli Juventus\n",
"23 3 Inter Fiorentina\n",
"24 3 Lecce Salernitana\n",
"25 3 Napoli Lazio\n",
"26 3 Roma Milan\n",
"27 3 Sassuolo Verona\n",
"28 3 Torino Genoa\n",
"29 3 Udinese Frosinone\n",
"30 4 Cagliari Udinese\n",
"31 4 Fiorentina Atalanta\n",
"32 4 Frosinone Sassuolo\n",
"33 4 Genoa Napoli\n",
"34 4 Verona Bologna\n",
"35 4 Inter Milan\n",
"36 4 Juventus Lazio\n",
"37 4 Monza Lecce\n",
"38 4 Roma Empoli\n",
"39 4 Salernitana Torino\n",
"40 5 Atalanta Cagliari\n",
"41 5 Bologna Napoli\n",
"42 5 Empoli Inter\n",
"43 5 Lazio Monza\n",
"44 5 Lecce Genoa\n",
"45 5 Milan Verona\n",
"46 5 Salernitana Frosinone\n",
"47 5 Sassuolo Juventus\n",
"48 5 Torino Roma\n",
"49 5 Udinese Fiorentina\n",
"50 6 Cagliari Milan\n",
"51 6 Empoli Salernitana\n",
"52 6 Frosinone Fiorentina\n",
"53 6 Genoa Roma\n",
"54 6 Verona Atalanta\n",
"55 6 Inter Sassuolo\n",
"56 6 Juventus Lecce\n",
"57 6 Lazio Torino\n",
"58 6 Monza Bologna\n",
"59 6 Napoli Udinese\n",
"60 7 Atalanta Juventus\n",
"61 7 Bologna Empoli\n",
"62 7 Fiorentina Cagliari\n",
"63 7 Lecce Napoli\n",
"64 7 Milan Lazio\n",
"65 7 Roma Frosinone\n",
"66 7 Salernitana Inter\n",
"67 7 Sassuolo Monza\n",
"68 7 Torino Verona\n",
"69 7 Udinese Genoa\n",
"70 8 Cagliari Roma\n",
"71 8 Empoli Udinese\n",
"72 8 Frosinone Verona\n",
"73 8 Genoa Milan\n",
"74 8 Inter Bologna\n",
"75 8 Juventus Torino\n",
"76 8 Lazio Atalanta\n",
"77 8 Lecce Sassuolo\n",
"78 8 Monza Salernitana\n",
"79 8 Napoli Fiorentina\n",
"80 9 Atalanta Genoa\n",
"81 9 Bologna Frosinone\n",
"82 9 Fiorentina Empoli\n",
"83 9 Verona Napoli\n",
"84 9 Milan Juventus\n",
"85 9 Roma Monza\n",
"86 9 Salernitana Cagliari\n",
"87 9 Sassuolo Lazio\n",
"88 9 Torino Inter\n",
"89 9 Udinese Lecce\n",
"90 10 Cagliari Frosinone\n",
"91 10 Empoli Atalanta\n",
"92 10 Genoa Salernitana\n",
"93 10 Inter Roma\n",
"94 10 Juventus Verona\n",
"95 10 Lazio Fiorentina\n",
"96 10 Lecce Torino\n",
"97 10 Monza Udinese\n",
"98 10 Napoli Milan\n",
"99 10 Sassuolo Bologna\n",
"100 11 Atalanta Inter\n",
"101 11 Bologna Lazio\n",
"102 11 Cagliari Genoa\n",
"103 11 Fiorentina Juventus\n",
"104 11 Frosinone Empoli\n",
"105 11 Verona Monza\n",
"106 11 Milan Udinese\n",
"107 11 Roma Lecce\n",
"108 11 Salernitana Napoli\n",
"109 11 Torino Sassuolo\n",
"110 12 Fiorentina Bologna\n",
"111 12 Genoa Verona\n",
"112 12 Inter Frosinone\n",
"113 12 Juventus Cagliari\n",
"114 12 Lazio Roma\n",
"115 12 Lecce Milan\n",
"116 12 Monza Torino\n",
"117 12 Napoli Empoli\n",
"118 12 Sassuolo Salernitana\n",
"119 12 Udinese Atalanta\n",
"120 13 Atalanta Napoli\n",
"121 13 Bologna Torino\n",
"122 13 Cagliari Monza\n",
"123 13 Empoli Sassuolo\n",
"124 13 Frosinone Genoa\n",
"125 13 Verona Lecce\n",
"126 13 Juventus Inter\n",
"127 13 Milan Fiorentina\n",
"128 13 Roma Udinese\n",
"129 13 Salernitana Lazio\n",
"130 14 Fiorentina Salernitana\n",
"131 14 Genoa Empoli\n",
"132 14 Lazio Cagliari\n",
"133 14 Lecce Bologna\n",
"134 14 Milan Frosinone\n",
"135 14 Monza Juventus\n",
"136 14 Napoli Inter\n",
"137 14 Sassuolo Roma\n",
"138 14 Torino Atalanta\n",
"139 14 Udinese Verona\n",
"140 15 Atalanta Milan\n",
"141 15 Cagliari Sassuolo\n",
"142 15 Empoli Lecce\n",
"143 15 Frosinone Torino\n",
"144 15 Verona Lazio\n",
"145 15 Inter Udinese\n",
"146 15 Juventus Napoli\n",
"147 15 Monza Genoa\n",
"148 15 Roma Fiorentina\n",
"149 15 Salernitana Bologna\n",
"150 16 Atalanta Salernitana\n",
"151 16 Bologna Roma\n",
"152 16 Fiorentina Verona\n",
"153 16 Genoa Juventus\n",
"154 16 Lazio Inter\n",
"155 16 Lecce Frosinone\n",
"156 16 Milan Monza\n",
"157 16 Napoli Cagliari\n",
"158 16 Torino Empoli\n",
"159 16 Udinese Sassuolo\n",
"160 17 Bologna Atalanta\n",
"161 17 Empoli Lazio\n",
"162 17 Frosinone Juventus\n",
"163 17 Verona Cagliari\n",
"164 17 Inter Lecce\n",
"165 17 Monza Fiorentina\n",
"166 17 Roma Napoli\n",
"167 17 Salernitana Milan\n",
"168 17 Sassuolo Genoa\n",
"169 17 Torino Udinese\n",
"170 18 Atalanta Lecce\n",
"171 18 Cagliari Empoli\n",
"172 18 Fiorentina Torino\n",
"173 18 Genoa Inter\n",
"174 18 Verona Salernitana\n",
"175 18 Juventus Roma\n",
"176 18 Milan Sassuolo\n",
"177 18 Udinese Bologna\n",
"178 18 Lazio Frosinone\n",
"179 18 Napoli Monza\n",
"180 19 Bologna Genoa\n",
"181 19 Empoli Milan\n",
"182 19 Frosinone Monza\n",
"183 19 Roma Atalanta\n",
"184 19 Lecce Cagliari\n",
"185 19 Sassuolo Fiorentina\n",
"186 19 Inter Verona\n",
"187 19 Salernitana Juventus\n",
"188 19 Udinese Lazio\n",
"189 19 Torino Napoli\n",
"190 20 Atalanta Frosinone\n",
"191 20 Cagliari Bologna\n",
"192 20 Fiorentina Udinese\n",
"193 20 Genoa Torino\n",
"194 20 Verona Empoli\n",
"195 20 Juventus Sassuolo\n",
"196 20 Lazio Lecce\n",
"197 20 Milan Roma\n",
"198 20 Monza Inter\n",
"199 20 Napoli Salernitana\n",
"200 21 Bologna Fiorentina\n",
"201 21 Empoli Monza\n",
"202 21 Frosinone Cagliari\n",
"203 21 Inter Atalanta\n",
"204 21 Lecce Juventus\n",
"205 21 Roma Verona\n",
"206 21 Salernitana Genoa\n",
"207 21 Sassuolo Napoli\n",
"208 21 Torino Lazio\n",
"209 21 Udinese Milan\n",
"210 22 Atalanta Udinese\n",
"211 22 Cagliari Torino\n",
"212 22 Fiorentina Inter\n",
"213 22 Genoa Lecce\n",
"214 22 Verona Frosinone\n",
"215 22 Juventus Empoli\n",
"216 22 Lazio Napoli\n",
"217 22 Milan Bologna\n",
"218 22 Monza Sassuolo\n",
"219 22 Salernitana Roma\n",
"220 23 Atalanta Lazio\n",
"221 23 Bologna Sassuolo\n",
"222 23 Empoli Genoa\n",
"223 23 Frosinone Milan\n",
"224 23 Inter Juventus\n",
"225 23 Lecce Fiorentina\n",
"226 23 Napoli Verona\n",
"227 23 Roma Cagliari\n",
"228 23 Torino Salernitana\n",
"229 23 Udinese Monza\n",
"230 24 Bologna Lecce\n",
"231 24 Cagliari Lazio\n",
"232 24 Fiorentina Frosinone\n",
"233 24 Genoa Atalanta\n",
"234 24 Juventus Udinese\n",
"235 24 Milan Napoli\n",
"236 24 Monza Verona\n",
"237 24 Roma Inter\n",
"238 24 Salernitana Empoli\n",
"239 24 Sassuolo Torino\n",
"240 25 Atalanta Sassuolo\n",
"241 25 Empoli Fiorentina\n",
"242 25 Frosinone Roma\n",
"243 25 Verona Juventus\n",
"244 25 Inter Salernitana\n",
"245 25 Lazio Bologna\n",
"246 25 Monza Milan\n",
"247 25 Napoli Genoa\n",
"248 25 Torino Lecce\n",
"249 25 Udinese Cagliari\n",
"250 26 Bologna Verona\n",
"251 26 Cagliari Napoli\n",
"252 26 Fiorentina Lazio\n",
"253 26 Genoa Udinese\n",
"254 26 Juventus Frosinone\n",
"255 26 Lecce Inter\n",
"256 26 Milan Atalanta\n",
"257 26 Roma Torino\n",
"258 26 Salernitana Monza\n",
"259 26 Sassuolo Empoli\n",
"260 27 Atalanta Bologna\n",
"261 27 Empoli Cagliari\n",
"262 27 Frosinone Lecce\n",
"263 27 Verona Sassuolo\n",
"264 27 Inter Genoa\n",
"265 27 Lazio Milan\n",
"266 27 Monza Roma\n",
"267 27 Napoli Juventus\n",
"268 27 Torino Fiorentina\n",
"269 27 Udinese Salernitana\n",
"270 28 Bologna Inter\n",
"271 28 Cagliari Salernitana\n",
"272 28 Fiorentina Roma\n",
"273 28 Genoa Monza\n",
"274 28 Juventus Atalanta\n",
"275 28 Lazio Udinese\n",
"276 28 Lecce Verona\n",
"277 28 Milan Empoli\n",
"278 28 Napoli Torino\n",
"279 28 Sassuolo Frosinone\n",
"280 29 Atalanta Fiorentina\n",
"281 29 Empoli Bologna\n",
"282 29 Frosinone Lazio\n",
"283 29 Verona Milan\n",
"284 29 Inter Napoli\n",
"285 29 Juventus Genoa\n",
"286 29 Monza Cagliari\n",
"287 29 Roma Sassuolo\n",
"288 29 Salernitana Lecce\n",
"289 29 Udinese Torino\n",
"290 30 Bologna Salernitana\n",
"291 30 Cagliari Verona\n",
"292 30 Fiorentina Milan\n",
"293 30 Genoa Frosinone\n",
"294 30 Inter Empoli\n",
"295 30 Lazio Juventus\n",
"296 30 Lecce Roma\n",
"297 30 Napoli Atalanta\n",
"298 30 Sassuolo Udinese\n",
"299 30 Torino Monza\n",
"300 31 Cagliari Atalanta\n",
"301 31 Empoli Torino\n",
"302 31 Frosinone Bologna\n",
"303 31 Verona Genoa\n",
"304 31 Juventus Fiorentina\n",
"305 31 Milan Lecce\n",
"306 31 Monza Napoli\n",
"307 31 Roma Lazio\n",
"308 31 Salernitana Sassuolo\n",
"309 31 Udinese Inter\n",
"310 32 Atalanta Verona\n",
"311 32 Bologna Monza\n",
"312 32 Fiorentina Genoa\n",
"313 32 Inter Cagliari\n",
"314 32 Lazio Salernitana\n",
"315 32 Lecce Empoli\n",
"316 32 Napoli Frosinone\n",
"317 32 Sassuolo Milan\n",
"318 32 Torino Juventus\n",
"319 32 Udinese Roma\n",
"320 33 Cagliari Juventus\n",
"321 33 Empoli Napoli\n",
"322 33 Genoa Lazio\n",
"323 33 Verona Udinese\n",
"324 33 Milan Inter\n",
"325 33 Monza Atalanta\n",
"326 33 Roma Bologna\n",
"327 33 Salernitana Fiorentina\n",
"328 33 Sassuolo Lecce\n",
"329 33 Torino Frosinone\n",
"330 34 Atalanta Empoli\n",
"331 34 Bologna Udinese\n",
"332 34 Fiorentina Sassuolo\n",
"333 34 Frosinone Salernitana\n",
"334 34 Genoa Cagliari\n",
"335 34 Inter Torino\n",
"336 34 Juventus Milan\n",
"337 34 Lazio Verona\n",
"338 34 Lecce Monza\n",
"339 34 Napoli Roma\n",
"340 35 Cagliari Lecce\n",
"341 35 Empoli Frosinone\n",
"342 35 Verona Fiorentina\n",
"343 35 Milan Genoa\n",
"344 35 Monza Lazio\n",
"345 35 Roma Juventus\n",
"346 35 Salernitana Atalanta\n",
"347 35 Sassuolo Inter\n",
"348 35 Torino Bologna\n",
"349 35 Udinese Napoli\n",
"350 36 Atalanta Roma\n",
"351 36 Fiorentina Monza\n",
"352 36 Frosinone Inter\n",
"353 36 Genoa Sassuolo\n",
"354 36 Verona Torino\n",
"355 36 Juventus Salernitana\n",
"356 36 Lazio Empoli\n",
"357 36 Lecce Udinese\n",
"358 36 Milan Cagliari\n",
"359 36 Napoli Bologna\n",
"360 37 Bologna Juventus\n",
"361 37 Fiorentina Napoli\n",
"362 37 Inter Lazio\n",
"363 37 Lecce Atalanta\n",
"364 37 Monza Frosinone\n",
"365 37 Roma Genoa\n",
"366 37 Salernitana Verona\n",
"367 37 Sassuolo Cagliari\n",
"368 37 Torino Milan\n",
"369 37 Udinese Empoli\n",
"370 38 Atalanta Torino\n",
"371 38 Cagliari Fiorentina\n",
"372 38 Empoli Roma\n",
"373 38 Frosinone Udinese\n",
"374 38 Genoa Bologna\n",
"375 38 Verona Inter\n",
"376 38 Juventus Monza\n",
"377 38 Lazio Sassuolo\n",
"378 38 Milan Salernitana\n",
"379 38 Napoli Lecce\n"
]
}
],
"source": [
"print(cal_df.to_string())"
]
},
{
"cell_type": "markdown",
"id": "62872819",
"metadata": {},
"source": [
"Function for generating a prediction for a player, taking match data from a given matchday, according to Serie A calendar."
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "c58ba41d",
"metadata": {},
"outputs": [],
"source": [
"def PlayerMatch(player, match = 0):\n",
" team = players.loc[player]['team']\n",
" \n",
" if(match == 0):\n",
" oppteam = 'Avg'\n",
" home = 1\n",
" else:\n",
" for i in range (cal_df.shape[0]):\n",
" if(cal_df['matchday'][i] == match):\n",
" if(cal_df['team1'][i] == team):\n",
" home = 1\n",
" oppteam = cal_df['team2'][i]\n",
" elif(cal_df['team2'][i] == team):\n",
" home = 0\n",
" oppteam = cal_df['team1'][i]\n",
" \n",
" return [player, team, oppteam, home]\n",
"\n",
"def predict_player(player, match = 0, plot = 0, log = 0, oldseason = False):\n",
" [player, team, oppteam, home] = PlayerMatch(player, match)\n",
" return vote_predict_NNb(player, team, oppteam, home = home, plot = plot, log = log, oldseason = oldseason)"
]
},
{
"cell_type": "markdown",
"id": "e8b63a98",
"metadata": {},
"source": [
"Load current matchday playing probabilities for Serie A players."
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "f79792b6",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>starter</th>\n",
" <th>percentage</th>\n",
" </tr>\n",
" <tr>\n",
" <th>player</th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Berisha</th>\n",
" <td>1.0</td>\n",
" <td>90</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Ebuehi</th>\n",
" <td>1.0</td>\n",
" <td>90</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Ismajli</th>\n",
" <td>1.0</td>\n",
" <td>80</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Luperto</th>\n",
" <td>1.0</td>\n",
" <td>90</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Bastoni S.</th>\n",
" <td>1.0</td>\n",
" <td>85</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Ikone'</th>\n",
" <td>0.0</td>\n",
" <td>30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Barak</th>\n",
" <td>0.0</td>\n",
" <td>40</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sottil</th>\n",
" <td>0.0</td>\n",
" <td>40</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Kouame'</th>\n",
" <td>0.0</td>\n",
" <td>55</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Beltran L.</th>\n",
" <td>0.0</td>\n",
" <td>60</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>462 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" starter percentage\n",
"player \n",
"Berisha 1.0 90\n",
"Ebuehi 1.0 90\n",
"Ismajli 1.0 80\n",
"Luperto 1.0 90\n",
"Bastoni S. 1.0 85\n",
"... ... ...\n",
"Ikone' 0.0 30\n",
"Barak 0.0 40\n",
"Sottil 0.0 40\n",
"Kouame' 0.0 55\n",
"Beltran L. 0.0 60\n",
"\n",
"[462 rows x 2 columns]"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"probables = pd.read_excel('mid_outputs/match_probable_players.xlsx', index_col = 0) \n",
"\n",
"probables"
]
},
{
"cell_type": "markdown",
"id": "e4751014",
"metadata": {},
"source": [
"Generate prediction data for each Serie A player for the current matchday.\n",
"\n",
"Output to excel file, using a template made for data elaboration."
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "5e63c2b7",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Sommer: MV 6.20 ± 0.78; FV 5.60 + 1.26 (63.2% cs)\n",
"Skorupski: MV 6.03 ± 0.91; FV 3.80 + 2.05 (1.6% cs)\n",
"Di Gregorio: MV 6.14 ± 0.77; FV 5.73 + 1.28 (74.7% cs)\n",
"Meret: MV 5.71 ± 0.99; FV 3.10 + 2.68 (0.8% cs)\n",
"Provedel: MV 6.21 ± 0.87; FV 4.88 + 1.44 (16.7% cs)\n",
"Terracciano: MV 6.19 ± 0.82; FV 4.74 + 1.52 (12.4% cs)\n",
"Szczesny: MV 6.14 ± 0.81; FV 5.53 + 1.26 (59.4% cs)\n",
"Falcone: MV 6.15 ± 0.86; FV 4.98 + 1.40 (14.9% cs)\n",
"Milinkovic-Savic V.: MV 6.24 ± 0.90; FV 5.07 + 1.60 (25.0% cs)\n",
"Maignan: MV 6.20 ± 0.93; FV 5.10 + 1.50 (22.0% cs)\n",
"Montipo': MV 6.16 ± 0.86; FV 4.97 + 1.38 (27.6% cs)\n",
"Rui Patricio: MV 6.16 ± 0.79; FV 5.03 + 1.35 (17.8% cs)\n",
"Turati: MV 6.12 ± 0.90; FV 4.97 + 1.37 (22.7% cs)\n",
"Consigli: MV 6.15 ± 0.91; FV 4.03 + 2.07 (2.8% cs)\n",
"Musso: MV 6.13 ± 0.79; FV 5.56 + 1.26 (54.3% cs)\n",
"Carnesecchi: MV 6.11 ± 0.85; FV 5.00 + 1.36 (21.2% cs)\n",
"Radunovic: MV 5.35 ± 1.05; FV 2.98 + 2.92 (0.9% cs)\n",
"Silvestri: MV 6.16 ± 0.80; FV 5.63 + 1.27 (59.2% cs)\n",
"Martinez Jo.: MV 6.04 ± 0.91; FV 3.74 + 2.11 (1.9% cs)\n",
"Ochoa: MV 6.20 ± 0.91; FV 3.71 + 2.22 (2.6% cs)\n",
"Sportiello: MV 6.15 ± 0.90; FV 5.05 + 1.38 (31.9% cs)\n",
"Berisha: MV 6.25 ± 0.91; FV 4.95 + 1.44 (12.6% cs)\n",
"Caprile: MV 6.23 ± 0.90; FV 4.90 + 1.55 (14.1% cs)\n",
"Perin: MV 6.16 ± 0.80; FV 5.40 + 1.26 (51.7% cs)\n",
"Cragno: MV 6.06 ± 0.93; FV 3.49 + 2.46 (1.1% cs)\n",
"Mirante: MV 6.20 ± 0.93; FV 5.10 + 1.50 (22.0% cs)\n",
"Sepe: MV 6.21 ± 0.87; FV 4.88 + 1.44 (16.7% cs)\n",
"Leali: MV 6.04 ± 0.91; FV 3.74 + 2.11 (1.9% cs)\n",
"Lamanna: MV 6.14 ± 0.77; FV 5.72 + 1.28 (74.0% cs)\n",
"Sommariva: MV 6.04 ± 0.91; FV 3.74 + 2.11 (1.9% cs)\n",
"Pegolo: MV 6.14 ± 0.91; FV 3.90 + 2.13 (2.0% cs)\n",
"Perilli: MV 6.16 ± 0.86; FV 4.97 + 1.38 (27.6% cs)\n",
"Padelli: MV 6.16 ± 0.80; FV 5.63 + 1.27 (59.2% cs)\n",
"Scuffet: MV 5.35 ± 1.05; FV 2.98 + 2.92 (0.9% cs)\n",
"Gollini: MV 5.71 ± 0.99; FV 3.10 + 2.68 (0.8% cs)\n",
"Perisan: MV 6.21 ± 0.88; FV 4.71 + 1.65 (10.9% cs)\n",
"Audero: MV 6.20 ± 0.78; FV 5.60 + 1.26 (63.2% cs)\n",
"Di Gennaro: MV 6.20 ± 0.78; FV 5.60 + 1.26 (63.2% cs)\n",
"Pinsoglio: MV 6.14 ± 0.81; FV 5.53 + 1.26 (59.4% cs)\n",
"Aresti: MV 5.35 ± 1.05; FV 2.98 + 2.92 (0.9% cs)\n",
"Fiorillo: MV 6.20 ± 0.91; FV 3.71 + 2.22 (2.6% cs)\n",
"Cerofolini: MV 6.12 ± 0.90; FV 4.98 + 1.37 (23.0% cs)\n",
"Rossi F.: MV 6.13 ± 0.79; FV 5.56 + 1.26 (54.3% cs)\n",
"Costil: MV 6.20 ± 0.91; FV 3.71 + 2.22 (2.6% cs)\n",
"Ravaglia F.: MV 6.03 ± 0.91; FV 3.80 + 2.05 (1.6% cs)\n",
"Frattali: MV 6.12 ± 0.90; FV 4.97 + 1.37 (22.7% cs)\n",
"Contini: MV 5.71 ± 0.99; FV 3.10 + 2.68 (0.8% cs)\n",
"Brancolini: MV 6.15 ± 0.86; FV 4.98 + 1.40 (14.9% cs)\n",
"Berardi A.: MV 6.16 ± 0.86; FV 4.97 + 1.38 (27.6% cs)\n",
"Gemello: MV 6.24 ± 0.90; FV 5.07 + 1.60 (25.0% cs)\n",
"Boer: MV 6.16 ± 0.79; FV 5.03 + 1.35 (17.8% cs)\n",
"Bagnolini: MV 6.03 ± 0.91; FV 3.80 + 2.05 (1.6% cs)\n",
"Svilar: MV 6.16 ± 0.79; FV 5.03 + 1.35 (17.8% cs)\n",
"Sorrentino A.: MV 6.14 ± 0.77; FV 5.75 + 1.28 (74.3% cs)\n",
"Martinelli T.: MV 6.19 ± 0.82; FV 4.74 + 1.52 (12.4% cs)\n",
"Popa: MV 6.24 ± 0.90; FV 5.07 + 1.60 (25.0% cs)\n",
"Stubljar: MV 6.25 ± 0.91; FV 4.95 + 1.44 (12.6% cs)\n",
"Gori: MV 6.14 ± 0.77; FV 5.72 + 1.28 (74.0% cs)\n",
"Christensen O.: MV 6.12 ± 0.84; FV 4.16 + 1.81 (3.6% cs)\n",
"Borbei: MV 6.15 ± 0.86; FV 4.98 + 1.40 (14.9% cs)\n",
"Okoye: MV 6.16 ± 0.80; FV 5.63 + 1.27 (59.2% cs)\n",
"Mandas: MV 6.21 ± 0.87; FV 4.88 + 1.44 (16.7% cs)\n",
"Dimarco: MV 6.30 ± 0.69; FV 6.53 + 1.05\n",
"Di Lorenzo: MV 6.22 ± 1.15; FV 6.58 + 1.76\n",
"Hernandez T.: MV 6.13 ± 1.24; FV 6.66 + 2.20\n",
"Dumfries: MV 6.26 ± 0.78; FV 6.56 + 1.27\n",
"Carlos Augusto: MV 6.23 ± 0.78; FV 6.45 + 1.13\n",
"Schuurs: MV 5.97 ± 0.86; FV 6.12 + 1.16\n",
"Spinazzola: MV 6.26 ± 0.79; FV 6.61 + 1.42\n",
"Danilo: MV 6.18 ± 0.90; FV 6.41 + 1.29\n",
"Tomori: MV 6.16 ± 1.10; FV 6.40 + 1.54\n",
"Bastoni: MV 6.26 ± 0.78; FV 6.33 + 0.81\n",
"Buongiorno: MV 5.85 ± 0.94; FV 6.03 + 1.25\n",
"Pavard: MV 6.15 ± 0.61; FV 6.24 + 0.69\n",
"Biraghi: MV 5.81 ± 1.09; FV 6.12 + 1.60\n",
"Zappacosta: MV 6.03 ± 0.97; FV 6.21 + 1.33\n",
"Mancini: MV 6.10 ± 0.98; FV 6.41 + 1.47\n",
"Darmian: MV 6.15 ± 0.64; FV 6.25 + 0.70\n",
"Martinez Quarta: MV 5.86 ± 1.27; FV 5.99 + 1.61\n",
"Posch: MV 5.61 ± 0.99; FV 5.66 + 1.12\n",
"Romagnoli S.: MV 6.19 ± 0.86; FV 6.48 + 1.44\n",
"De Vrij: MV 6.23 ± 0.69; FV 6.26 + 0.64\n",
"Romagnoli: MV 5.88 ± 0.99; FV 5.86 + 1.11\n",
"Bremer: MV 6.03 ± 0.85; FV 6.08 + 0.93\n",
"Smalling: MV 6.19 ± 0.85; FV 6.48 + 1.31\n",
"Rrahmani: MV 5.96 ± 1.12; FV 5.92 + 1.26\n",
"Rodriguez R.: MV 5.90 ± 0.75; FV 5.89 + 0.76\n",
"Dragusin: MV 5.90 ± 1.07; FV 6.06 + 1.38\n",
"Vasquez: MV 6.11 ± 0.66; FV 6.14 + 0.65\n",
"Scalvini: MV 6.07 ± 0.96; FV 6.23 + 1.26\n",
"Holm: MV 6.04 ± 0.65; FV 6.14 + 0.75\n",
"Kristensen: MV 6.05 ± 0.67; FV 6.30 + 1.01\n",
"Calabria: MV 6.04 ± 1.01; FV 6.26 + 1.42\n",
"Acerbi: MV 6.06 ± 0.55; FV 6.07 + 0.48\n",
"Cuadrado: MV 6.04 ± 0.69; FV 6.11 + 0.72\n",
"Marchizza: MV 6.09 ± 0.73; FV 6.24 + 0.86\n",
"Bani: MV 5.89 ± 1.30; FV 6.13 + 1.84\n",
"Kolasinac: MV 6.02 ± 0.73; FV 6.13 + 0.88\n",
"Toljan: MV 5.88 ± 0.84; FV 5.94 + 1.02\n",
"Bakker: MV 6.06 ± 0.65; FV 6.19 + 0.92\n",
"Ruggeri: MV 6.15 ± 0.98; FV 6.43 + 1.50\n",
"Ebuehi: MV 5.98 ± 0.73; FV 6.10 + 0.93\n",
"Mazzocchi: MV 5.67 ± 0.74; FV 5.64 + 0.73\n",
"Doig: MV 6.02 ± 1.00; FV 6.26 + 1.43\n",
"Gendrey: MV 5.91 ± 0.74; FV 5.93 + 0.86\n",
"Thiaw: MV 5.80 ± 1.39; FV 5.73 + 1.36\n",
"Mario Rui: MV 5.90 ± 0.92; FV 5.91 + 1.04\n",
"Milenkovic: MV 5.64 ± 1.27; FV 5.69 + 1.50\n",
"Kyriakopoulos: MV 6.20 ± 0.93; FV 6.36 + 1.31\n",
"Casale: MV 5.72 ± 0.93; FV 5.70 + 1.03\n",
"Kamara H.: MV 6.00 ± 0.49; FV 6.03 + 0.45\n",
"Terracciano F.: MV 5.96 ± 0.74; FV 6.00 + 0.80\n",
"Baschirotto: MV 5.93 ± 0.94; FV 6.01 + 1.24\n",
"Bijol: MV 6.07 ± 0.87; FV 6.23 + 1.17\n",
"Lucumi': MV 5.53 ± 1.00; FV 5.51 + 1.06\n",
"Kristiansen: MV 5.72 ± 0.88; FV 5.77 + 1.07\n",
"Beukema: MV 5.61 ± 1.09; FV 5.60 + 1.24\n",
"Natan: MV 6.00 ± 0.93; FV 6.03 + 1.08\n",
"Faraoni: MV 5.88 ± 0.73; FV 5.97 + 0.91\n",
"Toloi: MV 6.13 ± 0.94; FV 6.30 + 1.25\n",
"Djimsiti: MV 6.03 ± 0.68; FV 6.05 + 0.66\n",
"Lazzari: MV 5.93 ± 0.71; FV 5.93 + 0.73\n",
"Lazaro: MV 5.97 ± 0.71; FV 6.01 + 0.78\n",
"Gallo: MV 5.93 ± 0.82; FV 5.95 + 0.99\n",
"Bellanova: MV 5.63 ± 1.17; FV 5.65 + 1.30\n",
"Mari': MV 6.10 ± 0.83; FV 6.17 + 1.00\n",
"Erlic: MV 5.88 ± 0.81; FV 5.86 + 0.82\n",
"Bastoni S.: MV 6.02 ± 0.91; FV 6.36 + 1.53\n",
"Perez N.: MV 5.95 ± 0.71; FV 5.96 + 0.75\n",
"Pedersen: MV 5.92 ± 0.55; FV 5.91 + 0.55\n",
"Izzo: MV 6.11 ± 0.86; FV 6.19 + 1.08\n",
"D'ambrosio: MV 6.04 ± 0.57; FV 5.99 + 0.51\n",
"Luperto: MV 5.84 ± 0.94; FV 5.77 + 1.02\n",
"Florenzi: MV 6.15 ± 0.93; FV 6.31 + 1.22\n",
"De Silvestri: MV 5.62 ± 0.91; FV 5.66 + 1.01\n",
"Marusic: MV 5.69 ± 0.98; FV 5.63 + 1.06\n",
"Magnani: MV 5.93 ± 0.90; FV 5.94 + 0.99\n",
"N'dicka: MV 5.96 ± 0.71; FV 6.00 + 0.74\n",
"Augello: MV 5.76 ± 0.83; FV 5.76 + 0.95\n",
"Dawidowicz: MV 5.92 ± 0.75; FV 5.91 + 0.79\n",
"Carboni A.: MV 6.06 ± 0.75; FV 6.09 + 0.84\n",
"Caldirola: MV 6.10 ± 0.88; FV 6.22 + 1.20\n",
"Llorente D.: MV 5.99 ± 0.71; FV 6.04 + 0.71\n",
"Parisi: MV 5.83 ± 1.00; FV 6.00 + 1.37\n",
"Cambiaso: MV 5.99 ± 0.80; FV 6.03 + 0.78\n",
"Bradaric: MV 5.76 ± 0.84; FV 5.77 + 0.93\n",
"Pongracic: MV 5.92 ± 0.91; FV 5.89 + 1.09\n",
"Viti: MV 5.90 ± 0.78; FV 5.85 + 0.70\n",
"Ostigard: MV 5.91 ± 1.28; FV 6.27 + 2.08\n",
"Olivera: MV 5.96 ± 0.79; FV 6.05 + 0.97\n",
"Ebosele: MV 5.98 ± 0.76; FV 6.02 + 0.77\n",
"Dodo': MV 5.70 ± 1.25; FV 5.77 + 1.49\n",
"Hien: MV 5.90 ± 0.82; FV 5.88 + 0.85\n",
"Azzi: MV 5.86 ± 0.68; FV 5.86 + 0.72\n",
"Kayode: MV 5.96 ± 1.11; FV 6.03 + 1.28\n",
"Dorgu: MV 5.95 ± 0.53; FV 5.93 + 0.49\n",
"Hysaj: MV 5.74 ± 0.81; FV 5.76 + 0.93\n",
"Juan Jesus: MV 5.96 ± 0.87; FV 5.94 + 0.92\n",
"Sabelli: MV 5.95 ± 0.59; FV 6.01 + 0.73\n",
"Hateboer: MV 5.93 ± 0.86; FV 6.08 + 1.20\n",
"Martin: MV 5.66 ± 1.10; FV 5.70 + 1.31\n",
"Mina: MV 5.79 ± 0.85; FV 5.97 + 1.12\n",
"Zappa: MV 5.60 ± 0.86; FV 5.51 + 0.89\n",
"Calafiori: MV 5.51 ± 1.14; FV 5.51 + 1.26\n",
"Monterisi: MV 6.21 ± 1.03; FV 6.66 + 1.85\n",
"Kalulu: MV 5.83 ± 1.22; FV 5.87 + 1.38\n",
"Vojvoda: MV 5.79 ± 0.80; FV 5.86 + 0.94\n",
"De Winter: MV 5.77 ± 1.10; FV 5.76 + 1.26\n",
"Gatti: MV 5.80 ± 1.07; FV 5.64 + 1.10\n",
"Birindelli: MV 6.02 ± 0.70; FV 6.01 + 0.75\n",
"Zemura: MV 5.94 ± 0.47; FV 5.93 + 0.40\n",
"Hatzidiakos: MV 5.68 ± 1.10; FV 5.55 + 1.24\n",
"Wieteska: MV 5.63 ± 1.22; FV 5.47 + 1.40\n",
"Masina: MV 6.24 ± 0.93; FV 6.76 + 1.90\n",
"Gyomber: MV 5.71 ± 0.86; FV 5.64 + 0.86\n",
"Alex Sandro: MV 5.85 ± 1.01; FV 5.72 + 1.01\n",
"Lirola: MV 6.05 ± 0.88; FV 6.25 + 1.16\n",
"Palomino: MV 6.07 ± 0.82; FV 6.18 + 1.00\n",
"Pellegrini Lu.: MV 5.68 ± 0.72; FV 5.59 + 0.69\n",
"Djidji: MV 5.70 ± 0.87; FV 5.74 + 0.97\n",
"Kabasele: MV 5.98 ± 0.59; FV 6.00 + 0.60\n",
"Ranieri L.: MV 5.62 ± 1.14; FV 5.64 + 1.29\n",
"Zortea: MV 6.05 ± 0.84; FV 6.33 + 1.28\n",
"Pirola: MV 5.71 ± 0.79; FV 5.68 + 0.80\n",
"Lovato: MV 5.65 ± 0.83; FV 5.57 + 0.83\n",
"Ismajli: MV 5.91 ± 0.72; FV 5.89 + 0.63\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Vina: MV 5.69 ± 1.01; FV 5.70 + 1.15\n",
"Obert: MV 5.66 ± 0.99; FV 5.55 + 1.08\n",
"Tressoldi: MV 5.92 ± 0.89; FV 5.98 + 1.08\n",
"Dossena: MV 5.51 ± 1.04; FV 5.39 + 1.15\n",
"Oyono: MV 5.92 ± 0.56; FV 5.90 + 0.46\n",
"Touba: MV 5.99 ± 0.82; FV 6.06 + 1.05\n",
"Sazonov: MV 5.89 ± 0.72; FV 5.92 + 0.81\n",
"Patric: MV 5.84 ± 0.68; FV 5.80 + 0.68\n",
"Pezzella Giu.: MV 5.77 ± 0.68; FV 5.70 + 0.68\n",
"Ferrari G.: MV 5.82 ± 0.85; FV 5.88 + 1.04\n",
"Venuti: MV 5.89 ± 0.67; FV 5.87 + 0.74\n",
"Karsdorp: MV 5.99 ± 0.54; FV 6.02 + 0.52\n",
"Kjaer: MV 5.67 ± 1.21; FV 5.53 + 1.21\n",
"Lykogiannis: MV 5.53 ± 0.72; FV 5.47 + 0.65\n",
"Walukiewicz: MV 5.78 ± 0.89; FV 5.71 + 0.94\n",
"Okoli: MV 5.89 ± 0.75; FV 5.87 + 0.69\n",
"Amione: MV 5.90 ± 0.85; FV 5.95 + 1.05\n",
"Di Pardo: MV 5.73 ± 0.92; FV 5.66 + 0.99\n",
"Hefti: MV 5.60 ± 1.00; FV 5.51 + 0.98\n",
"Ehizibue: MV 6.03 ± 0.88; FV 6.28 + 1.33\n",
"Vogliacco: MV 5.81 ± 1.11; FV 5.83 + 1.30\n",
"Rugani: MV 6.03 ± 0.53; FV 6.04 + 0.48\n",
"Goldaniga: MV 5.65 ± 1.17; FV 5.51 + 1.34\n",
"Pereira P.: MV 6.13 ± 0.83; FV 6.21 + 1.00\n",
"Fazio: MV 5.82 ± 1.13; FV 5.90 + 1.40\n",
"Bereszynski: MV 5.82 ± 0.80; FV 5.78 + 0.88\n",
"Gunter: MV 5.72 ± 0.96; FV 5.67 + 0.99\n",
"Soumaoro: MV 5.52 ± 1.24; FV 5.49 + 1.44\n",
"Zanoli: MV 6.03 ± 1.09; FV 6.17 + 1.45\n",
"Daniliuc: MV 5.77 ± 0.89; FV 5.75 + 0.99\n",
"Soppy: MV 5.93 ± 0.66; FV 5.97 + 0.75\n",
"Zima: MV 5.73 ± 1.01; FV 5.68 + 1.05\n",
"Haps: MV 5.65 ± 1.15; FV 5.68 + 1.34\n",
"Coppola D.: MV 5.82 ± 0.67; FV 5.78 + 0.68\n",
"Cacace: MV 5.85 ± 0.65; FV 5.81 + 0.66\n",
"Sambia: MV 5.88 ± 0.74; FV 5.87 + 0.76\n",
"Guessand A.: MV 6.10 ± 0.83; FV 6.24 + 1.05\n",
"Cabal: MV 5.99 ± 0.70; FV 6.02 + 0.74\n",
"Missori: MV 5.93 ± 0.98; FV 5.98 + 1.18\n",
"Bisseck: MV 6.11 ± 0.86; FV 6.22 + 0.99\n",
"Ferreira J.: MV 5.90 ± 0.48; FV 5.87 + 0.46\n",
"Corazza: MV 5.54 ± 0.82; FV 5.50 + 0.80\n",
"Kristensen T.: MV 5.90 ± 0.56; FV 5.87 + 0.58\n",
"Dermaku: MV 5.98 ± 0.83; FV 6.05 + 1.09\n",
"Tonelli: MV 5.85 ± 0.72; FV 5.81 + 0.66\n",
"De Sciglio: MV 5.90 ± 0.60; FV 5.88 + 0.50\n",
"Capradossi: MV 5.82 ± 1.12; FV 5.74 + 1.23\n",
"Bonifazi: MV 5.45 ± 1.04; FV 5.41 + 1.05\n",
"Donati: MV 6.22 ± 1.18; FV 6.44 + 1.64\n",
"Bettella: MV 6.11 ± 0.85; FV 6.24 + 1.11\n",
"Kumbulla: MV 5.71 ± 1.47; FV 5.42 + 1.25\n",
"Celik: MV 5.87 ± 0.74; FV 5.83 + 0.75\n",
"Amey: MV 5.55 ± 1.05; FV 5.58 + 1.17\n",
"Cittadini: MV 6.11 ± 0.85; FV 6.24 + 1.11\n",
"Gila: MV 5.76 ± 0.89; FV 5.71 + 0.94\n",
"Ebosse: MV 5.91 ± 0.52; FV 5.88 + 0.47\n",
"Bronn: MV 5.70 ± 0.77; FV 5.62 + 0.74\n",
"Guarino: MV 5.95 ± 0.79; FV 6.00 + 0.87\n",
"Carboni F.: MV 6.11 ± 0.81; FV 6.18 + 0.97\n",
"Smajlovic: MV 5.99 ± 0.85; FV 6.10 + 1.17\n",
"Matturro: MV 5.67 ± 1.18; FV 5.63 + 1.34\n",
"N'guessan: MV 5.79 ± 0.96; FV 5.88 + 1.17\n",
"Mateus Lusuardi: MV 6.01 ± 0.76; FV 6.06 + 0.77\n",
"Kalaj: MV 6.01 ± 0.76; FV 6.06 + 0.77\n",
"Pierozzi: MV 5.76 ± 1.11; FV 5.91 + 1.42\n",
"Huijsen: MV 6.01 ± 0.83; FV 6.08 + 0.91\n",
"Bonfanti: MV 6.02 ± 0.87; FV 6.14 + 1.10\n",
"Pellegrino: MV 5.96 ± 1.10; FV 6.17 + 1.47\n",
"Comuzzo: MV 5.76 ± 1.11; FV 5.91 + 1.42\n",
"Bartesaghi: MV 6.01 ± 0.98; FV 6.16 + 1.28\n",
"Koopmeiners: MV 6.36 ± 1.10; FV 7.01 + 2.31\n",
"Zielinski: MV 6.32 ± 1.02; FV 6.81 + 1.91\n",
"Zaccagni: MV 6.21 ± 1.02; FV 6.65 + 1.83\n",
"Luis Alberto: MV 6.14 ± 1.05; FV 6.61 + 1.87\n",
"Pulisic: MV 6.34 ± 1.31; FV 7.37 + 3.21\n",
"Bonaventura: MV 6.17 ± 1.11; FV 6.68 + 2.01\n",
"Orsolini: MV 5.97 ± 1.46; FV 6.19 + 2.14\n",
"Calhanoglu: MV 6.33 ± 0.79; FV 6.52 + 1.08\n",
"Samardzic: MV 6.30 ± 0.95; FV 6.80 + 1.84\n",
"Felipe Anderson: MV 5.91 ± 1.05; FV 6.25 + 1.66\n",
"Politano: MV 6.40 ± 1.08; FV 6.99 + 2.18\n",
"Gudmundsson A.: MV 6.29 ± 1.16; FV 6.94 + 2.31\n",
"Candreva: MV 6.09 ± 1.16; FV 6.66 + 2.23\n",
"Barella: MV 6.25 ± 0.81; FV 6.51 + 1.18\n",
"Rabiot: MV 6.23 ± 1.04; FV 6.76 + 2.01\n",
"Mkhitaryan: MV 6.36 ± 0.97; FV 6.86 + 1.86\n",
"Ferguson: MV 5.91 ± 0.96; FV 6.15 + 1.36\n",
"Frattesi: MV 6.20 ± 0.91; FV 6.59 + 1.53\n",
"Loftus-Cheek: MV 6.23 ± 0.99; FV 6.63 + 1.73\n",
"Colpani: MV 6.45 ± 1.08; FV 7.16 + 2.44\n",
"Cristante: MV 6.22 ± 1.00; FV 6.67 + 1.70\n",
"Strefezza: MV 6.08 ± 0.90; FV 6.42 + 1.55\n",
"Chukwueze: MV 5.99 ± 0.84; FV 6.24 + 1.22\n",
"Radonjic: MV 6.08 ± 1.15; FV 6.58 + 2.01\n",
"Reijnders: MV 6.18 ± 0.97; FV 6.51 + 1.56\n",
"Pasalic: MV 6.05 ± 1.05; FV 6.56 + 1.90\n",
"Aouar: MV 6.20 ± 1.08; FV 6.76 + 2.07\n",
"Bajrami: MV 6.04 ± 0.67; FV 6.21 + 0.94\n",
"Vlasic: MV 5.92 ± 0.90; FV 6.18 + 1.31\n",
"Ederson D.s.: MV 6.11 ± 0.92; FV 6.39 + 1.38\n",
"Baldanzi: MV 6.08 ± 1.07; FV 6.58 + 1.97\n",
"Kamada: MV 5.92 ± 0.94; FV 6.21 + 1.41\n",
"Lindstrom: MV 6.03 ± 0.84; FV 6.35 + 1.32\n",
"De Roon: MV 6.14 ± 0.95; FV 6.42 + 1.42\n",
"Pellegrini Lo.: MV 6.06 ± 1.22; FV 6.70 + 2.32\n",
"El Shaarawy: MV 6.20 ± 0.85; FV 6.54 + 1.45\n",
"Mandragora: MV 5.87 ± 1.09; FV 6.15 + 1.56\n",
"Malinovskyi: MV 5.95 ± 1.05; FV 6.32 + 1.70\n",
"Kostic: MV 6.15 ± 0.80; FV 6.42 + 1.16\n",
"De Ketelaere: MV 6.15 ± 1.03; FV 6.55 + 1.76\n",
"Gomez: MV 6.11 ± 0.86; FV 6.24 + 1.12\n",
"Pereyra: MV 6.23 ± 1.07; FV 6.82 + 2.12\n",
"Renato Sanches: MV 6.17 ± 0.68; FV 6.42 + 0.99\n",
"Pessina: MV 6.21 ± 0.89; FV 6.48 + 1.36\n",
"Guendouzi: MV 5.84 ± 0.83; FV 5.92 + 1.03\n",
"Zambo Anguissa: MV 6.01 ± 0.99; FV 6.19 + 1.30\n",
"Duda: MV 6.27 ± 0.99; FV 6.72 + 1.81\n",
"Thorsby: MV 5.89 ± 1.41; FV 6.28 + 2.17\n",
"Mckennie: MV 6.19 ± 0.81; FV 6.30 + 0.91\n",
"Lovric: MV 6.14 ± 0.89; FV 6.51 + 1.48\n",
"Lazovic: MV 6.12 ± 0.91; FV 6.44 + 1.48\n",
"Duncan: MV 6.06 ± 0.90; FV 6.36 + 1.40\n",
"Gagliardini: MV 6.22 ± 0.89; FV 6.57 + 1.46\n",
"Arthur Melo: MV 5.99 ± 0.82; FV 6.08 + 0.99\n",
"Lobotka: MV 6.05 ± 0.89; FV 6.16 + 1.06\n",
"Fagioli: MV 6.09 ± 0.87; FV 6.36 + 1.26\n",
"Elmas: MV 5.95 ± 1.06; FV 6.36 + 1.63\n",
"Messias: MV 5.94 ± 1.17; FV 6.40 + 1.96\n",
"Matheus Henrique: MV 5.91 ± 1.01; FV 6.14 + 1.47\n",
"Frendrup: MV 6.11 ± 0.85; FV 6.32 + 1.21\n",
"Ciurria: MV 6.24 ± 0.99; FV 6.74 + 1.91\n",
"Locatelli: MV 6.01 ± 0.70; FV 6.04 + 0.70\n",
"Mazzitelli: MV 6.15 ± 1.05; FV 6.70 + 2.01\n",
"Ikone': MV 5.96 ± 1.02; FV 6.30 + 1.57\n",
"Ilic: MV 5.82 ± 0.73; FV 5.91 + 0.89\n",
"Ricci S.: MV 5.90 ± 0.83; FV 6.00 + 1.05\n",
"Ndoye: MV 5.69 ± 0.79; FV 5.71 + 0.89\n",
"Saponara: MV 6.10 ± 0.83; FV 6.37 + 1.28\n",
"Vecino: MV 5.82 ± 1.03; FV 5.94 + 1.35\n",
"Pogba: MV 5.98 ± 0.75; FV 6.01 + 0.75\n",
"Barak: MV 5.86 ± 0.93; FV 6.11 + 1.34\n",
"Nandez: MV 5.93 ± 0.98; FV 6.02 + 1.23\n",
"Rafia: MV 6.01 ± 0.67; FV 6.23 + 1.11\n",
"Strootman: MV 5.90 ± 0.77; FV 5.99 + 0.99\n",
"Klaassen: MV 6.13 ± 0.71; FV 6.40 + 1.09\n",
"Weah: MV 5.98 ± 0.52; FV 6.01 + 0.48\n",
"Marin: MV 5.99 ± 0.68; FV 6.09 + 0.80\n",
"Musah: MV 6.19 ± 0.93; FV 6.37 + 1.25\n",
"Boloca: MV 6.05 ± 0.90; FV 6.17 + 1.09\n",
"Krunic: MV 6.01 ± 0.86; FV 6.07 + 1.04\n",
"Cataldi: MV 5.92 ± 0.70; FV 5.90 + 0.70\n",
"Paredes: MV 6.00 ± 0.90; FV 6.11 + 1.08\n",
"Freuler: MV 5.70 ± 0.62; FV 5.64 + 0.67\n",
"Kastanos: MV 5.91 ± 0.54; FV 5.92 + 0.56\n",
"Bennacer: MV 6.16 ± 0.97; FV 6.48 + 1.55\n",
"Castrovilli: MV 5.94 ± 1.09; FV 6.32 + 1.69\n",
"Brescianini: MV 5.98 ± 0.48; FV 5.98 + 0.41\n",
"Miranchuk: MV 6.18 ± 1.01; FV 6.60 + 1.74\n",
"Reinier: MV 6.02 ± 0.79; FV 6.07 + 0.81\n",
"Harroui: MV 6.17 ± 0.76; FV 6.45 + 1.09\n",
"Aebischer: MV 5.69 ± 0.72; FV 5.68 + 0.81\n",
"Oudin: MV 6.16 ± 1.04; FV 6.63 + 1.90\n",
"Mboula: MV 5.97 ± 0.97; FV 6.09 + 1.23\n",
"Ramadani: MV 5.98 ± 0.91; FV 6.10 + 1.22\n",
"Jankto: MV 5.89 ± 0.75; FV 5.89 + 0.87\n",
"Garritano: MV 6.14 ± 0.69; FV 6.18 + 0.64\n",
"Sottil: MV 5.78 ± 0.74; FV 5.92 + 0.86\n",
"Tameze: MV 5.89 ± 0.60; FV 5.87 + 0.59\n",
"Pobega: MV 5.98 ± 0.56; FV 6.02 + 0.67\n",
"Bove: MV 6.01 ± 0.77; FV 6.17 + 1.01\n",
"Coulibaly L.: MV 5.88 ± 0.97; FV 6.04 + 1.36\n",
"Blin: MV 5.92 ± 0.58; FV 5.90 + 0.60\n",
"Moro N.: MV 5.70 ± 0.80; FV 5.75 + 0.95\n",
"Iling Junior: MV 6.01 ± 0.84; FV 6.10 + 0.94\n",
"Fabbian: MV 5.70 ± 0.81; FV 5.77 + 1.02\n",
"Cajuste : MV 5.90 ± 1.05; FV 5.94 + 1.21\n",
"Machin: MV 6.10 ± 0.86; FV 6.23 + 1.14\n",
"Linetty: MV 5.84 ± 0.69; FV 5.84 + 0.74\n",
"Walace: MV 5.90 ± 0.58; FV 5.88 + 0.57\n",
"Castillejo: MV 5.89 ± 0.61; FV 6.01 + 0.75\n",
"Gaetano: MV 6.19 ± 0.97; FV 6.64 + 1.78\n",
"Rovella: MV 5.91 ± 0.88; FV 5.90 + 1.00\n",
"Lopez M.: MV 5.79 ± 0.96; FV 5.83 + 1.13\n",
"Gyasi: MV 5.69 ± 0.85; FV 5.75 + 1.02\n",
"Zalewski: MV 5.99 ± 0.69; FV 6.09 + 0.82\n",
"Hongla: MV 5.90 ± 0.62; FV 5.91 + 0.64\n",
"Bohinen: MV 5.89 ± 0.50; FV 5.86 + 0.44\n",
"Miretti: MV 5.93 ± 0.59; FV 5.94 + 0.57\n",
"Thorstvedt: MV 5.94 ± 0.60; FV 5.99 + 0.68\n",
"Fazzini: MV 5.90 ± 0.54; FV 5.88 + 0.52\n",
"Barrenechea: MV 6.01 ± 0.59; FV 6.00 + 0.51\n",
"Oristanio: MV 5.78 ± 0.62; FV 5.85 + 0.67\n",
"El Azzouzi: MV 5.86 ± 0.64; FV 5.85 + 0.77\n",
"Makoumbou: MV 5.88 ± 0.63; FV 5.91 + 0.72\n",
"Folorunsho: MV 5.94 ± 0.99; FV 6.22 + 1.47\n",
"Kaba: MV 5.89 ± 0.64; FV 5.80 + 0.74\n",
"Martegani: MV 5.91 ± 0.62; FV 5.90 + 0.61\n",
"Kutlu: MV 5.90 ± 0.96; FV 5.91 + 1.08\n",
"Payero: MV 5.92 ± 0.56; FV 5.91 + 0.56\n",
"Grassi: MV 5.91 ± 0.65; FV 5.88 + 0.59\n",
"Mancosu: MV 5.85 ± 1.10; FV 5.81 + 1.23\n",
"Badelj: MV 5.69 ± 1.05; FV 5.64 + 1.16\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Baez: MV 5.93 ± 0.55; FV 5.92 + 0.47\n",
"Sensi: MV 6.10 ± 0.81; FV 6.33 + 1.10\n",
"Maleh: MV 5.72 ± 0.97; FV 5.83 + 1.25\n",
"Adli: MV 6.08 ± 1.00; FV 6.26 + 1.33\n",
"Gonzalez J.: MV 5.88 ± 0.71; FV 5.94 + 0.92\n",
"Serdar: MV 5.91 ± 0.66; FV 5.92 + 0.74\n",
"Suslov: MV 6.02 ± 0.68; FV 6.07 + 0.78\n",
"Viola: MV 5.89 ± 0.96; FV 5.86 + 1.10\n",
"Deiola: MV 5.51 ± 0.88; FV 5.48 + 0.82\n",
"Bourabia: MV 6.04 ± 0.68; FV 6.10 + 0.68\n",
"Saelemaekers: MV 5.70 ± 0.97; FV 5.81 + 1.18\n",
"Maldini: MV 6.11 ± 0.84; FV 6.42 + 1.36\n",
"Maggiore: MV 5.89 ± 0.52; FV 5.86 + 0.50\n",
"Racic: MV 6.03 ± 0.92; FV 6.15 + 1.15\n",
"Kovalenko: MV 6.03 ± 0.68; FV 6.07 + 0.68\n",
"Romero L.: MV 6.06 ± 0.98; FV 6.27 + 1.39\n",
"Asllani: MV 5.94 ± 0.55; FV 5.92 + 0.46\n",
"Vignato S.: MV 5.94 ± 0.64; FV 5.93 + 0.63\n",
"Ranocchia F.: MV 5.97 ± 0.57; FV 6.06 + 0.63\n",
"Sulemana I.: MV 5.69 ± 0.69; FV 5.62 + 0.71\n",
"Infantino: MV 5.87 ± 0.98; FV 5.95 + 1.19\n",
"Tchatchoua: MV 5.96 ± 0.92; FV 6.07 + 1.17\n",
"Quina: MV 6.14 ± 0.73; FV 6.25 + 0.85\n",
"Adopo: MV 5.99 ± 0.90; FV 6.10 + 1.10\n",
"Basic: MV 5.94 ± 0.70; FV 5.98 + 0.84\n",
"Tchaouna: MV 5.86 ± 0.64; FV 5.84 + 0.66\n",
"Amatucci: MV 5.82 ± 1.09; FV 6.00 + 1.45\n",
"Gelli: MV 6.00 ± 0.82; FV 6.02 + 0.77\n",
"Legowski: MV 5.91 ± 0.86; FV 5.98 + 1.06\n",
"Prati: MV 5.87 ± 1.01; FV 5.84 + 1.15\n",
"Lulic K.: MV 6.02 ± 0.79; FV 6.07 + 0.81\n",
"Rog: MV 5.86 ± 0.73; FV 5.88 + 0.83\n",
"Nicolussi Caviglia: MV 5.94 ± 0.88; FV 6.01 + 1.09\n",
"Jagiello: MV 5.82 ± 1.10; FV 5.87 + 1.31\n",
"Obiang: MV 5.94 ± 0.53; FV 5.92 + 0.52\n",
"Demme: MV 6.01 ± 0.63; FV 6.00 + 0.54\n",
"Akpa Akpro: MV 6.10 ± 0.86; FV 6.23 + 1.14\n",
"Urbanski: MV 5.63 ± 1.04; FV 5.70 + 1.23\n",
"Volpato: MV 6.00 ± 0.85; FV 6.16 + 1.17\n",
"Pafundi: MV 6.17 ± 0.76; FV 6.28 + 0.83\n",
"Hrustic: MV 5.59 ± 0.69; FV 5.59 + 0.65\n",
"Bondo: MV 6.10 ± 0.84; FV 6.19 + 1.03\n",
"Zerbin: MV 5.99 ± 0.81; FV 6.11 + 0.99\n",
"Carboni V.: MV 6.23 ± 0.92; FV 6.40 + 1.23\n",
"Faticanti: MV 5.97 ± 0.86; FV 6.06 + 1.17\n",
"Gineitis: MV 5.74 ± 0.89; FV 5.80 + 1.04\n",
"Belardinelli: MV 5.99 ± 0.79; FV 6.06 + 0.92\n",
"Zarraga: MV 5.98 ± 0.75; FV 6.03 + 0.85\n",
"Camara E.: MV 6.05 ± 0.82; FV 6.18 + 1.03\n",
"Lipani: MV 5.95 ± 0.87; FV 6.04 + 1.10\n",
"Joselito: MV 5.96 ± 0.92; FV 6.07 + 1.17\n",
"Pagano: MV 5.94 ± 0.71; FV 5.95 + 0.75\n",
"Ibrahimovic A.: MV 6.05 ± 0.75; FV 6.10 + 0.75\n",
"Martinez L.: MV 6.49 ± 1.39; FV 7.82 + 3.71\n",
"Osimhen: MV 6.44 ± 1.49; FV 7.81 + 3.97\n",
"Rafael Leao: MV 6.44 ± 1.27; FV 7.44 + 3.10\n",
"Berardi: MV 6.48 ± 1.29; FV 7.57 + 3.26\n",
"Lukaku: MV 6.37 ± 1.45; FV 7.58 + 3.64\n",
"Vlahovic: MV 6.32 ± 1.39; FV 7.39 + 3.37\n",
"Dybala: MV 6.39 ± 1.48; FV 7.56 + 3.64\n",
"Giroud: MV 6.36 ± 1.34; FV 7.45 + 3.38\n",
"Thuram: MV 6.49 ± 1.08; FV 7.22 + 2.52\n",
"Immobile: MV 5.92 ± 1.17; FV 6.40 + 1.90\n",
"Kvaratskhelia: MV 6.39 ± 1.29; FV 7.41 + 3.15\n",
"Retegui: MV 6.07 ± 1.36; FV 6.83 + 2.69\n",
"Scamacca: MV 6.31 ± 1.30; FV 7.36 + 3.23\n",
"Lookman: MV 6.31 ± 1.27; FV 7.29 + 3.10\n",
"Lauriente': MV 6.27 ± 1.15; FV 6.95 + 2.49\n",
"Chiesa: MV 6.42 ± 1.19; FV 7.29 + 2.80\n",
"Dia: MV 6.15 ± 1.33; FV 7.03 + 2.84\n",
"Zapata D.: MV 5.88 ± 0.88; FV 6.15 + 1.29\n",
"Gonzalez N.: MV 6.32 ± 1.09; FV 7.01 + 2.39\n",
"Sanabria: MV 5.88 ± 1.00; FV 6.28 + 1.58\n",
"Arnautovic: MV 6.23 ± 0.87; FV 6.62 + 1.54\n",
"Nzola: MV 5.85 ± 0.98; FV 6.20 + 1.46\n",
"Milik: MV 6.21 ± 0.84; FV 6.59 + 1.51\n",
"Pinamonti: MV 5.99 ± 1.18; FV 6.53 + 2.06\n",
"Okafor: MV 6.28 ± 1.10; FV 6.95 + 2.37\n",
"Zirkzee: MV 6.03 ± 0.93; FV 6.36 + 1.48\n",
"Krstovic: MV 6.32 ± 1.31; FV 7.38 + 3.27\n",
"Ngonge: MV 5.94 ± 1.06; FV 6.37 + 1.73\n",
"Almqvist: MV 6.23 ± 1.08; FV 6.78 + 2.09\n",
"Cheddira: MV 6.24 ± 1.11; FV 6.89 + 2.26\n",
"Simeone: MV 6.01 ± 1.18; FV 6.60 + 2.06\n",
"Sanchez: MV 6.16 ± 0.77; FV 6.49 + 1.32\n",
"Beltran L.: MV 5.86 ± 0.86; FV 6.11 + 1.24\n",
"Belotti: MV 6.23 ± 1.00; FV 6.76 + 1.97\n",
"Muriel: MV 6.18 ± 0.83; FV 6.46 + 1.38\n",
"Luvumbo: MV 5.98 ± 0.67; FV 6.11 + 0.90\n",
"Toure' E.: MV 6.01 ± 0.88; FV 6.18 + 1.16\n",
"Lapadula: MV 6.06 ± 1.04; FV 6.61 + 2.01\n",
"Caprari: MV 6.21 ± 0.97; FV 6.67 + 1.76\n",
"Jovic: MV 6.05 ± 1.15; FV 6.57 + 2.09\n",
"Abraham: MV 6.23 ± 1.22; FV 7.13 + 2.84\n",
"Kouame': MV 5.93 ± 1.00; FV 6.30 + 1.57\n",
"Caputo: MV 5.80 ± 0.95; FV 6.12 + 1.39\n",
"Raspadori: MV 6.04 ± 1.11; FV 6.56 + 1.91\n",
"Colombo: MV 6.20 ± 1.03; FV 6.76 + 2.06\n",
"Soule': MV 6.36 ± 0.70; FV 6.59 + 1.13\n",
"Petagna: MV 5.80 ± 0.96; FV 6.12 + 1.34\n",
"Bonazzoli: MV 5.96 ± 0.96; FV 6.33 + 1.52\n",
"Deulofeu: MV 6.44 ± 1.20; FV 7.38 + 2.94\n",
"Pedro: MV 5.91 ± 0.87; FV 6.16 + 1.25\n",
"Brekalo: MV 5.90 ± 0.89; FV 6.08 + 1.13\n",
"Shomurodov: MV 5.65 ± 0.63; FV 5.68 + 0.60\n",
"Azmoun: MV 6.02 ± 0.69; FV 6.24 + 1.07\n",
"Castellanos: MV 5.84 ± 0.52; FV 5.86 + 0.52\n",
"Karlsson: MV 5.72 ± 0.76; FV 5.90 + 0.99\n",
"Thauvin: MV 5.92 ± 0.67; FV 6.11 + 0.95\n",
"Cambiaghi: MV 5.99 ± 0.76; FV 6.17 + 1.03\n",
"Henry: MV 5.93 ± 1.03; FV 6.31 + 1.66\n",
"Jovane: MV 5.90 ± 0.88; FV 6.04 + 1.15\n",
"Mota: MV 6.10 ± 0.96; FV 6.48 + 1.61\n",
"Mulattieri: MV 6.05 ± 0.64; FV 6.29 + 1.13\n",
"Lucca: MV 6.09 ± 1.18; FV 6.81 + 2.39\n",
"Isaksen: MV 5.73 ± 0.88; FV 5.72 + 0.91\n",
"Kean: MV 6.06 ± 0.95; FV 6.42 + 1.52\n",
"Karamoh: MV 5.96 ± 0.72; FV 6.15 + 0.96\n",
"Djuric: MV 5.99 ± 0.65; FV 6.13 + 0.80\n",
"Davis K.: MV 6.06 ± 0.81; FV 6.26 + 1.09\n",
"Banda: MV 6.08 ± 0.78; FV 6.34 + 1.29\n",
"Brenner: MV 6.06 ± 0.81; FV 6.26 + 1.09\n",
"Sansone: MV 6.19 ± 1.06; FV 6.80 + 2.18\n",
"Success: MV 6.05 ± 0.88; FV 6.37 + 1.42\n",
"Defrel: MV 5.88 ± 0.87; FV 6.18 + 1.35\n",
"Piccoli: MV 5.93 ± 0.56; FV 5.95 + 0.60\n",
"Caso: MV 6.16 ± 0.79; FV 6.49 + 1.33\n",
"Pellegri: MV 5.72 ± 0.77; FV 5.72 + 0.77\n",
"Cancellieri: MV 5.77 ± 0.93; FV 6.00 + 1.31\n",
"Seck: MV 5.96 ± 0.73; FV 6.04 + 0.79\n",
"Botheim: MV 5.63 ± 0.72; FV 5.65 + 0.72\n",
"Cuni: MV 5.95 ± 0.39; FV 5.98 + 0.34\n",
"Pavoletti: MV 5.78 ± 0.72; FV 5.96 + 0.95\n",
"Ekuban: MV 5.82 ± 0.68; FV 5.90 + 0.72\n",
"Alvarez A.: MV 5.92 ± 0.80; FV 6.18 + 1.20\n",
"Kvernadze: MV 6.02 ± 0.71; FV 6.06 + 0.71\n",
"Shpendi S.: MV 5.95 ± 0.44; FV 5.97 + 0.42\n",
"Destro: MV 5.65 ± 0.82; FV 5.69 + 0.90\n",
"Van Hooijdonk: MV 5.59 ± 0.81; FV 5.59 + 0.84\n",
"Ceide: MV 5.82 ± 0.71; FV 5.86 + 0.72\n",
"Maric: MV 6.01 ± 0.48; FV 6.04 + 0.44\n",
"Ikwuemesi: MV 5.86 ± 0.62; FV 5.86 + 0.63\n",
"Yildiz: MV 6.02 ± 0.83; FV 6.13 + 0.96\n",
"Cruz: MV 5.94 ± 0.80; FV 6.04 + 1.00\n",
"Puscas: MV 5.96 ± 0.94; FV 6.02 + 1.14\n",
"Ake' M.: MV 6.02 ± 0.65; FV 6.08 + 0.69\n",
"Braaf: MV 5.66 ± 0.74; FV 5.77 + 0.82\n",
"Kallon: MV 5.87 ± 0.89; FV 6.11 + 1.22\n",
"Kaio Jorge: MV 5.97 ± 0.48; FV 5.99 + 0.42\n",
"Vivaldo: MV 6.06 ± 0.81; FV 6.26 + 1.09\n",
"Bidaoui: MV 6.02 ± 0.77; FV 6.11 + 0.85\n",
"Burnete: MV 5.94 ± 0.83; FV 6.03 + 1.12\n",
"Corfitzen: MV 5.97 ± 0.81; FV 6.08 + 1.09\n",
"Stewart: MV 5.92 ± 0.79; FV 6.01 + 0.98\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>role</th>\n",
" <th>team</th>\n",
" <th>oppteam</th>\n",
" <th>home</th>\n",
" <th>starter</th>\n",
" <th>vote%</th>\n",
" <th>MV</th>\n",
" <th>MV std</th>\n",
" <th>FV</th>\n",
" <th>FV std</th>\n",
" <th>MV loc</th>\n",
" <th>MV scale</th>\n",
" <th>MV skewness</th>\n",
" <th>MV tailweight</th>\n",
" <th>FV loc</th>\n",
" <th>FV scale</th>\n",
" <th>FV skewness</th>\n",
" <th>FV tailweight</th>\n",
" <th>Clean Sheet %</th>\n",
" </tr>\n",
" <tr>\n",
" <th>player</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Musso</th>\n",
" <td>P</td>\n",
" <td>Atalanta</td>\n",
" <td>Lazio</td>\n",
" <td>0</td>\n",
" <td>1.00</td>\n",
" <td>70</td>\n",
" <td>6.130588</td>\n",
" <td>0.395458</td>\n",
" <td>5.560176</td>\n",
" <td>0.630095</td>\n",
" <td>6.117671</td>\n",
" <td>0.473347</td>\n",
" <td>0.020254</td>\n",
" <td>1.189104</td>\n",
" <td>6.219871</td>\n",
" <td>0.682691</td>\n",
" <td>-0.651437</td>\n",
" <td>1.180653</td>\n",
" <td>54.287124</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Rossi F.</th>\n",
" <td>P</td>\n",
" <td>Atalanta</td>\n",
" <td>Lazio</td>\n",
" <td>0</td>\n",
" <td>0.00</td>\n",
" <td>1</td>\n",
" <td>6.130588</td>\n",
" <td>0.395458</td>\n",
" <td>5.560176</td>\n",
" <td>0.630095</td>\n",
" <td>6.117671</td>\n",
" <td>0.473347</td>\n",
" <td>0.020254</td>\n",
" <td>1.189104</td>\n",
" <td>6.219871</td>\n",
" <td>0.682691</td>\n",
" <td>-0.651437</td>\n",
" <td>1.180653</td>\n",
" <td>54.287124</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Carnesecchi</th>\n",
" <td>P</td>\n",
" <td>Atalanta</td>\n",
" <td>Lazio</td>\n",
" <td>0</td>\n",
" <td>0.00</td>\n",
" <td>5</td>\n",
" <td>6.111842</td>\n",
" <td>0.423985</td>\n",
" <td>4.999980</td>\n",
" <td>0.679832</td>\n",
" <td>6.061238</td>\n",
" <td>0.492138</td>\n",
" <td>0.076215</td>\n",
" <td>1.184612</td>\n",
" <td>5.243609</td>\n",
" <td>1.016311</td>\n",
" <td>-0.176309</td>\n",
" <td>1.051638</td>\n",
" <td>21.158487</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Ruggeri</th>\n",
" <td>D</td>\n",
" <td>Atalanta</td>\n",
" <td>Lazio</td>\n",
" <td>0</td>\n",
" <td>0.55</td>\n",
" <td>55</td>\n",
" <td>6.146059</td>\n",
" <td>0.491973</td>\n",
" <td>6.431080</td>\n",
" <td>0.748339</td>\n",
" <td>6.130273</td>\n",
" <td>0.571970</td>\n",
" <td>0.020303</td>\n",
" <td>0.888866</td>\n",
" <td>5.914506</td>\n",
" <td>1.029078</td>\n",
" <td>0.360306</td>\n",
" <td>1.299918</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Zortea</th>\n",
" <td>D</td>\n",
" <td>Atalanta</td>\n",
" <td>Lazio</td>\n",
" <td>0</td>\n",
" <td>0.00</td>\n",
" <td>30</td>\n",
" <td>6.049477</td>\n",
" <td>0.421663</td>\n",
" <td>6.325981</td>\n",
" <td>0.639571</td>\n",
" <td>6.005404</td>\n",
" <td>0.484718</td>\n",
" <td>0.066981</td>\n",
" <td>0.952244</td>\n",
" <td>5.874121</td>\n",
" <td>0.871703</td>\n",
" <td>0.371244</td>\n",
" <td>1.299916</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Henry</th>\n",
" <td>A</td>\n",
" <td>Verona</td>\n",
" <td>Frosinone</td>\n",
" <td>0</td>\n",
" <td>0.00</td>\n",
" <td>40</td>\n",
" <td>5.930722</td>\n",
" <td>0.516654</td>\n",
" <td>6.314850</td>\n",
" <td>0.830392</td>\n",
" <td>5.676789</td>\n",
" <td>0.529371</td>\n",
" <td>0.347378</td>\n",
" <td>0.843730</td>\n",
" <td>5.485209</td>\n",
" <td>0.900312</td>\n",
" <td>0.617425</td>\n",
" <td>1.299930</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Djuric</th>\n",
" <td>A</td>\n",
" <td>Verona</td>\n",
" <td>Frosinone</td>\n",
" <td>0</td>\n",
" <td>0.45</td>\n",
" <td>55</td>\n",
" <td>5.990664</td>\n",
" <td>0.324370</td>\n",
" <td>6.125685</td>\n",
" <td>0.401414</td>\n",
" <td>5.981859</td>\n",
" <td>0.383508</td>\n",
" <td>0.016978</td>\n",
" <td>1.054538</td>\n",
" <td>5.903392</td>\n",
" <td>0.589155</td>\n",
" <td>0.274942</td>\n",
" <td>1.299901</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Kallon</th>\n",
" <td>A</td>\n",
" <td>Verona</td>\n",
" <td>Frosinone</td>\n",
" <td>0</td>\n",
" <td>0.00</td>\n",
" <td>0</td>\n",
" <td>5.866126</td>\n",
" <td>0.445314</td>\n",
" <td>6.106137</td>\n",
" <td>0.610579</td>\n",
" <td>5.668099</td>\n",
" <td>0.458100</td>\n",
" <td>0.313946</td>\n",
" <td>0.919495</td>\n",
" <td>5.532506</td>\n",
" <td>0.703259</td>\n",
" <td>0.557121</td>\n",
" <td>1.299925</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Cruz</th>\n",
" <td>A</td>\n",
" <td>Verona</td>\n",
" <td>Frosinone</td>\n",
" <td>0</td>\n",
" <td>0.55</td>\n",
" <td>55</td>\n",
" <td>5.938263</td>\n",
" <td>0.397721</td>\n",
" <td>6.035246</td>\n",
" <td>0.497888</td>\n",
" <td>5.988713</td>\n",
" <td>0.482585</td>\n",
" <td>-0.077101</td>\n",
" <td>0.999415</td>\n",
" <td>5.859564</td>\n",
" <td>0.784396</td>\n",
" <td>0.165425</td>\n",
" <td>1.299890</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Braaf</th>\n",
" <td>A</td>\n",
" <td>Verona</td>\n",
" <td>Frosinone</td>\n",
" <td>0</td>\n",
" <td>0.00</td>\n",
" <td>0</td>\n",
" <td>5.657923</td>\n",
" <td>0.371975</td>\n",
" <td>5.771335</td>\n",
" <td>0.409864</td>\n",
" <td>5.519660</td>\n",
" <td>0.390190</td>\n",
" <td>0.258709</td>\n",
" <td>1.001091</td>\n",
" <td>5.480610</td>\n",
" <td>0.557743</td>\n",
" <td>0.373164</td>\n",
" <td>1.299909</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>542 rows × 19 columns</p>\n",
"</div>"
],
"text/plain": [
" role team oppteam home starter vote% MV MV std \\\n",
"player \n",
"Musso P Atalanta Lazio 0 1.00 70 6.130588 0.395458 \n",
"Rossi F. P Atalanta Lazio 0 0.00 1 6.130588 0.395458 \n",
"Carnesecchi P Atalanta Lazio 0 0.00 5 6.111842 0.423985 \n",
"Ruggeri D Atalanta Lazio 0 0.55 55 6.146059 0.491973 \n",
"Zortea D Atalanta Lazio 0 0.00 30 6.049477 0.421663 \n",
"... ... ... ... ... ... ... ... ... \n",
"Henry A Verona Frosinone 0 0.00 40 5.930722 0.516654 \n",
"Djuric A Verona Frosinone 0 0.45 55 5.990664 0.324370 \n",
"Kallon A Verona Frosinone 0 0.00 0 5.866126 0.445314 \n",
"Cruz A Verona Frosinone 0 0.55 55 5.938263 0.397721 \n",
"Braaf A Verona Frosinone 0 0.00 0 5.657923 0.371975 \n",
"\n",
" FV FV std MV loc MV scale MV skewness \\\n",
"player \n",
"Musso 5.560176 0.630095 6.117671 0.473347 0.020254 \n",
"Rossi F. 5.560176 0.630095 6.117671 0.473347 0.020254 \n",
"Carnesecchi 4.999980 0.679832 6.061238 0.492138 0.076215 \n",
"Ruggeri 6.431080 0.748339 6.130273 0.571970 0.020303 \n",
"Zortea 6.325981 0.639571 6.005404 0.484718 0.066981 \n",
"... ... ... ... ... ... \n",
"Henry 6.314850 0.830392 5.676789 0.529371 0.347378 \n",
"Djuric 6.125685 0.401414 5.981859 0.383508 0.016978 \n",
"Kallon 6.106137 0.610579 5.668099 0.458100 0.313946 \n",
"Cruz 6.035246 0.497888 5.988713 0.482585 -0.077101 \n",
"Braaf 5.771335 0.409864 5.519660 0.390190 0.258709 \n",
"\n",
" MV tailweight FV loc FV scale FV skewness FV tailweight \\\n",
"player \n",
"Musso 1.189104 6.219871 0.682691 -0.651437 1.180653 \n",
"Rossi F. 1.189104 6.219871 0.682691 -0.651437 1.180653 \n",
"Carnesecchi 1.184612 5.243609 1.016311 -0.176309 1.051638 \n",
"Ruggeri 0.888866 5.914506 1.029078 0.360306 1.299918 \n",
"Zortea 0.952244 5.874121 0.871703 0.371244 1.299916 \n",
"... ... ... ... ... ... \n",
"Henry 0.843730 5.485209 0.900312 0.617425 1.299930 \n",
"Djuric 1.054538 5.903392 0.589155 0.274942 1.299901 \n",
"Kallon 0.919495 5.532506 0.703259 0.557121 1.299925 \n",
"Cruz 0.999415 5.859564 0.784396 0.165425 1.299890 \n",
"Braaf 1.001091 5.480610 0.557743 0.373164 1.299909 \n",
"\n",
" Clean Sheet % \n",
"player \n",
"Musso 54.287124 \n",
"Rossi F. 54.287124 \n",
"Carnesecchi 21.158487 \n",
"Ruggeri 0.000000 \n",
"Zortea 0.000000 \n",
"... ... \n",
"Henry 0.000000 \n",
"Djuric 0.000000 \n",
"Kallon 0.000000 \n",
"Cruz 0.000000 \n",
"Braaf 0.000000 \n",
"\n",
"[542 rows x 19 columns]"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"matchday_out = 8\n",
"\n",
"output = pd.DataFrame(columns = ['player', 'role', 'team', 'oppteam', 'home', 'starter', 'vote%', 'MV', 'MV std', 'FV', 'FV std', 'MV loc', 'MV scale', 'MV skewness', 'MV tailweight', 'FV loc', 'FV scale', 'FV skewness', 'FV tailweight', 'Clean Sheet %'])\n",
"\n",
"for i in range(players.shape[0]):\n",
" try:\n",
" [player, team, oppteam, home] = PlayerMatch(players.index[i], matchday_out)\n",
" \n",
" [mean, std, dist] = vote_predict_NNb(player, team, oppteam, home = home, log = 1)\n",
" \n",
" role = players['r'][player] \n",
" \n",
" starter = 0\n",
" voteperc = 0\n",
" \n",
" cs = 0\n",
" if(role == 'P'):\n",
" cs = dist[2].probs.numpy()[0] * 100\n",
" \n",
" if(player in probables.index):\n",
" starter = probables['starter'][player]\n",
" voteperc = probables['percentage'][player]\n",
" \n",
" row = [player, role, team, oppteam, home, \n",
" starter, voteperc, \n",
" mean[0], std[0], \n",
" mean[1], std[1], \n",
" dist[0].loc.numpy()[0], dist[0].scale.numpy()[0], \n",
" dist[0].skewness.numpy()[0], dist[0].tailweight.numpy()[0], \n",
" dist[1].loc.numpy()[0], dist[1].scale.numpy()[0], \n",
" dist[1].skewness.numpy()[0], dist[1].tailweight.numpy()[0],\n",
" cs]\n",
" \n",
" row_df = pd.DataFrame(data = [row], columns = output.columns)\n",
" \n",
" output = pd.concat([output, row_df])\n",
" \n",
" except:\n",
" print(players.index[i] + ' no data')\n",
"\n",
"output = output.set_index('player')\n",
"\n",
"output = output.sort_values(['team', 'role', 'FV'], ascending = [True, False, False])\n",
"#output.to_excel('outputs/pred_matchday_' + str(matchday_out) + '.xlsx')\n",
"\n",
"output"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "6befd611",
"metadata": {},
"outputs": [],
"source": [
"import shutil\n",
"\n",
"template_file = 'outputs/pred_matchday_base.xlsx'\n",
"dest_file = 'outputs/pred_matchday_' + str(matchday_out) + '.xlsx'\n",
"\n",
"shutil.copyfile(template_file, dest_file)\n",
"\n",
"with pd.ExcelWriter(dest_file, mode = 'a', engine=\"openpyxl\", if_sheet_exists = 'replace') as writer: \n",
" output.to_excel(writer, sheet_name='data')"
]
},
{
"cell_type": "markdown",
"id": "eed7a7ac",
"metadata": {},
"source": [
"Predict average Serie A performance for each player"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "2b637a15",
"metadata": {},
"outputs": [],
"source": [
"gk_starters = ['Maignan', 'Ochoa', 'Silvestri', 'Consigli', 'Provedel', 'Di Gregorio', 'Meret', 'Milinkovic-Savic V.',\n",
" 'Terracciano', 'Sommer', 'Szczesny', 'Skorupski', 'Berisha', 'Musso', 'Radunovic', 'Rui Patricio',\n",
" 'Montipo\\'', 'Falcone', 'Martinez Jo.', 'Turati']"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "60d73507",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Sommer (6.17, 0.41); (5.61, 0.63)\n",
"Skorupski (6.12, 0.40); (5.49, 0.63)\n",
"Di Gregorio (6.15, 0.50); (4.97, 0.69)\n",
"Meret (6.00, 0.44); (4.56, 0.83)\n",
"Provedel (6.20, 0.45); (4.52, 0.86)\n",
"Terracciano (6.18, 0.43); (5.13, 0.66)\n",
"Szczesny (6.16, 0.40); (5.66, 0.63)\n",
"Falcone (6.19, 0.45); (5.02, 0.71)\n",
"Milinkovic-Savic V. (6.18, 0.41); (5.09, 0.66)\n",
"Maignan (6.19, 0.47); (4.98, 0.69)\n",
"Montipo' (6.17, 0.39); (5.19, 0.64)\n",
"Rui Patricio (5.84, 0.46); (3.85, 1.05)\n",
"Turati (6.20, 0.48); (4.97, 0.72)\n",
"Consigli (6.04, 0.46); (4.02, 1.02)\n",
"Musso (6.18, 0.38); (5.69, 0.64)\n",
"Carnesecchi (6.14, 0.43); (5.01, 0.68)\n",
"Radunovic (6.04, 0.44); (4.57, 0.88)\n",
"Silvestri (5.65, 0.47); (3.63, 1.23)\n",
"Martinez Jo. (6.08, 0.44); (4.57, 0.89)\n",
"Ochoa (6.14, 0.46); (3.61, 1.16)\n",
"Sportiello (6.16, 0.43); (5.06, 0.67)\n",
"Berisha (6.06, 0.46); (3.55, 1.19)\n",
"Caprile (6.11, 0.45); (3.83, 1.08)\n",
"Perin (6.16, 0.41); (5.15, 0.65)\n",
"Cragno (6.03, 0.46); (3.63, 1.14)\n",
"Mirante (6.19, 0.47); (4.98, 0.69)\n",
"Sepe (6.20, 0.45); (4.52, 0.86)\n",
"Leali (6.08, 0.44); (4.57, 0.89)\n",
"Lamanna (6.14, 0.50); (4.97, 0.69)\n",
"Sommariva (6.08, 0.44); (4.57, 0.89)\n",
"Pegolo (6.05, 0.46); (3.94, 1.04)\n",
"Perilli (6.17, 0.39); (5.19, 0.64)\n",
"Padelli (5.65, 0.47); (3.63, 1.23)\n",
"Scuffet (6.04, 0.44); (4.57, 0.88)\n",
"Gollini (6.00, 0.44); (4.56, 0.83)\n",
"Perisan (6.06, 0.46); (3.65, 1.15)\n",
"Audero (6.17, 0.41); (5.61, 0.63)\n",
"Di Gennaro (6.17, 0.41); (5.61, 0.63)\n",
"Pinsoglio (6.16, 0.40); (5.66, 0.63)\n",
"Aresti (6.04, 0.44); (4.57, 0.88)\n",
"Fiorillo (6.14, 0.46); (3.61, 1.16)\n",
"Cerofolini (6.18, 0.47); (4.69, 0.78)\n",
"Rossi F. (6.18, 0.38); (5.69, 0.64)\n",
"Costil (6.14, 0.46); (3.61, 1.16)\n",
"Ravaglia F. (6.12, 0.40); (5.49, 0.63)\n",
"Frattali (6.20, 0.48); (4.97, 0.72)\n",
"Contini (6.00, 0.44); (4.56, 0.83)\n",
"Brancolini (6.19, 0.45); (5.02, 0.71)\n",
"Berardi A. (6.17, 0.39); (5.19, 0.64)\n",
"Gemello (6.18, 0.41); (5.09, 0.66)\n",
"Boer (5.84, 0.46); (3.85, 1.05)\n",
"Bagnolini (6.12, 0.40); (5.49, 0.63)\n",
"Svilar (5.84, 0.46); (3.85, 1.05)\n",
"Sorrentino A. (6.16, 0.48); (4.97, 0.69)\n",
"Martinelli T. (6.18, 0.43); (5.13, 0.66)\n",
"Popa (6.18, 0.41); (5.09, 0.66)\n",
"Stubljar (6.06, 0.46); (3.55, 1.19)\n",
"Gori (6.14, 0.50); (4.97, 0.69)\n",
"Christensen O. (6.10, 0.45); (4.22, 0.92)\n",
"Borbei (6.19, 0.45); (5.02, 0.71)\n",
"Okoye (5.65, 0.47); (3.63, 1.23)\n",
"Mandas (6.20, 0.45); (4.52, 0.86)\n",
"Dimarco (6.34, 0.42); (6.68, 0.73)\n",
"Di Lorenzo (6.30, 0.51); (6.76, 0.91)\n",
"Hernandez T. (6.20, 0.54); (6.60, 0.91)\n",
"Dumfries (6.28, 0.47); (6.72, 0.84)\n",
"Carlos Augusto (6.25, 0.47); (6.60, 0.77)\n",
"Schuurs (6.09, 0.43); (6.27, 0.59)\n",
"Spinazzola (6.17, 0.37); (6.47, 0.64)\n",
"Danilo (6.16, 0.49); (6.41, 0.72)\n",
"Tomori (6.21, 0.49); (6.43, 0.72)\n",
"Bastoni (6.26, 0.44); (6.39, 0.53)\n",
"Buongiorno (6.04, 0.45); (6.25, 0.67)\n",
"Pavard (6.14, 0.35); (6.27, 0.44)\n",
"Biraghi (6.14, 0.48); (6.58, 0.89)\n",
"Zappacosta (5.98, 0.49); (6.11, 0.63)\n",
"Mancini (5.93, 0.51); (6.14, 0.71)\n",
"Darmian (6.15, 0.37); (6.28, 0.45)\n",
"Martinez Quarta (6.16, 0.56); (6.45, 0.85)\n",
"Posch (6.01, 0.44); (6.16, 0.61)\n",
"Romagnoli S. (6.06, 0.50); (6.24, 0.73)\n",
"De Vrij (6.23, 0.39); (6.29, 0.41)\n",
"Romagnoli (5.96, 0.48); (5.98, 0.55)\n",
"Bremer (6.05, 0.49); (6.17, 0.62)\n",
"Smalling (6.08, 0.42); (6.31, 0.63)\n",
"Rrahmani (6.13, 0.51); (6.30, 0.67)\n",
"Rodriguez R. (5.97, 0.36); (5.97, 0.33)\n",
"Dragusin (6.03, 0.46); (6.20, 0.62)\n",
"Vasquez (6.17, 0.31); (6.19, 0.30)\n",
"Scalvini (6.04, 0.50); (6.17, 0.62)\n",
"Holm (6.03, 0.33); (6.10, 0.36)\n",
"Kristensen (6.00, 0.33); (6.18, 0.48)\n",
"Calabria (6.04, 0.41); (6.17, 0.54)\n",
"Acerbi (6.06, 0.31); (6.09, 0.31)\n",
"Cuadrado (6.05, 0.40); (6.15, 0.48)\n",
"Marchizza (6.00, 0.41); (6.12, 0.54)\n",
"Bani (6.06, 0.56); (6.27, 0.77)\n",
"Kolasinac (6.02, 0.37); (6.12, 0.44)\n",
"Toljan (5.85, 0.44); (5.90, 0.52)\n",
"Bakker (6.03, 0.32); (6.14, 0.43)\n",
"Ruggeri (6.11, 0.50); (6.33, 0.70)\n",
"Ebuehi (5.82, 0.41); (5.92, 0.52)\n",
"Mazzocchi (5.66, 0.39); (5.65, 0.40)\n",
"Doig (5.96, 0.50); (6.16, 0.70)\n",
"Gendrey (5.90, 0.39); (5.91, 0.43)\n",
"Thiaw (5.88, 0.61); (5.82, 0.62)\n",
"Mario Rui (5.97, 0.35); (6.00, 0.39)\n",
"Milenkovic (5.84, 0.54); (5.88, 0.63)\n",
"Kyriakopoulos (6.00, 0.46); (6.09, 0.58)\n",
"Casale (5.86, 0.43); (5.85, 0.49)\n",
"Kamara H. (5.92, 0.26); (5.93, 0.26)\n",
"Terracciano F. (5.95, 0.38); (5.97, 0.39)\n",
"Baschirotto (5.84, 0.54); (5.93, 0.66)\n",
"Bijol (5.78, 0.53); (5.85, 0.65)\n",
"Lucumi' (5.94, 0.39); (5.93, 0.42)\n",
"Kristiansen (6.11, 0.42); (6.24, 0.54)\n",
"Beukema (6.04, 0.46); (6.06, 0.49)\n",
"Natan (6.15, 0.41); (6.26, 0.49)\n",
"Faraoni (5.81, 0.37); (5.87, 0.44)\n",
"Toloi (6.09, 0.47); (6.23, 0.59)\n",
"Djimsiti (6.03, 0.35); (6.05, 0.34)\n",
"Lazzari (5.99, 0.35); (6.00, 0.36)\n",
"Lazaro (6.05, 0.37); (6.10, 0.39)\n",
"Gallo (5.86, 0.44); (5.84, 0.48)\n",
"Bellanova (5.71, 0.55); (5.76, 0.64)\n",
"Mari' (5.89, 0.45); (5.89, 0.50)\n",
"Erlic (5.86, 0.43); (5.82, 0.44)\n",
"Bastoni S. (5.81, 0.48); (6.00, 0.67)\n",
"Perez N. (5.72, 0.49); (5.71, 0.54)\n",
"Pedersen (5.92, 0.28); (5.92, 0.29)\n",
"Izzo (5.93, 0.45); (5.96, 0.52)\n",
"D'ambrosio (5.96, 0.29); (5.93, 0.26)\n",
"Luperto (5.61, 0.59); (5.56, 0.67)\n",
"Florenzi (6.15, 0.39); (6.24, 0.44)\n",
"De Silvestri (5.99, 0.40); (6.11, 0.52)\n",
"Marusic (5.81, 0.45); (5.76, 0.50)\n",
"Magnani (5.96, 0.44); (5.97, 0.48)\n",
"N'dicka (5.87, 0.41); (5.89, 0.46)\n",
"Augello (5.86, 0.38); (5.94, 0.46)\n",
"Dawidowicz (5.94, 0.37); (5.93, 0.38)\n",
"Carboni A. (5.95, 0.40); (5.98, 0.45)\n",
"Caldirola (5.88, 0.48); (5.92, 0.59)\n",
"Llorente D. (5.87, 0.38); (5.87, 0.39)\n",
"Parisi (6.04, 0.44); (6.17, 0.61)\n",
"Cambiaso (5.96, 0.42); (6.02, 0.47)\n",
"Bradaric (5.72, 0.45); (5.76, 0.52)\n",
"Pongracic (5.84, 0.52); (5.79, 0.55)\n",
"Viti (5.89, 0.43); (5.81, 0.42)\n",
"Ostigard (6.13, 0.54); (6.56, 0.92)\n",
"Olivera (6.03, 0.34); (6.12, 0.40)\n",
"Ebosele (5.80, 0.42); (5.78, 0.45)\n",
"Dodo' (5.89, 0.54); (6.01, 0.70)\n",
"Hien (5.93, 0.40); (5.91, 0.40)\n",
"Azzi (5.90, 0.27); (5.90, 0.26)\n",
"Kayode (6.17, 0.47); (6.28, 0.58)\n",
"Dorgu (5.92, 0.26); (5.90, 0.22)\n",
"Hysaj (5.89, 0.37); (5.92, 0.44)\n",
"Juan Jesus (6.09, 0.35); (6.13, 0.35)\n",
"Sabelli (6.00, 0.27); (6.06, 0.33)\n",
"Hateboer (5.87, 0.43); (5.96, 0.57)\n",
"Martin (5.87, 0.45); (5.93, 0.55)\n",
"Mina (6.08, 0.38); (6.34, 0.63)\n",
"Zappa (5.72, 0.36); (5.66, 0.34)\n",
"Calafiori (5.90, 0.44); (5.90, 0.50)\n",
"Monterisi (6.06, 0.56); (6.45, 0.97)\n",
"Kalulu (5.92, 0.48); (5.95, 0.56)\n",
"Vojvoda (5.93, 0.37); (6.00, 0.45)\n",
"De Winter (5.92, 0.47); (5.92, 0.53)\n",
"Gatti (5.77, 0.59); (5.70, 0.60)\n",
"Birindelli (5.90, 0.36); (5.88, 0.38)\n",
"Zemura (5.87, 0.26); (5.84, 0.23)\n",
"Hatzidiakos (5.79, 0.44); (5.75, 0.47)\n",
"Wieteska (5.71, 0.57); (5.67, 0.67)\n",
"Masina (5.86, 0.47); (6.20, 0.71)\n",
"Gyomber (5.64, 0.50); (5.57, 0.52)\n",
"Alex Sandro (5.83, 0.53); (5.71, 0.56)\n",
"Lirola (5.93, 0.49); (6.07, 0.65)\n",
"Palomino (6.06, 0.41); (6.16, 0.49)\n",
"Pellegrini Lu. (5.80, 0.33); (5.74, 0.32)\n",
"Djidji (5.91, 0.38); (5.95, 0.45)\n",
"Kabasele (5.88, 0.34); (5.87, 0.39)\n",
"Ranieri L. (5.79, 0.49); (5.86, 0.61)\n",
"Zortea (6.03, 0.42); (6.26, 0.61)\n",
"Pirola (5.67, 0.43); (5.65, 0.46)\n",
"Lovato (5.59, 0.47); (5.52, 0.49)\n",
"Ismajli (5.76, 0.46); (5.69, 0.48)\n",
"Vina (5.65, 0.53); (5.66, 0.60)\n",
"Obert (5.76, 0.38); (5.71, 0.37)\n",
"Tressoldi (5.91, 0.45); (5.97, 0.55)\n",
"Dossena (5.67, 0.43); (5.60, 0.42)\n",
"Oyono (5.88, 0.33); (5.85, 0.32)\n",
"Touba (5.94, 0.43); (5.98, 0.50)\n",
"Sazonov (5.95, 0.35); (5.97, 0.38)\n",
"Patric (5.89, 0.32); (5.86, 0.31)\n",
"Pezzella Giu. (5.57, 0.43); (5.48, 0.42)\n",
"Ferrari G. (5.79, 0.44); (5.85, 0.53)\n",
"Venuti (5.88, 0.36); (5.88, 0.38)\n",
"Karsdorp (5.94, 0.28); (5.97, 0.29)\n",
"Kjaer (5.78, 0.48); (5.66, 0.50)\n",
"Lykogiannis (5.89, 0.26); (5.88, 0.27)\n",
"Walukiewicz (5.59, 0.56); (5.54, 0.62)\n",
"Okoli (5.78, 0.44); (5.71, 0.47)\n",
"Amione (5.87, 0.42); (5.91, 0.52)\n",
"Di Pardo (5.85, 0.34); (5.83, 0.33)\n",
"Hefti (5.82, 0.39); (5.78, 0.37)\n",
"Ehizibue (5.75, 0.46); (5.80, 0.57)\n",
"Vogliacco (5.94, 0.47); (5.97, 0.53)\n",
"Rugani (6.01, 0.28); (6.02, 0.28)\n",
"Goldaniga (5.72, 0.51); (5.65, 0.54)\n",
"Pereira P. (5.98, 0.43); (6.03, 0.49)\n",
"Fazio (5.77, 0.61); (5.88, 0.77)\n",
"Bereszynski (5.62, 0.50); (5.58, 0.54)\n",
"Gunter (5.75, 0.49); (5.69, 0.51)\n",
"Soumaoro (5.90, 0.49); (5.85, 0.54)\n",
"Zanoli (6.11, 0.47); (6.38, 0.72)\n",
"Daniliuc (5.72, 0.49); (5.71, 0.56)\n",
"Soppy (5.97, 0.34); (6.00, 0.38)\n",
"Zima (5.90, 0.45); (5.88, 0.48)\n",
"Haps (5.90, 0.46); (5.94, 0.55)\n",
"Coppola D. (5.82, 0.34); (5.77, 0.33)\n",
"Cacace (5.59, 0.45); (5.52, 0.46)\n",
"Sambia (5.84, 0.41); (5.84, 0.43)\n",
"Guessand A. (5.90, 0.47); (6.00, 0.59)\n",
"Cabal (5.98, 0.35); (6.00, 0.35)\n",
"Missori (5.92, 0.51); (6.00, 0.62)\n",
"Bisseck (6.10, 0.47); (6.29, 0.63)\n",
"Ferreira J. (5.76, 0.30); (5.70, 0.30)\n",
"Corazza (5.91, 0.33); (5.91, 0.35)\n",
"Kristensen T. (5.63, 0.41); (5.58, 0.41)\n",
"Dermaku (5.92, 0.43); (5.98, 0.52)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tonelli (5.62, 0.47); (5.53, 0.49)\n",
"De Sciglio (5.88, 0.31); (5.86, 0.29)\n",
"Capradossi (5.89, 0.46); (5.93, 0.54)\n",
"Bonifazi (5.85, 0.38); (5.80, 0.38)\n",
"Donati (5.95, 0.66); (6.01, 0.76)\n",
"Bettella (5.95, 0.44); (6.03, 0.54)\n",
"Kumbulla (5.52, 0.73); (5.28, 0.68)\n",
"Celik (5.73, 0.45); (5.67, 0.47)\n",
"Amey (5.94, 0.43); (6.00, 0.54)\n",
"Cittadini (5.95, 0.44); (6.03, 0.54)\n",
"Gila (5.88, 0.40); (5.86, 0.43)\n",
"Ebosse (5.82, 0.31); (5.77, 0.32)\n",
"Bronn (5.64, 0.42); (5.55, 0.42)\n",
"Guarino (5.81, 0.49); (5.88, 0.60)\n",
"Carboni F. (5.97, 0.42); (6.02, 0.49)\n",
"Smajlovic (5.93, 0.45); (6.00, 0.55)\n",
"Matturro (5.88, 0.49); (5.86, 0.53)\n",
"N'guessan (5.95, 0.43); (6.03, 0.52)\n",
"Mateus Lusuardi (5.93, 0.45); (6.00, 0.54)\n",
"Kalaj (5.93, 0.45); (6.00, 0.54)\n",
"Pierozzi (5.98, 0.46); (6.08, 0.57)\n",
"Huijsen (5.97, 0.43); (6.06, 0.53)\n",
"Bonfanti (6.00, 0.43); (6.11, 0.54)\n",
"Pellegrino (5.98, 0.44); (6.07, 0.54)\n",
"Comuzzo (5.98, 0.46); (6.08, 0.57)\n",
"Bartesaghi (6.03, 0.41); (6.10, 0.48)\n",
"Koopmeiners (6.33, 0.55); (6.94, 1.12)\n",
"Zielinski (6.34, 0.47); (6.77, 0.87)\n",
"Zaccagni (6.28, 0.52); (6.79, 1.01)\n",
"Luis Alberto (6.27, 0.54); (6.86, 1.09)\n",
"Pulisic (6.38, 0.60); (7.22, 1.38)\n",
"Bonaventura (6.33, 0.56); (6.98, 1.16)\n",
"Orsolini (6.18, 0.69); (6.89, 1.40)\n",
"Calhanoglu (6.33, 0.44); (6.62, 0.68)\n",
"Samardzic (6.14, 0.45); (6.50, 0.78)\n",
"Felipe Anderson (6.01, 0.55); (6.47, 0.94)\n",
"Politano (6.41, 0.51); (6.97, 1.06)\n",
"Gudmundsson A. (6.35, 0.51); (6.94, 1.07)\n",
"Candreva (6.16, 0.62); (6.79, 1.21)\n",
"Barella (6.27, 0.47); (6.67, 0.80)\n",
"Rabiot (6.19, 0.55); (6.71, 1.06)\n",
"Mkhitaryan (6.35, 0.53); (6.94, 1.05)\n",
"Ferguson (6.22, 0.49); (6.63, 0.85)\n",
"Frattesi (6.23, 0.51); (6.72, 0.95)\n",
"Loftus-Cheek (6.25, 0.47); (6.61, 0.78)\n",
"Colpani (6.32, 0.52); (6.89, 1.06)\n",
"Cristante (6.15, 0.50); (6.49, 0.79)\n",
"Strefezza (6.01, 0.44); (6.29, 0.69)\n",
"Chukwueze (5.92, 0.39); (6.14, 0.54)\n",
"Radonjic (6.21, 0.59); (6.87, 1.21)\n",
"Reijnders (6.19, 0.45); (6.47, 0.68)\n",
"Pasalic (6.00, 0.52); (6.45, 0.89)\n",
"Aouar (6.04, 0.56); (6.55, 1.00)\n",
"Bajrami (6.06, 0.36); (6.25, 0.51)\n",
"Vlasic (5.99, 0.47); (6.29, 0.71)\n",
"Ederson D.s. (6.08, 0.46); (6.31, 0.65)\n",
"Baldanzi (5.94, 0.54); (6.36, 0.90)\n",
"Kamada (6.00, 0.49); (6.37, 0.79)\n",
"Lindstrom (6.08, 0.39); (6.35, 0.64)\n",
"De Roon (6.12, 0.49); (6.35, 0.69)\n",
"Pellegrini Lo. (5.95, 0.58); (6.47, 0.98)\n",
"El Shaarawy (6.15, 0.42); (6.48, 0.73)\n",
"Mandragora (6.04, 0.52); (6.41, 0.84)\n",
"Malinovskyi (6.01, 0.54); (6.49, 0.96)\n",
"Kostic (6.13, 0.44); (6.44, 0.70)\n",
"De Ketelaere (6.12, 0.51); (6.47, 0.82)\n",
"Gomez (5.96, 0.44); (6.03, 0.55)\n"
]
}
],
"source": [
"output = pd.DataFrame(columns = ['player', 'role', 'team', 'oppteam', 'home', 'starter', 'vote%', 'MV', 'MV std', 'FV', 'FV std', 'MV loc', 'MV scale', 'MV skewness', 'MV tailweight', 'FV loc', 'FV scale', 'FV skewness', 'FV tailweight', 'Clean Sheet %'])\n",
"\n",
"tot_matches = 2 # home and not home\n",
"\n",
"current_season_games = max(players_orig['games'])\n",
"\n",
"for i in range(players.shape[0]):\n",
" try:\n",
" home = 0\n",
"\n",
" for k in range(tot_matches):\n",
" #matchday_out = k + 1\n",
" #[player, team, oppteam, home] = PlayerMatch(players.index[i], matchday_out)\n",
"\n",
" player = players.index[i]\n",
" team = players['team'][i]\n",
" oppteam = 'Avg'\n",
" home = not home\n",
"\n",
" [mean, std, dist] = vote_predict_NNb(player, team, oppteam, home = home)\n",
"\n",
" role = players['r'][player] \n",
"\n",
" starter = 0\n",
" voteperc = 0\n",
"\n",
" games = max( players_orig['games'][i], players_orig['gk_games'][i] )\n",
" mins = max( players_orig['minutes'][i], players_orig['gk_minutes'][i] )\n",
"\n",
" cs = 0\n",
" if(role == 'P'):\n",
" cs = dist[2].probs.numpy()[0] * 100\n",
"\n",
" starter = int( player in gk_starters )\n",
" if(starter):\n",
" voteperc = 100\n",
" else:\n",
" voteperc = 0\n",
" else:\n",
" starter = int ( 1 * (games >= current_season_games * 2/3 and mins / games >= 45 ) )\n",
" voteperc = int( min( 1, games / current_season_games ) * 100) \n",
"\n",
" if(k == 0):\n",
" row = [player, role, team, 'Avg', 1, starter, voteperc]\n",
"\n",
" numrow_ = [mean[0], std[0], \n",
" mean[1], std[1], \n",
" dist[0].loc.numpy()[0], dist[0].scale.numpy()[0], \n",
" dist[0].skewness.numpy()[0], dist[0].tailweight.numpy()[0], \n",
" dist[1].loc.numpy()[0], dist[1].scale.numpy()[0], \n",
" dist[1].skewness.numpy()[0], dist[1].tailweight.numpy()[0],\n",
" cs] \n",
"\n",
" if(k == 0):\n",
" numrow = numrow_\n",
" else:\n",
" for j in range(len(numrow)):\n",
" numrow[j] += numrow_[j]\n",
"\n",
" for j in range(len(numrow)):\n",
" numrow[j] /= tot_matches\n",
"\n",
" print(players.index[i] + ' (' + \"{:.2f}\".format(numrow[0]) + ', ' + \"{:.2f}\".format(numrow[1]) + \n",
" '); (' + \"{:.2f}\".format(numrow[2]) + ', ' + \"{:.2f}\".format(numrow[3]) + ')' )\n",
"\n",
" row += numrow # list concat\n",
"\n",
" row_df = pd.DataFrame(data = [row], columns = output.columns)\n",
"\n",
" output = pd.concat([output, row_df])\n",
" except:\n",
" print(players.index[i] + ' no data')\n",
" \n",
" \n",
"\n",
"output = output.set_index('player')\n",
"\n",
"output = output.sort_values(['team', 'role', 'FV'], ascending = [True, False, False])\n",
"#output.to_excel('outputs/pred_matchday_' + str(matchday_out) + '.xlsx')\n",
"\n",
"output"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b47cbd63",
"metadata": {},
"outputs": [],
"source": [
"import shutil\n",
"\n",
"output = output.sort_values(['role', 'FV'], ascending = [False, False])\n",
"\n",
"template_file = 'outputs/pred_matchday_base.xlsx'\n",
"dest_file = 'outputs/pred_avg_seriea.xlsx'\n",
"\n",
"shutil.copyfile(template_file, dest_file)\n",
"\n",
"with pd.ExcelWriter(dest_file, mode = 'a', engine=\"openpyxl\", if_sheet_exists = 'replace') as writer: \n",
" output.to_excel(writer, sheet_name='data')"
]
},
{
"cell_type": "markdown",
"id": "cf9df3bb",
"metadata": {},
"source": [
"Various predictions."
]
},
{
"cell_type": "code",
"execution_count": 54,
"id": "7300f3c2",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Meret: MV 5.90 ± 1.55; FV 5.53 + 1.18 (43.4% cs)\n",
"Szczesny: MV 5.90 ± 1.55; FV 5.54 + 1.23 (53.7% cs)\n",
"Provedel: MV 5.89 ± 1.56; FV 5.03 + 1.63 (28.1% cs)\n",
"Maignan: MV 5.90 ± 1.55; FV 5.21 + 1.44 (29.1% cs)\n",
"Rui Patricio: MV 5.84 ± 1.66; FV 3.89 + 2.53 (10.0% cs)\n",
"Sommer: MV 5.90 ± 1.55; FV 5.57 + 1.20 (57.7% cs)\n",
"Milinkovic-Savic V.: MV 5.85 ± 1.64; FV 5.11 + 1.72 (40.7% cs)\n",
"Musso: MV 5.90 ± 1.55; FV 5.60 + 1.35 (58.3% cs)\n",
"Caprile: MV 5.86 ± 1.61; FV 3.99 + 2.22 (6.3% cs)\n",
"Silvestri: MV 5.90 ± 1.55; FV 5.19 + 1.44 (32.8% cs)\n",
"Terracciano: MV 5.88 ± 1.58; FV 4.24 + 2.15 (16.7% cs)\n",
"Skorupski: MV 5.89 ± 1.57; FV 4.48 + 2.02 (22.3% cs)\n",
"Falcone: MV 5.90 ± 1.55; FV 5.32 + 1.44 (38.7% cs)\n",
"Di Gregorio: MV 5.90 ± 1.55; FV 5.21 + 1.54 (32.9% cs)\n",
"Consigli: MV 5.79 ± 1.73; FV 3.82 + 2.56 (8.2% cs)\n",
"Radunovic: MV 5.71 ± 1.90; FV 4.24 + 2.26 (21.5% cs)\n",
"Montipo': MV 5.87 ± 1.59; FV 4.34 + 2.10 (16.6% cs)\n",
"Martinez Jo.: MV 5.90 ± 1.55; FV 5.24 + 1.34 (27.6% cs)\n",
"Turati: MV 5.90 ± 1.55; FV 5.04 + 1.48 (22.6% cs)\n",
"Ochoa: MV 5.90 ± 1.55; FV 4.95 + 1.55 (19.2% cs)\n"
]
},
{
"data": {
"text/plain": [
"[array([5.89767402, 4.95480099]),\n",
" array([0.7759559 , 0.77737534], dtype=float32),\n",
" [<tfp.distributions._TensorCoercible 'tensor_coercible' batch_shape=[1] event_shape=[] dtype=float32>,\n",
" <tfp.distributions._TensorCoercible 'tensor_coercible' batch_shape=[1] event_shape=[] dtype=float32>,\n",
" <tfp.distributions._TensorCoercible 'tensor_coercible' batch_shape=[1] event_shape=[] dtype=int32>]]"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"predict_player('Meret', log = 1, plot = 0)\n",
"predict_player('Szczesny', log = 1, plot = 0)\n",
"predict_player('Provedel', log = 1, plot = 0)\n",
"predict_player('Maignan', log = 1, plot = 0)\n",
"predict_player('Rui Patricio', log = 1, plot = 0)\n",
"predict_player('Sommer', log = 1, plot = 0)\n",
"predict_player('Milinkovic-Savic V.', log = 1, plot = 0)\n",
"predict_player('Musso', log = 1, plot = 0)\n",
"predict_player('Caprile', log = 1, plot = 0)\n",
"predict_player('Silvestri', log = 1, plot = 0)\n",
"predict_player('Terracciano', log = 1, plot = 0)\n",
"predict_player('Skorupski', log = 1, plot = 0)\n",
"predict_player('Falcone', log = 1, plot = 0)\n",
"predict_player('Di Gregorio', log = 1, plot = 0)\n",
"predict_player('Consigli', log = 1, plot = 0)\n",
"predict_player('Radunovic', log = 1, plot = 0)\n",
"predict_player('Montipo\\'', log = 1, plot = 0)\n",
"predict_player('Martinez Jo.', log = 1, plot = 0)\n",
"predict_player('Turati', log = 1, plot = 0)\n",
"predict_player('Ochoa', log = 1, plot = 0)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "4b9f5a7d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Osimhen: MV 6.47 ± 1.49; FV 7.95 + 4.15\n",
"Osimhen: MV 6.48 ± 1.46; FV 8.08 + 4.29\n"
]
},
{
"data": {
"text/plain": [
"[array([6.48246781, 8.07706693]),\n",
" array([0.72848487, 2.14604 ], dtype=float32),\n",
" [<tfp.distributions._TensorCoercible 'tensor_coercible' batch_shape=[1] event_shape=[] dtype=float32>,\n",
" <tfp.distributions._TensorCoercible 'tensor_coercible' batch_shape=[1] event_shape=[] dtype=float32>]]"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"predict_player('Osimhen', log = 1)\n",
"predict_player('Osimhen', log = 1, oldseason= True)"
]
},
{
"cell_type": "code",
"execution_count": 56,
"id": "10c7ad3e",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiMAAAGxCAYAAACwbLZkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAABsMUlEQVR4nO3dd3QUVRsG8Ge2p0N6IYQikNB7R0Ag9CIiVboKogJGVBAFRAVFRVSaQmjSAkiRIsIH0lFqAAGpIaEkJKGkZ+t8f6xZWJPAJiSZbPL8zpnD7N07M+8uye6b20YQRVEEERERkURkUgdAREREpRuTESIiIpIUkxEiIiKSFJMRIiIikhSTESIiIpIUkxEiIiKSFJMRIiIikhSTESIiIpIUkxEiIiKSFJMRKnGWLVsGQRAsm0KhgJ+fH/r3748rV67k+7z3799H//794e3tDUEQ0KtXr4IL+jHTpk2DIAg210tMTCyUOApTu3btMHr0aMvjffv2Wf6/li1bluMxL7zwAgRBQIUKFazKK1SogGHDhlke37hx44nnKSnCwsIgCAK6detWJNd7/vnnMX78+CK5FpU+CqkDICosS5cuRXBwMDIzM3H48GF8/vnn+OOPP/DPP/+gbNmyeT7fp59+ik2bNmHJkiWoXLky3N3dCyHqkm/Lli04fPgwVqxYke05FxcXhIeHWyUXABAVFYV9+/bB1dU12zGbNm3Ksbwk0+v1WLlyJQBg586duH37NgICAgr1mp9++ik6dOiAN954A9WqVSvUa1Hpw5YRKrFq1qyJpk2bok2bNpg8eTImTpyI+Ph4bN68OV/n+/vvv1G5cmUMGjQITZs2RdWqVQs24FJixowZePHFF3P88uzXrx8OHTqUrQVryZIlCAgIQIsWLbIdU69ePVSuXLnQ4i2OtmzZgoSEBHTt2hVGoxHLly8v9Gu2bt0a1apVwzfffFPo16LSh8kIlRoNGzYEANy9e9dSlpmZiXfffRd169aFm5sb3N3d0axZM2zZssVSJ6vZ/3//+x8uXrxo6U7Yt28fAOCTTz5BkyZN4O7uDldXV9SvXx/h4eHI6R6UERERaNasGZycnODs7IyOHTvi9OnThfq6T5w4gR49esDd3R0ajQb16tXDunXrrOokJCRgzJgxqF69OpydneHt7Y0XXngBBw8ezHa++/fvY8yYMQgICIBKpUKlSpUwefJkaLXap8Zy+vRpHDt2DIMHD87x+Q4dOiAwMBBLliyxlJlMJixfvhxDhw6FTJb9I+u/3TQ5uXr1KoYPH44qVarA0dERAQEB6N69O86dO2dVL6u7aM2aNZg8eTL8/f3h6uqK9u3b49KlS0+8xubNmyEIAvbs2ZPtuQULFkAQBJw9exYAcP36dfTv3x/+/v5Qq9Xw8fFBu3btEBkZ+cRrZAkPD4dKpcLSpUsRGBiIpUuXWn7eEhISoFKp8PHHH2c77p9//oEgCPj+++8tZYcOHUKzZs2g0WgQEBCAjz/+GIsXL4YgCLhx44bV8YMHD8bq1auRkpJiU5xEtmIyQqVGVFQUAFi1aGi1Wty/fx8TJkzA5s2bsWbNGrRs2RK9e/e2dCP4+fnh6NGjqFevHipVqoSjR4/i6NGjqF+/PgBzsjJq1CisW7cOGzduRO/evfH222/j008/tbr+jBkzMGDAAFSvXh3r1q3Dzz//jJSUFLRq1QoXLlwolNf8xx9/oEWLFnj48CEWLlyILVu2oG7duujXr5/VmIr79+8DAKZOnYrt27dj6dKlqFSpEtq0aWNJugBz8ta2bVusWLECYWFh2L59O1555RXMmjULvXv3fmo827Ztg1wux/PPP5/j8zKZDMOGDcOKFStgNBoBALt27cKtW7cwfPjwfL8Pd+7cgYeHB7744gvs3LkT8+bNg0KhQJMmTXJMMj788ENER0dj8eLF+Omnn3DlyhV0797dElNOunXrBm9vbyxdujTbc8uWLUP9+vVRu3ZtAECXLl1w8uRJzJo1C7t378aCBQtQr149PHz48Kmv5datW9i1axd69uwJLy8vDB06FFevXsWBAwcAAF5eXujWrRuWL18Ok8lkdezSpUuhUqkwaNAgAMDZs2fRoUMHpKenY/ny5Vi4cCFOnTqFzz//PMdrt2nTBmlpaVY/E0QFQiQqYZYuXSoCEP/8809Rr9eLKSkp4s6dO0VfX1/x+eefF/V6fa7HGgwGUa/XiyNHjhTr1atn9Vzr1q3FGjVqPPHaRqNR1Ov14vTp00UPDw/RZDKJoiiKMTExokKhEN9++22r+ikpKaKvr6/Yt29fS9nUqVNFW341s+olJCTkWic4OFisV69ettfcrVs30c/PTzQajTkel/U+tGvXTnzxxRct5QsXLhQBiOvWrbOq/+WXX4oAxF27dj0x5s6dO4vBwcHZyv/44w8RgLh+/Xrx+vXroiAI4rZt20RRFMWXX35ZbNOmjSiKoti1a1cxKCjI6tigoCBx6NChlsdRUVEiAHHp0qW5xmEwGESdTidWqVJFfOedd7LF0aVLF6v669atEwGIR48efeLrCwsLEx0cHMSHDx9ayi5cuCACEH/44QdRFEUxMTFRBCDOmTPniefKzfTp00UA4s6dO0VRFC3v1+DBgy11fv3112z/HwaDQfT39xdfeuklS9nLL78sOjk5Wf0MGY1GsXr16iIAMSoqyuraOp1OFARB/OCDD/IVO1Fu2DJCJVbTpk2hVCrh4uKCTp06oWzZstiyZQsUCutx2+vXr0eLFi3g7OwMhUIBpVKJ8PBwXLx40abr7N27F+3bt4ebmxvkcjmUSiWmTJmCe/fuIT4+HgDw+++/w2AwYMiQITAYDJZNo9GgdevWhfKX5tWrV/HPP/9Y/gp+/LpdunRBbGysVavAwoULUb9+fWg0Gsv7sGfPHqv3Ye/evXByckKfPn2srpXVTZJTF8Xj7ty5A29v7yfWqVixItq0aYMlS5bg3r172LJlC0aMGJGXl56NwWDAjBkzUL16dahUKigUCqhUKly5ciXH/+cePXpYPc5q0YiOjn7idUaMGIGMjAxERERYypYuXQq1Wo2BAwcCANzd3VG5cmV89dVXmD17Nk6fPp2tBSM3oihaumY6dOgA4NH79csvvyA5ORkA0LlzZ/j6+lq10vz++++4c+eO1Xu5f/9+vPDCC/D09LSUyWQy9O3bN8frK5VKlClTBrdv37YpXiJbMRmhEmvFihU4fvw49u7di1GjRuHixYsYMGCAVZ2NGzeib9++CAgIwMqVK3H06FEcP34cI0aMQGZm5lOvcezYMYSGhgIAFi1ahMOHD+P48eOYPHkyACAjIwPAo3EqjRo1glKptNoiIiIKZXpu1jUnTJiQ7ZpjxowBAMt1Z8+ejTfeeANNmjTBL7/8gj///BPHjx9Hp06dLK8BAO7duwdfX99sU4+9vb2hUChw7969J8aUkZEBjUbz1NhHjhyJrVu3Yvbs2XBwcMiW/ORVWFgYPv74Y/Tq1Qtbt27FX3/9hePHj6NOnTpWry+Lh4eH1WO1Wm2J/0lq1KiBRo0aWZIAo9GIlStXomfPnpbZV1njSjp27IhZs2ahfv368PLywtixY586FmPv3r2IiorCyy+/jOTkZDx8+BAPHz5E3759kZ6ejjVr1gAAFAoFBg8ejE2bNlm6fpYtWwY/Pz907NjRcr579+7Bx8cn23VyKsui0Wie+j4Q5RWn9lKJFRISYhm02rZtWxiNRixevBgbNmywfLmtXLkSFStWREREhNUXrC2DMQFg7dq1UCqV2LZtm9WX7H9n7GT95blhwwYEBQU9y8uyWdY1J02alOt4jqwpmitXrkSbNm2wYMECq+f/++Xo4eGBv/76C6IoWr1f8fHxMBgMVn9h5xZT1viUJ+nduzfefPNNfPHFF3jttdfg4ODw1GOeZOXKlRgyZAhmzJhhVZ6YmIgyZco807n/a/jw4RgzZgwuXryI69evIzY2Ntt4l6CgIISHhwMALl++jHXr1mHatGnQ6XRYuHBhrufOOmb27NmYPXt2js+PGjXKEsdXX32FtWvXol+/fvj1118xfvx4yOVyS30PDw+rAd1Z4uLico3hwYMHT/1/JsorJiNUasyaNQu//PILpkyZgt69e0Mmk0EQBKhUKqsv1ri4OKvZNE+Staja4x/wGRkZ+Pnnn63qdezYEQqFAteuXcNLL71UMC/oKapVq4YqVargzJkz2b6E/0sQBMtf/1nOnj2Lo0ePIjAw0FLWrl07rFu3Dps3b8aLL75oKc8a7NuuXbsnXic4ONimqdUODg6YMmUKDhw4gDfeeOOp9Z8mp9e3fft23L59G88999wzn/9xAwYMQFhYGJYtW4br168jICDA0nqWk6pVq+Kjjz7CL7/8glOnTuVa78GDB9i0aRNatGiBzz77LNvzixcvxqpVq/D333+jZs2aCAkJQZMmTbB06VIYjUZotdpsSVHr1q2xY8cOJCYmWhIMk8mE9evX5xjDnTt3kJmZierVq9vyVhDZjMkIlRply5bFpEmT8P7772P16tV45ZVX0K1bN2zcuBFjxoxBnz59cPPmTXz66afw8/OzabXWrl27Yvbs2Rg4cCBef/113Lt3D19//XW2L74KFSpg+vTpmDx5Mq5fv24Zw3L37l0cO3YMTk5O+OSTT/L1urZu3QoXF5ds5X369MGPP/6Izp07o2PHjhg2bBgCAgJw//59XLx4EadOnbJ86XTr1g2ffvoppk6ditatW+PSpUuYPn06KlasCIPBYDnnkCFDMG/ePAwdOhQ3btxArVq1cOjQIcyYMQNdunRB+/btnxhr1liQy5cvP3WdlrCwMISFheXjHcmuW7duWLZsGYKDg1G7dm2cPHkSX331FcqVK1cg539cmTJl8OKLL2LZsmV4+PAhJkyYYDUl+ezZs3jrrbfw8ssvo0qVKlCpVNi7dy/Onj2LiRMn5nreVatWITMzE2PHjkWbNm2yPe/h4YFVq1YhPDwc3377LQDzGJZRo0bhzp07aN68ebbFyiZPnoytW7eiXbt2mDx5MhwcHLBw4UKkpaUBQLap1H/++ScAc0sjUYGSegQtUUHLmk1z/PjxbM9lZGSI5cuXF6tUqSIaDAZRFEXxiy++ECtUqCCq1WoxJCREXLRoUY4zWnKbTbNkyRKxWrVqolqtFitVqiTOnDlTDA8Pz3E2wubNm8W2bduKrq6uolqtFoOCgsQ+ffqI//vf/yx18jqbJrcty5kzZ8S+ffuK3t7eolKpFH19fcUXXnhBXLhwoaWOVqsVJ0yYIAYEBIgajUasX7++uHnzZnHo0KHZZq/cu3dPHD16tOjn5ycqFAoxKChInDRpkpiZmfnUmJOSkkRnZ2dx1qxZVuWPz6Z5kvzOpnnw4IE4cuRI0dvbW3R0dBRbtmwpHjx4UGzdurXYunXrp8Zhywydx+3atcvy/3D58mWr5+7evSsOGzZMDA4OFp2cnERnZ2exdu3a4rfffmv5mcxJ3bp1RW9vb1Gr1eZap2nTpqKnp6elTlJSkujg4CACEBctWpTjMQcPHhSbNGkiqtVq0dfXV3zvvfcss6MenxUkiqI4ePBgsVatWja9B0R5IYhiDiszEREVkrfffht79uzB+fPnbboHDxW90NBQ3LhxA5cvX7aUJScnw9/fH99++y1ee+01CaOjkojJCBEVqbt376Jq1aoIDw9/5lky9OzCwsJQr149BAYG4v79+1i1ahU2btyI8PBwq2nAn3zyCSIiInD27Nls0+OJnhV/ooioSPn4+GDVqlV48OCB1KEQzNOPp0yZgri4OAiCgOrVq+Pnn3/GK6+8YlXP1dUVy5YtYyJChYItI0RERCQpLnpGREREkmIyQkRERJJiMkJERESSsouRSCaTCXfu3IGLiwunAhIREdkJURSRkpICf3//bIvoPc4ukpE7d+5YLUlNRERE9uPmzZtPXPHYLpKRrKWub968CVdXV4mjIbJ/aWmAv795/84dwMlJ2nhskaZLg/835qDvvHsHTio7CJqolEtOTkZgYGCOt6x4nF0kI1ldM66urkxGiArAY/f1g6urfSQjcp0c+PfGyK6urkxGiOzI04ZYcAArERERScouWkaIqGApFMDQoY/27YFCpsDQOkMt+0RUctjFCqzJyclwc3NDUlISu2mIiIjshK3f3/zzgoiohDEajdDr9VKHQaWAXC6HQqF45mU3mIwQlUKiCKSnm/cdHQF7WL5HFEWk681BOyodueZQLlJTU3Hr1i3YQaM3lRCOjo7w8/ODSqXK9zmYjBCVQunpgLOzeT811T5m06Tr0+E80xx06qRUzqbJgdFoxK1bt+Do6AgvLy8mbFSoRFGETqdDQkICoqKiUKVKlScubPYkTEaIiEoIvV4PURTh5eUFBwcHqcOhUsDBwQFKpRLR0dHQ6XTQaDT5Og+n9hIRlTBsEaGilN/WEKtzFEAcRERERPnGZISIiIgkxWSEiIiIJMVkhIiIJDVs2DAIgoDRo0dne27MmDEQBAHDhg0DAHTv3h3t27fP8TxHjx6FIAg4depUrte6ePEievToATc3N7i4uKBp06aIiYmxKc61a9dCEAT06tXLqtxgMOCjjz5CxYoV4eDggEqVKmH69OkwmUw2nTc/MjMzMWzYMNSqVQsKhSJbTLnp0aMHypcvD41GAz8/PwwePBh37tyxPL9s2TIIgpDjFh8fX0ivhskIUakklwN9+pi3x2+aV5zJZXL0qd4Hfar3gVxmJ0GTzQIDA7F27VpkZGRYyjIzM7FmzRqUL1/eUjZy5Ejs3bsX0dHR2c6xZMkS1K1bF/Xr18/xGteuXUPLli0RHByMffv24cyZM/j4449tmgESHR2NCRMmoFWrVtme+/LLL7Fw4ULMnTsXFy9exKxZs/DVV1/hhx9+sOWlAwCmTZtmSbhsYTQa4eDggLFjx+aanOWkbdu2WLduHS5duoRffvkF165dQ58+fSzP9+vXD7GxsVZbx44d0bp1a3h7e9t8nbzi1F6iUkijAdavlzqKvNEoNFj/sp0FLbHHF7cranldTK9+/fq4fv06Nm7ciEGDBgEANm7ciMDAQFSqVMlSr1u3bvD29sayZcswdepUS3l6ejoiIiIwY8aMXK8xefJkdOnSBbNmzbKUPX7u3BiNRgwaNAiffPIJDh48iIcPH1o9f/ToUfTs2RNdu3YFAFSoUAFr1qzBiRMnbHrt+eHk5IQFCxYAAA4fPpwtpty88847lv2goCBMnDgRvXr1gl6vh1KphIODg9W08ISEBOzduxfh4eEFGv9/sWWEiKiEylrcTootP0nQ8OHDsXTpUsvjJUuWYMSIEVZ1FAoFhgwZgmXLllmtMrt+/XrodDpLIvNfJpMJ27dvR9WqVdGxY0d4e3ujSZMm2Lx581Pjmj59Ory8vDBy5Mgcn2/ZsiX27NmDy5cvAwDOnDmDQ4cOoUuXLk89t5Tu37+PVatWoXnz5lAqlTnWWbFiBRwdHa1aTwoDkxEiIioWBg8ejEOHDuHGjRuIjo7G4cOH8corr2SrN2LECNy4cQP79u2zlC1ZsgS9e/dG2bJlczx3fHw8UlNT8cUXX6BTp07YtWsXXnzxRfTu3Rv79+/PNabDhw8jPDwcixYtyrXOBx98gAEDBiA4OBhKpRL16tXD+PHjMWDAgFyPOXjwIJydnS3bjBkzsGrVqmxlheGDDz6Ak5MTPDw8EBMTgy1btuRad8mSJRg4cGChL6LHbhqiUigtzf6Wg0/TpXE5+DxydDT//0p17bzy9PRE165dsXz5coiiiK5du8LT0zNbveDgYDRv3hxLlixB27Ztce3aNRw8eBC7du3K9dxZg0l79uxp6aqoW7cujhw5goULF6J169bZjklJScErr7yCRYsW5RhHloiICKxcuRKrV69GjRo1EBkZifHjx8Pf3x9Dhw7N8ZiGDRsiMjLS8vj777/H7du38eWXX1rK3N3dc73ms3jvvfcwcuRIREdH45NPPsGQIUOwbdu2bIvlHT16FBcuXMCKFSsKJY7H5TkZOXDgAL766iucPHkSsbGx2LRpk82jeA8fPozWrVujZs2aVv8JRERU8ATBPhLNx40YMQJvvfUWAGDevHm51hs5ciTeeustzJs3D0uXLkVQUBDatWuXa31PT08oFApUr17dqjwkJASHDh3K8Zhr167hxo0b6N69u6UsK6lRKBS4dOkSKleujPfeew8TJ05E//79AQC1atVCdHQ0Zs6cmWsy4uDggOeee87y2N3dHcnJyVZlhcXT0xOenp6oWrUqQkJCEBgYiD///BPNmjWzqrd48WLUrVsXDRo0KPSY8txNk5aWhjp16mDu3Ll5Oi4pKQlDhgx54g8LERGVbp06dYJOp4NOp0PHjh1zrde3b1/I5XKsXr0ay5cvx/Dhw5+4DL5KpUKjRo1w6dIlq/LLly8jKCgox2OCg4Nx7tw5REZGWrYePXqgbdu2iIyMRGBgIADz4Nn/Lokul8sLdWpvQckad6PVaq3KU1NTsW7dulzHyRS0PLeMdO7cGZ07d87zhUaNGoWBAwdCLpfbNGCIiIhKH7lcjosXL1r2c+Ps7Ix+/frhww8/RFJSkk3TYt977z3069cPzz//PNq2bYudO3di69atVmNPhgwZgoCAAMycORMajQY1a9a0OkeZMmUAwKq8e/fu+Pzzz1G+fHnUqFEDp0+fxuzZs7MNvn2cTqfD/fv3LY+z1liJi4uzeo3OWf2pObhw4YLlPCkpKZYeh7p16wIAjh07hiFDhmDPnj0ICAjAsWPHcOzYMbRs2RJly5bF9evXMWXKFFSuXDlbq0hERAQMBkOuA4ILWpGMGVm6dCmuXbuGlStX4rPPPntqfa1Wa5WlJScnF2Z4RERUjLi6utpUb+TIkQgPD0doaKjVWiS5efHFF7Fw4ULMnDkTY8eORbVq1fDLL7+gZcuWljoxMTF5vvHbDz/8gI8//hhjxoxBfHw8/P39MWrUKEyZMiXXY44cOYK2bds+8bxTp07FtGnTcn2+S5cuVuut1KtXD8Cj1o709HRcunQJer0egLlraOPGjZg6dSrS0tLg5+eHTp06Ye3atVCr1VbnDg8Pf+KA4IImiI/PjcrrwYLw1DEjV65cQcuWLXHw4EFUrVoV06ZNw+bNm584ZmTatGn45JNPspUnJSXZ/ENKRLnjANaSKTMzE1FRUahYsWK+b+VOlFdP+rlLTk6Gm5vbU7+/C3Vqr9FoxMCBA/HJJ5+gatWqNh83adIkJCUlWbabN28WYpREREQkpULtpklJScGJEydw+vRpy+hok8kEURShUCiwa9cuvPDCC9mOU6vV2ZqMiKjgyOVA1npM9rQcfJcqXSz7RFRyFGoy4urqinPnzlmVzZ8/H3v37sWGDRtQsWLFwrw8EeVCowG2b5c6irzRKDTYPtDOgiYim+Q5GUlNTcXVq1ctj6OiohAZGQl3d3eUL18ekyZNwu3bt7FixQrIZLJsI5G9vb1zHKFMREREpVOek5ETJ05YjQAOCwsDAAwdOhTLli1DbGyszbdjJiIiInqm2TRFxdbRuERkm7Q0IOtu4PHx9jObxvtrc9DxE+I5myYHnE1DUiiI2TS8Nw1RKSXVreWfRbreDoMmoqfiXXuJiIhIUkxGiIiISFJMRoiIiEhSTEaIiEhSw4YNgyAI2barV6+ie/fuaN++fY7HHT16FIIg4NSpUzk+n9M5BUHAV1999cR45syZg2rVqsHBwQGBgYF45513kJmZmWPdmTNnQhAEjB8/Pk+v+VlcvXoVLi4ulpv2PcmDBw8wePBguLm5wc3NDYMHD8bDhw+t6uT0Hi1cuLBwgs8FkxEiIpJcp06dEBsba7VVrFgRI0eOxN69e61uCJdlyZIlqFu3LurXr5/jOf97viVLlkAQBLz00ku5xrFq1SpMnDgRU6dOxcWLFxEeHo6IiAhMmjQpW93jx4/jp59+Qu3atfP8eqdNm2bTnYb/S6/XY8CAAWjVqpVN9QcOHIjIyEjs3LkTO3fuRGRkJAYPHpyt3tKlS63eq6FDh+Y5tmfB2TREpZBMBrRu/WjfHsgEGVoHtbbs09OJoijZDCRHpSMEQbC5vlqthq+vb7bybt26wdvbG8uWLcPUqVMt5enp6YiIiMCMGTNyPed/z7dlyxa0bdsWlSpVyvWYo0ePokWLFhg4cCAAoEKFChgwYACOHTtmVS81NRWDBg3CokWLbLobfUH56KOPEBwcjHbt2uHIkSNPrHvx4kXs3LkTf/75J5o0aQIAWLRoEZo1a4ZLly6hWrVqlrplypTJ8f0vKkxGiEohBwdg3z6po8gbB6UD9g3bJ3UYdiVdn26503FRK6g7KysUCgwZMgTLli3DlClTLAnO+vXrodPpMGjQIJvOc/fuXWzfvh3Lly9/Yr2WLVti5cqVOHbsGBo3bozr169jx44d2VoK3nzzTXTt2hXt27cvsmRk7969WL9+PSIjI7Fx48an1j969Cjc3NwsiQgANG3aFG5ubjhy5IhVMvLWW2/h1VdftbRGvf7665AV4V8qTEaIiEhy27Ztg7Pzo8Spc+fOWL9+PQBgxIgR+Oqrr7Bv3z7LCuBLlixB7969UbZsWZvOv3z5cri4uKB3795PrNe/f38kJCSgZcuWEEURBoMBb7zxBiZOnGips3btWpw8eRInTpzI68vMt3v37mHYsGFYuXKlzYt/xsXFwTtrdcPHeHt7Iy4uzvL4008/Rbt27eDg4IA9e/bg3XffRWJiIj766KMCi/9pmIwQEZVQjkpHpE5KlezaedG2bVssWLDA8tjpsWWBg4OD0bx5cyxZsgRt27bFtWvXcPDgQezatcvm8y9ZsgSDBg166sq0+/btw+eff4758+ejSZMmuHr1KsaNGwc/Pz98/PHHuHnzJsaNG4ddu3blaZXbgwcPonPnzpbHOp0Ooihiw4YNlrIPP/wQH374YY7Hv/baaxg4cCCef/55m68JIMeuMlEUrcofTzrq1q0LAJg+fXqRJiMQ7UBSUpIIQExKSpI6FKISITVVFD09zVtqqtTR2CZVmyp6zvIUPWd5iqlaOwm6iGVkZIgXLlwQMzIypA4lT4YOHSr27NnziXXCw8NFBwcHMSkpSZw8ebJYoUIF0WQy2XT+AwcOiADEyMjIp9Zt2bKlOGHCBKuyn3/+WXRwcBCNRqO4adMmEYAol8stGwBREARRLpeLBoMhx/Omp6eLV65csWxvv/222Lt3b6uye/fu5RqXm5ub1TVlMpkljvDw8ByPCQ8PF93c3HI815IlS3K91qFDh0QAYlxcXK51Hveknztbv7/ZMkJUSiUmSh1B3iWm22HQVCD69u2LcePGYfXq1Vi+fDlee+01mwfIhoeHo0GDBqhTp85T66anp2cbKyGXyyGKIkRRRLt27XDu3Dmr54cPH47g4GB88MEHkMvlOZ7XwcEBzz33nOWxu7s7kpOTrcqe5OjRozAajZbHW7ZswZdffokjR44gICAgx2OaNWuGpKQky/gXAPjrr7+QlJSE5s2b53qt06dPQ6PR2DR1uKAwGSEiomLP2dkZ/fr1w4cffoikpCSbp8UmJydj/fr1+Oabb3J8fsiQIQgICMDMmTMBAN27d8fs2bNRr149SzfNxx9/jB49ekAul8PFxQU1a9a0OoeTkxM8PDyylRekkJAQq8cnTpyATCazuuaxY8cwZMgQ7NmzBwEBAQgJCUGnTp3w2muv4ccffwQAvP766+jWrZtl8OrWrVsRFxeHZs2awcHBAX/88QcmT56M119/HWq1utBez38xGSEiIrswcuRIhIeHIzQ0FOXLl7fpmLVr10IURQwYMCDH52NiYqxaQj766CMIgoCPPvoIt2/fhpeXF7p3747PP/+8QF5DYUpPT8elS5eg1+stZatWrcLYsWMRGhoKAOjRowfmzp1reV6pVGL+/PkICwuDyWRCpUqVMH36dLz55ptFGrsgiqJYpFfMB1tvQUxEtklLA7ImLqSmAk7PPgOz0KXp0izTVAtq2mhJ86RbuRMVlif93Nn6/c2Vg4iIiEhSTEaIiIhIUhwzQlQKyWRAw4aP9u2BTJChoX9Dyz4RlRxMRohKIQcH4PhxqaPIGwelA46/ZmdBE5FN+OcFEVEJYwfzEqgEKYifNyYjREQlRNaCWzqdTuJIqDRJTzffGVqpVOb7HOymISqF0tOB6tXN+xcuAI55u42IJNL16ag+zxz0hTcv5PneJ6WBQqGAo6MjEhISoFQqi/Suq1T6iKKI9PR0xMfHo0yZMrmuPmsLJiNEpZAoAtHRj/btgSiKiE6KtuxTdoIgwM/PD1FRUYjO+g8mKmRlypSBr6/vM52DyQgRUQmiUqlQpUoVdtVQkVAqlc/UIpKFyQgRUQkjk8m4AivZFXYoEhERkaSYjBAREZGkmIwQERGRpDhmhKgUEoRHU3sFQdpYbCUIAqp7VbfsE1HJwWSEqBRydATOn5c6irxxVDri/Bg7C5qIbMJuGiIiIpIUkxEiIiKSFJMRolIoPR2oUcO8/XtbiWIvXZ+OGvNroMb8GkjX20nQRGQTjhkhKoVE0XxPmqx9eyCKIi4kXLDsE1HJwZYRIiIikhSTESIiIpIUkxEiIiKSFJMRIiIikhSTESIiIpJUnpORAwcOoHv37vD394cgCNi8efMT62/cuBEdOnSAl5cXXF1d0axZM/z+++/5jZeICoAgAEFB5s1eVlYXBAFBbkEIcgvicvBEJUyek5G0tDTUqVMHc+fOtan+gQMH0KFDB+zYsQMnT55E27Zt0b17d5w+fTrPwRJRwXB0BG7cMG+OjlJHYxtHpSNujL+BG+NvwFFpJ0ETkU0E8Rkm7AuCgE2bNqFXr155Oq5GjRro168fpkyZYlP95ORkuLm5ISkpCa6urvmIlIiIiIqard/fRb7omclkQkpKCtzd3XOto9VqodVqLY+Tk5OLIjQiIiKSQJEPYP3mm2+QlpaGvn375lpn5syZcHNzs2yBgYFFGCFRyZeRATRqZN4yMqSOxjYZ+gw0WtQIjRY1QobeToImIpsUacvImjVrMG3aNGzZsgXe3t651ps0aRLCwsIsj5OTk5mQEBUgkwk4ceLRvj0wiSacuHPCsk9EJUeRJSMREREYOXIk1q9fj/bt2z+xrlqthlqtLqLIiIiISEpF0k2zZs0aDBs2DKtXr0bXrl2L4pJERERkJ/LcMpKamoqrV69aHkdFRSEyMhLu7u4oX748Jk2ahNu3b2PFihUAzInIkCFD8N1336Fp06aIi4sDADg4OMDNza2AXgYRERHZqzy3jJw4cQL16tVDvXr1AABhYWGoV6+eZZpubGwsYmJiLPV//PFHGAwGvPnmm/Dz87Ns48aNK6CXQERERPYszy0jbdq0wZOWJlm2bJnV43379uX1EkRERFSKFPk6I0RUPHh6Sh1B3nk62mHQRPRUTEaISiEnJyAhQeoo8sZJ5YSE9+wsaCKyCe/aS0RERJJiMkJERESSYjJCVAplZABt2pg3e1oOvs2yNmizrA2XgycqYThmhKgUMpmA/fsf7dsDk2jC/uj9ln0iKjnYMkJERESSYjJCREREkmIyQkRERJJiMkJERESSYjJCREREkuJsGqJSytFR6gjyzlFph0ET0VMxGSEqhZycgLQ0qaPIGyeVE9I+tLOgicgm7KYhIiIiSTEZISIiIkkxGSEqhTIzga5dzVtmptTR2CbTkImuq7ui6+quyDTYSdBEZBOOGSEqhYxGYMeOR/v2wGgyYseVHZZ9Iio52DJCREREkmIyQkRERJJiMkJERESSYjJCREREkmIyQkRERJJiMkJERESS4tReolLIyQkQRamjyBsnlRPEqXYWNBHZhC0jREREJCkmI0RERCQpJiNEpVBmJvDyy+bNnpaDf3n9y3h5/ctcDp6ohGEyQlQKGY3Ahg3mzZ6Wg99wYQM2XNjA5eCJShgmI0RERCQpJiNEREQkKSYjREREJCkmI0RERCQpJiNEREQkKSYjREREJCkuB09UCjk6Aqmpj/btgaPSEamTUi37RFRyMBkhKoUEwXx/GnsiCAKcVHYWNBHZhN00REREJCkmI0SlkFYLDBtm3rRaqaOxjdagxbDNwzBs8zBoDXYSNBHZJM/JyIEDB9C9e3f4+/tDEARs3rz5qcfs378fDRo0gEajQaVKlbBw4cL8xEpEBcRgAJYvN28Gg9TR2MZgMmD5meVYfmY5DCY7CZqIbJLnZCQtLQ116tTB3LlzbaofFRWFLl26oFWrVjh9+jQ+/PBDjB07Fr/88kuegyUiIqKSJ88DWDt37ozOnTvbXH/hwoUoX7485syZAwAICQnBiRMn8PXXX+Oll17K6+WJiIiohCn0MSNHjx5FaGioVVnHjh1x4sQJ6PX6HI/RarVITk622oiIiKhkKvRkJC4uDj4+PlZlPj4+MBgMSExMzPGYmTNnws3NzbIFBgYWdphEREQkkSKZTSMIgtVjURRzLM8yadIkJCUlWbabN28WeoxEREQkjUJf9MzX1xdxcXFWZfHx8VAoFPDw8MjxGLVaDbVaXdihERERUTFQ6MlIs2bNsHXrVquyXbt2oWHDhlAqlYV9eSLKgaMjEB//aN8eOCodET8h3rJPRCVHnrtpUlNTERkZicjISADmqbuRkZGIiYkBYO5iGTJkiKX+6NGjER0djbCwMFy8eBFLlixBeHg4JkyYUDCvgIjyTBAALy/zlktvabEjCAK8nLzg5eSVaxcvEdmnPLeMnDhxAm3btrU8DgsLAwAMHToUy5YtQ2xsrCUxAYCKFStix44deOeddzBv3jz4+/vj+++/57ReIiIiAgAIYtZo0mIsOTkZbm5uSEpKgqurq9ThENk9rRb49+8IzJ4N2MMQLa1Bi7DfzUHP7jgbaoUdBE1Uytn6/c1khKgUSksDnJ3N+6mp9nEH3zRdGpxnmoNOnZTKO/gS2QFbv795ozwiIiKSFJMRIiIikhSTESIiIpIUkxEiIiKSFJMRIiIikhSTESIiIpJUoS8HT0TFj4MDEBX1aN8eOCgdEDUuyrJPRCUHkxGiUkgmAypUkDqKvJEJMlQoU0HqMIioELCbhoiIiCTFZISoFNLpgPfeM286ndTR2EZn1OG9Xe/hvV3vQWe0k6CJyCZcDp6oFOJy8ERUFLgcPBEREdkFJiNEREQkKSYjREREJCkmI0RERCQpJiNEREQkKSYjREREJCmuwEpUCjk4AH///WjfHjgoHfD3G39b9omo5GAyQlQKyWRAjRpSR5E3MkGGGt52FjQR2YTdNERERCQptowQlUI6HTBjhnn/ww8BlUraeGyhM+ow46A56A9bfQiV3A6CJiKbcDl4olKIy8ETUVHgcvBERERkF5iMEBERkaSYjBAREZGkmIwQERGRpJiMEBERkaSYjBAREZGkuM4IUSmk0QDHjj3atwcahQbHXj1m2SeikoPJCFEpJJcDjRpJHUXeyGVyNAqws6CJyCbspiEiIiJJsWWEqBTS6YDvvjPvjxtnP8vBf/enOehxTcdxOXiiEoTLwROVQlwOnoiKApeDJyIiIrvAZISIiIgkxWSEiIiIJMVkhIiIiCSVr2Rk/vz5qFixIjQaDRo0aICDBw8+sf6qVatQp04dODo6ws/PD8OHD8e9e/fyFTARERGVLHlORiIiIjB+/HhMnjwZp0+fRqtWrdC5c2fExMTkWP/QoUMYMmQIRo4cifPnz2P9+vU4fvw4Xn311WcOnoiIiOxfnqf2NmnSBPXr18eCBQssZSEhIejVqxdmzpyZrf7XX3+NBQsW4Nq1a5ayH374AbNmzcLNmzdtuian9hIVLKMRyGrQbNXKvCJrcWc0GXEwxhx0q/KtIJfZQdBEpVyhTO3V6XQ4efIkQkNDrcpDQ0Nx5MiRHI9p3rw5bt26hR07dkAURdy9excbNmxA165dc72OVqtFcnKy1UZEBUcuB9q0MW/2kIgA5uXg21RogzYV2jARISph8pSMJCYmwmg0wsfHx6rcx8cHcXFxOR7TvHlzrFq1Cv369YNKpYKvry/KlCmDH374IdfrzJw5E25ubpYtMDAwL2ESERGRHcnXAFZBEKwei6KYrSzLhQsXMHbsWEyZMgUnT57Ezp07ERUVhdGjR+d6/kmTJiEpKcmy2dqdQ0S20euBefPMm14vdTS20Rv1mHdsHuYdmwe90U6CJiKb5OneNJ6enpDL5dlaQeLj47O1lmSZOXMmWrRogffeew8AULt2bTg5OaFVq1b47LPP4Ofnl+0YtVoNtVqdl9CIKA90OuCtt8z7w4YBSqWk4dhEZ9Thrd/MQQ+rOwxKuR0ETUQ2yVPLiEqlQoMGDbB7926r8t27d6N58+Y5HpOeng6ZzPoy8n87qe3gtjhERERUyPLcTRMWFobFixdjyZIluHjxIt555x3ExMRYul0mTZqEIUOGWOp3794dGzduxIIFC3D9+nUcPnwYY8eORePGjeHv719wr4SIiIjsUp66aQCgX79+uHfvHqZPn47Y2FjUrFkTO3bsQFBQEAAgNjbWas2RYcOGISUlBXPnzsW7776LMmXK4IUXXsCXX35ZcK+CiIiI7Fae1xmRAtcZISpYaWmAs7N5PzUVcHKSNh5bpOnS4DzTHHTqpFQ4qewgaKJSrlDWGSEiIiIqaExGiIiISFJ5HjNCRPZPrQa2bXu0bw/UCjW2Ddhm2SeikoNjRoiIiKhQcMwIERER2QV20xCVQno9sGqVeX/QIPtYgVVv1GPVOXPQg2oN4gqsRCUIu2mISiFO7SWiosBuGiIiIrILTEaIiIhIUkxGiIiISFJMRoiIiEhSTEaIiIhIUkxGiIiISFJcZ4SoFFKrgXXrHu3bA7VCjXV91ln2iajk4DojREREVCi4zggRERHZBXbTEJVCBgOwaZN5/8UXAYUdfBIYTAZsumgO+sWQF6GQ2UHQRGQT/jYTlUJaLdC3r3k/NdU+khGtQYu+G8xBp05KhUJlB0ETkU3YTUNERESSYjJCREREkmIyQkRERJJiMkJERESSYjJCREREkmIyQkRERJLi3DiiUkilApYufbRvD1RyFZb2XGrZJ6KSg8vBExERUaHgcvBERERkF9hNQ1QKGQzA77+b9zt2tI8VWA0mA36/ag6643MduRw8UQnC32aiUkirBbp1M+/b03Lw3daYg+Zy8EQlC7tpiIiISFJMRoiIiEhSTEaIiIhIUkxGiIiISFJMRoiIiEhSTEaIiIhIUpwbR1QKqVTA3LmP9u2BSq7C3M5zLftEVHJwOXgiIiIqFFwOnoiIiOwCu2mISiGjETh40LzfqhUgl0sbjy2MJiMOxpiDblW+FeQyOwiaiGySr5aR+fPno2LFitBoNGjQoAEOZn2q5UKr1WLy5MkICgqCWq1G5cqVsWTJknwFTETPLjMTaNvWvGVmSh2NbTINmWi7vC3aLm+LTIOdBE1ENslzy0hERATGjx+P+fPno0WLFvjxxx/RuXNnXLhwAeXLl8/xmL59++Lu3bsIDw/Hc889h/j4eBgMhmcOnoiIiOxfngewNmnSBPXr18eCBQssZSEhIejVqxdmzpyZrf7OnTvRv39/XL9+He7u7jZdQ6vVQqvVWh4nJycjMDCQA1iJCkhaGuDsbN5PTQWcnKSNxxZpujQ4zzQHnTopFU4qOwiaqJQrlAGsOp0OJ0+eRGhoqFV5aGgojhw5kuMxv/76Kxo2bIhZs2YhICAAVatWxYQJE5CRkZHrdWbOnAk3NzfLFhgYmJcwiYiIyI7kqZsmMTERRqMRPj4+VuU+Pj6Ii4vL8Zjr16/j0KFD0Gg02LRpExITEzFmzBjcv38/13EjkyZNQlhYmOVxVssIERERlTz5mk0jCILVY1EUs5VlMZlMEAQBq1atgpubGwBg9uzZ6NOnD+bNmwcHB4dsx6jVaqjV6vyERkRERHYmT900np6ekMvl2VpB4uPjs7WWZPHz80NAQIAlEQHMY0xEUcStW7fyETIRERGVJHlqGVGpVGjQoAF2796NF1980VK+e/du9OzZM8djWrRogfXr1yM1NRXO/46Yu3z5MmQyGcqVK/cMoRNRfimVwKxZj/btgVKuxKz2syz7RFRy5Hk2TUREBAYPHoyFCxeiWbNm+Omnn7Bo0SKcP38eQUFBmDRpEm7fvo0VK1YAAFJTUxESEoKmTZvik08+QWJiIl599VW0bt0aixYtsumaXA6eiIjI/tj6/Z3nMSP9+vXDvXv3MH36dMTGxqJmzZrYsWMHgoKCAACxsbGIiYmx1Hd2dsbu3bvx9ttvo2HDhvDw8EDfvn3x2Wef5eNlERERUUnDG+URlUJGI3DqlHm/fn37WQ7+VKw56Pp+9bkcPJEdKLSWESKyf5mZQOPG5n17WfQs05CJxovNQXPRM6KShXftJSIiIkkxGSEiIiJJMRkhIiIiSTEZISIiIkkxGSEiIiJJMRkhIiIiSXFqL1EppFQCU6c+2rcHSrkSU1tPtewTUcnBRc+IiIioUNj6/c1uGiIiIpIUu2mISiGTCbh40bwfEgLI7ODPEpNowsUEc9AhXiGQCXYQNBHZhMkIUSmUkQHUrGnet5fl4DP0Gai5wBw0l4MnKln4pwURERFJiskIERERSYrJCBEREUmKyQgRERFJiskIERERSYrJCBEREUmKU3uJSiGlEpgw4dG+PVDKlZjQbIJln4hKDi4HT0RERIWCy8ETERGRXWA3DVEJJYrAtWvAvv0mREWL0OkBX28BTRsLaNBAQFycuV758vazHHxMUgwAoLxbeS4HT1SCMBkhKmFEEYhYZ8KML0Sci5QjpwZQ1zImJD80l9vTcvAVv6sIgMvBE5U0TEaISpDbt4GBQ4w4sFcOAFAoRVSto0NAJQPkCuBenByXTiuR/EBuOebDySZ8+YUMGo1UURNRacdkhKiEOHlSROduIhLi5FCqRPR8NRVdXkmHm7vJqp7RCBzbo8bXY90BAN9/J8POXUZsiJChVi1BitCJqJRjpytRCXDipIjWbYGEOBnKPafH7C0JGDA2NVsiAgByOVCvpc7y2NXdiMsX5WjSDPh1a/b6RESFjckIkZ27fFlEh1ARaSkCqjfUYsaae/CvaLT5+C/XJ6JWUy0y0gS82EvAj4uYkBBR0WIyQmTH0tOBHi+a8PC+DJVr6jBp4QM4ueRt6SDXsiI+WnQf7fqkw2QS8MYoAT8tZkJCREWHyQiRHXtttBGXLshRxtOISfMfwNE5f2sYKpTAG58mofOgNIiigNGvC1i7jgkJERUNDmAlslNbfjVh9c9yyGQi3vnmIcp62548yBUiOg1Ms+wDgCAAIz9KhtEI7FrrhKFDgKDyIpo1LR6DWhUyBcY0HGPZJ6KSg8vBE9mhlBSgSrAJd+/I0GNEKoa+n1Jg5zYagS/HlMXJ/Rq4e5oQeUqGwMACOz0RlSJcDp6oBPtgshF378jgE2hA/7cLLhEBzLNt3vnmISoE63E/UYYXXzZCry/QSxARWWEyQmRnrl0TsWih+Vf3tSlJUDvk/RyiCCTdlyHpvgw5tY06OIt474cHcHQ24eRfcrz/oe2zcwqLKIpISEtAQloC7KBBl4jygMkIkZ2ZMNEEg15AnRZa1Gule/oBOdBmCBjR3AcjmvtAm5HzmBDfQCPGfJYEAJjztRy/75I2AUjXp8P7a294f+2NdH26pLEQUcFiMkJkR06cELF5gxyCIGLwhORCv16zTpnoOMA80HX4SBEpBdsjREQEgMkIkV35aJp5xkyr7hmoGGIokmsOnpAC73IGxN6SYWyY9N01RFTyMBkhshPnz4v4fbu5VeSl0alFdl0HJ9HSXbNssRx79nK8BhEVLCYjRHbikxnmVpHG7TNRrlLRtlDUaqpDaH9zd83ro0Xo8jdUhYgoR/lKRubPn4+KFStCo9GgQYMGOHjwoE3HHT58GAqFAnXr1s3PZYlKrehoYOM6869r79fTJInhlbAUuLobcf2KDN/MYXcNERWcPCcjERERGD9+PCZPnozTp0+jVatW6Ny5M2JiYp54XFJSEoYMGYJ27drlO1ii0urbH4wwGgTUaqrFc7WkWfTDyVXE4HfNI1g/my5DbKwkYRBRCZTnZGT27NkYOXIkXn31VYSEhGDOnDkIDAzEggULnnjcqFGjMHDgQDRr1izfwRKVRpmZwPKl5um3XQYXTKuIXCGiTa90tOmVblkO3hZtXsxAlTo6pKcJGPdu0baOKGQKDK0zFEPrDOVy8EQlTJ6SEZ1Oh5MnTyI0NNSqPDQ0FEeOHMn1uKVLl+LatWuYOnWqTdfRarVITk622ohKq7XrzHfl9fQzokFrbYGcU6kC3v4iCW9/kQSlyvbjZDLg1Y/Mv4/r18hx+nTRDWZVK9RY1msZlvVaBrVCXWTXJaLCl6dkJDExEUajET4+PlblPj4+iIuLy/GYK1euYOLEiVi1ahUUCtv+mpk5cybc3NwsWyBvjEGl2PdzzV/4HfqlQ14MGgSeq6VHy64ZAICw93lnXyJ6dvkawCoI1is2iqKYrQwAjEYjBg4ciE8++QRVq1a1+fyTJk1CUlKSZbt582Z+wiSye6dOiTh9XA6FUkS7lwpu1VFRBDLTBWSmCzkuB/80A8alQK4Qse9/RTfVVxRFpOnSkKZL43LwRCVMnv7O8vT0hFwuz9YKEh8fn621BABSUlJw4sQJnD59Gm+99RYAwGQyQRRFKBQK7Nq1Cy+88EK249RqNdRqNsMSzfvRBECOJh0yUdar4FohtBkCBtX3BQCsOhUHjWPevtx9yxvRoW86dq52wrvvmXD6hBw5/D1SoNL16XCe6QwASJ2UCieVU+FekIiKTJ5aRlQqFRo0aIDdu3dble/evRvNmzfPVt/V1RXnzp1DZGSkZRs9ejSqVauGyMhINGnS5NmiJyrBtFpgwzrzN/wLvYvfvVheHpMKjaMJZ07JsXEjWyqIKP/y3AMdFhaGwYMHo2HDhmjWrBl++uknxMTEYPTo0QDMXSy3b9/GihUrIJPJULNmTavjvb29odFospUTkbVft4pIfiiDu48RtZoVv1XGynia0HVIGn5Z6IIp003o3bvwW0eIqGTKczLSr18/3Lt3D9OnT0dsbCxq1qyJHTt2ICgoCAAQGxv71DVHiOjpflymBcqdRkive0jVB8FN7il1SNl0G5qG7SuccOGsHL9uFdGzB7MRIso7QbSDkWDJyclwc3NDUlISXF1dpQ6HqFCJooivD/yI97dPAZwSAAAyQYZmFTphRJ2ZKKPxeuZrZKY/25iRx/38tQs2L3ZG7fpGRBbi2JE0XRrHjBDZGVu/v3lvGqJiRBRFjP/feLy/7w3AKQEyrQe8ynjBJJpwOGoHxu9sjWv3z0gdppUew9Og0og4e0qO33YW+79tiKgYYjJCVIx8d/w7fH/ke/ODvZ+ih2sEJg+ZjHf7vws/Dz+kZD7ElD9ewrUHZ6UN9DFuHiaE9jOvDDtlmilfU4WJqHRjMkJUTJyPP4/3d71vfrD7CwiHPkSD3tcAAIHegRjXZxwq+VdCpj4dMw4OxL30O/m+lkwuolnHDDTrmAGZ/Nmzh54j0qBUiTh5TI5DhwonG5HL5OhTvQ/6VO8DuUxeKNcgImlwzAhRMSCKIlqsaIGjN47CR2iMu1P/RKVmdzB2+warehnaDHy3/jvE3Y9DFe9a+LzNdsiLyX1aFnzshv+td0THrkbs3MZkgYg4ZoTIrvx6+VccvXEUcpkcmkPfABBQu+u1bPUc1A54tfur0Kg0uBJ/DhEXZxV9sLnoPszcVbNrhwyXLhX7v3GIqBhhMkIkMVEUMXn/ZABAs2ovIGaPeQHBWt2u5ljf080TL7d9GQCw8e95uHTvRNEE+hTlKhvQoE0mRFHAF1/znjVEZDsmI0QS23tjL87HnodSroTX3VchmmQIqBUPj/IpuR7ToFoDNKjWAKIoYv6J8TCY9Hm6Zma6gJeC/fBSsB8y0wtuLm7PEebWkdU/y5CQUGCnBWCe2it8IkD4RECaLq1gT05EkmIyQiSxTw9/CgBoXL0xrvzWAABQq8v1px734vMvwknjhFsPrmPL5R8KNUZbVW+kQ+WaOui0Ar6ba5Q6HCKyE0xGiCQU/TAaB64dAAA0D26PS3+YVzKu3S37eJH/cnZwRs9WPQEA6899h7iUG4UWp60E4VHryPx5AjIyJA6IiOwCkxEiCS04vQAiRFQpVwWJxxtBn6mAR4WH8KueaNPxjYIboWpgVeiNeiw+80EhR2ubpqGZ8PI34ME9GVau5tgRIno6JiNEEjGJJiyPXA4AaFK9Cc7tqATA3EVj65LqgiDgpdYvQSaT4fStgzgdu6ewwrWZXAF0Gmi+y/Cc70UugkZET8VkhEgi/7v+P8Qlx0Gj0qBmUF2c/70iANu6aB7n4+6DVrVbAQDCIyfneTBrYWj3UjpUahEXzspx5AizESJ6MiYjRBJZfHYxAKB+tfqI/rMSMpI0cPZKR4VGsXk+V8cmHeHs4IzYpBhsv/pjQYeaZy5lRbTsZh4w8tUcdtUQ0ZMxGSGSgN6ox87LOwEA9arUw9ntlQEAtTpfy9fy7I5qR3Rt1hUAsO7cHCRlPnnMiUwuon7rTNRvnVkgy8HnpPMg80DWbZtliM17fpWNXCZHlypd0KVKFy4HT1TCMBkhksCu67uQkpkCF0cXVPStjL9/+3e8SNenT+nNTZPqTVDOqxwy9en4+e9PnlhXpQYm//gAk398AJU635d8okrVDQiur4PRIOD7ec/eOqJRaLB94HZsH7gdGoWmACIkouKCyQiRBH4+/zMAoHbl2rgV6YekWGeonbWo+vzNfJ9TJpOhd+veAIB9Vzfi6v0zBRLrs8hqHVm8CNDpJA6GiIotJiNERUxv1GPHpR0AgDrP1cG57c8BAKp3uAGF+tkWCqvkX8m8MitE/HR6AkyitOM1mnTIRFkvIxLjZVi3nmNHiChnTEaIitieqD1IyUyBs4MzKgdUtprSWxB6tOgBtVKNawnnse9GRI51MtMFDKzng4H1fAp0Ofj/UqqA0H7mab6zv3u2sSlpujQ4zXCC0wwnLgdPVMIwGSEqYmv/WQsAqFWpFhKueCL+ijvkKgOqd7hRIOd3c3ZDx8YdAQA/n/kUabrkHOtpM2TQZhT+R0CHfulQKEWcPi7HqVPPlpCk69ORrk8voMiIqLhgMkJUhERRxO9XfgcA1KhYw9JFU/X5W9C4FtygiufrPg/vst5IznyINRdmFth586OslwlNOmQCAGZ/z64aIsqOyQhREbqYeBFxyXFQyBWoEljFMqW3dterBXodhVyB3s+bB7P+fulnxCT9U6Dnz6tOA83dKhsiZHjwQNJQiKgYYjJCVIQ2XNoAAHgu4Dmk3/XAzdM+EAQRNTtHFfi1goOCUbtybZhEExadfh+ihOuyhzTQo3xVPbSZAhaHs3WEiKwxGSEqQr9e/hUAUL1idcvaIhUax8LFu3DGQfRs1RNKuRIX4k7gyM0thXINWwgC0Pnf+9XMWwCYmI8Q0WOYjBAVkYeZD3H61mkAQPUK1XH23/EiBd1F8zgPVw+0a9gOALA0cgrS9SmFdq2nadU9A47OJkRfl2HXLt6vhogeYTJCVER+u/YbTKIJ3mW94WAKwLXDAQCebdVVW7zQ4AV4unniQXoilp+dCgAQZCJqNNKiRiMtBFnRJAYOTiLa9DLfr+bbH/LeNCITZGgd1Bqtg1pDJvCji6gk4W80URHJGi9SvUJ1nP+9IkxGGfyqJ8KzYlKhXlelUKHvC30BAP+7shbn449CrQGm/3wf03++D3URrqze8d+BrLt/k+HGjbwd66B0wL5h+7Bv2D44KB0KPjgikgyTEaIiYBJN2HttLwBzMnLOMovmWpFcv2pgVTSt3hQAMP/EeOiMmUVy3f8qV8mIWs20EEUB8xZw4AgRmTEZISoCx28fx8P0h1Ar1ShXpir+2RsEAKjVrfDGi/xXj5Y94Oroirjkm1h3YVaRXfe/Ov/bOhIeDmRKkxMRUTHDZISoCPxy+RcAQHD5YFw9UAn6DCXKBiYjoGZikcXgqHFEn7Z9AACbI1diSFN3DG/mXajLweekYVstPHyNeHBPhnXrbB+vkqZLg9dXXvD6yovLwROVMExGiIrA9ivbAZin9D7eRSMUbR6A2pVro26VuhBFE9IeqpH8QF60AQCQKx7dr+b7uXkbPJuYnojE9KJL4IioaDAZISpkcalxuBB3AQBQNaAGzu80ry9Suwi7aB73ctuX4erkJsm1s7R/2Xy/mpPHZTh1StJQiKgYYDJCVMi2XtkKAAj0DkTCmWCkP9TAySMdFZvEShKPk8YJ/V7oZ3l8/PbvRR5DGU8TmoaaB4x8l49pvkRUsjAZISpkmy5vAmA9i6ZmpyjI5NIt/PVcuecs+4tOT8S99DtFHkPnQeZxHxFrBdy/X+SXJ6JihMkIUSHSG/U4cP0AACAk6LHxIt2KZkqvLdIykzHr6DDojQV312BbVKunR1A18/1qli7liqxEpRmTEaJCdDjmMNJ0aXB2cIZwpyEe3nGBykmHqq1jpA7NQqN2wNWEv7HkzIdFel1BeHQ33x/mibxfDVEpxmSEqBBtvLIRgPkOun//Zu4aCWkXDaXGKGVYEGQiAuvdRWC9uxjQ3jx+ZNfl1dh3I6JI43i+eyYcXUyIjpJh164n15UJMjT0b4iG/g25HDxRCcPfaKJCtOPKDgD/3hhvW/HpolE5GPHunrV4d89a1AmpitDGoQCAhcffx6V7J4osDo2jiLYvmu9X87SBrA5KBxx/7TiOv3acy8ETlTBMRogKSfTDaFxLvAZBEOCub4y7lz0gVxpRPTRK6tCy6dS4E6pXqA69UY+ZB4fgbmrRdSN17G/uqvn9NyHP96shopIhX8nI/PnzUbFiRWg0GjRo0AAHDx7Mte7GjRvRoUMHeHl5wdXVFc2aNcPvvxf9VEKiopY1pbeCbwVc2VUXAFCl1U04uBbtQFFbyGQyDO00FAGeAUjJfIjPDvZDmq5wb+CXJaCSEbWbm+9XM38BB7ISlUZ5TkYiIiIwfvx4TJ48GadPn0arVq3QuXNnxMTk/JfUgQMH0KFDB+zYsQMnT55E27Zt0b17d5w+ffqZgycqzh6f0nt2q3m8SJ3u0ix09l+6dAU+qTMcn9QZDl26AgCgVqnxWo/X4ObkhjtJ0Zh5+BVoDRlFEk/WQNbFi3O/X026Ph0V5lRAhTkVkK5PL5K4iKho5DkZmT17NkaOHIlXX30VISEhmDNnDgIDA7FgwYIc68+ZMwfvv/8+GjVqhCpVqmDGjBmoUqUKtm7d+szBExVXmYZMHLlxBAAQ4NAINyN9IMhMqNnlusSRmYki8OCmKx7cdIX4WGNEGecyeL3H61Ar1bh492SRTflt2EYLTz8jHtwXEBGRc+uIKIqITopGdFI0RJEtKEQlSZ6SEZ1Oh5MnTyI0NNSqPDQ0FEeOHLHpHCaTCSkpKXB3d8+1jlarRXJystVGZE/239iPTEMm3JzccHd/GwBApWZ34OJVNC0NzyLAKwCv93gdSoUSkbcPYvZfr8FoMhTqNeUKoEM+71dDRPYvT8lIYmIijEYjfHx8rMp9fHwQFxdn0zm++eYbpKWloW/fvrnWmTlzJtzc3CxbYGBgXsIkktyGyxsAACEVQnBuu7mLRqp70eRH5YDKGNF1BOQyOY7F7Mb3x8cUekLSvo/5fjWnTshwougm9BBRMZCvAazCf241KopitrKcrFmzBtOmTUNERAS8vb1zrTdp0iQkJSVZtps3b+YnTCJJiKKInVd2AgAqlKmHqL/8AZjv0mtPQoJCMKzzMMgEGQ5FbcNXR4dDb9QW2vXKeJrQrKN5wMj3c7kCGlFpkqdkxNPTE3K5PFsrSHx8fLbWkv+KiIjAyJEjsW7dOrRv3/6JddVqNVxdXa02IntxMfEibj28BblMjswzXSCKAsrXj0PZcqlSh5ZntSrXwvAuwyGXyXH85h58fmgAMg2FN3g0ayDruggB9+4V2mWIqJjJUzKiUqnQoEED7N6926p89+7daN68ea7HrVmzBsOGDcPq1avRtWvX/EVKZCciLppXMa1WvhoubqsFAKhdTGbR5EetyrUwqucoqJQqnIv9E1P3v4ikzMLJFKrV06NCsPl+NeFLOHaEqLTIczdNWFgYFi9ejCVLluDixYt45513EBMTg9GjRwMwd7EMGTLEUn/NmjUYMmQIvvnmGzRt2hRxcXGIi4tDUlLRrGFAVNQ2/mNeAr6qbz1cOVQOAFCnGKy6+jhBAHyr3YNvtXuwoYcVVQOr4o1eb8BB7YCrCefwwf9CEZN0qVDiymodmTff+n41giCguld1VPeqblO3MBHZD0HMxxy5+fPnY9asWYiNjUXNmjXx7bff4vnnnwcADBs2DDdu3MC+ffsAAG3atMH+/fuznWPo0KFYtmyZTddLTk6Gm5sbkpKS2GVDxdqt5FsI/DYQAgT0LLsGm8f1g1/1RHxwaJXUoRWIu/fv4qdff8K95HvQKB0xoflPqOf3QoFeIzNdwGutvZGeIsP27SK6dGHiQWSvbP3+zlcyUtSYjJC9+P7Y9xj32zhU9KsI1Zo/cGlfELp8eAShE45LHVqBSc1IxZLtS3D9znUIgoD+td9F7+DxBXrzuqUzXbBtuTPadzJi92/yAjsvERUtW7+/eW8aogKUNV6kqnd9XD5gnpJer/dlKUMqcM4OzhjTawwahzSGKIpYc+ZrfH6oP1K09wvsGh37mwfJ7vldhuvFY504IipETEaICsjDzIf4K+YvAID4T0+IJhnK14+DV6XiNz5Kl67AF81ewRfNXrEsB58XCoUCA9oPQP92/aGUKxF5+xDCdrXFhYQ/CyQ+/4pG1Glhvl/Nl18bAZiXg68xvwZqzK/B5eCJShgmI0QFZMulLTCajPAp64Mrm9oBAOoX01YRUQTiLnkg7pIH8ttRKwgCmtZoivF9x8PTzRP30xIwZc9LWHbmY+iMudxgJg96jjRPhV6+VIaEBPP6LRcSLuBCwgUuB09UwjAZISogS88tBQBU82mCqGP+EAQR9V4snslIQQrwCsCE/hPQuHpjiBCx9WI43t39Aq7cj3ym89ZupkPlGjpoMwV88y0XQSMqyZiMEBWAe+n3cCjqEABAdtF8q4PKLW7BzS9NyrCKjEatwcD2A/Fqt1fh4uiCOw9vYNLurlh8eiLS9Sn5OqcgAC++Zn7/5s8XkGJ/a8YRkY2YjBAVgPUX18NoMiLAMwCXfzHfSLLBSwW/DkdxV7NSTUwcNBH1q9aHKIr47dIKvPVbMxyM3pivrpXGHTLhX8GAlCQBPy1i6whRScVkhKgALDu3DABQybUl7vztBbnKgNo97HfV1Wfh5OCEIZ2G4I1eb8CrjBeS0u9jztG38PH+7rhy73SeziWXAz1fNTeJ/PBDYURLRMUBkxGiZxSbEotj0ccAANqjgwEAtTpfh1PZwrupnD2oVr4aPhj4Abo07QKlXImLcacwcXdXfHV0GOJSbth8ntY9MuDuY0RiPD+uiEoq/nYTPaMV51ZAhIggn4r4e615NdImgy5IHNWTCQJQNjAZZQOTbVoOPr8UCgVCG4fiwyEfolFwIwgQ8Gf0Lrz9WyssOPUOEtJuPfUcShXQc0QqAAHylCCUdw3icvBEJQxXYCV6BqIoosr8KriWeA1N3cfgz7Hz4OaXgqlnl0ImL/a/WkXudsJtbD28Ff/E/AMAkMnkaF2xF14KDoOfS8Vcj9NmAm928MaDBDm++8GEsW/x7ygie8AVWImKwPE7x3Et8RqUciXubx8FAGjU/x8mIrkI8ArA6F6j8WbvN1GlXBWYTEb8ce0XvL2jJb75cySu3j+T43FqDdDnDfPYkc8+AzIyijJqIipsTEaInsHck3MBACEBDXBld00AQJOBxbuLpjioUq4K3uz9Jsa9PA7VK1SHKIo4cuM3fLCrMybu7YTDMZthNBmsjmnXJx2e/gYk3JXhh7mcWUNUkrCbhiif0vXp8PraC+m6dDTMmIcTX45BpWa3MXb7BqlDeypdhhw/dHsZAPD2tvVQORgljedm/E3sO70PkVciYTSZYynr5InQykPQrsIgeDj6QWvIwLgNfZBwW44yW/bh5jUnODtLGjYRPYWt3995vykFEQEAVv+9Gum6dHi4euCf+eZZNK1ezbmbobgRTQJunvax7Est0DsQgzsORo+WPXD43GEcOXcED9ISEXF2Ntad+xa1/ZujdWA/JOA0EAA8fADM+NKEGZ+ycZeoJOBvMlE+iKKIr//8GgBQHj2QGu8CV99U1O52TeLI7Jubkxu6NO2CqcOnYmCHgajsXxmiKOLM7cP4/s+xjyoG/IVvvgZuPX0yDhHZAbaMEOXDgegDuBR/CUqFEvd+eRcA0HzYOciVHMtQEJQKJRqHNEbjkMZIeJiAvy78hb8u/IWU9H+Xlh/WDrqH5dF2Vm+smTgIDfwacLovkR1jywhRPnzx5xcAgBCvVog5XANypRHNh/4tcVQlk1cZL3Rr3g2TBk+ylClkaqBMDK56zEGjRY1Q/vvyeOv3t7D/xn4Y/jPwlYiKPyYjRHkU9SAKuy7vAgDo/ngHAFC35xW4+qRLGVaJJ5fJLfvTRn6MyrfmAH/3hWDU4NbDW5j35zy0Wd4GHl95oPeG3ljz9xokZSZJFi8R2Y7JCFEeTT04FSbRhEpeNXBpXRcAwAtjT0ocVemiVCgxeLwT1Dt/hvhlApo6fIyGwQ3hqHFEcmYyNp3fhIG/DITHVx5otKQRPtr3Ef689SdbTYiKKY4ZIcqDmKQYrDmzBgDgEPkeRJMM1TtEIaBmosSR5Z2Th/215DhpnCz7ZfzT0OXDo9j0YWtEfj4Zk/4MxID2KbgRewPno87j76i/Ef8gHidunsCJmyfw+f7P4aRyQrOgZuhauSs6Ve6Eah7VONaEqBjgOiNEeTB863AsO7UMFb2DETP+HIw6BcbuWI9KTe9IHVqpZDIK+Da0H26e9kHdnpcxbOlvVs8nPkzEpZuXcPnmZVy5eQXpWusErIxjGTQu1xgvBL2AtkFtUc+3HpRyZVG+BKISzdbvbyYjRDa6/uA6qs2rBoPRgJp3l+DvBcNRqeltjN1R/Bc5K8lunfPE7BcGwGSUYcSKbblOrzaZTLiVcAuXb17G5ZuXcf3OdRiM1t02aoUadfzr4Pnyz6N1udZoXK4xvJ28i+JlEJVITEaICli3iG7Y/s92VPSsgejxZ2AyyPH2tvWo3JytIlLbOr059sxpBCf3DLx/cBXc/NKeeozBYMDNhJuIuhOFa3euISo2CumZ2buufF19UdevLpoHNEeLci3QwK8B3DRuhfEyiEocJiNEBWj/jf1os7wNBEFAtX+24J813RHS/gZGrdsidWj5osuQ48e+vQAAo9Ztlnw5eFvoDDr8uOVHAMConqOgUqgszxl0MswJ7YdbZ71RrW00Rq3fDFkeh+ebRBPi78fjeux1XL9zHTF3Y5DwIAEisn9EBrkHobZvbTTwbYCGPg1R17cu/F38Of6E6D+4HDxRATGYDBi9czQAoJbPCzg7tTsEQUS3KYcljiz/RJOAa4fLWfbtgSiKuHb7mmX/cQqVCa/8uBPftB2IS38EYf+Cemj75uk8nV8myODr4QtfD180r9kcAJCpzcTNhJu4efcmYu7GICY+BveT7yP6fjSi70dj64WtluNdNa4I9g5GbZ/aaOzbGPV866G6V3U4Kh2f8ZUTlXxMRoieYsbhGfjn7j9wUDsicekcAECDvv/Y5Qyaksy32gP0/OwANkx4AVuntUS5OvGo0vL2M51To9agSrkqqFKuiqUsNT0VN+Nv4nbibdxJvIM7iXcQ/yAeyZnJOBZzDMdijmExFj+Ky9UXz3k8hxpeNVDbqzZqeNZAiFcIvBy92JJC9C8mI0RP8E/CP/hs/2cAgBp4Cyf+qgmNqxY9ph2SODLKSYvh5xD1lz9Org/GsuFdMOGPtShbLqVAr+Hs6IyQCiEIqRBiKdMb9Lh7/y7u3LuD2wm3EXsvFrcTbiMtMw1xyXGIS47DoSjrnxkXjQsqeVRCsGcwqntUR4h7CJ5zfw6V3SvDVc3uaCpdmIwQ5UJr0KLPxj7QG/Wo7FMDf0+cBgDoOvkIV1stpgQB6PftHty95I5bZ72xeFA3vL1tAzQu+kK9rlKhRDnvcijnXQ54lKMgNSMV8Q/icff+Xdx9cBd3799F/IN43E++j5TMFJy5fQZnbme/07ObgxvKly2PymUro6p7VYS4h6CKexVUdq8MHycftqhQicNkhCgXb/7+Js7HnYeTxgni5kXITHJAYL27aDHinNSh0ROoHA0Y8fM2zG7XH7fPeSN8cHeMitgChbroB+k6OzjD2cEZlfwrWZXrDDokPEiwJCiJSYnm7WEi0jLTkJSRhHMZ53DuTvafNY1CA19XXwS4BaC8W3lULlMZld0qo0KZCghyC0KAawBUclW244iKMyYjRDlYHLkY4SfCAQC1DR/j6O/NoHTQ45UFv0MmL/YT0Eo998AUvL72V8zr1RtXDgTi59c7Ykj4b5Arisf/nUqhQoBXAAK8ArI9l6nNfJScJCXiXtI9y/7D1IfINGTixv0buHH/Bg4j+yBqAQI8nT3h7+aPcq7lUMGtAiq4VkCQqzlR8Xfxh5+zH9QKdVG8VCKbMBkh+o/frv6G0VvNs2ca+ffGsTcnAAB6fHIIPlUfSBlagVI5Fm7XRWF4fDrv05Svfxcjf96GH/v1wJmtVbDiVWDwTzuhUJkKMcJnp1FrHnX5/IfBYMCD1Ad4kJL7ZjAakJCagITUhBy7gLK4ObjBy9kLfi5+8HfxR6BLIIJcgxDoEgh/F3/4u/jDy8mLrSxUJLjOCNFjDkQfQKdVnZChz0CtwCaImrQbqfEuqNP9CoYt2wF21dufczsqYdmIzjDqFAhudwMjlm+HyrFk3jBPFEWkZqRaEpP7yffxIPUBklOTkZSWhOQ087//XXn2SVw0LnB3dIenkye8nbzh4+QDf2d/+DuZW1h8nHzg7eQNbydvuKpdOZ6FrHDRM6I82nVtF3qs7QGtQYtKvsFI+/5/uHshAP41EjDut/VQO9tfSwKZXfqjPMIHd4MuXYlyteMx4udtcA8s2Fk29kIURaRr05GUmmSVoGQlLElpSUhKTUJKegpMYt5akZRyJco6loWHkwc8HDzg4egBTwdPeDl6wcfRB96O3vB09LQ85+HgAWeVMxOYEozJCFEeLDi5AGN3jIXBZEAV/+pIW7gNd05VhJtfKsb+tg4e5UvnF1dJEvWXH8IHd0NqoiOcPNIxdPFOVG19U+qwii2TaEJGZgZS0lOQkpGC1PRUpGakWj1OSU+xlGn12nxdRyFTwNXBFW4aN5R1KGtJUjwdPeHl4GVOXDQeKKspizKaMnDTuKGMpgzKaMpAo9AU8KumgsZkhMgGqbpUjPltDH6O/BkAUD2gIe59uxl3LwTA2TMdb23dAN9qJWecSBZ9phxLh3YFAAxfvh1KTfFfDl5v0GPpjqUAgOFdhkOpyPvddR/cckH4K91w66z55nfPjzqNblMO28Vy+MWdTq9DasajhCUtMw1pGWlIz0w372c+tv9vud74bK2NSrkSLmoXuGhc4KpxhZv6UaLi7uCOsuqylmSmjKYMXFQucFG7wFXtatlXy9VsmSlEXA6e6Cl+v/Y7hm8djtikWAgQ0CSgHy5M+QnJsS5w9U3F6PVbSmQiAgAmo4ALuyta9u2BSTThwo0Llv38KFsuBWN3rMemyc/j6PJaOPBjPVzYVRE9Pz2Imp2vc0zQM1ApVXBXusPd1d3mY3R6nXWikmGdtGRoM6w3nfnfTG0mRIjQG/W4n34f99Pv5ztuuUwOR5UjnFROcFI5wVntDGeVM1xU5qTFVe0KN5Ub3NTmray6rDmZUbvAReViPk5pPtZR6QgHhQOTm3xgMkKlTmRsJN7Z8w72XdsHACjr7I5KCZ/gr1FjIJpk8A1OxKh1vxb4yp1UPKgcDej37V7U7noNa8e1R2JUGYS/0h1VWt1Ex/f/QuXmt5mUFBGVUgWVUoWyLmXzdJxJNEGr0+aarDz+OFObaXmcqcuEVq+FVqeFzqADABhNRqRkpiAls2B+3wUIUCvVcFA6QKPUwEHpAEelI5yUTnBQOpgTHqWz+V+VM5wV5uTHVWVurclKbJyU/yY3Sgc4KBygUWgs+yq5qsQlPExGqFQwmAzYdnkbvvrrKxy5cQQAIJPJUM25C+7On4+TVwMBAI0GXECfL/dxsGopENI+GpP+XIE93zXEH/Pq48rBQFw5GIigBrF4ftQZ1OpyrcTOurF3MkEGB7UDHNQO+T6HyWSyJCaZ+kxzoqLTQqvXWu1rdebHmfp/y/6tn/W8Tq+DTq+zdDmJEM3n02cW1MvNRoAAlUIFtUINlUIFjUJj+ddB4QC1Qm2VxGS12DgoHMxJ0b//Oiod4ahwhKPSERqFBmq5GmqF+qn/KmQFnzrk64zz58/HV199hdjYWNSoUQNz5sxBq1atcq2/f/9+hIWF4fz58/D398f777+P0aNH5ztoIluk6lJxMPogVl1YhW2XtiEpIwkAIAgCyilaI/2XWbh4qhEAwM0vFb0+O4B6L16RMmQqYhoXPbp+dBTNhv6NPd81xLHV1RF90g8/v+4HtbMWdXpcRc1OUajaOqbQl5SnoiWTPXtC8ziTyQS9QQ+dQWeVpOgM1v9q9VpzvX/3s8r1Bn2OxxmMBugNeugNeogwD/EUIUJr0EJryN+g4WclE2RQypVQypVQyVVQKsz/quQqqBTmf9Vyc6Ik18ptOmeek5GIiAiMHz8e8+fPR4sWLfDjjz+ic+fOuHDhAsqXL5+tflRUFLp06YLXXnsNK1euxOHDhzFmzBh4eXnhpZdeyuvliXKUrk/HxYSLOBt/FsfijuFQzCFciLtgNbZABVe4xvbFg00f4Gb8cwAAjasWrV47g/bjTrA1pBRzD0zBy1//gU7v/4VDS2rh+NoQ3I9xw7HVNXBsdQ3IFEZUaBSHCg1jUb7eXZSrGw/3wBSuxksWMpkMapUaapUaLnAp8POLogijyWhJTPRG878Gg8Gy//hmMBqgM+gs+48fYznuv2VGQ7bNaDTCYDRYEiHg324yW5MhGxuI8jybpkmTJqhfvz4WLFhgKQsJCUGvXr0wc+bMbPU/+OAD/Prrr7h48aKlbPTo0Thz5gyOHj1q0zU5m6Z0MIkm6Iw6aA1a879GLVJ1qXiY+RBJmUl4mPkQ9zLvITEjEbdSbuFm8k3cSr6N2KRY3E+/Z/XLkkWRXg7itVAYT/cHbrQBTOYZGL7V7qHxwAtoPvRvaFx1RfxKpadNU+CDwDcBAF/enAe1U/HvjtDqtfhgwQcAgC/f+BJqZeEtZ24yAVF/+iNySxVc3FMBidfLZKujUBvgEZQEr8oPUbZcCly80+HilQ4X73Q4uWdA46yHylkHjbMeaic95Cojx6KQXRJFESaTKcdk5WlbRnIGNnfZXLCzaXQ6HU6ePImJEydalYeGhuLIkSM5HnP06FGEhoZalXXs2BHh4eHQ6/VQKrNPz9NqtdBqH2VcSUnm5nXP8c9DUP3b5CP894sn58ditueF/zzO7fjsZdm+7HKMQfjPY9uuYXkm65zifx7beM6cvpCzyfaBmMdrZIvJhnPk8DpEmR6Q6QG5DpBrAeEZp1emuwMJNYCEECC2AXCzOQzJ5tY6ucqAoCZXUKnZHVTvEAW/4PuWL4bM5Ge7rD3SpssBmF94ZkoGRGPxn9qqNWgtf2VlpmRCLOT7zATUvI6AmtfRdTKQeMMVN475IeaMN26f9UbsP+4waBW4e1mJu5e9AHg99XyC3AiF2giZXIRcYYRcaYJMLkKmNEKu+Hc/q6VFAIR/f2cEAYAgPkpkHnvO/LyYvT5RMWEypgLYjKe2e4h5cPv2bRGAePjwYavyzz//XKxatWqOx1SpUkX8/PPPrcoOHz4sAhDv3LmT4zFTp04VYf4248aNGzdu3LjZ+Xbz5s0n5hf5GsD63ylFoig+cZpRTvVzKs8yadIkhIWFWR4/fPgQQUFBiImJgZubW35CLhGSk5MRGBiImzdvluruKr4PZnwfzPg+PML3wozvg1lxeB9EUURKSgr8/f2fWC9PyYinpyfkcjni4uKsyuPj4+Hj45PjMb6+vjnWVygU8PDwyPEYtVoNtTp7f7Cbm1up/sHK4urqyvcBfB+y8H0w4/vwCN8LM74PZlK/D7Y0IsjyckKVSoUGDRpg9+7dVuW7d+9G8+bNczymWbNm2erv2rULDRs2zHG8CBEREZUueUpGACAsLAyLFy/GkiVLcPHiRbzzzjuIiYmxrBsyadIkDBkyxFJ/9OjRiI6ORlhYGC5evIglS5YgPDwcEyZMKLhXQURERHYrz2NG+vXrh3v37mH69OmIjY1FzZo1sWPHDgQFBQEAYmNjERMTY6lfsWJF7NixA++88w7mzZsHf39/fP/993laY0StVmPq1Kk5dt2UJnwfzPg+mPF9MOP78AjfCzO+D2b29D7YxV17iYiIqOTKczcNERERUUFiMkJERESSYjJCREREkmIyQkRERJJiMkJERESSKvbJyPz581GxYkVoNBo0aNAABw8elDqkIjdz5kw0atQILi4u8Pb2Rq9evXDp0iWpw5LUzJkzIQgCxo8fL3Uokrh9+zZeeeUVeHh4wNHREXXr1sXJkyelDqtIGQwGfPTRR6hYsSIcHBxQqVIlTJ8+HSaTSerQCtWBAwfQvXt3+Pv7QxAEbN682ep5URQxbdo0+Pv7w8HBAW3atMH58+elCbYQPel90Ov1+OCDD1CrVi04OTnB398fQ4YMwZ07d6QLuJA87efhcaNGjYIgCJgzZ06RxWerYp2MREREYPz48Zg8eTJOnz6NVq1aoXPnzlbrmJQG+/fvx5tvvok///wTu3fvhsFgQGhoKNLS0qQOTRLHjx/HTz/9hNq1a0sdiiQePHiAFi1aQKlU4rfffsOFCxfwzTffoEyZMlKHVqS+/PJLLFy4EHPnzsXFixcxa9YsfPXVV/jhhx+kDq1QpaWloU6dOpg7d26Oz8+aNQuzZ8/G3Llzcfz4cfj6+qJDhw5ISUkp4kgL15Peh/T0dJw6dQoff/wxTp06hY0bN+Ly5cvo0aOHBJEWrqf9PGTZvHkz/vrrr6feI0YyNt2uVyKNGzcWR48ebVUWHBwsTpw4UaKIiof4+HgRgLh//36pQylyKSkpYpUqVcTdu3eLrVu3FseNGyd1SEXugw8+EFu2bCl1GJLr2rWrOGLECKuy3r17i6+88opEERU9AOKmTZssj00mk+jr6yt+8cUXlrLMzEzRzc1NXLhwoQQRFo3/vg85OXbsmAhAjI6OLpqgJJDb+3Dr1i0xICBA/Pvvv8WgoCDx22+/LfLYnqbYtozodDqcPHkSoaGhVuWhoaE4cuSIRFEVD0lJSQAAd3d3iSMpem+++Sa6du2K9u3bSx2KZH799Vc0bNgQL7/8Mry9vVGvXj0sWrRI6rCKXMuWLbFnzx5cvnwZAHDmzBkcOnQIXbp0kTgy6URFRSEuLs7qc1OtVqN169b83ExKgiAIpa4F0WQyYfDgwXjvvfdQo0YNqcPJVZ6Xgy8qiYmJMBqN2e4G7OPjk+0uwKWJKIoICwtDy5YtUbNmTanDKVJr167FyZMnceLECalDkdT169exYMEChIWF4cMPP8SxY8cwduxYqNVqq/tClXQffPABkpKSEBwcDLlcDqPRiM8//xwDBgyQOjTJZH025vS5GR0dLUVIxUJmZiYmTpyIgQMHlrq7+H755ZdQKBQYO3as1KE8UbFNRrIIgmD1WBTFbGWlyVtvvYWzZ8/i0KFDUodSpG7evIlx48Zh165d0Gg0UocjKZPJhIYNG2LGjBkAgHr16uH8+fNYsGBBqUpGIiIisHLlSqxevRo1atRAZGQkxo8fD39/fwwdOlTq8CTFz81H9Ho9+vfvD5PJhPnz50sdTpE6efIkvvvuO5w6darY//8X224aT09PyOXybK0g8fHx2bL+0uLtt9/Gr7/+ij/++APlypWTOpwidfLkScTHx6NBgwZQKBRQKBTYv38/vv/+eygUChiNRqlDLDJ+fn6oXr26VVlISEipG9j93nvvYeLEiejfvz9q1aqFwYMH45133sHMmTOlDk0yvr6+AMDPzX/p9Xr07dsXUVFR2L17d6lrFTl48CDi4+NRvnx5y+dmdHQ03n33XVSoUEHq8KwU22REpVKhQYMG2L17t1X57t270bx5c4mikoYoinjrrbewceNG7N27FxUrVpQ6pCLXrl07nDt3DpGRkZatYcOGGDRoECIjIyGXy6UOsci0aNEi29Tuy5cvW+6cXVqkp6dDJrP+CJPL5SV+au+TVKxYEb6+vlafmzqdDvv37y91n5tZiciVK1fwv//9Dx4eHlKHVOQGDx6Ms2fPWn1u+vv747333sPvv/8udXhWinU3TVhYGAYPHoyGDRuiWbNm+OmnnxATE4PRo0dLHVqRevPNN7F69Wps2bIFLi4ulr963Nzc4ODgIHF0RcPFxSXbGBknJyd4eHiUurEz77zzDpo3b44ZM2agb9++OHbsGH766Sf89NNPUodWpLp3747PP/8c5cuXR40aNXD69GnMnj0bI0aMkDq0QpWamoqrV69aHkdFRSEyMhLu7u4oX748xo8fjxkzZqBKlSqoUqUKZsyYAUdHRwwcOFDCqAvek94Hf39/9OnTB6dOncK2bdtgNBotn5vu7u5QqVRShV3gnvbz8N8kTKlUwtfXF9WqVSvqUJ9M2sk8Tzdv3jwxKChIVKlUYv369UvldFYAOW5Lly6VOjRJldapvaIoilu3bhVr1qwpqtVqMTg4WPzpp5+kDqnIJScni+PGjRPLly8vajQasVKlSuLkyZNFrVYrdWiF6o8//sjx82Do0KGiKJqn906dOlX09fUV1Wq1+Pzzz4vnzp2TNuhC8KT3ISoqKtfPzT/++EPq0AvU034e/qu4Tu0VRFEUiyjvISIiIsqm2I4ZISIiotKByQgRERFJiskIERERSYrJCBEREUmKyQgRERFJiskIERERSYrJCBEREUmKyQgRERFJiskIERERSYrJCBEREUmKyQgRERFJ6v8TGhZFndWZzAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Rafael Leao: MV 6.48 ± 1.37; FV 7.84 + 4.05\n"
]
},
{
"data": {
"text/plain": [
"[array([6.48351824, 7.84102121]),\n",
" array([0.6832447, 2.0243561], dtype=float32),\n",
" [<tfp.distributions._TensorCoercible 'tensor_coercible' batch_shape=[1] event_shape=[] dtype=float32>,\n",
" <tfp.distributions._TensorCoercible 'tensor_coercible' batch_shape=[1] event_shape=[] dtype=float32>]]"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"predict_player('Rafael Leao', plot = 1, log = 1)"
]
},
{
"cell_type": "markdown",
"id": "30744d7a",
"metadata": {},
"source": [
"Tensorflow seems to have a custom definition for SinhArcsinh distribution. \n",
"\n",
"Here the code to generate the probability density function is reproduced."
]
},
{
"cell_type": "code",
"execution_count": 110,
"id": "3ec6c3dc",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x203bcc464f0>]"
]
},
"execution_count": 110,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"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
}