Files
fantabeto/.ipynb_checkpoints/6_neural_network_training_and_prediction-checkpoint.ipynb
T
2023-09-21 07:51:22 +02:00

8442 lines
629 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.020161</td>\n",
" <td>0.012097</td>\n",
" <td>0.012097</td>\n",
" <td>0.016129</td>\n",
" <td>0.008065</td>\n",
" <td>0.016129</td>\n",
" <td>0.391129</td>\n",
" <td>0.040323</td>\n",
" <td>0.020161</td>\n",
" <td>0.012097</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.007874</td>\n",
" <td>0.000000</td>\n",
" <td>0.007874</td>\n",
" <td>0.000000</td>\n",
" <td>0.019685</td>\n",
" <td>0.027559</td>\n",
" <td>0.350394</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</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.002786</td>\n",
" <td>0.002786</td>\n",
" <td>0.002786</td>\n",
" <td>0.011142</td>\n",
" <td>0.013928</td>\n",
" <td>0.022284</td>\n",
" <td>0.412256</td>\n",
" <td>0.019499</td>\n",
" <td>0.025070</td>\n",
" <td>0.002786</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.012384</td>\n",
" <td>0.003096</td>\n",
" <td>0.012384</td>\n",
" <td>0.006192</td>\n",
" <td>0.003096</td>\n",
" <td>0.027864</td>\n",
" <td>0.408669</td>\n",
" <td>0.015480</td>\n",
" <td>0.012384</td>\n",
" <td>0.003096</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>30064</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>30065</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>30066</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>30067</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>30068</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>30069 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",
"30064 38 Miguel Veloso Verona Milan 0 5.5 0 \n",
"30065 38 Tameze Verona Milan 0 5.5 0 \n",
"30066 38 Sulemana I. Verona Milan 0 6.0 0 \n",
"30067 38 Djuric Verona Milan 0 5.5 0 \n",
"30068 38 Ngonge Verona Milan 0 5.5 0 \n",
"\n",
" assists cards_malus fantavote ... miscontrols dispossessed \\\n",
"0 0 0.0 6.5 ... 0.020161 0.012097 \n",
"1 0 0.0 6.0 ... 0.007874 0.000000 \n",
"2 0 0.0 6.5 ... 0.002786 0.002786 \n",
"3 0 0.0 10.0 ... 0.000000 0.020833 \n",
"4 1 0.0 7.5 ... 0.012384 0.003096 \n",
"... ... ... ... ... ... ... \n",
"30064 0 0.0 5.5 ... 0.006019 0.006019 \n",
"30065 0 0.0 5.5 ... 0.012867 0.011217 \n",
"30066 0 0.5 5.5 ... 0.015361 0.013825 \n",
"30067 0 0.0 5.5 ... 0.019034 0.010981 \n",
"30068 0 0.0 5.5 ... 0.030872 0.016107 \n",
"\n",
" fouls fouled aerials_won aerials_lost carries \\\n",
"0 0.012097 0.016129 0.008065 0.016129 0.391129 \n",
"1 0.007874 0.000000 0.019685 0.027559 0.350394 \n",
"2 0.002786 0.011142 0.013928 0.022284 0.412256 \n",
"3 0.031250 0.000000 0.000000 0.010417 0.447917 \n",
"4 0.012384 0.006192 0.003096 0.027864 0.408669 \n",
"... ... ... ... ... ... \n",
"30064 0.017197 0.006879 0.012038 0.012038 0.265692 \n",
"30065 0.010558 0.010228 0.008908 0.010228 0.235236 \n",
"30066 0.016897 0.004608 0.015361 0.018433 0.201229 \n",
"30067 0.017570 0.021230 0.144217 0.041728 0.191801 \n",
"30068 0.017450 0.014765 0.022819 0.046980 0.242953 \n",
"\n",
" progressive_carries carries_into_final_third \\\n",
"0 0.040323 0.020161 \n",
"1 0.000000 0.000000 \n",
"2 0.019499 0.025070 \n",
"3 0.062500 0.041667 \n",
"4 0.015480 0.012384 \n",
"... ... ... \n",
"30064 0.014617 0.011178 \n",
"30065 0.010558 0.011217 \n",
"30066 0.006144 0.010753 \n",
"30067 0.001464 0.003660 \n",
"30068 0.024161 0.014765 \n",
"\n",
" carries_into_penalty_area \n",
"0 0.012097 \n",
"1 0.000000 \n",
"2 0.002786 \n",
"3 0.010417 \n",
"4 0.003096 \n",
"... ... \n",
"30064 0.000860 \n",
"30065 0.001320 \n",
"30066 0.000000 \n",
"30067 0.002196 \n",
"30068 0.012081 \n",
"\n",
"[30069 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.100000</td>\n",
" <td>0.210000</td>\n",
" <td>0.100000</td>\n",
" <td>11.000000</td>\n",
" <td>34.000000</td>\n",
" <td>88.000000</td>\n",
" <td>18.000000</td>\n",
" <td>18.000000</td>\n",
" <td>28.000000</td>\n",
" <td>2.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>3.200000</td>\n",
" <td>0.320000</td>\n",
" <td>-0.800000</td>\n",
" <td>17.000000</td>\n",
" <td>45.000000</td>\n",
" <td>106.000000</td>\n",
" <td>17.000000</td>\n",
" <td>22.000000</td>\n",
" <td>57.000000</td>\n",
" <td>2.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>4.100000</td>\n",
" <td>0.330000</td>\n",
" <td>0.100000</td>\n",
" <td>24.000000</td>\n",
" <td>54.000000</td>\n",
" <td>76.000000</td>\n",
" <td>18.000000</td>\n",
" <td>40.000000</td>\n",
" <td>62.000000</td>\n",
" <td>4.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>0.400000</td>\n",
" <td>0.110000</td>\n",
" <td>-0.600000</td>\n",
" <td>4.000000</td>\n",
" <td>20.000000</td>\n",
" <td>37.000000</td>\n",
" <td>9.000000</td>\n",
" <td>4.000000</td>\n",
" <td>10.000000</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>1.000000</td>\n",
" <td>0.170000</td>\n",
" <td>-2.000000</td>\n",
" <td>13.000000</td>\n",
" <td>20.000000</td>\n",
" <td>85.000000</td>\n",
" <td>10.000000</td>\n",
" <td>9.000000</td>\n",
" <td>16.000000</td>\n",
" <td>1.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>2364</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>2365</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>2366</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>2367</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>2368</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>2369 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",
"2364 38 Russo A. Sassuolo Fiorentina 1 5.0 \n",
"2365 38 Zoet Spezia Roma 0 5.5 \n",
"2366 38 Milinkovic-Savic V. Torino Inter 1 5.0 \n",
"2367 38 Silvestri Udinese Juventus 1 6.5 \n",
"2368 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.100000 \n",
"1 -2 0 0.0 4.0 ... 3.200000 \n",
"2 0 0 0.0 6.5 ... 4.100000 \n",
"3 -1 0 0.0 4.0 ... 0.400000 \n",
"4 -1 0 0.0 5.0 ... 1.000000 \n",
"... ... ... ... ... ... ... \n",
"2364 -3 0 0.0 2.0 ... 32.550000 \n",
"2365 -2 0 0.5 3.0 ... 10.016667 \n",
"2366 -1 0 0.0 4.0 ... 35.800000 \n",
"2367 -1 0 0.0 5.5 ... 48.700000 \n",
"2368 -3 0 0.0 3.0 ... 49.600000 \n",
"\n",
" gk_psnpxg_per_shot_on_target_against gk_psxg_net \\\n",
"0 0.210000 0.100000 \n",
"1 0.320000 -0.800000 \n",
"2 0.330000 0.100000 \n",
"3 0.110000 -0.600000 \n",
"4 0.170000 -2.000000 \n",
"... ... ... \n",
"2364 0.325000 -12.116667 \n",
"2365 0.158333 -1.816667 \n",
"2366 0.230000 -5.200000 \n",
"2367 0.310000 2.700000 \n",
"2368 0.270000 -6.400000 \n",
"\n",
" gk_passes_completed_launched gk_passes_launched gk_passes \\\n",
"0 11.000000 34.000000 88.000000 \n",
"1 17.000000 45.000000 106.000000 \n",
"2 24.000000 54.000000 76.000000 \n",
"3 4.000000 20.000000 37.000000 \n",
"4 13.000000 20.000000 85.000000 \n",
"... ... ... ... \n",
"2364 146.666667 365.333333 957.000000 \n",
"2365 46.000000 145.333333 254.166667 \n",
"2366 285.000000 939.000000 1506.000000 \n",
"2367 144.000000 380.000000 872.000000 \n",
"2368 360.000000 775.000000 905.000000 \n",
"\n",
" gk_passes_throws gk_goal_kicks gk_crosses gk_crosses_stopped \n",
"0 18.000000 18.000000 28.000000 2.000000 \n",
"1 17.000000 22.000000 57.000000 2.000000 \n",
"2 18.000000 40.000000 62.000000 4.000000 \n",
"3 9.000000 4.000000 10.000000 2.000000 \n",
"4 10.000000 9.000000 16.000000 1.000000 \n",
"... ... ... ... ... \n",
"2364 156.166667 238.833333 391.500000 23.333333 \n",
"2365 37.333333 51.833333 130.333333 5.500000 \n",
"2366 185.000000 286.000000 469.000000 36.000000 \n",
"2367 142.000000 302.000000 547.000000 13.000000 \n",
"2368 124.000000 284.000000 496.000000 26.000000 \n",
"\n",
"[2369 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_5452\\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>23.00</td>\n",
" <td>49.500</td>\n",
" <td>4.0</td>\n",
" <td>44.0</td>\n",
" <td>360.0</td>\n",
" <td>8.00</td>\n",
" <td>8.00</td>\n",
" <td>0.00</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>36.0</td>\n",
" <td>47.0</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>212.00</td>\n",
" <td>65.0</td>\n",
" <td>60.0</td>\n",
" <td>52.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Bologna</th>\n",
" <td>Bologna</td>\n",
" <td>22.00</td>\n",
" <td>56.500</td>\n",
" <td>4.0</td>\n",
" <td>44.0</td>\n",
" <td>360.0</td>\n",
" <td>3.00</td>\n",
" <td>2.00</td>\n",
" <td>0.00</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>50.0</td>\n",
" <td>40.0</td>\n",
" <td>12.0</td>\n",
" <td>0.0</td>\n",
" <td>1.0</td>\n",
" <td>0.00</td>\n",
" <td>207.00</td>\n",
" <td>34.0</td>\n",
" <td>46.0</td>\n",
" <td>42.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Cagliari</th>\n",
" <td>Cagliari</td>\n",
" <td>21.00</td>\n",
" <td>37.800</td>\n",
" <td>4.0</td>\n",
" <td>44.0</td>\n",
" <td>360.0</td>\n",
" <td>1.00</td>\n",
" <td>1.00</td>\n",
" <td>0.00</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>38.0</td>\n",
" <td>41.0</td>\n",
" <td>5.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>220.00</td>\n",
" <td>60.0</td>\n",
" <td>51.0</td>\n",
" <td>54.10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Empoli</th>\n",
" <td>Empoli</td>\n",
" <td>27.00</td>\n",
" <td>47.800</td>\n",
" <td>4.0</td>\n",
" <td>44.0</td>\n",
" <td>360.0</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>0.00</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>60.0</td>\n",
" <td>42.0</td>\n",
" <td>8.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>203.00</td>\n",
" <td>54.0</td>\n",
" <td>39.0</td>\n",
" <td>58.10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Fiorentina</th>\n",
" <td>Fiorentina</td>\n",
" <td>22.00</td>\n",
" <td>61.000</td>\n",
" <td>4.0</td>\n",
" <td>44.0</td>\n",
" <td>360.0</td>\n",
" <td>9.00</td>\n",
" <td>7.00</td>\n",
" <td>0.00</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>56.0</td>\n",
" <td>43.0</td>\n",
" <td>5.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>202.00</td>\n",
" <td>56.0</td>\n",
" <td>53.0</td>\n",
" <td>51.40</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Frosinone</th>\n",
" <td>Frosinone</td>\n",
" <td>23.00</td>\n",
" <td>48.300</td>\n",
" <td>4.0</td>\n",
" <td>44.0</td>\n",
" <td>360.0</td>\n",
" <td>7.00</td>\n",
" <td>4.00</td>\n",
" <td>2.00</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>50.0</td>\n",
" <td>39.0</td>\n",
" <td>6.0</td>\n",
" <td>0.0</td>\n",
" <td>2.0</td>\n",
" <td>0.00</td>\n",
" <td>212.00</td>\n",
" <td>53.0</td>\n",
" <td>52.0</td>\n",
" <td>50.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Genoa</th>\n",
" <td>Genoa</td>\n",
" <td>19.00</td>\n",
" <td>33.300</td>\n",
" <td>4.0</td>\n",
" <td>44.0</td>\n",
" <td>360.0</td>\n",
" <td>4.00</td>\n",
" <td>3.00</td>\n",
" <td>0.00</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>43.0</td>\n",
" <td>43.0</td>\n",
" <td>9.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>200.00</td>\n",
" <td>46.0</td>\n",
" <td>60.0</td>\n",
" <td>43.40</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Verona</th>\n",
" <td>Hellas Verona</td>\n",
" <td>21.00</td>\n",
" <td>43.500</td>\n",
" <td>4.0</td>\n",
" <td>44.0</td>\n",
" <td>360.0</td>\n",
" <td>4.00</td>\n",
" <td>2.00</td>\n",
" <td>0.00</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>47.0</td>\n",
" <td>63.0</td>\n",
" <td>7.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>190.00</td>\n",
" <td>71.0</td>\n",
" <td>82.0</td>\n",
" <td>46.40</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Inter</th>\n",
" <td>Inter</td>\n",
" <td>19.00</td>\n",
" <td>48.800</td>\n",
" <td>4.0</td>\n",
" <td>44.0</td>\n",
" <td>360.0</td>\n",
" <td>13.00</td>\n",
" <td>11.00</td>\n",
" <td>2.00</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>47.0</td>\n",
" <td>44.0</td>\n",
" <td>5.0</td>\n",
" <td>0.0</td>\n",
" <td>2.0</td>\n",
" <td>0.00</td>\n",
" <td>163.00</td>\n",
" <td>30.0</td>\n",
" <td>44.0</td>\n",
" <td>40.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Juventus</th>\n",
" <td>Juventus</td>\n",
" <td>21.00</td>\n",
" <td>48.800</td>\n",
" <td>4.0</td>\n",
" <td>44.0</td>\n",
" <td>360.0</td>\n",
" <td>9.00</td>\n",
" <td>7.00</td>\n",
" <td>1.00</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>52.0</td>\n",
" <td>49.0</td>\n",
" <td>5.0</td>\n",
" <td>0.0</td>\n",
" <td>2.0</td>\n",
" <td>0.00</td>\n",
" <td>173.00</td>\n",
" <td>26.0</td>\n",
" <td>38.0</td>\n",
" <td>40.60</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Lazio</th>\n",
" <td>Lazio</td>\n",
" <td>20.00</td>\n",
" <td>56.000</td>\n",
" <td>4.0</td>\n",
" <td>44.0</td>\n",
" <td>360.0</td>\n",
" <td>4.00</td>\n",
" <td>4.00</td>\n",
" <td>0.00</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>49.0</td>\n",
" <td>44.0</td>\n",
" <td>7.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>196.00</td>\n",
" <td>51.0</td>\n",
" <td>30.0</td>\n",
" <td>63.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Lecce</th>\n",
" <td>Lecce</td>\n",
" <td>19.00</td>\n",
" <td>43.500</td>\n",
" <td>4.0</td>\n",
" <td>44.0</td>\n",
" <td>360.0</td>\n",
" <td>7.00</td>\n",
" <td>5.00</td>\n",
" <td>2.00</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>64.0</td>\n",
" <td>53.0</td>\n",
" <td>5.0</td>\n",
" <td>0.0</td>\n",
" <td>2.0</td>\n",
" <td>0.00</td>\n",
" <td>203.00</td>\n",
" <td>43.0</td>\n",
" <td>54.0</td>\n",
" <td>44.30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Milan</th>\n",
" <td>Milan</td>\n",
" <td>19.00</td>\n",
" <td>55.300</td>\n",
" <td>4.0</td>\n",
" <td>44.0</td>\n",
" <td>360.0</td>\n",
" <td>9.00</td>\n",
" <td>6.00</td>\n",
" <td>3.00</td>\n",
" <td>3.0</td>\n",
" <td>...</td>\n",
" <td>56.0</td>\n",
" <td>43.0</td>\n",
" <td>7.0</td>\n",
" <td>1.0</td>\n",
" <td>3.0</td>\n",
" <td>0.00</td>\n",
" <td>176.00</td>\n",
" <td>42.0</td>\n",
" <td>33.0</td>\n",
" <td>56.00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Monza</th>\n",
" <td>Monza</td>\n",
" <td>22.00</td>\n",
" <td>56.800</td>\n",
" <td>4.0</td>\n",
" <td>44.0</td>\n",
" <td>360.0</td>\n",
" <td>3.00</td>\n",
" <td>3.00</td>\n",
" <td>0.00</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>37.0</td>\n",
" <td>52.0</td>\n",
" <td>6.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>187.00</td>\n",
" <td>45.0</td>\n",
" <td>37.0</td>\n",
" <td>54.90</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Napoli</th>\n",
" <td>Napoli</td>\n",
" <td>19.00</td>\n",
" <td>61.800</td>\n",
" <td>4.0</td>\n",
" <td>44.0</td>\n",
" <td>360.0</td>\n",
" <td>8.00</td>\n",
" <td>5.00</td>\n",
" <td>1.00</td>\n",
" <td>2.0</td>\n",
" <td>...</td>\n",
" <td>47.0</td>\n",
" <td>39.0</td>\n",
" <td>7.0</td>\n",
" <td>1.0</td>\n",
" <td>2.0</td>\n",
" <td>0.00</td>\n",
" <td>173.00</td>\n",
" <td>35.0</td>\n",
" <td>47.0</td>\n",
" <td>42.70</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Roma</th>\n",
" <td>Roma</td>\n",
" <td>23.00</td>\n",
" <td>57.000</td>\n",
" <td>4.0</td>\n",
" <td>44.0</td>\n",
" <td>360.0</td>\n",
" <td>10.00</td>\n",
" <td>8.00</td>\n",
" <td>1.00</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>46.0</td>\n",
" <td>51.0</td>\n",
" <td>4.0</td>\n",
" <td>1.0</td>\n",
" <td>1.0</td>\n",
" <td>1.00</td>\n",
" <td>159.00</td>\n",
" <td>54.0</td>\n",
" <td>76.0</td>\n",
" <td>41.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Salernitana</th>\n",
" <td>Salernitana</td>\n",
" <td>21.00</td>\n",
" <td>51.500</td>\n",
" <td>4.0</td>\n",
" <td>44.0</td>\n",
" <td>360.0</td>\n",
" <td>3.00</td>\n",
" <td>3.00</td>\n",
" <td>0.00</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>64.0</td>\n",
" <td>46.0</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>203.00</td>\n",
" <td>86.0</td>\n",
" <td>54.0</td>\n",
" <td>61.40</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Sassuolo</th>\n",
" <td>Sassuolo</td>\n",
" <td>24.00</td>\n",
" <td>43.500</td>\n",
" <td>4.0</td>\n",
" <td>44.0</td>\n",
" <td>360.0</td>\n",
" <td>5.00</td>\n",
" <td>4.00</td>\n",
" <td>1.00</td>\n",
" <td>1.0</td>\n",
" <td>...</td>\n",
" <td>45.0</td>\n",
" <td>34.0</td>\n",
" <td>15.0</td>\n",
" <td>2.0</td>\n",
" <td>1.0</td>\n",
" <td>0.00</td>\n",
" <td>207.00</td>\n",
" <td>50.0</td>\n",
" <td>37.0</td>\n",
" <td>57.50</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Torino</th>\n",
" <td>Torino</td>\n",
" <td>22.00</td>\n",
" <td>51.300</td>\n",
" <td>4.0</td>\n",
" <td>44.0</td>\n",
" <td>360.0</td>\n",
" <td>5.00</td>\n",
" <td>3.00</td>\n",
" <td>0.00</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>44.0</td>\n",
" <td>48.0</td>\n",
" <td>7.0</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>207.00</td>\n",
" <td>63.0</td>\n",
" <td>59.0</td>\n",
" <td>51.60</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Udinese</th>\n",
" <td>Udinese</td>\n",
" <td>22.00</td>\n",
" <td>48.500</td>\n",
" <td>4.0</td>\n",
" <td>44.0</td>\n",
" <td>360.0</td>\n",
" <td>1.00</td>\n",
" <td>1.00</td>\n",
" <td>0.00</td>\n",
" <td>0.0</td>\n",
" <td>...</td>\n",
" <td>43.0</td>\n",
" <td>51.0</td>\n",
" <td>10.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>188.00</td>\n",
" <td>52.0</td>\n",
" <td>64.0</td>\n",
" <td>44.80</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Avg</th>\n",
" <td>Avg</td>\n",
" <td>21.45</td>\n",
" <td>50.025</td>\n",
" <td>4.0</td>\n",
" <td>44.0</td>\n",
" <td>360.0</td>\n",
" <td>5.65</td>\n",
" <td>4.35</td>\n",
" <td>0.65</td>\n",
" <td>0.8</td>\n",
" <td>...</td>\n",
" <td>48.7</td>\n",
" <td>45.6</td>\n",
" <td>6.8</td>\n",
" <td>0.5</td>\n",
" <td>0.8</td>\n",
" <td>0.05</td>\n",
" <td>194.05</td>\n",
" <td>50.8</td>\n",
" <td>50.8</td>\n",
" <td>49.86</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 23.00 49.500 4.0 \n",
"Bologna Bologna 22.00 56.500 4.0 \n",
"Cagliari Cagliari 21.00 37.800 4.0 \n",
"Empoli Empoli 27.00 47.800 4.0 \n",
"Fiorentina Fiorentina 22.00 61.000 4.0 \n",
"Frosinone Frosinone 23.00 48.300 4.0 \n",
"Genoa Genoa 19.00 33.300 4.0 \n",
"Verona Hellas Verona 21.00 43.500 4.0 \n",
"Inter Inter 19.00 48.800 4.0 \n",
"Juventus Juventus 21.00 48.800 4.0 \n",
"Lazio Lazio 20.00 56.000 4.0 \n",
"Lecce Lecce 19.00 43.500 4.0 \n",
"Milan Milan 19.00 55.300 4.0 \n",
"Monza Monza 22.00 56.800 4.0 \n",
"Napoli Napoli 19.00 61.800 4.0 \n",
"Roma Roma 23.00 57.000 4.0 \n",
"Salernitana Salernitana 21.00 51.500 4.0 \n",
"Sassuolo Sassuolo 24.00 43.500 4.0 \n",
"Torino Torino 22.00 51.300 4.0 \n",
"Udinese Udinese 22.00 48.500 4.0 \n",
"Avg Avg 21.45 50.025 4.0 \n",
"\n",
" team_games_starts team_minutes team_goals team_assists \\\n",
"Atalanta 44.0 360.0 8.00 8.00 \n",
"Bologna 44.0 360.0 3.00 2.00 \n",
"Cagliari 44.0 360.0 1.00 1.00 \n",
"Empoli 44.0 360.0 0.00 0.00 \n",
"Fiorentina 44.0 360.0 9.00 7.00 \n",
"Frosinone 44.0 360.0 7.00 4.00 \n",
"Genoa 44.0 360.0 4.00 3.00 \n",
"Verona 44.0 360.0 4.00 2.00 \n",
"Inter 44.0 360.0 13.00 11.00 \n",
"Juventus 44.0 360.0 9.00 7.00 \n",
"Lazio 44.0 360.0 4.00 4.00 \n",
"Lecce 44.0 360.0 7.00 5.00 \n",
"Milan 44.0 360.0 9.00 6.00 \n",
"Monza 44.0 360.0 3.00 3.00 \n",
"Napoli 44.0 360.0 8.00 5.00 \n",
"Roma 44.0 360.0 10.00 8.00 \n",
"Salernitana 44.0 360.0 3.00 3.00 \n",
"Sassuolo 44.0 360.0 5.00 4.00 \n",
"Torino 44.0 360.0 5.00 3.00 \n",
"Udinese 44.0 360.0 1.00 1.00 \n",
"Avg 44.0 360.0 5.65 4.35 \n",
"\n",
" team_pens_made team_pens_att ... vs_team_fouls \\\n",
"Atalanta 0.00 0.0 ... 36.0 \n",
"Bologna 0.00 1.0 ... 50.0 \n",
"Cagliari 0.00 0.0 ... 38.0 \n",
"Empoli 0.00 0.0 ... 60.0 \n",
"Fiorentina 0.00 0.0 ... 56.0 \n",
"Frosinone 2.00 2.0 ... 50.0 \n",
"Genoa 0.00 0.0 ... 43.0 \n",
"Verona 0.00 0.0 ... 47.0 \n",
"Inter 2.00 2.0 ... 47.0 \n",
"Juventus 1.00 2.0 ... 52.0 \n",
"Lazio 0.00 0.0 ... 49.0 \n",
"Lecce 2.00 2.0 ... 64.0 \n",
"Milan 3.00 3.0 ... 56.0 \n",
"Monza 0.00 0.0 ... 37.0 \n",
"Napoli 1.00 2.0 ... 47.0 \n",
"Roma 1.00 1.0 ... 46.0 \n",
"Salernitana 0.00 0.0 ... 64.0 \n",
"Sassuolo 1.00 1.0 ... 45.0 \n",
"Torino 0.00 0.0 ... 44.0 \n",
"Udinese 0.00 0.0 ... 43.0 \n",
"Avg 0.65 0.8 ... 48.7 \n",
"\n",
" vs_team_fouled vs_team_offsides vs_team_pens_won \\\n",
"Atalanta 47.0 2.0 0.0 \n",
"Bologna 40.0 12.0 0.0 \n",
"Cagliari 41.0 5.0 0.0 \n",
"Empoli 42.0 8.0 1.0 \n",
"Fiorentina 43.0 5.0 1.0 \n",
"Frosinone 39.0 6.0 0.0 \n",
"Genoa 43.0 9.0 0.0 \n",
"Verona 63.0 7.0 1.0 \n",
"Inter 44.0 5.0 0.0 \n",
"Juventus 49.0 5.0 0.0 \n",
"Lazio 44.0 7.0 0.0 \n",
"Lecce 53.0 5.0 0.0 \n",
"Milan 43.0 7.0 1.0 \n",
"Monza 52.0 6.0 1.0 \n",
"Napoli 39.0 7.0 1.0 \n",
"Roma 51.0 4.0 1.0 \n",
"Salernitana 46.0 4.0 0.0 \n",
"Sassuolo 34.0 15.0 2.0 \n",
"Torino 48.0 7.0 1.0 \n",
"Udinese 51.0 10.0 0.0 \n",
"Avg 45.6 6.8 0.5 \n",
"\n",
" vs_team_pens_conceded vs_team_own_goals \\\n",
"Atalanta 0.0 0.00 \n",
"Bologna 1.0 0.00 \n",
"Cagliari 0.0 0.00 \n",
"Empoli 0.0 0.00 \n",
"Fiorentina 0.0 0.00 \n",
"Frosinone 2.0 0.00 \n",
"Genoa 0.0 0.00 \n",
"Verona 0.0 0.00 \n",
"Inter 2.0 0.00 \n",
"Juventus 2.0 0.00 \n",
"Lazio 0.0 0.00 \n",
"Lecce 2.0 0.00 \n",
"Milan 3.0 0.00 \n",
"Monza 0.0 0.00 \n",
"Napoli 2.0 0.00 \n",
"Roma 1.0 1.00 \n",
"Salernitana 0.0 0.00 \n",
"Sassuolo 1.0 0.00 \n",
"Torino 0.0 0.00 \n",
"Udinese 0.0 0.00 \n",
"Avg 0.8 0.05 \n",
"\n",
" vs_team_ball_recoveries vs_team_aerials_won \\\n",
"Atalanta 212.00 65.0 \n",
"Bologna 207.00 34.0 \n",
"Cagliari 220.00 60.0 \n",
"Empoli 203.00 54.0 \n",
"Fiorentina 202.00 56.0 \n",
"Frosinone 212.00 53.0 \n",
"Genoa 200.00 46.0 \n",
"Verona 190.00 71.0 \n",
"Inter 163.00 30.0 \n",
"Juventus 173.00 26.0 \n",
"Lazio 196.00 51.0 \n",
"Lecce 203.00 43.0 \n",
"Milan 176.00 42.0 \n",
"Monza 187.00 45.0 \n",
"Napoli 173.00 35.0 \n",
"Roma 159.00 54.0 \n",
"Salernitana 203.00 86.0 \n",
"Sassuolo 207.00 50.0 \n",
"Torino 207.00 63.0 \n",
"Udinese 188.00 52.0 \n",
"Avg 194.05 50.8 \n",
"\n",
" vs_team_aerials_lost vs_team_aerials_won_pct \n",
"Atalanta 60.0 52.00 \n",
"Bologna 46.0 42.50 \n",
"Cagliari 51.0 54.10 \n",
"Empoli 39.0 58.10 \n",
"Fiorentina 53.0 51.40 \n",
"Frosinone 52.0 50.50 \n",
"Genoa 60.0 43.40 \n",
"Verona 82.0 46.40 \n",
"Inter 44.0 40.50 \n",
"Juventus 38.0 40.60 \n",
"Lazio 30.0 63.00 \n",
"Lecce 54.0 44.30 \n",
"Milan 33.0 56.00 \n",
"Monza 37.0 54.90 \n",
"Napoli 47.0 42.70 \n",
"Roma 76.0 41.50 \n",
"Salernitana 54.0 61.40 \n",
"Sassuolo 37.0 57.50 \n",
"Torino 59.0 51.60 \n",
"Udinese 64.0 44.80 \n",
"Avg 50.8 49.86 \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": 41,
"id": "6f8707b8",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" \n",
"Averaging players stats with past seasons:\n",
"Szczesny 0.41758241758241765\n",
"Meret 0.6877828054298643\n",
"Provedel 0.6153846153846154\n",
"Maignan 1\n",
"Rui Patricio 0.6681318681318682\n",
"Skorupski 0.632016632016632\n",
"Milinkovic-Savic V. 0.6153846153846154\n",
"Di Gregorio 0.47401247401247393\n",
"Falcone 0.6153846153846154\n",
"Silvestri 0.6153846153846154\n",
"Terracciano 0.40318302387267907\n",
"Carnesecchi 0.22735042735042738\n",
"Montipo' 0.632016632016632\n",
"Ochoa 1\n",
"Consigli 0.501098901098901\n",
"Musso 0.7307692307692307\n",
"Cragno 1\n",
"Perin 1\n",
"Berisha 1\n",
"Sportiello 1\n",
"Mirante 1\n",
"Sepe 1\n",
"Lamanna 1\n",
"Pegolo 1\n",
"Perilli 1\n",
"Padelli 1\n",
"Gollini 1\n",
"Perisan 0.8351648351648353\n",
"Audero 0.9821538461538462\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.3543123543123543\n",
"Di Lorenzo 0.316008316008316\n",
"Hernandez T. 0.3653846153846154\n",
"Carlos Augusto 0.3507692307692308\n",
"Danilo 0.316008316008316\n",
"Zappacosta 0.5567765567765568\n",
"Schuurs 0.38974358974358975\n",
"Posch 0.38974358974358975\n",
"Bastoni 0.40318302387267907\n",
"Smalling 0.2740384615384615\n",
"Dumfries 0.3438914027149321\n",
"Romagnoli 0.3438914027149321\n",
"Pavard 0.0 (rookie)\n",
"Rrahmani 0.3023872679045092\n",
"Spinazzola 0.44970414201183434\n",
"Buongiorno 0.3438914027149321\n",
"Bremer 0.38974358974358975\n",
"Tomori 0.2657342657342657\n",
"Biraghi 0.2657342657342657\n",
"Mancini 0.3340659340659341\n",
"Darmian 0.3771712158808933\n",
"Bakker 0.21923076923076926 (rookie)\n",
"Mazzocchi 0.4330484330484331\n",
"Doig 0.5314685314685315\n",
"Calabria 0.4676923076923077\n",
"Acerbi 0.09429280397022333\n",
"Cuadrado 0.29702233250620347\n",
"Ebuehi 0.22485207100591717\n",
"Casale 0.3023872679045092\n",
"Holm 0.15346153846153848\n",
"Baschirotto 0.316008316008316\n",
"Bijol 0.3653846153846154\n",
"Thiaw 0.5846153846153846\n",
"Mario Rui 0.39860139860139854\n",
"Milenkovic 0.4330484330484331\n",
"Rodriguez R. 0.3340659340659341\n",
"Kolasinac 0.37202797202797205 (rookie)\n",
"N'dicka 0.10230769230769231 (rookie)\n",
"Scalvini 0.3653846153846154\n",
"Perez N. 0.3438914027149321\n",
"Kristensen 0.0 (rookie)\n",
"Izzo 0.29230769230769227\n",
"De Vrij 0.4330484330484331\n",
"Faraoni 0.38127090301003336\n",
"Toloi 0.09134615384615385\n",
"Kyriakopoulos 0.5115384615384616\n",
"Bellanova 0.6820512820512822\n",
"Mari' 0.38974358974358975\n",
"Dodo' 0.3543123543123543\n",
"Lucumi' 0.3543123543123543\n",
"Hien 0.1826923076923077\n",
"Hysaj 0.17194570135746606\n",
"D'ambrosio 0.40923076923076923\n",
"Luperto 0.3247863247863248\n",
"Djimsiti 0.36538461538461536\n",
"Marusic 0.3543123543123543\n",
"Martin 0.4384615384615385 (rookie)\n",
"Mina 0.0 (rookie)\n",
"Toljan 0.3771712158808933\n",
"Llorente D. 1\n",
"Martinez Quarta 0.21652421652421655\n",
"Bastoni S. 0.16153846153846155\n",
"Dragusin 0.3230769230769231 (rookie)\n",
"Parisi 0.18601398601398603\n",
"Bradaric 0.3771712158808933\n",
"Olivera 0.38974358974358975\n",
"Gendrey 0.316008316008316\n",
"Kristiansen 0.5115384615384616 (rookie)\n",
"Beukema 0.47218934911242605 (rookie)\n",
"Dossena 0.5337792642140469 (rookie)\n",
"Pedersen 0.3175066312997347 (rookie)\n",
"Juan Jesus 0.7794871794871795\n",
"Gyomber 0.4330484330484331\n",
"Alex Sandro 0.23384615384615384\n",
"Hateboer 0.0\n",
"Palomino 0.19487179487179487\n",
"Marchizza 1\n",
"Marchizza 0.6461538461538462 (two seasons ago)\n",
"Zappa 0.4676923076923077 (two seasons ago)\n",
"Gallo 0.3653846153846154\n",
"Caldirola 0.3771712158808933\n",
"Kalulu 0.17194570135746606\n",
"Erlic 0.41758241758241765\n",
"Vojvoda 0.3023872679045092\n",
"Vasquez 0.4910769230769231\n",
"Cambiaso 0.3836538461538462\n",
"Pongracic 1\n",
"Viti 0.3410256410256411 (rookie)\n",
"Gatti 0.3247863247863248\n",
"Birindelli 0.3771712158808933\n",
"Azzi 0.7673076923076924 (rookie)\n",
"Masina 0.0\n",
"Romagnoli S. 1\n",
"Romagnoli S. 0.6461538461538462 (two seasons ago)\n",
"Pezzella Giu. 0.7673076923076924\n",
"Sabelli 0.3069230769230769 (rookie)\n",
"Lazzari 0.20879120879120883\n",
"Bani 0.37202797202797205 (rookie)\n",
"Djidji 0.0\n",
"Lazaro 0.38127090301003336\n",
"Augello 0.24885654885654884\n",
"Zortea 0.9207692307692308\n",
"Zortea 0.3762046521118139 (two seasons ago)\n",
"Dawidowicz 0.5083612040133779\n",
"Pirola 0.3372781065088757\n",
"Lovato 0.6877828054298643\n",
"Ruggeri 0.7794871794871795\n",
"Vina 0.47218934911242605 (two seasons ago)\n",
"Obert 1 (two seasons ago)\n",
"Terracciano F. 0.5846153846153846\n",
"Ebosele 0.6877828054298643\n",
"Patric 0.1623931623931624\n",
"Lykogiannis 0.2783882783882784\n",
"Pellegrini Lu. 1\n",
"Pellegrini Lu. 0.6820512820512822 (two seasons ago)\n",
"Magnani 0.4871794871794872\n",
"Ranieri L. 0.6495726495726496\n",
"Ranieri L. 0.5061947549127037 (two seasons ago)\n",
"Calafiori 1 (two seasons ago)\n",
"Monterisi 1 (rookie)\n",
"Ismajli 0.35076923076923067\n",
"De Winter 0.21923076923076926\n",
"Ehizibue 0.0\n",
"Ferrari G. 0.0\n",
"Venuti 0.0\n",
"Karsdorp 0.44970414201183434\n",
"Kjaer 0.5158371040723981\n",
"Gunter 0.0\n",
"Soumaoro 0.0\n",
"Zanoli 0.0\n",
"Zima 0.3247863247863248\n",
"Hefti 0.548076923076923 (two seasons ago)\n",
"Ostigard 1\n",
"Ostigard 1 (two seasons ago)\n",
"Sambia 0.13286713286713286\n",
"Rugani 0.0\n",
"De Sciglio 0.0\n",
"Goldaniga 0.26573426573426573 (two seasons ago)\n",
"Florenzi 0.9743589743589745\n",
"Florenzi 0.2560815253122945 (two seasons ago)\n",
"De Silvestri 0.38974358974358975\n",
"Fazio 0.41758241758241765\n",
"Bereszynski 1\n",
"Bereszynski 0.1753846153846154 (two seasons ago)\n",
"Bonifazi 0.0\n",
"Walukiewicz 0.5314685314685315\n",
"Okoli 0.18054298642533936\n",
"Kumbulla 0.0\n",
"Celik 0.1217948717948718\n",
"Amione 0.11804733727810651\n",
"Daniliuc 0.0\n",
"Soppy 0.20461538461538462\n",
"Haps 0.0 (two seasons ago)\n",
"Coppola D. 0.3076923076923077\n",
"Cacace 0.4871794871794872\n",
"Ebosse 0.14615384615384616\n",
"Guessand A. 1\n",
"Cabal 0.5314685314685315\n",
"Dermaku 0.0\n",
"Tonelli 0.0\n",
"Tonelli 0.20879120879120883 (two seasons ago)\n",
"Amey 0.0\n",
"Gila 0.0\n",
"Bronn 0.0\n",
"Guarino 0.0\n",
"Carboni F. 1\n",
"Zaccagni 0.3340659340659341\n",
"Koopmeiners 0.3543123543123543\n",
"Luis Alberto 0.3340659340659341\n",
"Felipe Anderson 0.3076923076923077\n",
"Rabiot 0.3653846153846154\n",
"Zielinski 0.316008316008316\n",
"Barella 0.3340659340659341\n",
"Pulisic 0.5115384615384616 (rookie)\n",
"Orsolini 0.3653846153846154\n",
"Calhanoglu 0.3543123543123543\n",
"Strefezza 0.3340659340659341\n",
"Chukwueze 0.3318087318087318 (rookie)\n",
"Ferguson 0.3653846153846154\n",
"Candreva 0.3340659340659341\n",
"Frattesi 0.3410256410256411\n",
"Samardzic 0.316008316008316\n",
"Vlasic 0.25791855203619907\n",
"Bonaventura 0.38974358974358975\n",
"Politano 0.4330484330484331\n",
"El Shaarawy 0.40318302387267907\n",
"Mkhitaryan 0.3771712158808933\n",
"Aouar 0.5754807692307693 (rookie)\n",
"Malinovskyi 0.3069230769230769 (two seasons ago)\n",
"Gudmundsson A. 0.3410256410256411 (rookie)\n",
"Kamada 0.3836538461538462 (rookie)\n",
"Pellegrini Lo. 0.1826923076923077\n",
"Kostic 0.158004158004158\n",
"Radonjic 0.41758241758241765\n",
"Baldanzi 0.44970414201183434\n",
"Lovric 0.316008316008316\n",
"Lindstrom 0.0 (rookie)\n",
"Lazovic 0.09743589743589744\n",
"Pereyra 0.08597285067873303\n",
"Renato Sanches 0.26688963210702343 (rookie)\n",
"Pessina 0.3340659340659341\n",
"Guendouzi 0.18601398601398603 (rookie)\n",
"Loftus-Cheek 0.4910769230769231 (rookie)\n",
"Zambo Anguissa 0.3247863247863248\n",
"Elmas 0.24358974358974356\n",
"Bajrami 0.6495726495726496\n",
"Ricci S. 0.41758241758241765\n",
"Colpani 0.4330484330484331\n",
"Ciurria 0.3247863247863248\n",
"De Roon 0.3340659340659341\n",
"Pogba 0.9743589743589745\n",
"Cristante 0.3247863247863248\n",
"Locatelli 0.3653846153846154\n",
"Pasalic 0.1826923076923077\n",
"Lobotka 0.3076923076923077\n",
"Fagioli 0.3372781065088757\n",
"Ikone' 0.0\n",
"Ilic 0.6263736263736263\n",
"Ederson D.s. 0.3340659340659341\n",
"Reijnders 0.3610859728506787 (rookie)\n",
"Barak 0.09743589743589744\n",
"Saponara 0.2116710875331565\n",
"Mandragora 0.40318302387267907\n",
"Weah 0.423342175066313 (rookie)\n",
"Bennacer 0.0\n",
"Duda 0.7794871794871795\n",
"Castrovilli 0.0\n",
"Mckennie 0.5567765567765568 (two seasons ago)\n",
"Miranchuk 0.10583554376657825\n",
"Matheus Henrique 0.38974358974358975\n",
"De Ketelaere 0.3836538461538462\n",
"Paredes 0.4910769230769231\n",
"Sottil 0.4871794871794871\n",
"Klaassen 0.0 (rookie)\n",
"Thorsby 0.3507692307692308 (two seasons ago)\n",
"Nandez 0.37202797202797205 (rookie)\n",
"Tameze 0.1659043659043659\n",
"Marin 0.2657342657342657\n",
"Messias 0.0\n",
"Coulibaly L. 0.08351648351648353\n",
"Krunic 0.5083612040133779\n",
"Cataldi 0.40318302387267907\n",
"Strootman 0.3069230769230769 (rookie)\n",
"Duncan 0.35076923076923067\n",
"Freuler 0.10961538461538463 (rookie)\n",
"Gagliardini 0.6461538461538462\n",
"Kastanos 0.41758241758241765\n",
"Gyasi 0.2630769230769231\n",
"Zalewski 0.2657342657342657\n",
"Harroui 0.4003344481605351\n",
"Frendrup 0.3318087318087318 (rookie)\n",
"Blin 0.3340659340659341\n",
"Fabbian 0.2557692307692308 (rookie)\n",
"Vecino 0.1826923076923077\n",
"Sensi 0.10961538461538463\n",
"Walace 0.316008316008316\n",
"Lopez M. 0.20461538461538462\n",
"Bove 0.39860139860139854\n",
"Aebischer 0.3653846153846154\n",
"Thorstvedt 0.3771712158808933\n",
"Gonzalez J. 0.2505494505494505\n",
"Moro N. 0.44970414201183434\n",
"Oudin 0.0\n",
"Makoumbou 0.3410256410256411 (rookie)\n",
"Badelj 0.3438914027149321 (two seasons ago)\n",
"Machin 0.0\n",
"Linetty 0.3653846153846154\n",
"Castillejo 0.12276923076923077 (rookie)\n",
"Rovella 0.12276923076923077\n",
"Pobega 0.3076923076923077\n",
"Hongla 0.6495726495726496 (two seasons ago)\n",
"Miretti 0.32478632478632474\n",
"Fazzini 0.4175824175824175\n",
"Grassi 0.35076923076923067\n",
"Baez 0.7221719457013575 (rookie)\n",
"Deiola 0.3543123543123543 (two seasons ago)\n",
"Bourabia 0.0\n",
"Saelemaekers 0.0\n",
"Maldini 0.0\n",
"Kovalenko 0.17051282051282055\n",
"Maleh 0.3610859728506787\n",
"Bohinen 0.36538461538461536\n",
"Ranocchia F. 0.0\n",
"Folorunsho 0.45470085470085475 (rookie)\n",
"Adopo 0.6820512820512822\n",
"Romero L. 0.0\n",
"Basic 0.0\n",
"Asllani 0.2923076923076923\n",
"Sulemana I. 0.5754807692307693\n",
"Gaetano 0.0\n",
"Obiang 0.0\n",
"Maggiore 0.1826923076923077\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",
"Vignato S. 1\n",
"Hrustic 0.0\n",
"Viola 0.0 (two seasons ago)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Rog 0.0 (two seasons ago)\n",
"Nicolussi Caviglia 0.0\n",
"Demme 0.0\n",
"Pafundi 0.0\n",
"Adli 0.0\n",
"Zerbin 0.2923076923076923\n",
"Carboni V. 1\n",
"Faticanti 0.0\n",
"Osimhen 0.3653846153846154\n",
"Martinez L. 0.3076923076923077\n",
"Rafael Leao 0.3340659340659341\n",
"Lukaku 0.24553846153846154\n",
"Berardi 0.22485207100591717\n",
"Immobile 0.3771712158808933\n",
"Vlahovic 0.4330484330484331\n",
"Dybala 0.23384615384615384\n",
"Kvaratskhelia 0.25791855203619907\n",
"Giroud 0.3543123543123543\n",
"Scamacca 0.3410256410256411 (two seasons ago)\n",
"Thuram 0.40923076923076923 (rookie)\n",
"Lookman 0.3771712158808933\n",
"Dia 0.17715617715617715\n",
"Arnautovic 0.5846153846153845\n",
"Retegui 0.5846153846153845 (rookie)\n",
"Sanabria 0.17715617715617715\n",
"Nzola 0.396029776674938\n",
"Lauriente' 0.41758241758241765\n",
"Zapata D. 0.24553846153846154\n",
"Chiesa 0.5567765567765568\n",
"Milik 0.4330484330484331\n",
"Gonzalez N. 0.4871794871794872\n",
"Pinamonti 0.3653846153846154\n",
"Beltran L. 0.4910769230769231 (rookie)\n",
"Caprari 0.316008316008316\n",
"Sanchez 0.0 (rookie)\n",
"Caputo 0.5567765567765568\n",
"Belotti 0.3771712158808933\n",
"Muriel 0.20159151193633953\n",
"Lapadula 0.0 (rookie)\n",
"Jovic 0.0990074441687345\n",
"Abraham 0.0\n",
"Zirkzee 0.6153846153846154\n",
"Ngonge 0.8351648351648353\n",
"Petagna 0.0990074441687345\n",
"Simeone 0.35076923076923067\n",
"Deulofeu 0.0\n",
"Pedro 0.24358974358974356\n",
"Shomurodov 0.8184615384615385\n",
"Shomurodov 0.6573550295857988 (two seasons ago)\n",
"Azmoun 0.13344481605351172 (rookie)\n",
"Cheddira 0.29702233250620347 (rookie)\n",
"Karlsson 0.4003344481605351 (rookie)\n",
"Brekalo 1\n",
"Brekalo 0.3836538461538462 (two seasons ago)\n",
"Cambiaghi 0.31318681318681313\n",
"Henry 0.0\n",
"Mulattieri 0.423342175066313 (rookie)\n",
"Kean 0.20879120879120883\n",
"Karamoh 0.4175824175824175\n",
"Thauvin 0.7307692307692308\n",
"Kouame' 0.31318681318681313\n",
"Raspadori 0.4676923076923077\n",
"Colombo 0.18601398601398603\n",
"Luvumbo 0.0 (rookie)\n",
"Mota 0.40318302387267907\n",
"Bonazzoli 0.5115384615384616\n",
"Djuric 0.41758241758241765\n",
"Banda 0.3247863247863248\n",
"Defrel 0.10826210826210828\n",
"Sansone 0.0\n",
"Pellegri 0.6495726495726496\n",
"Piccoli 0.47218934911242605\n",
"Success 0.29230769230769227\n",
"Botheim 0.41758241758241765\n",
"Lucca 0.876923076923077 (rookie)\n",
"Caso 0.2630769230769231 (rookie)\n",
"Jovane 0.0 (two seasons ago)\n",
"Soule' 0.47218934911242605\n",
"Pavoletti 0.4003344481605351 (rookie)\n",
"Cancellieri 0.6138461538461539\n",
"Seck 0.3076923076923077\n",
"Alvarez A. 0.0\n",
"Ekuban 0.29230769230769227 (two seasons ago)\n",
"Destro 0.3438914027149321\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",
"Natan 0.0\n",
"Llorente D. 0.6666666666666667\n",
"Kamara H. 0.6666666666666667\n",
"Pongracic 0.6666666666666667\n",
"Wieteska 0.33333333333333337\n",
"Lirola 0.16666666666666663\n",
"Kabasele 0.6666666666666667\n",
"Obert 0.5\n",
"Zemura 0.5\n",
"Hatzidiakos 0.16666666666666663\n",
"Carboni A. 0.33333333333333337\n",
"Calafiori 0.16666666666666663\n",
"Monterisi 0.6666666666666667\n",
"Tressoldi 0.0\n",
"Vogliacco 0.0\n",
"Di Pardo 0.6666666666666667\n",
"Ostigard 0.5\n",
"Bisseck 0.16666666666666663\n",
"Oyono 0.6666666666666667\n",
"Ferreira J. 0.6666666666666667\n",
"Dorgu 0.6666666666666667\n",
"Touba 0.16666666666666663\n",
"Sazonov 0.0\n",
"Pereira P. 0.5\n",
"Cittadini 0.0\n",
"Guessand A. 0.16666666666666663\n",
"Missori 0.16666666666666663\n",
"Kayode 0.16666666666666663\n",
"Corazza 0.33333333333333337\n",
"Kristensen T. 0.0\n",
"Dermaku 0.16666666666666663\n",
"Capradossi 0.0\n",
"Bettella 0.0\n",
"Amey 0.0\n",
"Gila 0.6666666666666667\n",
"Guarino 0.0\n",
"Carboni F. 0.33333333333333337\n",
"Smajlovic 0.0\n",
"Matturro 0.0\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",
"Pogba 0.3504273504273504\n",
"Ndoye 0.6666666666666667\n",
"Mboula 0.5\n",
"Arthur Melo 0.6666666666666667\n",
"Musah 0.33333333333333337\n",
"Mazzitelli 0.6666666666666667\n",
"Jankto 0.5\n",
"Reinier 0.0\n",
"Ramadani 0.6666666666666667\n",
"Cajuste 0.0\n",
"Mancosu 0.0\n",
"Brescianini 0.5\n",
"Boloca 0.5\n",
"Rafia 0.6666666666666667\n",
"Kaba 0.6666666666666667\n",
"Machin 0.0\n",
"Iling Junior 0.0\n",
"Oristanio 0.5\n",
"Serdar 0.5\n",
"Payero 0.16666666666666663\n",
"Garritano 0.5\n",
"Racic 0.33333333333333337\n",
"Infantino 0.5\n",
"Martegani 0.5\n",
"Kutlu 0.16666666666666663\n",
"Tchatchoua 0.0\n",
"Quina 0.33333333333333337\n",
"Adopo 0.7042735042735042\n",
"Tchaouna 0.33333333333333337\n",
"Barrenechea 0.6666666666666667\n",
"Gelli 0.6666666666666667\n",
"Suslov 0.16666666666666663\n",
"Jagiello 0.0\n",
"Akpa Akpro 0.0\n",
"Urbanski 0.33333333333333337\n",
"Volpato 0.7282051282051283\n",
"Vignato S. 0.33333333333333337\n",
"Zarraga 0.33333333333333337\n",
"Camara E. 0.0\n",
"Amatucci 0.16666666666666663\n",
"Pagano 0.5\n",
"Prati 0.16666666666666663\n",
"Lulic K. 0.0\n",
"Bondo 0.16666666666666663\n",
"Carboni V. 0.33333333333333337\n",
"Faticanti 0.0\n",
"Gineitis 0.16666666666666663\n",
"Belardinelli 0.0\n",
"El Azzouzi 0.5\n",
"Lipani 0.0\n",
"Joselito 0.0\n",
"Legowski 0.0\n",
"Ibrahimovic A. 0.0\n",
"Okafor 0.6666666666666667\n",
"Toure' E. 0.0\n",
"Krstovic 0.5\n",
"Ngonge 0.9413919413919412\n",
"Castellanos 0.6666666666666667\n",
"Almqvist 0.6666666666666667\n",
"Isaksen 0.5\n",
"Brenner 0.0\n",
"Davis K. 0.0\n",
"Lucca 0.8717948717948717\n",
"Jovane 0.0\n",
"Cuni 0.5\n",
"Maric 0.5\n",
"Cruz 0.0\n",
"Van Hooijdonk 0.16666666666666663\n",
"Kvernadze 0.16666666666666663\n",
"Ikwuemesi 0.5\n",
"Puscas 0.0\n",
"Ake' M. 0.6666666666666667\n",
"Vivaldo 0.0\n",
"Bidaoui 0.0\n",
"Shpendi S. 0.5\n",
"Burnete 0.16666666666666663\n",
"Corfitzen 0.0\n",
"Stewart 0.0\n",
"Yildiz 0.0\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": 15,
"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": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"players.columns[9:]"
]
},
{
"cell_type": "code",
"execution_count": 16,
"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": 17,
"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": 18,
"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": 19,
"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": 20,
"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": 21,
"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": 22,
"id": "8aad9652",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/1000\n",
"94/94 [==============================] - 4s 9ms/step - loss: 2.1251 - distribution_lambda_loss: 0.8284 - distribution_lambda_1_loss: 1.2967 - val_loss: 2.0962 - val_distribution_lambda_loss: 0.8157 - val_distribution_lambda_1_loss: 1.2804\n",
"Epoch 2/1000\n",
"94/94 [==============================] - 0s 3ms/step - loss: 2.1244 - distribution_lambda_loss: 0.8284 - distribution_lambda_1_loss: 1.2960 - val_loss: 2.1000 - val_distribution_lambda_loss: 0.8174 - val_distribution_lambda_1_loss: 1.2826\n",
"Epoch 3/1000\n",
"94/94 [==============================] - 0s 3ms/step - loss: 2.1246 - distribution_lambda_loss: 0.8271 - distribution_lambda_1_loss: 1.2976 - val_loss: 2.1027 - val_distribution_lambda_loss: 0.8194 - val_distribution_lambda_1_loss: 1.2832\n",
"Epoch 4/1000\n",
"94/94 [==============================] - 0s 3ms/step - loss: 2.1244 - distribution_lambda_loss: 0.8265 - distribution_lambda_1_loss: 1.2978 - val_loss: 2.1046 - val_distribution_lambda_loss: 0.8192 - val_distribution_lambda_1_loss: 1.2854\n",
"Epoch 5/1000\n",
"94/94 [==============================] - 0s 3ms/step - loss: 2.1229 - distribution_lambda_loss: 0.8260 - distribution_lambda_1_loss: 1.2969 - val_loss: 2.1029 - val_distribution_lambda_loss: 0.8188 - val_distribution_lambda_1_loss: 1.2841\n",
"Epoch 6/1000\n",
"94/94 [==============================] - 0s 3ms/step - loss: 2.1190 - distribution_lambda_loss: 0.8258 - distribution_lambda_1_loss: 1.2932 - val_loss: 2.1034 - val_distribution_lambda_loss: 0.8197 - val_distribution_lambda_1_loss: 1.2837\n",
"Epoch 7/1000\n",
"94/94 [==============================] - 0s 3ms/step - loss: 2.1207 - distribution_lambda_loss: 0.8258 - distribution_lambda_1_loss: 1.2949 - val_loss: 2.1039 - val_distribution_lambda_loss: 0.8194 - val_distribution_lambda_1_loss: 1.2845\n",
"Epoch 8/1000\n",
"94/94 [==============================] - 0s 3ms/step - loss: 2.1272 - distribution_lambda_loss: 0.8285 - distribution_lambda_1_loss: 1.2987 - val_loss: 2.1043 - val_distribution_lambda_loss: 0.8193 - val_distribution_lambda_1_loss: 1.2851\n",
"Epoch 9/1000\n",
"94/94 [==============================] - 0s 3ms/step - loss: 2.1213 - distribution_lambda_loss: 0.8262 - distribution_lambda_1_loss: 1.2951 - val_loss: 2.1100 - val_distribution_lambda_loss: 0.8225 - val_distribution_lambda_1_loss: 1.2874\n",
"Epoch 10/1000\n",
"94/94 [==============================] - 0s 3ms/step - loss: 2.1201 - distribution_lambda_loss: 0.8256 - distribution_lambda_1_loss: 1.2945 - val_loss: 2.1039 - val_distribution_lambda_loss: 0.8196 - val_distribution_lambda_1_loss: 1.2843\n",
"Epoch 11/1000\n",
"94/94 [==============================] - 0s 2ms/step - loss: 2.1259 - distribution_lambda_loss: 0.8294 - distribution_lambda_1_loss: 1.2965 - val_loss: 2.1056 - val_distribution_lambda_loss: 0.8199 - val_distribution_lambda_1_loss: 1.2857\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": 23,
"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": 24,
"id": "c2674211",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.14232313843838407\n",
"0.16748424431848907\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.13031966791602223\n",
"0.15463784705801664\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiwAAAGdCAYAAAAxCSikAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB2SElEQVR4nO3dd1hUV/oH8O/QBkR6RxFRwR7EjrEXEI3RxESjWZNsySaxRU3TlE2y2Q3p2Vhidn+bNcmqaBJF3diNihpLNBS7WFCwANKbtJn7+2PgMu0OM8gwM/D9PA8PMHPv5dy5w5z3nvOec2SCIAggIiIismJ2li4AERERUWMYsBAREZHVY8BCREREVo8BCxEREVk9BixERERk9RiwEBERkdVjwEJERERWjwELERERWT0HSxeguSiVSty+fRtubm6QyWSWLg4REREZQRAElJaWIjg4GHZ20u0orSZguX37NkJCQixdDCIiImqCrKwsdOzYUfL5VhOwuLm5AVCdsLu7u4VLQ0RERMYoKSlBSEiIWI9LaTUBS303kLu7OwMWIiIiG9NYOgeTbomIiMjqMWAhIiIiq8eAhYiIiKweAxYiIiKyegxYiIiIyOoxYCEiIiKrx4CFiIiIrB4DFiIiIrJ6DFiIiIjI6pkUsMTHx2PQoEFwc3ODv78/pk2bhkuXLmlsIwgC3nnnHQQHB8PFxQWjR4/GuXPnGj32pk2b0KtXL8jlcvTq1QuJiYmmnQkRERG1WiYFLElJSZg3bx6OHz+OvXv3ora2FjExMSgvLxe3+eijj/DZZ59h5cqVOHnyJAIDAzFhwgSUlpZKHvfYsWOYOXMm5syZg7S0NMyZMwczZszAiRMnmn5mRERE1GrIBEEQmrrz3bt34e/vj6SkJIwcORKCICA4OBiLFi3Ca6+9BgCoqqpCQEAAPvzwQzz33HN6jzNz5kyUlJRg586d4mMTJ06El5cXEhISjCpLSUkJPDw8UFxczLWEiIiIbISx9fd95bAUFxcDALy9vQEAGRkZyM7ORkxMjLiNXC7HqFGjcPToUcnjHDt2TGMfAIiNjTW4T1VVFUpKSjS+iIiIqPntOnsHz//3NyiUTW7juG9NDlgEQcCSJUswfPhw9OnTBwCQnZ0NAAgICNDYNiAgQHxOn+zsbJP3iY+Ph4eHh/gVEhLS1FMhIiIiPSprFHh761k8vzYZu85l44dTWRYrS5MDlvnz5+P06dN6u2y0l4gWBKHRZaNN3WfZsmUoLi4Wv7KyLPciEhERtTbX88oxffVRfHvsBgDguVFdMH1AR4uVx6EpOy1YsADbtm3DoUOH0LFjQ+EDAwMBqFpMgoKCxMdzc3N1WlDUBQYG6rSmNLaPXC6HXC5vSvGJiIjIgP+l3cayzWdQVlULb1cnfDojEmO6+1u0TCa1sAiCgPnz52Pz5s3Yv38/wsLCNJ4PCwtDYGAg9u7dKz5WXV2NpKQkDBs2TPK40dHRGvsAwJ49ewzuQ0RERM2rskaBZZvPYEFCCsqqajG4szd2LBxh8WAFMLGFZd68eVi/fj22bt0KNzc3sVXEw8MDLi4ukMlkWLRoEd5//32Eh4cjPDwc77//Ptq1a4fZs2eLx3nqqafQoUMHxMfHAwBefPFFjBw5Eh9++CGmTp2KrVu3Yt++fThy5EgznioRERFJuXq3DPPWJeNidilkMmD+mG54cVw4HOytY45ZkwKW1atXAwBGjx6t8fiaNWvwzDPPAABeffVV3Lt3D3PnzkVhYSGGDBmCPXv2wM3NTdw+MzMTdnYNL8CwYcOwYcMGvPnmm3jrrbfQtWtXbNy4EUOGDGniaREREZGxElNu4o3Es6ioVsC3vRM+n9kPI8L9LF0sDfc1D4s14TwsREREprlXrcBftp7FD7/dBABEd/HBF0/0g7+7c4uVwdj6u0lJt0RERGTb0nNKMW9dMi7nlkEmA14cF44FY8Nhb2d4VK+lMGAhIiJqQwRBwA+/3cRftp5FZY0Sfm5yfPFEPwzr6mvpohnEgIWIiKiNKK+qxVtbzmJzyi0AwIhwX3w+sx9821v/NCEMWIiIiNqAC3dKMG99Mq7dLYedDHgppjteGNUVdlbaBaSNAQsREVErJggCEn7Nwrv/O4eqWiUC3Z2xfFYUBod5W7poJmHAQkRE1EqVVtbg9cSz+F/abQDAmO5++HRGP3i7Olm4ZKZjwEJERNQKnb1VjPnrk3E9vwIOdjK8Etsdz47oYjNdQNoYsBAREbUigiDgv8dv4G8/XUC1QokOni5YPisKA0K9LF20+8KAhYiIqJUovleDpZtOY+dZ1dI543sG4JPHH4BnO9vrAtLGgIWIiKgVSMsqwvyEZGQV3IOjvQxL43riDw92hkxmm11A2hiwEBER2TBBEPCfX67jg50XUKMQEOLtgpWz+iMyxNPSRWtWDFiIiIhsVFFFNV7+4TT2XcgBAMT1CcQH0x+Ah4ujhUvW/BiwEBER2aDfbhRiYUIKbhXdg5O9Hd58qCfmDA1tNV1A2hiwEBER2RClUsD/Hb6Gj3dfQq1SQGefdlg5uz/6dPCwdNHMigELERGRjSgor8ZL36fiwKW7AIApkcF4/5E+cHNufV1A2hiwEBER2YBfMwqwMCEF2SWVkDvY4e0pvTFrcEir7QLSxoCFiIjIiimVAlYnXcVne9OhUAro4ueKVbP7o2eQu6WL1qIYsBAREVmpvLIqLN6YisOX8wAAj0Z1wHvT+sBV3vaq77Z3xkRERDbg6NU8vLghFXdLq+DsaIe/Tu2Dxwd0bDNdQNoYsBAREVkRhVLAiv2Xsfzny1AKQLh/e6x6sj8iAtwsXTSLYsBCRERkJXJLKrFoYyqOXs0HAMwY2BHvPtwHLk72Fi6Z5TFgISIisgKHL9/F4o2pyCurRjsne/xtWh882r+jpYtlNRiwEBERWVCtQol/7LuMVQevQBCAHoFuWDm7P7r5t7d00awKAxYiIiILyS6uxMKEFPx6vQAAMHtIJ/zloV5wdmQXkDYGLERERBZw4FIuXvo+DQXl1Wgvd8D7j/bFw5HBli6W1WLAQkRE1IJqFEp8sucS/pl0DQDQO9gdq2b3R2dfVwuXzLoxYCEiImoht4ruYcH6ZCRnFgEAno4OxbJJPdkFZAQGLERERC1g7/kcvPxDGorv1cDN2QEfTX8AcX2DLF0sm8GAhYiIyIyqa5X4cNdFfH0kAwAQ2dEDK2b1RyefdhYumW1hwEJERGQmWQUVmJ+QgrSsIgDAHx4Mw9K4HnBysLNswWwQAxYiIiIz2HX2Dl758TRKK2vh4eKITx6PxIReAZYuls0yOcQ7dOgQpkyZguDgYMhkMmzZskXjeZlMpvfr448/ljzmN998o3efyspKk0+IiIjIkqpqFXh761k8vzYZpZW1iOrkie0LhzNYuU8mt7CUl5cjMjISv//97zF9+nSd5+/cuaPx+86dO/HHP/5R77bq3N3dcenSJY3HnJ2dTS0eERGRxVzPK8f8hGScvVUCAHhuVBe8HNMdjvbsArpfJgcscXFxiIuLk3w+MDBQ4/etW7dizJgx6NKli8HjymQynX2JiIhsxU+nb2PppjMoq6qFVztHfDajH8b08Ld0sVoNs+aw5OTkYPv27fj2228b3basrAyhoaFQKBTo168f3nvvPURFRUluX1VVhaqqKvH3kpKSZikzERGRKSprFPjrT+ex/kQmAGBQZy8snxWFIA8XC5esdTFrG9W3334LNzc3PProowa369GjB7755hts27YNCQkJcHZ2xoMPPojLly9L7hMfHw8PDw/xKyQkpLmLT0REZNDVu2WYtuoXrD+RCZkMmD+mGxKeHcpgxQxkgiAITd5ZJkNiYiKmTZum9/kePXpgwoQJWLFihUnHVSqV6N+/P0aOHInly5fr3UZfC0tISAiKi4vh7u5u0t8jIiIyVWLKTbyReBYV1Qr4uDrhH0/0w4hwP0sXy+aUlJTAw8Oj0frbbF1Chw8fxqVLl7Bx40aT97Wzs8OgQYMMtrDI5XLI5fL7KSIREZHJ7lUr8Pa2s/j+1E0AQHQXH3zxRD/4u3OgiDmZLWD5+uuvMWDAAERGRpq8ryAISE1NRd++fc1QMiIioqa5nFOKeeuTkZ5TBpkMWDg2HAvHhcPeTmbporV6JgcsZWVluHLlivh7RkYGUlNT4e3tjU6dOgFQNe/88MMP+PTTT/Ue46mnnkKHDh0QHx8PAHj33XcxdOhQhIeHo6SkBMuXL0dqaipWrVrVlHMiIiJqdj+cysJbW8+iskYJPzc5vpjZD8O6+Vq6WG2GyQHLqVOnMGbMGPH3JUuWAACefvppfPPNNwCADRs2QBAEzJo1S+8xMjMzYWfXkO9bVFSEP//5z8jOzoaHhweioqJw6NAhDB482NTiERERNavyqlq8tfUsNiffAgCMCPfFZzP6wc+NaQkt6b6Sbq2JsUk7RERExrqYXYJ565Jx9W457GTAkgkRmDu6G+zYBdRsLJ50S0REZKsEQcCGk1l4Z9s5VNUqEejujOWzojA4zNvSRWuzGLAQERGpKa2sweuJZ/G/tNsAgNHd/fDZjH7wdnWycMnaNgYsREREdc7eKsb89cm4nl8BezsZXo3tjmdHdGEXkBVgwEJERG2eIAhYe/wG3vvpAqoVSgR7OGPF7P4YEOpl6aJRHQYsRETUppVU1mDpptPYcSYbADC+ZwA+efwBeLZjF5A1YcBCRERtVlpWEeYnJCOr4B4c7WV4bWIP/HF4GGQydgFZGwYsRETU5giCgDW/XEf8zguoUQjo6OWClbP7o1+Ip6WLRhIYsBARUZtSVFGNV348jb3ncwAAE3sH4sPHHoCHi6OFS0aGMGAhIqI2IzmzEAvWp+BW0T042dvhjck98VR0KLuAbAADFiIiavWUSgH/PnINH+26hFqlgFCfdlg1uz/6dPCwdNHISAxYiIioVSsor8bLP6Rh/8VcAMBDDwQh/tG+cHNmF5AtYcBCRESt1snrBViYkII7xZVwcrDDO1N6Y9bgEHYB2SAGLERE1OoolQJWJ13FZ3vToVAK6OLrilVP9kfPIC6Oa6sYsBARUauSV1aFxRtTcfhyHgDgkagO+Nu0PnCVs8qzZbx6RETUahy7mo8XN6Qgt7QKzo52+OvDffD4wI7sAmoFGLAQEZHNUygFrNx/BV/8nA6lAIT7t8eqJ/sjIsDN0kWjZsKAhYiIbFpuaSUWbUjF0av5AIDHB3TEu1N7o50Tq7jWhFeTiIhs1pHLeVi0MQV5ZdVo52SPv03rg0f7d7R0scgMGLAQEZHNqVUo8cXPl7HywBUIAtAj0A0rZ/dHN//2li4amQkDFiIisinZxZVYuCEFv2YUAABmDe6Et6f0grOjvYVLRubEgIWIiGzGwUu5WPJ9GgrKq+HqZI/46Q/g4chgSxeLWgADFiIisno1CiU+3ZOOr5KuAgB6B7tj5ez+CPN1tXDJqKUwYCEiIqt2u+geFiSk4LcbhQCAp6JD8fqknuwCamMYsBARkdXadz4HL/+YhqKKGrjJHfDhYw9gUt8gSxeLLIABCxERWZ3qWiU+2nUR/z6SAQB4oKMHVs7qj04+7SxcMrIUBixERGRVsgoqMD8hBWlZRQCAPzwYhqVxPeDkYGfZgpFFMWAhIiKrsetsNl75MQ2llbVwd3bAJ49HIqZ3oKWLRVaAAQsREVlcVa0C8Tsu4puj1wEAUZ08sWJWFDp6sQuIVBiwEBGRRd3IL8f89Sk4c6sYAPDcyC54ObY7HO3ZBUQNGLAQEZHF/HT6NpZuOoOyqlp4tXPEpzMiMbZHgKWLRVaIAQsREbW4yhoF3vvpPNadyAQADOrsheWzohDk4WLhkpG1Mrm97dChQ5gyZQqCg4Mhk8mwZcsWjeefeeYZyGQyja+hQ4c2etxNmzahV69ekMvl6NWrFxITE00tGhER2YBrd8vwyJdHse5EJmQyYN6Yrkh4diiDFTLI5IClvLwckZGRWLlypeQ2EydOxJ07d8SvHTt2GDzmsWPHMHPmTMyZMwdpaWmYM2cOZsyYgRMnTphaPCIismJbUm7hoRVHcOFOCXxcnfDt7wfjldgecGC+CjVCJgiC0OSdZTIkJiZi2rRp4mPPPPMMioqKdFpeDJk5cyZKSkqwc+dO8bGJEyfCy8sLCQkJRh2jpKQEHh4eKC4uhru7u9F/m4iIzO9etQLvbDuHjaeyAABDu3jjiyeiEODubOGSkaUZW3+bJaQ9ePAg/P39ERERgWeffRa5ubkGtz927BhiYmI0HouNjcXRo0cl96mqqkJJSYnGFxERWZ/LOaWYuuoINp7KgkwGvDguHOv+NJTBCpmk2ZNu4+Li8PjjjyM0NBQZGRl46623MHbsWPz222+Qy+V698nOzkZAgGZWeEBAALKzsyX/Tnx8PN59991mLTsRETWvH05l4S9bz+FejQJ+bnJ8MbMfhnXztXSxyAY1e8Ayc+ZM8ec+ffpg4MCBCA0Nxfbt2/Hoo49K7ieTyTR+FwRB5zF1y5Ytw5IlS8TfS0pKEBISch8lJyKi5lJeVYu3tp7F5uRbAIDh3Xzx+cx+8HPTf+NK1BizD2sOCgpCaGgoLl++LLlNYGCgTmtKbm6uTquLOrlcLtliQ0RElnMxuwTz1iXj6t1y2MmAJRMi8MLobrC3k74JJWqM2dOy8/PzkZWVhaAg6eXAo6OjsXfvXo3H9uzZg2HDhpm7eERE1EwEQcCGXzMxdeUvuHq3HAHuciQ8OxTzx4YzWKH7ZnILS1lZGa5cuSL+npGRgdTUVHh7e8Pb2xvvvPMOpk+fjqCgIFy/fh2vv/46fH198cgjj4j7PPXUU+jQoQPi4+MBAC+++CJGjhyJDz/8EFOnTsXWrVuxb98+HDlypBlOkYiIzK2sqhavbz6DbWm3AQCjIvzw2YxI+LRnSzg1D5MDllOnTmHMmDHi7/V5JE8//TRWr16NM2fO4LvvvkNRURGCgoIwZswYbNy4EW5ubuI+mZmZsLNraNwZNmwYNmzYgDfffBNvvfUWunbtio0bN2LIkCH3c25ERNQCzt0uxvz1KcjIK4e9nQyvxHbHn0d0gR1bVagZ3dc8LNaE87AQEbUsQRCw9kQm3vvpPKprlQj2cMaK2VEYEOpt6aKRDTG2/uZaQkREZLKSyhos23QG28/cAQCM7+mPjx+LhJerk4VLRq0VAxYiIjLJ6ZtFmL8+BZkFFXCwk2FpXA/8cXiYwakoiO4XAxYiIjKKIAhY88t1xO+8gBqFgI5eLlg5uz/6hXhaumjUBjBgISKiRhVX1OCVH9Ow53wOACC2dwA+eiwSHi6OFi4ZtRUMWIiIyKCUzELMX5+CW0X34GRvhzcm98RT0aHsAqIWxYCFiIj0UioFfH0kAx/uuohapYBQn3ZYOas/+nb0sHTRqA1iwEJERDoKy6vx0g9p2H8xFwAw+YEgxD/aF+7O7AIiy2DAQkREGk5dL8CChBTcKa6Ek4Md3p7SC7MHd2IXEFkUAxYiIgKg6gL66tBVfLonHQqlgC6+rlg5uz96BXMyTrI8BixERIS8sios+T4Nh9LvAgCm9QvG3x7pi/ZyVhNkHfhOJCJq445fy8fChBTkllbB2dEOf324Dx4f2JFdQGRVGLAQEbVRCqWAVQeu4B/70qEUgG7+7bFqdn90D3RrfGeiFsaAhYioDcotrcTijan45Uo+AOCxAR3x16m90c6J1QJZJ74ziYjamF+u5OHFDanIK6uCi6M9/jatD6YP6GjpYhEZxICFiKiNqFUosfzny1hx4AoEAege4IZVT/ZHN//2li4aUaMYsBARtQE5JZVYkJCCXzMKAACzBofg7Sm94exob+GSERmHAQsRUSt38FIulnyfhoLyarg62eP9R/tiar8Oli4WkUkYsBARtVK1CiU+3ZuO1QevAgB6Bblj1ZP9EebrauGSEZmOAQsRUSt0u+geFiak4NSNQgDAnKGheGNyT3YBkc1iwEJE1Mr8fCEHL/2QhqKKGrjJHfDhYw9gUt8gSxeL6L4wYCEiaiWqa5X4ePdF/N/hDADAAx09sHJWf3TyaWfhkhHdPwYsREStQFZBBRYkpCA1qwgA8PsHO2NpXA/IHdgFRK0DAxYiIhu3+1w2XvkhDSWVtXB3dsDHj0citnegpYtF1KwYsBAR2aiqWgXid1zEN0evAwD6hXhi5ewodPRiFxC1PgxYiIhs0I38csxfn4Izt4oBAH8e2QWvxHaHo72dhUtGZB4MWIiIbMz203ewdNNplFbVwrOdIz6bEYmxPQIsXSwis2LAQkRkIyprFPjb9vNYezwTADAw1AvLZ0Uh2NPFwiUjMj8GLERENuDa3TLMW5+CC3dKAABzR3fFkgkRcGAXELURDFiIiKzc1tRbeH3zGZRXK+Dj6oTPZvbDqAg/SxeLqEUxYCEislL3qhV493/nsOFkFgBgaBdvfPFEFALcnS1cMqKWx4CFiMgKXcktxbx1KbiUUwqZDFgwNhwvjguHvZ3M0kUjsgiTOz8PHTqEKVOmIDg4GDKZDFu2bBGfq6mpwWuvvYa+ffvC1dUVwcHBeOqpp3D79m2Dx/zmm28gk8l0viorK00+ISIiW/fjbzcxZcUvuJRTCt/2cqz94xAsmRDBYIXaNJMDlvLyckRGRmLlypU6z1VUVCA5ORlvvfUWkpOTsXnzZqSnp+Phhx9u9Lju7u64c+eOxpezM5s9iajtqKiuxUvfp+HlH9Jwr0aBB7v5YMeLw/FgN19LF43I4kzuEoqLi0NcXJze5zw8PLB3716Nx1asWIHBgwcjMzMTnTp1kjyuTCZDYCCnkiaitulSdinmrvsNV++Ww04GLB4fgbljurFVhaiO2XNYiouLIZPJ4OnpaXC7srIyhIaGQqFQoF+/fnjvvfcQFRUluX1VVRWqqqrE30tKSpqryERELUYQBGw8mYW3t51DVa0SAe5yfPFEFIZ28bF00YisilkH8FdWVmLp0qWYPXs23N3dJbfr0aMHvvnmG2zbtg0JCQlwdnbGgw8+iMuXL0vuEx8fDw8PD/ErJCTEHKdARGQ2ZVW1WLQxFUs3n0FVrRKjIvywY+EIBitEesgEQRCavLNMhsTEREybNk3nuZqaGjz++OPIzMzEwYMHDQYs2pRKJfr374+RI0di+fLlerfR18ISEhKC4uJik/4WEZElnLtdjAXrU3Atrxz2djK8HNMdz43sAjt2AVEbU1JSAg8Pj0brb7N0CdXU1GDGjBnIyMjA/v37TQ4g7OzsMGjQIIMtLHK5HHK5/H6LSkTUogRBwNoTmXjvp/OorlUiyMMZK2ZFYWBnb0sXjciqNXvAUh+sXL58GQcOHICPj+lNm4IgIDU1FX379m3u4hERWUxJZQ2WbT6D7afvAADG9fDHJ49HwsvVycIlI7J+JgcsZWVluHLlivh7RkYGUlNT4e3tjeDgYDz22GNITk7GTz/9BIVCgezsbACAt7c3nJxU/5RPPfUUOnTogPj4eADAu+++i6FDhyI8PBwlJSVYvnw5UlNTsWrVquY4RyIiiztzsxjz1icjs6ACDnYyLI3rgT8OD4NMxi4gImOYHLCcOnUKY8aMEX9fsmQJAODpp5/GO++8g23btgEA+vXrp7HfgQMHMHr0aABAZmYm7Owa8n2Liorw5z//GdnZ2fDw8EBUVBQOHTqEwYMHm1o8IiKrIggCvj16He/vuIhqhRIdPF2wcnYUojp5WbpoRDblvpJurYmxSTtERC2luKIGr25Kw+5zOQCAmF4B+PixSHi0c7RwyYish0WTbomI2rqUzELMX5+CW0X34GRvh9cn9cDTwzqzC4ioiRiwEBE1I0EQ8O/DGfhw10XUKgV08m6HVbP7o29HD0sXjcimMWAhImomheXVePmHNPx8MRcAMLlvEOKn94W7M7uAiO4XAxYiomZw6noBFiak4HZxJZwc7PCXh3rhySGd2AVE1EwYsBAR3QelUsBXh67i0z3pUCgFhPm6YuXsKPQOZhcQUXNiwEJE1ET5ZVVY8n0aktLvAgCm9gvG3x/pi/ZyfrQSNTf+VxERNcGJa/lYuCEFOSVVkDvY4a9Te2PGwBB2ARGZCQMWIiITKJQCvjxwBZ/vS4dSALr5t8eq2f3RPdDN0kUjatUYsBARGeluaRUWbUzBL1fyAQDT+3fEe9N6o50TP0qJzI3/ZURERvjlSh5e3JCKvLIquDja471pffDYgI6WLhZRm8GAhYjIAIVSwBc/X8aK/ZchCED3ADesejIK3fzZBUTUkhiwEBFJyCmpxMKEFJzIKAAAPDEoBG9P6Q0XJ3sLl4yo7WHAQkSkR1L6XSzZmIr88mq4Otnj/Uf7Ymq/DpYuFlGbxYCFiEhNrUKJT/emY/XBqwCAnkHuWDU7Cl382lu4ZERtGwMWIqI6t4vuYWFCCk7dKAQAzBkaijcm94SzI7uAiCyNAQsREYD9F3Ow5Ps0FFXUwE3ugA+mP4DJDwRZulhEVIcBCxG1aTUKJT7efQn/OnQNANC3gwdWzo5CqI+rhUtGROoYsBBRm3WzsALz16cgNasIAPDMsM5YNqkH5A7sAiKyNgxYiKhN2n0uG6/8kIaSylq4Ozvg48cjEds70NLFIiIJDFiIqE2pqlXgg50XseaX6wCAfiGeWDErCiHe7SxbMCIyiAELEbUZmfkVmLc+GWduFQMAnh0Rhldie8DJwc7CJSOixjBgIaI2YceZO3jtx9MoraqFZztHfPp4JMb1DLB0sYjISAxYiKhVq6xR4O/bL+C/x28AAAaGemH5rCgEe7pYuGREZAoGLETUamXklWPeumScv1MCAJg7uisWT4iAoz27gIhsDQMWImqVtqbewuubz6C8WgFvVyd8PrMfRkX4WbpYRNREDFiIqFWprFHg3f+dQ8KvWQCAIWHeWD4rCgHuzhYuGRHdDwYsRNRqXMktw7x1ybiUUwqZDFgwphsWjguHA7uAiGweAxYiahU2/XYTb245i3s1Cvi2l+MfM/theLivpYtFRM2EAQsR2bSK6lr8Zes5/PjbTQDAg9188PnMfvB3YxcQUWvCgIWIbFZ6TinmrUvG5dwy2MmAReMjMG9MN9jbySxdNCJqZgxYiMjmCIKA709l4e1t51BZo4S/mxzLZ0VhaBcfSxeNiMzE5Ey0Q4cOYcqUKQgODoZMJsOWLVs0nhcEAe+88w6Cg4Ph4uKC0aNH49y5c40ed9OmTejVqxfkcjl69eqFxMREU4tGRG1AWVUtFm9MxWubzqCyRomREX7Y8eIIBitErZzJAUt5eTkiIyOxcuVKvc9/9NFH+Oyzz7By5UqcPHkSgYGBmDBhAkpLSyWPeezYMcycORNz5sxBWloa5syZgxkzZuDEiROmFo+IWrHzt0vw8Ioj2JJ6G/Z2Mrw6sTu+eWYQfNvLLV00IjIzmSAIQpN3lsmQmJiIadOmAVC1rgQHB2PRokV47bXXAABVVVUICAjAhx9+iOeee07vcWbOnImSkhLs3LlTfGzixInw8vJCQkKCUWUpKSmBh4cHiouL4e7u3tRTIiIrJAgC1p3IxF9/Oo/qWiWCPJyxfFYUBnX2tnTRiOg+GVt/N+vkBBkZGcjOzkZMTIz4mFwux6hRo3D06FHJ/Y4dO6axDwDExsYa3KeqqgolJSUaX0TU+pRW1mB+Qgre3HIW1bVKjOvhjx0LRzBYIWpjmjVgyc7OBgAEBGiugBoQECA+J7WfqfvEx8fDw8ND/AoJCbmPkhORNTpzsxgPrTiC7afvwMFOhjcm9cS/nx4IL1cnSxeNiFqYWaZ/lMk0hxQKgqDz2P3us2zZMhQXF4tfWVlZTS8wEVkVQRDwzS8ZmL76KG7kV6CDpwu+fz4az47s0uhnCRG1Ts06rDkwMBCAqsUkKChIfDw3N1enBUV7P+3WlMb2kcvlkMuZaEfU2hTfq8FrP57GrnOqz4SYXgH4+LFIeLRztHDJiMiSmrWFJSwsDIGBgdi7d6/4WHV1NZKSkjBs2DDJ/aKjozX2AYA9e/YY3IeIWp/UrCJMXn4Yu85lw9Fehren9MI/5wxgsEJEprewlJWV4cqVK+LvGRkZSE1Nhbe3Nzp16oRFixbh/fffR3h4OMLDw/H++++jXbt2mD17trjPU089hQ4dOiA+Ph4A8OKLL2LkyJH48MMPMXXqVGzduhX79u3DkSNHmuEUicjaCYKAr49k4IOdF1GrFNDJux1Wzo7CAx09LV00IrISJgcsp06dwpgxY8TflyxZAgB4+umn8c033+DVV1/FvXv3MHfuXBQWFmLIkCHYs2cP3NzcxH0yMzNhZ9fQuDNs2DBs2LABb775Jt566y107doVGzduxJAhQ+7n3IjIBhRVVOPlH9Kw70IuAGBS30B8MP0BuDuzVYWIGtzXPCzWhPOwENme324UYMH6FNwuroSTgx3eeqgXfjekExNridoQY+tvriVERC1OqRTwz0PX8MmeS1AoBYT5umLl7Cj0DvawdNGIyEoxYCGiFpVfVoWXfkjDwUt3AQBT+wXj74/0RXu59MdReno6rl69im7duiE8PLylikpEVoQBCxG1mBPX8rFwQwpySqogd7DDuw/3xsxBIZJdQAUFBZj9u9nYvXO3+FhsXCwS1iXAy8urpYpNRFaAAQsRmZ1CKeDLA1fw+b50KAWgq58rVj3ZHz0CDeebzf7dbOw7tA94FEAogBvAvt37MOvJWdi1Y1eLlJ2IrAMDFiIyq7ulVVi8MRVHruQBAKb374j3pvVGOyfDHz/p6emqlpVHATxQ9+ADgEJQYHfibly+fJndQ0RtCAMWIjKbo1fy8OLGVNwtrYKLoz3em9YHjw3oaNS+V69eVf0QqvVEZ9W3K1euMGAhakMYsBBRs1MoBXzx82Ws2H8ZggBEBLTHqtn9ER7g1vjOdbp27ar64QYaWlgA4LrqW7du3ZqruERkAxiwEFGzyimpxIsbUnD8WgEA4IlBIXh7Sm+4ONmbdJyIiAiMHTcWB3YcgFAiAO0BlAOywzKMGT+GrStEbQwDFiJqNofS72LxxlTkl1fD1cke7z/aF1P7dWjy8WpqayBUC8C+hscEOwE1NTXNUFoisiUMWKjV4xwe5lerUOKzven48qAq76RnkDtWzY5CF7/2erffvXs3Tpw4gejoaEyYMEHvNunp6Th86DAgBzAJ4igh7AAOHzrMpFuiNoYBC7VaLTGHhzEVb73WGjjdKb6HhQkpOHm9EADwu6Gd8ObkXnB21O0Cunr1KoZED0H+3XzxMR8/H5w8cRJhYWEa2yYlJQECVMGK2ighCAASVc+3ptfRXFrr+47aHgYs1GqZcw4PUyre1jz52YGLuVjyfSoKK2rQXu6AD6b3xUMPBEtuPyR6CPJL8jWuSf72fAwaMgh5uXn6d5IYJUSGteb3HbVNXPyQWqX09HR0795dcw4PAEgDkKh6/n7uNn39fVUV72Q0dFVsB3zcfXQq3omTJmLfoX1QxCrEbe1322P8yPE2O/lZjUKJT3Zfwj8PXQMA9O3ggZWzoxDq4yq5z+7duzFx4kTJa7Jnzx6NVipzX8PWbuz4sTiQdACoVXvQARg7eix+3vuz3n3YGkOWYGz9bdeCZSJqMcbM4dFUu3fvVrWsTIaqIvWo+z4JyL+bj71794rb1k9+pohVaGyriFFg907V5Ge25mZhBWb885gYrDwzrDN+fCHaYLACACdOnFD9IHFNjh07pruTDMB2qIKU4rrvO+oeJ0np6ek4sP+Aqg39UQCL6747APt/3q/zvisoKMDESRPRvXt3TJo0CREREZg4aSIKCwstUHoi/RiwUKukMYeHuuuqb/czh4cpFa85AydL2HMuG5OXH0FKZhHcnR3w1e8G4J2He0Pu0PiQ5SFDhqh+kLgm0dHRGg+LOSy1ABIBfF73vRaAUPc86aWT/1MfVMdB72un0X1aF9zsO6TqPiWyFsxhoVYpIiICsXGx2Ld7HxSCQhUgXAfs99hjfNz4+2ru1qh49Uxopl7xtpbJz6prlYjfeQFrfrkOAIgM8cTKWVEI8W5n9DFiY2Ph4+eD/O35qsq0M1Svww5V/o920vK5c+dUP0wF0AFAAQBvADcBJKo9T9KMyP/hEghkKxiwUKuVsC4Bs56chd2JDUmH4+PGI2Fdwn0dNzY2Fo5yR9Rsr9GpeB3ljhoVrzkDp5aSmV+B+QnJOH2zGADw7IgwvBLbA04OpjfQnjxxEoOGDEJ+om6ysjalUqn6IRSqFgKfuicctJ7XwjwMYNSoUaofJAJl8XlwCQSyHQxYqNXy8vLCrh27cPnyZVy5cqXZKrD09HTUVNUAgVB1UdQLAGpyanTuSM0VOKmXx1wV9I4zd/Daj6dRWlULz3aO+OSxSIzvFdDk44WFhSEvNw979+7FsWPHDA4HDwio+zs3AAQDKERDCwuAoKAgje1bYlSMrQRDERER8Pb1RsH2Ap2g2tvXW6PsraUV0NJs5b1hyxiwkE0y5cOhuQfCiXeks6DKp6jvqnAA8LnuHam5BuKZs4KurFHg79sv4L/HVQknA0K9sHxWFDp4utzXcetJtY6oUygUqh+2AlCoPVGXLlNdXa2xvTmHsdvaEOH09HQU5BXoDaoLcgo0gurW0ApoSbb23rBpQitRXFwsABCKi4stXRQyo/z8fCE2LlaA6r5RACDExsUKBQUF97VtvUuXLgk7duwQ0tPTDW4DQMCjEPCO2tcjqr+hvW9sXKxg72qv2n6xaj97V3shNi626S+EGY977W6ZMOmLQ0Loaz8Joa/9JMTvuCBU1yoa3c+Y1+7KlSuCj5+PxjXx8fMRrl27prPtrl27BMggQA6Nc4QcAmQQ9uzZo/G3TbkmpjLXa20uO3bsUL0eiyFgAQQ8Wfd9ser12LFjh8b2BQUFZvlfsXXGnKOtvTeskbH1NwMWsimmfDiYsq2pwY147Efqjv2I/mObqyI113G3pt4Ser21Uwh97Sch6q97hAMXcxrdx5TXzsfPRxVwTICAaRAQowpAfPx8DJ/jkxAwGgLm6D9HjQpa/fWQqKBNYe5gyByaWub09PRGK+im3AjYGmPP0RbfG9bI2Pqbw5rJZpgyp4mp85+YOqwzYV0Cxo8crzHcdvxI3bwUcw1rbu7jVtYosGzzGSxMSEF5tQKDw7yxY+EIjO7u3+i+xr524vw1XgD2AtgCYA8AT935awC1obe7AKwDcBDAfwHs1noeWnkYeQAuA8hHs+RhaLzWl+vKcRVWPTQ9IiICPn4+euew8fHzkezmCQ8PR1xcnMFuoLYwBNrYc9R4b6i/7zqrHrbG94YtYw4L2QxTRjOYsm1ThnUKRualaFSkLgBuAQgBUKZ6WKoibSxHR+O4ehJSTamgr+SWYf76ZFzMLoVMBswf0w0vjguHg33j9zOmvHYnTpxQTfhWDI08E+wEIFPNX6OTgCuDKn9lAgBXABUAkqAzcVxERATGjBuDA9v0zOw6fux95WGIr/VqAJVqT8hV36wxKTU9PV0VHDpDM4dFrgoOmzpUuS0MgTblHMX3RgKAbLWD1OWLW+N7w5YxYCGbYcpoBlO21QhufqvbpkvdF/QP64yNi8WptFPAMKgajO2A3ft3Y2LcRJw4fkLcLiIiAh5eHijeUgyo55naAR5eHjrHNTaBLyIiAiNGjsDhrYd1ElJHjBphdKWxOfkm3txyFhXVCvi2l+MfM/theLivUfsCpgWG9vb2qtcqDnoXM3RyctI4RG5uruq5+haZegEAcoC8PM0lEGQyGWQOMggPC2IwJNtx/1PiRkREqIaxCzWagdZ21TB2a6ygr169qgrqZAD6QxXotQNwQfVYU4cqt9QQaEuOuDHlHOtbsvIL83XeG4Zasqhp2CVENqN+NIP9bnuNZm77PfaIjYvV/XAwclp3MbhZDuB/AM5ANTJlueph7buk9PR0nPr1lOo4RwEcA/CL6rlfT/yq0zVVXFQMOEJzinRHoLio+L66ps6dP6d36vXGJlRLT0/Hlp924LmvD2PJ92moqFZgWFcf7HhxuEnBCmDajMLiqB+JikB71M9PP/2k2SJTf44lAGTA1q1bNc5p/779ECYJGl2AQpyA/ft0p6I3xe7du1XD2CdD1UqWAlVrzySgpqpGpyvLGtjZ2TVkXyQDuFj3Xal6zMGhafeq5pxBGrCOJQJMOUexJUtimQ5bXHrDmjFgIZvy/t/eh12tnUbuiF2tHT54/wON7a5evar6sK6B5rTuNQAEzb7liIgIVcXoAFXXwzQAMXW/y6ATCP39739X/aBZv6qODeD9998XH/r+++9V5dDzgQah7vk6puTd7N69WzVsVc9xC/IK9Fai9ZVBnwcnYO6W69h9uQQQlHh+eAj++8ch8Hdz1tmnMaYEkaZOzV9YWKjZIlN/jhMBCEBRUZG4rTmXQBCXYpDIpdG7BpKFKZVK1XtagGawBwAyoLa2VnJfQ0y+aTCRNeTHmHKOrW3pDWvHgIVsSszEGNSgBngQQDSAB4Ea1GB8zHiN7W7fvq36wHaCKviYVvfdCYAMyMnJEbddvHixZtfDFojJoBCAl19+WePYhw4dUh1bT6sJZHXP1zl16pTqB4kPNPF5mJbc2ZSFBGf9bjaO3hUQ+PvP4OQbitrafNzd8hYOfvkq7O2a3nVibBBZPzU/tgM4AiAVqpYpian5nZ2dDZ6ji0vDnDDmvPMfMmRIQy6N+vVWAJDpBlrW4Pbt2wYDZfX3v6mMTTg3lTUtFGrsOZq7xYk0MYeFbIY4yiQQYhcMACAAyM9RjTKpr/QOHjyoufhbPVcAicCBAwfwzDPPAAC+/vprg8mg//rXv/DJJ5+Ih7h3715DZRAMIBeqtW4mqY5dUVEhbuvm5qb6QSKXRn0pdVOSOzt06GDwuJ06dYK6tHMX8Zt9H3iPG6M6B7tk5LX/FMrexdidmHZfyZJiEBkDVZ5EBVCTpAoi83I180x+/P5HjB0/FsK+hqRlmb0Mm3/crHPcqqoqg+dYWVmpuYMMqi6/O2q/J8Pgys7G5ErcvHlTs/IHNHJvbt26Jf0HLEQsk0Swl5mZ2eRjm2sGaWtaIsDYc4yIiMDYcWNxYMcBVSJ+ZwDXAdlOGcaMH8MclmbGFhYym/T0dOzcubPZ7ozEVoW7Wk/U1YnqrQoyWV0tJfHhp66srMxg10NZWZnG9uKxUwCshKqbYAVULQZaRo8ebTCXZsyYMeK29cmd+prxtZM7xSZ/ieOqN/mfv12CZ3+8iva9x0AQFCh0+Ba5Tm9DKSu+76ZrMYicDFUCcr+675P0D1We/vh0CA6CxvkJDgIemf6IzrELCwsNnqN6XoPYBVgLVU7RMajyi+pWdtY+P1NyJcRcGYn3UmJiIqyNqd1vTWHMEGhTWGNrhVHnKAOEWkGjNUaoNW4UIZmGAQs1O3MlznXo0MFgV4x6q4LG4m/qrqu+qQcKdnZ1/wYSFZL4fB1PT09VOe5oleOOqhzqo3mCg4MbKlL1XJq6ilRcLwdayZ1azfh6kzsF1d/TOG7941ANvV534gamffkLcu8BtaV5yLm5DCXFPwBXhGaZp8SUrimNvButlil9eTclJSUNXXXq5+ipOsfi4mJx265du6peC3toXhN7ADLd8zMlV6JLl7rhYhLvJfF5KxIbGwuZvUxvsCezl0mu32RJ5s6PMYf6ZG88DGABgCfrvk/BfSd7ky4GLNTszJU4d+fOHc1unvoKPQ6AoNk0f+bMGYN352lpaeK2vr51I2NuQO+kY35+fhrlcHZ2NlgOMfcCQHJysuqHqQB+B2A0gDlQfcBBsxymVP6jRo1qSKocBlU+z7C6J2XAwOjhWJCQgjcSz6K6VomxPfwRenE9qjae12wV2mbaMGhtGl1T6q6rvqkHkdu3b1f9INEy9dNPP2kcQlxvaBY0X7vZqofV58LJyMgwmLNx/fp1cVtTcyXi4uIMvpcmTZok9fJYzO7duyEoBL0BraAQJEc2NXerqKnMlR9jLhrdWD4Awuu+d1Y9zKTb5tXsOSydO3fGjRvan17A3LlzsWrVKp3HDx48qHG3W+/ChQvo0aNHcxePzMycE0vl5uaqfpCo0MXnAZw+fVpVgQVDc+KsMAAZdQFNHbGLZyv0LrKnTaz8JMqRkZEhPiQGISmqv6tRDmgGIRrN+HpyNnSa8etbbo5qltnJvyvmbsnE7dIaONjJ8OrE7vjT8C7weelX1X/8VGjMF6H+WpgqODi4oTIXoLEqMGSaLUjFxcWaLVP1ZajbtqSkROPYnp6equRQiUm5PD09xYeMCfbqWxVMzZXIzMxUnZs9NN9L7VTnrO/zztLE1+MFqILwLKgmLPQF8LnuJH3mXsDP2HlVzJUfYy5c6bplNXvAcvLkyYb5FgCcPXsWEyZMwOOPP25wv0uXLmkkIGrf1ZJtMGfiXGRkpOoHiQ+HqKgo8aGQkJC6BwH0hSpY6AJVm2IG0LFjR3Hbu3fvNgxr1qrMoax7Xs29e/cMlkM9GdTe3r5hW3U3tJ4HEBYW1pA4ql751yX/du7cWdxWnJZ+KlQV500AIYCbw0Pw8v4jbpfWoIOnC1bMjkL/Tl7YvXs3igqKdAJJCEBRYpFGwrIpunbtqtnlJZ646tjqH9hFRUW6idBqyavqw5QBVeWVk5MjmbOkXpGakoTc5EpmIlRJ2/WVfxk0z7mFGFP567wedaeMugY97aRssVVUbUbh+lbR+1npuqmBUHh4uFUHKvW40nXLavaARTvQ+OCDD9C1a9eGnAIJ/v7+GndMZJvMecch3s1LVOjqd/PDhw/Hd999pxqiXD/D7BmInaDDhw8XtxUDbIlRIOoBOFCX0yKr+7vq5dilKofYYoO6bov6vJvJ0AyGqjW7NcTE0SDobRXSG+zVtdzI5K7w8VwI1+4PAgAiXCvxw8IYeLRzBKDWHRMKVYVfCNVU/p1VD//00096A5bdu3fjxIkTiI6O1vt8REQEvHy8UFikm5/k5eOlUd7GEqG1lzsQk24doRlI7gCgVFWG9Uxp6TG1khG737ZDFWxFaR67sc+25mJK5W/K6yG2igZCY0ZhRUBDF1lTK15zBULWJGFdAmY9OQu7Exuuy/g46+3GsmVmHdZcXV2NtWvXYsmSJRof4vpERUWhsrISvXr1wptvvqm3m0hdVVVVw7BH6DYnk2U09Y6jsYoRULub94RmhV43Vbt6MNSpUyeDgUJoaEOtKZPJVJWlREWq/d5VKpUNs4iql0Oueky94hWnl5cYAq0+H4YY7EUBeAhAARrWB8qQOL/bgNPUCPh1eRUOToEQFDUoPLgGL/99nhisAGqJwxLdK9qJxVevXsWQ6CGqEUB1fPx8cPLESVVLUJ309HQUFhSqzl0rqCgsKNSo7Dw8PFQ7SQSz2jcsVVVVBltk1GfGFWd2rZ8oUHwCemd2NaWSiYiIgJd3XVCm1Yrk5e3VYnfRplT+prR8ia2iudBU17LV1FZRcwZC1sTWurFsmVkDli1btqCoqEic70KfoKAg/Otf/8KAAQNQVVWF//73vxg3bhwOHjyIkSNHSu4XHx+Pd9991wylpvtlSmVgbMUIqAVDh/ZBMUwhjpKxT9MNhr766iuDc2esXr1aDIzEAEOiItW+8xcD5Rqtk6kbSazeJSSOjEoBoD7VSJjW8/XU7+Q7Q+OuWN369esBAXB7cCq8wp+BzN4RNUXZyDv8IarPX8b69V6IiYkRtxcTiyW6V8Tn6wyJHoL8Es31UfK352PQkEEac6skJSUZDCqSkpLE6yK2Nkm0TGm/zjU1dS9wKFSJ0PULR3bWeh5qw7wdAYyCOB8MkgBU687sWl/J7NmzB8ePHzcYKKenp6Mwv1BV8aoHe75AYU5hi1S8Ta78p0IVIKsHv1rdWGKLoURw39Rp/MX1jIqhd36jlpxXpSXYSjeWLTNrwPL1118jLi5O1TwpoXv37ujevbv4e3R0NLKysvDJJ58YDFiWLVuGJUuWiL+XlJQ05C2QRZlyx2FsxVjvy5VfYvDQwcg/2hDgePp5YvWq1RrbiTkeEpXdwYMHNQ9soCKFZj3asL1EV4X69mVlZQYTTcvLy8VtxWn864fx1qtrQfr+++/xxhtvAACOJ5+G36Nvol34UABAufII8vOXQ8ioAGRqSZd1Ghv1oT6aQZxbRU++S35ivv58F4nWKXXe3t6q8/PQc3736p5XIwYZEhPpqQcsGjO71q9eHQJxokDtmV1N6V7RqHjVWjdwGC1W8Zpa+Wu8/9UD684Nz9dvf/LkSYPB/a+//tqk/Cax1UtiscumBkLWypILNrYVZnvH3LhxA/v27cPmzbozWDZm6NChWLt2rcFt5HI55HJ5U4tHLaCxO46mVIxz589FUUWRxod20e4ivDDvBY1mcTExVqKy05kl1UBFqpeBVgV14qy4k6DZJRSn2lYsJ9RGOc2CqrWm/q7YAcDnDc//dqMAteNeQTtnDwjKGhTI/w9l9juAPlCNckqETqV76dIlg0HWpUuXxG1NGXGjMd+NntYp9fwOX19fVRkK0bDKtQyqFbJluq08tbW1muvhqN/5yzRbTcQh7RItWdozu2oMva877r7d+rtXxIrXA7qrRt9rmYrX1MpfDNAkugDVAzhTRt+ZQhyWLnFcQ+sZ2VLlb+4RVtTAbPOwrFmzBv7+/pg8ebLJ+6akpCAoKMgMpaKW1NicDhoVo/r8J51VD2uvh2PK/BkuLi4NlZ36goYAINOcK6X+MRSqbTsBQBEMTutuTKuCKAWNzoor/q/cgOacDtdVD0+aPBlfJV3FjH8eh8LZAzUFt3FH8RLKHHY0lLOuDOqtlgDQvn17g3PHtGvXTtzWlFlSIyIi4O3rrXeOEm9fb43KJiAgoCHPpH6V66MQF6RUTwQF6pKd1e/868tcN7eKejK0uN7PHWhe77rJ/NTLbOo8LGJ3U33rxmJorBrd1IUETdHkyl+iC1CdxvtO3XXVt4ceesioMmprysy11rBas6msYcHGtsIstwZKpRJr1qzB008/rRP5L1u2DLdu3VKN4ADwj3/8A507d0bv3r3FJN1NmzZh06ZN5igatQBj7zjEilHiLlB73hFThkyLd6Re0L0rztEcTgygIUFRfdu6BEVJNwC4oKG7qUx3E/H9r710S6bW81Ab1qxnZIddO3f8O90RJ29eBAD4VdzAb9++DOGhe3pbNsQKrs7o0aPx888/S7526knu9YsU5m/P1ymH9iKF6enpqtlrA6HTOlWQU6CRWyHmSjhBFXSot/JUGWipMDYwFKBKyNZzvdWZOvTeGro2mjT6zsBQfXWxsbHw9vVGwfYCnevt7evd5Flxm5KAb0rLlzUw57xTpMss/2n79u1DZmYm/vCHP+g8d+fOHY3m2erqarz88su4desWXFxc0Lt3b2zfvt0qZ48k4xj7oRMbGwtHuSNqCmt0mvwd5Y46H5SmfGiLuSMSff7a6wMB0JnTpNF5NrZA88NfT3ulQqEwWHGo3xlL5bDI+/aG74hXcfJmBeQOdnjn4d44vn4vTtXcUx2nBEB7AOUADqnOTzsfRGyxlHjtxHk76pw8cRKDhgxCfqJuMrQ6sfKX6MZSr/wTEhIMdqWtW7dOf4K+RJnVrV692uD1XrVqlfh+EkdESRxXOwA5ebLunOtbAguhMSS8qTkepoiIiMCIUSNwePthnaBi5KiR+itFA3kp2k79esqo620qUxLwbbHyt6YFG9sCswQsMTExOhn/9b755huN31999VW8+uqr5igGWYApHzrp6emqtXP05LDUJNbofECZcscmjuSRuCvWyWEBJGejlaTdXaSn+6i2ttbgsGb1bo309HTVD7Ogasq/KYN7z8fh6fYkZDJ7tKstweZFk9Ej0B27VhU2tArtU/uDda1C2pOw3bp1y+C8HNo5HmFhYcjLzcPevXtx7NgxyVE0GkFkfWuTHcTWJvUg8ubNm6ofJD7cs7KyNB62s7ODUlBKltlO1hAhZmdnG2wFUc/ZELt4JJKstbtXDhw4oPpBoiXw4MGDYjJ0UxmTs3H27Fm9w5TPnNWdqTgvr67vR+K1zs/P13jYw8MDAwcO1GgVHThw4H3PjWVKAr4tVv6c6bZlta40bbI4Uz50mvIBZfIkTcZ2JxgYyWOwW6gRYlKtRDJoRUWF+JA4UicBsCvxhO9DS+Di3h8AUHbmZwSXpqBHoKpfPCsry2DLjXblX1hYaHAEktQ8RhMmTDDYehAREYHhI4fjyJYjOq1N2msUubi4qH6Q6EpTz6MB6oY51yfmqpe5fr4btQszdOhQVU6UxPVW714U5yiRSLLWrmQqKioacpz0JP/qba2DcUGIsd2nu3fvVg2tfhQ6w5QLEwt1EtTFgESiItUOWMw9wZsxQ35tsfLnTLctiwELNStTPnSa8gFl7PwZ4mRwEsfWmcjQwEgevYwc1lxVVaWZDFo/JLau60Z98sOCggJVQrDrA/B58mU4OHhDqaxEwb7VKE/9GQURDYm04kKQEi03t2/f1iiueMct0XWjPey3njET+p0/f17vHB7nzp3T2E5s1doCvV1p6iOmALV5WSTWw1FvxZ07dy6++OILyev9wgsviA9FRERgzLgxOJB0QPNE8oGx48fqVDIymcxg94p2PpQpo0aM7T7VSFD3gCoZGxA/wbXXBvLx8WloUWuky9BaJniz1cqfM922HAYsZJLG7hpN/tAx8KGqj7GVgZOTE6qqqySn8XdyctI9uEQriF4GcjH0buuJRpNBO4Z0QrbvAHg8+ARkMjtUy24gz+UD1HTOAlI0Z+cVp6WXKLP6tPWA1ppGD6ChwktTfdN+PYyd0G/37t2qpFs93XoFiQUad/7i9ZHoSpMcAlpfZq31cNRlZGQYXLbh+vXrOssEyBxkEB4WxEBBtkP/m07stjNyhI6xQYgp3aemLowptqjJoNllWNc6pd5l2NQJ3swx9NgWK3/OdNtyGLCQUUy5azT2Q0dcO6cGmh+qddOp6/ugNLYy0JiNVqvPH4JmywaApnUJmdLdJFEZ1B87t6QSmV2mwtNLdZBS+90odPwXBFmVeFz1bpvg4GDk3s2VLLN2Em1mZqbBHBbtFYcHDh6IovIinQn9BgwcgIL8hmDIlDlbxNdComVKe3kAcXuJMqtfl+3btxtch0l9raT09HTs37dfJ1AQBAH7E/frtCj07NkTv/76q2Sw0Lt3b/EhU4IQU7pETRm5Bah1Gcqg932n3mVo6igoc847YsuVP2e6NT8GLGQUU4YbSiVcazN1mKtGZaDWDaKIaYZRBKa0mNQzYvSKeGyJygAADqXfxeKNqaj26gxl9T0UFKxCudvBhtEodbmq4uRoUJs1VqLM2qOExEpJIh9EvYvM0MrO2vkSpqySnJ6ebrDM6pPXabx2EusD6ZwfoDvRX4XW8zA9d8rd3d1g60379u2bdGxTu0SNHbkF1K3bZOB9J67rBNPneGmJoces/EkfBizUKFOHGxr7gZaZmWmwAtO+6xcrA4lukPseRWBsiwnQUIGpd2XVTdWut0VG37FldvAc/iSeXvMrBAFQ5Gcie/PfUVt8SzVjbb263hz1HI+UlBSDZf7tt980Hu7QoUPDHbf6LLMpqu8dO3YUt123bl3DsfUM4127dq0YsIgjbiReC/XKTlysUKLM6osZiuoD2pFoWB/oEIAqaLzOGrPo6kmMVZ9F19RAobi42GDrjXrLlynHNrX7tH7k1po1a7B//36MGzdOcp028aZB4rVWH50m5jvdQMOyBmqBsnp+ky0OPabWgwELNcqUu0ZTPtDED0KJilE7EVSsDCQmYVOvDGQymWoUiQOAsWhIdk0CoARk+pJkJD6w9RKgutNX78pqB+nuI60KzP6mD3xnvQLnkD4QBODJIZ3wz+f/hNqCbDFAMaS4uFjvcesrRvF59e2FuvIdVXtCT06D2JIjMYxXPaE3JyfH4GuhM5zYQJnVK1GRdkALiOsDqcvLyzOYGCsmHcP0QEFsjYiC3lW03d3dm3xsU3I2tLti1q5diw3fb9DbFePm5qb6QeK1Vm9hEa/3VugNlNWHvNvi0GNqPRiwUKNMuWts0geaRMWoTUyslMiBUE+sFO8wvaA32VXQF1lIfGDrJVP9TaNyXrS6E5zvDoRv0GLYu3hAWVWBVc88iCmRwfjyD5UGhyqrV+iNtWxoz3QrrgcjscK0+noxYmuMRGuF+mKmeXl5Bl8L9UBB7AKUmldFXw4LYFTLV2PdGtqvhymBQkBAQMNrHQedLiHtZURMObYpORumdMX87ne/w9p1ayVf69/97nfituKyBhLvO50h4YBNDT2m1oMBCzXKlLtGkz/QDFSM2sTESokuJPXESvHYRdA7nFhvUCE1jbm+VhNTcl7quxO22sNz5FPwGDIdAFCVfQV5Wz/ElM9VLRZlZWUGWwlKS0t1j1sFzZYNiS6pnJwcg8GeektI9+7dDZajZ8+e4rb5+fkGXwv10Updu3ZFamqqZB6N5J25EblCkydPxooVKyS31V4Px5RAQWxFkkjgvnPnTpOPXa+xnA1Tu2LCwsIaJhbUU+bOnTtr/gED11udrQ49ptaBAQsZxdi7RpM/0Oo/KPXMJaLt/Pnzqh8k7qIvXLige2xPNDqc2NRyiEzIebG384Pv7Ffh3EFV2Zec34bCHf8BFA05HmK+h5HJjxr5HepdXtXQCVrEeVskAgv1SldMfjXidRZbRSS2VW81qaysbAioYtCQk5KkOhfteVjEc5RIdlU/R0PrMEGmp4KuY0xyp7+/v+oHP2i2BPoCyFF7vgnHNpapLZdJSUmqH6ZCZ6I5JKqer99++/btBo+tfSNgi0OPW4ItrTBtqxiwkFGMnbANMP4DTVydVyKJVnv1XrGvXeIuWnt2V2OGE2uQKIckI0cJuYQPhs+kxbB3doNSKEPenS9wb88xnUXoTD2uOHOtEQFZYwmv6sO8xe40I8rRWF6KelfM9evXde/kATEn5fp1PX+gPuhUDxylFjQ00KJwP7kVgwYNUv0gsfLx4MGDm3RcUzS5KyYUeieaU9fY2kraXXW2PPTYHMw5zJs0MWAho5jyT2nssOZRo0YZnAV21KhRGtsXFhYavIvWXj+nseHEGurLYew8LEbc+VfXKuE19k9wHzQNAFAlS0ee/EPUds2Rbr0xskVB3LYYmq+doZFKgFEz/9bnP9jtBJRq5bDbBSi18h/EGVUlyqw+vLqxPBO9SbeAZKCgTkwElmhRkJrJ1xhivpARC1iai6ktl+L/jsT1Vv/fEkdYSfxfqY+wUsehxyq2tsK0LWPAQkYx5Z/S2G0zMjIMdttoz04qLiQocRddU6OdUQrJEUg66rtLjJ2avz4vRf35umGuAJBVUIH565PFYKVEkYhC128BWV3lZqgcBo6rs60HdF87PT0rcrkcFfcqJCsluVyusb1MAOyqAaVaOezsAe1YVJxRVaLM6kGkGBQZETQ17ASjcovE1jeJFgXtxR3rGdOMf/v2bYM5HvcTDJnClK6YiIgIjB0/Fgd2HFDdQHQGcB2Q7ZRhzPgx+rtmvdBoSxZp4jDvlsWAhRpl6grMxm67bt26hsRYPS0b6vN9ALoTyWlzdHTUfdDIEUgATO8SigLwIFR38fWL+GUALhHRmLT8MEora6G4V4r87Z/jXuSvxnXzAJKTn+llROsDoJrA7eLFi6r8FvVKqa41Rn3a/7Vr10IA4OIElKqVpf539esidsNJDPnVCRQM3MnrZWQyqKlT15vSYqgRDKnrrPomFQw1N1O7Yn78/kedACcmLka6a1ZinSntrllqwGHeLYsBCzXKXCswX7lyxWAiqLh6cZ3S0lKDd9w6o2gMjUDS171i6tT82sOgnRzhNf4PcB8wBaWVtejfyRPblv4eirK7qgpcXyWtrxzGltkEZWVlDUm6A9Awd8opANWar119S0ep1uoF2r8Daom026G6jp2hcX7quTH29vYGW8gkA1KJ95I6jaRbPetSaSfdmtJiaGowZG7GdsUYG+DodB9prTOl3TVLDTjMu2UxYKFGafxT6plYrakrMFdU1DUdSFRI4vN1qqurDY7m0VkfyMi7c3FbU6bmrw+c6ialc6gNgq/fa5D7q87vuVFd8HJMdzjNq2sCkaik9ZbD2DIbGKasfeyCgoKGZn/1iePqmv3Vhx9379694dhaKzCjWnNYc3l5ucEgpKysTHzIxcVFdU0l8kxcXFz0nCSMSv5NSkpqmL1Xz2J/6qNimtSMb2rLkBVpLMAxufuIRBzm3bIYsFCjIiIiMGLkCBzeelhnYrURo0Zo/FNGRERg7Li6D78SQbzTlR3W/fDr3Lkz0tLSJCsk7btiMblRoutGb/KjEXfnTdq2vvLfC7TrORI+sfNhJ28HRUUx8rZ/hmUfnNLcfipUw3jVu4+kgiFjy2FCkCXmsEiMmlJfrfnXX381GDiJCx4C6NKlC06fPi055LdLly7iQxqrHuvJM9GbdGsoUNDXOiXTf37qTG3GX7t2rcEcD+2uS2tjTJ6Osd1HpIvDvFsOAxYyyrnz5/R2xZw7d05n25raGgjVgsadrmAn6CTFDho0CFu3bZUcYSI2xasztevG2CHCpm4rA2RlTvB6/lm4ecQBACpvnUXe1o+hKM3X3T4FmomzhvJjTCmHkcGNmLAsMWpKPVgQZ72VOHZ2dkNkMmnSJGzZukUyEJo0aZK4rTi0WuL89K4lZKD1Rp0pKw6b2owvJgNL5HhYK1PydDhUuen42rUcibmwiRrs3r0bBXkFDXfcHnXfJwEFeQXYu7dhmEp6ejoOJx3WbSqXAYeTDuPy5cviQwqFQnOEyed134MACAYqsPpWhfpyxMHw0OM0qCrUNOi94xa33a61rYEmfwevDgj806dw84iDACWKHDYgp/x1/cEKoKocDf3exHLoHOe6/s3E7jKJIKSyslJ8SCNnQ8+xhw4dKj7UqVOnhkBBvZtuInSSee3t7VXnsROa57cLgKzueTXi/B9TASwA8GTd94e1nodpibH1zfj2u+01ymG/xx6xcbE6lc2TTz7Z8Hr4AAiv+173eqgP87YmGnk6iwE8Cuw7pMrTkRIeHo64uDhWuE3A18782MJCjRK7ACQqg2PHjolN4klJSQZzK9RzCcQKSmKEiXo3hQZTukwkplM3als7/du69hoN79h5sHNygQKFyHP6FJX2qdLlMJAPonN8A10Peo9r5JwtTk5OqgBQolXB2dlZfGju3Ln4YvkXkl0xc+fOFbcV51YxopvOw8NDldzroef87mkuyAeotWxIdCGpD4PWCLL05FlpJ8aa0owfGxsLT29PFG0v0nk9PL09rbI7iMNtqTViwEKNMmWUhLjuikRuhfqcFZcuXWq4456Ihoqg7o5bZ6r9eqZ0mRirfgTNSDRMGX8IqrV66ir/e9UK/GXrWfhOeRkAUFmRhjzvT6CQFRouhymJtICq6+EuGvJdfKG/60GAUbPAAkDfvn1x7PgxySCkd+/e4rYREREYGj0Ux48f1wnghkYP1V07ykA3nXr3So8ePXDz1k1VMFE/2Z3aSB71ZF5ANWFZTk6O5PX28/MTH4qNjYWXjxcKtxbq5Fl5+XjpBBWmNuMnn0rGoCGDkJ/Y0ILm4+eDkydOSu5jSRxuS60RAxZqVGxsLLx9vVGwvUCnsvP29daoDMQ5GyQ+KNXndBCHNUvccat3H4lMaFUQR/KMg+a6NfoWNNQOsgBxyngASM8pxbx1ybicWwZBqUDx0QQUJ38PTFQ2Xg7AtIReY+eOkUFzpttyAEf0lyE8PBzHjh2TbL2JiIjQ2H7HTztULRDq+Q+xsfoTCY1M/hVHFNUlK2uXQX1EEaDqetq6batkkKXeNQUAffv0xaHjh3TyrPr26atb5jrGDhEOCwtDXm4e9u7di2PHjhlcmsIacLgttUYMWMgovXv3xuHDh3XuuNXvzIG6nAZA8oNSPachOzu7Yd6RYWgYlvqb6ruY/KnO1G4eiXVr9JIIKlz7jsfDK4+gskYJPzc5zvxzCaqyzqj+rjHlAIxvFap/PYyZh6U+2DNipltxuQSJxFHt5RSMbYEw5U5eTNaVKIP2qscDBw7E1q1bJZNuBw4cKD6Unp6OQ0mHdLpAIACHEg81WxfIhAkTrDpQqcfhttQaMemWGiUm0k4DMAfA6LrvU3UTaU+ePGkwcfTXX38Vty0tLW0IQI4COFb3vQaAABQXF+svkJ/W7/qXOlExpWVDK8lUdsMZPpOXwHfSIlTWKDEi3Bc7XxyhClZMKYcpibTqQZZacrN2sNKjR4+G4GYCVNdmAlSzBuvpXtGYFl9P4qjeafHReCKhxsJ56uqOqz46JzAw0GAZgoKCNA4xaNCghlayKAA96r47qM5RfdFBYwInfdLT07Fz5079rXk2LmFdAsaPHK+R0D5+JIfbku1iCws1SqMy8ABQ19qMunhC/S46NzfX4FBU9VaTe/fuNeSOTIJm/kNV3fP6GDkdPQDTWjbUuh4cb3eGn89rcPQOgaBU4NW4XnhhVFfY2alV7MYOcxWgyqtQfz0cIN0aY0SQFRsb2zDVvnoLS11LTGxsrMb2Hh4eDflC6t0rdflC2gmvxsrMzDTYTXfjRkMkM2nSJIN5NOpDoMVj1we0KWpP1CVDqx/b1C6QtrDCLofbUmvDgIUaZUplEBkZqfphKvTOZhoVFSVuK85cK5H/oHdYc/2Im7oZZsXkWH15KVpBiMFJx9SCrPaRsfAe/xxkDk6oLc1D3raPMe+js7plqX89tKYy1+thqIKWawC6QFXpanVNubi4qII0iddZfSZYqRV0pZ6fPHkyVqxYIZkv9NBDDxk8nkECjFqwccaMGXjrrbck1zOaMWOG/uOHah1L+3eY3gXSllbY5arK1FowYKFGmVIZBAcHq36QGIqqnnTr4OCgmkxOokVB79oy9SNj9CRt6t1WBs3KsW6qdn1kDi7wmTQfrr1GAQAqrp5E/vbPobxXomdjmJb8W7/WznhIBk7R0dHYf2C/ZJD14IMPNpxy/etoB81RMXW/ay9YJyZOFxbojNDRTpw2hZizJDE0XT1nKSIiAiNGjVDlQqm/RjJgxMgROpWquIaNxLG117gxdqgyh/wS2SYGLGQUYysDU1pjQkNDVd0aEttqT80PoGFkjL7p1/UFCgL0JvRqb+sY0AV+U5fC0SsYglCLotvfoeR/iUC1RHRjavKvEXO8jBkzBvv375dsgRg9erT4kFhZS0yJr2/BulO/nlINzd3bfENzlUqlwaHp2sslbE3cavToI401buKERte4MUeiMBFZDwYsZBST+sMNtT6okcvlBrfVO3GcAMnp1/VuK4PmYn9aLSyCIKB91GR4j/0TZA6OqJXl4q7TR6judlFcVFGSspHfodbN4w/NwMIPQA7Qrl078aFBgwYBANa+AGTlA3vOADF9gY7ewJzVmkmmYmV+5ACECYLYYqJvzaZ65hia27VrV4ND07VzR0zNq2jKGjeNdYFwyC+RbWLAQiZprDIQV82VyGlQn+lWEASDk59pj1xxdXVVzeUhcWfcvn173QK9AFVSbhZ0JmErvleDpZtOwyfmBQBAhfI48tv9A0pZmcZxtTk5OaG6ploV/HSAamSOJ4BbAKoAJ8eGQCsoKAjXMq5JTpamPjKmftbYkT2Ae9VAZCegWyDg7Kh6Xru1QqzMdxpfmQPNOzRX7C48tA+KCQrx/OyPGh4+a2xehTkSRznkl8g2MWAh85DIO1A3ZswYnD5zWlXhq1fmhwHINLtAAFXlVV5eLnln7OnpqVuO+m3rRzbVJcY6BYbjoRWHkVVwD4KiBoUH1qA0dJve46qvWQMAs2bNwrfffqsKUup6F5APMdBSX1umT58+uHbtmiqhVz3vpq77qG/fhknN6u/8J38CnGlY+gZ969JE7re1wlzE7sKdhrsL70dzJ45yhV0i29Ps87C88847kMlkGl/i/AsSkpKSMGDAADg7O6NLly746quvmrtY1EJGjRrV0M1zE6qukJsQu3nUcyvmzp3bkN+xF8CWuu9187Cor1kDAN27dze4eF737t3FbaOjoyXnP3Eb+DCC5nyCrIJ7CPF2gfORL1GavE1yrpQePXpolMPd3d3gHCjqLT3iOegblQTNc4yIiICvnw/O5EBjwbozOYCvn4/B1gpLLrpWHzilp6djx44dSE9Px64du6x6eLAtlpmorTNLC0vv3r2xb98+8XftVVjVZWRkYNKkSXj22Wexdu1a/PLLL5g7dy78/Pwwffp0cxSPzCgiIgJjx43F/oP7deYdGTturEalGhERgehh0Th24pjOcaKHRetUwK+88gp+/vlnyXyJ1157TXzo6NGjqi4ltWRXO+f28Jm8CO3CVVO6x/UJxAfTH8D8M2uQfhxGzagKAP7+/ganmPf39xcfio2NhbunO0pKdEcauXu6a3TNpKenI+9uvt7ZWvMS861+9IotDp+1xTITtVVmmenWwcEBgYGB4pf6ImXavvrqK3Tq1An/+Mc/0LNnT/zpT3/CH/7wB3zyySfmKBq1gB+//xGxEzQnLoudEIsfv/9RZ9u1/10LH28fjcd8vH2wbu06nW3rK399LRvalT8AxMfHiy0ZTsE9EPTMcrQLHwo7KPHXqb3x5ZP94eHiqOp6qp/fRX1GVUcAMlXXlboZM2YYbGHRnk8kNTkVPj5a5+jjg9TkVI3HmjpbKxFRW2CWgOXy5csIDg5GWFgYnnjiCVUfvoRjx44hJiZG47HY2FicOnVKNUeHhKqqKpSUlGh8kXUwpbl97vy5KKoo0ugCKaoowgvzXtB77NTkVPi4+2h0Ifm461b+ALB06VIoapV4YMYSBM7+AA4e/ujs0w7bFozEU9GdxaTe4ODghkThFAAX674HARB05zSJiIjA6JEj9HZljdYzn0j96Jw9e/bg3XffxZ49e5CXm4ewsDCN7TRGr6i7rvrG0StE1JY1e5fQkCFD8N133yEiIgI5OTn429/+hmHDhuHcuXM6d5mAakE07QohICAAtbW1yMvL01lfpF58fDzefffd5i4+NaPGmtubMoGXKUNzC8qr8dL3qSgOGwsZgCmRwXj/kT5wqx92U0cMFCQShfUFCpsTt+J3T87CDrVE00mxsVhrIGmzsdE5HL1CRCSt2QOWuLg48ee+ffsiOjoaXbt2xbfffoslS5bo3Ud7+Gr9yrFSC7IBwLJlyzSOV1JSgpCQkPspOrWw+5nAq7HK/9eMAixMSEF2SSXkDnZ4e0pvzBocovc9pREoxBgXKHh5eWG7GUbocPQKEZF+Zh/W7Orqir59+0quhhoYGNiw7Hyd3NxcODg46G2RqSeXy1UTj5HNMscEXkqlgNVJV/HZ3nQolAK6+Lli1ez+6BnkbnC/pgYKzZ20aS1DlYmIrI3ZA5aqqipcuHABI0aM0Pt8dHQ0/ve//2k8tmfPHgwcOBCOjo5696HWobm7QPLKqrB4YyoOX1Yt3/xoVAe8N60PXOWNv82tLVDg6BUiIk0yob7/pZm8/PLLmDJlCjp16oTc3Fz87W9/Q1JSEs6cOYPQ0FAsW7YMt27dwnfffQdANay5T58+eO655/Dss8/i2LFjeP7555GQkGDSsOaSkhJ4eHiguLhYNU8G2YTCwkLdtWXiVGvLmDInxtGreXhxQyrullbB2dEOf53aB48P6GiwW5GIiCzP2Pq72VtYbt68iVmzZiEvLw9+fn4YOnQojh8/Lq7aeufOHWRmNkzjGRYWhh07dmDx4sVYtWoVgoODsXz5cs7B0kbcb8uGQilgxf7LWP7zZSgFINy/Pb58sj/CA9zMWGoiImppzd7CYilsYWl7cksqsWhjKo5eVa0+PGNgR7z7cB+4OElPVEhERNbFYi0sRC3h8OW7WLwxFXll1WjnZI+/P9IHj0R1tHSxiIjITBiwkE2pVSjxj32XsergFQgC0CPQDStn90c3fz0rNRMRUavBgIVsxp3ie3gxIRW/Xi8AAMwe0gl/eagXnB3ZBURE1NoxYCGbcOBSLpZsTEVhRQ3ayx3w/qN98XBksKWLRURELYQBC1m1GoUSn+y5hH8mqdaj6tPBHStn9UdnX1cLl4yIiFoSAxayWreK7mHB+mQkZxYBAJ6ODsXrk3tC7sAuICKitoYBC1mlvedz8PIPaSi+VwM3Zwd8NP0BxPXVvxAmERG1fgxYyKpU1yrx4a6L+PpIBgAgsqMHVs7ujxDvdhYuGRERWRIDFrIaWQUVmJ+QgrSsIgDAH4eH4bWJPeDkYGfZghERkcUxYCGrsOvsHbzy42mUVtbCw8URnzweiQm9AixdLCIishIMWMiiqmoVeH/7BXx77AYAoH8nTyyfFYWOXuwCIiKiBgxYyGKu55VjfkIyzt4qAQA8N6oLXo7pDkd7dgEREZEmBixkET+dvo2lm86grKoWXu0c8dmMfhjTw9/SxSIiIivFgIVaVGWNAn/96TzWn8gEAAzq7IXls6IQ5OFi4ZIREZE1Y8BCLebq3TLMW5eMi9mlkMmAeaO7YdH4cDiwC4iIiBrBgIVaRGLKTbyReBYV1Qr4tnfC5zP7YUS4n6WLRURENoIBC5nVvWoF3t52Ft+fugkAiO7igy+e6Ad/d2cLl4yIiGwJAxYym8s5pZi3PhnpOWWQyYAXx4Vjwdhw2NvJLF00IiKyMQxYyCx+OJWFt7aeRWWNEn5ucnzxRD8M6+pr6WIREZGNYsBCzaq8qhZvbT2Lzcm3AAAjwn3x2Yx+8HOTW7hkRERkyxiwULO5mF2CeeuScfVuOexkwEsx3fHCqK6wYxcQERHdJwYsdN8EQcCGk1l4Z9s5VNUqEejujOWzojA4zNvSRSMiolaCAQvdl9LKGryeeBb/S7sNABjd3Q+fzegHb1cnC5eMiIhaEwYs1GRnbxVj/vpkXM+vgL2dDK/GdsezI7qwC4iIiJodAxYymSAIWHv8Bt776QKqFUp08HTB8llRGBDqZemiERFRK8WAhUxSUlmDpZtOY8eZbADA+J4B+OTxB+DZjl1ARERkPgxYyGhpWUWYn5CMrIJ7cLSXYWlcT/zhwc6QydgFRERE5sWAhRolCALW/HId8TsvoEYhoKOXC1bN7o/IEE9LF42IiNoIBixkUFFFNV758TT2ns8BAEzsHYgPH3sAHi6OFi4ZERG1JQxYSFJyZiEWrE/BraJ7cLK3w5sP9cScoaHsAiIiohbHgIV0KJUC/n3kGj7adQm1SgGhPu2wanZ/9OngYemiERFRG2XX3AeMj4/HoEGD4ObmBn9/f0ybNg2XLl0yuM/Bgwchk8l0vi5evNjcxaNGFJRX40/fncL7Oy6iVingoQeC8NOC4QxWiIjIopq9hSUpKQnz5s3DoEGDUFtbizfeeAMxMTE4f/48XF1dDe576dIluLu7i7/7+fk1d/HIgJPXC7AwIQV3iivh5GCHd6b0xqzBIewCIiIii2v2gGXXrl0av69Zswb+/v747bffMHLkSIP7+vv7w9PTs7mLRI1QKgWsTrqKz/amQ6EU0MXPFatm90fPIPfGdyYiImoBZs9hKS4uBgB4eze+EF5UVBQqKyvRq1cvvPnmmxgzZozktlVVVaiqqhJ/Lykpuf/CtkF5ZVVYvDEVhy/nAQAeieqAv03rA1c505uIiMh6NHsOizpBELBkyRIMHz4cffr0kdwuKCgI//rXv7Bp0yZs3rwZ3bt3x7hx43Do0CHJfeLj4+Hh4SF+hYSEmOMUWrVjV/Mx6YvDOHw5D86OdvjosQfw2YxIBitERGR1ZIIgCOY6+Lx587B9+3YcOXIEHTt2NGnfKVOmQCaTYdu2bXqf19fCEhISguLiYo08GNKlUApYuf8Kvvg5HUoBCPdvj1VP9kdEgJuli0ZERG1MSUkJPDw8Gq2/zXYrvWDBAmzbtg2HDh0yOVgBgKFDh2Lt2rWSz8vlcsjl8vspYpuUW1qJRRtScfRqPgDg8QEd8e7U3mjnxFYVIiKyXs1eSwmCgAULFiAxMREHDx5EWFhYk46TkpKCoKCgZi5d23bkch4WbUxBXlk12jnZ42/T+uDR/qYHk0RERC2t2QOWefPmYf369di6dSvc3NyQna1a1dfDwwMuLi4AgGXLluHWrVv47rvvAAD/+Mc/0LlzZ/Tu3RvV1dVYu3YtNm3ahE2bNjV38dqkWoUSX/x8GSsPXIEgAD0C3bBydn90829v6aIREREZpdkDltWrVwMARo8erfH4mjVr8MwzzwAA7ty5g8zMTPG56upqvPzyy7h16xZcXFzQu3dvbN++HZMmTWru4rU52cWVWLghBb9mFAAAZg3uhLen9IKzo72FS0ZERGQ8sybdtiRjk3bakoOXcrHk+zQUlFfD1cke8dMfwMORwZYuFhERkcjiSbdkOTUKJT7dk46vkq4CAHoHu2Pl7P4I8zU80zAREZG1YsDSytwquoeFCSn47UYhAOCp6FC8Pqknu4CIiMimMWBpRfadz8HLP6ahqKIGbs4O+Gj6A4jry5FWRERk+xiwtALVtUp8tOsi/n0kAwAQ2dEDK2b1RyefdhYuGRERUfNgwGLjsgoqMD8hBWlZRQCAPzwYhqVxPeDkYNZVF4iIiFoUAxYbtutsNl75MQ2llbVwd3bAJ49HIqZ3oKWLRURE1OwYsNigqloF4ndcxDdHrwMAojp5YsWsKHT0YhcQERG1TgxYbMyN/HLMX5+CM7eKAQDPjeyCl2O7w9GeXUBERNR6MWCxIT+dvo2lm86grKoWXu0c8emMSIztEWDpYhEREZkdAxYbUFmjwHs/nce6E6rlDAZ19sLyWVEI8nCxcMmIiIhaBgMWK3ftbhnmrU/BhTslkMmAuaO7YvH4CDiwC4iIiNoQBixWbEvKLbyeeAYV1Qr4uDrh85n9MDLCz9LFIiIianEMWKzQvWoF3tl2DhtPZQEAhnbxxvInouDv7mzhkhEREVkGAxYrczmnFPPWJyM9pwwyGbBwbDgWjguHvZ3M0kUjIiKyGAYsVuSHU1n4y9ZzuFejgJ+bHF/M7Idh3XwtXSwiIiKLY8BiBcqravHW1rPYnHwLADC8my8+n9kPfm5yC5eMiIjIOjBgsbCL2SWYty4ZV++Ww04GLJkQgbmju8GOXUBEREQiBiwWIggCNp7MwtvbzqGqVokAdzmWPxGFIV18LF00IiIiq8OAxQLKqmrx+uYz2JZ2GwAwKsIPn82IhE97dgERERHpw4ClhZ27XYz561OQkVcOezsZXontjj+P6MIuICIiIgMYsLQQQRCw9vgNvLf9AqprlQj2cMaK2VEYEOpt6aIRERFZPQYsLaCksgZLN53GjjPZAIDxPf3x8WOR8HJ1snDJiIiIbAMDFjM7fbMI89enILOgAo72Mrw2sQf+ODwMMhm7gIiIiIzFgMVMBEHAml+uI37nBdQoBHT0csHK2f3RL8TT0kUjIiKyOQxYzKC4ogav/JiGPedzAAATewfiw8cegIeLo4VLRkREZJsYsDSzlMxCzF+fgltF9+Bkb4c3JvfEU9Gh7AIiIiK6DwxYmolSKeDrIxn4cNdF1CoFhPq0w8pZ/dG3o4eli0ZERGTzGLA0g8Lyarz0Qxr2X8wFAEx+IAgfPNoXbs7sAiIiImoODFju06nrBViQkII7xZVwcrDD21N6YfbgTuwCIiIiakYMWJpIqRTw1aGr+HRPOhRKAV18XbFydn/0Cna3dNGIiIhaHQYsTZBXVoUl36fhUPpdAMC0fsH42yN90V7Ol5OIiMgc7Mx14C+//BJhYWFwdnbGgAEDcPjwYYPbJyUlYcCAAXB2dkaXLl3w1Vdfmato9+X4tXxM+uIwDqXfhbOjHT6a/gA+n9mPwQoREZEZmSVg2bhxIxYtWoQ33ngDKSkpGDFiBOLi4pCZmal3+4yMDEyaNAkjRoxASkoKXn/9dSxcuBCbNm0yR/GaRKEU8MW+y5j9f8eRW1qFbv7tsW3+cMwYFMJ8FSIiIjOTCYIgNPdBhwwZgv79+2P16tXiYz179sS0adMQHx+vs/1rr72Gbdu24cKFC+Jjzz//PNLS0nDs2DGj/mZJSQk8PDxQXFwMd/fmzSPJLa3E4o2p+OVKPgDg8QEd8e7U3mjnxFYVIiKi+2Fs/d3sLSzV1dX47bffEBMTo/F4TEwMjh49qnefY8eO6WwfGxuLU6dOoaamRu8+VVVVKCkp0fgyh1+u5GHSF0fwy5V8uDja47MZkfj48UgGK0RERC2o2QOWvLw8KBQKBAQEaDweEBCA7OxsvftkZ2fr3b62thZ5eXl694mPj4eHh4f4FRIS0jwnoOZetQIvbkhFXlkVegS64X8LhuPR/h2b/e8QERGRYWZLutXO6xAEwWCuh77t9T1eb9myZSguLha/srKy7rPEulyc7PHpjEjMGtwJW+Y9iG7+7Zv9bxAREVHjmr1fw9fXF/b29jqtKbm5uTqtKPUCAwP1bu/g4AAfHx+9+8jlcsjl8uYptAGjIvwwKsLP7H+HiIiIpDV7C4uTkxMGDBiAvXv3ajy+d+9eDBs2TO8+0dHROtvv2bMHAwcOhKMjp7cnIiJq68zSJbRkyRL8+9//xn/+8x9cuHABixcvRmZmJp5//nkAqu6cp556Stz++eefx40bN7BkyRJcuHAB//nPf/D111/j5ZdfNkfxiIiIyMaYZajLzJkzkZ+fj7/+9a+4c+cO+vTpgx07diA0NBQAcOfOHY05WcLCwrBjxw4sXrwYq1atQnBwMJYvX47p06ebo3hERERkY8wyD4slmHMeFiIiIjIPi83DQkRERNTcGLAQERGR1WPAQkRERFaPAQsRERFZPQYsREREZPUYsBAREZHVY8BCREREVo8BCxEREVk9BixERERk9cwyNb8l1E/YW1JSYuGSEBERkbHq6+3GJt5vNQFLaWkpACAkJMTCJSEiIiJTlZaWwsPDQ/L5VrOWkFKpxO3bt+Hm5gaZTNZsxy0pKUFISAiysrJa7RpFrf0ceX62r7WfI8/P9rX2czTn+QmCgNLSUgQHB8POTjpTpdW0sNjZ2aFjx45mO767u3urfBOqa+3nyPOzfa39HHl+tq+1n6O5zs9Qy0o9Jt0SERGR1WPAQkRERFaPAUsj5HI53n77bcjlcksXxWxa+zny/Gxfaz9Hnp/ta+3naA3n12qSbomIiKj1YgsLERERWT0GLERERGT1GLAQERGR1WPAQkRERFaPAQuAL7/8EmFhYXB2dsaAAQNw+PBhg9snJSVhwIABcHZ2RpcuXfDVV1+1UElNFx8fj0GDBsHNzQ3+/v6YNm0aLl26ZHCfgwcPQiaT6XxdvHixhUptvHfeeUennIGBgQb3saXr17lzZ73XYt68eXq3t4Vrd+jQIUyZMgXBwcGQyWTYsmWLxvOCIOCdd95BcHAwXFxcMHr0aJw7d67R427atAm9evWCXC5Hr169kJiYaKYzMMzQ+dXU1OC1115D37594erqiuDgYDz11FO4ffu2wWN+8803eq9rZWWlmc9Gv8au4TPPPKNT1qFDhzZ6XFu4hgD0XguZTIaPP/5Y8pjWdA2NqRes8f+wzQcsGzduxKJFi/DGG28gJSUFI0aMQFxcHDIzM/Vun5GRgUmTJmHEiBFISUnB66+/joULF2LTpk0tXHLjJCUlYd68eTh+/Dj27t2L2tpaxMTEoLy8vNF9L126hDt37ohf4eHhLVBi0/Xu3VujnGfOnJHc1tau38mTJzXObe/evQCAxx9/3OB+1nztysvLERkZiZUrV+p9/qOPPsJnn32GlStX4uTJkwgMDMSECRPE9cL0OXbsGGbOnIk5c+YgLS0Nc+bMwYwZM3DixAlznYYkQ+dXUVGB5ORkvPXWW0hOTsbmzZuRnp6Ohx9+uNHjuru7a1zTO3fuwNnZ2Ryn0KjGriEATJw4UaOsO3bsMHhMW7mGAHSuw3/+8x/IZDJMnz7d4HGt5RoaUy9Y5f+h0MYNHjxYeP755zUe69Gjh7B06VK927/66qtCjx49NB577rnnhKFDh5qtjM0pNzdXACAkJSVJbnPgwAEBgFBYWNhyBWuit99+W4iMjDR6e1u/fi+++KLQtWtXQalU6n3elq6dIAgCACExMVH8XalUCoGBgcIHH3wgPlZZWSl4eHgIX331leRxZsyYIUycOFHjsdjYWOGJJ55o9jKbQvv89Pn1118FAMKNGzckt1mzZo3g4eHRvIVrJvrO8emnnxamTp1q0nFs+RpOnTpVGDt2rMFtrPkaatcL1vp/2KZbWKqrq/Hbb78hJiZG4/GYmBgcPXpU7z7Hjh3T2T42NhanTp1CTU2N2craXIqLiwEA3t7ejW4bFRWFoKAgjBs3DgcOHDB30Zrs8uXLCA4ORlhYGJ544glcu3ZNcltbvn7V1dVYu3Yt/vCHPzS6wKetXDttGRkZyM7O1rhGcrkco0aNkvyfBKSvq6F9rEVxcTFkMhk8PT0NbldWVobQ0FB07NgRDz30EFJSUlqmgE108OBB+Pv7IyIiAs8++yxyc3MNbm+r1zAnJwfbt2/HH//4x0a3tdZrqF0vWOv/YZsOWPLy8qBQKBAQEKDxeEBAALKzs/Xuk52drXf72tpa5OXlma2szUEQBCxZsgTDhw9Hnz59JLcLCgrCv/71L2zatAmbN29G9+7dMW7cOBw6dKgFS2ucIUOG4LvvvsPu3bvxf//3f8jOzsawYcOQn5+vd3tbvn5btmxBUVERnnnmGcltbOna6VP/f2fK/2T9fqbuYw0qKyuxdOlSzJ492+CCcj169MA333yDbdu2ISEhAc7OznjwwQdx+fLlFiyt8eLi4rBu3Trs378fn376KU6ePImxY8eiqqpKch9bvYbffvst3Nzc8Oijjxrczlqvob56wVr/D1vNas33Q/tuVRAEg3ew+rbX97i1mT9/Pk6fPo0jR44Y3K579+7o3r27+Ht0dDSysrLwySefYOTIkeYupkni4uLEn/v27Yvo6Gh07doV3377LZYsWaJ3H1u9fl9//TXi4uIQHBwsuY0tXTtDTP2fbOo+llRTU4MnnngCSqUSX375pcFthw4dqpG0+uCDD6J///5YsWIFli9fbu6immzmzJniz3369MHAgQMRGhqK7du3G6zYbe0aAsB//vMfPPnkk43moljrNTRUL1jb/2GbbmHx9fWFvb29TvSXm5urEyXWCwwM1Lu9g4MDfHx8zFbW+7VgwQJs27YNBw4cQMeOHU3ef+jQoRa/EzCGq6sr+vbtK1lWW71+N27cwL59+/CnP/3J5H1t5doBEEd4mfI/Wb+fqftYUk1NDWbMmIGMjAzs3bvXYOuKPnZ2dhg0aJDNXNegoCCEhoYaLK+tXUMAOHz4MC5dutSk/0truIZS9YK1/h+26YDFyckJAwYMEEde1Nu7dy+GDRumd5/o6Gid7ffs2YOBAwfC0dHRbGVtKkEQMH/+fGzevBn79+9HWFhYk46TkpKCoKCgZi5d86uqqsKFCxcky2pr16/emjVr4O/vj8mTJ5u8r61cOwAICwtDYGCgxjWqrq5GUlKS5P8kIH1dDe1jKfXByuXLl7Fv374mBcqCICA1NdVmrmt+fj6ysrIMlteWrmG9r7/+GgMGDEBkZKTJ+1ryGjZWL1jt/2GzpO7asA0bNgiOjo7C119/LZw/f15YtGiR4OrqKly/fl0QBEFYunSpMGfOHHH7a9euCe3atRMWL14snD9/Xvj6668FR0dH4ccff7TUKRj0wgsvCB4eHsLBgweFO3fuiF8VFRXiNtrn+PnnnwuJiYlCenq6cPbsWWHp0qUCAGHTpk2WOAWDXnrpJeHgwYPCtWvXhOPHjwsPPfSQ4Obm1mqunyAIgkKhEDp16iS89tprOs/Z4rUrLS0VUlJShJSUFAGA8NlnnwkpKSniKJkPPvhA8PDwEDZv3iycOXNGmDVrlhAUFCSUlJSIx5gzZ47GSL5ffvlFsLe3Fz744APhwoULwgcffCA4ODgIx48ft6rzq6mpER5++GGhY8eOQmpqqsb/ZFVVleT5vfPOO8KuXbuEq1evCikpKcLvf/97wcHBQThx4kSLn58gGD7H0tJS4aWXXhKOHj0qZGRkCAcOHBCio6OFDh06tIprWK+4uFho166dsHr1ar3HsOZraEy9YI3/h20+YBEEQVi1apUQGhoqODk5Cf3799cY8vv0008Lo0aN0tj+4MGDQlRUlODk5CR07txZ8g1rDQDo/VqzZo24jfY5fvjhh0LXrl0FZ2dnwcvLSxg+fLiwffv2li+8EWbOnCkEBQUJjo6OQnBwsPDoo48K586dE5+39esnCIKwe/duAYBw6dIlneds8drVD73W/nr66acFQVANqXz77beFwMBAQS6XCyNHjhTOnDmjcYxRo0aJ29f74YcfhO7duwuOjo5Cjx49LBakGTq/jIwMyf/JAwcOiMfQPr9FixYJnTp1EpycnAQ/Pz8hJiZGOHr0aMufXB1D51hRUSHExMQIfn5+gqOjo9CpUyfh6aefFjIzMzWOYavXsN4///lPwcXFRSgqKtJ7DGu+hsbUC9b4fyirKzwRERGR1WrTOSxERERkGxiwEBERkdVjwEJERERWjwELERERWT0GLERERGT1GLAQERGR1WPAQkRERFaPAQsRERFZPQYsREREZPUYsBAREZHVY8BCREREVo8BCxEREVm9/wchpQFwWmjEJwAAAABJRU5ErkJggg==\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": 25,
"id": "41e7e1ee",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/2500\n",
"15/15 [==============================] - 4s 51ms/step - loss: 2.9275 - distribution_lambda_2_loss: 0.8261 - distribution_lambda_3_loss: 1.6128 - distribution_lambda_4_loss: 0.4886 - val_loss: 2.7835 - val_distribution_lambda_2_loss: 0.7798 - val_distribution_lambda_3_loss: 1.5644 - val_distribution_lambda_4_loss: 0.4393\n",
"Epoch 2/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.9398 - distribution_lambda_2_loss: 0.8407 - distribution_lambda_3_loss: 1.6118 - distribution_lambda_4_loss: 0.4873 - val_loss: 2.7933 - val_distribution_lambda_2_loss: 0.7822 - val_distribution_lambda_3_loss: 1.5676 - val_distribution_lambda_4_loss: 0.4435\n",
"Epoch 3/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8995 - distribution_lambda_2_loss: 0.8200 - distribution_lambda_3_loss: 1.6036 - distribution_lambda_4_loss: 0.4760 - val_loss: 2.7982 - val_distribution_lambda_2_loss: 0.7802 - val_distribution_lambda_3_loss: 1.5689 - val_distribution_lambda_4_loss: 0.4491\n",
"Epoch 4/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.9054 - distribution_lambda_2_loss: 0.8196 - distribution_lambda_3_loss: 1.6055 - distribution_lambda_4_loss: 0.4804 - val_loss: 2.8042 - val_distribution_lambda_2_loss: 0.7834 - val_distribution_lambda_3_loss: 1.5700 - val_distribution_lambda_4_loss: 0.4508\n",
"Epoch 5/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.9168 - distribution_lambda_2_loss: 0.8201 - distribution_lambda_3_loss: 1.6161 - distribution_lambda_4_loss: 0.4807 - val_loss: 2.7965 - val_distribution_lambda_2_loss: 0.7780 - val_distribution_lambda_3_loss: 1.5696 - val_distribution_lambda_4_loss: 0.4489\n",
"Epoch 6/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8967 - distribution_lambda_2_loss: 0.8326 - distribution_lambda_3_loss: 1.5927 - distribution_lambda_4_loss: 0.4714 - val_loss: 2.7991 - val_distribution_lambda_2_loss: 0.7770 - val_distribution_lambda_3_loss: 1.5737 - val_distribution_lambda_4_loss: 0.4484\n",
"Epoch 7/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8951 - distribution_lambda_2_loss: 0.8099 - distribution_lambda_3_loss: 1.6034 - distribution_lambda_4_loss: 0.4818 - val_loss: 2.8080 - val_distribution_lambda_2_loss: 0.7777 - val_distribution_lambda_3_loss: 1.5762 - val_distribution_lambda_4_loss: 0.4541\n",
"Epoch 8/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.9125 - distribution_lambda_2_loss: 0.8264 - distribution_lambda_3_loss: 1.6079 - distribution_lambda_4_loss: 0.4782 - val_loss: 2.8074 - val_distribution_lambda_2_loss: 0.7834 - val_distribution_lambda_3_loss: 1.5742 - val_distribution_lambda_4_loss: 0.4498\n",
"Epoch 9/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8867 - distribution_lambda_2_loss: 0.8113 - distribution_lambda_3_loss: 1.5974 - distribution_lambda_4_loss: 0.4780 - val_loss: 2.8066 - val_distribution_lambda_2_loss: 0.7811 - val_distribution_lambda_3_loss: 1.5766 - val_distribution_lambda_4_loss: 0.4490\n",
"Epoch 10/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8712 - distribution_lambda_2_loss: 0.8028 - distribution_lambda_3_loss: 1.5997 - distribution_lambda_4_loss: 0.4687 - val_loss: 2.8086 - val_distribution_lambda_2_loss: 0.7787 - val_distribution_lambda_3_loss: 1.5787 - val_distribution_lambda_4_loss: 0.4511\n",
"Epoch 11/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.9127 - distribution_lambda_2_loss: 0.8165 - distribution_lambda_3_loss: 1.6108 - distribution_lambda_4_loss: 0.4854 - val_loss: 2.8124 - val_distribution_lambda_2_loss: 0.7841 - val_distribution_lambda_3_loss: 1.5808 - val_distribution_lambda_4_loss: 0.4475\n",
"Epoch 12/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.9059 - distribution_lambda_2_loss: 0.8270 - distribution_lambda_3_loss: 1.6054 - distribution_lambda_4_loss: 0.4735 - val_loss: 2.8026 - val_distribution_lambda_2_loss: 0.7713 - val_distribution_lambda_3_loss: 1.5797 - val_distribution_lambda_4_loss: 0.4517\n",
"Epoch 13/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8937 - distribution_lambda_2_loss: 0.8163 - distribution_lambda_3_loss: 1.6020 - distribution_lambda_4_loss: 0.4754 - val_loss: 2.8178 - val_distribution_lambda_2_loss: 0.7823 - val_distribution_lambda_3_loss: 1.5816 - val_distribution_lambda_4_loss: 0.4539\n",
"Epoch 14/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8806 - distribution_lambda_2_loss: 0.8093 - distribution_lambda_3_loss: 1.5959 - distribution_lambda_4_loss: 0.4754 - val_loss: 2.8069 - val_distribution_lambda_2_loss: 0.7735 - val_distribution_lambda_3_loss: 1.5803 - val_distribution_lambda_4_loss: 0.4531\n",
"Epoch 15/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8728 - distribution_lambda_2_loss: 0.8181 - distribution_lambda_3_loss: 1.5915 - distribution_lambda_4_loss: 0.4632 - val_loss: 2.8039 - val_distribution_lambda_2_loss: 0.7744 - val_distribution_lambda_3_loss: 1.5786 - val_distribution_lambda_4_loss: 0.4509\n",
"Epoch 16/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8969 - distribution_lambda_2_loss: 0.8197 - distribution_lambda_3_loss: 1.5983 - distribution_lambda_4_loss: 0.4789 - val_loss: 2.8080 - val_distribution_lambda_2_loss: 0.7764 - val_distribution_lambda_3_loss: 1.5797 - val_distribution_lambda_4_loss: 0.4519\n",
"Epoch 17/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8951 - distribution_lambda_2_loss: 0.8161 - distribution_lambda_3_loss: 1.6007 - distribution_lambda_4_loss: 0.4783 - val_loss: 2.8087 - val_distribution_lambda_2_loss: 0.7763 - val_distribution_lambda_3_loss: 1.5806 - val_distribution_lambda_4_loss: 0.4518\n",
"Epoch 18/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8803 - distribution_lambda_2_loss: 0.8058 - distribution_lambda_3_loss: 1.5970 - distribution_lambda_4_loss: 0.4774 - val_loss: 2.8104 - val_distribution_lambda_2_loss: 0.7768 - val_distribution_lambda_3_loss: 1.5797 - val_distribution_lambda_4_loss: 0.4539\n",
"Epoch 19/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8779 - distribution_lambda_2_loss: 0.8111 - distribution_lambda_3_loss: 1.6012 - distribution_lambda_4_loss: 0.4656 - val_loss: 2.7999 - val_distribution_lambda_2_loss: 0.7697 - val_distribution_lambda_3_loss: 1.5788 - val_distribution_lambda_4_loss: 0.4513\n",
"Epoch 20/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8865 - distribution_lambda_2_loss: 0.8202 - distribution_lambda_3_loss: 1.5970 - distribution_lambda_4_loss: 0.4693 - val_loss: 2.8108 - val_distribution_lambda_2_loss: 0.7783 - val_distribution_lambda_3_loss: 1.5813 - val_distribution_lambda_4_loss: 0.4511\n",
"Epoch 21/2500\n",
"15/15 [==============================] - 0s 5ms/step - loss: 2.8933 - distribution_lambda_2_loss: 0.8156 - distribution_lambda_3_loss: 1.5962 - distribution_lambda_4_loss: 0.4815 - val_loss: 2.8156 - val_distribution_lambda_2_loss: 0.7794 - val_distribution_lambda_3_loss: 1.5805 - val_distribution_lambda_4_loss: 0.4557\n",
"Epoch 22/2500\n",
"15/15 [==============================] - 0s 5ms/step - loss: 2.8945 - distribution_lambda_2_loss: 0.8244 - distribution_lambda_3_loss: 1.5988 - distribution_lambda_4_loss: 0.4713 - val_loss: 2.8139 - val_distribution_lambda_2_loss: 0.7768 - val_distribution_lambda_3_loss: 1.5813 - val_distribution_lambda_4_loss: 0.4558\n",
"Epoch 23/2500\n",
"15/15 [==============================] - 0s 5ms/step - loss: 2.8835 - distribution_lambda_2_loss: 0.8139 - distribution_lambda_3_loss: 1.5927 - distribution_lambda_4_loss: 0.4769 - val_loss: 2.8132 - val_distribution_lambda_2_loss: 0.7755 - val_distribution_lambda_3_loss: 1.5811 - val_distribution_lambda_4_loss: 0.4566\n",
"Epoch 24/2500\n",
"15/15 [==============================] - 0s 5ms/step - loss: 2.8906 - distribution_lambda_2_loss: 0.8175 - distribution_lambda_3_loss: 1.6028 - distribution_lambda_4_loss: 0.4702 - val_loss: 2.8118 - val_distribution_lambda_2_loss: 0.7749 - val_distribution_lambda_3_loss: 1.5813 - val_distribution_lambda_4_loss: 0.4556\n",
"Epoch 25/2500\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"15/15 [==============================] - 0s 4ms/step - loss: 2.8800 - distribution_lambda_2_loss: 0.8125 - distribution_lambda_3_loss: 1.5979 - distribution_lambda_4_loss: 0.4696 - val_loss: 2.8146 - val_distribution_lambda_2_loss: 0.7762 - val_distribution_lambda_3_loss: 1.5850 - val_distribution_lambda_4_loss: 0.4534\n",
"Epoch 26/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8830 - distribution_lambda_2_loss: 0.8167 - distribution_lambda_3_loss: 1.5947 - distribution_lambda_4_loss: 0.4716 - val_loss: 2.8205 - val_distribution_lambda_2_loss: 0.7832 - val_distribution_lambda_3_loss: 1.5836 - val_distribution_lambda_4_loss: 0.4537\n",
"Epoch 27/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8630 - distribution_lambda_2_loss: 0.7963 - distribution_lambda_3_loss: 1.5963 - distribution_lambda_4_loss: 0.4704 - val_loss: 2.8112 - val_distribution_lambda_2_loss: 0.7702 - val_distribution_lambda_3_loss: 1.5849 - val_distribution_lambda_4_loss: 0.4561\n",
"Epoch 28/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8747 - distribution_lambda_2_loss: 0.8128 - distribution_lambda_3_loss: 1.5955 - distribution_lambda_4_loss: 0.4665 - val_loss: 2.8163 - val_distribution_lambda_2_loss: 0.7784 - val_distribution_lambda_3_loss: 1.5838 - val_distribution_lambda_4_loss: 0.4540\n",
"Epoch 29/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8714 - distribution_lambda_2_loss: 0.8077 - distribution_lambda_3_loss: 1.5945 - distribution_lambda_4_loss: 0.4692 - val_loss: 2.8034 - val_distribution_lambda_2_loss: 0.7677 - val_distribution_lambda_3_loss: 1.5822 - val_distribution_lambda_4_loss: 0.4535\n",
"Epoch 30/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8645 - distribution_lambda_2_loss: 0.8020 - distribution_lambda_3_loss: 1.5902 - distribution_lambda_4_loss: 0.4724 - val_loss: 2.8095 - val_distribution_lambda_2_loss: 0.7751 - val_distribution_lambda_3_loss: 1.5803 - val_distribution_lambda_4_loss: 0.4541\n",
"Epoch 31/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8748 - distribution_lambda_2_loss: 0.8146 - distribution_lambda_3_loss: 1.5964 - distribution_lambda_4_loss: 0.4638 - val_loss: 2.8157 - val_distribution_lambda_2_loss: 0.7783 - val_distribution_lambda_3_loss: 1.5839 - val_distribution_lambda_4_loss: 0.4535\n",
"Epoch 32/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8871 - distribution_lambda_2_loss: 0.8140 - distribution_lambda_3_loss: 1.5991 - distribution_lambda_4_loss: 0.4740 - val_loss: 2.8063 - val_distribution_lambda_2_loss: 0.7710 - val_distribution_lambda_3_loss: 1.5826 - val_distribution_lambda_4_loss: 0.4526\n",
"Epoch 33/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8908 - distribution_lambda_2_loss: 0.8087 - distribution_lambda_3_loss: 1.5981 - distribution_lambda_4_loss: 0.4841 - val_loss: 2.8009 - val_distribution_lambda_2_loss: 0.7669 - val_distribution_lambda_3_loss: 1.5807 - val_distribution_lambda_4_loss: 0.4532\n",
"Epoch 34/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8637 - distribution_lambda_2_loss: 0.8007 - distribution_lambda_3_loss: 1.5960 - distribution_lambda_4_loss: 0.4670 - val_loss: 2.8210 - val_distribution_lambda_2_loss: 0.7801 - val_distribution_lambda_3_loss: 1.5859 - val_distribution_lambda_4_loss: 0.4550\n",
"Epoch 35/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8438 - distribution_lambda_2_loss: 0.7951 - distribution_lambda_3_loss: 1.5852 - distribution_lambda_4_loss: 0.4634 - val_loss: 2.8146 - val_distribution_lambda_2_loss: 0.7748 - val_distribution_lambda_3_loss: 1.5860 - val_distribution_lambda_4_loss: 0.4538\n",
"Epoch 36/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8835 - distribution_lambda_2_loss: 0.8114 - distribution_lambda_3_loss: 1.5971 - distribution_lambda_4_loss: 0.4751 - val_loss: 2.8154 - val_distribution_lambda_2_loss: 0.7706 - val_distribution_lambda_3_loss: 1.5873 - val_distribution_lambda_4_loss: 0.4575\n",
"Epoch 37/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8663 - distribution_lambda_2_loss: 0.8047 - distribution_lambda_3_loss: 1.5893 - distribution_lambda_4_loss: 0.4723 - val_loss: 2.8228 - val_distribution_lambda_2_loss: 0.7765 - val_distribution_lambda_3_loss: 1.5893 - val_distribution_lambda_4_loss: 0.4571\n",
"Epoch 38/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8676 - distribution_lambda_2_loss: 0.7980 - distribution_lambda_3_loss: 1.5940 - distribution_lambda_4_loss: 0.4756 - val_loss: 2.8247 - val_distribution_lambda_2_loss: 0.7747 - val_distribution_lambda_3_loss: 1.5942 - val_distribution_lambda_4_loss: 0.4557\n",
"Epoch 39/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8653 - distribution_lambda_2_loss: 0.8056 - distribution_lambda_3_loss: 1.5900 - distribution_lambda_4_loss: 0.4698 - val_loss: 2.8175 - val_distribution_lambda_2_loss: 0.7702 - val_distribution_lambda_3_loss: 1.5916 - val_distribution_lambda_4_loss: 0.4557\n",
"Epoch 40/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8710 - distribution_lambda_2_loss: 0.8159 - distribution_lambda_3_loss: 1.5875 - distribution_lambda_4_loss: 0.4675 - val_loss: 2.8171 - val_distribution_lambda_2_loss: 0.7739 - val_distribution_lambda_3_loss: 1.5886 - val_distribution_lambda_4_loss: 0.4547\n",
"Epoch 41/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8540 - distribution_lambda_2_loss: 0.8053 - distribution_lambda_3_loss: 1.5837 - distribution_lambda_4_loss: 0.4651 - val_loss: 2.8149 - val_distribution_lambda_2_loss: 0.7706 - val_distribution_lambda_3_loss: 1.5912 - val_distribution_lambda_4_loss: 0.4530\n",
"Epoch 42/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8515 - distribution_lambda_2_loss: 0.8006 - distribution_lambda_3_loss: 1.5850 - distribution_lambda_4_loss: 0.4659 - val_loss: 2.8068 - val_distribution_lambda_2_loss: 0.7650 - val_distribution_lambda_3_loss: 1.5875 - val_distribution_lambda_4_loss: 0.4543\n",
"Epoch 43/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8835 - distribution_lambda_2_loss: 0.8176 - distribution_lambda_3_loss: 1.5932 - distribution_lambda_4_loss: 0.4727 - val_loss: 2.8167 - val_distribution_lambda_2_loss: 0.7717 - val_distribution_lambda_3_loss: 1.5896 - val_distribution_lambda_4_loss: 0.4555\n",
"Epoch 44/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8590 - distribution_lambda_2_loss: 0.8009 - distribution_lambda_3_loss: 1.5910 - distribution_lambda_4_loss: 0.4671 - val_loss: 2.8176 - val_distribution_lambda_2_loss: 0.7735 - val_distribution_lambda_3_loss: 1.5891 - val_distribution_lambda_4_loss: 0.4549\n",
"Epoch 45/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8851 - distribution_lambda_2_loss: 0.8110 - distribution_lambda_3_loss: 1.6011 - distribution_lambda_4_loss: 0.4731 - val_loss: 2.8222 - val_distribution_lambda_2_loss: 0.7780 - val_distribution_lambda_3_loss: 1.5873 - val_distribution_lambda_4_loss: 0.4568\n",
"Epoch 46/2500\n",
"15/15 [==============================] - 0s 5ms/step - loss: 2.8825 - distribution_lambda_2_loss: 0.8122 - distribution_lambda_3_loss: 1.6014 - distribution_lambda_4_loss: 0.4689 - val_loss: 2.8112 - val_distribution_lambda_2_loss: 0.7666 - val_distribution_lambda_3_loss: 1.5878 - val_distribution_lambda_4_loss: 0.4568\n",
"Epoch 47/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8640 - distribution_lambda_2_loss: 0.8197 - distribution_lambda_3_loss: 1.5793 - distribution_lambda_4_loss: 0.4650 - val_loss: 2.8134 - val_distribution_lambda_2_loss: 0.7682 - val_distribution_lambda_3_loss: 1.5881 - val_distribution_lambda_4_loss: 0.4571\n",
"Epoch 48/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8478 - distribution_lambda_2_loss: 0.7915 - distribution_lambda_3_loss: 1.5868 - distribution_lambda_4_loss: 0.4694 - val_loss: 2.8135 - val_distribution_lambda_2_loss: 0.7694 - val_distribution_lambda_3_loss: 1.5885 - val_distribution_lambda_4_loss: 0.4556\n",
"Epoch 49/2500\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"15/15 [==============================] - 0s 5ms/step - loss: 2.8551 - distribution_lambda_2_loss: 0.8010 - distribution_lambda_3_loss: 1.5880 - distribution_lambda_4_loss: 0.4661 - val_loss: 2.8160 - val_distribution_lambda_2_loss: 0.7707 - val_distribution_lambda_3_loss: 1.5900 - val_distribution_lambda_4_loss: 0.4553\n",
"Epoch 50/2500\n",
"15/15 [==============================] - 0s 5ms/step - loss: 2.8654 - distribution_lambda_2_loss: 0.8053 - distribution_lambda_3_loss: 1.5910 - distribution_lambda_4_loss: 0.4690 - val_loss: 2.8198 - val_distribution_lambda_2_loss: 0.7728 - val_distribution_lambda_3_loss: 1.5903 - val_distribution_lambda_4_loss: 0.4567\n",
"Epoch 51/2500\n",
"15/15 [==============================] - 0s 4ms/step - loss: 2.8573 - distribution_lambda_2_loss: 0.8035 - distribution_lambda_3_loss: 1.5875 - distribution_lambda_4_loss: 0.4663 - val_loss: 2.8156 - val_distribution_lambda_2_loss: 0.7705 - val_distribution_lambda_3_loss: 1.5905 - val_distribution_lambda_4_loss: 0.4547\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": 26,
"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": 27,
"id": "c41cf448",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0798265190543076\n",
"0.29563465147366164\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.02219365253550709\n",
"0.159869757007698\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": 28,
"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": 29,
"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": 30,
"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": 31,
"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": 32,
"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": 33,
"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>Ochoa</th>\n",
" <td>1.0</td>\n",
" <td>90</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Lovato</th>\n",
" <td>1.0</td>\n",
" <td>80</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Gyomber</th>\n",
" <td>1.0</td>\n",
" <td>80</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Pirola</th>\n",
" <td>1.0</td>\n",
" <td>80</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Mazzocchi</th>\n",
" <td>1.0</td>\n",
" <td>80</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Pisilli</th>\n",
" <td>0.0</td>\n",
" <td>10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Aouar</th>\n",
" <td>0.4</td>\n",
" <td>55</td>\n",
" </tr>\n",
" <tr>\n",
" <th>El Shaarawy</th>\n",
" <td>0.0</td>\n",
" <td>55</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Belotti</th>\n",
" <td>0.0</td>\n",
" <td>60</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Azmoun</th>\n",
" <td>0.0</td>\n",
" <td>35</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>476 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" starter percentage\n",
"player \n",
"Ochoa 1.0 90\n",
"Lovato 1.0 80\n",
"Gyomber 1.0 80\n",
"Pirola 1.0 80\n",
"Mazzocchi 1.0 80\n",
"... ... ...\n",
"Pisilli 0.0 10\n",
"Aouar 0.4 55\n",
"El Shaarawy 0.0 55\n",
"Belotti 0.0 60\n",
"Azmoun 0.0 35\n",
"\n",
"[476 rows x 2 columns]"
]
},
"execution_count": 33,
"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": 42,
"id": "5e63c2b7",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Sommer: MV 6.21 ± 0.80; FV 5.80 + 1.26 (83.0% cs)\n",
"Szczesny: MV 6.17 ± 0.87; FV 5.13 + 1.42 (35.2% cs)\n",
"Meret: MV 6.19 ± 0.85; FV 5.46 + 1.32 (44.9% cs)\n",
"Provedel: MV 6.22 ± 0.89; FV 5.10 + 1.49 (27.3% cs)\n",
"Maignan: MV 6.12 ± 0.97; FV 5.10 + 1.48 (22.0% cs)\n",
"Rui Patricio: MV 5.77 ± 0.99; FV 3.50 + 2.58 (1.2% cs)\n",
"Skorupski: MV 5.92 ± 0.99; FV 3.55 + 2.61 (1.7% cs)\n",
"Milinkovic-Savic V.: MV 5.86 ± 1.02; FV 3.48 + 2.71 (1.2% cs)\n",
"Di Gregorio: MV 6.23 ± 0.87; FV 5.10 + 1.53 (26.5% cs)\n",
"Falcone: MV 6.18 ± 0.90; FV 5.10 + 1.48 (31.0% cs)\n",
"Silvestri: MV 5.80 ± 0.99; FV 3.48 + 2.60 (1.3% cs)\n",
"Terracciano: MV 6.22 ± 0.86; FV 5.13 + 1.43 (35.2% cs)\n",
"Carnesecchi: MV 6.15 ± 0.89; FV 5.10 + 1.47 (24.5% cs)\n",
"Radunovic: MV 5.74 ± 1.06; FV 3.38 + 2.73 (1.1% cs)\n",
"Montipo': MV 6.15 ± 0.92; FV 4.74 + 1.67 (12.2% cs)\n",
"Martinez Jo.: MV 6.06 ± 0.95; FV 4.42 + 2.07 (6.8% cs)\n",
"Ochoa: MV 6.08 ± 0.92; FV 3.59 + 2.49 (2.2% cs)\n",
"Caprile: MV 5.95 ± 0.98; FV 3.41 + 2.73 (1.1% cs)\n",
"Turati: MV 6.13 ± 0.89; FV 5.46 + 1.28 (34.2% cs)\n",
"Consigli: MV 6.03 ± 0.96; FV 3.45 + 2.68 (1.4% cs)\n",
"Musso: MV 6.19 ± 0.82; FV 5.78 + 1.26 (76.4% cs)\n",
"Cragno: MV 5.97 ± 1.01; FV 3.40 + 2.71 (1.1% cs)\n",
"Perin: MV 6.16 ± 0.88; FV 5.68 + 1.26 (67.6% cs)\n",
"Berisha: MV 5.93 ± 0.98; FV 3.40 + 2.70 (1.1% cs)\n",
"Christensen O.: MV 6.17 ± 0.87; FV 4.67 + 1.84 (12.3% cs)\n",
"Sportiello: MV 6.12 ± 0.97; FV 5.10 + 1.48 (22.0% cs)\n",
"Mirante: MV 6.12 ± 0.97; FV 5.10 + 1.48 (22.0% cs)\n",
"Sepe: MV 6.17 ± 0.90; FV 4.72 + 1.68 (12.4% cs)\n",
"Leali: MV 6.06 ± 0.95; FV 4.42 + 2.07 (6.8% cs)\n",
"Lamanna: MV 6.21 ± 0.90; FV 5.10 + 1.49 (21.7% cs)\n",
"Sommariva: MV 6.06 ± 0.95; FV 4.42 + 2.07 (6.8% cs)\n",
"Pegolo: MV 5.99 ± 0.97; FV 3.41 + 2.73 (1.2% cs)\n",
"Perilli: MV 6.27 ± 0.85; FV 5.10 + 1.49 (27.4% cs)\n",
"Padelli: MV 5.73 ± 1.03; FV 3.43 + 2.67 (1.2% cs)\n",
"Scuffet: MV 5.74 ± 1.06; FV 3.38 + 2.73 (1.1% cs)\n",
"Gollini: MV 6.07 ± 0.88; FV 5.18 + 1.45 (19.8% cs)\n",
"Perisan: MV 5.82 ± 1.02; FV 3.40 + 2.72 (1.1% cs)\n",
"Audero: MV 6.21 ± 0.80; FV 5.80 + 1.26 (83.0% cs)\n",
"Di Gennaro: MV 6.21 ± 0.80; FV 5.80 + 1.26 (83.0% cs)\n",
"Pinsoglio: MV 6.14 ± 0.92; FV 5.10 + 1.47 (25.2% cs)\n",
"Aresti: MV 5.74 ± 1.06; FV 3.38 + 2.73 (1.1% cs)\n",
"Fiorillo: MV 6.08 ± 0.92; FV 3.59 + 2.49 (2.2% cs)\n",
"Cerofolini: MV 6.14 ± 0.92; FV 5.10 + 1.48 (23.1% cs)\n",
"Rossi F.: MV 6.20 ± 0.87; FV 5.10 + 1.48 (19.9% cs)\n",
"Costil: MV 6.08 ± 0.92; FV 3.59 + 2.49 (2.2% cs)\n",
"Ravaglia F.: MV 5.88 ± 1.01; FV 3.48 + 2.61 (2.1% cs)\n",
"Frattali: MV 6.13 ± 0.89; FV 5.46 + 1.28 (34.2% cs)\n",
"Contini: MV 6.07 ± 0.88; FV 5.18 + 1.45 (19.8% cs)\n",
"Brancolini: MV 6.18 ± 0.90; FV 5.10 + 1.47 (29.3% cs)\n",
"Berardi A.: MV 6.27 ± 0.85; FV 5.10 + 1.49 (27.4% cs)\n",
"Gemello: MV 5.86 ± 0.99; FV 3.59 + 2.54 (1.5% cs)\n",
"Boer: MV 5.71 ± 1.04; FV 3.40 + 2.70 (1.1% cs)\n",
"Bagnolini: MV 5.88 ± 1.01; FV 3.48 + 2.61 (2.1% cs)\n",
"Svilar: MV 5.71 ± 1.04; FV 3.40 + 2.70 (1.1% cs)\n",
"Sorrentino A.: MV 6.04 ± 0.91; FV 4.65 + 1.69 (12.3% cs)\n",
"Martinelli T.: MV 6.25 ± 0.82; FV 5.12 + 1.47 (27.8% cs)\n",
"Popa: MV 5.86 ± 0.99; FV 3.59 + 2.54 (1.5% cs)\n",
"Stubljar: MV 5.95 ± 0.98; FV 3.41 + 2.73 (1.1% cs)\n",
"Gori: MV 6.21 ± 0.90; FV 5.10 + 1.49 (21.7% cs)\n",
"Borbei: MV 6.18 ± 0.90; FV 5.10 + 1.47 (29.3% cs)\n",
"Okoye: MV 5.73 ± 1.03; FV 3.43 + 2.67 (1.2% cs)\n",
"Mandas: MV 6.17 ± 0.90; FV 4.72 + 1.68 (12.4% cs)\n",
"Dimarco: MV 6.56 ± 0.78; FV 6.79 + 1.53\n",
"Di Lorenzo: MV 6.31 ± 1.10; FV 6.92 + 2.14\n",
"Hernandez T.: MV 6.22 ± 1.04; FV 6.79 + 2.05\n",
"Carlos Augusto: MV 6.50 ± 0.91; FV 7.04 + 2.15\n",
"Danilo: MV 6.39 ± 0.89; FV 6.85 + 1.87\n",
"Zappacosta: MV 6.17 ± 0.91; FV 6.52 + 1.55\n",
"Schuurs: MV 6.05 ± 1.14; FV 6.13 + 1.46\n",
"Posch: MV 5.98 ± 1.07; FV 6.21 + 1.56\n",
"Bastoni: MV 6.52 ± 0.75; FV 6.68 + 1.22\n",
"Smalling: MV 6.10 ± 0.92; FV 6.28 + 1.27\n",
"Dumfries: MV 6.48 ± 0.92; FV 7.04 + 2.17\n",
"Romagnoli: MV 6.13 ± 0.96; FV 6.32 + 1.40\n",
"Pavard: MV 6.43 ± 0.71; FV 6.62 + 1.21\n",
"Rrahmani: MV 6.06 ± 1.03; FV 6.21 + 1.30\n",
"Spinazzola: MV 6.17 ± 0.86; FV 6.48 + 1.43\n",
"Buongiorno: MV 6.03 ± 1.19; FV 6.17 + 1.66\n",
"Bremer: MV 6.24 ± 1.04; FV 6.69 + 1.89\n",
"Tomori: MV 6.14 ± 0.76; FV 6.19 + 0.86\n",
"Biraghi: MV 6.08 ± 0.89; FV 6.43 + 1.44\n",
"Mancini: MV 5.98 ± 0.99; FV 6.09 + 1.26\n",
"Darmian: MV 6.43 ± 0.74; FV 6.66 + 1.30\n",
"Bakker: MV 6.04 ± 0.55; FV 6.11 + 0.68\n",
"Mazzocchi: MV 5.92 ± 0.84; FV 6.11 + 1.18\n",
"Doig: MV 5.86 ± 1.08; FV 6.14 + 1.59\n",
"Calabria: MV 6.13 ± 0.82; FV 6.31 + 1.12\n",
"Acerbi: MV 6.37 ± 0.71; FV 6.47 + 0.99\n",
"Cuadrado: MV 6.36 ± 0.81; FV 6.61 + 1.39\n",
"Ebuehi: MV 5.53 ± 0.75; FV 5.50 + 0.77\n",
"Casale: MV 5.98 ± 0.82; FV 6.06 + 1.05\n",
"Holm: MV 6.11 ± 0.67; FV 6.23 + 0.86\n",
"Baschirotto: MV 6.11 ± 1.07; FV 6.41 + 1.59\n",
"Bijol: MV 5.77 ± 1.25; FV 5.65 + 1.55\n",
"Thiaw: MV 5.86 ± 1.15; FV 5.70 + 1.17\n",
"Mario Rui: MV 5.95 ± 0.80; FV 5.98 + 0.84\n",
"Milenkovic: MV 5.96 ± 0.89; FV 6.00 + 0.99\n",
"Rodriguez R.: MV 5.90 ± 0.99; FV 5.80 + 1.10\n",
"Kolasinac: MV 6.04 ± 0.65; FV 6.15 + 0.78\n",
"N'dicka: MV 5.98 ± 0.62; FV 5.96 + 0.61\n",
"Scalvini: MV 6.09 ± 0.87; FV 6.27 + 1.21\n",
"Perez N.: MV 5.79 ± 1.19; FV 5.67 + 1.45\n",
"Kristensen: MV 6.01 ± 0.75; FV 6.21 + 1.06\n",
"Izzo: MV 5.99 ± 0.91; FV 6.07 + 1.22\n",
"De Vrij: MV 6.48 ± 0.73; FV 6.62 + 1.14\n",
"Faraoni: MV 5.72 ± 0.79; FV 5.80 + 1.01\n",
"Toloi: MV 6.09 ± 0.75; FV 6.18 + 0.94\n",
"Kyriakopoulos: MV 5.88 ± 0.68; FV 5.89 + 0.80\n",
"Bellanova: MV 5.89 ± 1.08; FV 5.89 + 1.32\n",
"Mari': MV 5.82 ± 0.87; FV 5.83 + 1.04\n",
"Dodo': MV 5.96 ± 0.80; FV 6.00 + 0.88\n",
"Lucumi': MV 5.74 ± 1.04; FV 5.68 + 1.20\n",
"Hien: MV 5.70 ± 1.05; FV 5.66 + 1.25\n",
"Natan: MV 5.92 ± 0.90; FV 5.96 + 1.02\n",
"Hysaj: MV 5.98 ± 0.73; FV 6.08 + 1.02\n",
"D'ambrosio: MV 6.00 ± 0.67; FV 5.97 + 0.78\n",
"Luperto: MV 5.38 ± 1.16; FV 5.35 + 1.29\n",
"Djimsiti: MV 6.03 ± 0.63; FV 6.02 + 0.58\n",
"Marusic: MV 5.93 ± 0.81; FV 5.93 + 0.92\n",
"Martin: MV 5.85 ± 0.64; FV 5.93 + 0.80\n",
"Mina: MV 6.01 ± 0.71; FV 6.20 + 0.96\n",
"Toljan: MV 5.61 ± 0.86; FV 5.55 + 0.89\n",
"Llorente D.: MV 5.80 ± 0.98; FV 5.77 + 1.05\n",
"Martinez Quarta: MV 6.00 ± 0.85; FV 6.07 + 0.97\n",
"Bastoni S.: MV 5.55 ± 0.73; FV 5.49 + 0.78\n",
"Dragusin: MV 5.81 ± 0.84; FV 5.93 + 1.11\n",
"Parisi: MV 6.06 ± 0.79; FV 6.17 + 1.01\n",
"Bradaric: MV 5.83 ± 0.97; FV 5.91 + 1.24\n",
"Kamara H.: MV 5.96 ± 0.92; FV 5.97 + 1.09\n",
"Olivera: MV 5.98 ± 0.67; FV 6.08 + 0.75\n",
"Gendrey: MV 5.99 ± 0.71; FV 5.97 + 0.78\n",
"Kristiansen: MV 6.02 ± 0.86; FV 6.16 + 1.25\n",
"Beukema: MV 5.83 ± 1.11; FV 5.85 + 1.36\n",
"Dossena: MV 5.68 ± 0.85; FV 5.65 + 0.99\n",
"Pedersen: MV 5.77 ± 0.59; FV 5.78 + 0.62\n",
"Juan Jesus: MV 5.99 ± 0.60; FV 5.98 + 0.55\n",
"Gyomber: MV 5.83 ± 1.00; FV 5.78 + 1.10\n",
"Alex Sandro: MV 5.90 ± 0.90; FV 5.83 + 1.05\n",
"Hateboer: MV 6.04 ± 0.83; FV 6.28 + 1.29\n",
"Palomino: MV 5.98 ± 0.57; FV 5.99 + 0.58\n",
"Marchizza: MV 6.06 ± 0.79; FV 6.18 + 0.98\n",
"Zappa: MV 5.60 ± 0.86; FV 5.49 + 0.88\n",
"Gallo: MV 5.97 ± 0.87; FV 5.98 + 0.96\n",
"Caldirola: MV 5.80 ± 1.00; FV 5.85 + 1.33\n",
"Kalulu: MV 5.97 ± 0.84; FV 6.01 + 0.91\n",
"Erlic: MV 5.62 ± 0.99; FV 5.54 + 1.03\n",
"Vojvoda: MV 5.75 ± 0.87; FV 5.73 + 1.04\n",
"Vasquez: MV 5.91 ± 0.75; FV 5.88 + 0.81\n",
"Cambiaso: MV 6.18 ± 0.84; FV 6.38 + 1.29\n",
"Pongracic: MV 6.07 ± 0.83; FV 6.12 + 1.03\n",
"Viti: MV 5.92 ± 0.57; FV 6.01 + 0.74\n",
"Gatti: MV 6.18 ± 0.75; FV 6.26 + 0.99\n",
"Birindelli: MV 5.92 ± 0.77; FV 5.94 + 0.93\n",
"Azzi: MV 5.71 ± 0.73; FV 5.70 + 0.83\n",
"Wieteska: MV 5.75 ± 0.92; FV 5.73 + 1.09\n",
"Masina: MV 5.77 ± 1.20; FV 6.00 + 1.65\n",
"Romagnoli S.: MV 6.05 ± 0.94; FV 6.21 + 1.27\n",
"Pezzella Giu.: MV 5.40 ± 0.88; FV 5.34 + 0.81\n",
"Sabelli: MV 5.90 ± 0.60; FV 5.92 + 0.71\n",
"Lirola: MV 6.20 ± 0.89; FV 6.55 + 1.53\n",
"Lazzari: MV 6.01 ± 0.78; FV 6.01 + 0.92\n",
"Bani: MV 5.76 ± 1.04; FV 5.88 + 1.37\n",
"Djidji: MV 5.66 ± 1.00; FV 5.59 + 1.21\n",
"Kabasele: MV 5.67 ± 0.99; FV 5.56 + 1.17\n",
"Lazaro: MV 5.99 ± 0.83; FV 6.02 + 1.08\n",
"Augello: MV 5.66 ± 0.88; FV 5.69 + 1.01\n",
"Zortea: MV 6.11 ± 0.80; FV 6.40 + 1.25\n",
"Dawidowicz: MV 5.67 ± 1.02; FV 5.65 + 1.23\n",
"Pirola: MV 5.82 ± 1.05; FV 5.93 + 1.38\n",
"Lovato: MV 5.67 ± 0.88; FV 5.58 + 0.94\n",
"Ruggeri: MV 6.14 ± 0.93; FV 6.40 + 1.39\n",
"Vina: MV 5.70 ± 0.95; FV 5.68 + 1.02\n",
"Obert: MV 5.57 ± 1.01; FV 5.52 + 1.09\n",
"Terracciano F.: MV 6.02 ± 0.79; FV 6.12 + 1.04\n",
"Ebosele: MV 5.69 ± 0.90; FV 5.69 + 1.00\n",
"Zemura: MV 5.85 ± 0.89; FV 5.81 + 1.02\n",
"Hatzidiakos: MV 5.73 ± 0.90; FV 5.73 + 1.07\n",
"Patric: MV 6.02 ± 0.66; FV 6.01 + 0.67\n",
"Lykogiannis: MV 5.71 ± 0.73; FV 5.78 + 0.85\n",
"Pellegrini Lu.: MV 5.86 ± 0.66; FV 5.82 + 0.71\n",
"Magnani: MV 5.64 ± 1.15; FV 5.65 + 1.40\n",
"Ranieri L.: MV 5.90 ± 0.66; FV 5.89 + 0.70\n",
"Carboni A.: MV 5.96 ± 0.78; FV 6.03 + 0.97\n",
"Calafiori: MV 5.91 ± 0.97; FV 6.03 + 1.29\n",
"Monterisi: MV 6.19 ± 1.07; FV 6.73 + 2.09\n",
"Ismajli: MV 5.47 ± 0.86; FV 5.39 + 0.83\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"De Winter: MV 5.82 ± 0.83; FV 5.72 + 0.86\n",
"Tressoldi: MV 5.71 ± 0.86; FV 5.74 + 1.05\n",
"Ehizibue: MV 5.61 ± 1.06; FV 5.63 + 1.22\n",
"Vogliacco: MV 5.84 ± 0.85; FV 5.83 + 0.96\n",
"Ferrari G.: MV 5.60 ± 1.00; FV 5.63 + 1.14\n",
"Venuti: MV 5.89 ± 0.77; FV 5.86 + 0.79\n",
"Karsdorp: MV 5.87 ± 0.56; FV 5.85 + 0.51\n",
"Kjaer: MV 5.79 ± 0.54; FV 5.79 + 0.46\n",
"Gunter: MV 5.56 ± 1.17; FV 5.50 + 1.38\n",
"Soumaoro: MV 5.78 ± 1.30; FV 5.74 + 1.46\n",
"Di Pardo: MV 5.60 ± 0.97; FV 5.54 + 1.05\n",
"Zanoli: MV 6.08 ± 0.92; FV 6.39 + 1.42\n",
"Zima: MV 5.81 ± 0.75; FV 5.74 + 0.77\n",
"Hefti: MV 5.70 ± 0.82; FV 5.61 + 0.85\n",
"Ostigard: MV 5.76 ± 0.64; FV 5.75 + 0.59\n",
"Sambia: MV 5.95 ± 0.78; FV 5.99 + 0.93\n",
"Bisseck: MV 6.28 ± 0.75; FV 6.46 + 1.16\n",
"Oyono: MV 6.04 ± 0.72; FV 6.08 + 0.78\n",
"Ferreira J.: MV 5.62 ± 0.97; FV 5.54 + 1.07\n",
"Dorgu: MV 6.10 ± 0.67; FV 6.12 + 0.78\n",
"Touba: MV 6.05 ± 0.79; FV 6.12 + 1.00\n",
"Sazonov: MV 5.79 ± 1.12; FV 5.72 + 1.35\n",
"Rugani: MV 6.13 ± 0.60; FV 6.16 + 0.68\n",
"De Sciglio: MV 5.98 ± 0.68; FV 6.00 + 0.75\n",
"Goldaniga: MV 5.52 ± 0.98; FV 5.44 + 1.02\n",
"Florenzi: MV 6.05 ± 0.58; FV 6.08 + 0.60\n",
"De Silvestri: MV 5.83 ± 0.74; FV 5.90 + 0.90\n",
"Pereira P.: MV 5.91 ± 0.78; FV 5.94 + 0.95\n",
"Fazio: MV 5.84 ± 1.27; FV 5.98 + 1.65\n",
"Bereszynski: MV 5.42 ± 0.88; FV 5.36 + 0.83\n",
"Bonifazi: MV 5.61 ± 1.09; FV 5.47 + 1.18\n",
"Walukiewicz: MV 5.36 ± 0.80; FV 5.30 + 0.63\n",
"Okoli: MV 5.95 ± 0.73; FV 5.93 + 0.75\n",
"Kumbulla: MV 5.35 ± 1.44; FV 5.20 + 1.41\n",
"Celik: MV 5.61 ± 0.86; FV 5.49 + 0.84\n",
"Amione: MV 5.61 ± 0.97; FV 5.58 + 1.15\n",
"Daniliuc: MV 5.76 ± 1.07; FV 5.79 + 1.33\n",
"Soppy: MV 5.73 ± 0.86; FV 5.70 + 1.02\n",
"Haps: MV 5.78 ± 0.86; FV 5.83 + 1.08\n",
"Cittadini: MV 5.94 ± 0.88; FV 6.05 + 1.19\n",
"Coppola D.: MV 5.64 ± 0.87; FV 5.55 + 0.97\n",
"Cacace: MV 5.43 ± 0.74; FV 5.34 + 0.66\n",
"Ebosse: MV 5.48 ± 0.96; FV 5.41 + 0.93\n",
"Guessand A.: MV 5.67 ± 1.05; FV 5.61 + 1.24\n",
"Cabal: MV 5.73 ± 0.58; FV 5.63 + 0.59\n",
"Missori: MV 5.69 ± 0.77; FV 5.67 + 0.88\n",
"Kayode: MV 6.02 ± 0.67; FV 6.05 + 0.67\n",
"Corazza: MV 5.66 ± 0.84; FV 5.63 + 0.92\n",
"Kristensen T.: MV 5.75 ± 1.13; FV 5.70 + 1.44\n",
"Dermaku: MV 6.02 ± 0.85; FV 6.11 + 1.09\n",
"Tonelli: MV 5.41 ± 0.96; FV 5.35 + 0.94\n",
"Capradossi: MV 5.66 ± 1.03; FV 5.68 + 1.23\n",
"Bettella: MV 5.94 ± 0.88; FV 6.05 + 1.19\n",
"Amey: MV 5.76 ± 1.09; FV 5.83 + 1.37\n",
"Gila: MV 5.93 ± 0.78; FV 5.93 + 0.84\n",
"Bronn: MV 5.64 ± 0.91; FV 5.53 + 0.93\n",
"Guarino: MV 5.51 ± 0.90; FV 5.48 + 0.94\n",
"Carboni F.: MV 5.98 ± 0.78; FV 6.05 + 0.98\n",
"Smajlovic: MV 6.03 ± 0.88; FV 6.15 + 1.17\n",
"Matturro: MV 5.84 ± 0.85; FV 5.83 + 0.96\n",
"N'guessan: MV 5.79 ± 1.12; FV 5.72 + 1.35\n",
"Mateus Lusuardi: MV 6.05 ± 0.89; FV 6.20 + 1.15\n",
"Kalaj: MV 6.05 ± 0.89; FV 6.20 + 1.15\n",
"Pierozzi: MV 5.98 ± 0.72; FV 6.01 + 0.75\n",
"Huijsen: MV 6.10 ± 0.84; FV 6.32 + 1.33\n",
"Bonfanti: MV 6.06 ± 0.73; FV 6.14 + 0.89\n",
"Pellegrino: MV 6.02 ± 0.78; FV 6.08 + 0.88\n",
"Comuzzo: MV 5.98 ± 0.72; FV 6.01 + 0.75\n",
"Zaccagni: MV 6.34 ± 1.07; FV 7.04 + 2.49\n",
"Koopmeiners: MV 6.41 ± 1.04; FV 7.19 + 2.57\n",
"Luis Alberto: MV 6.41 ± 1.05; FV 7.19 + 2.62\n",
"Felipe Anderson: MV 6.15 ± 1.18; FV 6.87 + 2.56\n",
"Rabiot: MV 6.40 ± 1.17; FV 7.36 + 3.00\n",
"Zielinski: MV 6.27 ± 0.84; FV 6.58 + 1.44\n",
"Barella: MV 6.55 ± 0.86; FV 6.97 + 1.99\n",
"Pulisic: MV 6.26 ± 1.01; FV 6.79 + 1.96\n",
"Orsolini: MV 6.21 ± 1.25; FV 6.97 + 2.66\n",
"Calhanoglu: MV 6.61 ± 0.75; FV 6.79 + 1.50\n",
"Strefezza: MV 6.27 ± 1.04; FV 6.84 + 2.11\n",
"Chukwueze: MV 6.07 ± 0.75; FV 6.28 + 1.03\n",
"Ferguson: MV 6.21 ± 1.08; FV 6.74 + 2.06\n",
"Candreva: MV 6.21 ± 1.26; FV 6.97 + 2.68\n",
"Frattesi: MV 6.52 ± 1.02; FV 7.36 + 2.82\n",
"Samardzic: MV 6.07 ± 1.11; FV 6.59 + 1.98\n",
"Vlasic: MV 6.14 ± 1.13; FV 6.69 + 2.07\n",
"Bonaventura: MV 6.21 ± 0.98; FV 6.72 + 1.90\n",
"Politano: MV 6.33 ± 0.81; FV 6.63 + 1.48\n",
"El Shaarawy: MV 6.26 ± 0.92; FV 6.63 + 1.69\n",
"Mkhitaryan: MV 6.54 ± 0.94; FV 7.17 + 2.42\n",
"Aouar: MV 6.13 ± 1.01; FV 6.63 + 1.90\n",
"Malinovskyi: MV 5.95 ± 1.05; FV 6.42 + 1.86\n",
"Gudmundsson A.: MV 6.03 ± 0.88; FV 6.33 + 1.41\n",
"Kamada: MV 6.09 ± 0.98; FV 6.57 + 1.90\n",
"Pellegrini Lo.: MV 5.98 ± 1.15; FV 6.51 + 1.97\n",
"Kostic: MV 6.33 ± 1.04; FV 6.99 + 2.31\n",
"Radonjic: MV 6.34 ± 1.25; FV 7.23 + 2.88\n",
"Baldanzi: MV 5.59 ± 0.76; FV 5.61 + 0.86\n",
"Lovric: MV 6.14 ± 1.07; FV 6.60 + 1.88\n",
"Lindstrom: MV 6.10 ± 0.81; FV 6.34 + 1.23\n",
"Lazovic: MV 6.13 ± 1.02; FV 6.53 + 1.74\n",
"Pereyra: MV 6.20 ± 1.23; FV 6.83 + 2.49\n",
"Renato Sanches: MV 6.13 ± 0.77; FV 6.36 + 1.08\n",
"Pessina: MV 6.09 ± 0.94; FV 6.48 + 1.66\n",
"Guendouzi: MV 6.04 ± 0.69; FV 6.16 + 0.86\n",
"Loftus-Cheek: MV 6.12 ± 0.64; FV 6.15 + 0.66\n",
"Zambo Anguissa: MV 6.08 ± 0.93; FV 6.37 + 1.34\n",
"Elmas: MV 6.04 ± 0.98; FV 6.42 + 1.57\n",
"Bajrami: MV 5.90 ± 0.65; FV 5.95 + 0.74\n",
"Ricci S.: MV 6.02 ± 0.85; FV 6.14 + 1.21\n",
"Colpani: MV 6.35 ± 1.05; FV 7.08 + 2.50\n",
"Ciurria: MV 6.17 ± 1.02; FV 6.71 + 2.04\n",
"De Roon: MV 6.16 ± 0.81; FV 6.38 + 1.18\n",
"Pogba: MV 6.09 ± 0.72; FV 6.19 + 0.98\n",
"Cristante: MV 6.11 ± 1.04; FV 6.32 + 1.47\n",
"Locatelli: MV 6.17 ± 0.77; FV 6.33 + 1.15\n",
"Pasalic: MV 6.05 ± 0.80; FV 6.36 + 1.28\n",
"Lobotka: MV 6.06 ± 0.65; FV 6.11 + 0.66\n",
"Fagioli: MV 6.19 ± 1.02; FV 6.72 + 2.01\n",
"Ikone': MV 6.02 ± 0.93; FV 6.40 + 1.55\n",
"Ilic: MV 6.03 ± 0.97; FV 6.27 + 1.49\n",
"Ndoye: MV 5.83 ± 0.88; FV 5.96 + 1.14\n",
"Ederson D.s.: MV 6.13 ± 0.81; FV 6.31 + 1.10\n",
"Reijnders: MV 6.17 ± 0.76; FV 6.37 + 1.06\n",
"Barak: MV 5.95 ± 0.71; FV 6.05 + 0.81\n",
"Saponara: MV 6.02 ± 1.02; FV 6.42 + 1.69\n",
"Mandragora: MV 6.03 ± 0.90; FV 6.33 + 1.41\n",
"Weah: MV 6.09 ± 0.59; FV 6.21 + 0.74\n",
"Bennacer: MV 6.24 ± 0.82; FV 6.54 + 1.32\n",
"Duda: MV 6.17 ± 1.11; FV 6.71 + 2.09\n",
"Castrovilli: MV 6.04 ± 0.99; FV 6.46 + 1.69\n",
"Mckennie: MV 6.35 ± 0.94; FV 6.84 + 1.93\n",
"Miranchuk: MV 6.22 ± 0.84; FV 6.60 + 1.49\n",
"Matheus Henrique: MV 5.77 ± 0.78; FV 5.87 + 1.02\n",
"De Ketelaere: MV 6.06 ± 0.82; FV 6.27 + 1.10\n",
"Mboula: MV 5.62 ± 0.76; FV 5.60 + 0.82\n",
"Paredes: MV 5.77 ± 1.07; FV 5.70 + 1.16\n",
"Sottil: MV 6.01 ± 0.62; FV 6.11 + 0.69\n",
"Klaassen: MV 6.40 ± 0.83; FV 6.81 + 1.78\n",
"Arthur Melo: MV 6.03 ± 0.76; FV 6.06 + 0.78\n",
"Thorsby: MV 5.72 ± 0.90; FV 5.79 + 1.16\n",
"Nandez: MV 5.94 ± 0.71; FV 6.04 + 1.00\n",
"Tameze: MV 5.80 ± 0.87; FV 5.74 + 1.01\n",
"Marin: MV 5.56 ± 0.85; FV 5.54 + 0.93\n",
"Messias: MV 5.86 ± 1.02; FV 6.23 + 1.61\n",
"Musah: MV 6.03 ± 0.61; FV 6.03 + 0.63\n",
"Coulibaly L.: MV 6.05 ± 1.05; FV 6.36 + 1.62\n",
"Krunic: MV 6.05 ± 0.68; FV 6.04 + 0.69\n",
"Cataldi: MV 5.96 ± 0.69; FV 5.94 + 0.68\n",
"Strootman: MV 5.87 ± 0.69; FV 5.92 + 0.86\n",
"Duncan: MV 6.08 ± 0.76; FV 6.33 + 1.11\n",
"Freuler: MV 5.92 ± 0.65; FV 5.96 + 0.79\n",
"Gagliardini: MV 5.88 ± 0.75; FV 5.85 + 0.79\n",
"Mazzitelli: MV 6.27 ± 1.12; FV 6.89 + 2.24\n",
"Jankto: MV 5.82 ± 0.67; FV 5.79 + 0.73\n",
"Kastanos: MV 5.95 ± 0.75; FV 6.08 + 0.99\n",
"Gyasi: MV 5.52 ± 0.74; FV 5.45 + 0.77\n",
"Reinier: MV 6.04 ± 0.87; FV 6.19 + 1.12\n",
"Zalewski: MV 5.97 ± 0.75; FV 6.06 + 0.84\n",
"Harroui: MV 6.27 ± 0.92; FV 6.73 + 1.77\n",
"Frendrup: MV 5.94 ± 0.68; FV 6.00 + 0.87\n",
"Blin: MV 6.03 ± 0.61; FV 6.03 + 0.69\n",
"Fabbian: MV 6.09 ± 0.95; FV 6.48 + 1.69\n",
"Ramadani: MV 6.20 ± 0.90; FV 6.36 + 1.25\n",
"Cajuste : MV 5.92 ± 0.87; FV 5.94 + 0.96\n",
"Mancosu: MV 5.69 ± 0.99; FV 5.73 + 1.21\n",
"Vecino: MV 5.96 ± 0.82; FV 6.04 + 1.06\n",
"Sensi: MV 6.42 ± 0.87; FV 6.88 + 1.88\n",
"Walace: MV 5.65 ± 1.00; FV 5.61 + 1.10\n",
"Lopez M.: MV 5.90 ± 0.61; FV 5.85 + 0.54\n",
"Brescianini: MV 6.09 ± 0.69; FV 6.15 + 0.78\n",
"Bove: MV 6.02 ± 0.72; FV 6.17 + 0.90\n",
"Aebischer: MV 5.83 ± 0.72; FV 5.98 + 0.96\n",
"Thorstvedt: MV 5.86 ± 0.62; FV 5.89 + 0.70\n",
"Gonzalez J.: MV 5.98 ± 0.75; FV 6.07 + 1.03\n",
"Moro N.: MV 6.03 ± 0.85; FV 6.28 + 1.32\n",
"Oudin: MV 6.14 ± 0.94; FV 6.49 + 1.59\n",
"Boloca: MV 5.73 ± 0.88; FV 5.75 + 1.07\n",
"Rafia: MV 6.15 ± 0.74; FV 6.37 + 1.23\n",
"Makoumbou: MV 5.78 ± 0.70; FV 5.80 + 0.83\n",
"Kaba: MV 6.04 ± 0.57; FV 6.02 + 0.62\n",
"Badelj: MV 5.86 ± 0.75; FV 5.83 + 0.78\n",
"Machin: MV 5.95 ± 0.88; FV 6.06 + 1.20\n",
"Linetty: MV 5.81 ± 0.84; FV 5.78 + 1.02\n",
"Castillejo: MV 5.79 ± 0.59; FV 5.86 + 0.70\n",
"Rovella: MV 6.09 ± 0.95; FV 6.22 + 1.27\n",
"Pobega: MV 6.02 ± 0.64; FV 6.10 + 0.74\n",
"Hongla: MV 5.72 ± 0.82; FV 5.79 + 0.98\n",
"Miretti: MV 6.05 ± 0.75; FV 6.26 + 1.08\n",
"Fazzini: MV 5.55 ± 0.64; FV 5.42 + 0.65\n",
"Iling Junior: MV 6.09 ± 0.84; FV 6.30 + 1.33\n",
"Oristanio: MV 5.68 ± 0.84; FV 5.63 + 0.90\n",
"Serdar: MV 5.73 ± 0.83; FV 5.75 + 1.00\n",
"Payero: MV 5.80 ± 1.04; FV 5.79 + 1.30\n",
"Grassi: MV 5.51 ± 0.78; FV 5.42 + 0.78\n",
"Baez: MV 6.08 ± 0.75; FV 6.29 + 1.02\n",
"Deiola: MV 5.66 ± 0.97; FV 5.68 + 1.14\n",
"Garritano: MV 6.22 ± 0.67; FV 6.30 + 0.83\n",
"Bourabia: MV 6.07 ± 0.80; FV 6.25 + 1.05\n",
"Saelemaekers: MV 5.92 ± 0.90; FV 6.19 + 1.34\n",
"Maldini: MV 5.64 ± 0.73; FV 5.69 + 0.89\n",
"Racic: MV 5.85 ± 0.63; FV 5.83 + 0.68\n",
"Kovalenko: MV 5.61 ± 0.67; FV 5.54 + 0.73\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Maleh: MV 5.56 ± 0.55; FV 5.41 + 0.57\n",
"Bohinen: MV 5.91 ± 0.58; FV 5.86 + 0.56\n",
"Ranocchia F.: MV 5.67 ± 0.66; FV 5.72 + 0.80\n",
"Folorunsho: MV 5.85 ± 0.93; FV 6.10 + 1.37\n",
"Infantino: MV 5.90 ± 0.53; FV 5.87 + 0.48\n",
"Martegani: MV 5.93 ± 0.95; FV 6.00 + 1.20\n",
"Kutlu: MV 5.86 ± 0.74; FV 5.83 + 0.82\n",
"Tchatchoua: MV 5.76 ± 0.97; FV 5.85 + 1.27\n",
"Quina: MV 5.99 ± 0.94; FV 6.06 + 1.20\n",
"Adopo: MV 5.97 ± 0.78; FV 6.00 + 0.81\n",
"Romero L.: MV 6.25 ± 0.88; FV 6.65 + 1.63\n",
"Basic: MV 6.04 ± 0.74; FV 6.14 + 1.01\n",
"Asllani: MV 6.10 ± 0.56; FV 6.15 + 0.54\n",
"Tchaouna: MV 5.86 ± 0.82; FV 5.87 + 1.00\n",
"Sulemana I.: MV 5.65 ± 0.72; FV 5.59 + 0.74\n",
"Barrenechea: MV 6.04 ± 0.76; FV 6.10 + 0.88\n",
"Gelli: MV 6.05 ± 0.86; FV 6.18 + 1.07\n",
"Suslov: MV 5.78 ± 0.89; FV 5.85 + 1.15\n",
"Gaetano: MV 6.04 ± 0.99; FV 6.54 + 1.83\n",
"Jagiello: MV 5.87 ± 0.84; FV 5.86 + 0.96\n",
"Obiang: MV 5.86 ± 0.55; FV 5.83 + 0.55\n",
"Maggiore: MV 5.89 ± 0.53; FV 5.85 + 0.53\n",
"Akpa Akpro: MV 5.95 ± 0.88; FV 6.06 + 1.20\n",
"Urbanski: MV 5.91 ± 0.78; FV 6.00 + 1.01\n",
"Volpato: MV 5.82 ± 0.72; FV 5.90 + 0.90\n",
"Vignato S.: MV 5.87 ± 0.79; FV 5.90 + 0.94\n",
"Hrustic: MV 5.54 ± 0.69; FV 5.57 + 0.74\n",
"Zarraga: MV 5.47 ± 0.98; FV 5.45 + 0.91\n",
"Camara E.: MV 5.79 ± 1.08; FV 5.80 + 1.39\n",
"Amatucci: MV 5.93 ± 0.66; FV 5.92 + 0.64\n",
"Pagano: MV 5.95 ± 0.62; FV 5.95 + 0.60\n",
"Prati: MV 5.70 ± 0.90; FV 5.69 + 1.03\n",
"Viola: MV 5.62 ± 0.79; FV 5.53 + 0.76\n",
"Lulic K.: MV 6.04 ± 0.87; FV 6.19 + 1.12\n",
"Rog: MV 5.71 ± 0.79; FV 5.69 + 0.85\n",
"Nicolussi Caviglia: MV 5.90 ± 0.88; FV 6.26 + 1.47\n",
"Demme: MV 5.98 ± 0.48; FV 5.93 + 0.39\n",
"Pafundi: MV 6.00 ± 0.80; FV 6.02 + 0.86\n",
"Adli: MV 5.98 ± 0.69; FV 6.02 + 0.72\n",
"Bondo: MV 5.95 ± 0.84; FV 6.06 + 1.11\n",
"Zerbin: MV 6.04 ± 0.61; FV 6.09 + 0.64\n",
"Carboni V.: MV 6.00 ± 0.78; FV 6.09 + 1.00\n",
"Faticanti: MV 6.03 ± 0.86; FV 6.14 + 1.14\n",
"Gineitis: MV 5.91 ± 0.92; FV 5.91 + 1.14\n",
"Belardinelli: MV 5.53 ± 0.86; FV 5.50 + 0.92\n",
"El Azzouzi: MV 5.93 ± 0.69; FV 6.02 + 0.87\n",
"Lipani: MV 5.76 ± 0.82; FV 5.81 + 1.02\n",
"Joselito: MV 5.76 ± 0.97; FV 5.85 + 1.27\n",
"Legowski: MV 5.96 ± 1.03; FV 6.12 + 1.39\n",
"Ibrahimovic A.: MV 6.04 ± 0.87; FV 6.19 + 1.12\n",
"Osimhen: MV 6.47 ± 1.55; FV 7.89 + 4.08\n",
"Martinez L.: MV 6.56 ± 1.27; FV 7.97 + 3.97\n",
"Rafael Leao: MV 6.50 ± 1.19; FV 7.58 + 3.28\n",
"Lukaku: MV 6.26 ± 1.46; FV 7.29 + 3.16\n",
"Berardi: MV 6.32 ± 1.38; FV 7.38 + 3.38\n",
"Immobile: MV 6.17 ± 1.35; FV 7.10 + 3.02\n",
"Vlahovic: MV 6.41 ± 1.47; FV 7.70 + 3.82\n",
"Dybala: MV 6.41 ± 1.49; FV 7.69 + 3.78\n",
"Kvaratskhelia: MV 6.42 ± 1.25; FV 7.47 + 3.19\n",
"Giroud: MV 6.46 ± 1.20; FV 7.54 + 3.25\n",
"Scamacca: MV 6.36 ± 1.30; FV 7.60 + 3.52\n",
"Thuram: MV 6.59 ± 1.03; FV 7.50 + 3.06\n",
"Lookman: MV 6.42 ± 1.29; FV 7.62 + 3.49\n",
"Dia: MV 6.30 ± 1.40; FV 7.39 + 3.41\n",
"Arnautovic: MV 6.52 ± 1.09; FV 7.49 + 3.08\n",
"Retegui: MV 5.91 ± 1.23; FV 6.42 + 1.94\n",
"Sanabria: MV 6.17 ± 1.33; FV 7.01 + 2.74\n",
"Nzola: MV 5.95 ± 1.18; FV 6.51 + 2.00\n",
"Lauriente': MV 6.08 ± 1.18; FV 6.56 + 2.17\n",
"Zapata D.: MV 5.97 ± 0.99; FV 6.36 + 1.60\n",
"Chiesa: MV 6.46 ± 1.19; FV 7.51 + 3.21\n",
"Milik: MV 6.31 ± 1.09; FV 7.06 + 2.53\n",
"Gonzalez N.: MV 6.23 ± 1.09; FV 7.02 + 2.56\n",
"Okafor: MV 6.01 ± 0.51; FV 6.00 + 0.49\n",
"Pinamonti: MV 5.83 ± 1.08; FV 6.21 + 1.68\n",
"Beltran L.: MV 6.04 ± 0.96; FV 6.51 + 1.76\n",
"Caprari: MV 6.04 ± 1.00; FV 6.50 + 1.79\n",
"Sanchez: MV 6.45 ± 0.96; FV 7.08 + 2.32\n",
"Caputo: MV 5.53 ± 0.73; FV 5.57 + 0.78\n",
"Toure' E.: MV 6.05 ± 0.74; FV 6.17 + 0.94\n",
"Krstovic: MV 6.38 ± 0.87; FV 6.82 + 1.82\n",
"Belotti: MV 6.10 ± 0.99; FV 6.62 + 1.91\n",
"Muriel: MV 6.18 ± 0.82; FV 6.47 + 1.38\n",
"Lapadula: MV 5.86 ± 0.93; FV 6.18 + 1.49\n",
"Jovic: MV 6.09 ± 1.18; FV 6.80 + 2.40\n",
"Abraham: MV 6.11 ± 1.24; FV 6.87 + 2.48\n",
"Zirkzee: MV 6.21 ± 1.02; FV 6.73 + 2.01\n",
"Ngonge: MV 5.98 ± 1.16; FV 6.53 + 2.01\n",
"Petagna: MV 5.88 ± 0.98; FV 6.21 + 1.53\n",
"Simeone: MV 5.84 ± 0.92; FV 6.24 + 1.42\n",
"Deulofeu: MV 6.35 ± 1.27; FV 7.35 + 3.17\n",
"Pedro: MV 6.05 ± 0.93; FV 6.42 + 1.61\n",
"Shomurodov: MV 5.70 ± 0.75; FV 5.88 + 1.01\n",
"Azmoun: MV 5.89 ± 0.82; FV 6.19 + 1.27\n",
"Castellanos: MV 5.96 ± 0.56; FV 5.95 + 0.57\n",
"Cheddira: MV 6.28 ± 1.16; FV 7.20 + 2.82\n",
"Karlsson: MV 6.12 ± 0.90; FV 6.47 + 1.58\n",
"Brekalo: MV 6.05 ± 1.02; FV 6.57 + 1.89\n",
"Cambiaghi: MV 5.69 ± 0.88; FV 5.81 + 1.11\n",
"Henry: MV 5.81 ± 0.97; FV 6.12 + 1.42\n",
"Mulattieri: MV 5.79 ± 0.61; FV 5.94 + 0.90\n",
"Almqvist: MV 6.21 ± 1.07; FV 6.75 + 2.05\n",
"Isaksen: MV 5.93 ± 0.76; FV 5.96 + 0.90\n",
"Kean: MV 6.03 ± 1.25; FV 6.69 + 2.43\n",
"Karamoh: MV 5.98 ± 0.84; FV 6.26 + 1.35\n",
"Thauvin: MV 5.60 ± 0.81; FV 5.73 + 0.89\n",
"Kouame': MV 6.04 ± 1.10; FV 6.67 + 2.17\n",
"Raspadori: MV 5.94 ± 0.98; FV 6.34 + 1.57\n",
"Colombo: MV 5.96 ± 1.16; FV 6.50 + 2.05\n",
"Luvumbo: MV 5.89 ± 0.74; FV 6.00 + 1.00\n",
"Mota: MV 5.89 ± 1.13; FV 6.33 + 1.83\n",
"Brenner: MV 5.77 ± 1.10; FV 5.79 + 1.40\n",
"Bonazzoli: MV 5.90 ± 0.98; FV 6.27 + 1.53\n",
"Djuric: MV 5.85 ± 0.74; FV 6.03 + 1.04\n",
"Davis K.: MV 5.77 ± 1.10; FV 5.79 + 1.40\n",
"Banda: MV 6.19 ± 0.86; FV 6.48 + 1.47\n",
"Defrel: MV 5.68 ± 0.68; FV 5.73 + 0.86\n",
"Sansone: MV 6.34 ± 1.14; FV 7.16 + 2.70\n",
"Pellegri: MV 5.71 ± 0.85; FV 5.89 + 1.07\n",
"Piccoli: MV 5.99 ± 0.81; FV 6.29 + 1.37\n",
"Success: MV 5.80 ± 0.92; FV 6.09 + 1.26\n",
"Botheim: MV 5.78 ± 0.75; FV 5.89 + 1.01\n",
"Lucca: MV 5.79 ± 0.95; FV 5.97 + 1.23\n",
"Caso: MV 6.26 ± 1.01; FV 6.82 + 2.03\n",
"Jovane: MV 5.96 ± 1.03; FV 6.15 + 1.41\n",
"Soule': MV 6.35 ± 0.87; FV 6.71 + 1.61\n",
"Pavoletti: MV 5.71 ± 0.72; FV 5.79 + 0.92\n",
"Cancellieri: MV 5.53 ± 0.62; FV 5.44 + 0.60\n",
"Seck: MV 6.14 ± 0.72; FV 6.29 + 1.00\n",
"Alvarez A.: MV 5.81 ± 0.68; FV 5.90 + 0.87\n",
"Cuni: MV 6.04 ± 0.63; FV 6.08 + 0.69\n",
"Ekuban: MV 5.79 ± 0.65; FV 5.90 + 0.78\n",
"Maric: MV 5.96 ± 0.72; FV 6.01 + 0.89\n",
"Cruz: MV 5.75 ± 0.96; FV 5.86 + 1.25\n",
"Destro: MV 5.50 ± 0.81; FV 5.47 + 0.82\n",
"Van Hooijdonk: MV 5.91 ± 0.92; FV 6.07 + 1.25\n",
"Ceide: MV 5.70 ± 0.72; FV 5.72 + 0.73\n",
"Kvernadze: MV 6.01 ± 0.81; FV 6.11 + 0.98\n",
"Ikwuemesi: MV 5.87 ± 0.85; FV 5.92 + 1.03\n",
"Puscas: MV 5.85 ± 0.85; FV 5.89 + 1.01\n",
"Ake' M.: MV 5.77 ± 1.02; FV 5.75 + 1.22\n",
"Braaf: MV 5.61 ± 0.69; FV 5.75 + 0.86\n",
"Kallon: MV 5.85 ± 0.86; FV 6.11 + 1.32\n",
"Kaio Jorge: MV 6.01 ± 0.61; FV 6.08 + 0.63\n",
"Vivaldo: MV 5.77 ± 1.10; FV 5.79 + 1.40\n",
"Bidaoui: MV 6.05 ± 0.89; FV 6.26 + 1.21\n",
"Shpendi S.: MV 5.53 ± 0.73; FV 5.47 + 0.75\n",
"Burnete: MV 6.05 ± 0.80; FV 6.14 + 1.05\n",
"Corfitzen: MV 6.04 ± 0.89; FV 6.21 + 1.25\n",
"Stewart: MV 5.96 ± 1.03; FV 6.15 + 1.41\n",
"Yildiz: MV 6.10 ± 0.87; FV 6.37 + 1.41\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>Cagliari</td>\n",
" <td>1</td>\n",
" <td>1.0</td>\n",
" <td>70</td>\n",
" <td>6.187904</td>\n",
" <td>0.409565</td>\n",
" <td>5.778299</td>\n",
" <td>0.631974</td>\n",
" <td>6.172151</td>\n",
" <td>0.484012</td>\n",
" <td>0.024084</td>\n",
" <td>1.080489</td>\n",
" <td>6.551383</td>\n",
" <td>0.575009</td>\n",
" <td>-0.854511</td>\n",
" <td>1.143475</td>\n",
" <td>76.430595</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Carnesecchi</th>\n",
" <td>P</td>\n",
" <td>Atalanta</td>\n",
" <td>Cagliari</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>5</td>\n",
" <td>6.153384</td>\n",
" <td>0.442585</td>\n",
" <td>5.099182</td>\n",
" <td>0.736154</td>\n",
" <td>6.095662</td>\n",
" <td>0.508426</td>\n",
" <td>0.083887</td>\n",
" <td>1.071720</td>\n",
" <td>5.316064</td>\n",
" <td>1.103085</td>\n",
" <td>-0.144701</td>\n",
" <td>0.998809</td>\n",
" <td>24.471429</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Rossi F.</th>\n",
" <td>P</td>\n",
" <td>Atalanta</td>\n",
" <td>Cagliari</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" <td>1</td>\n",
" <td>6.202195</td>\n",
" <td>0.436560</td>\n",
" <td>5.098540</td>\n",
" <td>0.738788</td>\n",
" <td>6.170873</td>\n",
" <td>0.510068</td>\n",
" <td>0.045397</td>\n",
" <td>1.057536</td>\n",
" <td>5.311903</td>\n",
" <td>1.107865</td>\n",
" <td>-0.141756</td>\n",
" <td>0.997465</td>\n",
" <td>19.948235</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Zappacosta</th>\n",
" <td>D</td>\n",
" <td>Atalanta</td>\n",
" <td>Cagliari</td>\n",
" <td>1</td>\n",
" <td>0.6</td>\n",
" <td>60</td>\n",
" <td>6.174058</td>\n",
" <td>0.452587</td>\n",
" <td>6.519552</td>\n",
" <td>0.775398</td>\n",
" <td>6.110474</td>\n",
" <td>0.514245</td>\n",
" <td>0.090884</td>\n",
" <td>0.896925</td>\n",
" <td>5.874933</td>\n",
" <td>0.976198</td>\n",
" <td>0.463032</td>\n",
" <td>1.299677</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Zortea</th>\n",
" <td>D</td>\n",
" <td>Atalanta</td>\n",
" <td>Cagliari</td>\n",
" <td>1</td>\n",
" <td>0.4</td>\n",
" <td>40</td>\n",
" <td>6.106819</td>\n",
" <td>0.397738</td>\n",
" <td>6.403875</td>\n",
" <td>0.627450</td>\n",
" <td>6.025298</td>\n",
" <td>0.444725</td>\n",
" <td>0.134716</td>\n",
" <td>0.941082</td>\n",
" <td>5.877332</td>\n",
" <td>0.785433</td>\n",
" <td>0.469323</td>\n",
" <td>1.299658</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>Milan</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>5.806732</td>\n",
" <td>0.484893</td>\n",
" <td>6.124626</td>\n",
" <td>0.710677</td>\n",
" <td>5.555864</td>\n",
" <td>0.490855</td>\n",
" <td>0.369405</td>\n",
" <td>0.852631</td>\n",
" <td>5.422048</td>\n",
" <td>0.779401</td>\n",
" <td>0.606238</td>\n",
" <td>1.299682</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Kallon</th>\n",
" <td>A</td>\n",
" <td>Verona</td>\n",
" <td>Milan</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>5.847151</td>\n",
" <td>0.430028</td>\n",
" <td>6.110572</td>\n",
" <td>0.658053</td>\n",
" <td>5.650604</td>\n",
" <td>0.441275</td>\n",
" <td>0.323210</td>\n",
" <td>0.904855</td>\n",
" <td>5.475328</td>\n",
" <td>0.739265</td>\n",
" <td>0.582358</td>\n",
" <td>1.299658</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Djuric</th>\n",
" <td>A</td>\n",
" <td>Verona</td>\n",
" <td>Milan</td>\n",
" <td>0</td>\n",
" <td>0.4</td>\n",
" <td>60</td>\n",
" <td>5.847715</td>\n",
" <td>0.371962</td>\n",
" <td>6.031966</td>\n",
" <td>0.518109</td>\n",
" <td>5.712709</td>\n",
" <td>0.393430</td>\n",
" <td>0.250597</td>\n",
" <td>0.961439</td>\n",
" <td>5.599852</td>\n",
" <td>0.651016</td>\n",
" <td>0.465176</td>\n",
" <td>1.299629</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Cruz</th>\n",
" <td>A</td>\n",
" <td>Verona</td>\n",
" <td>Milan</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>15</td>\n",
" <td>5.751310</td>\n",
" <td>0.481451</td>\n",
" <td>5.863318</td>\n",
" <td>0.627091</td>\n",
" <td>5.655169</td>\n",
" <td>0.538907</td>\n",
" <td>0.130959</td>\n",
" <td>0.892866</td>\n",
" <td>5.455123</td>\n",
" <td>0.880195</td>\n",
" <td>0.334536</td>\n",
" <td>1.299594</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Braaf</th>\n",
" <td>A</td>\n",
" <td>Verona</td>\n",
" <td>Milan</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>0</td>\n",
" <td>5.613092</td>\n",
" <td>0.346900</td>\n",
" <td>5.750920</td>\n",
" <td>0.428900</td>\n",
" <td>5.477731</td>\n",
" <td>0.361478</td>\n",
" <td>0.273028</td>\n",
" <td>0.988318</td>\n",
" <td>5.428794</td>\n",
" <td>0.569555</td>\n",
" <td>0.402369</td>\n",
" <td>1.299586</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>539 rows × 19 columns</p>\n",
"</div>"
],
"text/plain": [
" role team oppteam home starter vote% MV MV std \\\n",
"player \n",
"Musso P Atalanta Cagliari 1 1.0 70 6.187904 0.409565 \n",
"Carnesecchi P Atalanta Cagliari 1 0.0 5 6.153384 0.442585 \n",
"Rossi F. P Atalanta Cagliari 1 0.0 1 6.202195 0.436560 \n",
"Zappacosta D Atalanta Cagliari 1 0.6 60 6.174058 0.452587 \n",
"Zortea D Atalanta Cagliari 1 0.4 40 6.106819 0.397738 \n",
"... ... ... ... ... ... ... ... ... \n",
"Henry A Verona Milan 0 0.0 0 5.806732 0.484893 \n",
"Kallon A Verona Milan 0 0.0 0 5.847151 0.430028 \n",
"Djuric A Verona Milan 0 0.4 60 5.847715 0.371962 \n",
"Cruz A Verona Milan 0 0.0 15 5.751310 0.481451 \n",
"Braaf A Verona Milan 0 0.0 0 5.613092 0.346900 \n",
"\n",
" FV FV std MV loc MV scale MV skewness \\\n",
"player \n",
"Musso 5.778299 0.631974 6.172151 0.484012 0.024084 \n",
"Carnesecchi 5.099182 0.736154 6.095662 0.508426 0.083887 \n",
"Rossi F. 5.098540 0.738788 6.170873 0.510068 0.045397 \n",
"Zappacosta 6.519552 0.775398 6.110474 0.514245 0.090884 \n",
"Zortea 6.403875 0.627450 6.025298 0.444725 0.134716 \n",
"... ... ... ... ... ... \n",
"Henry 6.124626 0.710677 5.555864 0.490855 0.369405 \n",
"Kallon 6.110572 0.658053 5.650604 0.441275 0.323210 \n",
"Djuric 6.031966 0.518109 5.712709 0.393430 0.250597 \n",
"Cruz 5.863318 0.627091 5.655169 0.538907 0.130959 \n",
"Braaf 5.750920 0.428900 5.477731 0.361478 0.273028 \n",
"\n",
" MV tailweight FV loc FV scale FV skewness FV tailweight \\\n",
"player \n",
"Musso 1.080489 6.551383 0.575009 -0.854511 1.143475 \n",
"Carnesecchi 1.071720 5.316064 1.103085 -0.144701 0.998809 \n",
"Rossi F. 1.057536 5.311903 1.107865 -0.141756 0.997465 \n",
"Zappacosta 0.896925 5.874933 0.976198 0.463032 1.299677 \n",
"Zortea 0.941082 5.877332 0.785433 0.469323 1.299658 \n",
"... ... ... ... ... ... \n",
"Henry 0.852631 5.422048 0.779401 0.606238 1.299682 \n",
"Kallon 0.904855 5.475328 0.739265 0.582358 1.299658 \n",
"Djuric 0.961439 5.599852 0.651016 0.465176 1.299629 \n",
"Cruz 0.892866 5.455123 0.880195 0.334536 1.299594 \n",
"Braaf 0.988318 5.428794 0.569555 0.402369 1.299586 \n",
"\n",
" Clean Sheet % \n",
"player \n",
"Musso 76.430595 \n",
"Carnesecchi 24.471429 \n",
"Rossi F. 19.948235 \n",
"Zappacosta 0.000000 \n",
"Zortea 0.000000 \n",
"... ... \n",
"Henry 0.000000 \n",
"Kallon 0.000000 \n",
"Djuric 0.000000 \n",
"Cruz 0.000000 \n",
"Braaf 0.000000 \n",
"\n",
"[539 rows x 19 columns]"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"matchday_out = 5\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": 43,
"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": 44,
"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": 45,
"id": "60d73507",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Sommer (6.16, 0.43); (5.75, 0.63)\n",
"Szczesny (6.16, 0.45); (5.10, 0.74)\n",
"Meret (6.06, 0.45); (5.09, 0.74)\n",
"Provedel (6.16, 0.45); (4.50, 0.98)\n",
"Maignan (6.16, 0.44); (4.61, 0.91)\n",
"Rui Patricio (5.81, 0.51); (3.74, 1.19)\n",
"Skorupski (5.90, 0.50); (3.96, 1.15)\n",
"Milinkovic-Savic V. (6.15, 0.44); (5.41, 0.66)\n",
"Di Gregorio (6.23, 0.43); (5.10, 0.78)\n",
"Falcone (6.21, 0.45); (5.11, 0.76)\n",
"Silvestri (5.99, 0.46); (4.59, 0.91)\n",
"Terracciano (6.14, 0.45); (4.81, 0.86)\n",
"Carnesecchi (5.87, 0.50); (3.43, 1.37)\n",
"Radunovic (6.21, 0.42); (5.13, 0.73)\n",
"Montipo' (6.19, 0.44); (5.13, 0.73)\n",
"Martinez Jo. (6.08, 0.46); (4.86, 0.86)\n",
"Ochoa (6.05, 0.47); (3.48, 1.32)\n",
"Caprile (5.81, 0.48); (3.58, 1.25)\n",
"Turati (6.10, 0.48); (5.07, 0.75)\n",
"Consigli (5.99, 0.48); (3.88, 1.20)\n",
"Musso (6.17, 0.43); (5.72, 0.63)\n",
"Cragno (6.00, 0.49); (3.42, 1.40)\n",
"Perin (6.16, 0.44); (5.19, 0.69)\n",
"Berisha (5.83, 0.52); (3.40, 1.36)\n",
"Christensen O. (6.05, 0.47); (3.70, 1.22)\n",
"Sportiello (6.16, 0.44); (4.61, 0.91)\n",
"Mirante (6.16, 0.44); (4.61, 0.91)\n",
"Sepe (6.14, 0.45); (4.03, 1.09)\n",
"Leali (6.08, 0.46); (4.86, 0.86)\n",
"Lamanna (6.16, 0.45); (4.95, 0.79)\n",
"Sommariva (6.08, 0.46); (4.86, 0.86)\n",
"Pegolo (5.94, 0.49); (3.70, 1.28)\n",
"Perilli (6.17, 0.43); (5.19, 0.69)\n",
"Padelli (5.96, 0.46); (4.71, 0.90)\n",
"Scuffet (6.21, 0.42); (5.13, 0.73)\n",
"Gollini (5.83, 0.51); (3.91, 1.18)\n",
"Perisan (5.61, 0.50); (3.25, 1.32)\n",
"Audero (6.16, 0.43); (5.74, 0.63)\n",
"Di Gennaro (6.16, 0.43); (5.75, 0.63)\n",
"Pinsoglio (6.12, 0.48); (5.10, 0.74)\n",
"Aresti (6.21, 0.42); (5.13, 0.73)\n",
"Fiorillo (6.05, 0.47); (3.48, 1.32)\n",
"Cerofolini (6.21, 0.46); (5.10, 0.75)\n",
"Rossi F. (5.96, 0.50); (3.41, 1.37)\n",
"Costil (6.05, 0.47); (3.48, 1.32)\n",
"Ravaglia F. (5.90, 0.49); (3.86, 1.18)\n",
"Frattali (6.10, 0.48); (5.07, 0.75)\n",
"Contini (5.83, 0.51); (3.91, 1.18)\n",
"Brancolini (6.17, 0.46); (5.10, 0.74)\n",
"Berardi A. (6.17, 0.43); (5.19, 0.69)\n",
"Gemello (6.16, 0.43); (5.64, 0.63)\n",
"Boer (5.74, 0.53); (3.41, 1.35)\n",
"Bagnolini (5.90, 0.49); (3.86, 1.18)\n",
"Svilar (5.74, 0.53); (3.41, 1.35)\n",
"Sorrentino A. (5.97, 0.47); (3.98, 1.09)\n",
"Martinelli T. (6.04, 0.47); (4.11, 1.09)\n",
"Popa (6.16, 0.43); (5.64, 0.63)\n",
"Stubljar (5.81, 0.48); (3.58, 1.25)\n",
"Gori (6.16, 0.45); (4.95, 0.79)\n",
"Borbei (6.17, 0.46); (5.10, 0.74)\n",
"Okoye (5.96, 0.46); (4.71, 0.90)\n",
"Mandas (6.14, 0.45); (4.03, 1.09)\n",
"Dimarco (6.34, 0.39); (6.61, 0.67)\n",
"Di Lorenzo (6.31, 0.57); (6.97, 1.14)\n",
"Hernandez T. (6.13, 0.62); (6.74, 1.18)\n",
"Carlos Augusto (6.28, 0.48); (6.76, 0.92)\n",
"Danilo (6.32, 0.43); (6.65, 0.77)\n",
"Zappacosta (6.10, 0.56); (6.57, 0.98)\n",
"Schuurs (6.09, 0.46); (6.24, 0.63)\n",
"Posch (5.97, 0.48); (6.21, 0.75)\n",
"Bastoni (6.29, 0.38); (6.42, 0.50)\n",
"Smalling (6.12, 0.45); (6.40, 0.71)\n",
"Dumfries (6.26, 0.47); (6.73, 0.90)\n",
"Romagnoli (6.02, 0.50); (6.09, 0.64)\n",
"Pavard (6.12, 0.33); (6.23, 0.43)\n",
"Rrahmani (6.07, 0.54); (6.27, 0.72)\n",
"Spinazzola (6.20, 0.42); (6.50, 0.73)\n",
"Buongiorno (6.07, 0.48); (6.34, 0.78)\n",
"Bremer (6.08, 0.51); (6.29, 0.73)\n",
"Tomori (6.04, 0.46); (6.12, 0.58)\n",
"Biraghi (6.08, 0.56); (6.61, 1.03)\n",
"Mancini (6.01, 0.50); (6.27, 0.73)\n",
"Darmian (6.16, 0.36); (6.34, 0.51)\n",
"Bakker (5.99, 0.32); (6.07, 0.42)\n",
"Mazzocchi (5.79, 0.39); (5.92, 0.52)\n",
"Doig (6.00, 0.52); (6.31, 0.80)\n",
"Calabria (6.01, 0.45); (6.21, 0.66)\n",
"Acerbi (6.08, 0.35); (6.12, 0.37)\n",
"Cuadrado (6.05, 0.40); (6.15, 0.50)\n",
"Ebuehi (5.67, 0.43); (5.72, 0.52)\n",
"Casale (5.87, 0.47); (5.89, 0.58)\n",
"Holm (6.05, 0.41); (6.28, 0.60)\n",
"Baschirotto (5.93, 0.54); (6.10, 0.72)\n",
"Bijol (5.81, 0.53); (5.91, 0.70)\n",
"Thiaw (5.66, 0.68); (5.55, 0.67)\n",
"Mario Rui (6.00, 0.45); (6.10, 0.56)\n",
"Milenkovic (5.78, 0.59); (5.86, 0.76)\n",
"Rodriguez R. (5.98, 0.38); (5.98, 0.41)\n",
"Kolasinac (5.98, 0.38); (6.13, 0.51)\n",
"N'dicka (6.01, 0.28); (6.01, 0.29)\n",
"Scalvini (5.95, 0.56); (6.13, 0.74)\n",
"Perez N. (5.82, 0.45); (5.82, 0.55)\n",
"Kristensen (6.01, 0.36); (6.19, 0.54)\n",
"Izzo (5.93, 0.46); (5.98, 0.58)\n",
"De Vrij (6.24, 0.37); (6.35, 0.47)\n",
"Faraoni (5.85, 0.38); (5.96, 0.52)\n",
"Toloi (6.01, 0.46); (6.14, 0.61)\n",
"Kyriakopoulos (5.86, 0.31); (5.84, 0.35)\n",
"Bellanova (5.97, 0.41); (6.06, 0.51)\n",
"Mari' (5.77, 0.45); (5.74, 0.53)\n",
"Dodo' (5.80, 0.56); (5.91, 0.73)\n",
"Lucumi' (5.83, 0.42); (5.76, 0.47)\n",
"Hien (5.85, 0.48); (5.81, 0.54)\n",
"Natan (5.92, 0.49); (5.97, 0.57)\n",
"Hysaj (5.93, 0.39); (6.00, 0.51)\n",
"D'ambrosio (5.99, 0.32); (5.95, 0.35)\n",
"Luperto (5.54, 0.58); (5.47, 0.67)\n",
"Djimsiti (5.99, 0.40); (6.01, 0.43)\n",
"Marusic (5.84, 0.47); (5.79, 0.53)\n",
"Martin (5.91, 0.35); (6.02, 0.45)\n",
"Mina (5.97, 0.42); (6.24, 0.66)\n",
"Toljan (5.69, 0.45); (5.62, 0.49)\n",
"Llorente D. (5.81, 0.48); (5.83, 0.55)\n",
"Martinez Quarta (5.94, 0.58); (6.07, 0.75)\n",
"Bastoni S. (5.69, 0.43); (5.75, 0.56)\n",
"Dragusin (5.92, 0.45); (6.10, 0.62)\n",
"Parisi (6.04, 0.49); (6.24, 0.73)\n",
"Bradaric (5.76, 0.47); (5.81, 0.59)\n",
"Kamara H. (5.97, 0.33); (5.98, 0.39)\n",
"Olivera (5.98, 0.37); (6.11, 0.46)\n",
"Gendrey (5.92, 0.36); (5.92, 0.40)\n",
"Kristiansen (6.03, 0.37); (6.11, 0.52)\n",
"Beukema (5.94, 0.43); (5.94, 0.50)\n",
"Dossena (5.88, 0.38); (5.89, 0.45)\n",
"Pedersen (5.84, 0.33); (5.83, 0.35)\n",
"Juan Jesus (6.01, 0.34); (6.02, 0.34)\n",
"Gyomber (5.79, 0.49); (5.73, 0.54)\n",
"Alex Sandro (5.79, 0.51); (5.66, 0.52)\n",
"Hateboer (5.85, 0.50); (6.08, 0.74)\n",
"Palomino (5.92, 0.35); (5.94, 0.40)\n",
"Marchizza (5.95, 0.41); (5.98, 0.49)\n",
"Zappa (5.79, 0.38); (5.73, 0.37)\n",
"Gallo (5.90, 0.43); (5.90, 0.49)\n",
"Caldirola (5.69, 0.55); (5.74, 0.69)\n",
"Kalulu (5.82, 0.52); (5.80, 0.58)\n",
"Erlic (5.72, 0.52); (5.60, 0.54)\n",
"Vojvoda (5.91, 0.34); (5.96, 0.42)\n",
"Vasquez (5.96, 0.40); (5.97, 0.44)\n",
"Cambiaso (6.07, 0.40); (6.16, 0.48)\n",
"Pongracic (5.94, 0.43); (5.96, 0.50)\n",
"Viti (6.06, 0.31); (6.22, 0.44)\n",
"Gatti (6.13, 0.39); (6.19, 0.45)\n",
"Birindelli (5.88, 0.38); (5.86, 0.42)\n",
"Azzi (5.90, 0.33); (5.94, 0.40)\n",
"Wieteska (5.96, 0.42); (5.97, 0.51)\n",
"Masina (5.76, 0.49); (6.03, 0.71)\n",
"Romagnoli S. (5.88, 0.47); (5.94, 0.61)\n",
"Pezzella Giu. (5.53, 0.45); (5.43, 0.47)\n",
"Sabelli (5.96, 0.32); (6.03, 0.42)\n",
"Lirola (6.07, 0.46); (6.28, 0.68)\n",
"Lazzari (5.98, 0.39); (5.99, 0.43)\n",
"Bani (5.90, 0.54); (6.09, 0.76)\n",
"Djidji (5.84, 0.39); (5.86, 0.46)\n",
"Kabasele (5.79, 0.37); (5.74, 0.43)\n",
"Lazaro (6.02, 0.35); (6.07, 0.44)\n",
"Augello (5.85, 0.40); (5.92, 0.51)\n",
"Zortea (6.05, 0.46); (6.35, 0.70)\n",
"Dawidowicz (5.83, 0.47); (5.81, 0.55)\n",
"Pirola (5.72, 0.51); (5.78, 0.64)\n",
"Lovato (5.65, 0.44); (5.55, 0.46)\n",
"Ruggeri (6.09, 0.55); (6.46, 0.88)\n",
"Vina (5.78, 0.50); (5.75, 0.55)\n",
"Obert (5.76, 0.43); (5.71, 0.46)\n",
"Terracciano F. (6.08, 0.36); (6.17, 0.46)\n",
"Ebosele (5.77, 0.37); (5.74, 0.42)\n",
"Zemura (5.93, 0.31); (5.92, 0.36)\n",
"Hatzidiakos (5.95, 0.41); (5.97, 0.48)\n",
"Patric (5.97, 0.39); (5.93, 0.40)\n",
"Lykogiannis (5.84, 0.32); (5.88, 0.38)\n",
"Pellegrini Lu. (5.72, 0.37); (5.64, 0.39)\n",
"Magnani (5.78, 0.52); (5.75, 0.60)\n",
"Ranieri L. (5.67, 0.46); (5.64, 0.53)\n",
"Carboni A. (5.94, 0.37); (5.96, 0.45)\n",
"Calafiori (5.95, 0.40); (6.01, 0.53)\n",
"Monterisi (5.99, 0.62); (6.38, 1.03)\n",
"Ismajli (5.63, 0.46); (5.52, 0.48)\n",
"De Winter (5.83, 0.44); (5.74, 0.43)\n",
"Tressoldi (5.80, 0.47); (5.81, 0.56)\n",
"Ehizibue (5.74, 0.43); (5.76, 0.56)\n",
"Vogliacco (5.89, 0.45); (5.87, 0.50)\n",
"Ferrari G. (5.69, 0.52); (5.73, 0.63)\n",
"Venuti (5.79, 0.40); (5.75, 0.43)\n",
"Karsdorp (5.89, 0.25); (5.87, 0.24)\n",
"Kjaer (5.52, 0.38); (5.49, 0.35)\n",
"Gunter (5.67, 0.53); (5.59, 0.59)\n",
"Soumaoro (5.82, 0.54); (5.77, 0.61)\n",
"Di Pardo (5.81, 0.41); (5.76, 0.43)\n",
"Zanoli (6.10, 0.50); (6.48, 0.83)\n",
"Zima (5.92, 0.30); (5.89, 0.30)\n",
"Hefti (5.75, 0.42); (5.68, 0.42)\n",
"Ostigard (5.64, 0.38); (5.60, 0.36)\n",
"Sambia (5.92, 0.36); (5.95, 0.40)\n",
"Bisseck (5.97, 0.38); (6.01, 0.43)\n",
"Oyono (5.96, 0.39); (5.96, 0.43)\n",
"Ferreira J. (5.77, 0.37); (5.72, 0.41)\n",
"Dorgu (6.02, 0.33); (6.05, 0.37)\n",
"Touba (5.96, 0.40); (6.01, 0.49)\n",
"Sazonov (5.94, 0.43); (5.99, 0.54)\n",
"Rugani (6.07, 0.29); (6.08, 0.30)\n",
"De Sciglio (5.91, 0.33); (5.89, 0.32)\n",
"Goldaniga (5.66, 0.44); (5.57, 0.45)\n",
"Florenzi (5.97, 0.33); (6.04, 0.38)\n",
"De Silvestri (5.92, 0.32); (5.95, 0.40)\n",
"Pereira P. (5.85, 0.40); (5.83, 0.45)\n",
"Fazio (5.74, 0.62); (5.84, 0.79)\n",
"Bereszynski (5.54, 0.47); (5.46, 0.51)\n",
"Bonifazi (5.71, 0.44); (5.61, 0.45)\n",
"Walukiewicz (5.46, 0.41); (5.36, 0.37)\n",
"Okoli (5.88, 0.40); (5.84, 0.41)\n",
"Kumbulla (5.49, 0.75); (5.25, 0.70)\n",
"Celik (5.66, 0.38); (5.57, 0.37)\n",
"Amione (5.70, 0.45); (5.68, 0.55)\n",
"Daniliuc (5.68, 0.52); (5.68, 0.63)\n",
"Soppy (5.87, 0.36); (5.92, 0.45)\n",
"Haps (5.86, 0.45); (5.93, 0.57)\n",
"Cittadini (5.87, 0.45); (5.93, 0.59)\n",
"Coppola D. (5.75, 0.39); (5.67, 0.42)\n",
"Cacace (5.54, 0.40); (5.43, 0.39)\n",
"Ebosse (5.74, 0.34); (5.65, 0.34)\n",
"Guessand A. (5.77, 0.41); (5.77, 0.50)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Cabal (5.87, 0.25); (5.83, 0.24)\n",
"Missori (5.76, 0.43); (5.73, 0.48)\n",
"Kayode (5.99, 0.44); (6.02, 0.52)\n",
"Corazza (5.71, 0.39); (5.67, 0.44)\n",
"Kristensen T. (5.81, 0.45); (5.85, 0.58)\n",
"Dermaku (5.91, 0.43); (5.96, 0.54)\n",
"Tonelli (5.56, 0.49); (5.44, 0.53)\n",
"Capradossi (5.90, 0.44); (5.91, 0.53)\n",
"Bettella (5.87, 0.45); (5.93, 0.59)\n",
"Amey (5.82, 0.46); (5.87, 0.59)\n",
"Gila (5.86, 0.44); (5.84, 0.49)\n",
"Bronn (5.62, 0.45); (5.50, 0.46)\n",
"Guarino (5.67, 0.50); (5.67, 0.59)\n",
"Carboni F. (5.96, 0.37); (5.99, 0.45)\n",
"Smajlovic (5.91, 0.45); (5.98, 0.57)\n",
"Matturro (5.89, 0.45); (5.87, 0.50)\n",
"N'guessan (5.94, 0.43); (5.99, 0.54)\n",
"Mateus Lusuardi (5.92, 0.46); (5.97, 0.56)\n",
"Kalaj (5.92, 0.46); (5.97, 0.56)\n",
"Pierozzi (5.88, 0.48); (5.92, 0.58)\n",
"Huijsen (5.99, 0.42); (6.10, 0.54)\n",
"Bonfanti (5.97, 0.46); (6.07, 0.59)\n",
"Pellegrino (5.93, 0.46); (6.01, 0.59)\n",
"Comuzzo (5.88, 0.48); (5.92, 0.58)\n",
"Zaccagni (6.32, 0.53); (6.95, 1.16)\n",
"Koopmeiners (6.38, 0.57); (7.20, 1.36)\n",
"Luis Alberto (6.38, 0.53); (7.09, 1.23)\n",
"Felipe Anderson (6.14, 0.58); (6.77, 1.17)\n",
"Rabiot (6.31, 0.55); (7.06, 1.28)\n",
"Zielinski (6.30, 0.46); (6.71, 0.86)\n",
"Barella (6.35, 0.45); (6.79, 0.89)\n",
"Pulisic (6.21, 0.54); (6.81, 1.09)\n",
"Orsolini (6.18, 0.59); (6.84, 1.25)\n",
"Calhanoglu (6.42, 0.39); (6.67, 0.69)\n",
"Strefezza (6.19, 0.50); (6.64, 0.92)\n",
"Chukwueze (5.95, 0.43); (6.24, 0.66)\n",
"Ferguson (6.22, 0.52); (6.74, 1.01)\n",
"Candreva (6.17, 0.65); (6.86, 1.30)\n",
"Frattesi (6.35, 0.53); (7.04, 1.20)\n",
"Samardzic (6.06, 0.51); (6.47, 0.87)\n",
"Vlasic (6.13, 0.51); (6.59, 0.93)\n",
"Bonaventura (6.28, 0.57); (6.97, 1.23)\n",
"Politano (6.35, 0.45); (6.77, 0.90)\n",
"El Shaarawy (6.28, 0.46); (6.70, 0.90)\n",
"Mkhitaryan (6.36, 0.51); (7.00, 1.11)\n",
"Aouar (6.17, 0.49); (6.64, 0.94)\n",
"Malinovskyi (6.02, 0.56); (6.61, 1.10)\n",
"Gudmundsson A. (6.12, 0.46); (6.47, 0.78)\n",
"Kamada (6.06, 0.50); (6.49, 0.87)\n",
"Pellegrini Lo. (6.08, 0.56); (6.63, 1.05)\n",
"Kostic (6.22, 0.48); (6.68, 0.90)\n",
"Radonjic (6.32, 0.57); (7.08, 1.31)\n",
"Baldanzi (5.75, 0.44); (5.97, 0.62)\n",
"Lovric (6.05, 0.46); (6.37, 0.76)\n",
"Lindstrom (6.05, 0.45); (6.40, 0.74)\n",
"Lazovic (6.17, 0.49); (6.57, 0.87)\n",
"Pereyra (6.14, 0.56); (6.68, 1.07)\n",
"Renato Sanches (6.14, 0.40); (6.37, 0.61)\n",
"Pessina (6.02, 0.48); (6.33, 0.80)\n",
"Guendouzi (6.03, 0.36); (6.16, 0.47)\n",
"Loftus-Cheek (6.06, 0.36); (6.14, 0.42)\n",
"Zambo Anguissa (6.10, 0.50); (6.49, 0.83)\n",
"Elmas (6.02, 0.54); (6.50, 0.93)\n",
"Bajrami (5.93, 0.36); (6.03, 0.43)\n",
"Ricci S. (6.04, 0.38); (6.18, 0.52)\n",
"Colpani (6.33, 0.53); (7.03, 1.22)\n",
"Ciurria (6.06, 0.54); (6.54, 1.00)\n",
"De Roon (6.12, 0.50); (6.46, 0.80)\n",
"Pogba (6.03, 0.35); (6.08, 0.41)\n",
"Cristante (6.14, 0.51); (6.50, 0.83)\n",
"Locatelli (6.12, 0.40); (6.23, 0.52)\n",
"Pasalic (5.95, 0.47); (6.31, 0.76)\n",
"Lobotka (6.08, 0.37); (6.16, 0.43)\n",
"Fagioli (6.09, 0.50); (6.48, 0.84)\n",
"Ikone' (6.04, 0.56); (6.60, 1.03)\n",
"Ilic (6.04, 0.43); (6.31, 0.69)\n",
"Ndoye (5.90, 0.39); (5.96, 0.50)\n",
"Ederson D.s. (6.09, 0.48); (6.42, 0.77)\n",
"Reijnders (6.09, 0.45); (6.39, 0.70)\n",
"Barak (5.81, 0.44); (6.03, 0.61)\n",
"Saponara (6.08, 0.48); (6.43, 0.79)\n",
"Mandragora (5.94, 0.55); (6.38, 0.90)\n",
"Weah (6.04, 0.27); (6.09, 0.30)\n",
"Bennacer (6.16, 0.46); (6.53, 0.78)\n",
"Duda (6.24, 0.53); (6.79, 1.06)\n",
"Castrovilli (6.03, 0.58); (6.59, 1.04)\n",
"Mckennie (6.25, 0.44); (6.58, 0.74)\n",
"Miranchuk (6.22, 0.50); (6.69, 0.93)\n",
"Matheus Henrique (5.81, 0.46); (6.06, 0.66)\n",
"De Ketelaere (5.98, 0.48); (6.32, 0.75)\n",
"Mboula (5.81, 0.33); (5.77, 0.35)\n",
"Paredes (5.79, 0.53); (5.78, 0.61)\n",
"Sottil (5.95, 0.39); (6.13, 0.52)\n",
"Klaassen (6.16, 0.40); (6.45, 0.67)\n",
"Arthur Melo (6.01, 0.47); (6.09, 0.57)\n",
"Thorsby (5.75, 0.48); (5.86, 0.63)\n",
"Nandez (6.02, 0.35); (6.15, 0.50)\n",
"Tameze (5.91, 0.34); (5.90, 0.37)\n",
"Marin (5.71, 0.48); (5.79, 0.62)\n",
"Messias (5.96, 0.53); (6.44, 0.96)\n",
"Musah (5.96, 0.36); (5.98, 0.41)\n",
"Coulibaly L. (5.91, 0.49); (6.16, 0.73)\n",
"Krunic (5.98, 0.38); (6.00, 0.44)\n",
"Cataldi (5.97, 0.36); (5.94, 0.38)\n",
"Strootman (5.95, 0.37); (6.06, 0.49)\n",
"Duncan (6.10, 0.45); (6.42, 0.74)\n",
"Freuler (5.95, 0.29); (5.94, 0.33)\n",
"Gagliardini (5.85, 0.38); (5.80, 0.39)\n",
"Mazzitelli (6.09, 0.65); (6.51, 1.06)\n",
"Jankto (5.95, 0.31); (5.94, 0.33)\n",
"Kastanos (5.86, 0.35); (5.98, 0.44)\n",
"Gyasi (5.63, 0.43); (5.62, 0.50)\n",
"Reinier (5.93, 0.46); (6.00, 0.57)\n",
"Zalewski (5.94, 0.36); (6.09, 0.46)\n",
"Harroui (6.19, 0.46); (6.59, 0.82)\n",
"Frendrup (6.01, 0.37); (6.13, 0.49)\n",
"Blin (5.95, 0.29); (5.96, 0.32)\n",
"Fabbian (6.05, 0.43); (6.36, 0.77)\n",
"Ramadani (6.11, 0.45); (6.26, 0.60)\n",
"Cajuste (5.92, 0.48); (5.98, 0.57)\n",
"Mancosu (5.91, 0.44); (5.94, 0.53)\n",
"Vecino (5.91, 0.44); (6.00, 0.58)\n",
"Sensi (6.15, 0.45); (6.49, 0.72)\n",
"Walace (5.81, 0.38); (5.76, 0.43)\n",
"Lopez M. (5.78, 0.40); (5.70, 0.41)\n",
"Brescianini (6.01, 0.37); (6.02, 0.41)\n",
"Bove (6.03, 0.35); (6.18, 0.48)\n",
"Aebischer (5.90, 0.33); (6.00, 0.43)\n",
"Thorstvedt (5.90, 0.34); (5.97, 0.41)\n",
"Gonzalez J. (5.89, 0.39); (5.98, 0.53)\n",
"Moro N. (6.01, 0.37); (6.19, 0.54)\n",
"Oudin (6.02, 0.48); (6.31, 0.76)\n",
"Boloca (5.80, 0.48); (5.80, 0.57)\n",
"Rafia (6.04, 0.37); (6.24, 0.55)\n",
"Makoumbou (5.91, 0.33); (5.95, 0.41)\n",
"Kaba (5.97, 0.27); (5.97, 0.29)\n",
"Badelj (5.87, 0.40); (5.85, 0.39)\n",
"Machin (5.85, 0.46); (5.92, 0.60)\n",
"Linetty (5.90, 0.35); (5.92, 0.41)\n",
"Castillejo (5.83, 0.36); (6.00, 0.50)\n",
"Rovella (6.05, 0.46); (6.17, 0.59)\n",
"Pobega (5.91, 0.37); (6.07, 0.50)\n",
"Hongla (5.86, 0.37); (5.90, 0.44)\n",
"Miretti (6.00, 0.35); (6.09, 0.42)\n",
"Fazzini (5.67, 0.33); (5.56, 0.35)\n",
"Iling Junior (5.99, 0.42); (6.11, 0.55)\n",
"Oristanio (5.89, 0.37); (5.86, 0.38)\n",
"Serdar (5.89, 0.38); (5.89, 0.45)\n",
"Payero (5.84, 0.41); (5.87, 0.52)\n",
"Grassi (5.67, 0.42); (5.56, 0.44)\n",
"Baez (5.99, 0.37); (6.11, 0.47)\n",
"Deiola (5.76, 0.46); (5.82, 0.59)\n",
"Garritano (6.13, 0.34); (6.18, 0.41)\n",
"Bourabia (5.97, 0.40); (6.07, 0.50)\n",
"Saelemaekers (5.95, 0.43); (6.21, 0.66)\n",
"Maldini (5.81, 0.45); (6.10, 0.69)\n",
"Racic (5.91, 0.35); (5.90, 0.39)\n",
"Kovalenko (5.78, 0.34); (5.73, 0.37)\n",
"Maleh (5.65, 0.30); (5.53, 0.32)\n",
"Bohinen (5.91, 0.26); (5.88, 0.25)\n",
"Ranocchia F. (5.88, 0.40); (6.11, 0.57)\n",
"Folorunsho (5.93, 0.47); (6.24, 0.76)\n",
"Infantino (5.82, 0.32); (5.77, 0.32)\n",
"Martegani (5.88, 0.45); (5.92, 0.54)\n",
"Kutlu (5.87, 0.40); (5.85, 0.41)\n",
"Tchatchoua (5.89, 0.46); (5.97, 0.59)\n",
"Quina (5.97, 0.35); (6.01, 0.43)\n",
"Adopo (5.85, 0.51); (5.87, 0.58)\n",
"Romero L. (6.19, 0.49); (6.68, 0.97)\n",
"Basic (5.96, 0.37); (6.05, 0.46)\n",
"Asllani (5.89, 0.31); (5.88, 0.27)\n",
"Tchaouna (5.81, 0.38); (5.81, 0.44)\n",
"Sulemana I. (5.83, 0.31); (5.78, 0.31)\n",
"Barrenechea (5.96, 0.42); (5.99, 0.48)\n",
"Gelli (5.94, 0.47); (6.01, 0.56)\n",
"Suslov (5.92, 0.42); (5.96, 0.53)\n",
"Gaetano (6.12, 0.53); (6.72, 1.06)\n",
"Jagiello (5.90, 0.45); (5.90, 0.50)\n",
"Obiang (5.90, 0.30); (5.86, 0.30)\n",
"Maggiore (5.89, 0.25); (5.86, 0.24)\n",
"Akpa Akpro (5.85, 0.46); (5.92, 0.60)\n",
"Urbanski (5.94, 0.34); (5.98, 0.44)\n",
"Volpato (5.92, 0.39); (6.05, 0.54)\n",
"Vignato S. (5.81, 0.40); (5.78, 0.45)\n",
"Hrustic (5.63, 0.32); (5.62, 0.34)\n",
"Zarraga (5.63, 0.39); (5.57, 0.41)\n",
"Camara E. (5.82, 0.45); (5.88, 0.59)\n",
"Amatucci (5.86, 0.41); (5.87, 0.48)\n",
"Pagano (5.98, 0.28); (5.98, 0.30)\n",
"Prati (5.91, 0.40); (5.91, 0.44)\n",
"Viola (5.85, 0.33); (5.82, 0.30)\n",
"Lulic K. (5.93, 0.46); (6.00, 0.57)\n",
"Rog (5.87, 0.36); (5.85, 0.36)\n",
"Nicolussi Caviglia (5.83, 0.48); (6.00, 0.67)\n",
"Demme (6.00, 0.26); (5.95, 0.22)\n",
"Pafundi (6.04, 0.31); (6.06, 0.32)\n",
"Adli (5.83, 0.40); (5.94, 0.51)\n",
"Bondo (5.91, 0.42); (5.96, 0.54)\n",
"Zerbin (6.05, 0.35); (6.12, 0.41)\n",
"Carboni V. (5.99, 0.37); (6.06, 0.47)\n",
"Faticanti (5.92, 0.44); (6.01, 0.57)\n",
"Gineitis (5.97, 0.37); (6.02, 0.47)\n",
"Belardinelli (5.69, 0.49); (5.71, 0.60)\n",
"El Azzouzi (5.96, 0.30); (5.98, 0.36)\n",
"Lipani (5.83, 0.46); (5.86, 0.56)\n",
"Joselito (5.89, 0.46); (5.97, 0.59)\n",
"Legowski (5.88, 0.48); (5.96, 0.61)\n",
"Ibrahimovic A. (5.93, 0.46); (6.00, 0.57)\n",
"Osimhen (6.47, 0.76); (7.90, 2.05)\n",
"Martinez L. (6.50, 0.67); (7.94, 1.98)\n",
"Rafael Leao (6.43, 0.67); (7.72, 1.86)\n",
"Lukaku (6.33, 0.72); (7.50, 1.75)\n",
"Berardi (6.40, 0.71); (7.68, 1.89)\n",
"Immobile (6.14, 0.67); (6.99, 1.42)\n",
"Vlahovic (6.35, 0.74); (7.45, 1.76)\n",
"Dybala (6.43, 0.73); (7.78, 1.95)\n",
"Kvaratskhelia (6.40, 0.66); (7.57, 1.74)\n",
"Giroud (6.38, 0.66); (7.58, 1.77)\n",
"Scamacca (6.28, 0.73); (7.33, 1.67)\n",
"Thuram (6.47, 0.53); (7.27, 1.35)\n",
"Lookman (6.37, 0.70); (7.53, 1.78)\n",
"Dia (6.24, 0.72); (7.26, 1.61)\n",
"Arnautovic (6.36, 0.56); (7.18, 1.33)\n",
"Retegui (6.03, 0.65); (6.71, 1.21)\n",
"Sanabria (6.18, 0.60); (6.99, 1.34)\n",
"Nzola (5.99, 0.62); (6.63, 1.10)\n",
"Lauriente' (6.23, 0.61); (6.98, 1.36)\n",
"Zapata D. (5.96, 0.46); (6.29, 0.74)\n",
"Chiesa (6.41, 0.56); (7.25, 1.38)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Milik (6.20, 0.50); (6.71, 0.99)\n",
"Gonzalez N. (6.25, 0.64); (7.23, 1.53)\n",
"Okafor (5.95, 0.29); (5.95, 0.31)\n",
"Pinamonti (5.93, 0.59); (6.45, 1.01)\n",
"Beltran L. (5.98, 0.55); (6.50, 0.95)\n",
"Caprari (5.98, 0.52); (6.40, 0.89)\n",
"Sanchez (6.18, 0.46); (6.61, 0.86)\n",
"Caputo (5.69, 0.46); (5.95, 0.61)\n",
"Toure' E. (5.97, 0.45); (6.11, 0.59)\n",
"Krstovic (6.26, 0.43); (6.63, 0.79)\n",
"Belotti (6.11, 0.49); (6.59, 0.93)\n",
"Muriel (6.13, 0.46); (6.50, 0.81)\n",
"Lapadula (5.99, 0.51); (6.44, 0.94)\n",
"Jovic (6.00, 0.59); (6.59, 1.07)\n",
"Abraham (6.19, 0.60); (6.98, 1.31)\n",
"Zirkzee (6.21, 0.50); (6.73, 1.00)\n",
"Ngonge (6.08, 0.58); (6.70, 1.13)\n",
"Petagna (5.94, 0.50); (6.35, 0.87)\n",
"Simeone (5.82, 0.49); (6.25, 0.75)\n",
"Deulofeu (6.30, 0.59); (7.13, 1.41)\n",
"Pedro (6.04, 0.48); (6.38, 0.79)\n",
"Shomurodov (5.75, 0.39); (5.96, 0.56)\n",
"Azmoun (5.89, 0.38); (6.14, 0.58)\n",
"Castellanos (5.96, 0.29); (5.95, 0.31)\n",
"Cheddira (6.12, 0.63); (6.86, 1.30)\n",
"Karlsson (6.10, 0.44); (6.46, 0.79)\n",
"Brekalo (6.05, 0.60); (6.69, 1.12)\n",
"Cambiaghi (5.99, 0.57); (6.53, 1.05)\n",
"Henry (5.86, 0.51); (6.22, 0.79)\n",
"Mulattieri (5.91, 0.39); (6.22, 0.68)\n",
"Almqvist (6.05, 0.54); (6.48, 0.91)\n",
"Isaksen (5.86, 0.42); (5.90, 0.51)\n",
"Kean (5.87, 0.57); (6.31, 0.93)\n",
"Karamoh (5.96, 0.41); (6.22, 0.64)\n",
"Thauvin (5.71, 0.34); (5.82, 0.42)\n",
"Kouame' (6.10, 0.63); (6.86, 1.28)\n",
"Raspadori (5.93, 0.53); (6.36, 0.85)\n",
"Colombo (5.91, 0.55); (6.39, 0.95)\n",
"Luvumbo (5.96, 0.37); (6.11, 0.52)\n",
"Mota (5.87, 0.54); (6.29, 0.88)\n",
"Brenner (5.81, 0.45); (5.90, 0.59)\n",
"Bonazzoli (5.99, 0.48); (6.37, 0.80)\n",
"Djuric (5.95, 0.35); (6.10, 0.47)\n",
"Davis K. (5.81, 0.45); (5.90, 0.59)\n",
"Banda (6.08, 0.44); (6.35, 0.69)\n",
"Defrel (5.75, 0.42); (5.96, 0.59)\n",
"Sansone (6.19, 0.56); (6.85, 1.19)\n",
"Pellegri (5.79, 0.41); (6.00, 0.58)\n",
"Piccoli (5.87, 0.41); (6.14, 0.63)\n",
"Success (5.87, 0.41); (6.09, 0.61)\n",
"Botheim (5.71, 0.35); (5.84, 0.47)\n",
"Lucca (5.81, 0.38); (5.95, 0.53)\n",
"Caso (6.13, 0.47); (6.53, 0.84)\n",
"Jovane (5.86, 0.48); (5.99, 0.64)\n",
"Soule' (6.25, 0.42); (6.54, 0.71)\n",
"Pavoletti (5.80, 0.38); (5.97, 0.55)\n",
"Cancellieri (5.60, 0.34); (5.54, 0.35)\n",
"Seck (6.11, 0.34); (6.22, 0.42)\n",
"Alvarez A. (5.86, 0.43); (6.14, 0.66)\n",
"Cuni (5.97, 0.32); (5.98, 0.35)\n",
"Ekuban (5.83, 0.35); (5.95, 0.41)\n",
"Maric (5.95, 0.34); (5.98, 0.40)\n",
"Cruz (5.88, 0.47); (6.00, 0.62)\n",
"Destro (5.62, 0.46); (5.66, 0.53)\n",
"Van Hooijdonk (5.94, 0.40); (6.06, 0.55)\n",
"Ceide (5.72, 0.40); (5.80, 0.44)\n",
"Kvernadze (5.91, 0.42); (5.97, 0.51)\n",
"Ikwuemesi (5.82, 0.40); (5.87, 0.48)\n",
"Puscas (5.90, 0.45); (5.94, 0.51)\n",
"Ake' M. (5.86, 0.39); (5.88, 0.48)\n",
"Braaf (5.64, 0.35); (5.74, 0.41)\n",
"Kallon (5.84, 0.41); (6.05, 0.59)\n",
"Kaio Jorge (5.92, 0.29); (5.94, 0.30)\n",
"Vivaldo (5.81, 0.45); (5.90, 0.59)\n",
"Bidaoui (5.93, 0.47); (6.04, 0.61)\n",
"Shpendi S. (5.67, 0.43); (5.65, 0.49)\n",
"Burnete (5.96, 0.40); (6.05, 0.52)\n",
"Corfitzen (5.91, 0.46); (6.03, 0.62)\n",
"Stewart (5.86, 0.48); (5.99, 0.64)\n",
"Yildiz (6.00, 0.44); (6.14, 0.58)\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>Avg</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>100</td>\n",
" <td>6.171178</td>\n",
" <td>0.427645</td>\n",
" <td>5.716592</td>\n",
" <td>0.632592</td>\n",
" <td>6.120677</td>\n",
" <td>0.493384</td>\n",
" <td>0.075656</td>\n",
" <td>1.078080</td>\n",
" <td>6.470728</td>\n",
" <td>0.603981</td>\n",
" <td>-0.807733</td>\n",
" <td>1.135469</td>\n",
" <td>58.570200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Carnesecchi</th>\n",
" <td>P</td>\n",
" <td>Atalanta</td>\n",
" <td>Avg</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>5.869667</td>\n",
" <td>0.502827</td>\n",
" <td>3.425929</td>\n",
" <td>1.371020</td>\n",
" <td>6.030291</td>\n",
" <td>0.638892</td>\n",
" <td>-0.184642</td>\n",
" <td>1.097941</td>\n",
" <td>4.448452</td>\n",
" <td>1.535484</td>\n",
" <td>-0.582005</td>\n",
" <td>0.860812</td>\n",
" <td>1.164914</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Rossi F.</th>\n",
" <td>P</td>\n",
" <td>Atalanta</td>\n",
" <td>Avg</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>5.960478</td>\n",
" <td>0.501686</td>\n",
" <td>3.407276</td>\n",
" <td>1.365965</td>\n",
" <td>5.941229</td>\n",
" <td>0.593570</td>\n",
" <td>0.024161</td>\n",
" <td>1.093842</td>\n",
" <td>4.423328</td>\n",
" <td>1.528818</td>\n",
" <td>-0.581675</td>\n",
" <td>0.862571</td>\n",
" <td>1.128720</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Zappacosta</th>\n",
" <td>D</td>\n",
" <td>Atalanta</td>\n",
" <td>Avg</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>100</td>\n",
" <td>6.098510</td>\n",
" <td>0.555344</td>\n",
" <td>6.568691</td>\n",
" <td>0.979324</td>\n",
" <td>5.952041</td>\n",
" <td>0.611557</td>\n",
" <td>0.174813</td>\n",
" <td>0.810975</td>\n",
" <td>5.694494</td>\n",
" <td>1.174959</td>\n",
" <td>0.514689</td>\n",
" <td>1.299705</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Ruggeri</th>\n",
" <td>D</td>\n",
" <td>Atalanta</td>\n",
" <td>Avg</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>100</td>\n",
" <td>6.087699</td>\n",
" <td>0.554154</td>\n",
" <td>6.456921</td>\n",
" <td>0.876787</td>\n",
" <td>6.054248</td>\n",
" <td>0.637605</td>\n",
" <td>0.038587</td>\n",
" <td>0.828000</td>\n",
" <td>5.812500</td>\n",
" <td>1.175351</td>\n",
" <td>0.391089</td>\n",
" <td>1.299670</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>Avg</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>5.855402</td>\n",
" <td>0.505158</td>\n",
" <td>6.219285</td>\n",
" <td>0.793892</td>\n",
" <td>5.594287</td>\n",
" <td>0.513562</td>\n",
" <td>0.367600</td>\n",
" <td>0.835252</td>\n",
" <td>5.435407</td>\n",
" <td>0.871782</td>\n",
" <td>0.604878</td>\n",
" <td>1.299692</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Djuric</th>\n",
" <td>A</td>\n",
" <td>Verona</td>\n",
" <td>Avg</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>100</td>\n",
" <td>5.948880</td>\n",
" <td>0.348636</td>\n",
" <td>6.099661</td>\n",
" <td>0.472785</td>\n",
" <td>5.886502</td>\n",
" <td>0.392925</td>\n",
" <td>0.117059</td>\n",
" <td>0.988531</td>\n",
" <td>5.772749</td>\n",
" <td>0.649155</td>\n",
" <td>0.361159</td>\n",
" <td>1.299597</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Kallon</th>\n",
" <td>A</td>\n",
" <td>Verona</td>\n",
" <td>Avg</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>5.837097</td>\n",
" <td>0.413428</td>\n",
" <td>6.047479</td>\n",
" <td>0.594338</td>\n",
" <td>5.662558</td>\n",
" <td>0.429064</td>\n",
" <td>0.295895</td>\n",
" <td>0.922908</td>\n",
" <td>5.502729</td>\n",
" <td>0.699002</td>\n",
" <td>0.535697</td>\n",
" <td>1.299641</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Cruz</th>\n",
" <td>A</td>\n",
" <td>Verona</td>\n",
" <td>Avg</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>5.879865</td>\n",
" <td>0.465164</td>\n",
" <td>6.001499</td>\n",
" <td>0.617923</td>\n",
" <td>5.876376</td>\n",
" <td>0.544286</td>\n",
" <td>0.004557</td>\n",
" <td>0.915138</td>\n",
" <td>5.675189</td>\n",
" <td>0.915135</td>\n",
" <td>0.260538</td>\n",
" <td>1.299582</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Braaf</th>\n",
" <td>A</td>\n",
" <td>Verona</td>\n",
" <td>Avg</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>5.644437</td>\n",
" <td>0.345748</td>\n",
" <td>5.742957</td>\n",
" <td>0.413469</td>\n",
" <td>5.520224</td>\n",
" <td>0.365075</td>\n",
" <td>0.248614</td>\n",
" <td>0.991181</td>\n",
" <td>5.455955</td>\n",
" <td>0.567369</td>\n",
" <td>0.362917</td>\n",
" <td>1.299570</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>539 rows × 19 columns</p>\n",
"</div>"
],
"text/plain": [
" role team oppteam home starter vote% MV MV std \\\n",
"player \n",
"Musso P Atalanta Avg 1 1 100 6.171178 0.427645 \n",
"Carnesecchi P Atalanta Avg 1 0 0 5.869667 0.502827 \n",
"Rossi F. P Atalanta Avg 1 0 0 5.960478 0.501686 \n",
"Zappacosta D Atalanta Avg 1 1 100 6.098510 0.555344 \n",
"Ruggeri D Atalanta Avg 1 1 100 6.087699 0.554154 \n",
"... ... ... ... ... ... ... ... ... \n",
"Henry A Verona Avg 1 0 0 5.855402 0.505158 \n",
"Djuric A Verona Avg 1 0 100 5.948880 0.348636 \n",
"Kallon A Verona Avg 1 0 0 5.837097 0.413428 \n",
"Cruz A Verona Avg 1 0 0 5.879865 0.465164 \n",
"Braaf A Verona Avg 1 0 0 5.644437 0.345748 \n",
"\n",
" FV FV std MV loc MV scale MV skewness \\\n",
"player \n",
"Musso 5.716592 0.632592 6.120677 0.493384 0.075656 \n",
"Carnesecchi 3.425929 1.371020 6.030291 0.638892 -0.184642 \n",
"Rossi F. 3.407276 1.365965 5.941229 0.593570 0.024161 \n",
"Zappacosta 6.568691 0.979324 5.952041 0.611557 0.174813 \n",
"Ruggeri 6.456921 0.876787 6.054248 0.637605 0.038587 \n",
"... ... ... ... ... ... \n",
"Henry 6.219285 0.793892 5.594287 0.513562 0.367600 \n",
"Djuric 6.099661 0.472785 5.886502 0.392925 0.117059 \n",
"Kallon 6.047479 0.594338 5.662558 0.429064 0.295895 \n",
"Cruz 6.001499 0.617923 5.876376 0.544286 0.004557 \n",
"Braaf 5.742957 0.413469 5.520224 0.365075 0.248614 \n",
"\n",
" MV tailweight FV loc FV scale FV skewness FV tailweight \\\n",
"player \n",
"Musso 1.078080 6.470728 0.603981 -0.807733 1.135469 \n",
"Carnesecchi 1.097941 4.448452 1.535484 -0.582005 0.860812 \n",
"Rossi F. 1.093842 4.423328 1.528818 -0.581675 0.862571 \n",
"Zappacosta 0.810975 5.694494 1.174959 0.514689 1.299705 \n",
"Ruggeri 0.828000 5.812500 1.175351 0.391089 1.299670 \n",
"... ... ... ... ... ... \n",
"Henry 0.835252 5.435407 0.871782 0.604878 1.299692 \n",
"Djuric 0.988531 5.772749 0.649155 0.361159 1.299597 \n",
"Kallon 0.922908 5.502729 0.699002 0.535697 1.299641 \n",
"Cruz 0.915138 5.675189 0.915135 0.260538 1.299582 \n",
"Braaf 0.991181 5.455955 0.567369 0.362917 1.299570 \n",
"\n",
" Clean Sheet % \n",
"player \n",
"Musso 58.570200 \n",
"Carnesecchi 1.164914 \n",
"Rossi F. 1.128720 \n",
"Zappacosta 0.000000 \n",
"Ruggeri 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",
"[539 rows x 19 columns]"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"output = pd.DataFrame(columns = ['player', 'role', 'team', 'oppteam', 'home', 'starter', 'vote%', 'MV', 'MV std', 'FV', 'FV std', 'MV loc', 'MV scale', 'MV skewness', 'MV tailweight', 'FV loc', 'FV scale', 'FV skewness', 'FV tailweight', 'Clean Sheet %'])\n",
"\n",
"tot_matches = 2 # home and not home\n",
"\n",
"current_season_games = max(players_orig['games'])\n",
"\n",
"for i in range(players.shape[0]):\n",
" 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": 46,
"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": 55,
"id": "4b9f5a7d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Osimhen: MV 6.52 ± 1.55; FV 8.32 + 5.10\n",
"Osimhen: MV 6.52 ± 1.55; FV 8.31 + 5.09\n"
]
},
{
"data": {
"text/plain": [
"[array([6.5154007 , 8.31434958]),\n",
" array([0.7731867, 2.543137 ], 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": 55,
"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
}