From 6cc15929cfc08f3be6986b542e069dc8f0d9267b Mon Sep 17 00:00:00 2001 From: Lars Bogner Date: Mon, 25 Aug 2025 13:57:58 +0200 Subject: [PATCH] Excercises for week 34 and 35 completed --- doc/LectureNotes/exercisesweek34.ipynb | 78 ++- doc/LectureNotes/exercisesweek35.ipynb | 734 +++++++++++++++++++++++-- 2 files changed, 752 insertions(+), 60 deletions(-) diff --git a/doc/LectureNotes/exercisesweek34.ipynb b/doc/LectureNotes/exercisesweek34.ipynb index 50e773ede..8569894f5 100644 --- a/doc/LectureNotes/exercisesweek34.ipynb +++ b/doc/LectureNotes/exercisesweek34.ipynb @@ -194,13 +194,13 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 4, "id": "0208e9ca", "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "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ICsrCwBw5swZTJ06FR07doRcLseYMWPwxx9/2LzPsWPHIJFIsHfvXqvjL7/8MmJjY+3+dNq9e3c888wzmDp1KsLCwhAbG4usrCyUlZVh/PjxCAsLw4ABAxrd99NPP8Ull1yCoKAgdO/eHS+++KLV86WlpUhLS0NISAji4uKwbt26Rq999uxZzJo1CxEREVAoFLjmmmvw66+/uvT+rV+/HmlpaY2OJyYmIiYmBhs3brQc27hxI7p162bV9O3s2bPYuXMnli5dipEjRyI2NhZJSUmYP38+brjBuvlceHg41Gq11VdoaKhL4zV75ZVXkJqaikcffRT9+vXD4sWLkZiY6LAL7RtvvIG4uDi8+OKL6NevH+677z7ccssteOmllyznjBkzBs888wxuuukmu/eRSqUYO3Ys1q9f79bYich3cgvKUaSpgr4iAef+zICucDbOn7wdusLZOPdnBvQVCSjSVCG3oLylh9psbSqwMBcfabilx9wlztvBRX0hISGoqakB6qb09+7di6ysLOzevRuiKGLs2LFW3S7NunfvjpSUFKxevdrq+OrVqzF9+nRIJPb/k7300ksYOnQofvnlF4wbNw5TpkzB1KlTMXnyZOTl5aFnz56YOnUqzH3n9u3bh4kTJ+L222/HgQMHsHDhQjz55JNW0/LTp0/HiRMn8O233+KTTz7B66+/jtLSUqvXvfXWW1FaWoqtW7di3759SExMxLXXXovycuf+gpSXlyM/P9/Sqr2hGTNmWL0fq1atwl133WV1TlhYGMLCwrBp0yZUV1c79br2mO9l76v+0szu3bsbldYePXo0du/ebff+7lxjT1JSEnbu3OnydUTkW6UV9bsnS2DQ9YReexkMup5WH8XW57nAaACO7gC+eQbY/gzw13emYy2gzewKcVR8RIQIAQKW5i7FyJiRXu0SJ4oitm/fjm3btuH+++/HH3/8gaysLPz4448YMmQIAGDdunWIiYnBpk2bcOuttza6x6xZs3DPPfdg+fLlCAoKQl5eHg4cOIDPP//c4WuPHTsW//rXv4C6ttwrVqzAoEGDLK+RkZGB5ORklJSUQK1WY/ny5bj22mvx5JNPAgB69+6N/Px8PP/885g+fTp+//13bN26Fbm5uRg0yNQA55133kG/fv0sr/nDDz8gNzcXpaWlCAoKAgC88MIL2LRpEz755BOnkjGPHz8O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Jnd7EBERNVPrDSya3OkB004PcwEsc10KRZT1qYpo+1tNiYiIyCWtdynElZ0e5u2i8TeYtpSyLgUREZFXuDxj8f333yMtLQ3R0dEQBAGbNm3yzsia4u5OD3Ndiv63mH5lUEFEROQxLgcW586dw6WXXorXXnvNOyNyFnd6EBER+R2Xl0LGjBmDMWPGeGc0ruBODyIiIr/TepM3udODiIjI73g9sKiuroZWq7X68hju9CAiIvIrXt8VsmTJEixatMh7L8CdHkRERH7D6zMW8+fPh0ajsXydOHHC8y/CnR5ERER+weszFkFBQQgKCvL2yxAREZEfcDmwqKysxJ9//ml5XFBQgP3796NTp07o1q2bp8dHRERErYjLgcXevXsxcuRIy+P09HQAwLRp07BmzRrPjo6IiIhaFZcDixEjRkAUbdWNICIiovau9daxICIiIr/DwIKIiIg8hoEFEREReQwDCyIiIvIYBhZERETkMV4vkNWQeUeJR3uGEBERkVeZP7eb2hnq88CioqICABATE+PrlyYiIqJmqqiogFKptPu8IPq4KIXRaMQ///yD8PBwCELDdufO0Wq1iImJwYkTJ6BQKDw+RrLG99u3+H77Dt9r3+L77TveeK9FUURFRQWio6MhkdjPpPD5jIVEIsFFF13kkXspFAr+4fQhvt++xffbd/he+xbfb9/x9HvtaKbCjMmbRERE5DEMLIiIiMhjWmVgERQUhAULFrAdu4/w/fYtvt++w/fat/h++05Lvtc+T94kIiKitqtVzlgQERGRf2JgQURERB7DwIKIiIg8hoEFEREReYzfBhavvfYaunfvjuDgYAwePBi5ubkOz//444/Rt29fBAcHo3///tiyZYvPxtoWuPJ+r1y5EsOGDUPHjh3RsWNHpKSkNPnfhy5w9c+22fr16yEIAm688Uavj7EtcfX9Pnv2LObOnYuoqCgEBQWhd+/e/PfEBa6+3y+//DL69OmDkJAQxMTE4OGHH0ZVVZXPxttaff/990hLS0N0dDQEQcCmTZuavGbHjh1ITExEUFAQevXqhTVr1nhncKIfWr9+vRgYGCiuWrVKPHTokDh79myxQ4cOYklJic3zf/zxR1EqlYrLli0T8/PzxSeeeEIMCAgQDxw44POxt0auvt933HGH+Nprr4m//PKLePjwYXH69OmiUqkU//77b5+PvbVx9b02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", "text/plain": [ "
" ] @@ -216,15 +216,17 @@ "\n", "line_model = LinearRegression().fit(x, y)\n", "line_predict = line_model.predict(x)\n", - "#line_mse = ...\n", + "line_mse = mean_squared_error(y, line_predict)\n", "\n", - "#poly_features = ...\n", - "#poly_model = LinearRegression().fit(..., y)\n", - "#poly_predict = ...\n", - "#poly_mse = ...\n", + "poly = PolynomialFeatures(degree=2)\n", + "x_poly = poly.fit_transform(x)\n", + "poly_model = LinearRegression().fit(x_poly, y)\n", + "poly_predict = poly_model.predict(x_poly)\n", + "poly_mse = mean_squared_error(y, poly_predict)\n", "\n", "plt.scatter(x, y, label = \"Data\")\n", - "plt.scatter(x, line_predict, label = \"Line model\")\n", + "plt.scatter(x, line_predict, label = f\"Line model (MSE={line_mse:.2f})\")\n", + "plt.scatter(x, poly_predict, label = f\"Poly model (MSE={poly_mse:.2f})\")\n", "plt.legend()\n", "plt.show()" ] @@ -247,7 +249,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "0f8d75fb", "metadata": {}, "outputs": [], @@ -273,14 +275,52 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "a03e0388", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Shape of X_test: (20, 3)\n", + "Train MSE: 0.0098\n", + "Test MSE: 0.0097\n" + ] + }, + { + "data": { + "image/png": "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SURELZKrz+9617Foauk5xVX2/Kg57GDdECs9x75ktst1H2ImmpMHVbUkQNXRaVIB1nkgIqI2rsUOhbi60VWDNsSKmQj0uR3IPQCUFgDBGvMwSR21JVjngYiI2qoWm1i4utFVgzfEsmzA5S7WeSAioraoxQ6FWCdKOusDECxbonOiJBERkfe02MTCuiEWHFSZ4IZYRERETaPFJhbgREkiIqJmp8XOsbDiREkiIqLmo8UnFuBESSIiomajRQ+FEBERUfPCxIKIiIg8hokFEREReQwTCyIiIvIYJhZERETkMUwsiIiIyGOYWBAREZHHMLEgIiIij2FiQURERB7j9cqbkiQBAPR6vbc/moiIiOrJ+ty2Psed8XpiUVJSAgCIjIz09kcTERFRA5WUlECtVjt9X5DqSj08TBRFXLhwAUqlEoJQv43C9Ho9IiMjce7cOahUKo/HSPZ4v72L99t7eK+9i/fbexrjXkuShJKSEnTs2BEymfOZFF7vsZDJZOjcubNHrqVSqfiP04t4v72L99t7eK+9i/fbezx9r2vrqbDi5E0iIiLyGCYWRERE5DEtMrHw9/dHcnIy/P39mzqUNoH327t4v72H99q7eL+9pynvtdcnbxIREVHr1SJ7LIiIiKh5YmJBREREHsPEgoiIiDyGiQURERF5TLNNLN566y107doVAQEBGDp0KNLT02tt/9FHH6FPnz4ICAhAv379sGPHDq/F2hq4c7/Xrl2LkSNHIiQkBCEhIUhISKjz74euc/ffttWmTZsgCAL++Mc/NnqMrYm79/vKlSuYO3cuIiIi4O/vj169evG/J25w936vXr0avXv3RmBgICIjI/Hkk0+irKzMa/G2VN988w2SkpLQsWNHCIKATz/9tM5z9u7di7i4OPj7+6NHjx5Yv3594wQnNUObNm2S/Pz8pH//+9/STz/9JM2ePVtq166dVFBQ4LD9/v37JblcLr388stSdna29Nxzz0m+vr7S8ePHvR57S+Tu/b7nnnukt956Szp69Kh04sQJadasWZJarZZ+//13r8fe0rh7r61ycnKkTp06SSNHjpQmTZrktXhbOnfvd3l5uTR48GBpwoQJ0nfffSfl5ORIe/fulY4dO+b12Fsid+/3Bx98IPn7+0sffPCBlJOTI3311VdSRESE9OSTT3o99pZmx44d0rPPPitt2bJFAiBt3bq11vanT5+WFAqFtGDBAik7O1v6+9//Lsnlcmnnzp0ej61ZJhbx8fHS3Llzba9NJpPUsWNHafny5Q7bT5kyRbr99tvtjg0dOlR65JFHGj3W1sDd+12d0WiUlEql9N577zVilK1Dfe610WiUhg8fLr377rvSzJkzmVi4wd37vWbNGqlbt25SRUWFF6NsPdy933PnzpVuvfVWu2MLFiyQRowY0eixtiauJBZPP/20dMMNN9gdmzp1qjR+/HiPx9PshkIqKipw5MgRJCQk2I7JZDIkJCTg4MGDDs85ePCgXXsAGD9+vNP2dF197nd1BoMBlZWVCA0NbcRIW7763usXXngB4eHhePDBB70UaetQn/u9bds2DBs2DHPnzoVGo0FsbCyWLVsGk8nkxchbpvrc7+HDh+PIkSO24ZLTp09jx44dmDBhgtfibiu8+Zz0+iZkdbl48SJMJhM0Go3dcY1Gg59//tnhOfn5+Q7b5+fnN2qsrUF97nd1ixYtQseOHWv8oyV79bnX3333Hf71r3/h2LFjXoqy9ajP/T59+jS+/vprTJ8+HTt27MBvv/2Gxx57DJWVlUhOTvZS5C1Tfe73Pffcg4sXL+Lmm2+GJEkwGo149NFH8cwzz3gp6rbD2XNSr9fj2rVrCAwM9NhnNbseC2pZUlNTsWnTJmzduhUBAQFNHU6rUlJSgnvvvRdr165Fhw4dmjqcNkEURYSHh+Of//wnBg0ahKlTp+LZZ5/FP/7xj6YOrVXau3cvli1bhrfffhuZmZnYsmULvvjiC7z44otNHRo1QLPrsejQoQPkcjkKCgrsjhcUFECr1To8R6vVutWerqvP/bZ69dVXkZqairS0NPTv37+RI2353L3Xp06dwpkzZ5CUlGQ7JooiAMDHxwcnT55E9+7dvRB5y1Sff9sRERHw9fWFXC63Hevbty/y8/NRUVEBPz+/Ro+7parP/f7rX/+Ke++9Fw899BAAoF+/frh69SoefvhhPPvss5DJ+Luvpzh7TqpUKo/2VqA59lj4+flh0KBB2LNnj+2YKIrYs2cPhg0b5vCcYcOG2bUHgN27dzttT9fV534DwMsvv4wXX3wRO3fuxODBg70Ubcvm7r3u06cPjh8/jmPHjtl+Jk6ciDFjxuDYsWOIjIz08jdoWerzb3vEiBH47bffbAkcAPzyyy+IiIhgUlGH+txvg8FQI3mwJnXcxsqzvPqc9Ph0UA/YtGmT5O/vL61fv17Kzs6WHn74Yaldu3ZSfn6+JEmSdO+990qLFy+2td+/f7/k4+Mjvfrqq9KJEyek5ORkLjd1g7v3OzU1VfLz85M+/vhjKS8vz/ZTUlLShN+iZXD3XlfHVSHucfd+nz17VlIqldK8efOkkydPSp9//rkUHh4uvfTSS034LVoOd+93cnKypFQqpf/+97/S6dOnpV27dkndu3eXpkyZ0oTfomUoKSmRjh49Kh09elQCIK1atUo6evSolJubK0mSJC1evFi69957be2ty03/8pe/SCdOnJDeeuuttrXcVJIk6e9//7vUpUsXyc/PT4qPj5e+//5723ujRo2SZs6cadd+8+bNUq9evSQ/Pz/phhtukL744osmiLrlcud+R0VFSQBq/CQnJzdR9C2Lu/+2q2Ji4T537/eBAwekoUOHSv7+/lK3bt2kv/3tb5LRaGyCyFsmd+53ZWWltHTpUql79+5SQECAFBkZKT322GPS5cuXmyj6luN///ufw/8OW+/vzJkzpVGjRtU4Z8CAAZKfn5/UrVs3ad26dY0SG7dNJyIiIo9pdnMsiIiIqOViYkFEREQew8SCiIiIPIaJBREREXkMEwsiIiLyGCYWRERE5DFMLIiIiMhjmFgQERGRxzCxICIiIo9hYkFEREQew8SCiIiIPIaJBREREXnM/wO6o1CHp7efRQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "polynomial_features = ...\n", + "polynomial_features = poly.fit_transform(x)\n", "\n", - "#X_train, X_test, y_train, y_test = train_test_split(polynomial_features, y, test_size=0.2)\n", + "X_train, X_test, y_train, y_test = train_test_split(polynomial_features, y, test_size=0.2)\n", + "print(f\"Shape of X_test: {X_test.shape}\")\n", + "\n", + "poly_model = LinearRegression().fit(X_train, y_train)\n", + "pred_train = poly_model.predict(X_train)\n", + "pred_test = poly_model.predict(X_test)\n", + "\n", + "train_mse = mean_squared_error(y_train, pred_train)\n", + "test_mse = mean_squared_error(y_test, pred_test)\n", + "\n", + "print(f\"Train MSE: {train_mse:.4f}\")\n", + "print(f\"Test MSE: {test_mse:.4f}\")\n", + "\n", + "plt.scatter(X_train[:, 1], y_train, label=\"Train Data\")\n", + "plt.scatter(X_test[:, 1], y_test, label=\"Test Data\")\n", + "plt.scatter(X_train[:, 1], pred_train, label=\"Train Predictions\")\n", + "plt.scatter(X_test[:, 1], pred_test, label=\"Test Predictions\")\n", + "plt.legend()\n", + "plt.show()\n", "\n" ] }, @@ -288,12 +328,20 @@ "cell_type": "markdown", "id": "22e7536e", "metadata": {}, + "source": [ + "Training on X-test wouldn't let us evaluate the quality of the model as the evaluation metric would be the same metric we tried to minimize. But assuming X_train and X_test selections are independent we can evaluate the quality if we separate training and testing data." + ] + }, + { + "cell_type": "markdown", + "id": "4b7bac7e", + "metadata": {}, "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Lecture_Materials", "language": "python", "name": "python3" }, @@ -307,7 +355,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.15" + "version": "3.13.7" } }, "nbformat": 4, diff --git a/doc/LectureNotes/exercisesweek35.ipynb b/doc/LectureNotes/exercisesweek35.ipynb index 403eab1f3..e9e4b1b70 100644 --- a/doc/LectureNotes/exercisesweek35.ipynb +++ b/doc/LectureNotes/exercisesweek35.ipynb @@ -109,6 +109,20 @@ "What is the *shape* of the result of the expression?" ] }, + { + "cell_type": "markdown", + "id": "5fa87526", + "metadata": {}, + "source": [ + "
\n", + "\n", + "- We're taking the derivative of a expression of shape $1\\times1$, as the product of row-vector $a^T$ and column-vector $x$ is of shape $1\\times 1$.\n", + "- We're taking the derivative with respect to a column vector of length n.\n", + "- The resulting shape is a row vector of length n.\n", + "\n", + "
" + ] + }, { "cell_type": "markdown", "id": "c0396734", @@ -121,6 +135,22 @@ "$$" ] }, + { + "cell_type": "markdown", + "id": "8d3e59ee", + "metadata": {}, + "source": [ + "
\n", + "\n", + "$$\n", + "\\frac{\\partial (a^T x)}{\\partial x} = \\frac{\\partial}{\\partial x_j} (a_{ji} x_j) = a_{ji} = a^T\n", + "$$\n", + "where $ji = 0$ since we have column-vectors.\n", + "Thus $a_{ji} = a_{j0} = a^T$ a row vector.\n", + "\n", + "
" + ] + }, { "cell_type": "markdown", "id": "dc39d541", @@ -133,6 +163,37 @@ "$$" ] }, + { + "cell_type": "markdown", + "id": "fc826cc4", + "metadata": {}, + "source": [ + "
\n", + "\n", + "Using differentials,\n", + "\n", + "$$\n", + "\\mathrm{d}f\n", + "= (\\mathrm{d}\\mathbf{a})^T\\mathbf{A}\\mathbf{a}+\\mathbf{a}^T\\mathbf{A}\\,\\mathrm{d}\\mathbf{a}\n", + "= (\\mathrm{d}\\mathbf{a})^T(\\mathbf{A}+\\mathbf{A}^T)\\mathbf{a}.\n", + "$$\n", + "\n", + "By definition $\\mathrm{d}f = \\big(\\tfrac{\\partial f}{\\partial \\mathbf{a}}\\big)^T \\mathrm{d}\\mathbf{a}$, hence\n", + "\n", + "$$\n", + "\\frac{\\partial (\\mathbf{a}^T \\mathbf{A}\\mathbf{a})}{\\partial \\mathbf{a}}\n", + "= (\\mathbf{A}+\\mathbf{A}^T)\\mathbf{a}.\n", + "$$\n", + "\n", + "If you represent gradients as row vectors, equivalently\n", + "\n", + "$$\n", + "\\frac{\\partial (\\mathbf{a}^T \\mathbf{A}\\mathbf{a})}{\\partial \\mathbf{a}}=\\mathbf{a}^T(\\mathbf{A}+\\mathbf{A}^T).\n", + "$$\n", + "\n", + "
" + ] + }, { "cell_type": "markdown", "id": "498d13ec", @@ -164,7 +225,7 @@ "id": "b7cccc9d", "metadata": {}, "source": [ - "We typically write the squared error as\n", + "
\n", "\n", "$$\n", "\\vert\\vert\\boldsymbol{y} - \\boldsymbol{X\\theta}\\vert\\vert^2\n", @@ -174,7 +235,10 @@ "\n", "$$\n", "\\left(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\theta}\\right)^T\\left(\\boldsymbol{y}-\\boldsymbol{X}\\boldsymbol{\\theta}\\right)\n", - "$$" + "$$.\n", + "If we take the derivative and set it to 0 we find extrema in the squared error term. Since the squared error is positivly definit this point will be the minimum. We minimized the squared error.\n", + "\n", + "
" ] }, { @@ -185,6 +249,20 @@ "**b)** If $\\boldsymbol{X}$ is invertible, what is the expression for the optimal parameters $\\boldsymbol{\\theta}$? (**Hint:** Don't compute any derivatives, but solve $\\boldsymbol{X\\theta}=\\boldsymbol{y}$ for $\\boldsymbol{\\theta}$)" ] }, + { + "cell_type": "markdown", + "id": "0a4e9afe", + "metadata": {}, + "source": [ + "
\n", + "\n", + "$$\n", + "\\theta = X^{-1} y\n", + "$$\n", + "since then $$X \\theta = X X^{-1} y = y$$\n", + "
" + ] + }, { "cell_type": "markdown", "id": "f37af8f0", @@ -197,16 +275,46 @@ "$$" ] }, + { + "cell_type": "markdown", + "id": "a7e35dca", + "metadata": {}, + "source": [ + "
\n", + "\n", + "$$\n", + "\\begin{aligned}\n", + "\\frac{\\partial}{\\partial s} (x-As)^T(x-As) &= \\frac{\\partial (x-As)^T}{\\partial s} (x-As) + (x-As)^T \\frac{\\partial (x-As)}{\\partial s} \\\\\n", + "&= - A^T (x-As) - (x-As)^T A \\\\\n", + "&= -2 (x-As)^T A\n", + "\\end{aligned}\n", + "$$\n", + "\n", + "
" + ] + }, { "cell_type": "markdown", "id": "869fca4d", "metadata": {}, "source": [ - "**d)** Using the expression from **c)**, but substituting back in $\\boldsymbol{\\theta}$, $\\boldsymbol{y}$ and $\\boldsymbol{X}$, find the expression for the optimal parameters $\\boldsymbol{\\theta}$ in the case that $\\boldsymbol{X}$ is not invertible, but $\\boldsymbol{X^T X}$ is, which is most often the case.\n", + "**d)** Using the expression from **c)**, but substituting back in $\\boldsymbol{\\theta}$, $\\boldsymbol{y}$ and $\\boldsymbol{X}$, find the expression for the optimal parameters $\\boldsymbol{\\theta}$ in the case that $\\boldsymbol{X}$ is not invertible, but $\\boldsymbol{X^T X}$ is, which is most often the case." + ] + }, + { + "cell_type": "markdown", + "id": "aee5a457", + "metadata": {}, + "source": [ + "
\n", "\n", "$$\n", - "\\boldsymbol{\\hat{\\theta}_{OLS}} = ...\n", - "$$" + "\\boldsymbol{\\hat{\\theta}_{OLS}} = (X^T X)^{-1} X^T y\n", + "$$\n", + "\n", + "since then\n", + "$X\\theta = X (X^TX)^{-1} X^T y = (X X^{-1}) ((X^T)^{-1} X^T) y = y$\n", + "
" ] }, { @@ -267,12 +375,39 @@ "execution_count": 3, "id": "5ad87a65", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 1., 116., 5.],\n", + " [ 1., 161., 3.],\n", + " [ 1., 167., 0.],\n", + " [ 1., 118., 4.],\n", + " [ 1., 172., 5.],\n", + " [ 1., 163., 3.],\n", + " [ 1., 179., 0.],\n", + " [ 1., 173., 4.],\n", + " [ 1., 162., 4.],\n", + " [ 1., 116., 3.],\n", + " [ 1., 101., 3.],\n", + " [ 1., 176., 5.],\n", + " [ 1., 178., 1.],\n", + " [ 1., 172., 0.],\n", + " [ 1., 143., 2.],\n", + " [ 1., 135., 3.],\n", + " [ 1., 160., 2.],\n", + " [ 1., 101., 1.],\n", + " [ 1., 149., 5.],\n", + " [ 1., 125., 4.]])" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "X = np.zeros((n, 3))\n", - "#X[:, 0] = ...\n", - "#X[:, 1] = ...\n", - "#X[:, 2] = ..." + "X = np.stack((np.ones(n), income, children)).T\n", + "display(X)" ] }, { @@ -288,12 +423,23 @@ "execution_count": 4, "id": "8f3f68aa", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 9.12808583, 0.5119025 , 14.60743095])" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "def OLS_parameters(X, y):\n", - " return ...\n", + " return np.linalg.inv(X.T @ X) @ X.T @ y\n", "\n", - "#beta = OLS_parameters(X, y)" + "beta = OLS_parameters(X, spending)\n", + "display(beta)" ] }, { @@ -339,17 +485,224 @@ "execution_count": 6, "id": "91496e40", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 1.00000000e+00, -3.00000000e+00, 9.00000000e+00,\n", + " -2.70000000e+01, 8.10000000e+01, -2.43000000e+02],\n", + " [ 1.00000000e+00, -2.93939394e+00, 8.64003673e+00,\n", + " -2.53964716e+01, 7.46502347e+01, -2.19426447e+02],\n", + " [ 1.00000000e+00, -2.87878788e+00, 8.28741965e+00,\n", + " -2.38577232e+01, 6.86813245e+01, -1.97718964e+02],\n", + " [ 1.00000000e+00, -2.81818182e+00, 7.94214876e+00,\n", + " -2.23824192e+01, 6.30777269e+01, -1.77764503e+02],\n", + " [ 1.00000000e+00, -2.75757576e+00, 7.60422406e+00,\n", + " -2.09692239e+01, 5.78242235e+01, -1.59454677e+02],\n", + " [ 1.00000000e+00, -2.69696970e+00, 7.27364555e+00,\n", + " -1.96168016e+01, 5.29059195e+01, -1.42685662e+02],\n", + " [ 1.00000000e+00, -2.63636364e+00, 6.95041322e+00,\n", + " -1.83238167e+01, 4.83082440e+01, -1.27358098e+02],\n", + " [ 1.00000000e+00, -2.57575758e+00, 6.63452709e+00,\n", + " -1.70889334e+01, 4.40169497e+01, -1.13376992e+02],\n", + " [ 1.00000000e+00, -2.51515152e+00, 6.32598714e+00,\n", + " -1.59108162e+01, 4.00181133e+01, -1.00651618e+02],\n", + " [ 1.00000000e+00, -2.45454545e+00, 6.02479339e+00,\n", + " -1.47881292e+01, 3.62981354e+01, -8.90954232e+01],\n", + " [ 1.00000000e+00, -2.39393939e+00, 5.73094582e+00,\n", + " -1.37195370e+01, 3.28437400e+01, -7.86259231e+01],\n", + " [ 1.00000000e+00, -2.33333333e+00, 5.44444444e+00,\n", + " -1.27037037e+01, 2.96419753e+01, -6.91646091e+01],\n", + " [ 1.00000000e+00, -2.27272727e+00, 5.16528926e+00,\n", + " -1.17392938e+01, 2.66802131e+01, -6.06368480e+01],\n", + " [ 1.00000000e+00, -2.21212121e+00, 4.89348026e+00,\n", + " -1.08249715e+01, 2.39461490e+01, -5.29717842e+01],\n", + " [ 1.00000000e+00, -2.15151515e+00, 4.62901745e+00,\n", + " -9.95940117e+00, 2.14278025e+01, -4.61022418e+01],\n", + " [ 1.00000000e+00, -2.09090909e+00, 4.37190083e+00,\n", + " -9.14124718e+00, 1.91135168e+01, -3.99646261e+01],\n", + " [ 1.00000000e+00, -2.03030303e+00, 4.12213039e+00,\n", + " -8.36917383e+00, 1.69919590e+01, -3.44988258e+01],\n", + " [ 1.00000000e+00, -1.96969697e+00, 3.87970615e+00,\n", + " -7.64184545e+00, 1.50521198e+01, -2.96481148e+01],\n", + " [ 1.00000000e+00, -1.90909091e+00, 3.64462810e+00,\n", + " -6.95792637e+00, 1.32833140e+01, -2.53590540e+01],\n", + " [ 1.00000000e+00, -1.84848485e+00, 3.41689624e+00,\n", + " -6.31608092e+00, 1.16751799e+01, -2.15813931e+01],\n", + " [ 1.00000000e+00, -1.78787879e+00, 3.19651056e+00,\n", + " -5.71497343e+00, 1.02176798e+01, -1.82679729e+01],\n", + " [ 1.00000000e+00, -1.72727273e+00, 2.98347107e+00,\n", + " -5.15326822e+00, 8.90109965e+00, -1.53746267e+01],\n", + " [ 1.00000000e+00, -1.66666667e+00, 2.77777778e+00,\n", + " -4.62962963e+00, 7.71604938e+00, -1.28600823e+01],\n", + " [ 1.00000000e+00, -1.60606061e+00, 2.57943067e+00,\n", + " -4.14272199e+00, 6.65346258e+00, -1.06858641e+01],\n", + " [ 1.00000000e+00, -1.54545455e+00, 2.38842975e+00,\n", + " -3.69120962e+00, 5.70459668e+00, -8.81619487e+00],\n", + " [ 1.00000000e+00, -1.48484848e+00, 2.20477502e+00,\n", + " -3.27375685e+00, 4.86103290e+00, -7.21789734e+00],\n", + " [ 1.00000000e+00, -1.42424242e+00, 2.02846648e+00,\n", + " -2.88902802e+00, 4.11467627e+00, -5.86029651e+00],\n", + " [ 1.00000000e+00, -1.36363636e+00, 1.85950413e+00,\n", + " -2.53568745e+00, 3.45775562e+00, -4.71512130e+00],\n", + " [ 1.00000000e+00, -1.30303030e+00, 1.69788797e+00,\n", + " -2.21239948e+00, 2.88282356e+00, -3.75640646e+00],\n", + " [ 1.00000000e+00, -1.24242424e+00, 1.54361800e+00,\n", + " -1.91782842e+00, 2.38275652e+00, -2.96039447e+00],\n", + " [ 1.00000000e+00, -1.18181818e+00, 1.39669421e+00,\n", + " -1.65063862e+00, 1.95075473e+00, -2.30543741e+00],\n", + " [ 1.00000000e+00, -1.12121212e+00, 1.25711662e+00,\n", + " -1.40949439e+00, 1.58034220e+00, -1.77189883e+00],\n", + " [ 1.00000000e+00, -1.06060606e+00, 1.12488522e+00,\n", + " -1.19306008e+00, 1.26536675e+00, -1.34205564e+00],\n", + " [ 1.00000000e+00, -1.00000000e+00, 1.00000000e+00,\n", + " -1.00000000e+00, 1.00000000e+00, -1.00000000e+00],\n", + " [ 1.00000000e+00, -9.39393939e-01, 8.82460973e-01,\n", + " -8.28978490e-01, 7.78737370e-01, -7.31541165e-01],\n", + " [ 1.00000000e+00, -8.78787879e-01, 7.72268136e-01,\n", + " -6.78659877e-01, 5.96398074e-01, -5.24107398e-01],\n", + " [ 1.00000000e+00, -8.18181818e-01, 6.69421488e-01,\n", + " -5.47708490e-01, 4.48125128e-01, -3.66647832e-01],\n", + " [ 1.00000000e+00, -7.57575758e-01, 5.73921028e-01,\n", + " -4.34788658e-01, 3.29385347e-01, -2.49534354e-01],\n", + " [ 1.00000000e+00, -6.96969697e-01, 4.85766758e-01,\n", + " -3.38564710e-01, 2.35969344e-01, -1.64463482e-01],\n", + " [ 1.00000000e+00, -6.36363636e-01, 4.04958678e-01,\n", + " -2.57700977e-01, 1.63991531e-01, -1.04358247e-01],\n", + " [ 1.00000000e+00, -5.75757576e-01, 3.31496786e-01,\n", + " -1.90861786e-01, 1.09890119e-01, -6.32700686e-02],\n", + " [ 1.00000000e+00, -5.15151515e-01, 2.65381084e-01,\n", + " -1.36711467e-01, 7.04271195e-02, -3.62806373e-02],\n", + " [ 1.00000000e+00, -4.54545455e-01, 2.06611570e-01,\n", + " -9.39143501e-02, 4.26883410e-02, -1.94037913e-02],\n", + " [ 1.00000000e+00, -3.93939394e-01, 1.55188246e-01,\n", + " -6.11347636e-02, 2.40833917e-02, -9.48739674e-03],\n", + " [ 1.00000000e+00, -3.33333333e-01, 1.11111111e-01,\n", + " -3.70370370e-02, 1.23456790e-02, -4.11522634e-03],\n", + " [ 1.00000000e+00, -2.72727273e-01, 7.43801653e-02,\n", + " -2.02854996e-02, 5.53240899e-03, -1.50883882e-03],\n", + " [ 1.00000000e+00, -2.12121212e-01, 4.49954086e-02,\n", + " -9.54448062e-03, 2.02458680e-03, -4.29457806e-04],\n", + " [ 1.00000000e+00, -1.51515152e-01, 2.29568411e-02,\n", + " -3.47830926e-03, 5.27016555e-04, -7.98509932e-05],\n", + " [ 1.00000000e+00, -9.09090909e-02, 8.26446281e-03,\n", + " -7.51314801e-04, 6.83013455e-05, -6.20921323e-06],\n", + " [ 1.00000000e+00, -3.03030303e-02, 9.18273646e-04,\n", + " -2.78264741e-05, 8.43226488e-07, -2.55523178e-08],\n", + " [ 1.00000000e+00, 3.03030303e-02, 9.18273646e-04,\n", + " 2.78264741e-05, 8.43226488e-07, 2.55523178e-08],\n", + " [ 1.00000000e+00, 9.09090909e-02, 8.26446281e-03,\n", + " 7.51314801e-04, 6.83013455e-05, 6.20921323e-06],\n", + " [ 1.00000000e+00, 1.51515152e-01, 2.29568411e-02,\n", + " 3.47830926e-03, 5.27016555e-04, 7.98509932e-05],\n", + " [ 1.00000000e+00, 2.12121212e-01, 4.49954086e-02,\n", + " 9.54448062e-03, 2.02458680e-03, 4.29457806e-04],\n", + " [ 1.00000000e+00, 2.72727273e-01, 7.43801653e-02,\n", + " 2.02854996e-02, 5.53240899e-03, 1.50883882e-03],\n", + " [ 1.00000000e+00, 3.33333333e-01, 1.11111111e-01,\n", + " 3.70370370e-02, 1.23456790e-02, 4.11522634e-03],\n", + " [ 1.00000000e+00, 3.93939394e-01, 1.55188246e-01,\n", + " 6.11347636e-02, 2.40833917e-02, 9.48739674e-03],\n", + " [ 1.00000000e+00, 4.54545455e-01, 2.06611570e-01,\n", + " 9.39143501e-02, 4.26883410e-02, 1.94037913e-02],\n", + " [ 1.00000000e+00, 5.15151515e-01, 2.65381084e-01,\n", + " 1.36711467e-01, 7.04271195e-02, 3.62806373e-02],\n", + " [ 1.00000000e+00, 5.75757576e-01, 3.31496786e-01,\n", + " 1.90861786e-01, 1.09890119e-01, 6.32700686e-02],\n", + " [ 1.00000000e+00, 6.36363636e-01, 4.04958678e-01,\n", + " 2.57700977e-01, 1.63991531e-01, 1.04358247e-01],\n", + " [ 1.00000000e+00, 6.96969697e-01, 4.85766758e-01,\n", + " 3.38564710e-01, 2.35969344e-01, 1.64463482e-01],\n", + " [ 1.00000000e+00, 7.57575758e-01, 5.73921028e-01,\n", + " 4.34788658e-01, 3.29385347e-01, 2.49534354e-01],\n", + " [ 1.00000000e+00, 8.18181818e-01, 6.69421488e-01,\n", + " 5.47708490e-01, 4.48125128e-01, 3.66647832e-01],\n", + " [ 1.00000000e+00, 8.78787879e-01, 7.72268136e-01,\n", + " 6.78659877e-01, 5.96398074e-01, 5.24107398e-01],\n", + " [ 1.00000000e+00, 9.39393939e-01, 8.82460973e-01,\n", + " 8.28978490e-01, 7.78737370e-01, 7.31541165e-01],\n", + " [ 1.00000000e+00, 1.00000000e+00, 1.00000000e+00,\n", + " 1.00000000e+00, 1.00000000e+00, 1.00000000e+00],\n", + " [ 1.00000000e+00, 1.06060606e+00, 1.12488522e+00,\n", + " 1.19306008e+00, 1.26536675e+00, 1.34205564e+00],\n", + " [ 1.00000000e+00, 1.12121212e+00, 1.25711662e+00,\n", + " 1.40949439e+00, 1.58034220e+00, 1.77189883e+00],\n", + " [ 1.00000000e+00, 1.18181818e+00, 1.39669421e+00,\n", + " 1.65063862e+00, 1.95075473e+00, 2.30543741e+00],\n", + " [ 1.00000000e+00, 1.24242424e+00, 1.54361800e+00,\n", + " 1.91782842e+00, 2.38275652e+00, 2.96039447e+00],\n", + " [ 1.00000000e+00, 1.30303030e+00, 1.69788797e+00,\n", + " 2.21239948e+00, 2.88282356e+00, 3.75640646e+00],\n", + " [ 1.00000000e+00, 1.36363636e+00, 1.85950413e+00,\n", + " 2.53568745e+00, 3.45775562e+00, 4.71512130e+00],\n", + " [ 1.00000000e+00, 1.42424242e+00, 2.02846648e+00,\n", + " 2.88902802e+00, 4.11467627e+00, 5.86029651e+00],\n", + " [ 1.00000000e+00, 1.48484848e+00, 2.20477502e+00,\n", + " 3.27375685e+00, 4.86103290e+00, 7.21789734e+00],\n", + " [ 1.00000000e+00, 1.54545455e+00, 2.38842975e+00,\n", + " 3.69120962e+00, 5.70459668e+00, 8.81619487e+00],\n", + " [ 1.00000000e+00, 1.60606061e+00, 2.57943067e+00,\n", + " 4.14272199e+00, 6.65346258e+00, 1.06858641e+01],\n", + " [ 1.00000000e+00, 1.66666667e+00, 2.77777778e+00,\n", + " 4.62962963e+00, 7.71604938e+00, 1.28600823e+01],\n", + " [ 1.00000000e+00, 1.72727273e+00, 2.98347107e+00,\n", + " 5.15326822e+00, 8.90109965e+00, 1.53746267e+01],\n", + " [ 1.00000000e+00, 1.78787879e+00, 3.19651056e+00,\n", + " 5.71497343e+00, 1.02176798e+01, 1.82679729e+01],\n", + " [ 1.00000000e+00, 1.84848485e+00, 3.41689624e+00,\n", + " 6.31608092e+00, 1.16751799e+01, 2.15813931e+01],\n", + " [ 1.00000000e+00, 1.90909091e+00, 3.64462810e+00,\n", + " 6.95792637e+00, 1.32833140e+01, 2.53590540e+01],\n", + " [ 1.00000000e+00, 1.96969697e+00, 3.87970615e+00,\n", + " 7.64184545e+00, 1.50521198e+01, 2.96481148e+01],\n", + " [ 1.00000000e+00, 2.03030303e+00, 4.12213039e+00,\n", + " 8.36917383e+00, 1.69919590e+01, 3.44988258e+01],\n", + " [ 1.00000000e+00, 2.09090909e+00, 4.37190083e+00,\n", + " 9.14124718e+00, 1.91135168e+01, 3.99646261e+01],\n", + " [ 1.00000000e+00, 2.15151515e+00, 4.62901745e+00,\n", + " 9.95940117e+00, 2.14278025e+01, 4.61022418e+01],\n", + " [ 1.00000000e+00, 2.21212121e+00, 4.89348026e+00,\n", + " 1.08249715e+01, 2.39461490e+01, 5.29717842e+01],\n", + " [ 1.00000000e+00, 2.27272727e+00, 5.16528926e+00,\n", + " 1.17392938e+01, 2.66802131e+01, 6.06368480e+01],\n", + " [ 1.00000000e+00, 2.33333333e+00, 5.44444444e+00,\n", + " 1.27037037e+01, 2.96419753e+01, 6.91646091e+01],\n", + " [ 1.00000000e+00, 2.39393939e+00, 5.73094582e+00,\n", + " 1.37195370e+01, 3.28437400e+01, 7.86259231e+01],\n", + " [ 1.00000000e+00, 2.45454545e+00, 6.02479339e+00,\n", + " 1.47881292e+01, 3.62981354e+01, 8.90954232e+01],\n", + " [ 1.00000000e+00, 2.51515152e+00, 6.32598714e+00,\n", + " 1.59108162e+01, 4.00181133e+01, 1.00651618e+02],\n", + " [ 1.00000000e+00, 2.57575758e+00, 6.63452709e+00,\n", + " 1.70889334e+01, 4.40169497e+01, 1.13376992e+02],\n", + " [ 1.00000000e+00, 2.63636364e+00, 6.95041322e+00,\n", + " 1.83238167e+01, 4.83082440e+01, 1.27358098e+02],\n", + " [ 1.00000000e+00, 2.69696970e+00, 7.27364555e+00,\n", + " 1.96168016e+01, 5.29059195e+01, 1.42685662e+02],\n", + " [ 1.00000000e+00, 2.75757576e+00, 7.60422406e+00,\n", + " 2.09692239e+01, 5.78242235e+01, 1.59454677e+02],\n", + " [ 1.00000000e+00, 2.81818182e+00, 7.94214876e+00,\n", + " 2.23824192e+01, 6.30777269e+01, 1.77764503e+02],\n", + " [ 1.00000000e+00, 2.87878788e+00, 8.28741965e+00,\n", + " 2.38577232e+01, 6.86813245e+01, 1.97718964e+02],\n", + " [ 1.00000000e+00, 2.93939394e+00, 8.64003673e+00,\n", + " 2.53964716e+01, 7.46502347e+01, 2.19426447e+02],\n", + " [ 1.00000000e+00, 3.00000000e+00, 9.00000000e+00,\n", + " 2.70000000e+01, 8.10000000e+01, 2.43000000e+02]])" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "def polynomial_features(x, p):\n", " n = len(x)\n", - " X = np.zeros((n, p + 1))\n", - " #X[:, 0] = ...\n", - " #X[:, 1] = ...\n", - " #X[:, 2] = ...\n", - " # could this be a loop?\n", + " X = np.power(x[:, np.newaxis], np.arange(p + 1))\n", + " return X\n", "\n", - "#X = polynomial_features(x, 5)" + "X = polynomial_features(x, 5)\n", + "display(X)" ] }, { @@ -365,9 +718,21 @@ "execution_count": 7, "id": "034f502c", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0.92452576, 0.27464654, -0.02326439, 0.05342623, -0.0034652 ,\n", + " -0.0087781 ])" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "#beta = OLS_parameters(X, y)" + "beta = OLS_parameters(X, y)\n", + "display(beta)" ] }, { @@ -387,7 +752,7 @@ "source": [ "from sklearn.model_selection import train_test_split\n", "\n", - "#X_train, X_test, y_train, y_test = ..." + "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)" ] }, { @@ -405,18 +770,28 @@ "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "Ellipsis" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "Training MSE: 0.0133\n", + "Testing MSE: 0.0162\n" + ] } ], "source": [ - "..." + "beta = OLS_parameters(polynomial_features(x_train, 5), y_train)\n", + "\n", + "from sklearn.metrics import mean_squared_error\n", + "\n", + "def evaluate_model(beta, X, y):\n", + " y_pred = X @ beta\n", + " mse = mean_squared_error(y, y_pred)\n", + " return mse\n", + "\n", + "mse_train = evaluate_model(beta, polynomial_features(x_train, 5), y_train)\n", + "mse_test = evaluate_model(beta, polynomial_features(x_test, 5), y_test)\n", + "print(f\"Training MSE: {mse_train:.4f}\")\n", + "print(f\"Testing MSE: {mse_test:.4f}\")\n" ] }, { @@ -435,17 +810,242 @@ "outputs": [ { "data": { + "application/vnd.microsoft.datawrangler.viewer.v0+json": { + "columns": [ + { + "name": "index", + "rawType": "int64", + "type": "integer" + }, + { + "name": "degree", + "rawType": "int64", + "type": "integer" + }, + { + "name": "mse_train", + "rawType": "float64", + "type": "float" + }, + { + "name": "mse_test", + "rawType": "float64", + "type": "float" + } + ], + "ref": "66cfaf7d-1e2b-4459-a642-f9fc0decfff7", + "rows": [ + [ + "0", + "2", + "0.05164086416666284", + "0.016256195807635355" + ], + [ + "1", + "3", + "0.02206575873360362", + "0.0203940940253871" + ], + [ + "2", + "4", + "0.020904375395772917", + "0.023035341621416943" + ], + [ + "3", + "5", + "0.013347385151109586", + "0.01615480202876137" + ], + [ + "4", + "6", + "0.00955995213624267", + "0.008151629748962193" + ], + [ + "5", + "7", + "0.00574771913202137", + "0.006163149518752208" + ], + [ + "6", + "8", + "0.0010834910069786221", + "0.0008846272939455341" + ], + [ + "7", + "9", + "0.000958469368562645", + "0.001134083627637028" + ], + [ + "8", + "10", + "7.94173975842872e-05", + "9.913320977908047e-05" + ] + ], + "shape": { + "columns": 3, + "rows": 9 + } + }, + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
degreemse_trainmse_test
020.0516410.016256
130.0220660.020394
240.0209040.023035
350.0133470.016155
460.0095600.008152
570.0057480.006163
680.0010830.000885
790.0009580.001134
8100.0000790.000099
\n", + "
" + ], "text/plain": [ - "Ellipsis" + " degree mse_train mse_test\n", + "0 2 0.051641 0.016256\n", + "1 3 0.022066 0.020394\n", + "2 4 0.020904 0.023035\n", + "3 5 0.013347 0.016155\n", + "4 6 0.009560 0.008152\n", + "5 7 0.005748 0.006163\n", + "6 8 0.001083 0.000885\n", + "7 9 0.000958 0.001134\n", + "8 10 0.000079 0.000099" ] }, - "execution_count": 10, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ - "..." + "import pandas as pd\n", + "\n", + "results = []\n", + "\n", + "for degree in range(2, 11):\n", + " beta = OLS_parameters(polynomial_features(x_train, degree), y_train)\n", + " mse_train = evaluate_model(beta, polynomial_features(x_train, degree), y_train)\n", + " mse_test = evaluate_model(beta, polynomial_features(x_test, degree), y_test)\n", + " results.append({\"degree\": degree, \"mse_train\": mse_train, \"mse_test\": mse_test})\n", + "\n", + "df_results = pd.DataFrame(results)\n", + "display(df_results)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "c3d81800", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAGwCAYAAABB4NqyAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjUsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvWftoOwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAgwVJREFUeJzt3XdcleX/x/HXOey9pyKIorhyD9wDw5mj0sxyoPbLTC3TUr/lyNKytKVlmbssNc3KzHLnIBdqLsCNA0QcICDz3L8/Dpw8gcaBA4fxeT4e5yHnPte5z/sAej5e9zVUiqIoCCGEEEJUImpTBxBCCCGEKG1SAAkhhBCi0pECSAghhBCVjhRAQgghhKh0pAASQgghRKUjBZAQQgghKh0pgIQQQghR6ZibOkBZpNFouH79Og4ODqhUKlPHEUIIIUQhKIrCvXv38PX1Ra1+dB+PFEAFuH79On5+fqaOIYQQQogiuHLlClWrVn1kGymACuDg4AC530BHR0dTxxFCCCFEISQnJ+Pn56f7HH8UKYAKkHfZy9HRUQogIYQQopwpzPAVGQQthBBCiEpHCiAhhBBCVDpSAAkhhBCi0pExQEIIIcqUnJwcsrKyTB1DlEEWFhaYmZkZ5VxSAAkhhCgTFEUhPj6eu3fvmjqKKMOcnZ3x9vYu9jp9UgAJIYQoE/KKH09PT2xtbWUhWqFHURTS0tJISEgAwMfHp1jnkwJICCGEyeXk5OiKHzc3N1PHEWWUjY0NAAkJCXh6ehbrcpgMghZCCGFyeWN+bG1tTR1FlHF5vyPFHScmBZAQQogyQy57if9irN8RKYCEEEIIUelIASSEEEKISkcKICGEEKKMCQgI4OOPPy50+127dqFSqWQJAQNIAVTKLiamcv3ufVPHEEIIYQQqleqRtxkzZhTpvIcOHeKFF14odPvWrVsTFxeHk5NTkV6vsPIKLRcXF9LT0/UeO3TokO59P2jx4sU0bNgQe3t7nJ2dady4MXPmzNE9PmPGjAK/d8HBwSX6XmQafCmatek0S/Ze5P86BDKlex1TxxFCCFFMcXFxuq/XrFnDtGnTiI6O1h2zt7fXfa0oCjk5OZib//dHr4eHh0E5LC0t8fb2Nug5xeHg4MCPP/7IoEGDdMeWLFlCtWrViI2N1R1bunQpr7zyCp9++ikdOnQgIyODv//+m5MnT+qdr169emzbtk3vWGG+T8UhPUCl6LGq2sp8Z1SCqaMIIUSZpygKaZnZJrkpilKojN7e3rqbk5MTKpVKdz8qKgoHBwd+++03mjZtipWVFXv37uX8+fP06dMHLy8v7O3tad68eb4P/39fAlOpVHz99df069cPW1tbgoKC+Pnnn3WP//sS2PLly3F2dub333+nTp062Nvb061bN72CLTs7m3HjxuHs7IybmxtvvPEGQ4cOpW/fvv/5vocOHcrSpUt19+/fv8/333/P0KFD9dr9/PPPDBgwgBEjRlCzZk3q1avHoEGDePfdd/XamZub630vvb29cXd3L9TPoKikB6gUdajlgVoFMTdSuHonjaoust6FEEI8zP2sHOpO+90kr3367TBsLY3zETl58mQ+/PBDAgMDcXFx4cqVK/To0YN3330XKysrVq5cSe/evYmOjqZatWoPPc/MmTOZO3cuH3zwAZ999hmDBw/m8uXLuLq6Ftg+LS2NDz/8kFWrVqFWq3nuueeYOHEi3377LQDvv/8+3377LcuWLaNOnTp88sknbNy4kU6dOv3ne3r++ef54IMPiI2NpVq1aqxfv56AgACaNGmi187b25vdu3dz+fJl/P39Df7elSTpASpFzraWNPV3AekFEkKISuPtt9+ma9eu1KhRA1dXVxo2bMj//d//Ub9+fYKCgpg1axY1atTQ69EpyLBhwxg0aBA1a9Zk9uzZpKSkcPDgwYe2z8rKYtGiRTRr1owmTZrw8ssvs337dt3jn332GVOmTKFfv34EBwezYMECnJ2dC/WePD096d69O8uXL4fcS13h4eH52k2fPh1nZ2cCAgKoXbs2w4YNY+3atWg0Gr12J06cwN7eXu/24osvFipLUUkPUCnrFOzJoUt32BGVwPMhAaaOI4QQZZaNhRmn3w4z2WsbS7NmzfTup6SkMGPGDH799Vfi4uLIzs7m/v37emNnCvLYY4/pvrazs8PR0VG3L1ZBbG1tqVGjhu6+j4+Prn1SUhI3btygRYsWusfNzMxo2rRpvuLkYcLDwxk/fjzPPfccERERrFu3jj179ui18fHxISIigpMnT/Lnn3+yf/9+hg4dytdff82WLVtQq7X9MLVr185XADo6OhYqR1FJAVTKOgd7MndLNPvP3yI9KwdrI/4lE0KIikSlUhntMpQp2dnZ6d2fOHEiW7du5cMPP6RmzZrY2Njw1FNPkZmZ+cjzWFhY6N1XqVSPLFYKal/YsU2F0b17d1544QVGjBhB7969H7mHW/369alfvz4vvfQSL774Iu3atWP37t26y22WlpbUrFnTaNkKQy6BlbLaXg74OlmTka0h4vwtU8cRQghRyvbt28ewYcPo168fDRo0wNvbm0uXLpVqBicnJ7y8vDh06JDuWE5ODpGRkYU+h7m5OUOGDGHXrl0FXv56mLp16wKQmppqYGrjKv+ldTmjUqnoGOzJ6gOx7IhKoFOwp6kjCSGEKEVBQUFs2LCB3r17o1KpeOuttwp92cmYxo4dy5w5c6hZsybBwcF89tln3Llzx6C9tmbNmsWkSZMe2vszevRofH196dy5M1WrViUuLo533nkHDw8PQkJCdO2ys7OJj4/Xe65KpcLLy6sY7/DRykQP0MKFCwkICMDa2pqWLVs+clAXwLp16wgODsba2poGDRqwefNmvceHDRuWb0Glbt26lfC7KLzOtbVFz46oBKN2RwohhCj75s+fj4uLC61bt6Z3796EhYXlmz1VGt544w0GDRrEkCFDCAkJwd7enrCwMKytrQt9DktLS9zd3R9aNIWGhvLXX3/x9NNPU6tWLZ588kmsra3Zvn27XtF06tQpfHx89G4lPWtMpZj4E3jNmjUMGTKERYsW0bJlSz7++GPWrVtHdHQ0np75e0f2799P+/btmTNnDr169WL16tW8//77REZGUr9+fcgtgG7cuMGyZct0z7OyssLFxaVQmZKTk3FyciIpKalEBmGlZWbT6O2tZGZr+OPV9tTycjD6awghRHmSnp7OxYsXqV69ukEfwMJ4NBoNderUYcCAAcyaNcvUcR7qUb8rhnx+m7wHaP78+YwaNYrhw4dTt25dFi1ahK2trd4CSw/65JNP6NatG5MmTaJOnTrMmjWLJk2asGDBAr12VlZWegsqFbb4KQ22luaEBGor3x0yHV4IIYQJXL58mcWLFxMTE8OJEycYPXo0Fy9e5NlnnzV1tFJh0gIoMzOTI0eOEBoa+k8gtZrQ0FAiIiIKfE5ERIRee4CwsLB87Xft2oWnpye1a9dm9OjR3Lr18AHHGRkZJCcn691KWufgfy6DCSGEEKVNrVazfPlymjdvTps2bThx4gTbtm2jTp3KsVWTSQdBJyYmkpOTk2+Qk5eXF1FRUQU+Jz4+vsD2Dw6e6tatG/3796d69eqcP3+eqVOn0r17dyIiIjAzyz/tfM6cOcycOdNo76swOgd7Mv3nUxy5fIektCycbC0K8SwhhBDCOPz8/Ni3b5+pY5iMyS+BlYRnnnmGJ554ggYNGtC3b182bdrEoUOH2LVrV4Htp0yZQlJSku525cqVEs/o52pLTU97cjQKe87dLPHXE0IIIcQ/TFoAubu7Y2Zmxo0bN/SO37hx46G72np7exvUHiAwMBB3d3fOnTtX4ONWVlY4Ojrq3UqDXAYTQgghTMOkBZClpSVNmzbV25tEo9Gwfft2vfUBHhQSEqLXHmDr1q0PbQ9w9epVbt26hY+PjxHTF1/H2h4A7I6+iUYj0+GFEEKI0mLyS2ATJkxg8eLFrFixgjNnzjB69GhSU1MZPnw4AEOGDGHKlCm69uPHj2fLli3MmzePqKgoZsyYweHDh3n55Zchd4+VSZMm8ddff3Hp0iW2b99Onz59qFmzJmFhptlT5mGaB7jiYGXOrdRMjl+9a+o4QgghRKVh8pWgBw4cyM2bN5k2bRrx8fE0atSILVu26AY6x8bG6jZLA2jdujWrV6/mzTffZOrUqQQFBbFx40bdGkBmZmb8/fffrFixgrt37+Lr68vjjz/OrFmzsLKyMtn7LIiFmZp2tdzZfCKenVEJNK5WdqbqCyGEEBWZyRdCLItKeiHEB607fIVJP/xN/SqObBrbrkRfSwghyipZCLFwZsyYwcaNGzl27Jipo5hMhVkIsbLrmLstxslrySQkp5s6jhBCCAP8e9ulf99mzJhRrHNv3LhR79jEiRPzjYMtCTNmzHjoNlIffPCBdl/Ljh11x9LS0pgyZQo1atTA2toaDw8POnTowE8//aRr07FjxwK/Ry+++GKJv5+CmPwSWGXn4WBFw6pOHL+axK7omwxo7mfqSEIIIQopLi5O9/WaNWuYNm0a0dHRumP29vZGfT17e3ujn/NhfHx82LlzJ1evXqVq1aq640uXLqVatWp6bV988UUOHDjAZ599Rt26dbl16xb79+/PtwjxqFGjePvtt/WO2dralvA7KZj0AJUBnWQ6vBBClEsPbrnk5OSESqXSO/b9999Tp04drK2tCQ4O5vPPP9c9NzMzk5dffhkfHx+sra3x9/dnzpw5AAQEBADQr18/VCqV7v6MGTNo1KiR7hzDhg2jb9++fPjhh/j4+ODm5saYMWPIysrStYmLi6Nnz57Y2NhQvXp1Vq9eTUBAAB9//PEj35unpyePP/44K1as0B3bv38/iYmJ9OzZU6/tzz//zNSpU+nRowcBAQE0bdqUsWPHEh4ertfO1tZW7/vj7e1dakvP/Jv0AJUBnYM9+XjbWfaeSyQzW4OludSlQgiBokBWmmle28IWHrLDeWF9++23TJs2jQULFtC4cWOOHj3KqFGjsLOzY+jQoXz66af8/PPPrF27lmrVqnHlyhXdQryHDh3C09OTZcuW0a1btwJ3Mcizc+dOXW/NuXPnGDhwII0aNWLUqFGQO5s6MTGRXbt2YWFhwYQJE0hIKNx/uMPDw3n99df53//+B7m9P4MHD87Xztvbm82bN9O/f38cHMrHBt9SAJUB9X2dcLe3IjElg0OXbtOmprupIwkhhOllpcFsX9O89tTrYGlXrFNMnz6defPm0b9/fwCqV6/O6dOn+fLLLxk6dCixsbEEBQXRtm1bVCoV/v7+uud6eGjXiXN2dn7kQr8ALi4uLFiwADMzM4KDg+nZsyfbt29n1KhRREVFsW3bNg4dOkSzZs0A+PrrrwkKCirUe+jVqxcvvvgif/75J02bNmXt2rXs3bs334blX331FYMHD8bNzY2GDRvStm1bnnrqKdq0aaPX7vPPP+frr7/WO/bll18WWFSVNOlqKAPUapVuUUS5DCaEEOVfamoq58+fZ8SIEbpxO/b29rzzzjucP38eci9fHTt2jNq1azNu3Dj++OOPIr1WvXr19HqIfHx8dD080dHRmJub06RJE93jNWvWxMWlcMuuWFhY8Nxzz7Fs2TLWrVtHrVq1eOyxx/K1a9++PRcuXGD79u089dRTnDp1inbt2jFr1iy9doMHD+bYsWN6tyeeeKJI77u4pAeojOgc7MkPR66yMyqBt3rVNXUcIYQwPQtbbU+MqV67GFJSUgBYvHgxLVu21Hssr1hp0qQJFy9e5LfffmPbtm0MGDCA0NBQfvjhB8OiWuhvpq1SqdBoNMXK/6Dw8HBatmzJyZMn843p+XeOdu3a0a5dO9544w3eeecd3n77bd544w0sLS0BcHJyombNmkbLVhxSAJURbYPcMVeruJCYyqXEVALci9f1KoQQ5Z5KVezLUKbi5eWFr68vFy5ceOTlHUdHRwYOHMjAgQN56qmn6NatG7dv38bV1RULCwtycnKKlaN27dpkZ2dz9OhRmjZtCsC5c+e4c+dOoc9Rr1496tWrx99//82zzz5b6OfVrVuX7Oxs0tPTdQVQWSIFUBnhaG1B8wBXIi7cYkdUAuFtq5s6khBCiGKYOXMm48aNw8nJiW7dupGRkcHhw4e5c+cOEyZMYP78+fj4+NC4cWPUajXr1q3D29sbZ2dnyJ0Jtn37dtq0aYOVlVWhL1s9KDg4mNDQUF544QW++OILLCwseO2117CxsUFlwCDvHTt2kJWVpcv2bx07dmTQoEE0a9YMNzc3Tp8+zdSpU+nUqZPeLK+0tDTi4+P1nlvU91ZcMgaoDMnbHX5ntIwDEkKI8m7kyJF8/fXXLFu2jAYNGtChQweWL19O9era/+A6ODgwd+5cmjVrRvPmzbl06RKbN2/Wbf80b948tm7dip+fH40bNy5yjpUrV+Ll5UX79u3p168fo0aNwsHBwaAVt+3s7B5a/ACEhYWxYsUKHn/8cerUqcPYsWMJCwtj7dq1eu0WL16Mj4+P3m3QoEFFfm/FIVthFKA0t8J40LmEFELn78bSTM3RaV2xs5IOOiFE5SBbYZSeq1ev4ufnx7Zt2+jSpYup4xhMtsKogGp42OHnakNmjoZ95xJNHUcIIUQFsGPHDn7++WcuXrzI/v37eeaZZwgICKB9+/amjmZSUgCVISqVis615TKYEEII48nKymLq1KnUq1ePfv364eHhoVsUsTKTayxlTKdgT1ZEXGZn1E0URTFokJoQQgjxb2FhYYSFhZk6RpkjPUBlTKtAN2wszIhPTud0XLKp4wghhBAVkhRAZYy1hRltaroBsFNWhRZCVDIyL0f8F2P9jkgBVAZ10k2Hv2nqKEIIUSryxqOkpZlo81NRbuT9jhR3DJOMASqDOuUOhD4ae4c7qZm42JW9FTSFEMKYzMzMcHZ21u1hZWtrK2MghR5FUUhLSyMhIQFnZ2e9/c+KQgqgMsjX2YZgbwei4u+xO+YmfRtXMXUkIYQocXm7nucVQUIUxNnZWfe7UhxSAJVRnYI9iYq/x46oBCmAhBCVgkqlwsfHB09PT7KyskwdR5RBFhYWxe75ySMFUBnVOdiTL3adZ3fMTbJzNJibyXAtIUTlYGZmZrQPOSEeRj5Vy6jGfs442ViQdD+Lo1fumjqOEEIIUaFIAVRGmZup6VDLA4AdMh1eCCGEMCqDC6AVK1bw66+/6u6//vrrODs707p1ay5fvmzsfJWabnd4KYCEEEIIozK4AJo9ezY2NjYAREREsHDhQubOnYu7uzuvvvpqSWSstDrU8kCtgqj4e1y/e9/UcYQQQogKw+AC6MqVK9SsWROAjRs38uSTT/LCCy8wZ84c9uzZUxIZKy0XO0saV3MB2RxVCCGEMCqDCyB7e3tu3boFwB9//EHXrl0BsLa25v596aUwtk61teOA5DKYEEIIYTwGF0Bdu3Zl5MiRjBw5kpiYGHr06AHAqVOnCAgIKImMlVrethj7zt0iPSvH1HGEEEKICsHgAmjhwoWEhIRw8+ZN1q9fj5ubduPOI0eOMGjQoJLIWKnV9XHE29Ga+1k5/HXhlqnjCCGEEBWCSpGtd/NJTk7GycmJpKQkHB0dTR2HKRv+5ruDVxga4s/MPvVNHUcIIYQokwz5/C7SOkB79uzhueeeo3Xr1ly7dg2AVatWsXfv3qIlFo+UtznqjugEpF4VQgghis/gAmj9+vWEhYVhY2NDZGQkGRkZACQlJTF79uySyFjptanpjqWZmiu373P+Zqqp4wghhBDlnsEF0DvvvMOiRYtYvHgxFhYWuuNt2rQhMjLS2PkEYGdlTstAV5DZYEIIIYRRGFwARUdH0759+3zHnZycuHtX9qwqKXmrQsu2GEIIIUTxGVwAeXt7c+7cuXzH9+7dS2BgoLFyiX/JGwd06NJtktOzTB1HCCGEKNcMLoBGjRrF+PHjOXDgACqViuvXr/Ptt98yceJERo8eXTIpBQHudgS625GtUdh7NtHUcYQQQohyzdzQJ0yePBmNRkOXLl1IS0ujffv2WFlZMXHiRMaOHVsyKQXkLop4Ye9FdkQl0KOBj6njCCGEEOVWkdcByszM5Ny5c6SkpFC3bl3s7e2Nn85Eyto6QHn2nUtk8NcHcLe35ODUUNRqlakjCSGEEGWGIZ/fBvcA5bG0tKRu3bpFfbooguYBrthbmZOYksmJa0k09HM2dSQhhBCiXDK4AOrUqRMq1cN7Hnbs2FHcTOIhLM3VtK3pzpZT8eyMTpACSAghhCgigwdBN2rUiIYNG+pudevWJTMzk8jISBo0aFAyKYVO3nR4WQ9ICCGEKDqDe4A++uijAo/PmDGDlJQUY2QSj9CxtgcAx68mcfNeBh4OVqaOJIQQQpQ7RdoLrCDPPfccS5cuNdbpxEN4OlpTv4p2YNeuaOkFEkIIIYrCaAVQREQE1tbWxjqdeITOuYsi7pQCSAghhCgSgy+B9e/fX+++oijExcVx+PBh3nrrLWNmEw/RKdiTT3ecY09MIlk5GizMjFbHCiGEEJWCwQWQk5OT3n21Wk3t2rV5++23efzxx42ZTTxEw6rOuNlZcis1k0OXbtO6hrupIwkhhBDlisEF0LJly0omiSg0tVpFh9oebIi8xq7om1IACSGEEAaSayfllOwOL4QQQhRdoXqAXFxcHrn44YNu375d3EyiENoFeWCmVnEuIYUrt9Pwc7U1dSQhhBCi3ChUAfTxxx+XfBJhECcbC5r6u3Dw4m12RCUwtHWAqSMJIYQQ5UahCqChQ4eWfBJhsM7BnlIACSGEEEVQrDFA6enpJCcn691E6ckbBxRx4RZpmdmmjiOEEEKUGwYXQKmpqbz88st4enpiZ2eHi4uL3k2UniBPe6o425CZrWH/uVumjiOEEEKUGwYXQK+//jo7duzgiy++wMrKiq+//pqZM2fi6+vLypUrSyalKJBKpfpnNpisCi2EEEIUmsEF0C+//MLnn3/Ok08+ibm5Oe3atePNN99k9uzZfPvtt0UKsXDhQgICArC2tqZly5YcPHjwke3XrVtHcHAw1tbWNGjQgM2bNz+07YsvvohKpaqwA7nzCqBdUQkoimLqOEIIIUS5YHABdPv2bQIDAwFwdHTUTXtv27Ytf/75p8EB1qxZw4QJE5g+fTqRkZE0bNiQsLAwEhIK7tHYv38/gwYNYsSIERw9epS+ffvSt29fTp48ma/tjz/+yF9//YWvr6/BucqLkBpuWFuouZ6UTvSNe6aOI4QQQpQLBhdAgYGBXLx4EYDg4GDWrl0LuT1Dzs7OBgeYP38+o0aNYvjw4dStW5dFixZha2v70J3lP/nkE7p168akSZOoU6cOs2bNokmTJixYsECv3bVr1xg7dizffvstFhYWBucqL6wtzHQrQcuiiEIIIUThGFwADR8+nOPHjwMwefJkFi5ciLW1Na+++iqTJk0y6FyZmZkcOXKE0NDQfwKp1YSGhhIREVHgcyIiIvTaA4SFhem112g0PP/880yaNIl69er9Z46MjIxyPZutU20PAHZKASSEEEIUSqH3Aps4cSIjR47k1Vdf1R0LDQ0lKiqKI0eOULNmTR577DGDXjwxMZGcnBy8vLz0jnt5eREVFVXgc+Lj4wtsHx8fr7v//vvvY25uzrhx4wqVY86cOcycOdOg7GVJp2BP+OkURy7f4W5aJs62lqaOJIQQQpRphe4B+umnn6hXrx6tW7dm6dKlpKamAuDv70///v0NLn5KypEjR/jkk09Yvnx5obfvmDJlCklJSbrblStXSjynMVV1saWWlz0aBXbH3DR1HCGEEKLMK3QBdPbsWXbu3EmtWrUYP3483t7ehIeHs3///iK/uLu7O2ZmZty4cUPv+I0bN/D29i7wOd7e3o9sv2fPHhISEqhWrRrm5uaYm5tz+fJlXnvtNQICCl4t2crKCkdHR71bedMpdzaYXAYTQggh/ptBY4Dat2/P8uXLiY+P55NPPuHs2bO0bduWOnXq8OGHH+YrTP6LpaUlTZs2Zfv27bpjGo2G7du3ExISUuBzQkJC9NoDbN26Vdf++eef5++//+bYsWO6m6+vL5MmTeL33383KF950rm2tgDaHXOTHI1MhxdCCCEepUhbYdjZ2REeHs6ePXuIiYmhf//+zJkzh2rVqhl8rgkTJrB48WJWrFjBmTNnGD16NKmpqQwfPhyAIUOGMGXKFF378ePHs2XLFubNm0dUVBQzZszg8OHDvPzyywC4ublRv359vZuFhQXe3t7Url27KG+3XGjq74KjtTl30rI4duWuqeMIIYQQZVqhB0EXJDU1lT179rB7927u3LlTpAJj4MCB3Lx5k2nTphEfH0+jRo3YsmWLbqBzbGwsavU/dVrr1q1ZvXo1b775JlOnTiUoKIiNGzdSv3794ryVcs/cTE37Wh5s+juOnVEJNPWXbUmEEEKIh1EpRVg+eO/evSxdupQffvgBRVF4+umnGTFiBG3atCmZlKUsOTkZJycnkpKSytV4oPVHrvLauuPU9XFk8/h2po4jhBBClCpDPr8L3QMUFxfHihUrWL58OTExMbRq1Yr58+fzzDPPYG9vb4zcopg61vZApYLTccnEJ6Xj7WRt6khCCCFEmVToAsjPzw83Nzeef/55RowYQZ06dUo2mTCYm70VDas6c+zKXXZGJzCoheFjsoQQQojKoNAF0Nq1a3niiScwNy/WsCFRwjoHe3Lsyl12REkBJIQQQjxMoWeB9e/fX4qfciBvd/h95xLJyM4xdRwhhBCiTCrSNHhRdtXzdcTTwYq0zBwOXrxt6jhCCCFEmSQFUAWjUqnolLsoouwOL4QQQhRMCqAKSLbFEEIIIR6tyAXQuXPn+P3337l//z4ARVhOSJSQtkHuWJipuHQrjQs3U0wdRwghhChzDC6Abt26RWhoKLVq1aJHjx7ExcUBMGLECF577bWSyCgMZG9lTovqriCXwYQQQogCGVwAvfrqq5ibmxMbG4utra3u+MCBA9myZYux84kiyhsHtDNaCiAhhBDi3wwugP744w/ef/99qlatqnc8KCiIy5cvGzObKIa86fAHL94mJSPb1HGEEEKIMsXgAig1NVWv5yfP7du3sbKyMlYuUUyBHvYEuNmSlaOw92yiqeMIIYQQZYrBBVC7du1YuXKl7r5KpUKj0TB37lw6depk7HyiGGQ2mBBCCFEwg5d2njt3Ll26dOHw4cNkZmby+uuvc+rUKW7fvs2+fftKJqUoks7Bnizbd4md0QkoioJKpTJ1JCGEEKJMMLgHqH79+sTExNC2bVv69OlDamoq/fv35+jRo9SoUaNkUooiaVHdFVtLMxLuZXDqerKp4wghhBBlRpE293JycuJ///uf8dMIo7IyN6NNTXe2nr7BjqgE6ldxMnUkIYQQokwwuAD6888/H/l4+/bti5NHGFnnYE9dATSuS5Cp4wghhBBlgsEFUMeOHfMde3BsSU6O7EBeluStB3T86l1upWTgZi8z9YQQQgiDxwDduXNH75aQkMCWLVto3rw5f/zxR8mkFEXm7WRNXR9HFAV2x9w0dRwhhBCiTDC4B8jJKf84kq5du2JpacmECRM4cuSIsbIJI+kc7MnpuGR2RCXQv0nVQjxDCCGEqNiMthu8l5cX0dHRxjqdMKK89YD+jLlJdo7G1HGEEEIIkzO4B+jvv//Wu68oCnFxcbz33ns0atTImNmEkTTyc8bF1oI7aVkcuXyHloFupo4khBBCmJTBBVCjRo1QqVQoiqJ3vFWrVixdutSY2YSRmKlVdKjlwcZj19kRnSAFkBBCiErP4ALo4sWLevfVajUeHh5YW1sbM5cwsk7Bnmw8dp2dUQlM6V7H1HGEEEIIkzJoDFBWVhbh4eFkZmbi7++Pv78/fn5+UvyUAx1qeaBWQcyNFK7eSTN1HCGEEMKkDCqALCws8o0BEuWDs60lTf1dQDZHFUIIIQyfBfbcc8+xZMmSkkkjSpRud/hoWQ9ICCFE5WbwGKDs7GyWLl3Ktm3baNq0KXZ2dnqPz58/35j5hBF1DvZk7pZo9p9PJD0rB2sLM1NHEkIIIUyi0AWQmZkZcXFxnDx5kiZNmgAQExOj1+bBLTFE2VPbywFfJ2uuJ6UTcf6WrkdICCGEqGwKXQDlTXvfuXNnSeYRJUilUtEp2JNvD8SyIypBCiAhhBCVltFWghblQ97mqDuiEvKt5SSEEEJUFgaNAfr666+xt7d/ZJtx48YVN5MoQa1rumFpruba3fucTUihlpeDqSMJIYQQpc6gAmjRokWYmT184KxKpZICqIyztTQnJNCN3TE32RGVIAWQEEKISsmgAujw4cN4esq4kfKuc7Anu2NusjMqgRc71DB1HCGEEKLUFXoMkMzwqjg65w5+Pnz5Dkn3s0wdRwghhCh1hS6AZMBsxeHnaktNT3tyNAp7zsqiiEIIISqfQhdA06dP/88B0KL8yOsF2iHbYgghhKiEDCqAbG1tSzaNKDUda3sAsDv6JhqN9O4JIYSoXGQdoEqqeYArDlbm3ErN5PjVu6aOI4QQQpQqKYAqKQszNe1quYPsDi+EEKISkgKoEtOtCh0tBZAQQojKRQqgSqxjbgF08loyCcnppo4jhBBClBqjFUBTp04lPDzcWKcTpcDDwYqGVZ0A2BUt0+GFEEJUHkYrgK5evcrFixeNdTpRSjrJdHghhBCVkNEKoJUrV7Jz505jnU6Ukrz1gPaeSyQzW2PqOEIIIUSpMLgAWrlyJRkZGfmOZ2ZmsnLlSmPlEqWkvq8T7vZWpGRkc+jSbVPHEUIIIUqFwQXQ8OHDSUpKynf83r17DB8+3Fi5RClRq1W6RRHlMpgQQojKwuACSFGUAjdGvXr1Kk5OTsbKJUpR3mUwWQ9ICCFEZWFe2IaNGzdGpVKhUqno0qUL5ub/PDUnJ4eLFy/SrVu3ksopSlDbIHfM1SouJKZyKTGVAHc7U0cSQgghSlShC6C+ffsCcOzYMcLCwvQ2RrW0tCQgIIAnn3yyZFKKEuVobUHzAFciLtxiZ3QCw92rmzqSEEIIUaIKXQBNnz4dgICAAAYOHIi1tXVJ5hKlrHOwJxEXbrEjKoHhbaQAEkIIUbEZPAZo6NChUvxUQHnrAR24cJvUjGxTxxFCCCFKlNHWARo6dCidO3c21ulEKavhYUc1V1syczTsO5do6jhCCCFEiTKoAFIUhdjYWNLT8+8bVaVKFfz9/Y2ZTZQilUpFp9zp8Dtlc1QhhBAVnMEFUM2aNbly5Uq+x2bPns2yZcuKFGLhwoUEBARgbW1Ny5YtOXjw4CPbr1u3juDgYKytrWnQoAGbN2/We3zGjBkEBwdjZ2eHi4sLoaGhHDhwoEjZKpNOuunwN1EUxdRxhBBCiBJjUAGkVqsJCgri1q1bRguwZs0aJkyYwPTp04mMjKRhw4aEhYWRkFBwL8T+/fsZNGgQI0aM4OjRo/Tt25e+ffty8uRJXZtatWqxYMECTpw4wd69ewkICODxxx/n5k3Z8PNRWgW6YWNhRnxyOqfjkk0dRwghhCgxKsXA/+r/8ssvzJ07ly+++IL69esXO0DLli1p3rw5CxYsAECj0eDn58fYsWOZPHlyvvYDBw4kNTWVTZs26Y61atWKRo0asWjRogJfIzk5GScnJ7Zt20aXLl3+M1Ne+6SkJBwdHYv1/sqbkSsOse1MApPCajOmU01TxxFCCCEKzZDPb4MHQQ8ZMoSDBw/SsGFDbGxscHV11bsZIjMzkyNHjhAaGvpPILWa0NBQIiIiCnxORESEXnuAsLCwh7bPzMzkq6++wsnJiYYNGxbYJiMjg+TkZL1bZSW7wwshhKgMCr0OUJ6PP/7YaC+emJhITk4OXl5eese9vLyIiooq8Dnx8fEFto+Pj9c7tmnTJp555hnS0tLw8fFh69atuLu7F3jOOXPmMHPmzGK/n4qgU21tAXQ09g53UjNxsbM0dSQhhBDC6AwugIYOHVoySYysU6dOHDt2jMTERBYvXsyAAQM4cOAAnp6e+dpOmTKFCRMm6O4nJyfj5+dXyonLBl9nG4K9HYiKv8fumJv0bVzF1JGEEEIIozPaOkBF4e7ujpmZGTdu3NA7fuPGDby9vQt8jre3d6Ha29nZUbNmTVq1asWSJUswNzdnyZIlBZ7TysoKR0dHvVtlJpfBhBBCVHRGK4BCQ0MJDAw06DmWlpY0bdqU7du3645pNBq2b99OSEhIgc8JCQnRaw+wdevWh7Z/8LwZGRkG5aus8naH3x1zk+wcjanjCCGEEEZn8CWwh+nXrx+JiYavIDxhwgSGDh1Ks2bNaNGiBR9//DGpqakMHz4ccgddV6lShTlz5gAwfvx4OnTowLx58+jZsyfff/89hw8f5quvvgIgNTWVd999lyeeeAIfHx8SExNZuHAh165d4+mnnzbW263QGvs542RjQdL9LI5euUvzAMMGtwshhBBlncEF0LRp0+jUqRMhISF6e4KNGTOmSAEGDhzIzZs3mTZtGvHx8TRq1IgtW7boBjrHxsaiVv/TUdW6dWtWr17Nm2++ydSpUwkKCmLjxo26KflmZmZERUWxYsUKEhMTcXNzo3nz5uzZs4d69eoVKWNlY26mpkMtD34+fp2dUQlSAAkhhKhwDF4HqGvXrkRERJCdnU3z5s3p0KEDHTt2pE2bNtjY2JRc0lJUmdcByrPx6DVeWXOMYG8HtrzS3tRxhBBCiP9UousAbd26lbt377J9+3Z69OjB4cOH6d+/P87OzrRt27Y4uUUZ0qGWB2oVRMXf4/rd+6aOI4QQQhhVkcYAmZub06ZNGzw8PHB1dcXBwYGNGzc+dO0eUf642FnSuJoLRy7fYWd0AoNbyka3QgghKg6De4C++uornn32WapUqULr1q3ZsmULbdu25fDhw7LXVgXTWbc5qkyHF0IIUbEY3AP04osv4uHhwWuvvcZLL72Evb19ySQTJtextgcf/B7NvnO3SM/KwdrCzNSRhBBCCKMwuAdow4YNDB48mO+//x4PDw9at27N1KlT+eOPP0hLSyuZlMIk6vo44u1ozf2sHP66cMvUcYQQQgijMbgHqG/fvvTt2xeApKQk9uzZw7p16+jVqxdqtZr09PSSyClMQKVS0SnYg+8OXmFnVAIda+ffRkQIIYQoj4o0CPrWrVvs3r2bXbt2sWvXLk6dOoWLiwvt2rUzfkJhUp1qe2oLoOibzFAUVCqVqSMJIYQQxWZwAdSgQQPOnDmDi4sL7du3Z9SoUXTo0IHHHnusZBIKk2pT0x1LMzWxt9M4fzOVmp4y5ksIIUT5V6RB0B06dNCtvCwqNjsrc1oGurLnbCI7oxKkABJCCFEhGDwIesyYMVL8VDKdZXd4IYQQFYzRdoMXFVen3MHPhy7dJjk9y9RxhBBCiGKTAkj8pwB3OwLd7cjWKOw9m2jqOEIIIUSxSQEkCqWTXAYTQghRgRhUAGVnZ/P2229z9erVkkskyqS8cUC7om+i0SimjiOEEEIUi0EFkLm5OR988AHZ2dkll0iUSc0DXLG3MicxJYOT15NMHUcIIYQoFoMvgXXu3Jndu3eXTBpRZlmaq2lb0x3kMpgQQogKwOB1gLp3787kyZM5ceIETZs2xc7OTu/xJ554wpj5RBnSOdiTLafi2RmVwCuhtUwdRwghhCgylaIoBg3oUKsf3mmkUqnIyckxRi6TSk5OxsnJiaSkJBwdHU0dp8xISE6nxeztABz6XygeDlamjiSEEELoGPL5bfAlMI1G89BbRSh+xMN5OlpTv4r2F2pXtFwGE0IIUX7JNHhhkM65iyLulAJICCFEOVakAmj37t307t2bmjVrUrNmTZ544gn27Nlj/HSizMlbD2hPTCJZORpTxxFCCCGKxOAC6JtvviE0NBRbW1vGjRvHuHHjsLGxoUuXLqxevbpkUooyo2FVZ9zsLLmXkc3hS3dMHUcIIYQoEoMHQdepU4cXXniBV199Ve/4/PnzWbx4MWfOnDF2xlIng6AfbcLaY2yIvMYL7QOZ2qOOqeMIIYQQUNKDoC9cuEDv3r3zHX/iiSe4ePGioacT5ZDsDi+EEKK8M7gA8vPzY/v27fmOb9u2DT8/P2PlEmVYuyAPzNQqziWkcOV2mqnjCCGEEAYzeCHE1157jXHjxnHs2DFat24NwL59+1i+fDmffPJJSWQUZYyTjQXN/F04cPE2O6ISGNo6wNSRhBBCCIMYXACNHj0ab29v5s2bx9q1ayF3XNCaNWvo06dPSWQUZVCnYE8pgIQQQpRbBhVA2dnZzJ49m/DwcPbu3VtyqUSZ1znYk/d+iyLiwi3SMrOxtTS4lhZCCCFMxuDd4OfOnSu7wQuCPO2p4mxDZraGiPO3TB1HCCGEMIjBg6C7dOkiu8ELVCqVzAYTQghRbslu8KLIOgd7suqvy+yMSkBRFFQqlakjCSGEEIUiu8EXQBZCLJz0rBwavf0H6VkatrzSjmBv+V4JIYQwHdkNXpQKawszWtdwB7kMJoQQopwxqADKysrC3NyckydPllwiUa50qu0BwE4pgIQQQpQjBhVAFhYWVKtWTXp6hE7e7vBHLt/hblqmqeMIIYQQhWLwJbD//e9/TJ06ldu3b5dMIlGuVHWxpZaXPRoFdsfcNHUcIYQQolAMngW2YMECzp07h6+vL/7+/vlmgUVGRhoznygHOgV7EnMjhV3RN+nTqIqp4wghhBD/yeACqG/fviWTRJRbnWt78uXuC+yKTiBHo2CmroDT4TUauB4J0Zsh+Tp0nAIu/qZOJYQQoogMLoCmT59eMklEudXU3wVHa3PupGVx7Mpdmvq7mDqScWTdhwu7tUVPzBZIufHPYzG/w1NLoUYnUyYUQghRRIUeA3Tw4MFHDn7OyMjQbY4qKhdzMzXta1WQ2WApNyFyFXz3LLxfHb4bCJErtMWPpQPU6we+jeH+bfimP+z7BAxbSksIIUQZUOiFEM3MzIiLi8PTUzvrx9HRkWPHjhEYGAjAjRs38PX1rRAzxGQhRMNtiLzKhLXHqevjyObx7Uwdp/AUBRJjtL080b/BlYPAA38lHKtCcA+o3R3824K5JWSlw6+vwbFvtG3q9YM+C8HS7qEvI4QQouQZ8vld6Etg/66TCqqbDFxUWlQgHWp5oFLB6bhk4pPS8XayNnWkh8vJhisHcouezXD7gv7jPo2gdm7R490A/r3Fh4U19FkAVRrDb5Ph1I9wMxoGfgNuNUr1rQghhCgag8cAPYrsBVV5udlb0bCqM8eu3GVndAKDWlQzdSR9Gffg3HZtL8/Z3+H+nX8eM7OE6u21BU+t7uBUiJlsKhU0Hwle9WHtEEg4DYs7wZNLIKhrib4VIYQQxWfUAkhUbp2DPTl25S4/HbtGgypOVHOzxdHawnSBkq5BzG/aoufin5DzwEKNNi5Qq5u26KnRGawcivYa1VrBC7u1RdDVg/Dt09D5f9BuYv6eIyGEEGWGQQXQ6dOniY+Ph9zLXVFRUaSkpACQmJhYMglFudE52JP5W2P468Jten22FwBnWwuqudrqbv5utvjlfu3jZGPcKfOKAvEn/rm0FXdc/3HXwNxLWz3AryWYGan+d/SBYb/Cljfg8FLY8Q5cPwb9FhW9sBJCCFGiCj0IWq1Wo1KpChznk3dcdoOv3BRF4aNtZ9l79iaxt++TmJLxyPYWZiqqumgLIv/cosgvt0iq5mqLnVUhCpTsTLi0R9vLE/0bJF994EEV+LX4p+hxDyr5XpkjK2DzRG1vk3tteOZb7esKIYQocYZ8fhe6ALp8+XKhXtzfv/wvDicFkHGkZmRz5U4asbfSiL2tvV2+lcaV22lcuZNGVs6jf/Xc7S11vUX+rv/0HAXYZeIR/yfq6M3acT2Z9/55koWt9pJW7e4QFAb2HiX/Rv/t6mFY8zzcuw5WjtDvS+1MMiGEECWqRAqgykQKoJKXo1GIT04nNrcgunw7ldjb94m9lUrs7TTupGXpta+mukFX9RFC1ZE0V0dhrtLoHrtn7sZ1rw7crx6GXZ3OVPVww8bSzATv6gEpCbB2KMTu197v8AZ0mAxqg7ffE0IIUUhSABWTFECml3w/g5tn9kP0Zlyubsc19bze42c0fmzTNGVbThP+VgJR/rWmp6eDlXbckVv+8Uce9lalM2MxJwv+eBMOLNLer9VN2xtk41zyry2EEJWQFEDFJAWQiWSmwcXcrSeit0DqA6tKq8wgoA3U7kF2zTDi1N5cfuDSWuztVN0ltnvp2Y98GRsLs3zjjfKKpaouNliZG7n36Nh3sOkVyE4H1xrwzGrwDDbuawghhJACqLikACpFKQnafbaif4PzOyH7/j+PWTlCzVAI7gk1u2inrv8HRVFIup+lK4Zib+deYsv9Oi7pPppH/MarVODjaP3P2KMHZq35u9nhYmtRtN6j60e144KSroClPfT9HOr2Mfw8QgghHkoKoGKSAqgEKYp21eS8qepXD+tvPeHk988qzP5ttFtPGFFmtoZrd+9re41upeoVSrG300jLfPQsRnsrc+r6OPJ233oEexv4u5GaCD8M165JBNB2AnR+E9QmHq8khBAVhBRAxSQFkJHlZENsRO5U9c1w56L+476N/yl6vOqbbAFBRVG4lZqZr9cobxZbfHK6rq2DlTlfPNeUtkHuhr1ITjZsmw4RC7T3a3SBJ78GW1cjvxshhKh8jF4ANW7cuNDd/pGRkYVPWkZJAWQE6clwPnfriZjfIf3uP4+ZWUFgh9ytJ7qBo68pkxZaelYOsbfTeGvjSQ5cvI25WsWc/g14upmf4Sc78QP89LL2kp+zv3a9IO8GJRFbCCEqDUM+vws1J7dv37706dOHPn36EBYWxvnz57GysqJjx4507NgRa2trzp8/T1hYWJECL1y4kICAAKytrWnZsiUHDx58ZPt169YRHByMtbU1DRo0YPPmzbrHsrKyeOONN2jQoAF2dnb4+voyZMgQrl+/XqRswgBZ6dqFAFf1h7mBsG4Y/L1GW/zYuELDZ2HAKnj9AgxeB83Cy03xA2BtYUYtLwdWjmhBn0a+ZGsUJv3wNx9vizF8I+AGT8HIrdri5+5l+LqrtigSQghRKgy+BDZy5Eh8fHyYNWuW3vHp06dz5coVli5dalCANWvWMGTIEBYtWkTLli35+OOPWbduHdHR0Xh6euZrv3//ftq3b8+cOXPo1asXq1ev5v333ycyMpL69euTlJTEU089xahRo2jYsCF37txh/Pjx5OTkcPjw4UJlkh4gA2WkaLeAiFgAKTf+Oe5aQ7sAYO2e2hWZK9BYF41GYd7WaBbu1E7Pf6ppVWb3a4CluYHr/KTdhvUj4PwO7f2QlyF0pvG26RBCiEqkRMcAOTk5cfjwYYKC9Jf3P3v2LM2aNSMpKcmgsC1btqR58+YsWKAdE6HRaPDz82Ps2LFMnjw5X/uBAweSmprKpk2bdMdatWpFo0aNWLRoUYGvcejQIVq0aMHly5epVu2/dymXAqiQ0m7Dwa+069zk7a7uWBWaj4A6vSvFFhCrD8Ty1k8nydEotK3pzufPNTF8A1hNjnb/sL3ztfert4enloOdW4lkFkKIisrol8AeZGNjw759+/Id37dvH9bW1gadKzMzkyNHjhAaGvpPILWa0NBQIiIiCnxORESEXnuAsLCwh7YHSEpKQqVS4exc8AJ0GRkZJCcn693EI9y7AX+8BR83gF1ztMWPaw14YgGMOwrtJlSK4gfg2ZbV+HpoM2wtzdh7LpEBiyKIS7pfiGc+QG0GodNhwEqwsNPOEvuqg3ZDVSGEECXC4H72V155hdGjRxMZGUmLFi0AOHDgAEuXLuWtt94y6FyJiYnk5OTg5eWld9zLy4uoqKgCnxMfH19g+7xd6v8tPT2dN954g0GDBj20GpwzZw4zZ840KHuldDcW9n0CkasgJ3ejU6/62oKnbt8KdYnLEJ1qe7L2/0IYvvwQUfH36LtwH8uGtaCur4G9h3X7gHst+H4w3D4PS8Og18fQaFBJRRdCiErL4B6gyZMns2LFCo4cOcK4ceMYN24ckZGRLFu2rMBLVqaUlZXFgAEDUBSFL7744qHtpkyZQlJSku525cqVUs1Z5t2MgR9Hw6eN4dDX2uKnanMYtAZe3Av1n6y0xU+e+lWc+PGl1gR52nMjOYMBX0bwZ8xNw0/kWQdG7dBu5JqdDhtfhM2va7fVEEIIYTRFGmk5YMAABgwYUOwXd3d3x8zMjBs3bugdv3HjBt7e3gU+x9vbu1Dt84qfy5cvs2PHjkdeC7SyssLKyqpY76VCijsOe+bB6Z//WawwsCO0ew0C2plsvZ6yqqqLLT+Mbs2Lq44QceEWw5cfYk6/BgxobuA0eRtnGPQ97H4Pdr8PB7+E+BMwYAXY558YIIQQwnBF2pr67t27fP3110ydOpXbt29D7vo/165dM+g8lpaWNG3alO3bt+uOaTQatm/fTkhISIHPCQkJ0WsPsHXrVr32ecXP2bNn2bZtG25uMpjUILF/wTdPwZft4fRP2uKndk8YuR2G/KQdpCvFT4GcbCxYEd6Cfo2rkKNReH3938z/I9rwafJqNXSaCs98B5YO2l3lv+wAV4+UVHQhhKhUDJ4F9vfffxMaGoqTkxOXLl0iOjqawMBA3nzzTWJjY1m5cqVBAdasWcPQoUP58ssvadGiBR9//DFr164lKioKLy8vhgwZQpUqVZgzZw7kToPv0KED7733Hj179uT7779n9uzZumnwWVlZPPXUU0RGRrJp0ya98UKurq5YWv731gqVchaYomgXLtwzHy7nDnJXqbWXt9q+Cl71TJ2wXFEUhflbY/hsxzkA+jeuwntPPmb4NHmAxLPw/bOQGANmltBzHjQZYvzQQghRzpXoNPjQ0FCaNGnC3LlzcXBw4Pjx4wQGBrJ//36effZZLl26ZHDgBQsW8MEHHxAfH0+jRo349NNPadmyJQAdO3YkICCA5cuX69qvW7eON998k0uXLhEUFMTcuXPp0aMHAJcuXaJ69eoFvs7OnTvp2LHjf+apVAWQRgNRm7SXuuJyZx2pLaDRs9D2FXANNHXCcm3NoVim/qidJt+6hhtfPNcUJxsDp8mTu7L2xtHanxVA0+HQ/X0wl0u3QgiRp8TXAYqMjKRGjRp6BdDly5epXbs26enphThL2VYpCqCcbDj5g7bHJzFae8zcBpoN1y7G51TF1AkrjN0xN3npmyOkZuZQy8ueZcNbUMXZxvATaTSwdx7seFd7WbJqC+3UeUefkogthBDlTomuA2RlZVXgOjkxMTF4eHgYejpR2rLS4dAS+KwJ/Ph/2uLHygnaTYRXT0K3OVL8GFmHWh6sfTEEL0crYm6k0G/hPk5eM2zBUMgdF9R+knYbEWsnuHpQu15Q7F8lEVsIISo0gwugJ554grfffpusLO20XJVKRWxsLG+88QZPPvlkSWQUxpCRAvs/g08awq8TtPtP2bpDl2nw6gno8hbYGbizuSi0er5O/PhSG2p7OZBwL4OBX0awMzqhaCcL6gqjdoJnXe3WI8t7apcnMHSgtRBCVGIGXwLL22vr8OHD3Lt3D19fX+Lj4wkJCWHz5s3Y2dmVXNpSUqEugd2/Awe+ggNfPLBdRRVoPU47kNbS1tQJK5Xk9CxGf3OEfeduYaZW8U7f+gxq8d/bsxQoIwV+fhlO/ai93/g56DEPLAxbkV0IISqKEh0DlGffvn0cP36clJQUmjRpkm97ivKsQhRAKQnazUkPLYHMFO0x10DtjK7HngHz/54NJ0pGZraGKRtOsD7yKgBjOtVg4uO1URVlaQFFgf2fwrYZoGjAtwkMXAVOVY0fXAghyrgSK4CysrKwsbHh2LFj1K9f3xhZy6RyXQDdjYV9n8LRVdqVhJHtKsoiRVH4eNtZPtl+FoC+jXx5/6nHsDIv4s/n/A74IVzby2frrl00MaCtcUMLIUQZV2KDoC0sLKhWrRo5OTnFzSiMLfEsbHwpd7uKxdriR7arKLNUKhWvdq3F3Kcew1ytYuOx6wxdepCktCJueVGjM7ywC7wbQFoirHgC/vpCxgUJIcRDGHwJbMmSJWzYsIFVq1bh6upacslMqFz1AMUd105lz1uxGaB6B2g/UbarKCf2nL3J6G8iScnIpqanPcuHN6eqSxHHZmWmwS/j4cRa7f0GA6D3JzLWSwhRKZToGKDGjRtz7tw5srKy8Pf3zzfoOTIysmipy5ByUQDF/qVdvPDsH/8cq91Du09X1WamTCaK4ExcMsOXHSI+OR0PByuWDm1Og6pORTuZosCBRfD7/0DJ0fYKDfwWXPyNHVsIIcoUQz6/Dd4MtW/fvsXJJopDUbRjPfbMh8t7tcdUaqjXXzvGR7arKLfq+Djy45jWDF92iKj4ewz8KoKFzzahU3ARNj9VqaDVaO3Yr3XDtBupftURnloKNTqVRHwhhCh3ijwLrCIrcz1AGg1E/6rt8bl+VHssb7uKNuPBrYapEwojuZeexUvfRrLnbCJqFczqW5/BLYvRc5N0FdY8p/29UakhdIZ2CQS5NCqEqIBKZRp8RVZmCqCcbDi5HvbOh5tR2mOyXUWFl5WjYeqGE6w7op0mP7pjDSY9Xhu1uohFS1Y6/PoaHPtGe79eP+izECzL/5pdQgjxoBItgHJycvjoo49Yu3YtsbGxZGZm6j1++/btoqUuQ0xeAGWlw/HVsPdj7YrNAFaO0OIF7aUNWbG5wlMUhc92nGP+1hgAejf05cOnizFNXlHg8BL47Q3QZGtXkR74jfQeCiEqlBLdC2zmzJnMnz+fgQMHkpSUxIQJE+jfvz9qtZoZM2YUJ7fISIH9C7TbVWx69V/bVZyU7SoqEZVKxbguQXz4dEPM1Sp+OX6d55cc5G5aZiGeXeAJoflIGLoJ7L0g4TQs7gRntxo7uhBClAsG9wDVqFGDTz/9lJ49e+Lg4MCxY8d0x/766y9Wr15dcmlLSan3AN2/AwcXa9dtuZ/bgybbVYhc+84l8uKqI9zLyCbQw44Vw1vg51qM34nkOFj7PFw9BKig8/+0m+HKuCAhRDlXoj1A8fHxNGjQAAB7e3uSkrS7Wvfq1Ytff/21qJkrp5QE2DodPmoAO9/VFj+ugfDEZzDuGLR6UYofQZua7qwbHYKPkzUXbqbS7/N9HL9yt+gndPSBYb9C0+HataN2vKMdKJ1xz5ixhRCiTDO4AKpatSpxcXGQ2xv0xx/adWgOHTqElZWV8RNWRHevwOZJ8HED2PcxZN4Dz3rw5BIYc0jb6yN7dYkHBHs78uNLbajj40hiSibPfPUXW0/fKPoJza2g98fQ+1Mws4SoTbC4i3ZFcSGEqAQMLoD69evH9u3bARg7dixvvfUWQUFBDBkyhPDw8JLIWHEknoWNY+DTRnDwK+12FVWawaDvtdtVNHgKzAxemklUEt5O1qx7MYT2tTy4n5XD/606zMqIS8U7adOhMPw3cPCFxGhY3BmiNhsrshBClFnFngYfERFBREQEQUFB9O7d23jJTKjExgBtmqCdiUPudhXtXoPq7WXshTBIVo6Gtzae5PtDVwB4oX0gk7sFF32aPLmXY9cOhdj92vtdpkHbCfK7KYQoV2QdoGIqsQLoziXYMhXavgp+zY13XlHpKIrCwp3n+PAP7TT5ng18mDegIdYWxdjwNicLfp+q7Z0EaDUGHn8H1AZ3FAshhEmUaAG0cuXKRz4+ZMgQQ05XJpl8HSAhCunHo1d5/Ye/ycpRaObvwuIhzXCxK+b4sYjP4fcp2q8bPqsdlC+XZoUQ5UCJFkAuLi5697OyskhLS8PS0hJbW1tZCFGIUrb/fCL/t+oI99KzCXS3Y9nw5vi7FXOV52PfwU9jtJup1u4BTy0DC2tjRRZCiBJRotPg79y5o3dLSUkhOjqatm3b8t133xUntxCiCFrXcGf96NZUcbbhQmIq/T/fz9HYO8U7aaNB2pWizawgejN88ySkJxsrshBCmJxRLu4HBQXx3nvvMX78eGOcTghhoFpeDvz4Umvq+TpyKzWTQYv/4o9T8cU7aXAPeH4DWDrA5b2wohek3DRWZCGEMCmjjW40Nzfn+vXrxjqdEMJAno7WrP2/EDrW9iA9S8P/fXOE5fsuFu+kAW1h2Cbtlixxx2FZN+06VkIIUc4ZPAbo559/1ruvKApxcXEsWLAAPz8/fvvtN2NnLHUyBkiUZ9k5Gt766RTfHYwFYGTb6kztUad40+QTz8GqvpB0RbtNy/M/gkdt44UWQggjKNFB0Op/TYlVqVR4eHjQuXNn5s2bh4+PT9FSlyFSAInyTlEUvth9nrlbogHoXt+bjwY2Kt40+aSrsKofJMaAjSs89wNUaWq80EIIUUyyDlAxSQEkKoqfjl1j0rq/yczR0KSaM18PbY5rcabJp96Cb5+C65FgaQ/PrIbADsaMLIQQRVais8CEEOVHn0ZVWDmiBY7W5kTG3qX/5/u4lJha9BPaucHQn7UrmGemaIuhM78YM7IQQpQKg3uAJkyYUOi28+fPL0omk5MeIFHRnEu4x9Clh7h29z6udpYsHtKMpv4uhXjmQ2Slw/oR2k1UVWrtpqpNnjdmZCGEMFiJXgLr1KkTR48eJSsri9q1tYMgY2JiMDMzo0mTJv+cWKVix44dRX0PJiUFkKiIEu6lM2L5YU5cS8LKXM0nzzSiW/1ijNnLyYZNr8DRVdr7XWdBm3FGyyuEEIYq0UtgvXv3pn379ly9epXIyEgiIyO5cuUKnTp1olevXuzcuZOdO3eW2+JHiIrK08Ga719oRZdgTzKyNYz+NpIle4sxTd7MXLtNRuvcomfrW7BtBsiwQiFEOWBwD1CVKlX4448/qFevnt7xkydP8vjjj1eItYCkB0hUZNk5Gmb8copv/tJOkx/eJoA3e9bFrDjT5Pd+pC1+AJoMhV4fgboYM86EEKIISrQHKDk5mZs3868Ge/PmTe7du2fo6YQQpczcTM2sPvWZ3D0YgGX7LvHSt0e4n5lT9JO2fRV6f6IdDxS5An4Ih+wM44UWQggjM7gA6tevH8OHD2fDhg1cvXqVq1evsn79ekaMGEH//v1LJqUQwqhUKhUvdqjBZ4MaY2mm5vdTNxi0+C9upRSjaGk6TLtpqtoCTm+E1QMhI8WYsYUQwmgMvgSWlpbGxIkTWbp0KVlZWZC7DcaIESP44IMPsLMr5i7UZYBcAhOVycGLtxm18jBJ97Pwd7Nl2bDmBHrYF/2E53fA989BVipUaQaD14GtqzEjCyFEgUplIcTU1FTOnz8PQI0aNSpE4ZNHCiBR2ZxLSGH48oNcuX0fF1sLZvdrwOP1vIs+LujqYe0aQffvgEewdusMR19jxxZCCD2luhL05cuXSU1NJTg4ON82GeWVFECiMrp5L4ORKw5x/GoSAH6uNgxrXZ0BzariYG1h+AkTzmi3zrgXB87V4PmN4FbD+MGFECJXiQyCXrp0ab6FDV944QUCAwNp0KAB9evX58oV2SVaiPLKw8GK715oxZhONXC2teDK7fvM2nSakDk7mPnLKS7fMnAFac86EP47uAbC3VhYGgZxf5dUfCGEMEihC6CvvvoKF5d/Vo7dsmULy5YtY+XKlRw6dAhnZ2dmzpxZUjmFEKXA1tKcSWHBREzuwux+DajpaU9KRjbL9l2i44e7GLXyMH9duEWhO45d/LVFkHcDSL0Jy3vC5f0l/TaEEOI/FfoSmJubG7t27aJBgwYAjB49mps3b/LDDz8AsGvXLoYPH87Fi8VYWK2MkEtgQmgpisKfZxNZuvciu2P+Wf6iro8j4W2r07uhD1bmhVjvJz0JVj8DsfvB3BoGrIRaYSUbXghR6ZTIJbD79+/rnWz//v20b99edz8wMJD4+PiiZhZClEEqlYoOtTxYEd6CbRPaM7hlNawt1JyOS2biuuO0eW8HH2+L4ea9/5g+b+0Ez62HoDDITofvBsHfa0vrbQghRD6FLoD8/f05cuQIAImJiZw6dYo2bdroHo+Pj8fJyalkUgohTK6mpwPv9mvAX1O68Ea3YLwdrUlMyeTjbWdp894OJq47zunryQ8/gaUtPPMtPDYQlBzYMAoOfFmab0EIIXTMC9tw6NChjBkzhlOnTrFjxw6Cg4Np2rSp7vH9+/dTv379ksophCgjnG0tGd2xBiPbVWfLyXiW7L3IsSt3+eHIVX44cpWQQDfC21anc7Bn/mn0ZhbQdxFYO8PBL+G317VT5Tu8AapibMUhhBAGKnQB9Prrr5OWlsaGDRvw9vZm3bp1eo/v27ePQYMGlURGIUQZZGGmpndDX3o39CUy9g5L917kt5PxRFy4RcSFW/i72TKsdQBPN/PD3uqBf2rUauj+Pti6wa7ZsGsOpN2Gbu9pHxNCiFJQ7HWAKiIZBC1E0Vy/e5+VEZf57mAsSfe1K8U7WJkzoLkfw1oH4Odqq/+EA1/Bb5O0XzcYAH0/1/YSCSFEEZTqQogVkRRAQhRPWmY2GyKvsXTfRS7c1K4fpFZB17pehLepTovqrqjyLnn9vQ42vgiabO0g6aeXa8cLCSGEgaQAKiYpgIQwDo1GYffZmyzde5E9ZxN1x+v5OhLepjq98qbRx/wOa4doZ4hVC4FB34ONs0mzCyHKHymAikkKICGML+bGPZbtu8SGyKtkZGsgd/Xp51v582zLarjfiszdQT4JvBrA8xvA3tPUsYUQ5YgUQMUkBZAQJedOaiarD8ayMuISN5K16wdZmqvp28iXF4PvE/jb85CaoN1C4/mN2tWkhRCiEKQAKiYpgIQoeVk5GjafiGPp3ou6DVgB+vmnMztlGjapV8HBR7uTvGcdk2YVQpQPJVoA5eTksHz5crZv305CQgIajUbv8R07dhQtdRkiBZAQpUdRFCJj7+ZOo49Do4And1hj8z7VlVgUaxdUz/0AVZuZOqoQoowz5PO70OsA5Rk/fjzLly+nZ8+e1K9f/5+ZHEIIUQQqlYqm/i409Xfh6p00VuVOo+97/02WWc6lSfo5Mpf24u4Ty/Bs1N3UcYUQFYTBPUDu7u6sXLmSHj16lFwqE5MeICFMKzUjmw2RV/lu7xkmJ79Le7MTZCpmLPd5k8bdhtHM30X+8yWEyKdENkPNY2lpSc2aNYuTTwghHsnOypznQwLY9Fo3NM98xwGb9liqchgZ9zbrF7/LEwv28ePRq2RmawpxNiGEyM/gHqB58+Zx4cIFFixYUGH/ByY9QEKUMZoc7q4bi/OZbwF4P+sZvsjpjaeDNUNC/BnUohpu9lamTimEMLES7QHau3cv3377LTVq1KB37970799f72aohQsXEhAQgLW1NS1btuTgwYOPbL9u3TqCg4OxtramQYMGbN68We/xDRs28Pjjj+Pm5oZKpeLYsWMGZxJClDFqM5wHLIS2EwB4w+J7ZtmuIeFeOh/+EUPr93Ywef3fRMffM3VSIUQ5YXAB5OzsTL9+/ejQoQPu7u44OTnp3QyxZs0aJkyYwPTp04mMjKRhw4aEhYWRkJBQYPv9+/czaNAgRowYwdGjR+nbty99+/bl5MmTujapqam0bduW999/39C3JoQoy1QqCJ0Oj78DwPOan9ldaz0Nfe3JyNbw/aErhH38J899fYAdUTfQaGSFDyHEw5l0HaCWLVvSvHlzFixYAIBGo8HPz4+xY8cyefLkfO0HDhxIamoqmzZt0h1r1aoVjRo1YtGiRXptL126RPXq1Tl69CiNGjV6ZI6MjAwyMjJ095OTk/Hz85NLYEKUVUe/gZ/HgqJBCe5FZLMPWXLgOltOxpNX91R3t2N4mwCebFIVOyuDJ7wKIcqhEr0EZiyZmZkcOXKE0NDQf8Ko1YSGhhIREVHgcyIiIvTaA4SFhT20fWHNmTNHrxfLz8+vWOcTQpSwxs/BgJVgZokqahNN973A50/VYvekToxqVx0Ha3MuJqYy7adTtJqzndmbz3Dt7n1TpxZClCFFKoB++OEHBgwYQKtWrWjSpInerbASExPJycnBy8tL77iXlxfx8fEFPic+Pt6g9oU1ZcoUkpKSdLcrV64U63xCiFJQpzcM/gEs7eHin7CiN35W9/lfz7pETOnCzCfqEeBmy730bL768wLt5+5kzLeRHLl8G1kAXwhhcAH06aefMnz4cLy8vDh69CgtWrTAzc2NCxcu0L17+VykzMrKCkdHR72bEKIcCOwAQ38GG1e4fhSWdYOkq9hbmTO0dQA7XuvIkqHNaFPTjRyNwq8n4njyiwj6LtzHT8eukZUj0+iFqKwMLoA+//xzvvrqKz777DMsLS15/fXX2bp1K+PGjSMpKakQZ9Byd3fHzMyMGzdu6B2/ceMG3t7eBT7H29vboPZCiEqgSlMI/x0cq0BiDCwJg8SzAKjVKrrU8eLbka3Y8ko7BjSriqW5muNXkxj//THavb+Tz3ed425apqnfhRCilBlcAMXGxtK6dWsAbGxsuHdPO+30+eef57vvviv0eSwtLWnatCnbt2/XHdNoNGzfvp2QkJACnxMSEqLXHmDr1q0PbS+EqCQ8ammLILeakHwVlnaD6/pLYAR7OzL3qYbsn9yZCV1r4W5vRXxyOnO3RBMyZwdvbjzB+ZspJnsLQojSZXAB5O3tze3btwGoVq0af/31FwAXL140+Lr6hAkTWLx4MStWrODMmTOMHj2a1NRUhg8fDsCQIUOYMmWKrv348ePZsmUL8+bNIyoqihkzZnD48GFefvllXZvbt29z7NgxTp8+DUB0dDTHjh0r9jghIUQZ5+ynLYJ8GkJaIizvBRf35Gvmbm/FuC5B7JvciQ+fbkgdH0fuZ+XwzV+xdJm3m+HLDrL3bKKMExKigjO4AOrcuTM///wzAMOHD+fVV1+la9euDBw4kH79+hl0roEDB/Lhhx8ybdo0GjVqxLFjx9iyZYtuoHNsbCxxcXG69q1bt2b16tV89dVXNGzYkB9++IGNGzdSv359XZuff/6Zxo0b07NnTwCeeeYZGjdunG+avBCiArJzh6GbIKAdZN6Db56EqM0FNrUyN+OpplXZPK4tq0e1JLSOJyoV7Iy+yXNLDtD9kz2sPXSF9KycUn8bQoiSZ/A6QBqNBo1Gg7m5dl2N77//nv379xMUFMT//d//YWlpWVJZS41shSFEOZeVDj8Mh+jNoDKDPguh0aD/fNrFxFSW7bvIusNXuZ9b+LjZWTK4lT/Pt/LHw0G22xCiLDPk89ukCyGWVVIACVEB5GRrF0s8vlp7P2w2hIwp1FOT0rL4/lAsK/Zf4npSOgCWZmqeaOTLiLbVqeMj/y4IURaVeAG0Z88evvzyS86fP88PP/xAlSpVWLVqFdWrV6dt27bFyV4mSAEkRAWh0cAfb8JfC7X3202Ezm9qt9UohKwcDVtOxrNk70WOXbmrO966hhsj2lanU21P1OqKuSm0EOVRia4EvX79esLCwrCxseHo0aO6LSSSkpKYPXt20VMLIYSxqdUQ9i50fkt7f8+H8OtroCncuB4LMzW9G/qycUwbNrzUmp6P+WCmVrH//C1GrDhMl/m7WRlxibTM7JJ9H0IIozO4B6hx48a8+uqrDBkyBAcHB44fP05gYCBHjx6le/fuFWK2lfQACVEBHVqiLX5QILAjBPeCaq3Asy6ozQp9mmt377Ni/yW+OxjLvXRt4eNobc6gltUYGhKAr7NNCb4JIcSjlOglMFtbW06fPk1AQIBeAXThwgXq1q1Lenp6cfObnBRAQlRQJ9fDhv8DTdY/x6wcoWoz8GsFfi20X1s5/OepUjOyWXf4Csv2X+LyrTQAzNQqejTwIbxNAI2ruZTkOxFCFMCQz2+Dt0j29vbm3LlzBAQE6B3fu3cvgYGBhqcVQojSUv9JcK8NZ36BKwfg6iHISIbzO7Q3AJUavOpre4f8Wmr/dKqa71R2VuYMa1Od50MC2BGVwJK9F/jrwm1+OX6dX45fp0k1Z0a0DSSsnhfmZibbd1oI8RAG9wDNmTOHb775hqVLl9K1a1c2b97M5cuXefXVV3nrrbcYO3ZsyaUtJdIDJEQlocmBG6e0xVDsX9o/kwrYDNmxyj/FkF9LbYFklv//jyevJbF030V+OX6drBztP61VnG0Y1jqAgS38cLS2KI13JUSlVaKXwBRFYfbs2cyZM4e0NG23r5WVFRMnTmTWrFnFS15GSAEkRCWWdE1bCOUVRfEnQPnXoGlLe+0eZNXyLps1B2sn3cMJyel889dlvjkQy+1U7T5jdpZmPN3Mj+FtAvB3syvtdyVEpVAq6wBlZmZy7tw5UlJSqFu3Lvb29kXNW+ZIASSE0MlIgWtH/imKrhyCjH9v/KwCr3r6vUTO1UjP1rDx6DWW7rtIzA3tPmMqFYTW8WJE2+q0rO6KqpBT8oUQ/00WQiwmKYCEEA+lyYGbUf9cMov9C+5ezt/OwUfbO+TXCsWvJXtTfFgScZVd0Td1Ter5OjKibXV6PeaLpbmMExKiuEqkAAoPDy/Uiy9durRwKcswKYCEEAa5F59bDB2AK39B3HHQ/GttIAtbqNKU226N+fm2H5+fcyEhyxYADwcrhrTyZ3Arf1ztyv92QkKYSokUQGq1Gn9/fxo3bvzIXZJ//PFHwxOXMVIACSGKJTMNrkfm9hId1BZH6XfzNbtlW4Pd6YHsTa/BYaU2N8y86d+kKuFtqhPk9d9T8YUQ+kqkABozZgzfffcd/v7+DB8+nOeeew5XV1djZS5TpAASQhiVRgOJMdreobxeotsX8jW7qThxWFOLI5pa5FRtQaeOXWkX7CvjhIQopBIbA5SRkcGGDRtYunQp+/fvp2fPnowYMYLHH3+8Qv0FlQJICFHiUhJye4e0RZESdwxVTqZek3TFghjzIMz8Qwhq2gXL6iFgWzH/4ymEMZTKIOjLly+zfPlyVq5cSXZ2NqdOnaowM8GkABJClLqsdLh+FK4cIO38foj9C9ucf882g2zXIMz9W+XONmsFbjUKvbmrEBVdia4EnUetVqNSqVAUhZycwm0sKIQQ4iEsrME/BPxDsG37CigKKdfPELl3C8kxe6mTdZoa6jjMb5+F22fh6Crt82zdtdPu/VpoiyKfRtpzCSEeqciXwPbu3UuvXr0YPnw43bp1Q62uOFM4pQdICFGWZOdo2Hr6Bmv/PIb62iGaqWNoqo6hkfoClmTpNzazhCrNoMMkqNHZVJGFMIkSuQT20ksv8f333+Pn50d4eDiDBw/G3d3dWJnLFCmAhBBl1fErd1my9yKbT8Sh1mRSX3WRUPtL9HSJxS/lBOq0f9YZol4/CJsDjj6mjCxEqSmxafDVqlWjcePGjxzwvGHDBsMTlzFSAAkhyrq4pPusjLjM6gOxJN3X9gI5WJnxYgMVQ8z/wOH4UlA0YOkAnaZCixcK3L9MiIqkRAqgYcOGFWqm17JlywqftIySAkgIUV6kZWazPvIay/Ze5EJiKgBmahXj66Xx4r2FWMZHaht61Yee86FaS9MGFqIEyVYYxSQFkBCivNFoFHbH3GTJ3ovsPZcIgI0FfFTzBI/HfYE6byHGJkMgdKZMpxcVkhRAxSQFkBCiPDt86TZzfoviyOU7AFS3SWOR9y/UjvtJ28DGFbrOhEbPQQWawCKEFEDFJAWQEKK8UxSFbWcSeH9LFOcStDvRd3e8yHtWy3G6d1bbqGoL6DUfvBuYNqwQRiIFUDFJASSEqCiyczRsiLzG/K0xxCenY042rzvvJjz7e8yzU0FlBi1fhE5TwEr2HxPlmxRAxSQFkBCioknPymH5/kt8vvMcyenZeHOLj53X0Cp9r7aBgw+EzdZOnZeVpUU5JQVQMUkBJISoqO6mZfLFrvMs23+JzGwNHdTH+cBuFZ5Z17UNanSGHh9qt9gQopyRAqiYpAASQlR01+7e56OtMayPvIqlkslo818YY/ELFkqmdjXptq9qbxY2po4qRKFJAVRMUgAJISqL6Ph7fPB7FNvOJBCgimOW5UraqY5rH3SpDj0+gKCupo4pRKFIAVRMUgAJISqbAxdu8d6WKI7G3qG7+iAzLFfhxW3tg3WegG5zwKmqqWMK8UhSABWTFEBCiMpIURR+P3WDub9HceNmIuPNNxBu/hvmaFAs7FB1nAytRoOZhamjClEgKYCKSQogIURllp2jYd2Rq3y0NQbXlLO8Y7GUZuoYABTPuqh6zgf/EFPHFCIfKYCKSQogIYSA+5k5LN13kS93nSUsewdTzFfjqtIuqkijwdD1bbBzN3VMIXQM+fyWNdCFEEIUyMbSjDGdarL79S44hQynW/ZHrM7upH3w2LfkfNoUDi8FjcbUUYUwmPQAFUB6gIQQIr+rd9KYvzWGi8d28Y75UuqpLwOQ5d0Eiyc+At9Gpo4oKjm5BFZMUgAJIcTDnYlL5sPfTuF3fjWvma/DQXUfDWqym47AsutbYO1k6oiikpICqJikABJCiP8Wcf4WX/26j343P+cJswgA0izdsewxG/OGA2RLDVHqZAyQEEKIEhdSw42lY3tjMWAZr1nP5LzGB9vMRMw3vsDNhWFoEqJNHVGIh5IeoAJID5AQQhgmK0fDugPnubttHuE5P2CtyiILc+LrjcKvzzSwtDV1RFEJyCWwYpICSAghiiYtM5sftu4h4OBM2quOAnDTzIu0LnPwb/2kqeOJCk4KoGKSAkgIIYrn1r10tm1cRrtzH+CrugXA3/ZtcH3yI6pWr23qeKKCkjFAQgghTMrNwZqBz49G89JBtrsOIksx47GUfbgtb8u2r94gMemeqSOKSk4KICGEECWmqpc7XcYt4tJTW4iyaoCNKpPQ64tImt+SH374jtSMbFNHFJWUXAIrgFwCE0KIEqAoxGz9Gs+IWTgrSQBsVrUntcMM+rZrjIWZ/J9cFI+MASomKYCEEKLkaFLvELt+CtUufI8ahWTFliVWzxHUcxw9GlRFrZb1g0TRyBggIYQQZZbazoWAIYvICd/GLce6OKrSeDXzK6qt783ET5ax/1yiqSOKSkAKICGEECZhUa0Zbq/sJePxuWSY2fOY+iIf3p3A+eX/x4tfb+fU9SRTRxQVmFwCK4BcAhNCiFKWkkD65ilYn/4BgJuKI7OzBqM0GMBrYcH4ucpCiuK/yRigYpICSAghTOTiHjJ/fhXLO2cBOKAJZkZOOK1atWVs5yBc7SxNnVCUYTIGSAghRPlUvR2WY/ZD6Aw0Zta0VEfxs/kUPA/MIWzubyzYcZa0TJk6L4pPeoAKID1AQghRBtyNhd8mQ/SvAFxT3JiZNYSjtm1oGeiGuVqFmVqNmRrM1Orc+9qbuVqFOvfP/PfVmKnAzCz3Oaq8NmBBNhZKFhZKJhZkYZ77tbmShQVZmOVkYq5kYqbJ+zMLM00GZkom6hztfbUmE3VOhvbP3K9VOZmoctJRZWdCTiZkp0N2hvaWkwHZucdyMrXHzCzBqar25uwHTrm3vK8dfMDM3NQ/oTJHLoEVkxRAQghRhkT/hvLb66juxgKwPacxf2iaYUUmlmRjSRZWqiysyM53TPc1WViqcv/Ue1x7zIpsrFRZpn6nhaaozFA5+uYWSXmFUVVwqvbP15Z2po5Z6qQAKiYpgIQQoozJTIM981D2fYJKUzqFShbmZGFBpsqS3P4gMrAkE3MysSADCzIVc9KxIEMxJ0OxIF2xIF0xJxPz3Mdz22GhPaY88HXuuTIeaJN3ThtVJr6qRHxVt6iqSqSKKhFftH/6qG5hqcr5z/waa1dUzlVROVfL7UH6V2+SnTuoKtaaS1IAFZMUQEIIUUbdjIG9H8H9O2Bu9c/N7N9fW4K5tfZSkrl17vG8ry312+vaPfB8M0tQF32YrEajkK1RyNEo5CgKOTkK2RqN9muNQnaOgkb5p43+fQ330rNJuJdBQnI6N5IzuJGczo3c+zfv3cdVc5eqqpv4qm5RJa9Ayv2ziioRR9X9/8yYY2ZNtkMV1M5+mLtUQ+Xsp9+b5FgFzCyK/D0wBSmAikkKICGEEGVVjkbhdmomN5LTSbj3QIGUnFsw3UsnJek2NmnX8eGfoujBm5fq7n++joKKdGtPshyqoHKuhqVbNSxd/XN7lHJ7k6wcSuU9F5Yhn99lYgTVwoUL+eCDD4iPj6dhw4Z89tlntGjR4qHt161bx1tvvcWlS5cICgri/fffp0ePHrrHFUVh+vTpLF68mLt379KmTRu++OILgoKCSukdCSGEECXDTK3Cw8EKDwcrwOmh7bJzNCSmZOYWR9oepJjcr28l3UNz9xoWqddxzIijCom5vUk3c3uTbmGlysYm/QY26TfgZiSczf8a980cSLPxIdO+Kiqnqli6+WPnVR0rN//cy2wexepJK0kmL4DWrFnDhAkTWLRoES1btuTjjz8mLCyM6OhoPD0987Xfv38/gwYNYs6cOfTq1YvVq1fTt29fIiMjqV+/PgBz587l008/ZcWKFVSvXp233nqLsLAwTp8+jbW1tQnepRBCCFG6zM3UeDtZ4+306M+9jOwcbt7L0PUg7U5O50byfdJux6HcvYJ5yjVs71/HLfvmP+ORVIk4q1KxybmHTco9SImB+PznzsSCJAtPUm18ybT3BSc/LN38sfUIwKlaXaxcqpbcN+A/mPwSWMuWLWnevDkLFiwAQKPR4Ofnx9ixY5k8eXK+9gMHDiQ1NZVNmzbpjrVq1YpGjRqxaNEiFEXB19eX1157jYkTJwKQlJSEl5cXy5cv55lnnsl3zoyMDDIyMnT3k5OT8fPzk0tgQgghRK60zGwSHhiPdOd2IhmJl9HcvYr5vavY3r+OY8YNvLmJryoRb+6gVj28xPjL42lajfnaqBnLzSWwzMxMjhw5wpQpU3TH1Go1oaGhREREFPiciIgIJkyYoHcsLCyMjRs3AnDx4kXi4+MJDQ3VPe7k5ETLli2JiIgosACaM2cOM2fONOI7E0IIISoWW0tzAtzNCXDPm17vCzym10ZRFFIysrmRnMGBu/dITrhMemIsmruxmCdfxeZ+HI4Zcbjn3CTTqbpJ3kcekxZAiYmJ5OTk4OXlpXfcy8uLqKioAp8THx9fYPv4+Hjd43nHHtbm36ZMmaJXVOX1AAkhhBCi8FQqFQ7WFjhYW1DT0x5q+QCt8rVTFAU/jWnnYJl8DFBZYGVlhZWVlaljCCGEEJWCSqXCwsy0axCZdGi2u7s7ZmZm3LhxQ+/4jRs38Pb2LvA53t7ej2yf96ch5xRCCCFE5WLSAsjS0pKmTZuyfft23TGNRsP27dsJCQkp8DkhISF67QG2bt2qa1+9enW8vb312iQnJ3PgwIGHnlMIIYQQlYvJL4FNmDCBoUOH0qxZM1q0aMHHH39Mamoqw4cPB2DIkCFUqVKFOXPmADB+/Hg6dOjAvHnz6NmzJ99//z2HDx/mq6++gtxutVdeeYV33nmHoKAg3TR4X19f+vbta9L3KoQQQoiyweQF0MCBA7l58ybTpk0jPj6eRo0asWXLFt0g5tjYWNQPLKLUunVrVq9ezZtvvsnUqVMJCgpi48aNujWAAF5//XVSU1N54YUXuHv3Lm3btmXLli2yBpAQQgghoCysA1QWyVYYQgghRPljyOd32VyfWgghhBCiBEkBJIQQQohKRwogIYQQQlQ6UgAJIYQQotKRAkgIIYQQlY4UQEIIIYSodKQAEkIIIUSlIwWQEEIIISodk68EXRblrQ2ZnJxs6ihCCCGEKKS8z+3CrPEsBVAB7t27B4Cfn5+powghhBDCQPfu3cPJyemRbWQrjAJoNBquX7+Og4MDKpXKqOdOTk7Gz8+PK1euVMhtNuT9lX8V/T3K+yv/Kvp7lPdXdIqicO/ePXx9ffX2ES2I9AAVQK1WU7Vq1RJ9DUdHxwr5i51H3l/5V9Hfo7y/8q+iv0d5f0XzXz0/eWQQtBBCCCEqHSmAhBBCCFHpSAFUyqysrJg+fTpWVlamjlIi5P2VfxX9Pcr7K/8q+nuU91c6ZBC0EEIIISod6QESQgghRKUjBZAQQgghKh0pgIQQQghR6UgBJIQQQohKRwqgUjBnzhyaN2+Og4MDnp6e9O3bl+joaFPHMqovvviCxx57TLewVUhICL/99pupY5WY9957D5VKxSuvvGLqKEYxY8YMVCqV3i04ONjUsYzu2rVrPPfcc7i5uWFjY0ODBg04fPiwqWMZRUBAQL6foUqlYsyYMaaOZhQ5OTm89dZbVK9eHRsbG2rUqMGsWbMKtedTeXLv3j1eeeUV/P39sbGxoXXr1hw6dMjUsYrkzz//pHfv3vj6+qJSqdi4caPe44qiMG3aNHx8fLCxsSE0NJSzZ8+WWj4pgErB7t27GTNmDH/99Rdbt24lKyuLxx9/nNTUVFNHM5qqVavy3nvvceTIEQ4fPkznzp3p06cPp06dMnU0ozt06BBffvkljz32mKmjGFW9evWIi4vT3fbu3WvqSEZ1584d2rRpg4WFBb/99hunT59m3rx5uLi4mDqaURw6dEjv57d161YAnn76aVNHM4r333+fL774ggULFnDmzBnef/995s6dy2effWbqaEY1cuRItm7dyqpVqzhx4gSPP/44oaGhXLt2zdTRDJaamkrDhg1ZuHBhgY/PnTuXTz/9lEWLFnHgwAHs7OwICwsjPT29dAIqotQlJCQogLJ7925TRylRLi4uytdff23qGEZ17949JSgoSNm6davSoUMHZfz48aaOZBTTp09XGjZsaOoYJeqNN95Q2rZta+oYpWb8+PFKjRo1FI1GY+ooRtGzZ08lPDxc71j//v2VwYMHmyyTsaWlpSlmZmbKpk2b9I43adJE+d///meyXMYAKD/++KPuvkajUby9vZUPPvhAd+zu3buKlZWV8t1335VKJukBMoGkpCQAXF1dTR2lROTk5PD999+TmppKSEiIqeMY1ZgxY+jZsyehoaGmjmJ0Z8+exdfXl8DAQAYPHkxsbKypIxnVzz//TLNmzXj66afx9PSkcePGLF682NSxSkRmZibffPMN4eHhRt/Q2VRat27N9u3biYmJAeD48ePs3buX7t27mzqa0WRnZ5OTk4O1tbXecRsbmwrXI3vx4kXi4+P1/i11cnKiZcuWRERElEoG2Qy1lGk0Gl555RXatGlD/fr1TR3HqE6cOEFISAjp6enY29vz448/UrduXVPHMprvv/+eyMjIcns9/lFatmzJ8uXLqV27NnFxccycOZN27dpx8uRJHBwcTB3PKC5cuMAXX3zBhAkTmDp1KocOHWLcuHFYWloydOhQU8czqo0bN3L37l2GDRtm6ihGM3nyZJKTkwkODsbMzIycnBzeffddBg8ebOpoRuPg4EBISAizZs2iTp06eHl58d133xER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AM7Ozri6utKnT598vTBff/01derUwdramuDgYD7//PNHvq/NmzdjZWVFq1at8j02dOhQli1bpncsb5f1f9u9ezctWrTAysoKHx8fJk+erFcYpqamMmTIEOzt7fHx8SmwGMnIyGDixIlUqVIFOzs7WrZsya5dux6Z/0FXr15l3LhxjBs3jqVLl9KxY0cCAgJo3749X3/9NdOmTdO1Xb9+PfXq1cPKyoqAgIB8eQICAnjnnXd0mf39/fn555+5efMmffr0wd7enscee0zv70HeJbqNGzcSFBSEtbU1YWFhXLly5ZG5H/UzCw8P57HHHiMjIwNyi+HGjRszZMgQ+NclsEuXLtGpUycAXFxcUKlUDBs2jJUrV+Lm5qY7R56+ffvy/PPP6+737t2bn3/+mfv37xf6ey4qgFLbdlUIExg6dKjSp08fvWNPPPGE0qRJE93XderUUf7880/l2LFjSlhYmFKzZk0lMzNTURRFWbZsmeLk5KR7bteuXZWXXnpJ73yPPfaYMm3aNEV5YPfjli1bKrt27VJOnTqltGvXTmndurWu/YYNGxQLCwtl4cKFSnR0tDJv3jzFzMxM2bFjh64NoFSpUkVZs2aNEh0drfTt21cJCAhQOnfurGzZskU5ffq00qpVK6Vbt26650yfPl1p2LCh7v727duVVatWKWfOnFFOnz6tjBgxQvHy8lKSk5P1XufHH3806PuXp2HDhkr37t1190NDQ5XevXsrhw4dUmJiYpTXXntNcXNzU27duqUoiqJ88803irW1tbJ06VIlOjpamTlzpuLo6KiXeejQoYq9vb3y/PPPKydPnlROnjypZGZmKnXq1FHCw8OVv//+Wzl9+rTy7LPPKrVr19btBP7NN98oPj4+yvr165ULFy4o69evV1xdXZXly5c/9L2NGzdO7/unKIpy8eJFBVAOHjyouLu7K3v27FEURVH27NmjeHh4KAcPHlQA5eLFi4qiKMrVq1cVW1tb5aWXXlLOnDmj/Pjjj4q7u7syffp03TlHjx6tVKtWTdm2bZvy999/K7169VIcHByU8ePH69qMHDlSad26tfLnn38q586dUz744APFyspKiYmJUZQCfg//bf78+QqgXL9+/aFtFEVRDh8+rKjVauXtt99WoqOjlWXLlik2NjbKsmXLdG38/f0VV1dXZdGiRUpMTIwyevRoxdHRUenW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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "fig, ax = plt.subplots()\n", + "\n", + "ax.plot(df_results[\"degree\"], df_results[\"mse_train\"], label=\"Training MSE\")\n", + "ax.plot(df_results[\"degree\"], df_results[\"mse_test\"], label=\"Testing MSE\")\n", + "ax.set_xlabel(\"Polynomial Degree (Model Complexity)\")\n", + "ax.set_ylabel(\"Mean Squared Error w.r.t. True Values\")\n", + "ax.legend()" ] }, { @@ -460,7 +1060,12 @@ "cell_type": "markdown", "id": "ad2acfb9", "metadata": {}, - "source": [] + "source": [ + "
\n", + "According to the graph the models ability to generalize increases with the degree of the polynomial. This is indicated by the testing MSE decreasing with the increase in polynomial degree. The difference to the graph from Bickel et al stems from the fact, that we use an exponential function which in turn can be written as an infinite polynomial function. Thus we approach the source of the data with an increasing degree of the polynomial inputs. Thus in this case the models generalization ability increases with the degree.\n", + "\n", + "
" + ] }, { "cell_type": "markdown", @@ -490,11 +1095,29 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "id": "85b964d1", "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.preprocessing import PolynomialFeatures\n", + "\n", + "poly_features_sklearn = PolynomialFeatures(degree=5, include_bias=True).fit_transform(x.reshape(-1, 1))\n", + "poly_features_own = polynomial_features(x, 5)\n", + "\n", + "np.allclose(poly_features_sklearn, poly_features_own) # If this is true, our output is identical (within numerical precision)" + ] }, { "cell_type": "markdown", @@ -508,16 +1131,37 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "id": "35b04126", "metadata": {}, - "outputs": [], - "source": [] + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.linear_model import LinearRegression\n", + "\n", + "model = LinearRegression(fit_intercept=False)\n", + "model.fit(poly_features_sklearn, y)\n", + "\n", + "beta_sklearn = model.coef_\n", + "beta_own = OLS_parameters(poly_features_own, y)\n", + "\n", + "np.allclose(beta_sklearn, beta_own) # If this is true, our coefficients are identical (within numerical precision)" + ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Lecture_Materials", "language": "python", "name": "python3" }, @@ -531,7 +1175,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.15" + "version": "3.13.7" } }, "nbformat": 4,