Created
September 27, 2024 10:22
-
-
Save dfulu/9faaab65852401d2e2e24ffcd5ca4b15 to your computer and use it in GitHub Desktop.
Minimise expected loss from predicted quantiles
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "code", | |
| "execution_count": 2, | |
| "id": "b75983a3-7e65-4c1d-8cf8-4b0d92b99707", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "import numpy as np\n", | |
| "import matplotlib.pyplot as plt" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "5eefa5b1-f06c-4083-bbba-6ea80834a6a2", | |
| "metadata": {}, | |
| "source": [ | |
| "Lets say we are are trying to predict the PV power outturn for some future time. Given the inputs we have available, there is some uncertainty about the value $y_true$ that the PV will actually be. We can desribe our expected probability over all values of $y$ as the probability distribution $p(y)$. In the cell below we will create this distribution $p(y)$ in python and note that we assume that the PV power has been normalised so can only be in the range 0-1." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 67, | |
| "id": "70009748-117d-48d5-a360-ae63d754666b", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGwCAYAAABB4NqyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABZEUlEQVR4nO3deVyU5d4G8GtmgBlAGPZNQNxAUQFFQUwzi0JT08pSKzVLOy2nU9Fqi5ZWmpXH6vXkySX1VC6V2qKRSqm5r6iIG4KCwLApM+zLzPP+AUyRqIDAPcv1/Xzm876Oz4zXzLG4ep7fc98ySZIkEBEREVkRuegARERERO2NBYiIiIisDgsQERERWR0WICIiIrI6LEBERERkdViAiIiIyOqwABEREZHVsREdwBQZDAZkZ2fDyckJMplMdBwiIiJqAkmSUFxcDD8/P8jl1z/HwwLUiOzsbAQEBIiOQURERC2QmZkJf3//6x7DAtQIJycnALVfoLOzs+A0RERE1BQ6nQ4BAQHGn+PXwwLUiPrLXs7OzixAREREZqYp4yscgiYiIiKrwwJEREREVocFiIiIiKwOCxARERFZHRYgIiIisjosQERERGR1WICIiIjI6rAAERERkdVhASIiIiKrwwJEREREVocFiIiIiKwOCxARERFZHW6GSkREDVTrDSir1KO8Wg+ZDLBTyGFrI4eDrQJy+Y03mSQyByxARERWRpIkaHQVOJ1TjJQcHc7nlSCrqBw52gpodBWoqjE0+jobuQyeTkp4OinR0cUewd5OCPZ2Qk9fJ3T2cGzSDtxEpoIFiIjICmQUluGP1HzsT7uMA+mXodFV3PA1NnIZJAB6gwQAqDFIyNFWIEdbgeOXtPglWWM81qODEtGd3TCwixvu6OkNPxf7tvooRK1CJkmSJDqEqdHpdFCr1dBqtXB2dhYdh4io2SRJwqmcYvx6UoNfT2pwWlPc4PcVchm6ejqih48zQnyc4O9qD1+1PXzVKjirbGFvp4CdTe2YqN4goVpvwJWyKuTpKpFXXImLhaU4m1uMM5pinNIUX3XWKDzABcN7+WBMhB/LELWb5vz8FlqAdu7ciQ8//BCHDx9GTk4ONmzYgLFjx17z+EcffRQrV6686vnQ0FCcPHkSAPD222/jnXfeafD7ISEhOH36dJNzsQARkbm6XFqFDUezsO5gJs7k/ll6FHIZIju5IqaLO6K7uKFfoCtUtopW+TMra/Q4lqnFgfRC7Dibj0MXr6D+J4tcBgwL8cJD0YG4LcQLCs4QURtqzs9voZfASktLER4ejsceewz33XffDY//5JNPMG/ePOOva2pqEB4ejgceeKDBcb169cK2bduMv7ax4ZU+IrJsxzKLsHRXOn5N1qBKX3s2xs5GjqHBnojr5YM7enjB1dGuTf5spY0CUZ3dENXZDf+8vTvyiiuwNSUXPyRl40D6ZSSezkPi6TwEuTvgqdu64t6+/sazS0SiCG0GI0aMwIgRI5p8vFqthlqtNv5648aNuHLlCqZOndrgOBsbG/j4+DT5fSsrK1FZWWn8tU6na/JriYhEMRgkbD+bh8U70nAg/bLx+d4dnTG+fwDuiegItb1tu+fyclLh4ehOeDi6E1LzSrD2YAa+PXwJFwrL8Or3J7Bw2zk8dVtXTIwKhK2CRYjEMOtTI8uWLUNsbCw6derU4Plz587Bz88PKpUKMTExmDt3LgIDA6/5PnPnzr3qshkRkamSJAm/n8nDh7+examc2v9gs5HLcE+EHx67pTN6d1Tf4B3aTzevDnhjZCiejw3G6gMZ+GJnGnK0FZj5w0ms2HMBM0b0RGxPL95BRu3OZIagZTLZDWeA/io7OxuBgYH45ptv8OCDDxqf/+WXX1BSUoKQkBDk5OTgnXfeQVZWFpKTk+Hk5NToezV2BiggIIAzQERkcvanFeLDX8/g0MUrAIAOShs8FB2IqbcEwVdt+sPGlTV6rD2YiU+2nUNhaRUA4JZu7nhvbB8EeTgKTkfmzmyGoP+quQVo7ty5+Pjjj5GdnQ07u2tf1y4qKkKnTp2wYMECPP744016bw5BE5GpuXSlDO9tOmW89VxpI8ejg4Lw5NCubTbb05Z0FdX4fPt5LNuVjqoaA5Q2crxwZzCmDe4MG14WoxYymyHolpIkCcuXL8ekSZOuW34AwMXFBcHBwUhNTW2ndEREraeiWo8lO9OwaHsqKqoNkMuACVGB+Nft3eGjVomO12LOKlu8OrwHJg4IxOsbTmBXagHm/XIaPx3LxicTItDNq/Ez9kStxSxr9o4dO5CamtqkMzolJSU4f/48fH192yEZEVHr2Z1agLiFO/Hx1rOoqDYgqrMbNv1rCN6/t49Zl5+/CnR3wP8ej8JHD4RDbW+Lk9k6jPpsF1YfyICJXKAgCyX0DFBJSUmDMzPp6elISkqCm5sbAgMDMWPGDGRlZWHVqlUNXrds2TJER0ejd+/eV73nSy+9hNGjR6NTp07Izs7GrFmzoFAoMHHixDb/PEREraGksgZzN5/C1/szAADezkq8fndP3BPuZ5HDwjKZDOMi/XFrsAdeXHcMf5wrwIz1J7DzbD4+GBcGZ1X738lGlk9oATp06BCGDRtm/HV8fDwAYMqUKVixYgVycnKQkZHR4DVarRbff/89Pvnkk0bf89KlS5g4cSIKCwvh6emJwYMHY9++ffD09Gy7D0JE1Ep2pxbgle+OI6uoHADwyMBAvDaiJzoozXJioVm8nFRYOTUKS3elYX7CGfySrMGZ3GIsmdwfXT07iI5HFsZkhqBNCYegiai9VdboMe+X0/hy9wUAgL+rPebfH4ZB3TzEBhMkKbMIT311GDnaCjgpbfDpxL4Y1sNLdCwycc35+W2WM0BERJYkvaAU93++x1h+HhkYiF+fv9Vqyw8ARAS44Md/DsaAIFcUV9bgsZUHsfSPNNGxyIKwABERCbTxaBZGffoHkrN0cHWwxbIp/fHu2D5wtIJLXjfi6aTE19MG4qHoQEgS8O6mU3hvUwoMBl64oJvHf8KIiASorNHj7R9TsPpA7ZxjdGc3fDKhr8Xc3dVa7GzkeG9sbwS6OWDeL6ex5I905BVX4sNx4dxPjG4KCxARUTvL01Xgya8O40hGEWQy4F+3d8e/7ujOndKvQSaT4cmhXeHlpMQr3x3HD0nZKCqrxn8nRbbajvZkfVifiYja0ZGMKxj12S4cySiCs8oGyx8dgBfuDGb5aYL7+vlj+aMDYG+rwI6z+Zi+6hAqqvWiY5GZYgEiImon3x7KxIT/7kNecSWCvTvgx38OxrAQ3tnUHLcGe+LLqQPgYKfAH+cK8NiKgyivYgmi5mMBIiJqY5IkYcGWM3j5u+Oo0hswvJcP1j99Czf/bKGBXdyx8rEoONopsOd8IR5feZBngqjZWICIiNpQVY0BL647hk9/q131/p/DuuE/D/ezioUN29KAIDesejzaWIKeXX0UNXqD6FhkRliAiIjaiLasGpOX78f6o1lQyGWYd18fvBQXAjnnfVpFZCdXLJ0yAHY2cmxNycUr3x/nLfLUZCxARERtIEdbjvsX78G+tMvooKwddp4QFSg6lsWJ6eqORQ/1g0Iuw/ojWZizKYWbqFKTsAAREbWy9IJSjPt8L1LzSuDjrMK6f8RgaDD3I2wrd4Z646MHwgAAX+6+YFxRm+h6WICIiFrRaY0ODyzei6yicnT2cMT3Tw9CqB/3FGxr9/b1x4wRPQAAczalYFtKruBEZOpYgIiIWsmRjCsY/999KCipRA8fJ6z7Rww6utiLjmU1nri1CyZGBUCSgH+tOYrkLK3oSGTCWICIiFrBnvMFeGTpfmjLq9Ev0AVrn4iBp5NSdCyrIpPJMHtMbwzu5oGyKj0eX3kQGm2F6FhkoliAiIhu0p7ztQvylVXpMbibB/73eDTUDraiY1klW4Ucix7uh+5eHZCrq8Q/vjqMyhquEURXYwEiIroJe88X4rEVB1FRbcBtIZ5YOqU/d3IXTG1vi2VTBkBtb4tjmUWY/VOK6EhkgliAiIhaaF/an+VnaLAnFj/CzTlNRaC7AxZOiIBMBny9PwPfHsoUHYlMDAsQEVEL7E8rxNQvD6K8Wo9bgz25M7kJGhbihefvCAYAvLExmUPR1AALEBFRMx28cBlTV9SWnyHdPfAFy4/Jevb2brijhxeqagx48qvD0JZVi45EJoIFiIioGZKztHjsy9qB5yHdPbBkcn+WHxMml8uwYHwEOrk74NKVcszYcJwrRRMAFiAioiZLyy/BlOUHUFxZg6jObiw/ZkJtb4vPJvaFjVyGzSc0WHuQ80DEAkRE1CTZReWYtOwACkur0LujM5ZOYfkxJ2H+LngpLgQA8M5PKUjNKxGciERjASIiuoHCkkpMWrYfWUXl6OLpiJVTo+Cs4jo/5uaJIV1wSzd3lFfr8a/VR7k+kJVjASIiuo7iimo8+uVBnM8vhZ9ahf89Hg33Dlzh2RzJ5TIseDACrg62SMnR4cOEM6IjkUAsQERE11B/59CJLC3cHO3wv2nR3NvLzHk7q/DhuHAAwLLd6TiQfllwIhKFBYiIqBGSJOG19cexO7UQDnYKrJwaha6eHUTHolYQG+qN8f1rN019+btjKKuqER2JBGABIiJqxL+3ncP6I1lQyGVY9HA/9PFXi45EreiNUT3hq1bhYmEZ5vNSmFViASIi+pt1BzPxaeI5AMC7Y3tjWIiX4ETU2pxVtvjg/jAAwIo9F7AvrVBwImpvLEBERH+x42w+Zmw4AQD457BumBgVKDgRtZVbgz0xMSoAAPDKd8d5KczKsAAREdU5ma3F018dht4g4b6+HfHiXcGiI1Ebe/3unujoYo+My2X46NezouNQO2IBIiICoNFW4LEVB1FapUdMF3fMuz8MMplMdCxqY04qW7x/Xx8AwIo96dww1YqwABGR1auo1uOJ/x1Crq4S3b06YPGkSNjZ8F+P1mJosCdGhfnCIAGvbzgBvYF7hVkD/hNORFZNkiS88t1xHL+khauDLZZNGQC1PVd5tjYzR4XCSWmD45e0+GrfRdFxqB2wABGRVfvP9vP48Vg2bOQy/OfhSAS6O4iORAJ4OavwyvDavcI+/PUMNNoKwYmorbEAEZHVSkjW4MNfa9eAmT2mN2K6ugtORCI9FN0JEQEuKKmsweyfT4qOQ22MBYiIrFJKtg7x65IAAFNiOuGhaN7ubu0Uchnev7cPFHIZNp/QYNe5AtGRqA0JLUA7d+7E6NGj4efnB5lMho0bN173+O3bt0Mmk1310Gg0DY5btGgRgoKCoFKpEB0djQMHDrThpyAic1NQUonpqw6hrEqPwd088NaoUNGRyESE+jlj0sBOAIB3fjqJar1BcCJqK0ILUGlpKcLDw7Fo0aJmve7MmTPIyckxPry8/lylde3atYiPj8esWbNw5MgRhIeHIy4uDnl5ea0dn4jMUI3egH9+cwRZReXo7OGIRQ/1g42CJ8PpTy/EBsPVwRbn8ko4EG3BhP5TP2LECLz77ru49957m/U6Ly8v+Pj4GB9y+Z8fY8GCBZg+fTqmTp2K0NBQLF68GA4ODli+fPk136+yshI6na7Bg4gs0wcJp7Ev7TIc7RRYMjkSagfe8UUNqR1s8eJdtQPR/956FpdLqwQnorZglv/ZExERAV9fX9x5553YvXu38fmqqiocPnwYsbGxxufkcjliY2Oxd+/ea77f3LlzoVarjY+AgIA2zU9EYvx8PBtL/kgHAHz0QDi6eTkJTkSmamJUIHr6OkNXUYOPt3CzVEtkVgXI19cXixcvxvfff4/vv/8eAQEBuO2223DkyBEAQEFBAfR6Pby9vRu8ztvb+6o5ob+aMWMGtFqt8ZGZmdmmn4OI2t/Z3GK88t1xAMA/hnbBiD6+ghORKVPIZXh7dO1s2OoDGUjJ5pUBS2MjOkBzhISEICQkxPjrQYMG4fz58/j3v/+N//3vfy1+X6VSCaVS2RoRicgE6Sqq8eT/DqOsSo9BXd3x8l0hN34RWb3oLu4YGeaLTcdz8O6mFHw9LZrbo1gQszoD1JioqCikpqYCADw8PKBQKJCbm9vgmNzcXPj4+IiIR0SCGQwSXlx3DGkFpfBTq/DZxL4ceqYme214D9gp5NhzvhA7zuaLjkOtyOz/LZCUlARf39pT2XZ2doiMjERiYqLx9w0GAxITExETEyMqIhEJ9PmO89iakgs7hRyfPxIJ9w4820tNF+DmgCmDam+Ln/fLae4TZkGEXgIrKSkxnr0BgPT0dCQlJcHNzQ2BgYGYMWMGsrKysGrVKgDAwoUL0blzZ/Tq1QsVFRVYunQpfvvtN2zZssX4HvHx8ZgyZQr69++PqKgoLFy4EKWlpZg6dWq7fz4iEmt3agE+2lK/0nMvhAe4iA1EZumZYd2w9mAmTmuKseFoFsZF+ouORK1AaAE6dOgQhg0bZvx1fHw8AGDKlClYsWIFcnJykJGRYfz9qqoqvPjii8jKyoKDgwPCwsKwbdu2Bu8xfvx45OfnY+bMmdBoNIiIiEBCQsJVg9FEZNnyiivw3JokSBIwvn8AJkRxpWdqGRcHOzwzrBvm/nIaH285g1FhvlDZKkTHopskkySJ5/P+RqfTQa1WQ6vVwtnZWXQcImomvUHCI0v3Y29aIXr4OGHjM7fwBxbdlIpqPW7/aDuytRV4bUQPPDm0q+hI1Ijm/Pw2+xkgIqK/+zTxHPamFcLBToFFD/dj+aGbprJVIL7u7sFFv6fiChdHNHssQERkUfakFuDT384BAN6/tw+6enYQnIgsxb19O6KHjxOKK2rwxR9pouPQTWIBIiKLkVdcgX/Vzf1MGBCAsX07io5EFkQhlxm3yFix+wIKSioFJ6KbwQJERBZBb5Dw/JokFJRUIsTbCbNG9xIdiSxQbE8vhPurUV6tx+Lt50XHoZvAAkREFuGz385hz/k/537s7Tj3Q61PJpPhhTuDAQD/23cRuboKwYmopViAiMjs7TlfgE8Sa+d+3h3bG928OPdDbWdosCciO7missaA//yeeuMXkEliASIis3altAovrK2d+3kg0h/39eMiddS2ZDIZXqw7C7T6QCayisoFJ6KWYAEiIrMlSRJe/f44cnWV6OLpiHfGcO6H2segbh4Y2MUNVXoD/u83ngUyRyxARGS2Vh/IxJaUXNgqZPh0Ql842Ald3J6sTP0dYd8dzkQ2zwKZHRYgIjJLqXklmP3zSQDAy3Eh6N1RLTgRWZsBQW4Y2MUN1XoJX+zkukDmhgWIiMxOVY0Bz605iopqAwZ388C0wV1ERyIr9c9h3QEAqw9kIL+Y6wKZExYgIjI7H285g5PZOrg62OLjB8Mhl8tERyIrdUs3d4QHuKCyxoBlu9JFx6FmYAEiIrOyO7UA/6273PDB/WHwdlYJTkTWTCaT4Z/DugEAvtp3EdqyasGJqKlYgIjIbFwprUL8uiQAwEPRgbirl4/YQEQA7ujhhR4+TiiprMGKPRdEx6EmYgEiIrPw11veu3o64q2RoaIjEQEA5HIZnq47C/TlnnSUVtYITkRNwQJERGZh7cE/b3n/ZEJfbnVBJmVkH1909nBEUVk1vt5/UXQcagIWICIyeZmXyzDn5xQAwEt38ZZ3Mj0KuQxPDe0KAFjyRzoqa/SCE9GNsAARkUnTGyS8uO4YSqv0iApyw7QhvOWdTNPYvh3h46xCfnElfkjKFh2HboAFiIhM2vJd6Thw4TIc7BT46IFwKHjLO5koOxs5pt4SBABY+kcaJEkSG4iuiwWIiEzW2dxifLjlDADgrVGhCHR3EJyI6PomRAXC0U6Bs7kl2HE2X3Qcug4WICIySdV6A+LXJaGqxoDbQjwxYUCA6EhEN6S2t8WEqEAAwNI/uDCiKWMBIiKT9NlvqUjO0sHFwRbz7w+DTMZLX2Qept4SBIVchl2pBTiZrRUdh66BBYiITM6xzCIs+j0VAPDu2N7w4mrPZEb8XR1wdx9fAMAyngUyWSxARGRSKqr1eGFdEvQGCaPD/TAqzE90JKJmmz6kMwDgx2PZyNGWC05DjWEBIiKT8kHCaaTll8LLSYk5Y3qJjkPUImH+Loju7IYag8TtMUwUCxARmYw95wvw5e4LAIAPxoXBxcFObCCimzC9bs2qb/ZncHsME8QCREQmobSyBq98dxwAMDEqEMNCvAQnIro5t/fwQmcPRxRX1GDD0SzRcehvWICIyCTMTziNS1fK0dHFHm+M7Ck6DtFNk8tlmDSwEwBg1d4LXBjRxLAAEZFw+9MKsXJv7QaSH9wfhg5KG8GJiFrHuP7+cKhbGHFvWqHoOPQXLEBEJFR5lR6vfF9/6SsAg7t7CE5E1HqcVba4r19HAMBKDkObFBYgIhLqoy1ncLGwDL5qFWbczUtfZHmmxAQBALam5OLSlTKxYciIBYiIhDl88TKW765dKG7ufX3grLIVnIio9XX3dsKgru4wSMBX+zJEx6E6LEBEJERFtR4vf3cckgSMi/THbbzriyzYlEFBAIC1BzNQUa0XG4YAsAARkSD/3nrWuODhWyNDRcchalN39PBCRxd7XCmrxo/HskXHIbAAEZEARzOuYMkfaQCA9+/tA7UDL32RZbNRyPFI3S3xK/fwlnhTwAJERO2qskaPV747DoMEjI3wQ2yot+hIRO1iwoAAKG3kOJmtQ1Jmkeg4Vk9oAdq5cydGjx4NPz8/yGQybNy48brHr1+/HnfeeSc8PT3h7OyMmJgY/Prrrw2OefvttyGTyRo8evTo0Yafgoia49PEcziXVwKPDkrMGs29vsh6uDraYWTdLvGrD3AYWjShBai0tBTh4eFYtGhRk47fuXMn7rzzTmzevBmHDx/GsGHDMHr0aBw9erTBcb169UJOTo7xsWvXrraIT0TNlJylxeIdtZe+3h3bC66O3OuLrMvE6EAAwE/HcqCrqBacxroJXW51xIgRGDFiRJOPX7hwYYNfv//++/jhhx/w008/oW/fvsbnbWxs4OPj01oxiagV1OgNeG39cegNEkb28cXw3r6iIxG1u/6dXNHdqwPO5ZXgh6NZmFS3RhC1P7OeATIYDCguLoabm1uD58+dOwc/Pz906dIFDz/8MDIyrn+qsbKyEjqdrsGDiFrX8t3pSM7SQW1vi7fv4aUvsk4ymQwTo2rPAn29P4PD0AKZdQH66KOPUFJSggcffND4XHR0NFasWIGEhAR8/vnnSE9Px5AhQ1BcXHzN95k7dy7UarXxERAQ0B7xiaxGRmEZFmw9CwB4Y2RPeDopBSciEue+fh1hZyPHaU0xh6EFMtsC9M033+Cdd97BunXr4OX15wJqI0aMwAMPPICwsDDExcVh8+bNKCoqwrp16675XjNmzIBWqzU+MjMz2+MjEFkFSZLw+oYTqKg2YFBXdzwQ6S86EpFQLg52GMVhaOHMsgCtWbMG06ZNw7p16xAbG3vdY11cXBAcHIzU1NRrHqNUKuHs7NzgQUSt4/sjWdiVWgCljRzv39sHMplMdCQi4TgMLZ7ZFaDVq1dj6tSpWL16NUaOHHnD40tKSnD+/Hn4+nLgkqi9FZRU4t1NKQCA52ODEeThKDgRkWmoH4Yur9bjh6NZouNYJaEFqKSkBElJSUhKSgIApKenIykpyTi0PGPGDEyePNl4/DfffIPJkyfj448/RnR0NDQaDTQaDbRarfGYl156CTt27MCFCxewZ88e3HvvvVAoFJg4cWK7fjYiAmb/lIKismr09HXGtCGdRcchMhkchhZPaAE6dOgQ+vbta7yFPT4+Hn379sXMmTMBADk5OQ3u4Priiy9QU1ODZ555Br6+vsbHc889Zzzm0qVLmDhxIkJCQvDggw/C3d0d+/btg6enZ/t+OCIr9/vpPPx4LBtyGfDB/X1gqzC7E85Eber+fv5Q1g1DH7+kvfELqFXJJNbOq+h0OqjVami1Ws4DEbVAaWUN7vr3TmQVlWPa4M54cxQ3OyVqzL9WH8WPx7IxaWAnzBnbW3Qcs9ecn9/8TzIianUfbTmDrKJy+LvaI/6uYNFxiEzWA/1r74r8ISkLFdV6wWmsCwsQEbWqoxlXsGLPBQC1O7072AldcJ7IpA3q6gE/tQq6ihpsTckVHceqsAARUaupqjHgte9PQJKA+/p2xK3BnL0juh6FXIb769bG+vbwJcFprAsLEBG1mi92nseZ3GK4Odpx7oeoicbVFaA/zuUjR1suOI31YAEiolaRXlCKT3+rXXD0rVE94cad3omapJO7I6I6u0GSgPVHuCZQe2EBIqKbJkkS3tqYjKoaA4Z098DYiI6iIxGZlfotYr49lMk1gdoJCxAR3bQfj2VjV2oB7GzkmDOmN7e7IGqmu/v4wsFOgQuFZTh08YroOFaBBYiIboq2vBpzfj4FAPjnsG7c7oKoBRyVNhhZt0Hqt4e4IXd7YAEiopsyP+E0Ckoq0cXTEf8Y2kV0HCKz9UD/AADApuM5KKuqEZzG8rEAEVGLHcm4gm8O1G5X897YPlDaKAQnIjJfA4JcEeTugNIqPbac5JpAbY0FiIhapFpvwOvra9f8ub+fP2K6uouORGTWZDIZxtTdQLCBO8S3ORYgImqRL3en47SmGC4Otnj97h6i4xBZhLF9awvQH+fykV9cKTiNZWMBIqJmyyoqx7+3ngMAzBjRA+4dlIITEVmGzh6OiAhwgUECfj6eLTqORWMBIqJmm/XDSZRX6zEgyBUPRAaIjkNkUe6tOwu0kZfB2hQLEBE1y68nNdh2Khc2chneu7cP5HKu+UPUmkaG+UIhl+HYJS3O55eIjmOxWICIqMlKKmvw9o8nAQBP3NoFwd5OghMRWR6PDkrc2t0DAPADzwK1GRYgImqyf289ixxtBQLc7PHs7d1FxyGyWPXD0BuSsrg1RhthASKiJknO0uLL3ekAgNljesPejmv+ELWVO0O94WCnQOblchzJ4NYYbYEFiIhuSG+Q8MbGZBgkYGQfXwwL8RIdiciiOdjZYHgvHwDAxqO8G6wtsAAR0Q19s/8ijmUWwUlpg5mjQ0XHIbIK9ZfBfj6ejaoag+A0locFiIiuq6CkEvN/PQMAePGuYHg7qwQnIrIOg7q6w9NJiStl1fjjXL7oOBaHBYiIrmveL6dRXFGDXn7OmBQTJDoOkdWwUciNO8T/fDxHcBrLwwJERNd06MJlfHf4EgBgztjeUHDNH6J2NTq8tgBtTclFRbVecBrLwgJERI2q0Rvw1g+1a/482N8f/QJdBScisj59A1zhp1ahpLIG28/wMlhrYgEiokZ9vT8Dp3J0cFbZ4NXh3OyUSAS5XIaRYfWXwXg3WGtiASKiq+QXV+KjLbWDzy8P52anRCKNCvMDACSeykNZVY3gNJaDBYiIrlI/+Ny7ozMeigoUHYfIqoX5qxHo5oDyaj0ST+WJjmMxWICIqIFDFy7j+yO1g8+zx3DwmUg0mYyXwdoCCxARGf118Hl8/wAOPhOZiNF1l8F+P5OP4opqwWksAwsQERl9te8iTuXooLa3xSvDQ0THIaI6PX2d0MXTEVU1Bmw7lSs6jkVgASIiALWDzx9vOQsAeDkuhIPPRCZEJpMZh6F/PsZFEVsDCxARAagbfK6sHXyeyMFnIpMzum4OaOe5fGjLeBnsZrEAEREO/mXweQ4Hn4lMUndvJ4R4O6FaL2FLikZ0HLPHAkRk5Wr0Bry1MRkAMGFAAPpy8JnIZI3o4wMA+PUkC9DNYgEisnL/23cRpzXFdYPPXPGZyJSN6F1/GawAJZVcFPFmsAARWbH84kos+Mvgs5ujneBERHQ9wd4d0MWj9m6w309zUcSbIbQA7dy5E6NHj4afnx9kMhk2btx4w9ds374d/fr1g1KpRLdu3bBixYqrjlm0aBGCgoKgUqkQHR2NAwcOtH54Igsw95dTKK6sQZ+Oag4+E5kBmUyGuN61l8ESknkZ7GYILUClpaUIDw/HokWLmnR8eno6Ro4ciWHDhiEpKQnPP/88pk2bhl9//dV4zNq1axEfH49Zs2bhyJEjCA8PR1xcHPLy2JSJ/urghctYfyQLMhkwZywHn4nMxYi6AvT7mTxUVOsFpzFfMkmSJNEhgNpWu2HDBowdO/aax7z66qvYtGkTkpOTjc9NmDABRUVFSEhIAABER0djwIAB+L//+z8AgMFgQEBAAJ599lm89tprTcqi0+mgVquh1Wrh7Ozc8g9FZKJq9AaM+mwXTmuKMTEqAHPvCxMdiYiaSJIkDP7gd2QVleOLSZG4q5eP6Egmozk/v81qBmjv3r2IjY1t8FxcXBz27t0LAKiqqsLhw4cbHCOXyxEbG2s8pjGVlZXQ6XQNHkSWrH7w2cXBFi/HcfCZyJzIZDLE9eJlsJtlVgVIo9HA29u7wXPe3t7Q6XQoLy9HQUEB9Hp9o8doNNf+SzJ37lyo1WrjIyAgoE3yE5mCvOIKDj4Tmbn62+G3nspFVY1BcBrzZFYFqK3MmDEDWq3W+MjMzBQdiajNzNtcu+JzmL8aEwZw8JnIHPULdIVHByWKK2qwN61QdByzZFYFyMfHB7m5DTeBy83NhbOzM+zt7eHh4QGFQtHoMT4+175GqlQq4ezs3OBBZIkOpF/G+qN1g89c8ZnIbCnkMsT1qr3akZDMvcFawqwKUExMDBITExs8t3XrVsTExAAA7OzsEBkZ2eAYg8GAxMRE4zFE1qpGb8DMH/5c8Tk8wEVsICK6KcPr7gbbcjIXeoNJ3M9kVoQWoJKSEiQlJSEpKQlA7W3uSUlJyMjIAFB7aWry5MnG45988kmkpaXhlVdewenTp/Gf//wH69atwwsvvGA8Jj4+HkuWLMHKlStx6tQpPPXUUygtLcXUqVPb9bMRmZpVezn4TGRJBnZxh9reFoWlVTh44bLoOGbHRuQffujQIQwbNsz46/j4eADAlClTsGLFCuTk5BjLEAB07twZmzZtwgsvvIBPPvkE/v7+WLp0KeLi4ozHjB8/Hvn5+Zg5cyY0Gg0iIiKQkJBw1WA0kTXJK67Av7fWDj6/EteDg89EFsBWIUdsT298f+QSEpI1GNjFXXQks2Iy6wCZEq4DRJYmfm0S1h/NQpi/GhuevoWzP0QWYltKLqatOgRftQp7XrsdMpl1/7NtsesAEVHz7U8r5OAzkYUa3N0D9rYK5GgrcDKba9g1BwsQkQWr1hsw84eTAIAJAwI5+ExkYVS2Cgzp7gEA2HYq9wZH01+xABFZsFV7L+JMbu3g8ytxIaLjEFEbiA2tnXFlAWoeFiAiC5Wnq8DCvww+u3Lwmcgi3dHDCzIZkJylQ3ZRueg4ZoMFiMhCzf2ldsXncH81xg/g9i5Elsq9gxKRga4AgESeBWqyZt8GX1RUhA0bNuCPP/7AxYsXUVZWBk9PT/Tt2xdxcXEYNGhQW+QkombYn1aIDXWDz7M5+Exk8WJDvXHo4hVsPZWHSTFBouOYhSafAcrOzsa0adPg6+uLd999F+Xl5YiIiMAdd9wBf39//P7777jzzjsRGhqKtWvXtmVmIrqOvw4+T4zi4DORNYjtWTsHtPd8AYorqgWnMQ9NPgPUt29fTJkyBYcPH0ZoaGijx5SXl2Pjxo1YuHAhMjMz8dJLL7VaUCJqmr8OPr98FwefiaxBN68O6OLhiLSCUuw8W4CRYb6iI5m8JheglJQUuLtff5VJe3t7TJw4ERMnTkRhIXenJWpvebo/V3x+dTgHn4msSWyoN77YmYZtp3JZgJqgyZfA/lp+SktLm3U8EbWP9zefQkllDcIDXDC+PwefiaxJ/WWw307noUZvEJzG9LXoLjBvb2889thj2LVrV2vnIaIW2p9WiI1J2XUrPveCnIPPRFalX6ALXB1soS2vxqGLV0THMXktKkBfffUVLl++jNtvvx3BwcGYN28esrOzWzsbETXR3wefw/xdxAYionZno5Dj9h51iyKm8Hb4G2lRARo7diw2btyIrKwsPPnkk/jmm2/QqVMnjBo1CuvXr0dNTU1r5ySi61i55wLO5BbDlYPPRFbtzlAvAMDWU7ngXufXd1MLIXp6eiI+Ph7Hjx/HggULsG3bNowbNw5+fn6YOXMmysrKWisnEV1Dnq4CC7edA8DBZyJrN6S7J+wUclwsLMO5vBLRcUzaTRWg3NxczJ8/H6GhoXjttdcwbtw4JCYm4uOPP8b69esxduzYVopJRNfy18HnBzn4TGTVHJU2GNSt9iak307nCU5j2pq9EjQArF+/Hl9++SV+/fVXhIaG4umnn8YjjzwCFxcX4zGDBg1Cz549WysnETViHwefiehvbu/hhe1n8vHb6Tw8ObSr6Dgmq0UFaOrUqZgwYQJ2796NAQMGNHqMn58f3njjjZsKR0TXVjv4nAwAeIiDz0RUZ1iIF4CTOHzxCrTl1VDb24qOZJJaVIBycnLg4OBw3WPs7e0xa9asFoUiohtbuecCzuaW1A4+x3HwmYhqBbg5oJtXB6TmlWDXOa4KfS1NngH66+KHNyo/fz+eiFpX7l8Gn18b0QMuDhx8JqI/DQvxBMA5oOtpcgHq1q0b5s2bh5ycnGseI0kStm7dihEjRuDTTz9tlYBEdLX6weeIABc8EMnBZyJqqPYyGLDjbB4MBt4O35gmXwLbvn07Xn/9dbz99tsIDw9H//794efnB5VKhStXriAlJQV79+6FjY0NZsyYgX/84x9tmZvIau09X4gfjIPPvTn4TERX6R/khg5KGxSUVCE5W8sZwUY0uQCFhITg+++/R0ZGBr799lv88ccf2LNnD8rLy+Hh4YG+fftiyZIlGDFiBBQKRVtmJrJa1XoDZv1YO/j8cHQg+virBSciIlNkZyPH4G4eSDipwW+n81iAGiGTbnKpyPqXy2SW81+hOp0OarUaWq0Wzs7OouMQGS39Iw3vbjoFN0c7/PbiUM7+ENE1rT2YgVe/P4HwABf88MwtouO0i+b8/G7xQojLli1D7969oVKpoFKp0Lt3byxdurSlb0dEN5Crq8C/t54FALw6PITlh4iu67a6OaDjl4pQUFIpOI3paVEBmjlzJp577jmMHj0a3377Lb799luMHj0aL7zwAmbOnNnaGYkIwHubTqG0Ss/BZyJqEm9nFXr5OUOSgB1n8kXHMTktWgfo888/x5IlSzBx4kTjc/fccw/CwsLw7LPPYvbs2a0WkIhqB59/PFY7+PzuWA4+E1HT3N7DCyezdfj9TB7uj/QXHcektOgMUHV1Nfr373/V85GRkdwJnqiV/XXF50eiO6F3Rw4+E1HT1F8G23k2HzV6g+A0pqVFBWjSpEn4/PPPr3r+iy++wMMPP3zToYjoTyt2X8C5vBK4Odrhpbu44jMRNV1EgAtcHWyhq6jBkYwi0XFMSosugQG1Q9BbtmzBwIEDAQD79+9HRkYGJk+ejPj4eONxCxYsuPmURFZKo63Awm1/Dj6rHbinDxE1nUIuw9BgT2xMysbvZ/IQ1dlNdCST0aIClJycjH79+gEAzp8/DwDw8PCAh4cHkpOTjcdZ0q3xRCK8t7l28LlfIAefiahlhvXwqi1Ap/Pw6vAeouOYjBYVoN9//721cxDR3+xOLcBPx7IhlwGzueIzEbXQkO6ekMmA05pi5Okq4OWsEh3JJLR4HSAiajtVNX8OPk8ayMFnImo5N0c79Kn7d8jOcwWC05gOFiAiE7R8dzrO55fCo4Md4jn4TEQ36dbutbvD7zzL9YDqsQARmZjsonJ8su0cAGDGiJ5Q23PwmYhuzpDuHgCAXakF3B2+DgsQkYl5d1MKyqv1GBDkivv6dRQdh4gsQL9OruigtMHl0iqczNaJjmMSWICITMjOs/nYfEIDhVyG2WN6805KImoVtgo5Yrq6AwB2nuNlMIAFiMhkVNboMevHkwCAyTGd0NP3+jsZExE1x611l8E4B1TLJArQokWLEBQUBJVKhejoaBw4cOCax952222QyWRXPUaOHGk85tFHH73q94cPH94eH4WoxZb+kY70glJ4Oinxwp3BouMQkYW5Nbh2EPrwxSsoqeS2VcIL0Nq1axEfH49Zs2bhyJEjCA8PR1xcHPLy8ho9fv369cjJyTE+kpOToVAo8MADDzQ4bvjw4Q2OW716dXt8HKIWuXSlDJ/9Vjv4/MbdPeGs4uAzEbWuTu6O6OTugBqDhH3nC0XHEU54AVqwYAGmT5+OqVOnIjQ0FIsXL4aDgwOWL1/e6PFubm7w8fExPrZu3QoHB4erCpBSqWxwnKur6zUzVFZWQqfTNXgQtafZP6WgotqA6M5uGBPhJzoOEVmo+rvBOAckuABVVVXh8OHDiI2NNT4nl8sRGxuLvXv3Nuk9li1bhgkTJsDR0bHB89u3b4eXlxdCQkLw1FNPobDw2m137ty5UKvVxkdAALccoPbz++k8bEnJhUIuw5yxHHwmorbD9YD+JLQAFRQUQK/Xw9vbu8Hz3t7e0Gg0N3z9gQMHkJycjGnTpjV4fvjw4Vi1ahUSExPxwQcfYMeOHRgxYgT0en2j7zNjxgxotVrjIzMzs+UfiqgZKqr1ePun2sHnx24JQrC3k+BERGTJYrq6w0Yuw4XCMmQUlomOI1SLd4M3BcuWLUOfPn0QFRXV4PkJEyYY//8+ffogLCwMXbt2xfbt23HHHXdc9T5KpRJKpbLN8xL93X93pOFiYRm8nZV4LpaDz0TUtpxUtugX6IoDFy5j57l8POLeSXQkYYSeAfLw8IBCoUBubm6D53Nzc+Hj43Pd15aWlmLNmjV4/PHHb/jndOnSBR4eHkhNTb2pvEStKaOwDP/ZXvt38s2RoeigNOv/HiEiM3FrMG+HBwQXIDs7O0RGRiIxMdH4nMFgQGJiImJiYq772m+//RaVlZV45JFHbvjnXLp0CYWFhfD19b3pzEStZfbPJ1FZY8Cgru4YFca/m0TUPobUzQHtPV+Iar1BcBpxhN8FFh8fjyVLlmDlypU4deoUnnrqKZSWlmLq1KkAgMmTJ2PGjBlXvW7ZsmUYO3Ys3N3dGzxfUlKCl19+Gfv27cOFCxeQmJiIMWPGoFu3boiLi2uXz0R0I9tScrHtVB5sFTLMHtOLg89E1G56d1TD1cEWxZU1SMosEh1HGOHn3MePH4/8/HzMnDkTGo0GERERSEhIMA5GZ2RkQC5v2NPOnDmDXbt2YcuWLVe9n0KhwPHjx7Fy5UoUFRXBz88Pd911F+bMmcM5HzIJfx18fnxwF3Tz4uAzEbUfhVyGW7p54OfjOfjjXAEGBLmJjiSETJIkbgv7NzqdDmq1GlqtFs7O3I6AWteCrWfxaeI5+KpV2BY/FI6c/SGidrbmQAZeW38C/Tu54runBomO02qa8/Nb+CUwImtyoaAUi3ecBwC8NSqU5YeIhLilW+0gdFJmkdVui8ECRNROJEnCrB9PoqrGgCHdPTCi9/XvdCQiaisBbg4IcLNHjUHCgXTr3BaDBYionfySrMGOs/mwU8jxzj0cfCYisQbXnQXancoCRERtpKSyBu/UDT4/ObQLunh2EJyIiKzdoK71BahAcBIxWICI2sGCLWeRq6tEJ3cHPD2sm+g4REQY1LV2GZnTmmIUlFQKTtP+WICI2lhylhYr9qQDAGaP6Q2VrUJwIiIiwL2DEj19a++U2nPe+i6DsQARtSG9QcIbG5NhkIBRYb4YGuwpOhIRkdEtdWeB9ljhZTAWIKI2tPpABo5lFqGD0gZvjQoVHYeIqIH62+F3n2cBIqJWkl9ciQ8STgMAXrorGN7OKsGJiIgaiursBhu5DJmXy5FRWCY6TrtiASJqI+9vPoXiihr06ajGpJgg0XGIiK7iqLRB30AXANZ3FogFiKgN7EktwIajWZDJgPfu7Q2FnGv+EJFpstbb4VmAiFpZZY0eb25MBgBMGtgJYf4uYgMREV3H4O61BWjP+UIYDNazPSgLEFEr+2JHGtIKSuHppMRLcSGi4xARXVe4vwsc7BS4XFqF05pi0XHaDQsQUSu6UFCKz35PBQC8ObInnFW2ghMREV2fnY0cUZ3dAAB7rGgOiAWIqJVIkoSZdZudDu7mgXvC/URHIiJqkj/3BWMBIqJm2nxCg51n82FnI8ecsb252SkRmY36Qej96ZdRrTcITtM+WICIWkFxRbVxs9OnhnZFZw9HwYmIiJquh48TXBxsUValR3KWVnScdsECRNQKPt5yFnnFlQhyd8BTt3UVHYeIqFnkchmi6+aA9qZZx75gLEBENykpswgr914AAMwZy81Oicg8DexSuy/YvrTLgpO0DxYgoptQrTdgxvoTkCTg3r4dMaQ7NzslIvMUU7cx6qEL1jEHxAJEdBOW7UrHqRwdXBxs8ebInqLjEBG1WLCXE1zr5oBOWMEcEAsQUQtdLCzFwm1nAQBvjgyFewel4ERERC1XOwdUexZo73nLnwNiASJqAUmS8ObGZFRUGzCoqzvu79dRdCQiops2sEvtIPQ+KxiEZgEiaoGNSVn441wBlDZyvH9vH675Q0QWIaZuPaBDF65Y/BwQCxBRM10urcKcn08BAP51R3cEcc0fIrIQ3b06wM3RDuXVehy/ZNlzQCxARM303qZTuFxahRBvJzxxaxfRcYiIWs1f1wOy9MtgLEBEzbA7tQDfH7kEmQyYe38f2Cr4jxARWZY/1wNiASIiABXVery+4QQAYPLATugX6Co4ERFR66svQIcuXEFVjeXOAbEAETXRp4nncLGwDD7OKrwUFyI6DhFRmwj2/nMO6ERWkeg4bYYFiKgJTuXo8MXONADA7DG94KSyFZyIiKhtyGQy4+3wlrweEAsQ0Q3oDRJmrD+BGoOE4b18cFcvH9GRiIjalDXsC8YCRHQDK/dcQFJmEZyUNnj7nl6i4xARtTnjHNDFyxY7B8QCRHQdGYVl+PDXMwCAV0b0gI9aJTgREVHb6+7VAe6OdqioNuD4pSLRcdoECxDRNUiShBkbjqO8Wo/ozm54OCpQdCQionZROwdk2bfDswARXcPag5nYnVoIla0cH9wfBrmc210QkfUYEFS71MeBC1cEJ2kbLEBEjdBoK/DeptrtLl68M4TbXRCR1RlQtyL0kYtXoDdIgtO0PpMoQIsWLUJQUBBUKhWio6Nx4MCBax67YsUKyGSyBg+VquFchiRJmDlzJnx9fWFvb4/Y2FicO3eurT8GWYjand5PoLiyBuEBLnhscGfRkYiI2l0PH2c4KW1QUlmDUzk60XFanfACtHbtWsTHx2PWrFk4cuQIwsPDERcXh7y8vGu+xtnZGTk5OcbHxYsXG/z+/Pnz8emnn2Lx4sXYv38/HB0dERcXh4qKirb+OGQBfjyWjW2n8mCrkOHDcWFQ8NIXEVkhhVyG/vWXwdIt73Z44QVowYIFmD59OqZOnYrQ0FAsXrwYDg4OWL58+TVfI5PJ4OPjY3x4e3sbf0+SJCxcuBBvvvkmxowZg7CwMKxatQrZ2dnYuHFjo+9XWVkJnU7X4EHWqbCkEu/8lAIA+Oew7gj2dhKciIhInPrLYCxArayqqgqHDx9GbGys8Tm5XI7Y2Fjs3bv3mq8rKSlBp06dEBAQgDFjxuDkyZPG30tPT4dGo2nwnmq1GtHR0dd8z7lz50KtVhsfAQEBrfDpyBy9/VMKLpdWoYePE566ravoOEREQkUF1RaggxcuQ5Isaw5IaAEqKCiAXq9vcAYHALy9vaHRaBp9TUhICJYvX44ffvgBX331FQwGAwYNGoRLly4BgPF1zXnPGTNmQKvVGh+ZmZk3+9HIDG1NycVPx7IhlwHzx4XBzkb4CVIiIqH6+KthZyNHYWkV0gpKRcdpVTaiAzRXTEwMYmJijL8eNGgQevbsif/+97+YM2dOi95TqVRCqVS2VkQyQ9ryarxRt9P7E7d2RZi/i9hAREQmQGmjQESACw6kX8bB9Mvo6tlBdKRWI/Q/cT08PKBQKJCbm9vg+dzcXPj4NG2/JVtbW/Tt2xepqakAYHzdzbwnWZ/3N51CXnElung44vnY7qLjEBGZjPrLYAcuWNYckNACZGdnh8jISCQmJhqfMxgMSExMbHCW53r0ej1OnDgBX19fAEDnzp3h4+PT4D11Oh3279/f5Pck67L9TB7WHsqETAZ8MC4MKluF6EhERCYjykIHoYVfAouPj8eUKVPQv39/REVFYeHChSgtLcXUqVMBAJMnT0bHjh0xd+5cAMDs2bMxcOBAdOvWDUVFRfjwww9x8eJFTJs2DUDtHWLPP/883n33XXTv3h2dO3fGW2+9BT8/P4wdO1bUxyQTpS2vxmvf1176enRQEAbU/ZcOERHV6tfJFXIZcOlKOXK05fBV24uO1CqEF6Dx48cjPz8fM2fOhEajQUREBBISEoxDzBkZGZDL/zxRdeXKFUyfPh0ajQaurq6IjIzEnj17EBoaajzmlVdeQWlpKZ544gkUFRVh8ODBSEhIuGrBRKJ3fjoJja4CnT0c8UpcD9FxiIhMTgelDXr5qXEiS4sD6ZcxJqKj6EitQiZZ2n1trUCn00GtVkOr1cLZ2Vl0HGojW1NyMX3VIchlwLdPDkJkJ1fRkYiITNLsn1KwfHc6HhkYiHfH9hEd55qa8/Ob9/mSVbpSWoUZ62svfU2/tQvLDxHRdUR1rv135MF0y9kYlQWIrNJbPySjoKQS3b064IXYYNFxiIhMWv185JncYhSVVQlO0zpYgMjqbDqeg5+P50Ahl+HjB8N51xcR0Q24d1Ciq6cjAODgBcs4C8QCRFYlv7gSb26svfT19G1c8JCIqKnqb4c/aCHrAbEAkdWQJAlvbDiBK2XV6OnrjGdv54KHRERNVX8ZzFLWA2IBIquxMSkLW1JyYauQ4eMHwrnXFxFRM9QXoOQsLcqqagSnuXn8CUBWQaOtwKwfTgIA/nV7d4T6cXkDIqLm8He1h69ahRqDhKMZRaLj3DQWILJ4BoOEl749Bl1FDcL81Xjqtq6iIxERmR2ZTGY8C3T4ovkPQrMAkcX7cs8F7EotgMpWjn+Pj4CNgn/tiYhaon9Q7XpAh1iAiEzbaY0OHyScBgC8OTIUXT07CE5ERGS++gXWFqCjF6/AYDDvjSRYgMhiVVTr8fyaJFTVGHB7Dy88HB0oOhIRkVnr4eMEBzsFiitrcC6vRHScm8ICRBbr4y1ncFpTDHdHO3xwfxhkMpnoSEREZs1GIUdEgAsA4NBF874dngWILNLu1AIs+SMdAPDB/WHwdFIKTkREZBn61+2daO6D0CxAZHG0ZdV4cd0xAMBD0YGIDfUWnIiIyHL0qytAR1iAiEyHJEl4Y+MJaHQV6OzhiDdH9hQdiYjIovQNdIVMBlwoLEN+caXoOC3GAkQW5YekbONGpwvHR8DBzkZ0JCIii6K2t0WwlxMA4EiG+Z4FYgEii5FRWIa3NiYDAJ6/ozvC6wb1iIiodVnCZTAWILIIVTUGPLvmKIora9C/kytXeyYiakORncx/QUQWILIIH285g2OZRVDb2+KTiX252jMRURuqL0AnLmlRWaMXnKZl+FOCzN72M3n47840ALW3vHd0sReciIjIsgW5O8Dd0Q5VegOSs3Si47QICxCZtTxdhfGW98kxnTC8t4/gRERElk8mk5n9HBALEJktvUHC82uTUFhahR4+Tnj9bt7yTkTUXv6cAzLPFaFZgMhsLd5xHnvOF8LeVoH/e6gfVLYK0ZGIiKzGnytCF0GSzG9jVBYgMkuHL17Ggq1nAQCzx/RCNy/u8k5E1J56d1TDViFDQUklMi+Xi47TbCxAZHaKyqrwr9VJ0BskjI3ww7hIf9GRiIisjspWgd4d1QDM8zIYCxCZFYNBwovrjiGrqByd3B3w7r19uMs7EZEgkYHmuzEqCxCZlc93nEfi6TzY2cix6KF+6KDkVhdERKL0D2IBImpze84X4OMtZwAAs+/pZTz1SkREYvSrOwN0JrcYuopqwWmahwWIzEKurgL/Wn0UBgkYF+mP8QMCREciIrJ6Xs4qBLjZQ5KApIwi0XGahQWITF613oB/fnMEBSW16/3MGdObcz9ERCai/izQURYgotY1P+E0Dl64AielDT5/JBL2dlzvh4jIVPQNcAEAHM00rzkgFiAyaQnJOVjyRzoA4MMHwtDZw1FwIiIi+qu+dWeAkjLNa0FEFiAyWWn5JXj52+MAgOlDOmN4b1/BiYiI6O96+jrDzkaOorJqXCgsEx2nyViAyCQVV1Rj+qpDKK6swYAgV7wyvIfoSERE1Ag7Gzl6+zkDAJLM6DIYCxCZHINBwgtrk3A+vxQ+zir85+FI2Cr4V5WIyFT1NcNBaP5UIZOzcNtZbDtVu9jhF5Mj4emkFB2JiIiuI6J+EJoFqHkWLVqEoKAgqFQqREdH48CBA9c8dsmSJRgyZAhcXV3h6uqK2NjYq45/9NFHIZPJGjyGDx/e1h+DWkFCcg4+/S0VADD33j4I83cRG4iIiG6ob6ALAOBUjg4V1XqxYZpIeAFau3Yt4uPjMWvWLBw5cgTh4eGIi4tDXl5eo8dv374dEydOxO+//469e/ciICAAd911F7KyshocN3z4cOTk5Bgfq1evbo+PQzfhjKYY8euOAQAeu6Uz7ucmp0REZqGjiz08OihRY5CQnKUVHadJhBegBQsWYPr06Zg6dSpCQ0OxePFiODg4YPny5Y0e//XXX+Ppp59GREQEevTogaVLl8JgMCAxMbHBcUqlEj4+PsaHq6tre3wcaqGisipMX3UIZVV6DOrqjtfv5tAzEZG5kMlkxrNA5nIZTGgBqqqqwuHDhxEbG2t8Ti6XIzY2Fnv37m3Se5SVlaG6uhpubm4Nnt++fTu8vLwQEhKCp556CoWFhdd8j8rKSuh0ugYPaj/VegOe/voIMi6Xwd/VHv/3UD/YcOiZiMis1BegpMwioTmaSuhPmYKCAuj1enh7ezd43tvbGxqNpknv8eqrr8LPz69BiRo+fDhWrVqFxMREfPDBB9ixYwdGjBgBvb7x65Jz586FWq02PgICuM9Ue5EkCW9uSMae84VwtFNgyeT+cHO0Ex2LiIia6c9BaPO4Fd5GdICbMW/ePKxZswbbt2+HSqUyPj9hwgTj/9+nTx+EhYWha9eu2L59O+64446r3mfGjBmIj483/lqn07EEtZMvdqZh7aFMyGXAZw/1RU9fZ9GRiIioBcL8XSCXAdnaCuTqKuDtrLrxiwQSegbIw8MDCoUCubm5DZ7Pzc2Fj4/PdV/70UcfYd68ediyZQvCwsKue2yXLl3g4eGB1NTURn9fqVTC2dm5wYPaXkKyBvMSTgMA3hoVitt7eN/gFUREZKo6KG0Q7O0EwDzmgIQWIDs7O0RGRjYYYK4faI6Jibnm6+bPn485c+YgISEB/fv3v+Gfc+nSJRQWFsLXl1spmIoTl7R4fu1RSBIwOaYTHh0UJDoSERHdJOMgtBmsCC180jQ+Ph5LlizBypUrcerUKTz11FMoLS3F1KlTAQCTJ0/GjBkzjMd/8MEHeOutt7B8+XIEBQVBo9FAo9GgpKQEAFBSUoKXX34Z+/btw4ULF5CYmIgxY8agW7duiIuLE/IZqaEcbTkeX3kQFdUGDA32xMxRoZDJZKJjERHRTeobULcxqhmcARI+AzR+/Hjk5+dj5syZ0Gg0iIiIQEJCgnEwOiMjA3L5nz3t888/R1VVFcaNG9fgfWbNmoW3334bCoUCx48fx8qVK1FUVAQ/Pz/cddddmDNnDpRKrigsWnFFNR5bcQh5xZUI8XbC/z3Ul3d8ERFZiIi6M0DHL2lRozeY9L/fZZI57V3fTnQ6HdRqNbRaLeeBWlFljR5TvzyIPecL4dFBiY3PDIK/q4PoWERE1EoMBgnh72xBcWUNNv1rMHr5qdv1z2/Oz2/TrWZkUQwGCfHrjhlvd18xdQDLDxGRhZHLZQivux3e1NcDYgGiNidJEmb/nIJNx3Ngq5Dhv5P6o3fH9v2vAiIiah/msjEqCxC1ucU70rBizwUAwEcPhGNwdw+xgYiIqM2Yy4rQLEDUpr47fAkf1K318+bInhgT0VFwIiIiakv1Z4BS80qgLa8WG+Y6WICozSQka/Dq98cBAP+4tQumDekiOBEREbU19w5KBLrVzngeM+GzQCxA1CZ+P5OHZ1cfgd4g4f5+/nh1OHd3JyKyFvWD0McvFQnNcT0sQNTq9pwvwJP/O4xqvYSRYb6YPy4McjkXOiQishbh/rU3uhy7pBWc5NpYgKhVHb54GdNWHkJljQGxPb2wcHwEFCw/RERWJczfBQDPAJGVSM7S4tHlB1FWpceQ7h74v4f6wdaEVwElIqK20bujM+QyIFdXCY22QnScRvGnE7WK5CwtHlm2H8WVNYgKcsMXk/pDZasQHYuIiARwsPtzZ/hjJnoWiAWIblpSZhEeWrIPRWXViAhwwbJH+8PejuWHiMiahdXNAZnqZTAWILophy9exiNL90NXUYP+nVzxv8ej4KSyFR2LiIgE+3MOyDQHoYXvBk/ma39aIR5bcRClVXpEd3bD8kcHwFHJv1JERASE/6UASZIEmcy0bojhGSBqkT/O5ePRL2vLz+BuHlgxNYrlh4iIjEJ8nGCnkENbXo2LhWWi41yFBYia7cdj2XhsxUGUV+sxNNgTS6dw5oeIiBqys5Gjp58zANMchGYBomZZsTsdz605imq9hFFhvvhiciTv9iIiokaFGwehTW8OiNcsqEkkScKCrWfx2W+pAIApMZ0wa3QvrvBMRETXVDsIfdEk7wRjAaIbqtYb8NbGZKw5mAkAiL8zGM/e3s3kBtqIiMi01J8BSs7SoUZvgI0JLY7LAkTXpS2vxjNfH8Gu1ALIZcCcsb3xcHQn0bGIiMgMdPHsAEc7BUqr9EjNL0EPH2fRkYxMp4qRyblYWIr7/rMbu1IL4GCnwH8n9Wf5ISKiJlPIZehTPweUaVpzQCxA1Kj9aYUYu2g3zueXwletwndPDsKdod6iYxERkZmpXw/I1O4E4yUwakCSJKzaexFzfk5BjUFCuL8aSyb3h5ezSnQ0IiIyQ2EsQGTqyqpq8Pr6E9iYlA0AGBXmiw/HhXONHyIiarH6PcFO5xSjolpvMkunsAARACC9oBRP/u8wzuQWQyGX4fW7e+KxW4J4pxcREd0Uf1d7uDna4XJpFU7l6NA30FV0JACcASIAG49m4Z7PduFMbjE8nZRYPX0gHh/cmeWHiIhumkwm+8vO8KYzCM0zQFZMV1GNtzYm44e6S14Dglyx6KF+nPchIqJWFebvgu1n8k1qDogFyEodunAZz61JQlZRORRyGZ67ozuevq2rSS1SRURElsEUt8RgAbIypZU1+GjLGazYcwGSBAS6OWDhhAj0M5FrskREZHnq7wQ7n1+CksoadFCKrx/iE1C72XE2H6+vP4GsonIAwLhIf8waHQonla3gZEREZMk8nZTwU6uQra3AiUtaxHR1Fx2JBcga5OkqMPeX09hwNAsA0NHFHu/f1wdDgz0FJyMiImsR5u+CbK0GyVksQNTGKqr1WLYrHf/5PRWlVXrIZMDUQZ3x4l3BcDSB049ERGQ9+virkXBSg+NZpjEHxJ+CFshgkLDpRA7m/3oamZdrL3eFB7jgnXt6ISLARWw4IiKySn061u8MzwJErcxgkLAlRYN/bz2HM7nFAABvZyVeG9EDY8I7Qi7nuj5ERCRGfQFKLyiFrqIazoLnT1mALEC13oDNJ3Lw3x1pSMnRAQCcVDaYNrgLpt/aGQ52/J+ZiIjEcnW0g7+rPS5dKUdylhaDunoIzcOfjGbsSmkVVh/MwKo9F6HRVQAAOiht8NgtQXh8cBeoHXh3FxERmY4+HdUsQNQy1XoDdp7Nx/dHLmFbSh6q9AYAgEcHJSbHdMKkgZ3g6mgnOCUREdHVendU45dkjUksiGgSy/4uWrQIQUFBUKlUiI6OxoEDB657/LfffosePXpApVKhT58+2Lx5c4PflyQJM2fOhK+vL+zt7REbG4tz58615UdoUxXVevx2OhevbziBmLmJeHzlIWw+oUGV3oBQX2d89EA4dr82DP+6ozvLDxERmaz6PcFMYRBa+BmgtWvXIj4+HosXL0Z0dDQWLlyIuLg4nDlzBl5eXlcdv2fPHkycOBFz587FqFGj8M0332Ds2LE4cuQIevfuDQCYP38+Pv30U6xcuRKdO3fGW2+9hbi4OKSkpEClMv19riqq9Th+SYuDFy7jQHrto7xab/x9d0c7jInoiPsjO6KXn1pgUiIioqbrXfcz60JhGbTl1VDbixvVkEmSJAn70wFER0djwIAB+L//+z8AgMFgQEBAAJ599lm89tprVx0/fvx4lJaW4ueffzY+N3DgQERERGDx4sWQJAl+fn548cUX8dJLLwEAtFotvL29sWLFCkyYMOGGmXQ6HdRqNbRaLZydnVvpk9ZuQ3GlrAoV1QZUVOtRUa1HQUkVcnUV0OgqkJZfgrO5JbhYWArD3/5X8VWrcEdPL8T29MYt3Txgyz27iIjIDA2Z/xsyL5fjm2nRGNStdeeAmvPzW+gZoKqqKhw+fBgzZswwPieXyxEbG4u9e/c2+pq9e/ciPj6+wXNxcXHYuHEjACA9PR0ajQaxsbHG31er1YiOjsbevXsbLUCVlZWorKw0/lqn093Mx7qmZbvSsWDr2SYd6+mkxIAgVwwIckN0Z3f09HWCTMbb2ImIyLz16ahG5uVynMjStnoBag6hBaigoAB6vR7e3t4Nnvf29sbp06cbfY1Go2n0eI1GY/z9+ueudczfzZ07F++8806LPkNz2NsqYGcjh8pGDpWtAipbBdw72MHbSQUftQoBbg7o4eOEYG8neHSwY+EhIiKL06ejCxJP5UFXUS00h/AZIFMwY8aMBmeVdDodAgICWv3PmX5rF0y/tUurvy8REZG5mDKoE6YN6Sx8lENoAfLw8IBCoUBubm6D53Nzc+Hj49Poa3x8fK57fP3/zc3Nha+vb4NjIiIiGn1PpVIJpVLZ0o9BRERETWQqi/MKrV92dnaIjIxEYmKi8TmDwYDExETExMQ0+pqYmJgGxwPA1q1bjcd37twZPj4+DY7R6XTYv3//Nd+TiIiIrIvwGhYfH48pU6agf//+iIqKwsKFC1FaWoqpU6cCACZPnoyOHTti7ty5AIDnnnsOQ4cOxccff4yRI0dizZo1OHToEL744gsAgEwmw/PPP493330X3bt3N94G7+fnh7Fjx4r6mERERGRChBeg8ePHIz8/HzNnzoRGo0FERAQSEhKMQ8wZGRmQy/88UTVo0CB88803ePPNN/H666+je/fu2Lhxo3ENIAB45ZVXUFpaiieeeAJFRUUYPHgwEhISzGINICIiImp7wtcBMkVttQ4QERERtZ3m/PzmanpERERkdViAiIiIyOqwABEREZHVYQEiIiIiq8MCRERERFaHBYiIiIisDgsQERERWR0WICIiIrI6LEBERERkdYRvhWGK6hfH1ul0gpMQERFRU9X/3G7KJhcsQI0oLi4GAAQEBAhOQkRERM1VXFwMtVp93WO4F1gjDAYDsrOz4eTkBJlM1qrvrdPpEBAQgMzMTO4z1ob4PbcPfs/tg99z++D33D7a8nuWJAnFxcXw8/NrsJF6Y3gGqBFyuRz+/v5t+mc4OzvzH7B2wO+5ffB7bh/8ntsHv+f20Vbf843O/NTjEDQRERFZHRYgIiIisjosQO1MqVRi1qxZUCqVoqNYNH7P7YPfc/vg99w++D23D1P5njkETURERFaHZ4CIiIjI6rAAERERkdVhASIiIiKrwwJEREREVocFqA0sWrQIQUFBUKlUiI6OxoEDB657/LfffosePXpApVKhT58+2Lx5czslNW/N+Z6XLFmCIUOGwNXVFa6uroiNjb3h/y5Uq7l/n+utWbMGMpkMY8eObduAFqK533NRURGeeeYZ+Pr6QqlUIjg4mP/uaILmfs8LFy5ESEgI7O3tERAQgBdeeAEVFRXtlNY87dy5E6NHj4afnx9kMhk2btx4w9ds374d/fr1g1KpRLdu3bBixYo2zwmJWtWaNWskOzs7afny5dLJkyel6dOnSy4uLlJubm6jx+/evVtSKBTS/PnzpZSUFOnNN9+UbG1tpRMnTrRzcvPS3O/5oYcekhYtWiQdPXpUOnXqlPToo49KarVaunTpUjsnNy/N/Z7rpaenSx07dpSGDBkijRkzpn3CmrHmfs+VlZVS//79pbvvvlvatWuXlJ6eLm3fvl1KSkpq5+Tmpbnf89dffy0plUrp66+/ltLT06Vff/1V8vX1lV544YV2Tm5eNm/eLL3xxhvS+vXrJQDShg0brnt8Wlqa5ODgIMXHx0spKSnSZ599JikUCikhIaFNc7IAtbKoqCjpmWeeMf5ar9dLfn5+0ty5cxs9/sEHH5RGjhzZ4Lno6GjpH//4R5vmNHfN/Z7/rqamRnJycpJWrlzZVhEtQku+55qaGmnQoEHS0qVLpSlTprAANUFzv+fPP/9c6tKli1RVVdVeES1Cc7/nZ555Rrr99tsbPBcfHy/dcsstbZrTkjSlAL3yyitSr169Gjw3fvx4KS4urg2TSRIvgbWiqqoqHD58GLGxscbn5HI5YmNjsXfv3kZfs3fv3gbHA0BcXNw1j6eWfc9/V1ZWhurqari5ubVVTLPX0u959uzZ8PLywuOPP94eMc1eS77nH3/8ETExMXjmmWfg7e2N3r174/3334der2+v2GanJd/zoEGDcPjwYeNlsrS0NGzevBl33313u2S2FqJ+DnIz1FZUUFAAvV4Pb2/vBs97e3vj9OnTjb5Go9E0erxGo2mznOauJd/z37366qvw8/O76h86+lNLvuddu3Zh2bJlSEpKaoeElqEl33NaWhp+++03PPzww9i8eTNSU1Px9NNPo7q6GrNmzWqP2GanJd/zQw89hIKCAgwePBiSJKGmpgZPPvkkXn/99faIbDWu9XNQp9OhvLwc9vb2bfLn8gwQWZ158+ZhzZo12LBhA1Qqleg4FqO4uBiTJk3CkiVL4OHhITqORTMYDPDy8sIXX3yByMhIjB8/Hm+88QYWL14sOppF2b59O95//3385z//wZEjR7B+/Xps2rQJc+bMER2NWgHPALUiDw8PKBQK5ObmNng+NzcXPj4+jb7Gx8enWcdTy77neh999BHmzZuHbdu2ISwsrC1jmr3mfs/nz5/HhQsXMHr0aONzBoMBAGBjY4MzZ86ga9eubRvaDLXk77Ovry9sbW2hUCiMz/Xs2RMajQZVVVWws7Nr08zmqCXf81tvvYVJkyZh2rRpAIA+ffqgtLQUTzzxBN544w3I5TyH0Bqu9XPQ2dm5zc7+ADwD1Krs7OwQGRmJxMRE43MGgwGJiYmIiYlp9DUxMTENjgeArVu3XvN4atn3DADz58/HnDlzkJCQgP79+7dHVLPW3O+5R48eOHHiBJKSkoyPe+65B8OGDUNSUhICAgLaM77ZaMnf51tuuQWpqanGggkAZ8+eha+vL8vPNbTkey4rK7uq5NSXTonbaLYaYT8H23TE2gqtWbNGUiqV0ooVK6SUlBTpiSeekFxcXCSNRiNJkiRNmjRJeu2114zH7969W7KxsZE++ugj6dSpU9KsWbN4G3wTNPd7njdvnmRnZyd99913Uk5OjvFRXFws6iOYheZ+z3/Hu8Caprnfc0ZGhuTk5CT985//lM6cOSP9/PPPkpeXl/Tuu++K+ghmobnf86xZsyQnJydp9erVUlpamrRlyxapa9eu0oMPPijqI5iF4uJi6ejRo9LRo0clANKCBQuko0ePShcvXpQkSZJee+01adKkScbj62+Df/nll6VTp05JixYt4m3w5uqzzz6TAgMDJTs7OykqKkrat2+f8feGDh0qTZkypcHx69atk4KDgyU7OzupV69e0qZNm9o5sXlqzvfcqVMnCcBVj1mzZrV/cDPT3L/Pf8UC1HTN/Z737NkjRUdHS0qlUurSpYv03nvvSTU1Ne2c2vw053uurq6W3n77balr166SSqWSAgICpKefflq6cuVK+wc3I7///nuj/76t/26nTJkiDR069KrXRERESHZ2dlKXLl2kL7/8ss1zyiSJ5/GIiIjIunAGiIiIiKwOCxARERFZHRYgIiIisjosQERERGR1WICIiIjI6rAAERERkdVhASIiIiKrwwJEREREVocFiIiIiKwOCxARERFZHRYgIiIisjosQERk8VatWgV3d3dUVlY2eH7s2LGYNGmSoFREJBILEBFZvAceeAB6vR4//vij8bm8vDxs2rQJjz32mMBkRCQKCxARWTx7e3s89NBD+PLLL43PffXVVwgMDMRtt90mLhgRCcMCRERWYfr06diyZQuysrIAACtWrMCjjz4KmUwmOBkRiSCTJEkSHYKIqD1ERkZi3LhxuOuuuxAVFYULFy4gICBAdCwiEsBGdAAiovYybdo0LFy4EFlZWYiNjWX5IbJiPANERFZDq9XCz88PNTU1WLVqFcaPHy86EhEJwhkgIrIaarUa999/Pzp06ICxY8eKjkNEArEAEZFVycrKwsMPPwylUik6ChEJxEtgRGQVrly5gu3bt2PcuHFISUlBSEiI6EhEJBCHoInIKvTt2xdXrlzBBx98wPJDRDwDRERERNaHM0BERERkdViAiIiIyOqwABEREZHVYQEiIiIiq8MCRERERFaHBYiIiIisDgsQERERWR0WICIiIrI6/w+3HTlCQKdINwAAAABJRU5ErkJggg==", | |
| "text/plain": [ | |
| "<Figure size 640x480 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "# We'll use a beta distribuion for this example but this choice is arbitrary and unimportant\n", | |
| "from scipy.stats import beta\n", | |
| "\n", | |
| "dist = beta(3, 2)\n", | |
| "\n", | |
| "# plot the distribution\n", | |
| "y = np.linspace(0, 1, 1000)\n", | |
| "\n", | |
| "p_y = dist.pdf(y)\n", | |
| "plt.plot(y, p_y)\n", | |
| "\n", | |
| "plt.xlabel(\"y\")\n", | |
| "plt.ylabel(\"p(y)\")\n", | |
| "plt.show()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "bcc576b7-f043-4ac1-ab13-824f19b296a7", | |
| "metadata": {}, | |
| "source": [ | |
| "We've plotted an example distribution above for what $p(y)$ might look like. So basically we think it will be a sunny day, but there is a tail risk that some cloudcover might come in and so the PV outturn could still be lower than 0.6.\n", | |
| "\n", | |
| "This is a continuous distribution. PVNet on the other hand is only configured to output the $y$ values associated with a finite set of quantiles. Lets mimic this finite set of quantiles from the continuous distribution above." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 68, | |
| "id": "e3d5198e-8eda-4b7d-b5e2-0da5cbeb8c68", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# These are the quantiles as they might come out of PVNet\n", | |
| "quantiles = np.array([0.01, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.99])\n", | |
| "\n", | |
| "# These are the values PVNet would predict if trained well\n", | |
| "vals = dist.ppf(quantiles)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 69, | |
| "id": "f84f3e6b-56b5-42c9-a749-c52b51b86ed9", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "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", | |
| "text/plain": [ | |
| "<Figure size 640x480 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "plt.scatter(vals, quantiles*100, label=\"Discrete quantile prediction i.e. PVNet output\")\n", | |
| "\n", | |
| "y = np.linspace(0, 1, 1000)\n", | |
| "p = dist.cdf(y)\n", | |
| "plt.plot(dist.ppf(p), p*100, color=\"k\", label=\"Continuous\", zorder=-1)\n", | |
| "\n", | |
| "plt.ylabel(\"cdf - Quantile [%]\")\n", | |
| "plt.xlabel(\"y\")\n", | |
| "plt.legend()\n", | |
| "plt.show()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "440cb939-8442-4c6f-a69d-081024596a56", | |
| "metadata": {}, | |
| "source": [ | |
| "We need some way to go from these discrete set of quantiles that PVNet predicts back to an estimate of the continuous pdf. Fortunately this is pretty simple in python. Unfortunately the quantile results cannot inform us about the tails of the distribution, so we'll just spread out the probability remaining in the tails between 0 and 1." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 70, | |
| "id": "bc00b0f6-845c-41cd-9cbb-78bfd50fe1f4", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "from scipy.stats import rv_histogram\n", | |
| "\n", | |
| "class QuantilePDF(rv_histogram):\n", | |
| " \n", | |
| " def __init__(self, quantiles, vals, y_min=0, y_max=1):\n", | |
| "\n", | |
| " # Extend the values and quantiles to account for the tails\n", | |
| " quantiles = np.concatenate([[0], quantiles, [1]])\n", | |
| " vals = np.concatenate([[y_min], vals, [y_max]])\n", | |
| " \n", | |
| " val_midpoints = (vals[1:] + vals[:-1])/2\n", | |
| " dys = vals[1:] - vals[:-1]\n", | |
| "\n", | |
| " probs = np.diff(quantiles) / dys\n", | |
| " probs = probs / probs.sum()\n", | |
| " \n", | |
| " super().__init__((probs, vals), density=True)\n", | |
| "\n", | |
| "\n", | |
| "e_dist = QuantilePDF(quantiles, vals)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 71, | |
| "id": "6ef70f46-4533-4689-aaeb-aa12ef7313ac", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "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zA7WUiyXrWU2ZMgQUlJSeP3111m2bBl///vfmTJlCrVr13bVW4hIAUU0mRXoSN3Dk0GJSBnYp83YfSyNdbuOu/TcF0QNJHLv5xz64TMSstq69Nw1A/zo3qQu1lJNhFb5lTshmjNnDj/++CM//vgjO3bswGq10qlTJ+655x66du3K4sWL6dChA59//jm9evVyZcwikqvIGqLN/8ntSF1PHalFKrkauQnFez/s570f9rv03LHWpvw7ALK3L+PW+Mspw7z2pTJ5eHvuHNDSpef0lnInRM8++yx9+vRhzJgx9O3bl549exIcHOx4/a677uK5557jtttu47fffnNJsCLizDHILP+HXGoSfJc7I7U6UotUeqN7NWH/ybNkZNtcfu5jxkVknXmD5tajxEac4YBfM5ec93jqeU6kZXLo9DmXnK8yKHdCdPDgwRLL3HHHHTz55JPlfQsRKYFR2ERETh2pb/VKXCJSev1bh7O0dbj73mDRZbB7Jf/ufQIuvsUlp3x5xU5e/3Z33mdQNeDWXpYRERF8++237nwLEZ+WV0OUa996daQWEWcXxJo/d61w2SnzJpOsPsr0aXngwIEynfzIkSNceumlZTpGRErPadh9ThYsy+1I3WucOlKLiKnNYPPngR/g3BnXnLM06ydWMWVKiC688ELuvvvuYlezT05OZu7cuXTq1InPPvuswgGKSNHs1dUWC2ZH6uM7zI7Ug9RULSK56jaH8LZg5MDe71x66mrUYla2PkTbt2/n2WefZfDgwQQFBdGzZ0+io6MJCgri9OnTbN++nd9//50ePXowc+ZMrrjiCnfFLSL5BJ8/BnG5HakHP62O1CLirM1gOLET/lwBHa+u8Oncsv6al5Wphqh+/fq88sorJCYm8sYbb9CmTRtOnDjBrl27ALj55pvZsmULGzduVDIk4gH2b2edtr+U25G6F3RzTadJEalG2gwxf+5eCbaKj2Zzy/prXlauUWbBwcFcd911XHfddRw+fBiARo0auTQwESmZgUFf63aaHFoGWGC4OlKLSCGa9oOAOpB+HBLjK9zH0G3rr3lRuT85v//+e1q0aEHTpk1p2rQpkZGR/POf/yQlJcWV8YlIMay2bJ6uscB80ut2iO7u1XhEpJKqEQCtBprbLhhtVh1riMqdEN199920b9+eH3/8kZ07d/Liiy+yatUqevTo4ag1EhH3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C90VYrVQnvucnZ1t9O/f33j77beNsWPHKiEqhbLe57feesto2bKlkZmZ6akQq4Wy3uf777/fGDRokNO+iRMnGhdddJFb46xOSpMQPfroo0bHjh2d9o0ePdqIjY11Y2SGoSYzN8rMzGTLli3ExMQ49lmtVmJiYti4cWOhx2zcuNGpPEBsbGyR5aV89/mvzp49S1ZWFvXq1XNXmFVeee/zM888Q0REBHfccYcnwqzyynOfv/zyS/r168f9999PZGQknTp14rnnniMnJ8dTYVc55bnP/fv3Z8uWLY5mtb179/LVV19xxRVXeCRmX+Gtv4Na3NWNTpw4QU5ODpGRkU77IyMj+eOPPwo9JikpqdDySUlJbouzqivPff6rf/7zn0RHRxf4JZQ85bnP69evZ968ecTHx3sgwuqhPPd57969fPvtt9x888189dVX7N69m/vuu4+srCymTp3qibCrnPLc57/97W+cOHGCiy++GMMwyM7O5p577uHxxx/3RMg+o6i/gykpKZw7d47g4GC3vK9qiMTnPf/88yxevJglS5YQFBTk7XCqjdTUVG699Vbmzp1LeHi4t8Op1mw2GxEREfznP/+hZ8+ejB49mieeeII5c+Z4O7RqJS4ujueee44333yTrVu38vnnn7Ns2TKmTZvm7dDEBVRD5Ebh4eH4+flx9OhRp/1Hjx6lYcOGhR7TsGHDMpWX8t1nu5deeonnn3+eVatW0aVLF3eGWeWV9T7v2bOHffv2MWLECMc+m80GQI0aNdi5cyetWrVyb9BVUHn+P0dFReHv74+fn59jX/v27UlKSiIzM5OAgAC3xlwVlec+P/nkk9x6663ceeedAHTu3Jn09HTuuusunnjiCaxW1TG4QlF/B0NCQtxWOwSqIXKrgIAAevbsyerVqx37bDYbq1evpl+/foUe069fP6fyACtXriyyvJTvPgPMnDmTadOmsXz5cnr16uWJUKu0st7ndu3a8euvvxIfH+94XHXVVVx22WXEx8fTpEkTT4ZfZZTn//NFF13E7t27HQknwJ9//klUVJSSoSKU5z6fPXu2QNJjT0INLQvqMl77O+jWLttiLF682AgMDDQWLFhgbN++3bjrrruMsLAwIykpyTAMw7j11luNxx57zFH++++/N2rUqGG89NJLxo4dO4ypU6dq2H0plPU+P//880ZAQIDx6aefGomJiY5Hamqqty6hSijrff4rjTIrnbLe5wMHDhh16tQxHnjgAWPnzp3G//73PyMiIsKYPn26ty6hSijrfZ46dapRp04d48MPPzT27t1rrFixwmjVqpVxww03eOsSqoTU1FRj27ZtxrZt2wzAeOWVV4xt27YZ+/fvNwzDMB577DHj1ltvdZS3D7t/5JFHjB07dhizZ8/WsPvq4vXXXzeaNm1qBAQEGL179zZ++OEHx2uXXnqpMXbsWKfyH3/8sXHBBRcYAQEBRseOHY1ly5Z5OOKqqSz3uVmzZgZQ4DF16lTPB17FlPX/c35KiEqvrPd5w4YNRp8+fYzAwECjZcuWxrPPPmtkZ2d7OOqqpyz3OSsry3jqqaeMVq1aGUFBQUaTJk2M++67zzh9+rTnA69Cvvvuu0I/b+33duzYscall15a4Jhu3boZAQEBRsuWLY133nnH7XFaDEP1fCIiIuLb1IdIREREfJ4SIhEREfF5SohERETE5ykhEhEREZ+nhEhERER8nhIiERER8XlKiERERMTnKSESERERn6eESERERHyeEiIRERHxeUqIRERExOcpIRIRn/Puu+9Sv359MjIynPaPGjWKW2+91UtRiYg3KSESEZ9z/fXXk5OTw5dffunYd+zYMZYtW8btt9/uxchExFuUEImIzwkODuZvf/sb77zzjmPfokWLaNq0KQMHDvReYCLiNUqIRMQnjR8/nhUrVnD48GEAFixYwG233YbFYvFyZCLiDRbDMAxvByEi4g09e/bkuuuuY8iQIfTu3Zt9+/bRpEkTb4clIl5Qw9sBiIh4y5133smsWbM4fPgwMTExSoZEfJhqiETEZyUnJxMdHU12djbvvvsuo0eP9nZIIuIl6kMkIj4rNDSUa6+9ltq1azNq1ChvhyMiXqSESER82uHDh7n55psJDAz0digi4kVqMhMRn3T69Gni4uK47rrr2L59O23btvV2SCLiRepULSI+qXv37pw+fZoXXnhByZCIqIZIRERERH2IRERExOcpIRIRERGfp4RIREREfJ4SIhEREfF5SohERETE5ykhEhEREZ+nhEhERER8nhIiERER8Xn/D6XLyYfe6xFCAAAAAElFTkSuQmCC", | |
| "text/plain": [ | |
| "<Figure size 640x480 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "# Lets see how the discretised and continuous distributions look now\n", | |
| "plt.plot(y, e_dist.pdf(y), label=\"$\\hat{p}(y)$ - quantile estimated dist\")\n", | |
| "plt.plot(y, dist.pdf(y), label=\"$p(y)$ - true dist\")\n", | |
| "plt.xlabel(\"y\")\n", | |
| "plt.ylabel(\"$p(y)$\")\n", | |
| "plt.legend()\n", | |
| "plt.show()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "5cd2c8f6-d5a5-47bc-ad6a-6f1ed014d7cc", | |
| "metadata": {}, | |
| "source": [ | |
| "To find the the value of $y$ which minimises our expected loss, we will also need the loss function. I've written one below, but haven't taken particular care to make sure it was the same loss function described to us. But it will serve as an example" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 72, | |
| "id": "9ab93b4b-db0c-490a-a374-8705c5c18fba", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "@np.vectorize\n", | |
| "def L(y_true, y_pred):\n", | |
| " \"\"\"Loss function\n", | |
| "\n", | |
| " Args:\n", | |
| " y_true: The true PV outturn\n", | |
| " y_pred: The predicted PV outturn\n", | |
| " \"\"\"\n", | |
| " if y_pred==0:\n", | |
| " return 1.0\n", | |
| "\n", | |
| " true_frac_of_pred = y_true / y_pred\n", | |
| "\n", | |
| " # If actual is within +/-10% of the forecast, then no penalty is applied\n", | |
| " if 0.9 <= true_frac_of_pred <= 1.1:\n", | |
| " return 0.0\n", | |
| "\n", | |
| "\n", | |
| " # Over-generating\n", | |
| " # ---------------\n", | |
| "\n", | |
| " if true_frac_of_pred > 1.1:\n", | |
| "\n", | |
| " \n", | |
| " # If we have: 110% < actual < 115% of forecast, then they lose 10% (I think) of their revenues above 110%\n", | |
| " loss = (true_frac_of_pred - 1.1)*0.1*y_true\n", | |
| " \n", | |
| " # If actual > 115% of forecast then they lose 100% of their revenues above 115% of forecast. \n", | |
| " if true_frac_of_pred >= 1.15:\n", | |
| " loss += y_true - 1.15*y_pred\n", | |
| "\n", | |
| " return loss\n", | |
| "\n", | |
| " # Under-generating\n", | |
| " # ----------------\n", | |
| " \n", | |
| " if true_frac_of_pred < 0.9:\n", | |
| " \n", | |
| " # If 85% < actual < 90%, then they lose 10% of revenues between actual and 90%. \n", | |
| " loss = (0.9-true_frac_of_pred)*0.1*y_pred\n", | |
| " \n", | |
| " # If actual < 85%, then they lose 50% of revenues between actual and 85% of forecast.\n", | |
| " if true_frac_of_pred < 0.85:\n", | |
| " loss += (0.85-true_frac_of_pred)*0.5*y_pred\n", | |
| "\n", | |
| " return loss" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "cadf2f22-f066-4b38-a768-1a8ce947c6db", | |
| "metadata": {}, | |
| "source": [ | |
| "Imagine we have already predicted that the outturn will be $y_{pred} = 0.5$. Lets plot what loss we will get depending on what the true value of y turn out to be" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 73, | |
| "id": "7a31715d-9510-4c4d-b0b9-70be9d590e41", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGxCAYAAACeKZf2AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABLy0lEQVR4nO3deVhUZcMG8HtmYGYAWUVWUQQU3FFQBMst0nKrrLQsNTIttZVWW7RVzMzXr8S1NN82rVxaVLTIpQRDUUoRUUQFUTYRhnUGZs73B0X5KgYI88xy/65r/uB4Bu45oXN35llkkiRJICIiIrIQctEBiIiIiFoTyw0RERFZFJYbIiIisigsN0RERGRRWG6IiIjIorDcEBERkUVhuSEiIiKLYiM6gLEZDAZcuHABjo6OkMlkouMQERFRE0iShPLycvj4+EAuv/69GasrNxcuXICfn5/oGERERNQCubm56Nix43XPsbpy4+joCKD+4jg5OQlOQ0RERE2h0Wjg5+fX8D5+PVZXbv76KMrJyYnlhoiIyMw0ZUgJBxQTERGRRWG5ISIiIovCckNEREQWheWGiIiILArLDREREVkUlhsiIiKyKCw3REREZFFYboiIiMiisNwQERGRRWG5ISIiIovCckNEREQWheWGiIiILArLDREREbWavSeLUKc3CM3AckNERESt4tDZEkxbm4IxH/wKbZ1eWA6WGyIiIrphkiTh3YQTAIB+nVygslEIy8JyQ0RERDfs5xOFOHj2MlQ2cjwd3U1oFpYbIiIiuiF6w993bWIGd4GXs1poHpYbIiIiuiFbjuThZEEFnO1sMWtooOg4LDdERETUcjW1evznx5MAgNnDAuFsbys4EcsNERER3YDPDpxDXmk1vJ3VmBblLzoOABMpN/Hx8fD394darUZERARSUlIaPfeTTz6BTCa74qFWi/1sj4iIyBppamqxbHcWAOCZ6G5Q24qbIfVPwsvNxo0bERsbi/nz5+Pw4cPo27cvRo0ahcLCwkaf4+TkhIsXLzY8zp07Z8TEREREBACr92ajtKoWQR7tMKG/r+g4DYSXmyVLlmDGjBmIiYlBjx49sHLlStjb22Pt2rWNPkcmk8HLy6vh4enpacTEREREVKipwUe/ZgMAnh8VDBuF8ErRQGgSnU6H1NRUREdHNxyTy+WIjo5GcnJyo8+rqKhA586d4efnhzvuuAPp6emNnqvVaqHRaK54EBER0Y1ZmngKNbUGhHV2xcgepnWTQWi5KS4uhl6vv+rOi6enJ/Lz86/5nODgYKxduxbffvstPvvsMxgMBkRFReH8+fPXPD8uLg7Ozs4NDz8/v1Z/HURERNYku6gCGw/mAgBeuj0EMplMcKIrmc49pCaKjIzE1KlTERoaiqFDh2Lz5s3o0KEDVq1adc3z586di7KysoZHbm6ukRMTERFZlsW7MqE3SIju7oEB/m6i41zFRuQPd3d3h0KhQEFBwRXHCwoK4OXl1aTvYWtri379+iErK+uaf65SqaBSqW44KxEREQFHci5j+9F8yGXA86NCRMe5JqF3bpRKJcLCwpCYmNhwzGAwIDExEZGRkU36Hnq9HkePHoW3t3dbxSQiIiLUb465cEf9Ngt39++IYC9HwYmuTeidGwCIjY3FtGnTEB4ejoEDB2Lp0qWorKxETEwMAGDq1Knw9fVFXFwcAODNN9/EoEGDEBQUhNLSUrz33ns4d+4cHnnkEZEvg4iIyOLtOVmE386UQGkjxzO3it0c83qEl5tJkyahqKgI8+bNQ35+PkJDQ5GQkNAwyDgnJwdy+d83mC5fvowZM2YgPz8frq6uCAsLQ1JSEnr06CHqJRAREVk8g0HCu3/etXkoyh8+LnaCEzVOJkmSJDqEMWk0Gjg7O6OsrAxOTk6i4xAREZmFLUfO45mNv8NRbYNfXhgOF3ulUX9+c96/zW62FBERERlXTa0ei3fWb445a1ig0YtNc7HcEBER0XX9tTmml5MaDw/uIjrOv2K5ISIiokZdsTnmrV1NZnPM62G5ISIiokat2nsapVW16OrRDnf37yg6TpOw3BAREdE15ZfV4ONfzwAAXrgtxKQ2x7we80hJRERERvd/iSdRU2tAeGdXRHf3EB2nyVhuiIiI6CpZhX9vjjl3tOltjnk9LDdERER0lUUJJ2CQgJE9PBHW2fQ2x7welhsiIiK6Quq5Euw6XgC5DHjhtmDRcZqN5YaIiIgaSJKEuO312yxMDPdDkIdpbo55PSw3RERE1ODH4wU4dO4y1LZyPB1tuptjXg/LDREREQEA6vQGLNqZCQB4eHAXeDmrBSdqGZYbIiIiAgB8k3oeWYUVcLW3xWPDAkXHaTGWGyIiIkK1To///FS/OebjI7rCSW0rOFHLsdwQERER1u4/gwKNFh1d7fDgoE6i49wQlhsiIiIrV1Kpw8o9pwEAz40MhsrG9DfHvB6WGyIiIiu37OcslGvr0MPbCeP7+oiOc8NYboiIiKxYbkkVPj1wFgDw0u0hkMvNZ5uFxrDcEBERWbHFuzJRq5dwU5A7hnTrIDpOq2C5ISIislJHz5fh27QLAOrv2lgKlhsiIiIrJEkSFiZkAADuDPVBL19nwYlaD8sNERGRFdp3qhj7sy5BqZDj2ZHmtznm9bDcEBERWRmDQcLCHfWbY06J7Aw/N3vBiVoXyw0REZGV2ZqWh4yLGjiqbfD48CDRcVodyw0REZEVqanV4/1d9dsszBoWCFcHpeBErY/lhoiIyIr8N/ks8kqr4eWkxsODu4iO0yZYboiIiKxEWVUt4nfXb7MQO7Ib1Lbmvc1CY1huiIiIrMTyPVkoq65FsKcj7u7fUXScNsNyQ0REZAXySquxLuksgPoF+xQWsM1CY1huiIiIrMD7uzKhqzNgUIAbhgVbxjYLjWG5ISIisnDHL2iw5UgeAGDu7d0hk1nuXRuA5YaIiMjiLUw4AUkCxvbxRl8/F9Fx2hzLDRERkQX79VQx9p0sgq1ChudHWdY2C41huSEiIrJQBoOEuB31m2M+ENEZnds7CE5kHCw3REREFuq73y8g/YIGjiobPHlLV9FxjIblhoiIyALV1Orx3s5MAMCs4YFws8BtFhrDckNERGSBPk0+h7zSang7W+42C41huSEiIrIwpVU6fPjzKQBA7K2Wu81CY1huiIiILEz87ixoauoQ4uWICRa8zUJjWG6IiIgsSG5JFdYnnQNg+dssNIblhoiIyIK8vysTOr0Bg4PaY2g3y95moTEsN0RERBbiWF4ZtqZdAGAd2yw0huWGiIjIAkiShAXb6xfsuyPUB718nQUnEoflhoiIyALsOVmEpNOXoFTI8dxI69hmoTEsN0RERGZOb5CwcPsJAMBDg/3h52YvOJFYLDdERERmblPqeWQWlMPZzhZzhgWJjiMcyw0REZEZq9bp8f6P9dssPDEiCM72toITicdyQ0REZMY+/jUbBRotOrraYUpkZ9FxTALLDRERkZkqrtBi5d5sAMDzo4KhsrGubRYaw3JDRERkpj5IPIUKbR16+zpjXB8f0XFMBssNERGRGcouqsAXv+UAAOaODoHcCrdZaAzLDRERkRl6N+EE6gwSRoR4ICrQXXQck8JyQ0REZGYOni3BzvQCyGXA3NtDRMcxOSw3REREZuSf2yxMGuCHrp6OghOZHpMoN/Hx8fD394darUZERARSUlKa9LwNGzZAJpPhzjvvbNuAREREJmL70XwcySmFvVKBZ6K7iY5jkoSXm40bNyI2Nhbz58/H4cOH0bdvX4waNQqFhYXXfd7Zs2fx3HPP4eabbzZSUiIiIrF0dQYs2lm/zcKMmwPg4aQWnMg0CS83S5YswYwZMxATE4MePXpg5cqVsLe3x9q1axt9jl6vxwMPPIA33ngDAQEBRkxLREQkzue/ncO5S1Xo4KjCzCF8/2uM0HKj0+mQmpqK6OjohmNyuRzR0dFITk5u9HlvvvkmPDw8MH369H/9GVqtFhqN5ooHERGRudHU1OKDxFMAgGeiu8FBZSM4kekSWm6Ki4uh1+vh6el5xXFPT0/k5+df8zm//vorPv74Y6xZs6ZJPyMuLg7Ozs4NDz8/vxvOTUREZGzLd5/G5apaBHm0w8TwjqLjmDThH0s1R3l5OaZMmYI1a9bA3b1pc/rnzp2LsrKyhkdubm4bpyQiImpd5y9XYe3+MwDqp37bKMzq7dvohN7Tcnd3h0KhQEFBwRXHCwoK4OXlddX5p0+fxtmzZzFu3LiGYwaDAQBgY2ODzMxMBAYGXvEclUoFlUrVBumJiIiM4/1dJ6GrM2BQgBtGhHiIjmPyhFY/pVKJsLAwJCYmNhwzGAxITExEZGTkVeeHhITg6NGjSEtLa3iMHz8ew4cPR1paGj9yIiIii3MsrwxbjuQBAF4Z3QMyGbdZ+DfCRyPFxsZi2rRpCA8Px8CBA7F06VJUVlYiJiYGADB16lT4+voiLi4OarUavXr1uuL5Li4uAHDVcSIiInMnSRLe2Va/YN+doT7o3dFZcCLzILzcTJo0CUVFRZg3bx7y8/MRGhqKhISEhkHGOTk5kMv52SIREVmf3ZmFSM6+BKWNHM+NChYdx2zIJEmSRIcwJo1GA2dnZ5SVlcHJyUl0HCIiomuq0xtw+//9glOFFXh0SADmju4uOpJQzXn/5i0RIiIiE/TVofM4VVgBF3tbzB4eJDqOWWG5ISIiMjGV2jos+fEkAODJEV3hbGcrOJF5YbkhIiIyMav2ZaO4QovO7e3x4KDOouOYHZYbIiIiE5JfVoPV+04DAF66LQRKG75VNxevGBERkQlZ8mMmamoNCOvsitt6Xb2gLf07lhsiIiITkXFRg69TzwMAXh7dnQv2tRDLDRERkYmI23ECkgSM6e2NsM6uouOYLZYbIiIiE7D3ZBH2nSyCrUKGF27jgn03guWGiIhIML1BQtz2+m0Wpkb6o3N7B8GJzBvLDRERkWCbUs/jRH45nNQ2eGIEF+y7USw3REREAlXp6rB4VyYA4IkRXeFirxScyPyx3BAREQm0Zt8ZFJZr4edmh6lRXLCvNbDcEBERCVKoqcGqPxfse/G2EKhsFIITWQaWGyIiIkGW/HgSVTo9Qv1cMKa3t+g4FoPlhoiISIAT+Rp8dSgXAPDaWC7Y15pYboiIiASI234CBgkY3dsLYZ3dRMexKCw3RERERrbvZBH2/rVg36gQ0XEsDssNERGREekNEhb8uWDflEH+8Hfngn2tjeWGiIjIiLhgX9tjuSEiIjKSSu3fC/Y9eUtXuDpwwb62wHJDRERkJKv3ZaOwXItObvaYEskF+9oKyw0REZERFGhqsHpfNgDgpdu5YF9bYrkhIiIygsU7M1Fdq0dYZ1fc3stLdByLxnJDRETUxtIvlOGbw+cBAK+M4YJ9bY3lhoiIqA1JUv3Ub0kCxvbxRv9OrqIjWTyWGyIioja0J7MI+7MuQamQ48XbuGCfMbDcEBERtZE6vQHv/LlgX8xgf/i52QtOZB1YboiIiNrIlwdzkVVYAVd7W8wezgX7jIXlhoiIqA2U19Ri6Y8nAQBPR3eDs52t4ETWg+WGiIioDSzfcxqXKnUI6OCAyRGdRMexKiw3RERErez85Sp8/OsZAMDLt3eHrYJvt8bEq01ERNTKFiVkQldnQGRAe9zS3UN0HKvDckNERNSK0nJL8d3vFyCTccE+UVhuiIiIWokkSXhn23EAwIR+HdHL11lwIuvEckNERNRKEo7l4+DZy1DbyvH8qGDRcawWyw0REVEr0NbpEbfjBABg5pBAeDmrBSeyXiw3REREreC/SeeQU1IFD0cVHh0SIDqOVWO5ISIiukEllTp88PMpAMBzI4PhoLIRnMi6sdwQERHdoA8ST6G8pg7dvZ1wd1hH0XGsHssNERHRDThdVIHPDpwDALw6pjsUck79Fo3lhoiI6AbEbT+BOoOEW0I8MDjIXXQcAssNERFRiyWdLsZPGQVQyGWYO7q76Dj0J5YbIiKiFtAbJLz9QwYA4IGITgjyaCc4Ef2F5YaIiKgFNh0+j+MXNXBU2+Dp6G6i49A/sNwQERE1U6W2Dot3ZgIAnhzRFW4OSsGJ6J9YboiIiJpp1b5sFJZr0cnNHlOjOouOQ/+D5YaIiKgZLpZVY/W+0wCAubeHQGWjEJyI/hfLDRERUTO8l5CJmloDBvi74rZeXqLj0DWw3BARETXRH+dLsflIHgDg1TE9IJNxwT5TxHJDRETUBJL099Tvu/r5oq+fi9hA1CiWGyIioiZIOJaPlLMlUNvK8fyoYNFx6DpYboiIiP6Ftk6PuB0nAAAzbg6Aj4ud4ER0PSw3RERE/2J90lnklFTBw1GFx4YGio5D/4LlhoiI6DouVWjxYWIWAOC5UcFwUNkITkT/huWGiIjoOpb+dArl2jr09HHCPf07io5DTWAS5SY+Ph7+/v5Qq9WIiIhASkpKo+du3rwZ4eHhcHFxgYODA0JDQ/Hpp58aMS0REVmLUwXl+CIlB0D91G+5nFO/zYHwcrNx40bExsZi/vz5OHz4MPr27YtRo0ahsLDwmue7ubnhlVdeQXJyMv744w/ExMQgJiYGO3fuNHJyIiKydO9sz4DeIGFkD09EBrYXHYeaSCZJkiQyQEREBAYMGIBly5YBAAwGA/z8/PDEE0/gpZdeatL36N+/P8aMGYO33nrrqj/TarXQarUNX2s0Gvj5+aGsrAxOTk6t8yKIiMji7D1ZhGlrU2CrkGHXM0PRxd1BdCSrptFo4Ozs3KT3b6F3bnQ6HVJTUxEdHd1wTC6XIzo6GsnJyf/6fEmSkJiYiMzMTAwZMuSa58TFxcHZ2bnh4efn12r5iYjIMtXpDXhn23EAwNRIfxYbMyO03BQXF0Ov18PT0/OK456ensjPz2/0eWVlZWjXrh2USiXGjBmDDz/8ELfeeus1z507dy7KysoaHrm5ua36GoiIyPJsOJiLkwUVcLG3xZMjuoqOQ81klvPZHB0dkZaWhoqKCiQmJiI2NhYBAQEYNmzYVeeqVCqoVCrjhyQiIrOkqanFkh9PAgCeie4GZ3tbwYmouYSWG3d3dygUChQUFFxxvKCgAF5eje+0KpfLERQUBAAIDQ1FRkYG4uLirlluiIiImmPZz1koqdQhsIMDJkd0Eh2HWkDox1JKpRJhYWFITExsOGYwGJCYmIjIyMgmfx+DwXDFoGEiIqKWOHepEuv2nwFQP/XbViF8UjG1gPCPpWJjYzFt2jSEh4dj4MCBWLp0KSorKxETEwMAmDp1Knx9fREXFwegfoBweHg4AgMDodVqsX37dnz66adYsWKFyJdBREQWIG77CdTqJdzc1R3DgjuIjkMtJLzcTJo0CUVFRZg3bx7y8/MRGhqKhISEhkHGOTk5kMv/bs6VlZWYPXs2zp8/Dzs7O4SEhOCzzz7DpEmTRL0EIiKyAAeyLyEhPR9yWf1dG5mMC/aZK+Hr3Bhbc+bJExGRdTAYJIyP/xXH8jR4IKIT3rmrt+hI9D/MZp0bIiIiU7Dp8Hkcy9PAUWWD2Fu7iY5DN4jlhoiIrFqltg6LdmYCAB4fEYT27bh8iLljuSEiIqu2Ys9pFJVr0bm9PR4a7C86DrUClhsiIrJa5y9XYc0v2QCAubd3h8pGITgRtQaWGyIislrvJmRCW2fAoAA3jOrp+e9PILPAckNERFYp9VwJvv/9AmQy4LWxnPptSVhuiIjI6hgMEt78IQMAMDHMDz19nAUnotbEckNERFbn29/z8HtuKRyUCjw7ilO/LQ3LDRERWZUqXR0WJdRP/Z4zIggejmrBiai1sdwQEZFVWb0vGxfLatDR1Q4PD+4iOg61AZYbIiKyGhdKq7Fy72kAwMuju0Nty6nflqhF5Wb9+vXYtm1bw9cvvPACXFxcEBUVhXPnzrVaOCIiota0KOEEamoNGOjvhtt7eYmOQ22kReVmwYIFsLOzAwAkJycjPj4eixYtgru7O5555plWDUhERNQaDudcxtY0Tv22BjYteVJubi6CgoIAAFu3bsXdd9+NmTNnYvDgwRg2bFhr5iMiIrphkiThze+PAwDu6d8RvTty6rcla9Gdm3bt2uHSpUsAgF27duHWW28FAKjValRXV7deOiIiolbw3e8XkJZbCnulAs+PChYdh9pYi+7c3HrrrXjkkUfQr18/nDx5EqNHjwYApKenw9/fvzXzERER3ZBqnR4Ld5wAAMwZHgQPJ079tnQtunMTHx+PyMhIFBUVYdOmTWjfvj0AIDU1Fffff3+rBiQiIroRq/adxsWyGvi62GH6TZz6bQ1kkiRJokMYk0ajgbOzM8rKyuDk5CQ6DhERtaGLZdUYvngPamoN+PD+fhjX10d0JGqh5rx/t+jOTUJCAn799deGr+Pj4xEaGorJkyfj8uXLLfmWFiHpdDHKa2pFxyAioj+9u6N+6vcAf1eM7eMtOg4ZSYvKzfPPPw+NRgMAOHr0KJ599lmMHj0aZ86cQWxsbKsGNBep50rw0LqDuHdlMi6WcVA1EZFo/5z6PW9sT079tiItKjdnzpxBjx49AACbNm3C2LFjsWDBAsTHx2PHjh2tGtBcKBUKONvZ4kR+Oe6M34/0C2WiIxERWS2DgVO/rVmLyo1SqURVVRUA4KeffsLIkSMBAG5ubg13dKxN747O2DI7Ct0826FAo8XElcnYnVkoOhYRkVX6a+q3A6d+W6UWlZubbroJsbGxeOutt5CSkoIxY8YAAE6ePImOHTu2akBz0tHVHl8/FoWowPao1OnxyPpD+OK3HNGxiIisSpWurmHq92xO/bZKLSo3y5Ytg42NDb755husWLECvr6+AIAdO3bgtttua9WA5sbZzhafxAzE3f07Qm+Q8PKWo1i44wQMBqualEZEJMyqvdnI19Tv+s2p39aJU8HbiCRJ+CAxC//56SQAYEwfb7x/b1/uQEtE1IYulFZjxPv1U7+XP9Afo3tzhpSlaM77d4tWKAYAvV6PrVu3IiMjAwDQs2dPjB8/HgoF37wBQCaT4anorujoaoeXNv+BbX9cREFZDVZPDYebg1J0PCIii7RwB3f9phbeucnKysLo0aORl5eH4OD6gVqZmZnw8/PDtm3bEBgY2OpBW4uIRfySsorx6GepKK+pQxd3B6x7aAD83R2M8rOJiKxF6rkS3L0iGTIZ8P3jN6GXL2dIWZI2X8TvySefRGBgIHJzc3H48GEcPnwYOTk56NKlC5588skWhbZkUUHu2DwrCr4udjhTXIm7lu9H6rkS0bGIiCyGwSDhjT+nfk8M82OxsXItKjd79+7FokWL4Obm1nCsffv2WLhwIfbu3dtq4SxJV09HbJkThT4dnXG5qhb3r/kN249eFB2LiMgibD6Shz/Ol6GdygbPceq31WtRuVGpVCgvL7/qeEVFBZRKjidpjIejGhtmDkJ0dw/o6gyY/flhrN53GlY2ppuIqFVVauuwKKF+6vfjI4LQwVElOBGJ1qJyM3bsWMycORO//fYbJEmCJEk4cOAAHnvsMYwfP761M1oUe6UNVk0Jx7TIzgCABdtP4NWtx1CnNwhORkRknpbvyUJhuRad29sjZrC/6DhkAlpUbj744AMEBgYiMjISarUaarUaUVFRCAoKwtKlS1s5ouVRyGV4fXxPvDa2B2Qy4PPfcjDjv4dQqa0THY2IyKzkllRhzS9nAAAvj+4OlQ1n7NINrnOTlZXVMBW8e/fuCAoKarVgbUXEbKnrSTiWj6c2HIG2zoCePk5Y+9AAeHI1TSKiJpn9eSq2H81HVGB7fP5IBDfHtGDNef9ucrlpzm7fS5YsafK5xmZq5QYAjuRcxiPrD+FSpQ4+zmqsjRmAEC/TyEZEZKoOZF/CfasPQC4Dtj91M//dtHBtsojfkSNHmnQeW3Pz9evkii2zB+OhT1KQXVSJe1ckY8WDYbipq7voaEREJkn/j6nfD0R0ZrGhK3D7BRNSWqXDzE9TkXKmBDZyGRZM6I2J4X6iYxERmZwvfsvBy1uOwkltgz3PD+fK71agzRfxo7bhYq/Ep9MH4o5QH9QZJLzwzR9YsiuTU8WJiP6hrLoW7+/KBAA8c2s3Fhu6CsuNiVHZKLB0UiieGFE/OPuDn7MQ+9Xv0NbpBScjIjINHyaewqVKHYI82uHBQZ1FxyETxHJjgmQyGZ4dGYx37+4NhVyGLUfyMG1tCsqqakVHIyIS6nRRBT5JOgsAeG1sD9gq+DZGV+NvhQmbNKAT1j00AO1UNjiQXYIJK/Yjt6RKdCwiImHe2ZaBOoOEESEeGNqtg+g4ZKJYbkzckG4d8PVjkfB2VuN0Uf2mm7/nloqORURkdLszC/HziULYyGV4ZUx30XHIhLHcmIHu3k7YMnsweng7obhCh0mrk7ErPV90LCIio6nVG/DWD/VTv2MG+yOwQzvBiciUsdyYCS9nNb56LBLDgjugptaARz9Lxbr9Z0THIiIyiv8mn0N2USXaOyjxxC1dRcchE8dyY0baqWzw0dRwTI7oBEkC3vj+ON74Ph16A6eKE5HlulShxdKfTgIAnh8VDCe1reBEZOpYbsyMjUKOd+7shZduDwEArNt/FrM+S0W1jlPFicgyvf/jSZTX1KGnjxPu5cKm1AQsN2ZIJpPhsaGBWDa5H5Q2cuw6XoD71hxAUblWdDQiolaVfqEMX6bkAADmj+sJhZxb/NC/Y7kxY2P7+ODzRyLgYm+L33NLMWHFfmQVVoiORUTUKiSpfv8oSQLG9vHGwC5uoiORmWC5MXMD/N2wZfZgdG5vj9ySakxYvh8Hsi+JjkVEdMO2H81HypkSqGzkmDuaU7+p6VhuLEAXdwdsnhWF/p1coKmpw5SPf8PWI3miYxERtVhNrR4LtmcAAB4dGghfFzvBicicsNxYiPbtVPhixiCM7u2FWr2Epzem4cPEU9x0k4jM0qq92cgrrYaPsxqzhgaKjkNmhuXGgqhtFVh2f388OiQAQP0Mgxc3/YFavUFwMiKipssrrcaKvVkAgLmju8NOqRCciMwNy42FkctlmDu6O966sxfkMuCrQ+cRs+4gNDXcdJOIzMPCHSdQU2vAQH83jO3jLToOmSGWGws1ZVBnfDQtHPZKBX7NKsa9K5KRV1otOhYR0XWlnCnB979fgEwGzBvXAzIZp35T87HcWLARIZ746tFIeDiqkFlQjrvi9+NYXpnoWERE16Q3SHjj+3QAwH0DOqGXr7PgRGSuTKLcxMfHw9/fH2q1GhEREUhJSWn03DVr1uDmm2+Gq6srXF1dER0dfd3zrV0vX2dsmTMYwZ6OKCzXYuKqZOw+USg6FhHRVb46lIv0Cxo4qm3w3MhuouOQGRNebjZu3IjY2FjMnz8fhw8fRt++fTFq1CgUFl77DXjPnj24//77sXv3biQnJ8PPzw8jR45EXh6nPjfG18UOX8+KxE1B7qjS6TF9/UF8duCc6FhERA3KqmuxeGcmAODp6G5o304lOBGZM5kkeK5wREQEBgwYgGXLlgEADAYD/Pz88MQTT+Cll1761+fr9Xq4urpi2bJlmDp16lV/rtVqodX+vS2BRqOBn58fysrK4OTk1HovxAzU6g14efNRfJ16HgDw6JAAvHhbCORczpyIBHvz++NYu/8MAjs4IOHpIbBVCP9/bzIxGo0Gzs7OTXr/Fvrbo9PpkJqaiujo6IZjcrkc0dHRSE5ObtL3qKqqQm1tLdzcrr0sd1xcHJydnRsefn7Wu+marUKORff0wbO31t/uXbUvG098eQQ1tdx0k4jEySosx3+TzwKo3z+KxYZulNDfoOLiYuj1enh6el5x3NPTE/n5+U36Hi+++CJ8fHyuKEj/NHfuXJSVlTU8cnNzbzi3OZPJZHjilq74z6S+sFXIsO3oRUxecwAllTrR0YjICv21f1SdQUJ0d08M6dZBdCSyAGZdjxcuXIgNGzZgy5YtUKvV1zxHpVLBycnpigcBd/XriE+nR8BJbYPDOaWYsHw/zhRXio5FRFbmp4xC/HKqGEqFHK+N5f5R1DqElht3d3coFAoUFBRccbygoABeXl7Xfe7ixYuxcOFC7Nq1C3369GnLmBZrUEB7bJ4dhY6udjh7qQoTlu/HobMlomMRkZXQ1unx9rbjAIDpN3dB5/YOghORpRBabpRKJcLCwpCYmNhwzGAwIDExEZGRkY0+b9GiRXjrrbeQkJCA8PBwY0S1WEEejtgyezD6+rngclUtJn/0G77//YLoWERkBT7+9QzOXaqCh6MKc4YHiY5DFkT4x1KxsbFYs2YN1q9fj4yMDMyaNQuVlZWIiYkBAEydOhVz585tOP/dd9/Fa6+9hrVr18Lf3x/5+fnIz89HRUWFqJdg9jo4qrBhxiCM7OEJXZ0BT3x5BCv2nOamm0TUZgo0NVj2c/3+US/dHoJ2KhvBiciSCC83kyZNwuLFizFv3jyEhoYiLS0NCQkJDYOMc3JycPHixYbzV6xYAZ1Oh3vuuQfe3t4Nj8WLF4t6CRbBTqnAigfD8PDgLgCAdxNO4JWtx1DHTTeJqA28u+MEqnR69OvkgjtDfUXHIQsjfJ0bY2vOPHlrtW7/Gbz5w3FIEjC0WwfEP9Cf/1dFRK0m9dxl3L0iCQDw7Zz6j8WJ/o3ZrHNDpilmcBesejAMals59p4swsSVycgvqxEdi4gsgOEf+0dNDO/IYkNtguWGrmlkTy9snBkJ93ZKHL+owV3L9yPjokZ0LCIyc9+knscf58vgqLLB86NCRMchC8VyQ43q6+eCLbMHI8ijHS6W1eDelcnYd7JIdCwiMlOamlos2nkCAPBUdFd0cOT+UdQ2WG7ouvzc7LHpsSgMCnBDhbYOMZ8cxMaDOaJjEZEZ+uCnUyiu0CGggwOmRvqLjkMWjOWG/pWzvS3WPzwQd/Xzhd4g4cVNR7F4ZyanihNRk2UVluOTpLMAgHlje0Bpw7cfajv87aImUdkosGRiXzw5on6hrWW7s/D0xjRo67jpJhFd35X7R3lgWLCH6Ehk4VhuqMlkMhliRwZj0T19YCOX4du0C5jycQpKq7jpJhE17p/7R706pofoOGQFWG6o2SaG++GTmIFwVNkg5UwJJqxIQs6lKtGxiMgE1dTq8dYPf+8f5e/O/aOo7bHcUIvc1NUd38yKgo+zGtlFlbhr+X4cybksOhYRmZiPfz2DnJIqeDqp8Dj3jyIjYbmhFgv2csSWOYPRy9cJlyp1uG/1ASQcyxcdi4hMxMWy6ob9o14e3R0OXOmcjITlhm6Ip5MaG2dGYkSIB7R1Bsz6PBUf/ZLNmVREhLjtJ1Bdq0d4Z1eM7+sjOg5ZEZYbumEOKhusnhKGKYM6Q5KAt7dl4I3vj0NvYMEhslYpZ0rw3e8XIJMBr4/vCZlMJjoSWRGWG2oVNgo53ryjJ14Z3R0A8EnSWTz66SFU6eoEJyMiY9MbJMz/rn7/qPsHdkIvX2fBicjasNxQq5HJZJgxJADLH+gPlY0cP2UUYtKqAygs56abRNbki5QcZFzUwEltg+dGBouOQ1aI5YZa3eje3vhixiC4OShxNK8Md8Un4WRBuehYRGQElyt1eH9XJgDg2ZHBcHNQCk5E1ojlhtpEWGdXbJkdhS7uDsgrrcbdK5KQdLpYdCwiamPv/5iJ0qpaBHs64oGITqLjkJViuaE207m9AzbPisIAf1eU19Rh2toUbEo9LzoWEbWR9Atl+OK3+o11Xx/fEzYKvsWQGPzNozbl6qDEp9MjMK6vD2r1Ep79+ncs/ekkp4oTWRhJkvDGd8dhkIAxfbwRGdhedCSyYiw31ObUtgr836RQzB4WCABY+tMpPPf1H9DVGQQnI6LW8t3vF5BytgRqW3nDrEkiUVhuyCjkchleuC0EC+7qDYVchk2Hz+OhdSkoq64VHY2IblCltg4LtmcAAOYMC4KPi53gRGTtWG7IqCZHdMLH08LhoFQg6fQl3LMiCecvc9NNInO2bHcWCjRa+LnZYcaQANFxiFhuyPiGBXvg68ei4OWkxqnCCty1PAl/nC8VHYuIWuBMcSU+/uUMAOC1MT2gtlUITkTEckOC9PBxwpY5UQjxckRRuRaTVh3AT8cLRMciomZ68/t06PQGDOnWAbf28BQdhwgAyw0J5O1sh68fi8TNXd1RXavHzE8P4b/JZ0XHIqImSswowO7MItgqZJg/rgf3jyKTwXJDQjmqbbH2oQG4b4AfDBIw79t0vP3DcRi46SaRSaup1ePNH44DAB4e3AWBHdoJTkT0N5YbEs5WIUfchN54flT9HjQf/XoGc744jJpaveBkRNSYj389g3OXquDhqMITt3QVHYfoCiw3ZBJkMhnmDA/C/90XCqVCjh3H8nH/mgMortCKjkZE/+NCaTWW/ZwFAHh5dHe0U9kITkR0JZYbMil3hPris0ci4GxniyM5pZiwPAmniypExyKif1iwPQPVtXoM8HfFHaE+ouMQXYXlhkzOwC5u2Dw7Cp3c7JFTUoUJy5OQcqZEdCwiApB8+hJ++OMi5LL6/aM4iJhMEcsNmaTADu2weXYUQv1cUFZdiwc/+g3fpuWJjkVk1er0Brz+XTqA+gU5e/o4C05EdG0sN2Sy3NupsGHmINzW0ws6vQFPbUhD/O4sbrpJJMinB84hs6AcLva2ePbWYNFxiBrFckMmTW2rwPIH+mPGzV0AAO/tzMTczUdRq+emm0TGVFyhxZIfTwIAnh8VDFcHpeBERI1juSGTJ5fL8MqYHnjzjp6Qy4ANB3Px8CcHUV7DTTeJjGVRwgmU19Shl68T7hvQSXQcoutiuSGzMTXSH2umhsPOVoFfThXj3pXJuFhWLToWkcU7knMZXx06DwB4Y3wvKOQcREymjeWGzMot3T3x1aOR6OCowon8ctwZvx/pF8pExyKyWAaDhPl/DiK+u39HhHV2FZyI6N+x3JDZ6d3RGVtmR6GrRzsUaLSYuDIZezILRcciskhfHcrFH+fL4KiywYu3cxAxmQeWGzJLHV3t8c2sKEQFtkelTo/p6w/hi99yRMcisihlVbVYtDMTAPD0rd3g4agWnIioaVhuyGw529nik5iBuLt/R+gNEl7echTvJpzgpptErWTJj5koqdShq0c7TI3sLDoOUZOx3JBZU9rIsfjePng6un7jvhV7TuPJDUe46SbRDTp+QYNPD5wDALwxvidsFXy7IPPB31YyezKZDE9Hd8Pie/vCRi7DD39cxIMf/YbLlTrR0YjMkiRJmP/dMRgkYEwfb0QFuYuORNQsLDdkMe4J64j/PjwQjmobHDp3GRNWJOFscaXoWERmZ2taHg6evQw7WwVeGd1ddByiZmO5IYsSFeSOTbOi4OtihzPFlZiwIgmp5y6LjkVkNsprarFg+wkAwBO3BMHHxU5wIqLmY7khi9PN0xFb5kSht68zSip1uH/NAWw/elF0LCKz8EHiKRSVa9HF3QHTb+oiOg5Ri7DckEXycFRj46ODEN3dA7o6A2Z/fhir953mpptE13GqoBzr9p8FAMwf1wMqG4XYQEQtxHJDFsteaYNVU8Ix7c8prAu2n8Br3x5DHTfdJLqKJEl4/ft01Bkk3NrDE8OCPURHImoxlhuyaAq5DK+P74nXxvaATAZ8diAHM/57CJXaOtHRiEzK9qP52J91CUobOeaN7SE6DtENYbkhiyeTyTD9pi5Y8UB/qGzk2J1ZhImrklGgqREdjcgkVGrr8Pa24wCAWUMD4edmLzgR0Y1huSGrcVsvb2yYOQjtHZRIv6DBXfH7kZlfLjoWkXDLdmfhYlkN/NzsMGtYoOg4RDeM5YasSr9OrtgyezACOjjgQlkN7lmRhP1ZxaJjEQmTXVSBj37JBgDMG9sTalsOIibzx3JDVqdTe3tsnhWFgV3cUK6tw7S1KfjqUK7oWERGVz+I+Dhq9RKGBXdAdHcOIibLwHJDVsnFXolPpw/EHaE+qDNIeOGbP7BkVyanipNV2ZlegH0ni6BUyPH6uJ6QyWSiIxG1CpYbsloqGwWWTgrF48ODAAAf/JyF2K9+h66OU8XJ8lXr9Hjrh/pBxDOHBMDf3UFwIqLWw3JDVk0mk+G5UcFYOKE3FHIZthzJw9S1v6GsqlZ0NKI2tWJPFvJKq+HjrMbs4RxETJaF5YYIwH0DO2HdQwPQTmWDA9kluHtlEnJLqkTHImoTZ4srsXJf/SDi18b2gL3SRnAiotYlvNzEx8fD398farUaERERSElJafTc9PR03H333fD394dMJsPSpUuNF5Qs3pBuHfD1Y5HwdlYjq7ACdy3fj99zS0XHImpVkiThje/Toasz4Oau7ritl5foSEStTmi52bhxI2JjYzF//nwcPnwYffv2xahRo1BYWHjN86uqqhAQEICFCxfCy4t/Ian1dfd2wpbZg9Hd2wnFFTpMWp2MXen5omMRtZqfMgqxO7MItor61bs5iJgskdBys2TJEsyYMQMxMTHo0aMHVq5cCXt7e6xdu/aa5w8YMADvvfce7rvvPqhUKiOnJWvh5azG149FYmi3DqipNeDRz1Kxbv8Z0bGIblhNrR5vfJ8OAHjk5gAEdmgnOBFR2xBWbnQ6HVJTUxEdHf13GLkc0dHRSE5ObrWfo9VqodForngQ/Zt2Kht8PC0c9w/sBEkC3vj+ON74Ph16A6eKk/lasec0zl+uhrezGk+MCBIdh6jNCCs3xcXF0Ov18PT0vOK4p6cn8vNb72OAuLg4ODs7Nzz8/Pxa7XuTZbNRyLHgrl546fYQAMC6/Wfx2GepqNbpBScjar6cS1VYsfc0AODVMRxETJZN+IDitjZ37lyUlZU1PHJzuRItNZ1MJsNjQwPx4f39oLSR48fjBbhvdTKKyrWioxE1y1+DiAcHtcfo3hyzSJZNWLlxd3eHQqFAQUHBFccLCgpadbCwSqWCk5PTFQ+i5hrX1wefPxIBF3tb/H6+DBNW7EdWYYXoWERNkphRgMQThbCRy/AGBxGTFRBWbpRKJcLCwpCYmNhwzGAwIDExEZGRkaJiETVqgL8btsweDP/29sgtqcaE5ftxIPuS6FhE11VTq8frfw4inn5TFwR5OApORNT2hH4sFRsbizVr1mD9+vXIyMjArFmzUFlZiZiYGADA1KlTMXfu3IbzdTod0tLSkJaWBp1Oh7y8PKSlpSErK0vUSyAr08XdAZtmRaF/Jxdoauow5ePfsPVInuhYRI1asec0ckuq4eWkxpO3dBUdh8gohI4omzRpEoqKijBv3jzk5+cjNDQUCQkJDYOMc3JyIJf/3b8uXLiAfv36NXy9ePFiLF68GEOHDsWePXuMHZ+sVPt2KnwxYxBiv0rD9qP5eHpjGnJLqvD4iCDe7ieT8s9BxK+N7QEHFQcRk3WQSVa2DbJGo4GzszPKyso4/oZuiMEg4d2EE1j15zL2E8M74p27esNWYfHj9MlMTP/kIBJPFOKmIHd8On0gyzeZtea8f/NfYaIWkstlmDu6O966sxfkMuCrQ+fx8CcHoanhppsk3k/H6wcRcyViskYsN0Q3aMqgzvhoWjjslQr8cqoYE1cm40JptehYZMX+OYj4kZsDEOTBlYjJurDcELWCESGe+OrRSHg4qnAivxx3xu/Hsbwy0bHISi3nSsRk5VhuiFpJL19nbJkzGMGejigs12LiqmTsPnHtTWCJ2srZ4kqs/McgYq5ETNaI5YaoFfm62OHrWZG4KcgdVTo9pq8/iM8OnBMdi6yEJEl4/c+ViG/u6o7be3ElYrJOLDdErcxJbYt1MQNwb1hHGCTg1a3HELc9AwZuukltbNfxAuzJLIKtgisRk3VjuSFqA7YKORbd0wfP3toNALBqXzae+PIIamq56Sa1jWqdHm9+fxwAMHNIAAI6cBAxWS+WG6I2IpPJ8MQtXfGfSX1hq5Bh29GLmLzmAEoqdaKjkQWK352FvNJq+LrYYc5wDiIm68ZyQ9TG7urXEZ9Oj4CT2gaHc0oxYfl+nCmuFB2LLEh2UQVW/7mY5LxxHERMxHJDZASDAtpj8+wodHS1w9lLVZiwfD8OnS0RHYssgCRJmP9dOnR6A4YFd8DIHp6iIxEJx3JDZCRBHo7YMnsw+nZ0xuWqWkz+6Dd8//sF0bHIzCUcy8cvp4qhVMjx+jgOIiYCWG6IjKqDowobZkbi1h6e0NUZ8MSXR7Biz2lY2RZv1EoqtXV484f6QcSPDQ2Av7uD4EREpoHlhsjI7JQKrHwwDDGD/QEA7yacwMtbjqFObxAbjMzOBz+fwsWyGvi52WE2BxETNWC5IRJAIZdh/riemD+uB2Qy4MuUHExffwgV2jrR0chMnCoox8e/nAEAvD6uJ9S2CsGJiEwHyw2RQDGDu2DVg2FQ28qx92QR7l2ZjPyyGtGxyMRJkoR536ajziAhursnbunOQcRE/8RyQyTYyJ5e2DgzEu7tlMi4qMGd8fuRcVEjOhaZsO9+v4Dk7EtQ2cgxf1wP0XGITA7LDZEJ6Ovngi2zByPIox3yNTW4d2Uy9p4sEh2LTFB5TS3e2ZYBAHh8eBD83OwFJyIyPSw3RCbCz80emx6LQkQXN1Ro6/DwJwex8WCO6FhkYv7z4ykUlmvRxd0BM4cGiI5DZJJYbohMiLO9Lf47fSDu6ucLvUHCi5uOYvHOTE4VJwDA8QsarE8+CwB4fXxPqGw4iJjoWlhuiEyMykaBJRP74skR9VN7l+3OwtMb06Ct46ab1sxgkPDat8egN0gY3dsLQ7t1EB2JyGSx3BCZIJlMhtiRwVh0Tx/YyGX4Nu0CpnyUgtIqbrpprb45fB6p5y7DXqnAa2M5iJjoelhuiEzYxHA/fBIzEI4qG6ScLcGEFUnIuVQlOhYZWWmVDgt3nAAAPB3dFd7OdoITEZk2lhsiE3dTV3d8MysKPs5qZBdV4q7l+3Ek57LoWGREi3ZmoqRSh26e7RAzuIvoOEQmj+WGyAwEezliy5zB6OXrhEuVOty3+gASjuWLjkVGkJZbii9T6mfNvXVHL9gq+M820b/h3xIiM+HppMbGmZEYHtwB2joDZn2eio9+yeZMKgumN0h4detRSBIwoZ8vIgLai45EZBZYbojMiIPKBmumhuPBQZ0gScDb2zLwxvfHoTew4FiiL347h2N5GjiqbTB3dHfRcYjMBssNkZmxUcjx1h298PLoEADAJ0ln8einh1Cl46ablqSoXItFOzMBAM+PCkYHR5XgRETmg+WGyAzJZDLMHBKI+Mn9obSR46eMQkxadQCF5dx001LEbc9AeU0devk64YGIzqLjEJkVlhsiMzamjze+nBEBNwcljuaV4a74JJwqKBcdi27QgexL2HwkDzIZ8PadvaGQy0RHIjIrLDdEZi6ssxs2z4pCF3cH5JVWY8KKJCSdLhYdi1pIV2fAa1uPAQAmD+yEUD8XsYGIzBDLDZEF8Hd3wKZZUQjv7IrymjpMW5uCTannRceiFli7/wxOFVagvYMSL4wKER2HyCyx3BBZCDcHJT57JAJj+nijVi/h2a9/x//9dIpTxc1IXmk1/u+nUwCAuaO7w9neVnAiIvPEckNkQdS2Cnx4Xz88NjQQAPCfn07i+W/+gK7OIDgZNcUb36WjulaPgf5uuLu/r+g4RGaL5YbIwsjlMrx0ewgW3FU/EPWb1POI+SQFZdW1oqPRdSRmFGDX8QIo5DK8dWcvyGQcREzUUiw3RBZqckQnfDQtHA5KBfZnXcK9K5Nw/jI33TRF1To95n+XDgCYflMXBHs5Ck5EZN5Ybogs2PBgD3z1WCQ8nVQ4WVCBu5Yn4ej5MtGx6H/E787C+cvV8HZW46lbuoqOQ2T2WG6ILFxPH2dsnTMYIV6OKCrXYuKqZCRmFIiORX86XVSBVftOAwDmj+sBB5WN4ERE5o/lhsgKeDvb4evHInFzV3dU1+ox47+H8N/ks6JjWT1JkvDa1mOo1UsYHtwBo3p6iY5EZBFYboishKPaFmsfGoBJ4X4wSMC8b9PxzrbjMHDTTWG++/0Ckk5fgspGjjfGcxAxUWthuSGyIrYKORbe3RvPjwoGAKz55QzmfHEYNbV6wcmsj6amFm9vywAAPD48CJ3a2wtORGQ5WG6IrIxMJsOc4UH4v/tCoVTIseNYPu5fcwDFFVrR0azKkl0nUVSuRYC7A2YODRAdh8iisNwQWak7Qn3x6fSBcLazxZGcUkxYnoTTRRWiY1mFY3llDWOe3ryjF1Q2CrGBiCwMyw2RFYsIaI/Ns6Pg52aHnJIqTFiehJQzJaJjWTS9QcIrW47CIAHj+/rgpq7uoiMRWRyWGyIrF9ihHbbMHoxQPxeUVdfiwY9+w7dpeaJjWawvfjuH38+XwVFlg1fHdhcdh8gisdwQEdzbqfDljEEY1dMTOr0BT21IQ/zuLG662coKy2uwaGcmAOD524Lh4agWnIjIMrHcEBEAwE6pwPIHwjD9pi4AgPd2ZmLu5qOo1XPTzdayYFsGymvq0KejMx6I6Cw6DpHFYrkhogYKuQyvje2B18f1gFwGbDiYi+nrD6G8hptu3qikrGJsTbsAmQx4+85eUMi5pg1RW2G5IaKrPDS4C1ZNCYedrQL7Thbh3pXJuFhWLTqW2dLW6fHqt8cAAFMGdUafji5iAxFZOJYbIrqmW3t4YuOjg+DeToUT+eW4M34/0i9w082WWLMvG9lFlXBvp8KzI4NFxyGyeCw3RNSoPh1dsGV2FII82qFAo8XElcnYk1koOpZZOXepEh/+nAUAeG1sdzjb2QpORGT5WG6I6Lr83OyxaVYUIgPao1Knx/T1h/DFbzmiY5kFSZIw79t0aOsMGBzUHuP7+oiORGQVWG6I6F8529li/cMDMaGfL/QGCS9vOYp3E05w081/seNYPvaeLIJSIcdbd3BjTCJjYbkhoiZR2sjx/sS+eOqWrgCAFXtO48kNR7jpZiPKa2rxxvfpAIBZwwIR0KGd4ERE1oPlhoiaTCaT4Zlbu2HxvX1hI5fhhz8uYsrHv+FypU50NJOz5MeTKNBo4d/eHrOGBYqOQ2RVTKLcxMfHw9/fH2q1GhEREUhJSbnu+V9//TVCQkKgVqvRu3dvbN++3UhJiQgA7gnriPUPD4Sj2gYHz17GhBVJOHepUnQsk1BWVYtNqeexPuksgPqNMdW23BiTyJhkkuD11Tdu3IipU6di5cqViIiIwNKlS/H1118jMzMTHh4eV52flJSEIUOGIC4uDmPHjsUXX3yBd999F4cPH0avXr3+9edpNBo4OzujrKwMTk5ObfGSiKzGyYJyxKw7iLzSaigVcgR7OaKXrzN6//kI8mgHO6Vlv7GXVdfiZEE5kk9fwt6TRTiScxl/DUUa28cbyyb3FxuQyEI05/1beLmJiIjAgAEDsGzZMgCAwWCAn58fnnjiCbz00ktXnT9p0iRUVlbihx9+aDg2aNAghIaGYuXKlf/681huiFpXoaYGj36WiiM5pdf8cy8nNfzd7dHF3QF+bvZo76CEq70Sbg5KuDooobIxiRvIjZKk+gJTXKHFpQodiiu0uFhWg1OF5ThVUIHCcu1VzwnyaIdbQjzw+IggOKo59ZuoNTTn/dvGSJmuSafTITU1FXPnzm04JpfLER0djeTk5Gs+Jzk5GbGxsVccGzVqFLZu3XrN87VaLbTav//x0Wg0Nx6ciBp4OKmxeVYUckuqcTSvDEfzynAsrwzHLpShtKoW+Zoa5GtqcCC7RHTUNuPjrEafji4YGtwBQ7p1gK+LnehIRFZNaLkpLi6GXq+Hp6fnFcc9PT1x4sSJaz4nPz//mufn5+df8/y4uDi88cYbrROYiK5JJpOhU3t7dGpvjzF9vBuOX67U4cylSpwtrsTZS1XIu1yNy1U6XKrU4XKlDiWVOrPYmNPJzhbtHZTo4KhCewclPJzUCOrQDl092yHIox3vzhCZGKHlxhjmzp17xZ0ejUYDPz8/gYmIrIfrnx899e/kKjoKEVkRoeXG3d0dCoUCBQUFVxwvKCiAl5fXNZ/j5eXVrPNVKhVUKlXrBCYiIiKTJ3Qkn1KpRFhYGBITExuOGQwGJCYmIjIy8prPiYyMvOJ8APjxxx8bPZ+IiIisi/CPpWJjYzFt2jSEh4dj4MCBWLp0KSorKxETEwMAmDp1Knx9fREXFwcAeOqppzB06FC8//77GDNmDDZs2IBDhw5h9erVIl8GERERmQjh5WbSpEkoKirCvHnzkJ+fj9DQUCQkJDQMGs7JyYFc/vcNpqioKHzxxRd49dVX8fLLL6Nr167YunVrk9a4ISIiIssnfJ0bY+M6N0REROanOe/fpr16FhEREVEzsdwQERGRRWG5ISIiIovCckNEREQWheWGiIiILArLDREREVkUlhsiIiKyKCw3REREZFFYboiIiMiiCN9+wdj+WpBZo9EITkJERERN9df7dlM2VrC6clNeXg4A8PPzE5yEiIiImqu8vBzOzs7XPcfq9pYyGAy4cOECHB0dIZPJWvV7azQa+Pn5ITc3l/tWtSFeZ+PgdTYOXmfj4bU2jra6zpIkoby8HD4+PldsqH0tVnfnRi6Xo2PHjm36M5ycnPgXxwh4nY2D19k4eJ2Nh9faONriOv/bHZu/cEAxERERWRSWGyIiIrIoLDetSKVSYf78+VCpVKKjWDReZ+PgdTYOXmfj4bU2DlO4zlY3oJiIiIgsG+/cEBERkUVhuSEiIiKLwnJDREREFoXlhoiIiCwKy00zxcfHw9/fH2q1GhEREUhJSbnu+V9//TVCQkKgVqvRu3dvbN++3UhJzVtzrvOaNWtw8803w9XVFa6uroiOjv7X/y5Ur7m/z3/ZsGEDZDIZ7rzzzrYNaCGae51LS0sxZ84ceHt7Q6VSoVu3bvy3owmae52XLl2K4OBg2NnZwc/PD8888wxqamqMlNY87du3D+PGjYOPjw9kMhm2bt36r8/Zs2cP+vfvD5VKhaCgIHzyySdtnhMSNdmGDRskpVIprV27VkpPT5dmzJghubi4SAUFBdc8f//+/ZJCoZAWLVokHT9+XHr11VclW1tb6ejRo0ZObl6ae50nT54sxcfHS0eOHJEyMjKkhx56SHJ2dpbOnz9v5OTmpbnX+S9nzpyRfH19pZtvvlm64447jBPWjDX3Omu1Wik8PFwaPXq09Ouvv0pnzpyR9uzZI6WlpRk5uXlp7nX+/PPPJZVKJX3++efSmTNnpJ07d0re3t7SM888Y+Tk5mX79u3SK6+8Im3evFkCIG3ZsuW652dnZ0v29vZSbGysdPz4cenDDz+UFAqFlJCQ0KY5WW6aYeDAgdKcOXMavtbr9ZKPj48UFxd3zfMnTpwojRkz5opjERER0qOPPtqmOc1dc6/z/6qrq5McHR2l9evXt1VEi9CS61xXVydFRUVJH330kTRt2jSWmyZo7nVesWKFFBAQIOl0OmNFtAjNvc5z5syRRowYccWx2NhYafDgwW2a05I0pdy88MILUs+ePa84NmnSJGnUqFFtmEyS+LFUE+l0OqSmpiI6OrrhmFwuR3R0NJKTk6/5nOTk5CvOB4BRo0Y1ej617Dr/r6qqKtTW1sLNza2tYpq9ll7nN998Ex4eHpg+fboxYpq9llzn7777DpGRkZgzZw48PT3Rq1cvLFiwAHq93lixzU5LrnNUVBRSU1MbPrrKzs7G9u3bMXr0aKNkthai3getbuPMliouLoZer4enp+cVxz09PXHixIlrPic/P/+a5+fn57dZTnPXkuv8v1588UX4+Phc9ReK/taS6/zrr7/i448/RlpamhESWoaWXOfs7Gz8/PPPeOCBB7B9+3ZkZWVh9uzZqK2txfz5840R2+y05DpPnjwZxcXFuOmmmyBJEurq6vDYY4/h5ZdfNkZkq9HY+6BGo0F1dTXs7Oza5Ofyzg1ZlIULF2LDhg3YsmUL1Gq16DgWo7y8HFOmTMGaNWvg7u4uOo5FMxgM8PDwwOrVqxEWFoZJkybhlVdewcqVK0VHsyh79uzBggULsHz5chw+fBibN2/Gtm3b8NZbb4mORq2Ad26ayN3dHQqFAgUFBVccLygogJeX1zWf4+Xl1azzqWXX+S+LFy/GwoUL8dNPP6FPnz5tGdPsNfc6nz59GmfPnsW4ceMajhkMBgCAjY0NMjMzERgY2LahzVBLfp+9vb1ha2sLhULRcKx79+7Iz8+HTqeDUqls08zmqCXX+bXXXsOUKVPwyCOPAAB69+6NyspKzJw5E6+88grkcv6/f2to7H3Qycmpze7aALxz02RKpRJhYWFITExsOGYwGJCYmIjIyMhrPicyMvKK8wHgxx9/bPR8atl1BoBFixbhrbfeQkJCAsLDw40R1aw19zqHhITg6NGjSEtLa3iMHz8ew4cPR1paGvz8/IwZ32y05Pd58ODByMrKaiiPAHDy5El4e3uz2DSiJde5qqrqqgLzV6GUuOViqxH2Ptimw5UtzIYNGySVSiV98skn0vHjx6WZM2dKLi4uUn5+viRJkjRlyhTppZdeajh///79ko2NjbR48WIpIyNDmj9/PqeCN0Fzr/PChQslpVIpffPNN9LFixcbHuXl5aJegllo7nX+X5wt1TTNvc45OTmSo6Oj9Pjjj0uZmZnSDz/8IHl4eEhvv/22qJdgFpp7nefPny85OjpKX375pZSdnS3t2rVLCgwMlCZOnCjqJZiF8vJy6ciRI9KRI0ckANKSJUukI0eOSOfOnZMkSZJeeuklacqUKQ3n/zUV/Pnnn5cyMjKk+Ph4TgU3RR9++KHUqVMnSalUSgMHDpQOHDjQ8GdDhw6Vpk2bdsX5X331ldStWzdJqVRKPXv2lLZt22bkxOapOde5c+fOEoCrHvPnzzd+cDPT3N/nf2K5abrmXuekpCQpIiJCUqlUUkBAgPTOO+9IdXV1Rk5tfppznWtra6XXX39dCgwMlNRqteTn5yfNnj1bunz5svGDm5Hdu3df89/bv67ttGnTpKFDh171nNDQUEmpVEoBAQHSunXr2jynTJJ4/42IiIgsB8fcEBERkUVhuSEiIiKLwnJDREREFoXlhoiIiCwKyw0RERFZFJYbIiIisigsN0RERGRRWG6IiIjIorDcEBERkUVhuSEiIiKLwnJDRCarY8eOWL58+RXHkpKSYG9vj3PnzglKRUSmjuWGiExWREQEDh482PC1JEl4+umn8cwzz6Bz584CkxGRKWO5ISKTNWjQoCvKzaefforc3FzMnTsXAJCdnY3vvvtOVDwiMlEsN0RksgYNGoSMjAxUVFSgsrISL7/8Mt5++220a9cOALBjxw4cP378ms/V6/XGjEpEJoTlhohMVlhYGORyOQ4fPox3330XHTp0QExMDABg7969eO211/Dxxx+jX79+qKysxPjx4zF79mwMGDAA69atQ//+/XH58mUA9WN1Jk2aBAA4deoUxowZg7CwMAwZMgSFhYXCXiMRtT6WGyIyWfb29ujduzc2bdqExYsX4z//+Q/k8vp/toYOHYo+ffrgxx9/xJEjR+Dg4ICjR48iODgYBw8exEMPPYSysjK4uroCAI4ePYrevXtDq9Vi9uzZWLVqFVJTUzF58mSsXr1a5MskolZmIzoAEdH1DBo0CB9++CHuuOMODBs27Io/y8nJgb+/PwCgvLwcer0eTz31FADg5MmT6Nq1a8O5x44dwy233IKtW7ciPT0dY8eOBQBotVo89NBDxngpRGQkLDdEZNL69u0LW1tbvPfee1ccP3/+PHx8fBq+Tk9PR1RUVMPXx44dQ69evRq+PnToEJ5++mmsW7cO77//Pu6///62D09EQvBjKSIyaRs2bMDjjz+OoKCgK46fO3cO3t7eDV//9bHTX0pKSuDi4gIA2L9/P9LT0xEQEAAvLy/s3Lmz4bw//vijbV8AERkdyw0RmRyDwYCCggIsWLAAp06dwvz58686p1evXsjOzkbv3r1x/Pjxq8rN7bffjm+++QZTp05FQkICunfvDplMhpiYGJSWliIkJAR9+/bFZ599ZsyXRkRGIJMkSRIdgojon/bs2YMRI0YgJCQE69atQ0REhOhIRGRGWG6IiIjIovBjKSIiIrIoLDdERERkUVhuiIiIyKKw3BAREZFFYbkhIiIii8JyQ0RERBaF5YaIiIgsCssNERERWRSWGyIiIrIoLDdERERkUf4fWiYm1w9DhEoAAAAASUVORK5CYII=", | |
| "text/plain": [ | |
| "<Figure size 640x480 with 1 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "# We have already predicted this y_pred value\n", | |
| "y_pred = 0.5\n", | |
| "\n", | |
| "# But the true value could be any of these\n", | |
| "y_true = np.linspace(0, 1, 100)\n", | |
| "\n", | |
| "# Calculate the loss for range of possible values of y_true\n", | |
| "losses = L(y_true, y_pred)\n", | |
| "\n", | |
| "# Plot the losses\n", | |
| "plt.plot(y_true, losses)\n", | |
| "plt.ylabel(\"loss\")\n", | |
| "plt.xlabel(\"$y_{true}$\")\n", | |
| "plt.show()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "0f862382-0250-480a-bc74-bf53f2da46db", | |
| "metadata": {}, | |
| "source": [ | |
| "But we could have predicted any value of $y_{pred}$, so lets plot the whole loss landscape" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 74, | |
| "id": "3fb7e044-6eec-4ed6-8256-3beda7661973", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "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", | |
| "text/plain": [ | |
| "<Figure size 640x480 with 2 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "# Get full grid of possible y_pred, y_true pairs\n", | |
| "n_samples = 100\n", | |
| "x = np.linspace(0, 1, n_samples)\n", | |
| "y_true, y_pred = np.meshgrid(x, x)\n", | |
| "\n", | |
| "# Calculate the loss at all grid points\n", | |
| "loss_landscape = L(y_true, y_pred)\n", | |
| "\n", | |
| "# plot\n", | |
| "fig, ax = plt.subplots(1,1)\n", | |
| "pos = ax.imshow(loss_landscape, vmax=1, vmin=0, interpolation='nearest', origin=\"lower\")\n", | |
| "ax.plot([0, n_samples], [0, n_samples], color=\"w\", linestyle=\"--\", alpha=0.5)\n", | |
| "ax.set_xticks([0,n_samples-1], labels=[0, 1])\n", | |
| "ax.set_yticks([0,n_samples-1], labels=[0, 1])\n", | |
| "ax.set_xlim(0,n_samples-1)\n", | |
| "ax.set_ylim(0,n_samples-1)\n", | |
| "\n", | |
| "cbar = fig.colorbar(pos, ax=ax, extend='max')\n", | |
| "cbar.set_label('loss')\n", | |
| "\n", | |
| "plt.xlabel(\"$y_{true}$\")\n", | |
| "plt.ylabel(\"$y_{pred}$\")\n", | |
| "plt.show()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "3c362bd0-5b47-448c-a6c6-72ec65388dc0", | |
| "metadata": {}, | |
| "source": [ | |
| "From the PVNet estimated distribution, and the loss function, we can calculate the expected loss if we were to predict the single value $y_{pred}$ via\n", | |
| "\n", | |
| "\\begin{equation}\n", | |
| " E[L](\\hat{y}) = \\int_0^1 \\hat{p}(y)L(y, y_{pred})dy\n", | |
| "\\end{equation}\n", | |
| "\n", | |
| "We will make a little class to run this integration for us" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 79, | |
| "id": "c9d8720a-1523-472d-9bc6-d8595b4bf21b", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "class ExpectedLoss:\n", | |
| " \n", | |
| " def __init__(self, dist, npoints=100):\n", | |
| " self.dist = dist\n", | |
| " self.npoints = npoints\n", | |
| "\n", | |
| "\n", | |
| " def __call__(self, y_pred):\n", | |
| " # approximate the integral\n", | |
| " y = np.linspace(0, 1, self.npoints)\n", | |
| " p = self.dist.pdf(y)\n", | |
| " loss = L(y, y_pred)\n", | |
| " \n", | |
| " dy = 1 / self.npoints\n", | |
| " return (p*y*loss*dy).sum()\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "e9ed5fe2-f8c6-4f7b-aa16-978d2559fb56", | |
| "metadata": {}, | |
| "source": [ | |
| "Let's put this all together and plot the expected loss we would get for all values of $y_{pred}$ we might choose" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 80, | |
| "id": "08f1bce0-90f8-40a1-9260-6bf380094c94", | |
| "metadata": {}, | |
| "outputs": [], | |
| "source": [ | |
| "# The expected loss function - where we use the PVNet estimated probability distribution over y\n", | |
| "loss_func = ExpectedLoss(dist=e_dist)\n", | |
| "\n", | |
| "# Calculate the expected loss for all of these y_pred values\n", | |
| "y_preds = np.linspace(0., 1, 100)\n", | |
| "\n", | |
| "l = [loss_func(y) for y in y_preds]" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "54126a58-56b3-474c-8997-b288b0b6d6f5", | |
| "metadata": {}, | |
| "source": [ | |
| "Finally we'll make a plot showing the PVNet estimated pdf and the expected loss" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 81, | |
| "id": "36533e56-b595-4b46-966b-c3186e2872cb", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "data": { | |
| "image/png": "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h/Loo4+Sl5dHUlISkydPpri42HuNZ0r2jjvuoEOHDvTp0weAHTt2MHnyZDIyMmjbti3nnnsuW7du9T7P5XJx8803k5GRQbt27fjTn/6EtisXkUiloE9EQu7CCy/E5XLx9ttve+/bu3cv7733HldeeeVRn79x40ZeeeUV3nnnHebPn8/y5cu5/vrrG1zz8ccfs379ej788EPeffddamtrOeOMM0hNTeXLL79k0aJFpKSk8JOf/MSbCbz33nuZO3cuTz75JAsXLuTAgQPMmzfPv9+8iEiQKOgTkZBLTEzk4osv5qmnnvLe99xzz9G5c2fGjx9/1OdXVVXxzDPPMHToUE499VQefPBBXnrpJQoKCrzXJCcn8/jjjzNgwAAGDBjAyy+/jNvt5vHHH2fQoEH069ePp556iu3bt/PZZ58BcP/99zN9+nR+/vOf069fPx555BHS09P9/e2LiARFXKgHICICcPXVVzNy5Eh27dpFx44dmTt3LpdffjkWi+Woz+3cuTMdO3b03h4zZgxut5v169fTvn17AAYNGkR8fLz3mpUrV7Jx40ZSU1MbvFZVVRWbNm2iuLiYPXv2MHr0aO9jcXFxjBgxQlO8IhKRFPSJSFgYNmwYQ4YM4ZlnnuH0009nzZo1vPfee357/eTk5Aa3y8rKGD58OM8//3yja7Oysvz2viIi4UJBn4iEjV/96lfcf//97Nq1i4kTJ5KXl9ei523fvp3du3fToUMHABYvXozVavUu2GjKCSecwMsvv0x2djZpaWlNXpObm8s333zDqaeeCoDT6WTZsmWccMIJrfzORERCTzV9IhI2Lr74Ynbu3Mljjz3WogUcHgkJCUydOpWVK1fy5ZdfcuONNzJ58mTv1G5TLrnkEjIzMzn33HP58ssv2bJlC5999hk33ngjO3fuBOC3v/0ts2fP5s0332TdunVcf/31HDp06Hi/TRGRkFDQJyJhIz09nfPPP5+UlJRW7XrRs2dPfv7zn3PWWWdx+umnM3jwYB566KEjPicpKYkvvviCzp07exdqXHXVVVRVVXkzf7///e+ZMmUKU6dOZcyYMaSmpjJp0qTj+RZFRELGYqgiWUTCyIQJExgwYAAPPPBAi66fOXMmb775JitWrAjswEREIpxq+kQkLBw8eJDPPvuMzz777KhZOhERaT0FfSISFoYNG8bBgwe56667GizAGDBgANu2bWvyOY8++miwhiciEvE0vSsiYW3btm3U1tY2+VhOTk6jPnsiItI0BX0iIiIiMUCrd0VERERigII+ERERkRigoE9EREQkBijoExEREYkBCvpEREREYoCCPhEREZEYoKBPREREJAYo6BMRERGJAf8P4eX2pPLKexQAAAAASUVORK5CYII=", | |
| "text/plain": [ | |
| "<Figure size 640x480 with 2 Axes>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "ax = plt.subplot()\n", | |
| "\n", | |
| "# Plot the expected loss\n", | |
| "color=\"tab:blue\"\n", | |
| "ax.plot(y_preds, l, color=color)\n", | |
| "ax.set_ylabel(\"$E[L](y)$\", color=color)\n", | |
| "ax.tick_params(axis=\"y\", labelcolor=color)\n", | |
| "\n", | |
| "\n", | |
| "# Plot the PVNet estimated pdf\n", | |
| "color=\"tab:orange\"\n", | |
| "ax2 = ax.twinx() \n", | |
| "ax2.plot(y_preds, e_dist.pdf(y_preds), color=color, label=\"$\\hat{p}(y)$\")\n", | |
| "ax2.set_ylabel(\"$\\hat{p}(y)$\", color=color)\n", | |
| "ax2.tick_params(axis=\"y\", labelcolor=color)\n", | |
| "\n", | |
| "\n", | |
| "# Mark the point where the loss is lowest\n", | |
| "y_min = y_preds[np.argmin(l)]\n", | |
| "ax.vlines(y_min, 0, max(l), color=color, linestyle=\"--\")\n", | |
| "\n", | |
| "# Find the percentile of the pdf which has the lowest expected loss and print on figure\n", | |
| "y_min_percentile = e_dist.cdf(y_min)*100\n", | |
| "ax.text(\n", | |
| " y_min, \n", | |
| " 0.9, \n", | |
| " '$y_{min}$ = '+f\"{y_min:.3f} = {y_min_percentile:.2f}%\", \n", | |
| " color='k', \n", | |
| " ha='right', \n", | |
| " va='top', rotation=90,\n", | |
| " transform=ax.get_xaxis_transform(),\n", | |
| " zorder=100\n", | |
| ")\n", | |
| "\n", | |
| "\n", | |
| "ax.set_xlabel(\"y_pred\")\n", | |
| "\n", | |
| "plt.show()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "id": "8e29100c-8d2b-4fed-8b97-45f41f26a0c6", | |
| "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.10.10" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 5 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment