{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"# Modeling Expected Goals\n",
"\n",
"\n",
"\n",
"\n",
"In Part I, we took a deep dive into the data and trends of shots based on three key variables; the distance, angle and a categorical variable to identify headed shots. We developed an understanding of the distributions and probabilities associated with shots and goals by representing, transforming and visualizing the data. Here, we use this data to develop a model to predict goals. \n",
"\n",
"## Classification\n",
"\n",
"First some housekeeping, lets import our data from Part I and our libraries"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n"
],
"text/plain": [
""
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#make our plots center for jupyster notebook\n",
"from IPython.core.display import HTML\n",
"HTML(\"\"\"\n",
"\n",
"\"\"\")"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Importing Jupyter notebook from xG_model_part1.ipynb\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAoEAAAHwCAYAAADZxbVBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAAg20lEQVR4nO3dfXTW9X3/8XcwAUEEQWkhQMG1KmrB2ASmoGsOInJUbpSqBSuCMkCo1U0d1rMbXe16artOHUXAUcUOkLoWiKJDQakKyCAs3HM2NmlRYI2iFjSOBK7fH/2ZU9d6U03yTa7P43FODp7ggVcurhOefL7XTUEul8sFAABJaZX1AAAAmp4IBABIkAgEAEiQCAQASJAIBABIkAgEAEiQCAQASJAIBABIkAgEAEiQCAQASJAIBABIkAgEAEiQCAQASJAIBABIkAgEAEiQCAQASJAIBABIkAgEAEiQCAQASJAIBABIkAgEAEiQCAQASJAIBABIkAgEAEiQCAQASJAIBABIkAgEAEiQCAQASJAIBABIkAgEAEhQYdYDAH7bnDlzYsGCBVnPaBRjx46NSZMmZT0DICKcBALNzIIFC6KqqirrGQ2uqqoqb+MWaJmcBALNTklJSaxatSrrGQ2qvLw86wkA7+MkEAAgQSIQACBBIhAAIEEiEAAgQSIQACBBIhAAIEEiEAAgQSIQACBBIhAAIEEiEAAgQSIQACBBIhAAIEEiEAAgQQW5XC6X9Yj3zJkzJxYsWJD1DBrJrl27IiLiC1/4QsZL8lc+3MZVVVUREVFSUpLpjobW0r+ufLhvtQRu5/w3duzYmDRpUtYzIiKiMOsBv23BggVRVVXVYr9J8uEOHTqU9YS8lw+3cfv27bOe0Cha+teVD/etlsDtnN/e+8egCPwAJSUlsWrVqqxn0AjKy8sjIvz5NiK3MY3FfatpuJ3z23t/vs2FxwQCACRIBAIAJEgEAgAkSAQCACRIBAIAJEgEAgAkSAQCACRIBAIAJEgEAgAkSAQCACRIBAIAJEgEAgAkSAQCACRIBAIAJEgEAgAkSAQCACRIBAIAJEgEAgAkSAQCACRIBAIAJEgEAgAkSAQCACRIBAIAJEgEAgAkSAQCACRIBAIAJEgEAgAkSAQCACRIBAIAJEgEAgAkSAQCACRIBAIAJEgEAgAkSAQCACRIBAIAJEgEAgAkSAQCACRIBAIAJEgEAgAkSAQCACRIBAIAJEgEAgAkSAQCACRIBAIAJEgEAgAkSAQCACRIBAIAJEgEAgAkqDDrAUDDqqqqivLy8qxnkGeqqqqipKQk6xlAAxKBkEfGjh2b9QTyVElJifsX5BkRCHlk0qRJMWnSpKxnANACeEwgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCCQrOrq6li/fn1UV1dnPQWgyYlAIEkLFy6MXr16xYUXXhi9evWKhQsXZj0JoEmJQCA51dXVcf3110dNTU289dZbUVNTE9dff70TQSApIhBIzu7du6N169bv+1xRUVHs3r07m0EAGRCBQHJ69+4dhw8fft/namtro3fv3tkMAsiACASS06VLl5g7d260bds2OnToEG3bto25c+dGly5dsp4G0GQKsx4AkIUxY8bEkCFDYvfu3dG7d28BCCRHBALJ6tKli/gDkuVyMABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIJEIABAgkQgAECCRCAAQIIKsx5AWqqqqqK8vDzrGXyAI0eOxNGjR6OoqCjrKTSC2traOOaYY6JVK//+b66qqqqipKQk6xkkQgTSZMaOHZv1BD5ELpeLLVu2REREv379hEKeOXLkSGzZsiWKiorii1/8YhQUFGQ9id+jpKTE90qajAikyUyaNCkmTZqU9Qw+xD//8z/HNddcE6effnrM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l4u6urqora2N2traePvtt+OVV16JPXv2RHV19e/8Wp07d44zzjgjBg0aFAMHDoxzzz03unTp0gRfLdDSNbfO8VoEQIvVtWvXuPzyy+Pyyy+v/9yhQ4fqI27Pnj3v++//+q//infffbc++Gpra6OgoCAKCwvro7Bt27bRo0ePKCsrix49evzOyWK7du0y/IoBGo4IBPJK+/bto0+fPtGnT5+spwA0ax60AgCQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQIBEIAJAgEQgAkCARCACQoMKsBwA0llwuFwcPHox9+/bF3r17Y9++ffHmm29GXV1d1NbWRl1dXRQUFERhYWH9R6dOnaK4uDi6desWxcXF0b59+6y/DIBGIQKBFu/AgQOxcePG2LBhQ2zevDleeeWV2LdvX+zbty/efvvtT/Vrt2/fvj4Ke/ToESUlJVFaWhpf+tKXomPHjg30FQA0PREItCgHDx6MdevWxYYNG6KysjIqKyvj5Zdfrv/5z33uc9GrV68oLS2tP8377R87d+4cRUVF9Sd/ERF1dXVRV1cXhw8fjgMHDtSfGv7fH3/+85/H/Pnz63+vL3zhC1FaWhplZWVRWloaAwYMiOOOO67JbxOAT0IEAs3eL3/5y3j88cejoqIinnvuuaitrY2IiJNPPjlKS0tj0qRJ9adzJ5544qf6vbp27RpnnHHGB/58dXV1fXxWVlbG2rVrY9GiRRER0aZNmxgyZEiMGDEiLr300iguLv5UWwAakwgEmp1cLhcbN26MioqKqKioiKqqqoiIOPXUU+Omm26KoUOHRmlpaXTu3LnJt3Xp0iWGDRsWw4YNq/9cdXV1bNiwIZYvXx4VFRWxbNmyiIjo379/jBgxIkaMGBF9+/aNgoKCJt8L8EEKcrlcLusR7ykvL4+IiFWrVmW6A8jGr371q5g7d27Mnj07fvGLX0SrVq1i0KBBMWLEiBg+fHicdtppWU/8SLlcLrZt21YfsOvWrYuI31w6njJlSkyYMCGTeAWy19w6RwQCmcrlcrFmzZqYOXNmPPbYY1FbWxsXXHBBXHPNNXHJJZfESSedlPXET2X//v3xxBNPxLx58+LFF1+MY489Nr761a/G1KlTo3///lnPA5pQc+scrxMIZOLgwYMxa9asKCkpifPOOy+WLVsWU6dOjR07dsSKFSvi2muvbfEBGPGbxxhOnDgxXnjhhdi0aVOMHz8+HnvssRgwYED0798/Hnrooaipqcl6JpAgEQg0qZqamvje974XvXr1ihtuuCFatWoVDz74YLz66qtx7733Rp8+fbKe2Gj69esXDzzwQOzduzdmzJgR77zzTlx33XXRu3fvmDFjRhw+fDjriUBCRCDQJOrq6uKf/umf4pRTTom/+Iu/iHPOOSfWrFkTGzdujIkTJyb10iodOnSIadOmxdatW+O5556LM844I2688cbo06dPzJ8/P44ePZr1RCABIhBoVLlcLn72s59F375940//9E+jZ8+esWrVqnjyySfj3HPPTfoZswUFBVFeXh7PPvtsPPXUU9GxY8f42te+FmeffXY8+eST0Ywesg3kIREINJq1a9fGOeecE6NHj46CgoJYvHhxrFmzJr785S9nPa1ZKSgoiGHDhkVlZWUsWLAgDh06FJdcckmUl5fHxo0bs54H5CkRCDS4d955J2655ZYYNGhQ7N27N+bOnRubN2+OUaNGJX3y91FatWoVY8aMiR07dsQPf/jD2LlzZwwYMCD+6q/+yuMFgQYnAoEGtWbNmigpKYkf/OAHMWXKlNi+fXtcd9119W/Rxkdr3bp1TJ06NXbu3BlXX3113H333VFWVuZUEGhQIhBoEDU1NXHLLbfEeeedF4cPH46VK1fGzJkz4/jjj896WovVqVOnmDdvXlRUVMRrr70WAwYMiL/+6792Kgg0CBEIfGpr166tP/2bPHlybNmyJQYPHpz1rLwxfPjw2LZtW1x99dXxrW99K8rKyuLf//3fs54FtHAiEPjEcrlczJw5M84///z43//931ixYkU88MADTv8awf89FTz33HPjxz/+cdazgBZMBAKfyOHDh+OGG26IadOmxbBhw2LTpk1xwQUXZD0r7w0fPjw2b94cAwcOjHHjxsVtt90WR44cyXoW0AKJQOAPVl1dHUOGDInZs2fH7bffHkuXLo2OHTtmPSsZJ510UixfvjymTZsW3//+9+PSSy+NN998M+tZQAsjAoE/yKZNm6J///6xfv36mD9/fnznO9+JY445JutZySkqKooZM2bE7NmzY8WKFXHOOefEf/zHf2Q9C2hBRCDwsS1evDgGDhwYdXV18cILL8TYsWOznpS8SZMmxcqVK+P111+PAQMGxNNPP531JKCFEIHAxzJv3rz4yle+En379o3169dHWVlZ1pP4//7kT/4k1q9fH7169YpLL700Fi9enPUkoAUQgcBH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\n",
"text/plain": [
"
"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"xG_model_part1.ipynb:49: RuntimeWarning: invalid value encountered in arccos\n",
" \"source\": [\n"
]
}
],
"source": [
"#for extended notes and descriptions, visit part 1\n",
"#use nbimporter to extract our shot_matrix function from part 1\n",
"import nbimporter\n",
"from xG_model_part1 import shot_matrix\n",
"import pandas as pd\n",
"import numpy as np\n",
"import os\n",
"import json\n",
"import seaborn as sns \n",
"import matplotlib.pyplot as plt\n",
"from matplotlib.patches import Arc\n",
"from PlotPitch import draw_pitch\n",
"directory = '/Users/Ian/Desktop/IDanalytics/event_data'\n",
"jsonfiles = []\n",
"for path in os.listdir(directory):\n",
" jsonfiles.append(os.path.join(directory,path))\n",
"all_leagues = []\n",
"for file in jsonfiles:\n",
" all_leagues.append(shot_matrix(file))\n",
"df = pd.concat(all_leagues)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
Goal
\n",
"
x
\n",
"
y
\n",
"
playerid
\n",
"
teamid
\n",
"
matchid
\n",
"
header
\n",
"
Y
\n",
"
X
\n",
"
Center_dis
\n",
"
Distance
\n",
"
Angle Radians
\n",
"
Angle Degrees
\n",
"
\n",
" \n",
" \n",
"
\n",
"
213
\n",
"
1
\n",
"
6
\n",
"
57
\n",
"
256992
\n",
"
3799
\n",
"
2500686
\n",
"
0
\n",
"
38.76
\n",
"
6.30
\n",
"
7.0
\n",
"
7.896050
\n",
"
0.755576
\n",
"
43.291300
\n",
"
\n",
"
\n",
"
302
\n",
"
0
\n",
"
17
\n",
"
42
\n",
"
334552
\n",
"
3772
\n",
"
2500686
\n",
"
1
\n",
"
28.56
\n",
"
17.85
\n",
"
8.0
\n",
"
18.660549
\n",
"
0.372069
\n",
"
21.317963
\n",
"
\n",
"
\n",
"
498
\n",
"
1
\n",
"
4
\n",
"
43
\n",
"
26389
\n",
"
3772
\n",
"
2500686
\n",
"
0
\n",
"
29.24
\n",
"
4.20
\n",
"
7.0
\n",
"
6.348039
\n",
"
0.851948
\n",
"
48.813019
\n",
"
\n",
"
\n",
"
577
\n",
"
0
\n",
"
16
\n",
"
21
\n",
"
276920
\n",
"
3772
\n",
"
2500686
\n",
"
0
\n",
"
14.28
\n",
"
16.80
\n",
"
29.0
\n",
"
25.905953
\n",
"
0.184838
\n",
"
10.590449
\n",
"
\n",
"
\n",
"
629
\n",
"
0
\n",
"
27
\n",
"
51
\n",
"
366760
\n",
"
3799
\n",
"
2500686
\n",
"
0
\n",
"
34.68
\n",
"
28.35
\n",
"
1.0
\n",
"
28.358154
\n",
"
0.256637
\n",
"
14.704224
\n",
"
\n",
"
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
...
\n",
"
\n",
"
\n",
"
642945
\n",
"
0
\n",
"
28
\n",
"
45
\n",
"
8561
\n",
"
1633
\n",
"
2500098
\n",
"
0
\n",
"
30.60
\n",
"
29.40
\n",
"
5.0
\n",
"
29.595946
\n",
"
0.244517
\n",
"
14.009788
\n",
"
\n",
"
\n",
"
643023
\n",
"
1
\n",
"
14
\n",
"
33
\n",
"
41174
\n",
"
1633
\n",
"
2500098
\n",
"
0
\n",
"
22.44
\n",
"
14.70
\n",
"
17.0
\n",
"
18.700898
\n",
"
0.309646
\n",
"
17.741433
\n",
"
\n",
"
\n",
"
643051
\n",
"
0
\n",
"
12
\n",
"
62
\n",
"
7879
\n",
"
1623
\n",
"
2500098
\n",
"
0
\n",
"
42.16
\n",
"
12.60
\n",
"
12.0
\n",
"
15.011516
\n",
"
0.410444
\n",
"
23.516712
\n",
"
\n",
"
\n",
"
643055
\n",
"
0
\n",
"
8
\n",
"
38
\n",
"
145692
\n",
"
1623
\n",
"
2500098
\n",
"
0
\n",
"
25.84
\n",
"
8.40
\n",
"
12.0
\n",
"
11.710918
\n",
"
0.461143
\n",
"
26.421528
\n",
"
\n",
"
\n",
"
643149
\n",
"
0
\n",
"
14
\n",
"
50
\n",
"
8005
\n",
"
1633
\n",
"
2500098
\n",
"
1
\n",
"
34.00
\n",
"
14.70
\n",
"
0.0
\n",
"
14.700000
\n",
"
0.488036
\n",
"
27.962409
\n",
"
\n",
" \n",
"
\n",
"
40458 rows × 13 columns
\n",
"
"
],
"text/plain": [
" Goal x y playerid teamid matchid header Y X \\\n",
"213 1 6 57 256992 3799 2500686 0 38.76 6.30 \n",
"302 0 17 42 334552 3772 2500686 1 28.56 17.85 \n",
"498 1 4 43 26389 3772 2500686 0 29.24 4.20 \n",
"577 0 16 21 276920 3772 2500686 0 14.28 16.80 \n",
"629 0 27 51 366760 3799 2500686 0 34.68 28.35 \n",
"... ... .. .. ... ... ... ... ... ... \n",
"642945 0 28 45 8561 1633 2500098 0 30.60 29.40 \n",
"643023 1 14 33 41174 1633 2500098 0 22.44 14.70 \n",
"643051 0 12 62 7879 1623 2500098 0 42.16 12.60 \n",
"643055 0 8 38 145692 1623 2500098 0 25.84 8.40 \n",
"643149 0 14 50 8005 1633 2500098 1 34.00 14.70 \n",
"\n",
" Center_dis Distance Angle Radians Angle Degrees \n",
"213 7.0 7.896050 0.755576 43.291300 \n",
"302 8.0 18.660549 0.372069 21.317963 \n",
"498 7.0 6.348039 0.851948 48.813019 \n",
"577 29.0 25.905953 0.184838 10.590449 \n",
"629 1.0 28.358154 0.256637 14.704224 \n",
"... ... ... ... ... \n",
"642945 5.0 29.595946 0.244517 14.009788 \n",
"643023 17.0 18.700898 0.309646 17.741433 \n",
"643051 12.0 15.011516 0.410444 23.516712 \n",
"643055 12.0 11.710918 0.461143 26.421528 \n",
"643149 0.0 14.700000 0.488036 27.962409 \n",
"\n",
"[40458 rows x 13 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#lets drop nan values and make sure our binary data is numeric for later\n",
"df = df.dropna()\n",
"#df = df.drop(columns = ['x','y','Center_dis'])\n",
"df['header'] = pd.to_numeric(df['header'])\n",
"df['Goal'] = pd.to_numeric(df['Goal'])\n",
"df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"Since our response variable (shot result) is categorical, we must apply classification methods to create a predictive model. To introduce this type of approach, let’s look at an illustrative example. Assume we plot a random selection of shots from our data and classify them based on their result, only taking the distance into account. "
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#we are going to plot specific point for a demonstration of what the Heaviside function does\n",
"from PlotPitch import draw_pitch\n",
"#choose specific goals and misses\n",
"idx_goal = np.where((df['Goal']==1) & (df['Distance'] < 12)) \n",
"df_HS_goal = df.iloc[idx_goal]\n",
"idx_miss = np.where((df['Goal']==0) & (df['Distance']> 13)) \n",
"df_HS_miss = df.iloc[idx_miss]\n",
"\n",
"#plot them with a bounday line between\n",
"prob=np.array(df['Goal'])\n",
"fig, ax = plt.subplots(figsize=(11, 7))\n",
"draw_pitch(orientation=\"vertical\",\n",
" aspect=\"half\",\n",
" pitch_color='white',\n",
" line_color=\"black\",\n",
" ax=ax)\n",
"goals = plt.scatter(data = df_HS_goal.head(100),x='Y', y='X',alpha=.7)\n",
"misses = plt.scatter(data = df_HS_miss.head(100),x='Y', y='X',alpha=.7,marker='x')\n",
"ax.set_xlim(0,68)\n",
"plt.legend((goals,misses),('Goal','Miss'))\n",
"ax.set_ylim(52.5,0)\n",
"circle = plt.Circle((34,0),13,fill=False, color = 'Green')\n",
"ax.add_artist(circle)\n",
"plt.axis('off')\n",
"\n",
"plt.show()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Above we can see that there is a clear distinction between the blue and orange clusters. If we assume this is the true nature of the relationship between shots and distance, and we want to predict future shot results based on this data, what model could we adopt?\n",
"\n",
"Since the data is easily separable, we can draw a boundary line between the two clusters. This line will represent a discriminant function, which we will use to classify each shot outcome as a goal or miss. In the case above, the discriminant function maps out a distance r from the center of the goal. \n",
"\n",
"This discriminant function, drawn in green, is defined by the equation 𝑦=αx+β, where x is the distance from goal and y is the binary response. Specifically for the data above, y = x -12. We can translate this into a classification model by applying the so-called Heaviside function to our discriminant, which will return a value of 0 or 1 as the response variable is based on the value of y:\n",
"\n",
"\n",
"\n",
"$$\n",
"\\begin{array}{rcl}\n",
" H(y) & \\equiv & \\left\\{\\begin{array}{ll}\n",
" 0 & \\mathrm{if}\\ y > 0\n",
" \\\\\n",
" 1 & \\mathrm{if}\\ y \\leq 0\n",
" \\end{array}\\right..\n",
"\\end{array}\n",
"$$\n",
"\n",
"The Heaviside function is a hard classifier and the simplest classification model, but it requires the data to be cleanly separable.\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Heaviside Function Classification for Shots')"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#plot the heaviside function on top of the responses for the seperable data above\n",
"df_HS_predictor = np.append(df_HS_goal['Distance'].head(100), df_HS_miss['Distance'].head(100))\n",
"df_HS_response = np.append(df_HS_goal['Goal'].head(100), df_HS_miss['Goal'].head(100))\n",
"\n",
"fig, axes = plt.subplots(figsize=(11,7))\n",
"\n",
"goals = plt.scatter(df_HS_goal['Distance'].head(100),df_HS_goal['Goal'].head(100))\n",
"misses = plt.scatter(df_HS_miss['Distance'].head(100),df_HS_miss['Goal'].head(100),marker='x')\n",
"plt.plot([0,12], [1, 1], 'k-', lw=2,c='green')\n",
"plt.plot([12,12], [0, 1], 'k-', lw=2,c='green')\n",
"plt.plot([12,40], [0, 0], 'k-', lw=2,c='green')\n",
"plt.xlabel('Distance (m)')\n",
"plt.ylabel('Shot Result')\n",
"plt.title('Heaviside Function Classification for Shots')\n",
"\n",
"\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#we are going to create a contour plot to see how the heaviside function classifies onto a pitch\n",
"#first we must simulate the data above and we can do that by initializing \n",
"#some numpy arrays what have certain properties\n",
"from PlotPitch import draw_pitch \n",
"\n",
"#heaviside returns 0 if y is negative and 1 otherwise\n",
"def heaviside(Y):\n",
" A = np.where(Y<=0, 0, 1)\n",
" return A\n",
"\n",
"#plot contour plot over the pitch from before\n",
"fig, ax = plt.subplots(figsize=(11, 7))\n",
"draw_pitch(orientation=\"vertical\",\n",
" aspect=\"half\",\n",
" pitch_color='white',\n",
" line_color=\"black\",\n",
" ax=ax)\n",
"\n",
"x0 = np.linspace(0, 68, 100)\n",
"x1 = np.linspace(0,53 , 100)\n",
"x11 = np.linspace(53,0 , 100)\n",
"x0_grid, x1_grid = np.meshgrid(x0, x1)\n",
"h_grid = heaviside(144-(x0_grid-34)**2-(x1_grid-53)**2)\n",
"plt.contourf(x0, x11, h_grid,cmap='OrRd',alpha=.8,levels=10)\n",
"plt.xlabel('X (m)')\n",
"plt.ylabel('Y (m)')\n",
"plt.title('Heaviside Function Classification for Shots')\n",
"\n",
"plt.axis('off')\n",
"ax.set_xlim(0,68)\n",
"ax.set_ylim(52.5,0)\n",
"plt.colorbar()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In reality, the data describing shots is not cleanly separable, making goals difficult to predict with any kind of certainty. Nevertheless, the Heaviside function serves as a natural progression into more advanced classification models. \n",
"\n",
"If we take a real sample of the data, it might resemble the plot below."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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sdgTERFZHIs9ERGRxbHYExERWRyLPRERkcWx2BMREVkciz0REZHFsdgTERFZHIs9ERGRxbHYExERWRyLPRERkcWx2BMREVkciz0REZHFsdgTERFZHIs9ERGRxTn0HgARqedyubB//36UlpbixIkTOH78uOTPM2fOwOVywe12w+12w263w+FwwOFwoGXLlujUqRM6d+4s+bNLly7o378/LrroIr13j4hUYrEnMhmXy4W9e/eioKCg/r/i4mLU1NRIHte+ffv64t23b1/ExcXB6XTCbrfD6/XC5XLB5XKhvLwcJ06cwL59+3DixAl4PJ76dQiCgD59+mDIkCHIyMhARkYGBg8ezH8AEJkMiz2RCZSWlmLVqlXIy8vDl19+WV/YW7RogSuuuAK//e1vkZGRgV69eqFTp07o2LEj4uLiQt6O1+vFmTNncPz4cZSWlqKoqAj5+flYv349li1bBsD3D4DBgwcjJycHOTk5GDRoEARB0HR/iUhbgiiKQf/PrKwscePGjdEbDREBAERRRGFhIfLy8pCXl4eioiIAQFpaGiZMmIBhw4YhIyMDl156KWy26Pz05scff0RBQQF27NiBzz//HFu2bIEoiujatWt94c/KykJ8fHxUxkNEDbKysrBx48ag/+pmsScykLNnz2Lx4sV49dVXceTIEdhsNowYMaK+mPbp00fvIdY7deoUVq9ejVWrVmHt2rWorKxEq1atMHPmTNx3333o3bu33kMkihks9kQmsGPHDixcuBDvvvsuqqur8atf/QqzZ8/GxIkT0b59e72H16zq6mqsW7cOy5Ytw7///W+4XC6MHj0a999/P37961/D4eA3hkSR1FyxZ/SOSCderxfvvPMOhg4dimHDhmH58uWYOXMmiouL8dVXX2HWrFmmKPQAkJCQgAkTJiA3NxelpaVYsGABDhw4gBtvvBE9evTA008/jfPnz+s9TKKYxWJPFGWiKGL16tUYPHgwpk+fjoqKCrz88ss4fvw4Xn31VQwcOFDvIapy8cUX47HHHsN3332HFStWoF+/fnjsscfQq1cvvPTSS41SA0QUeSz2RFG0efNmjBo1ChMnTkRFRQVyc3OxZ88ezJkzBy1atNB7eJpyOBy44YYb8Nlnn2Hbtm3o378/HnzwQfTt2xdvvfWWJOJHRJHFYk8UBYcOHcINN9yAq666CocOHcLChQux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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# for a real representation of the data, let's try different characteristics\n",
"#remember these are just for demonstration\n",
"\n",
"idx = np.where((df['Goal']==1) & (df['Distance'] < 25)) \n",
"df_log_goal = df.iloc[idx]\n",
"idx = np.where((df['Goal']==0) & (df['Distance']> 5)) \n",
"df_log_miss = df.iloc[idx]\n",
"\n",
"\n",
"#same as before\n",
"prob=np.array(df['Goal'])\n",
"fig, ax = plt.subplots(figsize=(11, 7))\n",
"draw_pitch(orientation=\"vertical\",\n",
" aspect=\"half\",\n",
" pitch_color='white',\n",
" line_color=\"black\",\n",
" ax=ax)\n",
"goals = plt.scatter(data = df_log_goal.head(150),x='Y', y='X',alpha=.7)\n",
"misses = plt.scatter(data = df_log_miss.head(150),x='Y', y='X',alpha=.7,marker='x')\n",
"classifer = Arc(xy=(10,10),width=12,height=12)\n",
"ax.set_xlim(0,68)\n",
"ax.set_ylim(52.5,0)\n",
"plt.legend((goals,misses),('Goal','Miss'))\n",
"plt.axis('off')\n",
"\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In the event where the data is not cleanly separable, we must look to model the probability as opposed to assigning hard zero and ones. We have already seen in our data exploration that there are clear trends for the probability with respect to the distance and angle variables. What function should we adopt to model these trends? There are numerous functions that map out probabilities and fit non-separable data, but we use the logistic function (also known as the sigmoid function) due to its simplicity.\n",
"\n",
"$$\n",
"\\begin{array}{rcl}\n",
" G(y) & \\equiv & \\dfrac{1}{1 + e^{-y}} \\equiv \\dfrac{1}{1+e^{-(\\alpha x_{1} +\\beta)}}\n",
"\\end{array}\n",
"$$\n",
"\n",
"Similar to the heaviside function, the logistic function takes in our predictors (distance in this case), but instead outputs values between zero and one. \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The logistic function takes any value in the domain $(-\\infty, +\\infty)$ and produces a value in the range $(0, 1)$. Thus, given a value $y$, we can interpret $G(y)$ as a conditional probability that the shot results in a goal, $G(y) \\equiv \\mathrm{Pr}[\\mbox{label is }1 \\,|\\, y]$."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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2eOMZtEZ2Q8++IDu3bvTv39/jjrqKAYOHIhzrjh/ly5d6NixI507d2bLli3ceuutTJo0iezsbCZNmsT48eMZPnw4ECrHPXr0ICsri9NOO42VK1cWr3vkyJF06dKFQw89NKZnVkVERMRbNe5M5rVvXUvuutyYLjP7wGxGnzW60vNdeumljBkzhm7dunHrrbfyz3/+k9GjRzN06FCeeuopTjzxRG644YZS573vvvsYO3YsXbt2JS8vj7p163LXXXdx3333MX36dCBUBIv861//IjMzk6+//hqguNCWNHDgQNLT0wF49913y82/YMECvv32W5o3b07Xrl2ZPXs2nTt3ZsCAAUyaNIlOnTqxdetW6tWrx+233868efN45JFHABg/fnzxckaMGMHgwYMZPHgwTz/9NCNHjmTq1KkArF27lo8//pjvvvuO3r17079//wr3q4iIiCS+uJ3JNLOnzewXM/umjPFmZg+b2VIz+8rMfhevLF7YsmULmzdvplu3bgAMHjyYjz76iM2bN7Nt2zZOPPFEgOK3vkvq2rUr1113HQ8//DCbN28mJaX8/z/wzjvvcM011xQ/b9y4canTvfjii+Tm5pKbm0vTpk3LXWbnzp1p0aIFPp+P7OxsVqxYweLFiznooIPo1KkTAA0bNqww26efflq8nYMGDeLjjz8uHte3b198Ph9HH300P//8c7nLERERkeQRzzOZ44FHgOfKGH82cET453jgsfC/+6QqZxwT0Q033MA555zDjBkz6Nq1KzNnzozLelJSUigsLASgsLCQQCBQPK5OnTrFj/1+PwUFBTFff+Q6it6Or02mLljDvTMX89PmfJo3SmfUmUcC7DWs77EHRzVvadNVJUPkciq7nqkL1vCPad+yOX83AI3rpXLbH46pMNstU7/mpc9XESxxHJQ2f1mZSg4/9ahmvP/d+krto8hlZKanYgabd+ymUb1UnIPN+bsxoChltNtXUfbSxrVums5nP2wi6Bx+My46viX/7tshqvWUtz6g1P20ZnM+fjOCznFwKfuvrP25L8fxvpi6YA03v/Y12wNBAAwYeEKrvfZR5LHlN+PQZvVY+sv24tewfpqfO/p1iOl/P2UdRxXti2j+e7zp1a/YsTv0e9sMBh7fipxDmsR9f8dSydekKse27ClWfxNiKW4l0zn3kZm1LmeSPsBzLtQsPjOzRmZ2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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#plot a general logistic function for demonstration\n",
"fig, ax = plt.subplots(figsize=(11, 7))\n",
"rand_t=np.random.normal(5,5,50)\n",
"rand_f=np.random.normal(-5,5,50)\n",
"plt.scatter(rand_t,np.random.randint(1,2,50))\n",
"plt.scatter(rand_f,np.random.randint(0,1,50))\n",
"\n",
"y = np.linspace(-15,15,100)\n",
"plt.plot(y,1/(1+np.exp(-(.5*y))),c='Green',label='')\n",
"plt.plot(y,1/(1+np.exp(-(.5*y))),c='Green',label='Logistic Function')\n",
"plt.plot(y,1/(1+np.exp(-(.5*y))),c='Green',label='Logistic Function')\n",
"\n",
"plt.xlabel('Predictor')\n",
"plt.ylabel('Response')\n",
"plt.title('Logistic Function')\n",
"plt.legend()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The logistic function is an S-shaped curve that changes in slope and trajectory based on the values of the coefficients. Now the question is, how do we use the logistic function to model our shot data? Well, for each predictor variable we employ, we optimize the corresponding coefficient (α, β, etc.) to best fit the data. What do we optimize on? Something known as the log-likelihood. The process of maximizing the log-likelihood is beyond the scope here, but if you are interested in the process, here is a good jumping off point. For a slower-paced visual demonstration, StatsQuest does a good job. \n",
"\n",
"# The xG model\n",
"\n",
"Our goal is to create a model to accurately describe our existing data as well as possible, and to eventually predict future events. Before applying logistic regression to our entire dataset, we must split our data into training and test sets. The training set serves at the data we build our model on, and the testing set is the data we use to evaluate how well our model performs. Fitting the training data to the logistic function will produce coefficients for our predictors ( I will do this by using the Scikit-learn library in Python). If we start by only fitting the distance variable, we should arrive at the optimal parameters to describe the training data:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[-0.14641592]] [0.09763449]\n"
]
},
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
"
\n",
"
\n",
"
coef
\n",
"
\n",
" \n",
" \n",
"
\n",
"
Distance
\n",
"
-0.146416
\n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" coef\n",
"Distance -0.146416"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#we are going to split the data into a test and train set(20% of it will go towards testing)\n",
"#for now we are going to model just the distance predictor\n",
"from sklearn import metrics \n",
"from sklearn.model_selection import train_test_split\n",
"train_dis = df[['Goal','Distance']].copy()\n",
"x_train_dis, x_test_dis, y_train_dis, y_test_dis = train_test_split(train_dis.drop('Goal',axis=1), \n",
" train_dis['Goal'], test_size=0.20, \n",
" random_state=10)\n",
"from sklearn.linear_model import LogisticRegression\n",
"lgm_dis = LogisticRegression()\n",
"lgm_dis.fit(x_train_dis,y_train_dis)\n",
"log_odds = lgm_dis.coef_[0]\n",
"print(lgm_dis.coef_, lgm_dis.intercept_)\n",
"pd.DataFrame(log_odds, \n",
" x_train_dis.columns, \n",
" columns=['coef']).sort_values(by='coef', ascending=False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\begin{array}{rcl}\n",
" G(y) = \\dfrac{1}{1+e^{(0.146*distance - 0.097)}}\n",
"\\end{array}\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Logistic Regression Model for Shots')"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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EZGoU8gUERERkahTyBQRERGRqFPIFBEREZGoU8gUERERkahTyBQRERGRqFPIFBEREZGoU8gUERERkahTyBQRERGRqFPIFBEREZGoU8gUERERkahTyBQRERGRqFPIFBEREZGoU8gUERERkahTyBQRERGRqFPIFBEREZGoU8gUERERkahTyBQRERGRqFPIFBEREZGoU8gUERERkahTyBQRERGRqFPIFBEREZGoU8gUERERkahTyBQRERGRqFPIFBEREZGoU8gUERERkahTyBQRERGRqFPIFBEREZGoU8gUERERkahTyBQRERGRqFPIFBEREZGoU8gUERERkahTyBQRERGRqFPIFBEREZGoU8gUERERkahTyBQRERGRqFPIFBEREZGoU8gUERERkahTyBQRERGRqFPIFBEREZGoU8gUERERkahTyBQRERGRqFPIFBEREZGoU8gUERERkaiLacg0s2FmtsjMlpjZrSGGtzOzKWY218y+N7NTY1mPiIiIiFSNmIVMM0sExgCnAN2Ai82sW9BodwBvOueOBIYD/4pVPSIiIiJSdWJ5JLMPsMQ5t9Q5txd4HTgraBwHHOR73hBYG8N6RERERKSKxDJktgZWBXSv9vULdDdwmZmtBiYCN4aakZlda2azzWx2Tk5OLGoVERERkSiK940/FwMvOufaAKcCL5tZmZqcc2Odc9nOueysrKwqL1JEREREKieWIXMN0Dagu42vX6CrgDcBnHMzgFSgaQxrEhEREZEqEMuQOQvobGYdzSwF78ae94PGWQkcD2BmXfFCps6Hi4iIiNRwMQuZzrlC4AZgEvAj3l3kC8zsXjM70zfaH4BrzOw74DXgCueci1VNIiIiIlI1kmI5c+fcRLwbegL73RXwfCEwIJY1iIiIiEjVi/eNPyIiIiJSCylkioiIiEjUKWSKiIiISNQpZIqIiIhI1ClkioiIiEjUKWSKiIiISNQpZIqIiIhI1ClkioiIiEjUKWSKiIiISNQpZIqIiIhI1ClkioiIiEjUKWSKiIiISNQpZIqIiIhI1ClkioiIiEjUKWSKiIiISNQpZIqIiIhI1ClkioiIiEjUKWSKiIiISNQpZIqIiIhI1ClkioiIiEjUKWSKiIiISNQpZIqIiIhI1ClkioiIiEjUKWSKiIiISNQpZIqIiIhI1ClkioiIiEjUKWSKiIiISNQpZIqI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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#compare this model to the sample data from before\n",
"df_HS_predictor = np.append(df_log_goal['Distance'].head(100), df_log_miss['Distance'].head(100))\n",
"df_HS_response = np.append(df_log_goal['Goal'].head(100), df_log_miss['Goal'].head(100))\n",
"\n",
"fig, axes = plt.subplots(figsize=(11,7))\n",
"goals = plt.scatter(df_log_goal['Distance'].head(100),df_log_goal['Goal'].head(100))\n",
"misses = plt.scatter(df_log_miss['Distance'].head(100),df_log_miss['Goal'].head(100),marker='x')\n",
"y = np.linspace(0,40,100)\n",
"\n",
"plt.plot(y,1/(1+np.exp(-(lgm_dis.coef_[0][0]*y+lgm_dis.intercept_[0]))),c='Green',label='Log Model')\n",
"\n",
"plt.xlabel('Distance (m)')\n",
"plt.ylabel('Shot Result')\n",
"plt.legend()\n",
"plt.title('Logistic Regression Model for Shots')\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"While the graph above produces some certification that our coefficients produce a reasonable fit, it is not very clear graphically how good this fit is, especially considering this is just a small sample of our training data. Instead of measuring the goodness of fit numerically, let’s examine another graphic. As we constructed in Part I, we can bin the data by distance, calculate the ratio of shots that resulted in a goal per bin, and then scatter plot the bins onto a graph. If we now superimpose the logistic model onto the scatter plot, we can see how well the function maps the data."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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oCTsKwLVtXOAoS7MjEUiIs2VivJFpNGZ2V3AJ8AfWluC6elMYMijIgJjcV6rBFNEWhqVZIqIiIhI1KkkU0RERESiTkmmiIiIiERdYrwDaKiOHTu63r17xzsMERERkVZv6dKlW70Z1fbS7JLM3r17s2TJkniHISIiItLqmVmtU86qulxEREREok5JpoiIiIhEnZJMEREREYm6ZtcmU0RERKSm8vJy1q9fT0lJSbxDaZFSU1Pp3r07SUlJEZ+jJFNERESavfXr15OZmUnv3r0xs3iH06I45ygoKGD9+vX06dMn4vNUXS4iIiLNXklJCVlZWUowY8DMyMrKanApsZJMERERaRGUYMbOvny3SjKbGb/fsSa/iHdXb2VNfhF+v+aeFxERaQoyMjL2+xpLlixh0qRJte5fu3Yt06ZNi/j4moYPH84hhxxCbm4uubm5zJo1i+9///t8+umnANxzzz37HnwN5lzzSlLy8vJcax2M3e93zFuxiZtmLqOk3E9qko/JY3IZ0b8zPp/+701ERFqvzz77jMMOOyyuMWRkZFBUVBTTe7z11lvcf//9vPzyy/t0/vDhw7n//vvJy8sLu7+uzxDuOzazpc65sBdTSWYzsraguCrBBCgp93PTzGWsLSiOc2QiIiISzrJlyxgyZAiDBg3i/PPPZ/v27QAsXryYQYMGkZuby80338yAAQOAQBJ59tlnA7BgwYKqEsfBgweza9cubrnlFhYuXEhubi4PPPBAteOLioq48sorGThwIIMGDWL27NkRxTh8+HCWLFnCLbfcwp49e8jNzeWSSy7Z78+uJLMZ2VxYUpVgBpWU+9myS8M1iIiINEWXX345v//97/n4448ZOHAgd955JwBXXnkljz/+OMuWLSMhISHsuffffz+PPvooy5YtY+HChaSlpXHvvfcybNgwli1bxk9+8pNqx9911120a9eO5cuX8/HHH3PKKaeEve4ll1xSlbwWFBRUbb/33ntJS0tj2bJlPPPMM/v92TWEUTPSqW0qqUm+aolmapKPnMzUOEYlIiLStPx43o9ZtmlZVK+Z2zmXB0c82KBzdu7cyY4dOzjppJMAmDBhAhdddBE7duxg165dDB06FIDx48eHrf4+/vjjuemmm7jkkksYPXo03bt3r/N+//nPf5g+fXrVeocOHcIe98wzz9RaXR5NKslsRnpnpTN5TC6p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\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#use the seaborn library to inspect the distribution of the shots by result (goal or no goal) \n",
"fig, axes = plt.subplots(figsize=(11, 5))\n",
"#first we want to create bins to calc our probability\n",
"#pandas has a function qcut that evenly distibutes the data \n",
"#into n bins based on a desired column value\n",
"df['Goal']=df['Goal'].astype(int)\n",
"df['Distance_Bins'] = pd.qcut(df['Distance'],q=100)\n",
"#now we want to find the mean of the Goal column(our prob density) for each bin\n",
"#and the mean of the distance for each bin\n",
"dist_prob = df.groupby('Distance_Bins',as_index=False)['Goal'].mean()['Goal']\n",
"dist_mean = df.groupby('Distance_Bins',as_index=False)['Distance'].mean()['Distance']\n",
"dist_trend = sns.scatterplot(x=dist_mean,y=dist_prob)\n",
"dist_trend.set(xlabel=\"Distance (m)\",\n",
" ylabel=\"Probabilty of Goal\",\n",
" title=\"Probability of Scoring Based on Distance\")\n",
"dis = np.linspace(0,50,100)\n",
"sns.lineplot(x = dis,y = 1/(1+np.exp((0.146*dis-.097))),color='green',legend='auto',label='Logistic Fit')\n",
"\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Remember that we did not fit our model to the points in figure 6 and 7, but rather to the 32,000 shots in our training set. The purpose of these graphs is to gauge where our model performs well and where it does not. Plotting 32,000 points on a graph is not great for visualization, so we decide to plot a sample representation of the population. \n",
"\n",
"We can see from figure 7 that the model predicts the data well for values greater than 6 meters, yet it undervalues the probability of goals from closer distances. This is the sort of advantage a graphical approach will offer. We can try to better predict shots closer to goal by adding a quadratic term to the logistic function. That is, "
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[-0.21632621 0.00206089]] [0.58419379]\n"
]
}
],
"source": [
"# we are going to have to use the pipe line function from sklearn to mesh a polynomial \n",
"#function with logisitic regression\n",
"from sklearn.preprocessing import PolynomialFeatures\n",
"from sklearn.pipeline import Pipeline\n",
"from sklearn.pipeline import make_pipeline\n",
"df_dis_2 = df[['Goal','Distance']].copy()\n",
"x_train_dis_2, x_test_dis_2, y_train_dis_2, y_test_dis_2 = train_test_split(df_dis_2.drop('Goal',axis=1), \n",
" df_dis_2['Goal'], test_size=0.20, \n",
" random_state=10)\n",
"\n",
"poly = PolynomialFeatures(degree = 2, interaction_only=False, include_bias=False)\n",
"lgm_dis_2 = LogisticRegression()\n",
"lgm_dis_2.fit(x_train_dis_2,y_train_dis_2)\n",
"pipe = Pipeline([('polynomial_features',poly), ('logistic_regression',lgm_dis_2)])\n",
"pipe.fit(x_train_dis_2, y_train_dis_2)\n",
"\n",
"\n",
"\n",
"print(lgm_dis_2.coef_,lgm_dis_2.intercept_)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"\\begin{array}{rcl}\n",
" G(y) = \\dfrac{1}{1+e^{(0.216*distance - 0.002*distance^2 - 0.584)}}\n",
"\\end{array}\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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L0REpGb86U9/4p577uG7776jV69e3HrrrQCcd955PPbYYyxcuJC4uLgKzy9Jmvr27cuECRNK9ycmJnLbbbcxbtw4Fi5cyLhx48qcN2TIEGbNmsW2bduIj4/nyy+/BGDWrFkcfvjhVV7nxx9/5P3332fOnDnceuutFBYWlrn+4sWL6du3b5nY4+Li6NevH0uWLKn0Pbn00kuZO3cuP/zwAzt27OA///lP6Xvy0EMP8e233+5yzjfffMOrr77KZ599ht/v54033uCbb75h5syZXHnllTjnuPvuu0trIe+7774y50+dOpUVK1awcOFCvvvuO84888xKYwS48847GTZsGHPmzGHmzJlcffXV5Obm7hIPwA8//MDrr7/O3Llz+dvf/kajRo1YsGABhx56KM8++2yV94qEpjCqgJmxT9o+PDD7AS45+BL6tu4b65Bo1diPP8FXJtH0J/homeaPYVQiIlITLp9xOQvXL6zRa/Zt3ZcHRj0Qcflt27axdetWjjjiCADOOeccTj31VLZu3Up2djaHHnooAGeccUZpohWuJGkqsWLFiojuPWTIEKZMmUKnTp0YPXo0H374IXl5efz666/sv//+VV5n9OjRJCUlkZSURMuWLdmwYQPt2rWL6N5VmTlzJvfeey95eXls3ryZHj16MGTIELZu3VqaAJ999tn897//LT1nxIgRNG/eHAhWXN1www18/vnn+Hw+1q5dy4YNGyq950cffcRFF11EfHwwVSu5VmU++OAD3n777dL+qfn5+axatWqXeACOPPJI0tLSSEtLo0mTJhx//PEA9OrVq7RGeU+pJrMSk46YRPPk5lw+4/LSqvFY6piewuSxffEnBD82f4KPyWP70jE9JcaRiYiI7JmDDz6YefPmldZc9uvXj8cff5yDDjooovOTkpJKn8fFxe3S97B79+4sXLiQQOD3ippAIMC3335L//79iY+PL3OsZLqe/Px8LrnkEl599VW+//57Lrzwwoim8klJ+f3f5hdeeIHMzEzmz5/PwoULadWqVVQm4HfO8dprr5X2z1y1ahUHHnjgLvFA2ffL5/OVbvt8vhrrt6mazEo09Tfl9iNv55L3LuGNH9/g5ANPjmk8Pp8xqkdrDpg4hI3Z+bRM89MxPQWfT9NfiIjUd9WpcYyWJk2a0KxZM2bNmsWQIUN47rnnOOKII2jatClpaWl8/fXXHHLIIbz00ku7df20tDSys7PLPZaYmEj79u155ZVXmDRpEpmZmVx11VVcddVV1bpORbp27Uq/fv244447mDRpEgB33HEHw4cPp0OHDpgZixcvpqCggB07dvDxxx8zePDg0mSwRYsW5OTk8Oqrr3LKKafQtGlTmjZtyhdffMHgwYN54YUXKrz3tm3baNmyJQkJCcycOZOVK1dW+TpGjBjBY489xpFHHkl8fDybN2+usjZz5MiRPPTQQzz00EOYGQsWLKBfv37Vep9qkmoyq3DhQRfSs2VPrvrgKvKLYt/30eczOmekMqhzCzpnpCrBFBGR3ZaXl0e7du1KH5MnT+aZZ57h6quvpnfv3ixcuLA0IZs2bRoXXnghffv2JTc3lyZNmlT7fkceeWRp38jwgT8QbDJv2bIlycnJDBkyhDVr1jBkyJBqX6ciTz75JL/88gtdunQhIyOD2bNn869//QuA9u3bM3bsWHr27MnYsWNLk7OmTZty4YUX0rNnT0aOHMnBBx9cer2nnnqqdCqhylo8zzzzTObNm0evXr149tlnOeCAAwBIT0/nsMMOo2fPnlx99dVlzrngggvo0KEDvXv3pk+fPrz44otVvr6bbrqJwsJCevfuTY8ePcoMcooFqwvNwNUxYMAAN2/evFq958fLP+ao547iruF3cd3g62r13iIi0nAtWbKktDmzrsvJySmdV/Puu+9m3bp1PPjggzGOavf99NNPjB49milTpnDsscfGOpx6obzvq5nNd84NKK+8mssjMLzzcMbsP4Y7Z93JuX3PpXVq61iHJCIiUqveffdd7rrrLoqKith3331Lp/epr/bff3+WLl0a6zAaNDWXR+i+EfdRUFTA3z7+W6xDERERqXUlUwb98MMPvPvuu2RkZMQ6JKnjlGRGqFt6Ny475DKeWvgU36z7JtbhiIiIiNRpSjKr4cbDb6RFoxZ1ZkojERGp//TvidQHu/M9VZJZDU38Tbhz2J3MWjWLVxfXnQXoRUSkfvL7/WRlZSnRlDrNOUdWVhZ+f/UWf9Ho8moqDhTTf2p/sguyWTxhMf54rbYjIiK7p7CwkDVr1kRlYm6RmuT3+2nXrh0JCQll9mt0eQ2K88Ux+ejJHPXcUUz5egrXHHZNrEMSEZF6KiEhgU6dOsU6DJGoiGpzuZmNMrOfzGypmZU7waSZjTWzxWa2yMyqnmm0DhjeeTjH73c8d3x+BxtzN8Y6HBEREZE6J2pJppnFAY8AxwDdgdPNrHtYmW7A9cBhzrkewOXRiqem3TfiPnYU7eDmmTfHOhQRERGROieaNZkDgaXOueXOuZ3AS8CYsDIXAo8457YAOOfqTbXg/i325+IBFzP1m6n8sPGHWIcjIiIiUqdEM8lsC6wO2V7j7Qu1H7CfmX1pZrPNbFQU46lxNx9xM42TGnPVB1fFOhQRERGROiXWUxjFA92AocDpwONm1jS8kJmNN7N5ZjYvMzOzdiOsRHqjdCYdPon3l73Pf3/5b6zDEREREakzoplkrgXah2y38/aFWgO87ZwrdM79CvxMMOkswzk31Tk3wDk3oK4tYzVh4AS6Nu/KlR9cSVGgKNbhiIiIiNQJ0Uwy5wLdzKyTmSUCpwFvh5V5k2AtJmbWgmDz+fIoxlTjEuMSuW/EfSzZtISp86fGOhwRERGROiFqSaZzrgi4FHgfWAJMd84tMrPbzOwEr9j7QJaZLQZmAlc757KiFVO0jNl/DEM7DmXSzElszd8a63BEREREYk4r/tSQBesWcNDUg7jqD1dx74h7Yx2OiIiISNRVtuJPrAf+NBj92vTjT33+xINfP8ivW36NdTgiIiIiMaUkswbdOexO4iyO6z++PtahiIiIiMSUkswa1LZxW676w1W8vOhlZq+ZHetwRERERGJGSWYNu+awa2id2por3r+C+tbfVURERKSmKMmsYamJqdx+5O18teYrXl38aqzDEREREYkJJZlRcF7f8+jVshfXfnQtBUUFsQ5HREREpNYpyYyCOF8c/+/o/8evW3/loTkPxTocERERkVqnJDNKRnQZwTFdj+GOz+9gU96mWIcjIiIiUquUZEbRfSPuI3tnNrd9dlusQxERERGpVUoyo6hHyx5c2P9C/jnvn/yc9XOswxERERGpNUoyo+zWobfij/dz7UfXxjoUERERkVqjJDPKWqW24rrDruPNH9/k85WfxzocERERkVqhJLMW/PXQv9KucTuu/OBKAi4Q63BEREREok5JZi1olNCIO4fdybzf5vHSDy/FOhwRERGRqFOSWUvO6n0W/dv05/qPr2dH4Y5YhyMiIiISVUoya4nPfNw/4n5WbVvFg18/GOtwRERERKJKSWYtOrLTkRy/3/H8fdbfyczNjHU4IiIiIlGjJLOW3TviXvIK87jl01tiHYqIiIhI1CjJrGUHtDiAiwZcxGPzH+PHTT/GOhwRERGRqFCSGQM3H3EzKYkpXPPhNbEORURERCQqlGTGQEZKBjcMvoF3fn6Hmb/OjHU4IiIiIjVOSWaMXDboMjo06aAJ2kVERKRBUpIZI/54P3cNv4sF6xfw3LfPxTocERERkRqlJDOGTut5GgfvczB/++Rv5BXm1dp9AwHH8swcvlq2ieWZOQQCrtbuLSIiInsHJZkx5DMfk0dOZm32Wv7f//5frdwzEHDMWLSeY6fM4vTHv+bYKbOYsWi9Ek0RERGpUUoyY2xwh8GcfODJ3PPlPazPWR/1+63IyuWK6QvJLwz2A80vDHDF9IWsyMqN+r1FRERk76Eksw6456h7KCguYNLMSVG/14bt+aUJZon8wgAbs/Ojfm8RERHZeyjJrAO6Nu/KhIMnMG3BNH7Y+ENU79WqsR9/QtmP3Z/go2WaP6r3FRERkb2Lksw6YtIRk2ic1JirPrgqqvfpmJ7C5LF9SxNNf4KPyWP70jE9Jar3FRERkb1LfKwDkKDmyc256fCbuPKDK5mxdAajuo6Kyn18PmNUj9YcMHEIG7PzaZnmp2N6Cj6fReV+IiIisneKak2mmY0ys5/MbKmZXVfO8XPNLNPMFnqPC6IZT1034eAJdGnWhas+uIqiQFHU7uPzGZ0zUhnUuQWdM1KVYIqIiEiNi1qSaWZxwCPAMUB34HQz615O0Zedc329xxPRiqc+SIpP4t4R97IocxHTvpkW63BEREREdls0azIHAkudc8udczuBl4AxUbxfg3DSAScxpMMQbpp5E9sLtsc6HBEREZHdEs0ksy2wOmR7jbcv3B/N7Dsze9XM2kcxnnrBzJg8cjKZeZnc/cXdsQ5HREREZLfEenT5O0BH51xv4EPgmfIKmdl4M5tnZvMyMzNrNcBYGLDPAM7ufTaTv5rMyq0rYx2OiIiISLVFM8lcC4TWTLbz9pVyzmU55wq8zSeAg8q7kHNuqnNugHNuQEZGRlSCrWvuHHYnPvNx/cfXxzoUERERkWqLZpI5F+hmZp3MLBE4DXg7tICZtQnZPAFYEsV46pX2Tdpz5aFX8u8f/s3sNbNjHY6IiIhItUQtyXTOFQGXAu8TTB6nO+cWmdltZnaCV2yimS0ys2+BicC50YqnPrp28LW0Tm3NFe9fgXMu1uGIiIiIRMzqW/IyYMAAN2/evFiHUWumfTONC965gJdPeZmxPcbGOhwRERGRUmY23zk3oLxjsR74I1U4t++59GnVh2s+vIb8ovxYhyMiIiISESWZdVycL45/jPwHK7et5B9f/SPW4YiIiIhERElmPXBkpyMZs/8Y/v7F31mfsz7W4YiIiIhUSUlmPXHfiPsoKCrgxk9ujHUoIiIiIlVSkllPdEvvxsRDJvLkgidZsG5BrMMRERERqZSSzHrkxsNvJL1ROn99/6+a0khERETqNCWZ9UhTf1NuG3obn638jDd/fDPW4YiIiIhUSElmPXPhQRfSI6MHV314FQVFBVWfICIiIhIDSjLrmXhfPP8Y+Q+Wb1nOlK+nxDocERERkXIpyayHRnQZwXH7Hcftn9/OxtyNsQ5HREREZBdKMuup+0fcz46iHfzt47/FOhQRERGRXSjJrKf2b7E/EwdOZNqCaXyz7ptYhyMiIiJShpLMemzSEZNo0agFE/87UVMaiYiISJ2iJLMea+Jvwt+H/50vV3/Jy4tejnU4IiIiIqWUZNZz5/U9j36t+3H1h1eTuzM31uGIiIiIAEoy6704XxxTjpnCmu1ruPfLe2MdjoiIiAigJLNBGNxhMKf1PI17/3cvK7eujHU4IiIiIkoyG4p7j7oXw7j6w6tjHYqIiIiIksyGon2T9lw3+DpeWfwKn634LNbhiIiIyF5OSWYDcvUfrqZDkw5MnDGRokBRrMMRERGRvVh8RQfM7CGgwskXnXMToxKR7LbkhGQmHz2ZU145hcfmPcaEgRNiHZKIiIjspSpMMoF5tRaF1JiTDzyZozofxY0zb2Rsj7FkpGTEOiQRERHZC1WYZDrnnqnNQKRmmBlTRk2h9796c8PHN/D4CY/HOiQRERHZC1XZJ9PMMszsfjN7z8w+KXnURnCyew7MOJDLD7mcaQumMWftnFiHIyIiInuhSAb+vAAsAToBtwIrgLlRjElqwE1H3ETr1NZc+t6lBFwg1uGIiIjIXiaSJDPdOTcNKHTOfeac+zMwLMpxyR5qnNSY+0bcx9zf5vLUgqdiHY6IiIjsZSJJMgu9v+vMbLSZ9QOaRzEmqSFn9DqDwR0Gc93H17Flx5ZYhyMiIiJ7kUiSzDvMrAlwJXAV8ATw16hGJTXCzHj4mIfZvGMzk2ZOinU4IiIishepMsl0zv3HObfNOfeDc+5I59xBzrm3ayM42XN9Wvfh4gEX8+i8R/l2/bexDkdERET2EpGMLm9nZm+YWaaZbTSz18ysXW0EJzXj9iNvp3lycy557xINAhIREZFaEUlz+VPA20AbYB/gHW9flcxslJn9ZGZLzey6Ssr90cycmQ2I5LpSPc2Sm3HfiPv43+r/8fTCp2MdjoiIiOwFIkkyM5xzTznnirzH00CVy8iYWRzwCHAM0B043cy6l1MuDbgM+LpakUu1nNPnHIZ0GMI1H15DVl5WrMMRERGRBi6SJDPLzM4yszjvcRYQSZYyEFjqnFvunNsJvASMKafc7cA9QH7EUUu1mRmPjn6Urflbue6jCiuVRURERGpEJEnmn4GxwHpgHXAKcF4E57UFVodsr/H2lTKz/kB759y7EUUre6Rny578ddBfeWLBE3y1+qtYhyMiIiINWCSjy1c6505wzmU451o65050zq3a0xubmQ+YTHBqpKrKjjezeWY2LzMzc09vvVe7eejNtGvcjovfvZiiQFGswxEREZEGqsIk08x6mNkJIdv/MLMnvUf/CK69Fmgfst3O21ciDegJfGpmK4BBwNvlDf5xzk11zg1wzg3IyKiyO6hUIjUxlQdHPci3G77l4TkPxzocERERaaAqq8m8G9gUsj0SeBeYCUQys/dcoJuZdTKzROA0gqPUAfDm3mzhnOvonOsIzAZOcM7Nq+ZrkGo66YCTOKbrMdw08ybWbl9b9QkiIiIi1VRZktnGOfe/kO3tzrnXnHPPAS2qurBzrgi4FHgfWAJMd84tMrPbQmtIpfaZGQ8f+zBFgSKu/KDK3goiIiIi1VZZkpkWuuGcGxSy2TKSizvn3nPO7eec6+Kcu9PbN6m8FYOcc0NVi1l7OjfrzA2Db+DlRS8zY+mMWIcjIiIiDUxlSeZvZnZI+E4zGwT8Fr2QpLZcc9g1HNDiAC5+92Jyd+bGOhwRERFpQCpLMq8FXjKzm83seO9xC/Bv4JpaiU6iKik+ianHTWXF1hXc+tmtsQ5HREREGpAKk0zn3BzgECAOONd7+IBB3jFpAIbsO4QL+l3A5K8ms3D9wliHIyIiIg2EOediHUO1DBgwwM2bp66bNWnLji0c+MiBtG/Sntnnz8bwsSIrlw3b82nV2E/H9BR8Pot1mCIiIlLHmNl859wu008CxNd2MFL3NEtuxgOjHuD0107noa8fYr/UcVwxfSH5hQH8CT4mj+3LqB6tlWiKiIhIxFSTKQA45xj94mg+XzmLVjseobgwvfSYP8HHexOH0DkjNYYRioiISF1TWU1mZSv+POf9vSxagUndYWY8OvpRigMB1tkjOH7/n4/8wgAbs/NjGJ2IiIjUN5WNLj/IzPYB/mxmzcyseeijtgKU2tOxaUcuH3gDO+LmkOf7fR5+f4KPlmn+GEYmIiIi9U1lSea/gI+BA4D5YQ+1VzdQtw67hi5NerIl8V8Uk1PaJ7NjekqsQxMREZF6pLIpjKY45w4EnnTOdXbOdQp5dK7FGKUWJcYn8PKpz4BvO316vsl7E4do0I+IiIhUW2U1mQA45y42sz5mdqn36F0bgUnsHNS2P9cedi3vLnuJn7d9oQRTREREqq3KJNPMJgIvEFyvvCXwgpn9JdqBSWzddMRNHNjiQMa/M57tBdtjHY6IiIjUM1UmmcAFwCHOuUnOuUnAIODC6IYlseaP9/PkmCdZs30N1310XazDERERkXomkiTTgOKQ7WJvnzRwg9oN4vJBl/PPef/ksxWfxTocERERqUciSTKfAr42s1vM7BZgNjAtqlFJnXHHsDvo0qwL5799PnmFebEOR0REROqJSAb+TAbOAzZ7j/Occw9EOS6pIxolNOKJE55g2ZZlTJo5KdbhiIiISD0R0drlzrlvgG+iHIvUUUM7DuWigy7iH7P/wSndT2FQu0GxDklERETquEiay0W4Z8Q9tGvcjnPePEfN5iIiIlIlJZkSkcZJjXlqzFP8nPUz1390fazDERERkTouknky/2JmzWojGKnbhnUaxl8G/oUpc6bwya+fxDocERERqcMiqclsBcw1s+lmNsrMNH3RXuzuo+5mv/T9OO+t8zRJu4iIiFQoktHlNwLdCE5bdC7wi5n93cy6RDk2qYMaJTTimROfYc32Nfx1xl9jHY6IiIjUURH1yXTOOWC99ygCmgGvmtm9UYxN6qhB7QZx7WHX8uTCJ3nnp3diHY6IiIjUQZH0ybzMzOYD9wJfAr2ccxcDBwF/jHJ8UkfdfMTN9G7VmwvfuZCsvKxYhyMiIiJ1TCQ1mc2Bk51zI51zrzjnCgGccwHguKhGJ3VWUnwSz574LJt3bOaS9y4hWNktIiIiEhRJktnZObcydIeZPQfgnFsSlaikXujTug+3DL2F6Yum8/x3z8c6HBEREalDIkkye4RumFkcwaZyEa497FqGdBjChPcmsHzL8liHIyIiInVEhUmmmV1vZtlAbzPb7j2ygY3AW7UWodRpcb44nj/5eXzm48zXz6SwuDDWIYmIiEgdUGGS6Zy7yzmXBtznnGvsPdKcc+nOOS35IqU6NOnAY8c9xuw1s7nj8ztiHY6IiIjUAfEVHTCz/t7TV0Kel3LOfRO1qKTeGddzHO8tfY87Zt3BiC4jGNxhcKxDEhERkRiyikYFm9nMSs5zzrlhVV7cbBTwIBAHPOGcuzvs+EXABKAYyAHGO+cWV3bNAQMGuHnz5lV1a4miQMCxIiuXDdvzadXYT8f0FHw+I7sgm76P9aU4UMzCixbS1N801qGKiIhIFJnZfOfcgHKPRWvqGW+A0M/ACGANMBc4PTSJNLPGzrnt3vMTgEucc6Mqu66SzNgKBBwzFq3niukLyS8M4E/wMXlsX0b1aI3PZ8xeM5vBTw5mXM9xvHDyC7EOV0RERKKosiSzsubyYc65T8zs5PKOO+der+K+A4Glzrnl3vVeAsYApUlmSYLpSQE02WIdtyIrtzTBBMgvDHDPjCW0beonb2cxrRr3ZNLhk7j5s5sZ1WUUZ/c5O8YRi4iISCxUmGQCRwCfAMeXc8wBVSWZbYHVIdtrgEPCC5nZBOAKIBGosgleYmvD9vzSBBOgTRM/4wZ0YNzU2aU1m/ed+meGdPiIi9+9mIFtB7J/i/1jGLGIiIjEQmWjy2/2/p5XzuPPNRWAc+4R51wX4FrgxvLKmNl4M5tnZvMyMzNr6tayG1o19uNP+P1rc3L/dkz55JcyNZtXv/I9dw19HH+8n1NfOZUdhTtiFa6IiIjESCRrl6eb2RQz+8bM5pvZg2aWHsG11wLtQ7bbefsq8hJwYnkHnHNTnXMDnHMDMjIyIri1REvH9BQmj+1bmmjG+ShTswnB7TiXznMnPcf3G7/n8hmXxyBSERERiaVIVvx5CcgE/gic4j1/OYLz5gLdzKyTmSUCpwFvhxYws24hm6OBXyIJWmLH5zNG9WjNexOH8NL4Qxh+QKsyNZsA/gQfLdP8jOwyiov6XcHUb6bywJdPEgioy62IiMjeIpIks41z7nbn3K/e4w6gVVUnOeeKgEuB94ElwHTn3CIzu80bSQ5wqZktMrOFBPtlnrN7L0Nqk89ndM5IZVDnFvRq26RMzWbJaPMOzRoxY9F6Ppl7JEnF3bniw0uZNvtLJZoiIiJ7iSqnMDKzycAcYLq36xRgoHPuqijHVi5NYVT3lMybuTE7n5ZpwXkzV2TlcuyUWeQXBihiE+v8E0mgBd/832y6t1GXBxERkYagsimMKlu7PNvMtgMXAi8CO73HS8D4aAQq9VNozWbnjFR8PiszCj2eFrTYeQUFtpy/zbw6xtGKiIhIbahsdHlayHrlPudcvPfwOeca12aQUv+Ej0JPDgygeeBU3vzlGZ7/7vkYRiYiIiK1IZI+mZhZMzMbaGaHlzyiHZjUb+Gj0P0JPp46+X6O2PcIxr8znoXrF8Y2QBEREYmqSPpkXgBcRnAKooXAIOCrSNYujwb1yaw/Qvtqtm7spzgAP25cxQUzRpCckMS88fNontw81mGKiIjIbtqtPpkhLgMOBlY6544E+gFbay48aahK+moO7JjO4nXZjH5oFhOe/5XEbVexevtaTn/tDIoDxaXlAwHH8swcvlq2ieWZORqJLiIiUo9FkmTmO+fyAcwsyTn3I6B1AiVi4eudW+F+pBf+Hx8se59bPr0FCCaYMxat59gpszj98a85dsosZixar0RTRESknookyVxjZk2BN4EPzewtYGU0g5KGJXy9c4CknUdzfNczuWPWHbz141u7JKL5hQGumL6QFVm5sQhZRERE9lB8VQWccyd5T28xs5lAE2BGVKOSBqVkpHloopmcEMc9wx5gfd7PnP3G2Uwd+UG5y1NuzM6nc0ZqbYcsIiIieyjS0eX9zWwi0BtY45zbGd2wpCEpb6T55LF92b9VOq+NfQ1/vJ8bZ51DQsKOMueVLE8pIiIi9U8ko8snAacCr3u7TgRe8ZaXrHUaXV4/lbcqkM9nAHy64lNGPDeCPhlDyF57BQWFVpqIjurRurSciIiI1C2VjS6PJMn8CegTMvgnGVjonIvJ4B8lmQ3T4/MfZ/x/xnNe7wmM73PLLomoiIiI1D17OoXRb0Bom2USsLYmAhMpceFBF3LZIZfx1HeP8P2WN0qXpxQREZH6qcKBP2b2EOCAbcAiM/vQ2x4BzKmd8GRvcv/R9/NT1k9c8t4ldEvvxtCOQ2MdkoiIiOymCpvLzeycyk50zj0TlYiqoObyhm1b/jYOnXYoG3I38PUFX9O1eddYhyQiIiIV2KM+md4FEoH9vM2fnHOFNRhftSjJbPiWbV7GwCcG0jKlJbPPn00Tf5NYhyQiIiLl2KM+mWY2FPgFeAR4FPjZzA6vyQBFQnVp3oXXxr7G0s1L+eP0P7KzWDNmiYiI1DeRDPz5f8DRzrkjnHOHAyOBf0Q3LNnbDe04lCeOf4KPf/2YC96+gEhq3EVERKTuqHLFHyDBOfdTyYZz7mczS4hiTCIAnNP3HFZvX81NM2+ifeP23Dn8zliHJCIiIhGKJMmcb2ZPAM9722cC6hQpteJvQ/7Gqm2r+PsXf6d9k/ZcNOCiWIckIiIiEYgkybwImABM9LZnEeybKRJ1Zsajox/lt+zfmPDeBNqmteX4/Y+PdVgiIiJShUpHl5tZHLDIOXdA7YVUOY0u3zvl7sxl6DNDWbRxEZ+e+ykD2w6MdUgiIiJ7vd0eXe6cKwZ+MrMOUYlMJEIpiSn85/T/0CatDaNfHM3PWT/HOiQRERGpRCSjy5sRXPHnYzN7u+QR7cBEwrVKbcWMM2dgGEc9exSrtq2KdUgiIiJSgUj6ZN4U9ShkrxQIOFZk5bJhez6tGvvpmJ5Sul55Rce6pXfjg7M/YOjTQxnx3Ag+/dNn7ChILfcaIiIiEjuVrV3uJzjopyvwPTDNOVdUW4FJwxYIOGYsWs8V0xeSXxjAn+Bj8ti+jOrRGqDMsX3Tk7l9TC8S4oxWjf30btmHd894l6OfP5rDnhxOXNYtFBY2KnMNJZoiIiKxVVlz+TPAAIIJ5jEEJ2UXqRErsnJLk0iA/MIAV0xfyIqs3DLH2jTxM25AB8Y/N4/TH/+aY6fMYsai9Rza7g88OvJFft36M6vtZgLkl7mGiIiIxFZlSWZ359xZzrnHgFOAIbUUk+wFNmzPL00wS+QXBtiYnV/m2Mn92zHlk1/KTUb3a3oYLXZeTYHvJzIT78RRWHoNERERia3KkszCkidqJpea1qqxH39C2a+fP8FHyzR/mWNmVJiMtmrsJz1uCOmFE8mPW0Bm4j0kJQRomeavtdchIiIi5assyexjZtu9RzbQu+S5mW2vrQClYeqYnsLksX1Lk8mS/pQd01PKPRaqJBktKdfCdzTNdv4fO+Jm06LDv2jbNLHWX4+IiIiUVelk7Ht8cbNRwINAHPCEc+7usONXABcARUAm8Gfn3MrKrqnJ2BuOkhHkG7PzS5PG8NHlm3MLWLs1n2tf+26XAUI+n5W5xnu/PsXtX1zDyQeezEt/fImEuIQYv0IREZGGrbLJ2KOWZHqrBf0MjADWAHOB051zi0PKHAl87ZzLM7OLgaHOuXGVXVdJ5t6nsmQ03JSvp3DZjMuUaIqIiNSCypLMSObJ3F0DgaXOueVeEC8BY4DSJNM5NzOk/GzgrCjGI/WUz2d0zkilc0ZqlWUnHjIRgMtmXMZpr51WZaJZ2VydIiIisvuimWS2BVaHbK8BDqmk/PnAf6MYj+wlIk00K5urU4mmiIjInolkWcmoM7OzCM7JeV8Fx8eb2Twzm5eZmVm7wUm9NPGQiTw46kFeX/I6f5z+R/KLdp3WqLK5OkVERGTPRDPJXAu0D9lu5+0rw8yOAv4GnOCcKyjvQs65qc65Ac65ARkZGVEJVuq3QMCxPDOHr5ZtYnlmDoGAY+IhE3n02Ef5z8//4dgXjiW7ILvMOZXN1SkiIiJ7JprN5XOBbmbWiWByeRpwRmgBM+sHPAaMcs5tjGIs0oCFNns3a5TIqQPasV/LNA5s05j/O+giGic15pw3z2H4s8P575n/Jb1ROvD7XJ2hiWbJ9EgiIiKyZ6JWk+lN4H4p8D6wBJjunFtkZreZ2QlesfuAVOAVM1toZm9HKx5puEqavZs1SuTsQfsy9fPlXPrvBYx+KLgE5ek9z+CNcW/w3YbvOOLpI/gt+zeg8rk6RUREZM9EdZ7MaNAURhLuq2WbOP3xr5lwZFemfbF8l5rJ9yYOoXNGKjN/nckJL51Ay5SWfHT2R3Rq1qla0yOJiIhIWZVNYVQnBv6I7ImSZu/KlqAEOLLTkXz8p4/Zmr+Vw548jG/Xf1s6PdKgzi3onJGqBFNERKSGKMmUeq+k2TvOKl6CssTAtgP5/NzPifPFMeSpIXyw7IPaDldERGSvoCRT6j2fzxjVozUn9WvL30/qVWUfyx4tezD7/Nl0ataJ0S+O5qkFT8UibBERkQYtmqPLRWqNz2d0bJFKh+Yp9G3ftMo+lm0bt2XWebM4Zfop/PntP7Ny20puPuJmzNRcLiIiUhOUZEq9U9lSkNVZgrJxUmPePeNdxv9nPLd+diurtq3iseMe03rnIiIiNUBJptQrNb0UZEJcAk+e8CT7Ntm3NNGcfup0mic3j0L0ZWnddBERacjUJ1PqlWgsBWlm3DL0Fp4a8xSzVs1i4OMDWZy5uKZCLldJsnzslFmc/vjXHDslOKdnIFC/phQTERGpiJJMqVeiuRTkuX3PZeY5M8nZmcOgJwbxzk/v7PE1K6J100VEpKFTkin1SsmcmKFqcinIP7T/A3MvnMt+6fsx5qUx3DXrLqKxYIHWTRcRkYZOSabUK7WxFGT7Ju35/LzPGddzHDd8cgNnvH4GeYV5NXZ9iH6yLCIiEmtaVlLqndpaCtI5xz1f3sMNH99Az5Y9eXXsq3Rt1q1GBuvU9AAmERGRWKhsWUklmSJVeH/p+5z5+pnsLN7JhL7388b/2tdIYqh100VEpL5Tkimyh1ZvW82Yf5/Cgg1zSCs6nmaFf8ZIwJ/g472JQ0rn5dS0RCIisjepLMlUn0xp0AIBx/LMHL5atonlmTmVThFUWdn2TdrzwLA3SCsaQ3b8O6xPuo4i21hmsI6mJRIREfmdJmOXBqs6/R4jKduuWWP24f/IKuhOVuIDrEu6jNaBy2iZdgRQ8bREB4TUdIqIiOwtVJMpDVZlc1GG11r+uqnqeStLRranxw2hd+I/aZu6L7/F3cH1My9le362piUSEREJoZpMabAqSvo25xbw4/rsMrWW95/Sp8KyJddq1djP0Qe2YsZlQ/hm1Vauf6M5jd3zTF/8LF+snsXDI5/En+Arcx1NSyQiInsrJZnSYJXMRVmS9LVp4ufUAe0oKArsUmv5y8bsXRLEfdOTWbs1n7OmzSnThL5/qzRueON7Cgp9NONPJAf6sTF7MmPfOIoz+1zNV9/+gYJCi8ocniU0wEhEROo6NZdLgxU6cXubJn7+dOi+TP18OV8t37xLreX0eWv4+0m9ykzyfvuYXlz72ne7NKGv3JxbtrYy0IvW+Q8xtP1xPLPoLtLa3cm9p7XgvYlDOPrAVqzIyo1o4FGkNMBIRETqA9VkSoPl8xmjerTmgIlDyMwu4Jyn5pQmh+G1llvydtK/Q1PemzikdN7KiprbU5Lidzk/JaEx/zr2Wb5a/xYT/zuRc94dym1Db+OAtNO5+pXva3TC9fC+ps0aJfLj+u34E3x0TE9RraaIiNQJqsmUBs3nMzpnpBJwrjQpe23+GiYO67bL0pQdmqfQOSOVQZ1b0DkjtczSj22a+JlwZFcmDu9KSmJcmaUt901PZurZA9iYXcAf2pzI9xf9wMguI7nmo2sY+/pRZBetBH6vCV21OTfiaZXKE5r8tmni5+xBwRraPz89T7WaIiJSZ2gydtkrLM/M4dgps3bpn9mvfVP2raD2r6RZ+p4ZSxg3oANTPvmltEby4TP60Sk9lS15Bazdml/arF6SsI7s3oo7Zj7BbV9cTYAdNC06g8ZFJ7FPk1SuHrk/N7xRee1mZX0uQ1/LhCO7Mu2L5bsMNnpP0yaJiEgt0GTsstcL7Z8JwebxA1o35oj9WtI5I7Xc5uWS5vYpp/UrTTAhWCN56YsLMIPmKUkV9NvM4+w+Z9Cp+J80ChzM1oRnWJd0OQP221iaYIaWD50qqao+l6GvxQxNmyQiInWS+mTKXiG0f2Yka4WH1iTuKCyuMJFzruIkb2DHdKaMPZIrpjdjc8EXbPM/zsM/nEEqR9OUc4mjcZnyJTWPVU3qXqavaU4BT8zatSZT0yaJiEisKcmUvUZJ/8yqmpHDV/+5bHjXSue/LDnWpomfk/u3I84HyQnB/7RKksHNuQNZuukcHltwD5+ufZq8uNk0KzyPlOKjSE6Io3VjP8szcypNasPn7CwZ5DN5bN9dViqKxrRJIiIi1aE+mSJhyuu/+adD9+XBj3/ZpR8lUGG/zdC+liXXbNYokWE9dzB5/jXk2xKSXXfuHzGZjo17l0lqH/u8bO3kvunJXDFi/136fpbEsCIrN6IaWhERkZpUWZ9MJZkiYb5atonTH/+6zL42Tfw8MK4vDrdLIhcIOL5fu5VxU2dXOAAn9Jptmvg5sd8+zM98nY/WPsDWgizSAsNJKzibeNLLTWqnnj2A8c/N0wAfERGpUypLMtVcLhImfKUgCA4UykhLKjeh8/mMvJ1lm7hLms5/3pANQMu036+5bls+//x0Of6E/sz8v4Xc99XdvLDoX2T7v6BJ0akEtp3Is1+t5JnzBpYmtZWti15RkqlVgUREJJaUZIqE2Z1+jqGJacncleFTHpV3zV77tOa2oXfxv+/6scGmsTXhObLjZlC041zSUw+ma8vGpfeoqO9nIOAqnH4p/H57OhG8iIhIpNRcLlKOklrASPs5hiZ15w/uXO7clTMuG0LAUeaaAKs25/LNqq3c8Mb3+PyL2ZY0jd9yl3BAek/uOervHL//cTgXWd/PEuH9SktiUPO6iIjUpJg1l5vZKOBBIA54wjl3d9jxw4EHgN7Aac65V6MZj0ikIh2JHlq+ZCT5zxuyy23aXr89v3Q1ISibmDZrlMgVR3WjWUpPbnzrAFoEPmPZpucZ8/IJHNb+MO4afhejegymbVN/mb6f4dMblQhfFejk/u0wg8ycgpg0m6vpXkRk7xO1JNPM4oBHgBHAGmCumb3tnFscUmwVcC5wVbTiEKktJYkp7Lo2enlzV4bOh7luWz7b8ouZ/NEPFBRCCkfQqPgwChI/4pesVzn86cM5pusx/LHr5RFNb1TSB7RZo8QyTfdPzFpeI83m1Uka1XQvIrJ3iuaKPwOBpc655c65ncBLwJjQAs65Fc6574BAeRcQqY/CVxeqqE9n+GCe8NV7jHj8O0fx8pivueeoe/h67ddcMGMkm5JuJt+3pLTcvunJrN2aX2aFoF+zcpg8ti+nDmi3y2pF4SsMVVdVKxKFq2hy+T2JQURE6r5oJpltgdUh22u8fSINWknT+XsTh/DS+EN4b+KQcmvtSgYLhSpvu0Oz5lxz2DWsuGwFdw27i/jkFWxIupoNiX8jkLCI28f02mVpy0tfXED3Nmn0bd+0WstOBgKO5Zk5fLVsE8szc8pNHKubNFY2Ml5ERBquerF2uZmNN7N5ZjYvMzMz1uGIVKmk6bykD2Z5zcLhNZ7vfLuWO07sWWENaFpSGtcNuY7Vl6/ghj/8nUYpv7E6/lomfnQ8m4u/woU0CJT0Ae2YnlJu4lrespOR1lBWN2msKJnW0pciIg1b1EaXm9mhwC3OuZHe9vUAzrm7yin7NPCfSAb+aHS5NCTho9g7NGvEqi15EY1q31G4gye+eYJ7vryftdmriA+0o3HRiXRNOZZxB3emb/umdG6RwuJ12RH1h4x0RHp1R66rT6aISMMVkxV/zCwe+BkYDqwF5gJnOOcWlVP2aZRkiuyWnUWF3PTBEzw4ZzIFtpS0hHSS8o/Fv3MUKQnNePiMfnRKTyUzp/LEtbyVjgBeGn8Igzq3KN3enaSxulNCiYhI/RCzZSXN7FiCUxTFAU865+40s9uAec65t83sYOANoBmQD6x3zvWo7JpKMmVvE8lI7kDA8eumHN5f+jHXvH8nub554BJIKT6cFhzPJxPPp3NGarnXgmA/y8zsAs55ak5ENZRKGkVEBLR2uUi9Vd1aw5LayJ22iuz4d8mN+xhn+fRocRDXHHYZTRjCta8tKbMS0c4iVzpXZ/ia6WrWFhGRyijJFKmnqtv/Mbx8gFwKEmeSkv4Rv25dSpxrTErRcFKLjybBtWfi8K5M/fz31YnaNPFz6oB2DOzYjDR/Ank7izV5uoiIVKiyJLNejC4X2VtVdyR3+Ij1RglpPHXqJH6+9EceGP4KiYEebI9/m9/8F7M+8Rq+3vA6eYV5peev25bPK/PWsDF7J+Omzo5oHkwREZHyRHVZSRHZMyXT/1S1elCJ0OUtw/tLHr//KP75fgq5+VnkxH9CTtwHTF92Az5/Mo2Kh5BSPIykQHdOHdCOG974vsqlK0VERCqjmkyROizS1YNCVTRHZ8m1UhLSaVL0Rw5NeYZHj36bw9uPJjfuczYkXcdv/guYvekRsotWlrmmJk8XEZHqUp9MkTquJkdyl1xrc24Ba7fmc+1r39GsUSIn9GtGVvH/mLPhLb5c8wkBFyAx0JVGxYeTUjyY1PjWFfYDFRGRvZcG/ohIGZUNKPInZXPzR1N57rvnKbClAOzfrD8XDjiDU3ucSru09mWmQSqZQH7D9nzaNPFTHICN2RVPtyQiIg2HkkwRKaOqiddLajy/+W0Jc9a/x8cr3uab9d8AwYQza1NvEgsPoWvz/fjLsG7c+OYPdXIKpEjmGBURkd2nJFNEyqju1EgASzcvZercF3joqxfIt18AaOHvSHHeQSQWHsJfDx/NU1+urNY1o0nLWYqIRJ+mMBKRMnZnQFHX5l05qesEWuX/g7Y7nqb5zotpntSWLfYWG5Ku4bb5h7Gae8iJm0kx24DYDhhakZVbmmCWxHLF9IWsyMqNSTwiInsbTWEksheqbKqjcKFNzo0S470plVqQVjyaC7tfxmOzvmdrYA4dWvzMt5mfkhf/GTgj0e1HmhvAmlw/RYEjiPeV/3MTrSbtyuYY1QAmEZHoU5IpspcqmeqosoQrvMl53/Rk7jixJze++QP5hQHe+XYtd514CDe+mULi9pE8eMS93PvJf9nm5lAQP5/Nvhc59fUXaPxuY4Z2HMpRnY7iqM5HcUCLAzCzqDZpV3eOURERqVnqkykiFSqv7+a+6clMOa0fOwqLaZn2++jyjdn5tG4cHF2emROsHW2UlMeri97no+UfsWDjLFZt/xWANqltOKLjEfRoPohpn/gJFLbFCCaVNdWPsyYTWA0gEhEpX2V9MlWTKSIVKq/JeWXWDnYUFjOoc4vSfeE1ol1apnpJXjYPv9eC/MKxJCecxhOjm1EU/x2frfyUz1Z+xks/vATx4Itrij/Qg6TiHqT5+7BuW789Tuiq0yWgMhpAJCKye1STKSIV2p1R6JGe65xj5rLvOOPZp8hx35Hv+4FiXyYA5pJIDOxHinVn4uDjuPjQkbRMzdjlHrVRw7gn74GISEOnmkwR2S0lo9DDa/EqG4VeoqqBN2bG0M69efLUa4PXLwhw9uAUps2ZQY5bTCDhJ7a6V7nlfy9zy/+gc7POHLzPQLo27UP7lF4c3vFgft1UHPUaxvJeR7NGiWRmF1SY3Kp5XURESaaIVGJPmpwjGXgTfv28ncU890UuPZqM4OxB+/LAJ9+zvfhHAvFLaZuykU+Wz+LlHS8BYPhIcO1JoDOJcV3JL+7CZdPzeH/iyBqtYQx/HW2a+PnToftyzlNzyk1u1bwuIhKk5nIRiYqKkq2jD2xVugxleC1fSdP0+YM7M+2L5WUS1InDuzL18+XkFmZR4PuZPl2y+HLlXHb6llFsm0vLtU3ryCHt+tO7ZW/6tO5D71a96di0Iz6rfFrgimofw19HSRzhyfOMy4YQcJCZXVCagIYeV/O6iDREai4XkVpXXi1oh2aN+GDJhgpr+Uqa539cv32XJuqACza3x9GMRoFDGNm+K6tXLCc/P0ARmyn0LaM4fhm9W+bw/YbveWPJGziC/xOdmphKj4wedM/oTptG3Wjh78Kg9n3ISN6HzJwC2jTxs3hddoVxhde2ltd8/s2qrdzwxvdcMKSz5ucUEUFJpohEUfhcnMszc8pdhecAr5avJKFr2zR5l9rCOKNMs/Vr89dw2fBu3lrpzenSrC23j5lAQpzRqrGfjDRYkrWYb9d/y3cbvmNR5iLeWPIOWws2/R6fa0S8a0fvVgeyYn1TrLgt8dYOV9hml7hKXsfyzJxdugGcOqAdN7zxfek+zc8pIqIkU0RqUSSr8Ph8Rq+2TXYZcNSrXdl9W/J20q1VKu/+ZQhb8gpYuzWf8c/NC6uJPJiBbQcCvzfFpxZuYfRBxbzx/VfscKsptDX8sm022+I2QJwXlPMR5zI4/Y0DGdC2O93Su9GteTe6NO9Chyb77hLbfi3TyiS/E4d1Y8onv5ROYH/7mF5s2B5cXjO0e0B1BgiVlM3KLSAxzkfezmINKhJpYBraoEElmSJSayJdhaeiAUdAuYOQlmfCWdPmVFhDCr8nuHE0oWuTriTvbE6yd79LB3dl6qwfyC5aTaFvDUX2G4n+DeQUbuHZb58np3B7aWyG0bZxW/bpsC9dkzvQLb0LP25fQyBhK4HClvy2rRnPzV7J+MM7M7BjM7JyC8tJflsDRDxAqKRf6D0zljBuQIfSBLYmBxU1tH/cROqbhjhoUAN/RKTWROtH9Ktlmzj98a932f/S+ENKJ40Pne/y0mFdeWLW783xJSPGg03vwdrHvwzrxo1v/sCOwmISEnK4eHgKGU23smLbryzbsozlW5azbPMy1uWsK3tTF08CGRzYsjNdm+/LZ0scriideJdBnMsgJb4l708cCRDx/JuVDYiqbFBRpIljTXwuSlJF9kx9nZNXA39EpE6oqVV4wkVSQxo652fZ/pxlm94zc/JJTohj3NTZ5BcGMIyiwjQe/9jHexNP4k99y/7Y5xfls3LrSpZv+ZX5a3/m503L2FLwG1sK1vHl6s/IsnWQWLaLQK/HU2nZaB/WWyPiEloQ59Jp7m/JIV324+0lAQZkd+Ggtp1Yt72QDdvz2VEYHGxkRsSDiqqTOK7Iyt2lr+w9M5bQtqm/tFm+ZPnQ8pLIWNXAKLGVhiSS7kT1jZJMEalV4YOBakIkk8aHJ7itG/s5unvr0nXWSxKULi1T+WrZpoh/7P3xfvZvsT/7t9ifY7qNKnNseWYOx0z5lNyiTIosk2LbhMVtZnTvJNbnrGX91h/JZwHFtoXtxQFW/AzP/vz7+XGuMT7XlI7N2rI5yc87KzqSl2gEipsQ55oS55qSHN+Mpo12nZ6pvMQxvAtBifB/3No08TNuQIfSRDu0Zrfk/X34jH50Sk9lY3Y+jRLjIr5XdVSWREaS2CoJlfok0u5E9YmSTBGp9yKtIS0vwe3SctckqKZ+7Dump/CPsQd5iVDLYHJ2ejA525xXwG+98rn2te8477B9efzLBeQVZVFkmzn8gDg+XfoTBW4LxbaFddu3kdRoNV+s+5JA3M7fByh5DnwMmiQ1ISMlg4xGGWSkZBAoSmWd24kvvjFxLg2fa0x+cWPmrW1Ok5SuNPU3xfCxIisXn1mZ13ty/3al/T4BjuvdtjTBhOCUTb9syOHSFxeUzh1a0zUwVSWRVSXRDbF/mzRse7LCWl2lJFNEGoSarCGtqR/78mpPF6/LZvRDs0prCKeePYC8nUUUFTYlkaYkui4Mat2VeYuXUvpKdkKbBD//OKsP+cU5ZBdm8dv29QR828C3ncy8jWTmZrJpxyYyczNZsXUF67M3sj1+E1hRmZjGvfX785SEJuzcmUyirzEdMlqyOcuHC6Tw/ur2bHCF+OJS8bkUftm2kW1F2/BZCj6Xwpi+v/dfheAcphUl5btbm1hVEllV02J1anKjQbWoUl3R6k4US0oyRUTC1OSPffgcm6GJz8qsHYx/bh4vjz+03CQtdHtL3k5aNvbTOaMF0LF0f3gyU9J3Miu3gLVbdnD161+TmryDo3s24sV5i9hRvI24uByO7ZPGm9/9DIHtFAeyWbV1E8mNdlDosvn0tw8oTiguvcfjS4CQStzr54DFJeGLa4S5FG6ZnUr7Fs3J2my4QDKJvhQO7d6JV3/6gdWb4bV5mygq8uOPS+G6UX3YL6MlOwoS6JjeggNbZRAfF1Y1S9X906qqba5u/7aaTApViyq7KxrdiWJJSaaISDmi8WNfUeJTWFxcpub0nW/XcseJPcv0gSyvJjU8mQnvO7lvejLTzj6cpHgf5zw1h7jC/sHa0WLo1bgrMwuW/n6xnUBecET+wfs2583vlnPN6/9jR9F2WjYpYlTvxjwzezEFxTkc0iWJr1euoTCQS4A8il0uv23fSsvmxeTszCavKIeXf3ybl370Zi+Jo7SJf8JHu74vKQkppCamkpqYSkpi8LnP+clK2oELJGH4MZJI9CXz+i/zmJPZjOT4Row5tJAXZq+nsCiRpLgkJhzdmwK3hlXbGpGQECAxYScFhfEYwT6rFXV5qOmkMNa1qCJ1hZJMEZFaUlHtW/OUJPp3aL7LEpz9OzSrtCY1PJkJ7ztZUlP66Jn9y12ms6KawLg4Hyf16UK/dq3LxDP+4Lwyzf5lkrITwwbduAAzf1rFOU9/jrM8AuzghH7N+c8PyygozsOxg4DlExeXz4nd04mLK2BD9jY279hOwOVT6PJo0XQba7dtoZh8HPlgBdw3O2zavZAEduInwCchx+K9h4vHh5+mySkc9WIjkhOSSY5Pxh/vJzkhmUBxPHN/zSFAApaQiJHIWa8mcuaqrrROS8Mf78cf7ycpPomkuKTSv+H7EuOCye4P63LJLcwCEjDiMRLYUejq9Shhkd2hJFNEpJZU1tezvJrTqmpSw2tGK5riKCUpfpeE8p1v13LPH3tz7WvflVtbWlU8HZqnVNqdwGc+OqW3IDUho/S+3Zp2JWFnCxJCAyyCi/oOYmP2zl3el6MPbMWqLXml99i3eSN2BgrIK8wjrzCP3MLc0ucljx2FO8gtzGVH4Q7yCvNYt307WXnZ+HyFJMQXUlBcwI7CHewo2kF+UT65O3PJys0hn604306cFeIowFHII/MKcezmXNLJYdvOOOLFRJLiEkms4JEQlxD860so3U7wJZTZX7Jd0d94XzwJPu9v2HbJo2R/VY84i/v9uS9ul/1xvjjiLA6f+TBTNwDZVVSTTDMbBTxI8P8zn3DO3R12PAl4FjgIyALGOedWRDMmEZFYqemO/RXVjIZvt0pL2iW5vXbUgRx9YCt6tW2yW7FE0p0gPKkOX3++JL6EOF+5zcslk1CH3iM5LpnkhGTSSY/4fapKRZNgv/uXwbRPTyK/KJ+CooLg3+KC0u2C4oIyf3cW7/SS2HwWrM7k1W9+pTBQSLyvmKN6pNO+WQI7AzspLC5kZ/HOMs8LigsoLC6kMBDczivMY2fxTgoDhaVlSp6H/y12xZW8utoRZ3GlSWekf33mK7PPZ75dnpeUCd0O3Re+v7oPw8pum+1yvGRfSdnQ7fKOhe8P3Vfdv0C19gG0TGnJoe0Pjc0XIUzUVvwxszjgZ2AEsAaYC5zunFscUuYSoLdz7iIzOw04yTk3rrLrasUfEZGgqvpkhi9juSIrt9ZHrZYMqKmwmX1sX5o1SqhyxaZox1jTA3VCX3e03++AC1AUKKKwuJCiQFHweaBwl33h+4tdcdljXtnw/UWBIooDxWX2FweKS8uGHit5XuFf73nABcrsD7jALs9LyoQfC32U7HfOld0fUjb0WHllHY7iQDEOV1p+t2uw64CjuxzN+2e9X2v3q2zFn2gmmYcCtzjnRnrb1wM45+4KKfO+V+YrM4sH1gMZrpKglGSKiPwuPJkpGV1eV6dAKS/5WpGVG/Pl9GozKZS6ryQRdbgKn4cmpKEJbUm58DLV/VsSR2X7gDL7AdKS0ujavGutvVexWlayLbA6ZHsNcEhFZZxzRWa2DUgHNkUxLhGRBmN3+nLGUnnx1oVJqBva1DGyZ8yMONt1ai2pnnox8MfMxgPjATp06BDjaEREpCY1xEmoRSS6SeZaoH3IdjtvX3ll1njN5U0IDgAqwzk3FZgKwebyqEQrIiIxo5pEkYbHF8VrzwW6mVknM0sETgPeDivzNnCO9/wU4JPK+mOKiIiISP0QtZpMr4/lpcD7BKcwetI5t8jMbgPmOefeBqYBz5nZUmAzwURUREREROq5qPbJdM69B7wXtm9SyPN84NRoxiAiIiIitS+azeUiIiIispdSkikiIiIiNU5JpoiIiIjUOCWZIiIiIlLjlGSKiIiISI2L2trl0WJmmcDKWrxlC7TMZX2mz6/+0mdXv+nzq7/02dVvtf357eucyyjvQL1LMmubmc2raOF3qfv0+dVf+uzqN31+9Zc+u/qtLn1+ai4XERERkRqnJFNEREREapySzKpNjXUAskf0+dVf+uzqN31+9Zc+u/qtznx+6pMpIiIiIjVONZkiIiIiUuOUZFbAzEaZ2U9mttTMrot1PFI5M3vSzDaa2Q8h+5qb2Ydm9ov3t1ksY5SKmVl7M5tpZovNbJGZXebt12dYx5mZ38zmmNm33md3q7e/k5l97f2GvmxmibGOVSpmZnFmtsDM/uNt6/OrB8xshZl9b2YLzWyet6/O/G4qySyHmcUBjwDHAN2B082se2yjkio8DYwK23cd8LFzrhvwsbctdVMRcKVzrjswCJjg/Tenz7DuKwCGOef6AH2BUWY2CLgH+IdzriuwBTg/diFKBC4DloRs6/OrP450zvUNmbaozvxuKsks30BgqXNuuXNuJ/ASMCbGMUklnHOfA5vDdo8BnvGePwOcWJsxSeScc+ucc994z7MJ/mPXFn2GdZ4LyvE2E7yHA4YBr3r79dnVYWbWDhgNPOFtG/r86rM687upJLN8bYHVIdtrvH1Sv7Ryzq3znq8HWsUyGImMmXUE+gFfo8+wXvCaWhcCG4EPgWXAVudckVdEv6F12wPANUDA205Hn1994YAPzGy+mY339tWZ3834WN1YpDY555yZaSqFOs7MUoHXgMudc9uDFSpB+gzrLudcMdDXzJoCbwAHxDYiiZSZHQdsdM7NN7OhMQ5Hqm+wc26tmbUEPjSzH0MPxvp3UzWZ5VsLtA/Zbuftk/plg5m1AfD+boxxPFIJM0sgmGC+4Jx73dutz7Aecc5tBWYChwJNzaykIkO/oXXXYcAJZraCYNewYcCD6POrF5xza72/Gwn+D95A6tDvppLM8s0Funmj6xKB04C3YxyTVN/bwDne83OAt2IYi1TC6wM2DVjinJscckifYR1nZhleDSZmlgyMINindiZwildMn10d5Zy73jnXzjnXkeC/dZ84585En1+dZ2YpZpZW8hw4GviBOvS7qcnYK2BmxxLspxIHPOmcuzO2EUllzOzfwFCgBbABuBl4E5gOdABWAmOdc+GDg6QOMLPBwCzge37vF3YDwX6Z+gzrMDPrTXBwQRzBiovpzrnbzKwzwZqx5sAC4CznXEHsIpWqeM3lVznnjtPnV/d5n9Eb3mY88KJz7k4zS6eO/G4qyRQRERGRGqfmchERERGpcUoyRURERKTGKckUERERkRqnJFNEREREapySTBERERGpcUoyRURERKTGKckUkb2WmRWb2UIzW2Rm35rZlWbm844NMLMplZzb0czOqL1od7l/spl9ZmZx1TjnUjP7czTjEhEpoXkyRWSvZWY5zrlU73lL4EXgS+fczRGcOxRv4uqoBlnx/ScA8c65B6txTiOCr69f9CITEQlSTaaICKVr/44HLrWgoWb2HwAzO8Kr8VxoZgu8pdzuBoZ4+/7q1WzOMrNvvMcfvHOHmtmnZvaqmf1oZi94y2hiZgeb2f+8WtQ5ZpZmZnFmdp+ZzTWz78zs/yoI+Uy85eK8e3xmZm+Z2XIzu9vMzvSu+b2ZdfFeYx6wwswGRvXNFBEhuAyRiIgAzrnlXvNzy7BDVwETnHNfmlkqkA9cR0hNpldLOMI5l29m3YB/AwO88/sBPYDfgC+Bw8xsDvAyMM45N9fMGgM7gPOBbc65g80sCfjSzD5wzv1aEoyZJQKdnXMrQmLsAxwIbAaWA0845waa2WXAX4DLvXLzgCHAnD16s0REqqAkU0Skal8Ck83sBeB159warzIyVALwsJn1BYqB/UKOzXHOrQEws4VAR2AbsM45NxfAObfdO3400NvMTvHObQJ0A34NuV4LYGvY/ec659Z511gGfODt/x44MqTcRuCACF+3iMhuU5IpIuIxs84EE8SNBGsFAXDO3W1m7wLHEqxZHFnO6X8FNhCsUfQRrO0sURDyvJjKf3sN+Itz7v1KyuwA/GH7Qu8RCNkOhN3P750vIhJV6pMpIgKYWQbwL+BhFzYi0sy6OOe+d87dA8wlWBOYDaSFFGtCsGYyAJwNVDXq+yegjZkd7N0jzczigfeBi80swdu/n5mlhJ7onNsCxJlZeKIZif2AH3bjPBGRalFNpojszZK95usEoAh4DphcTrnLzexIgrWCi4D/es+Lzexb4GngUeA1M/sTMAPIrezGzrmdZjYOeMjMkgnWLh4FPEGwOf0bb4BQJnBiOZf4ABgMfBT5ywXgMOCWap4jIlJtmsJIRKQeMrP+wF+dc2dX45x+wBXVOUdEZHepuVxEpB5yzn0DzKzOZOwEBwzdFKWQRETKUE2miIiIiNQ41WSKiIiISI1TkikiIiIiNU5JpoiIiIjUOCWZIiIiIlLjlGSKiIiISI37/04r9/T08q2rAAAAAElFTkSuQmCC\n",
"text/plain": [
"
"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#use the seaborn library to inspect the distribution of the shots by result (goal or no goal) \n",
"fig, axes = plt.subplots(figsize=(11, 5))\n",
"#first we want to create bins to calc our probability\n",
"#pandas has a function qcut that evenly distibutes the data \n",
"#into n bins based on a desired column value\n",
"df['Goal']=df['Goal'].astype(int)\n",
"df['Distance_Bins'] = pd.qcut(df['Distance'],q=100)\n",
"#now we want to find the mean of the Goal column(our prob density) for each bin\n",
"#and the mean of the distance for each bin\n",
"dist_prob = df.groupby('Distance_Bins',as_index=False)['Goal'].mean()['Goal']\n",
"dist_mean = df.groupby('Distance_Bins',as_index=False)['Distance'].mean()['Distance']\n",
"dist_trend = sns.scatterplot(x=dist_mean,y=dist_prob)\n",
"dist_trend.set(xlabel=\"Distance (m)\",\n",
" ylabel=\"Probabilty of Goal\",\n",
" title=\"Probability of Scoring Based on Distance\")\n",
"dis = np.linspace(0,50,100)\n",
"sns.lineplot(x = dis,y = 1/(1+np.exp((0.21632621*dis-0.00206089*dis**2-0.58419379))),color='green',\n",
" label='Log Fit with Quadratic Term')\n",
"\n",
"\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now that is an improvement! If we add a quadratic term for the distance variable, we do a much better job at predicting shots close to goal. A numerical evaluation does not offer us this luxury. This sort of analysis is more of an art and less of a science, so it is important to play around with different options. Of course this is merely an ad hoc method of evaluating our model, for the purpose of graphically representing how the model compares to the data. We will explore a more concrete method of assessing the accuracy of the model soon, but let’s first add the angle predictor to the mix. We fit these two variables to the data and graph the probability via a contour map onto a pitch:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"\n",
"I am going to explore some different variables and polynomials. Some of them I have deleted or modified but if you are following along, try to play around with your own model. "
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[0.05221106]] [-3.60645775]\n"
]
},
{
"data": {
"text/html": [
"