{ "cells": [ { "cell_type": "markdown", "id": "5c2fc082", "metadata": {}, "source": [ "fantabeto\n", "\n", "Fantacalcio Bayesian Estimated Team's Outcome\n", "\n", "Machine learning model for predicting Serie A players performance in a match, in terms of Fantacalcio (italian fantasy football) scores." ] }, { "cell_type": "markdown", "id": "9dd703a9", "metadata": {}, "source": [ "The aim of this project is to predict Fantacalcio (Serie A fantasy football) player performances (vote and fantavote, respectively their match rating and that summed to the bonus/malus given by goals, assists and cards), using players and teams data from http://fantacalcio.it and http://fbref.com.\n", "\n", "\"outputs\" folder contains predictions for the next Serie A matchdays, and an excel file for analysis. A list of players can be inserted to help selecting an optimal line-up." ] }, { "cell_type": "markdown", "id": "05bdbf90", "metadata": {}, "source": [ "![png](README_files/team_predictions.png)" ] }, { "cell_type": "markdown", "id": "d3dc2c0e", "metadata": {}, "source": [ "Two neural network models are trained for predicting vote and fantavote for outfield players and goalkeepers, for which the clean sheet probability is also an output. \n", "The outputs of these models are not raw predictions, but probability distributions, in the form of SinhArcsinh, which is a skewed distribution, meaning that the probability density is asymmetric.\n", "For predicting clean sheet probability, a Bernoulli distribution is instead used (a sample of which would be clean sheet = 1, with a given probability p, or clean sheet = 0 with probability 1-p)" ] }, { "cell_type": "markdown", "id": "53986205", "metadata": {}, "source": [ "See the following code and plot to show an example of vote and fantavote probability distributions. \n", "In this case, the player would be an attacking one, whose fantavote distribution is very skewed to the right (it is very more probable to score a goal and receive a 10 = 7+3 fantavote, than having an awful performance with a 4 fantavote!)." ] }, { "cell_type": "code", "execution_count": 7, "id": "a218d2e0", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkYAAAHFCAYAAAAXETaHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAACW1ElEQVR4nOzdd3iUxdrA4d+W7Kb3QgIhCZ3QiwUQAQtgQbCACEhROWIXFJWjHop+YsVyjqBYwIKCYkdAsSEIKF2kl4RQEkIoKZuybb4/NruwpO2GJAvkua9rr7yZd96Z2ZCQJ1M1SimFEEIIIYRA6+sGCCGEEEKcKyQwEkIIIYQoJYGREEIIIUQpCYyEEEIIIUpJYCSEEEIIUUoCIyGEEEKIUhIYCSGEEEKUksBICCGEEKKUBEZCCCGEEKUkMBLntblz56LRaNxeMTEx9O7dm0WLFlW73JkzZzJ37tyaa+hpLBYLrVq14vnnny/3/htvvIFGo6Ft27bl3j9x4gTh4eF8/fXXtdK+ymzbto0pU6aQnp5e5t7o0aNJTk6u8zYBrFq1iilTpnDy5MkaL9uX76sy6enpXHfddURGRqLRaHj44Yd93SQhLggSGIkLwpw5c1i9ejWrVq1i9uzZ6HQ6BgwYwHfffVet8mozMJo5cyYnTpzggQceKPf++++/D8DWrVv5888/y9yPiIhg/PjxTJw4EbPZXCttrMi2bduYOnVquYHR008/zVdffVWn7XFatWoVU6dOrZXA6Fw1fvx4/vzzT95//31Wr17N+PHjfd0kIS4IEhiJC0Lbtm259NJL6datGzfeeCOLFi3CaDTy6aef+rppbqxWKy+99BJ33HEHQUFBZe6vW7eOzZs3c9111wHw3nvvlVvOuHHjSE9PZ+HChbXaXm80bdqUTp06+boZFzSlFEVFRQD8888/XHzxxQwaNIhLL72UpKSksyrbZrNRUlJSE80U4rwmgZG4IPn7+2MwGPDz83NLN5vNPPvss7Rq1Qqj0UhMTAxjxozh6NGjrjzJycls3bqV5cuXu4bnTh9KycjIYMSIEcTGxmI0GmndujWvvPIKdru9ynZ9++23HDp0iNtvv73c+85A6Pnnn6d79+7Mnz+fwsLCMvni4uK4+uqreeuttzz5cpCVlcXdd99No0aNMBgMpKSkMHXqVKxWq1u+WbNm0aFDB4KDgwkJCaFVq1b8+9//BhzDloMHDwagT58+rq+Ns2etvCEnjUbD/fffz5w5c2jZsiUBAQF07dqVNWvWoJTipZdeIiUlheDgYK644gr27Nnj9vyyZcsYOHAgjRo1wt/fn2bNmnH33XeTk5PjyjNlyhQmTpwIQEpKiqtdv/32myvPggUL6NatG0FBQQQHB9OvXz82btxY5us0d+5cWrZs6fp3/fDDDz36+oLj++b666/nq6++on379vj7+9OkSRPeeOONMnnz8vJ49NFHSUlJwWAw0LBhQx5++GFMJlO5X7+33nqL1q1bYzQa+eCDD9BoNOzZs4clS5a43q+zF8+T78/09HQ0Gg0vvvgizz77LCkpKRiNRn799VemTJmCRqPh77//ZvDgwYSFhREZGcmECROwWq3s3LmT/v37ExISQnJyMi+++KJbm4uLi3nkkUfo2LGj69lu3brxzTfflPk6ON/fRx99ROvWrQkMDKRDhw7lDoPv2LGD2267jbi4OIxGI40bN2bkyJFuwZyn3+dCVEoJcR6bM2eOAtSaNWuUxWJRZrNZHThwQD344INKq9WqpUuXuvLabDbVv39/FRQUpKZOnaqWLVum3n33XdWwYUOVmpqqCgsLlVJKbdiwQTVp0kR16tRJrV69Wq1evVpt2LBBKaVUdna2atiwoYqJiVFvvfWWWrp0qbr//vsVoO65554q23vHHXeo2NjYcu8VFhaqsLAwddFFFymllHr33XcVoObOnVtu/hdeeEFptVp14sSJSuvMzMxUiYmJKikpSb399tvqp59+Us8884wyGo1q9OjRrnyffvqpAtQDDzygfvzxR/XTTz+pt956Sz344IOu9/7cc88pQL355puur012drZSSqlRo0appKQkt7oBlZSUpLp3766+/PJL9dVXX6kWLVqoyMhINX78eDVw4EC1aNEiNW/ePBUXF6fat2+v7Ha76/lZs2ap6dOnq2+//VYtX75cffDBB6pDhw6qZcuWymw2K6WUOnDggHrggQcUoL788ktXu3Jzc5VSSv3f//2f0mg06o477lCLFi1SX375perWrZsKCgpSW7duddXl/F4aOHCg+u6779THH3+smjVr5vraVSUpKUk1bNhQNW7cWL3//vtq8eLFavjw4QpQL730kiufyWRSHTt2VNHR0WrGjBnqp59+Uq+//roKCwtTV1xxhdv7B1TDhg1V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rRtNmjRBKcWgQYM4fvw4y5cvZ9myZezdu5dbb70VgFtvvZVHHnmENm3auOq+9dZbUUpx3XXXkZWVxeLFi1m/fj2dO3fmyiuv5Pjx42fxrywuVDKUJkQtCwiA337zQb1+Afw22gcVCwothQRPD67zegsmFRBkCPIob1hYGCEhIeh0Oho0aADAzTff7JbnvffeIzY2lm3btrnNP3r00Ue57rrrAJg6dSpt2rRhz549tGrVirCwMDQajatMpzvuuMN13aRJE9544w0uvvhiCgoKCA4OZvjw4cyYMYP9+/eTlJSE3W5n/vz5/Pvf/wbgp59+4u+//yYtLY3ExEQAPvroI9q0acPatWu56KKLCA4ORq/Xu9X9yy+/sGXLFrKzszEajQC8/PLLfP311yxcuJB//etfHn29RP0hf0YKIYQAHHOOhg0bRpMmTQgNDSUlJQVwDGGdrn379q7r+Ph4ANewWEU2btzIwIEDSUpKIiQkhN69e7uV3alTJ1q1asWnn34KwPLly8nOzmbIkCEAbN++ncTERFdQBJCamkp4eDjbt2+vsN7169dTUFBAVFQUwcHBrldaWprbMKEQTtJjJIQQNSzQL5CCSQU+qfdsDBgwgMTERN555x0SEhKw2+20bdsWs9nsls/Pz891rdFoAMoMt53OZDLRt29f+vbty8cff0xMTAwZGRn069fPrezhw4fzySef8MQTT/DJJ5/Qr18/oqOjAcfwpLOu01WU7mS324mPj+e3crptfbV6TpzbJDASopaZTJCc7LhOT3ccDVIn9ZpNJL/uqDj9oXSPh1jE2dNoNOfd1/vYsWNs376dt99+m549ewKwcuVKr8sxGAzYbDa3tB07dpCTk8Pzzz/v6vFZt25dmWeHDRvGU089xfr161m4cCGzZs1y3UtNTSUjI4MDBw64yti2bRu5ubm0bt26wro7d+5MVlYWer2eZOcPohCVkKE0IepATo7jVef1FuaQU+iDisV5JyIigqioKGbPns2ePXv45ZdfmDBhgtflJCcnU1BQwM8//0xOTg6FhYU0btwYg8HAf//7X/bt28e3337LM888U+bZlJQUunfvzp133onVamXgwIGue1dddRXt27dn+PDhbNiwgb/++ouRI0fSq1cvunbt6qo7LS2NTZs2kZOTQ0lJCVdddRXdunVj0KBB/PDDD6Snp7Nq1SqeeuqpcoMzISQwEkIIgVarZf78+axfv562bdsyfvx4XnrpJa/L6d69O+PGjePWW28lJiaGF198kZiYGObOncvnn39Oamoqzz//PC+//HK5zw8fPpzNmzdz0003ERAQ4ErXaDR8/fXXREREcPnll3PVVVfRpEkTFixY4Mpz8803079/f/r06UNMTAyffvopGo2GxYsXc/nll3PHHXfQokULhg4dSnp6OnFxcd5/ocQFT6O8Wd95AcjLyyMsLIzc3FxCQ0N93RxRD5hMEFy6QKmgoG6H0pwro7xZrSS8U1xcTFpaGikpKfj7+/u6OUKc1yr7eaqr39/SYySEEEIIUUoCIyGEEEKIUhIYCSGEEEKUkuX6QtQyrRZKF83U+ZEgXRO6uq6FEEJUTQIjIWpZQACsXeuDev0CWDvWBxULIcR5TP6MFEIIIYQoJYGREEIIIUQpCYyEqGWFhY4jQZKTHdd1Vq+lkOTXkkl+LZlCSx1WLIQQ5zGZYyRELVMK9u8/dV139Sr25+53XQshhKia9BgJIYQQQpSSwEgIIcQF77fffkOj0XDy5ElfNwWAQ4cOMWLECKKioggMDKRjx46sX7++wvwrV66kR48eREVFERAQQKtWrXj11VcrzD9//nw0Gg2DBg2qhdZf2GQoTQghhKhDJ06coEePHvTp04clS5YQGxvL3r17CQ8Pr/CZoKAg7r//ftq3b09QUBArV67k7rvvJigoiH/9619ueffv38+jjz5Kz549a/mdXJikx0gIIeqh3r1788ADD/Dwww8TERFBXFwcs2fPxmQyMWbMGEJCQmjatClLlixxe27btm1ce+21BAcHExcXx+23305OTo7r/tKlS7nssssIDw8nKiqK66+/nr1797rup6eno9Fo+PLLL+nTpw+BgYF06NCB1atXV9jW2267jaFDh7qlWSwWoqOjmTNnDgAlJSU8+OCDxMbG4u/vz2WXXcba0g3E0tPT6dOnDwARERFoNBpGjx4NOObfvfjiizRp0oSAgAA6dOjAwoULq/+F9cALL7xAYmIic+bM4eKLLyY5OZkrr7ySpk2bVvhMp06duO2222jTpg3JycmMGDGCfv36sWLFCrd8NpuN4cOHM3XqVJo0aVKr7+NCJYGREELUEpOp4ldxsed5i4qqzlsdH3zwAdHR0fz111888MAD3HPPPQwePJju3buzYcMG+vXrx+23305h6XLKzMxMevXqRceOHVm3bh1Lly7lyJEjDBky5LS2mZgwYQJr167l559/RqvVcuONN2K3293qfvLJJ3n00UfZtGkTLVq04LbbbsNqtZbbzuHDh/Ptt99SUFDgSvvhhx8wmUzcfPPNADz22GN88cUXfPDBB2zYsIFmzZrRr18/jh8/TmJiIl988QUAO3fuJDMzk9dffx2Ap556ijlz5jBr1iy2bt3K+PHjGTFiBMuXL6/w6zZu3DiCg4MrfWVkZFT4/LfffkvXrl0ZPHgwsbGxdOrUiXfeeaeyf6oyNm7cyKpVq+jVq5db+rRp04iJieHOO+/0qjxxGlXP5ObmKkDl5ub6uiminjCZlEpNdbxMpjqs12xSqW+mqtQ3U5XJXIcV1zNFRUVq27ZtqqioqMw9xzrE8l/XXuueNzCw4ry9ernnjY4um8dbvXr1Updddpnrc6vVqoKCgtTtt9/uSsvMzFSAWr16tVJKqaefflr17dvXrZwDBw4oQO3cubPcerKzsxWgtmzZopRSKi0tTQHq3XffdeXZunWrAtT27dvLLcNsNqvo6Gj14YcfutJuu+02NXjwYKWUUgUFBcrPz0/NmzfP7ZmEhAT14osvKqWU+vXXXxWgTpw44cpTUFCg/P391apVq9zqu/POO9Vtt91WbluUUurIkSNq9+7dlb4sFkuFzxuNRmU0GtWkSZPUhg0b1FtvvaX8/f3VBx98UOEzTg0bNlQGg0FptVo1bdo0t3srV65UDRs2VEePHlVKKTVq1Cg1cODAKss8l1T281RXv79ljpEQtSwwELZu9UG9foFsvdcHFYvzRvv27V3XOp2OqKgo2rVr50qLi4sDIDs7G4D169fz66+/EhwcXKasvXv30qJFC/bu3cvTTz/NmjVryMnJcfUUZWRk0LZt23Lrjo+Pd9XTqlWrMmX7+fkxePBg5s2bx+23347JZOKbb77hk08+cdVtsVjo0aOH2zMXX3wx27dvr/D9b9u2jeLiYq6++mq3dLPZTKdOnSp8LjY2ltjY2ArvV8Vut9O1a1eee+45wDFMtnXrVmbNmsXIkSMrfXbFihUUFBSwZs0annjiCZo1a8Ztt91Gfn4+I0aM4J133iE6OrrabRMy+VoIIWrNaSM/Zeh07p+Xxh7lOvPw4fT0ajfJjZ+fn9vnGo3GLU2j0QC4ghu73c6AAQN44YUXypTlDG4GDBhAYmIi77zzDgkJCdjtdtq2bYvZbK6w7jPrKc/w4cPp1asX2dnZLFu2DH9/f6655hrg1D5dznKclFJl0k7nrO/777+nYcOGbveMRmOFz40bN46PP/64wvvgCLoaN25c7r34+HhSU1Pd0lq3bu0a7qtMSkoKAO3atePIkSNMmTKF2267jb1795Kens6AAQNceZ3vT6/Xs3PnzkrnMIlTJDASQohaEhTk+7w1qXPnznzxxRckJyej15f99XHs2DG2b9/O22+/7VoRtXLlyhqpu3v37iQmJrJgwQKWLFnC4MGDMRgMADRr1gyDwcDKlSsZNmwY4JicvW7dOh5++GEAV16bzeYqMzU1FaPRSEZGRpm5OpWZNm0ajz76aKV5EhISKrzXo0cPdu7c6Za2a9cukpKSPG4DOAK/kpISAFq1asWWLVvc7j/11FPk5+fz+uuvk5iY6FXZ9ZkERkLUssJCuOgix/XatY6htTqp11LIRe84Kl47di2BfnVUsbhg3XfffbzzzjvcdtttTJw4kejoaPbs2cP8+fN55513iIiIICoqitmzZxMfH09GRgZPPPFEjdSt0WgYNmwYb731Frt27eLXX3913QsKCuKee+5h4sSJREZG0rhxY1588UUKCwtdk5CTkpLQaDQsWrSIa6+9loCAAEJCQnj00UcZP348drudyy67jLy8PFatWkVwcDCjRo0qty1nO5Q2fvx4unfvznPPPceQIUP466+/mD17NrNnz3blmTRpEocOHeLDDz8E4M0336Rx48auocaVK1fy8ssv88ADDwDg7+/vNlQJuJb/n5kuKieBkRC1TCnYtu3Udd3Vq9h2dJvrWoizlZCQwB9//MHjjz9Ov379KCkpISkpif79+6PVatFoNMyfP58HH3yQtm3b0rJlS9544w169+5dI/UPHz6c5557jqSkJLf5RADPP/88drud22+/nfz8fLp27coPP/xAREQEAA0bNmTq1Kk88cQTjBkzhpEjRzJ37lyeeeYZYmNjmT59Ovv27SM8PJzOnTvz73//u0baXJ6LLrqIr776ikmTJjFt2jRSUlJ47bXXGD58uCtPZmam28o2u93OpEmTSEtLQ6/X07RpU55//nnuvvvuWmtnfaVR9ex/zLy8PMLCwsjNzSU0NNTXzRH1gMkEzrmqBQV1NwxiMpsInu6ouGBSAUEGH42/XOCKi4tJS0sjJSUFf39/XzdHiPNaZT9PdfX7W/YxEkIIIYQoJYGREEIIIUQpCYyEEEIIIUr5PDCaOXOmayyxS5cuZc59OdO8efPo0KEDgYGBxMfHM2bMGI4dO1ZHrRVCCCHEhcyngdGCBQt4+OGHefLJJ9m4cSM9e/bkmmuuqfCMmZUrVzJy5EjuvPNOtm7dyueff87atWu566676rjlQnhOo4GkJMerkr3maqFeDUlhSSSFJVW6yZ0QQohTfBoYzZgxgzvvvJO77rqL1q1b89prr5GYmMisWbPKzb9mzRqSk5N58MEHSUlJ4bLLLuPuu+9m3bp1ddxyITwXGOjYqTg9ve72MALHkSDpD6eT/nC67GEkhBAe8llgZDabWb9+PX379nVL79u3L6tWrSr3me7du3Pw4EEWL16MUoojR46wcOFCrrvuugrrKSkpIS8vz+0lhBBCCFEenwVGOTk52Gw21yGFTnFxcWRlZZX7TPfu3Zk3bx633norBoOBBg0aEB4ezn//+98K65k+fTphYWGul2yLLoQQQoiK+HzytTeH/m3bto0HH3yQ//znP6xfv56lS5eSlpbGuHHjKix/0qRJ5Obmul4HDhyo0fYLUZWiIseRIBdd5Lius3otRVz0zkVc9M5FFFnqsGIhhDiP+exIkOjoaHQ6XZneoezs7DK9SE7Tp0+nR48eTJw4EYD27dsTFBREz549efbZZ12nO5/OaDRWekqyELXNbgfnNLhKDg+v+XqVnXWH17muhTifZWVlcfvtt7Nq1Sr8/Pw4efKkr5skLlA+6zEyGAx06dKFZcuWuaUvW7aM7t27l/tMYWEhWq17k3U6HSBnQQkhxIXs1VdfJTMzk02bNrFr164aK3f06NEMGjSoxsrzRu/evXn44Yd9Uvfp5s6di0ajKfeVnZ1d4XO9e/cuk3/o0KFueZKTk8vkqamDhWuLTw+RnTBhArfffjtdu3alW7duzJ49m4yMDNfQ2JmnCw8YMICxY8cya9Ys+vXrR2ZmJg8//DAXX3wxCQkJvnwrQgghatHevXvp0qULzZs393VTLji33nor/fv3d0sbPXo0xcXFxMbGVvrs2LFjmTZtmuvzgICAMnmmTZvG2LFjXZ8HOw+PPFcpH3vzzTdVUlKSMhgMqnPnzmr58uWue6NGjVK9evVyy//GG2+o1NRUFRAQoOLj49Xw4cPVwYMHPa4vNzdXASo3N7em3oIQlSooUAocr4KCOqy3pEAxBcUUVEFJHVZczxQVFalt27apoqIiXzfFK7169VL333+/euihh1R4eLiKjY1Vb7/9tiooKFCjR49WwcHBqkmTJmrx4sVuz23dulVdc801KigoSMXGxqoRI0aoo0ePuu4vWbJE9ejRQ4WFhanIyEh13XXXqT179rjup6WlKUB98cUXqnfv3iogIEC1b99erVq1qsK2JiUlKcD1GjVqlFJKqVdeeUW1bdtWBQYGqkaNGql77rlH5efnu56bM2eOCgsLU0uXLlWtWrVSQUFBql+/furw4cNKKaUmT57sVi6gfv31V6WUUo899phq3ry5CggIUCkpKeqpp55SZrNZKaXUjh07FKC2b9/u1s5XXnlFJSUlKbvdrpRS6rffflMXXXSRMhgMqkGDBurxxx9XFotFKeX4/XZm3WlpaR59jWtbdna28vPzUx9++GGl+Xr16qUeeuihSvMkJSWpV1991eO6K/t5qqvf3z4PjOqaBEairklgdGGr7D/ygpKCCl9FliKP8xaaC6vM661evXqpkJAQ9cwzz6hdu3apZ555Rmm1WnXNNdeo2bNnq127dql77rlHRUVFKZPJpJRS6vDhwyo6OlpNmjRJbd++XW3YsEFdffXVqk+fPq5yFy5cqL744gu1a9cutXHjRjVgwADVrl07ZbPZlFKnAqNWrVqpRYsWqZ07d6pbbrlFJSUluYKGM2VnZ6v+/furIUOGqMzMTHXy5EmllFKvvvqq+uWXX9S+ffvUzz//rFq2bKnuuece13Nz5sxRfn5+6qqrrlJr165V69evV61bt1bDhg1TSimVn5+vhgwZovr3768yMzNVZmamKikpUUop9cwzz6g//vhDpaWlqW+//VbFxcWpF154wVV2ly5d1FNPPeXWzi5duqhJkyYppZQ6ePCgCgwMVPfee6/avn27+uqrr1R0dLSaPHmyUkqpkydPqm7duqmxY8e66rZarR59jc+0f/9+FRQUVOnr7rvvrvqbotTLL7+swsLCVGFhYaX5evXqpaKjo1VUVJRKTU1VjzzyiMrLy3PLk5SUpBo0aKAiIyNVhw4d1LPPPuv6GpdHAiMfkMBI1DUJjC5slf1H7vz6l/e6dt61bnkD/y+wwry95vRyyxv9YnSZPN7q1auXuuyyy1yfW61WFRQUpG6//XZXWmZmpgLU6tWrlVJKPf3006pv375u5Rw4cEABaufOneXWk52drQC1ZcsWpdSpwOjdd9915dm6dWu5PTCnGzhwoKunqCKfffaZioqKcn0+Z84cBbj1WL355psqLi7O9fmoUaPUwIEDKy1XKaVefPFF1aVLF9fnM2bMUE2aNHF9vnPnTgWorVu3KqWU+ve//61atmzp6j1y1h0cHOwKEsvrcanO19hisajdu3dX+jpy5EiV79EpNTXVLcCsyOzZs9WyZcvUli1b1KeffqqSk5PVVVdd5ZZnxowZ6rffflObN29W77zzjoqOjlZ33nlnhWWeC4GRT+cYCVFfREf7qN5AH1Uszgvt27d3Xet0OqKiomjXrp0rzblC2DkBd/369fz666/lzhHZu3cvLVq0YO/evTz99NOsWbOGnJwc7KVLMTMyMmjbtm25dTtXFGdnZ9OqVSuP2//rr7/y3HPPsW3bNvLy8rBarRQXF2MymQgKCgIgMDCQpk2butVV2YRip4ULF/Laa6+xZ88eCgoKsFqthIaGuu4PHTqUiRMnsmbNGi699FLmzZtHx44dSU1NBWD79u1069bNbfuZHj16UFBQwMGDB2ncuHG59XryNT6TXq+nWbNmVb4nT6xevZpt27a55vZW5vR5Q23btqV58+Z07dqVDRs20LlzZwDGjx/vytO+fXsiIiK45ZZbeOGFF4iKiqqRNtc0CYyEqGVBQXD0qA/qNQRxdKIPKhYuBZMKKryn0+rcPs9+tOJf1lqN+2rc9IfSz6pdTn5+fm6fazQatzTnL3VncGO32xkwYAAvvPBCmbKcwc2AAQNITEzknXfeISEhAbvdTtu2bTGbzRXWfWY9nti/fz/XXnst48aN45lnniEyMpKVK1dy5513YrFYKn2PqopVzGvWrGHo0KFMnTqVfv36ERYWxvz583nllVfc3m+fPn345JNPuPTSS/n000+5++67XfdVOXvyOeut7OxCT77GZ8rIyHAFZBUZMWIEb731VqV5AN599106duxIly5dqsx7ps6dO+Pn58fu3btdgdGZLr30UgD27NkjgZEQQtQ3QYYgn+etSZ07d+aLL74gOTkZvb7sr49jx46xfft23n77bXr27Ak4Dv+uDevWrcNqtfLKK6+4tnH57LPPvC7HYDBgs9nc0v744w+SkpJ48skn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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "def sinh_archsinh_pdf(x, mu, sigma, eps, delta):\n", " mul = 2 / np.sinh( np.arcsinh(2) * delta) \n", " z = (x - mu) / (sigma*mul) \n", " S = np.sinh( -eps + (1/delta) * np.arcsinh(z))\n", " return np.exp(-0.5 * S * S) * np.sqrt(1 + S * S) / ( sigma * mul * delta ) / np.sqrt(1 + z * z) / np.sqrt(2 * np.pi)\n", "\n", "x = np.arange(start = 0, stop = 30, step = 0.001)\n", "pxv = sinh_archsinh_pdf(x, 6.06, 0.62, 0.33, 1.06)\n", "pxf = sinh_archsinh_pdf(x, 5.6657, 1.224146, 0.795868, 1.9983)\n", "plt.plot(x, pxv, label = 'vote', color = 'b')\n", "plt.plot(x, pxf, label = 'fantavote', color = 'g')\n", "plt.fill_between(x, pxv, color = 'lightblue')\n", "plt.fill_between(x, pxf, color = 'lightgreen')\n", "mv = np.average(x, weights = pxv)\n", "mf = np.average(x, weights = pxf)\n", "plt.vlines(x = mv, color = 'b', ymin = 0, ymax = 3, linestyle = 'dashed', label = 'mean vote = ' + '{:.2f}'.format(mv))\n", "plt.vlines(x = mf, color = 'g', ymin = 0, ymax = 3, linestyle = 'dashed', label = 'mean fantavote = ' + '{:.2f}'.format(mf))\n", "plt.legend()\n", "plt.xlim([0, 20])\n", "plt.ylim([0, 1])\n", "plt.ylabel('Probability Density')\n", "plt.xlabel('Vote')\n", "plt.title('Beto (A) estimated performance')\n", "plt.show()\n" ] }, { "cell_type": "markdown", "id": "687f1e8b", "metadata": {}, "source": [ "There is code also for computing the expected points outcome of a particular line-up, by sampling multiple times from the players' points distribution and considering bonus for Defense Modifier (\"Modificatore\") and Clean Sheet. This leads to estimating the team's points probability distribution." ] }, { "cell_type": "markdown", "id": "0963b484", "metadata": {}, "source": [ "![png](README_files/lineup_prediction.png)" ] }, { "cell_type": "markdown", "id": "fe6a8b9f", "metadata": {}, "source": [ "Credits:\n", "\n", "http://Fantacalcio.it - The game! And of course, a lot of data, including votes, players list and probable line-ups.\n", "\n", "http://FBRef.com - Plenty of stats for football players and teams.\n", "\n", "https://github.com/amiles2233/ff_prob - Inspiration, for using Tensorflow Probability and Bayesian Neural Networks for this task.\n", "\n", "https://github.com/parth1902/Scrape-FBref-data - FBref data scraping code." ] }, { "cell_type": "markdown", "id": "dd7edd83", "metadata": {}, "source": [ "#fantacalcio #fantasy-football #serie-a\n", "\n", "#machine-learning #ai #neural-networks\n", "\n", "#python #tensorflow #tensorflow-probability" ] } ], "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 }