research/machine_learning/scripts/mutiple_regression.ipynb
2024-01-31 21:41:29 +01:00

691 lines
147 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"id": "4d2a8b6c",
"metadata": {},
"source": [
"#### Database"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "7be9eeff",
"metadata": {},
"outputs": [],
"source": [
"PROJECT_PATH = '/home/md/Work/ligalytics/leagues_stable/'\n",
"import os, sys\n",
"sys.path.insert(0, PROJECT_PATH)\n",
"os.environ.setdefault(\"DJANGO_SETTINGS_MODULE\", \"leagues.settings\")\n",
"\n",
"from leagues import settings\n",
"settings.DATABASES['default']['NAME'] = PROJECT_PATH+'/db.sqlite3'\n",
"\n",
"import django\n",
"django.setup()\n",
"\n",
"from scheduler.models import *\n",
"from common.functions import distanceInKmByGPS\n",
"season = Season.objects.filter(nicename=\"Imported: Benchmark Season\").first()\n",
"import pandas as pd\n",
"import numpy as np\n",
"from django.db.models import F\n",
"games = Game.objects.filter(season=season)\n",
"df = pd.DataFrame.from_records(games.values())\n",
"games = Game.objects.filter(season=season).annotate(\n",
" home=F('homeTeam__shortname'),\n",
" away=F('awayTeam__shortname'),\n",
" home_lat=F('homeTeam__latitude'),\n",
" home_lon=F('homeTeam__longitude'),\n",
" home_attr=F('homeTeam__attractivity'),\n",
" away_lat=F('awayTeam__latitude'),\n",
" away_lon=F('awayTeam__longitude'),\n",
" away_attr=F('awayTeam__attractivity'),\n",
" home_country=F('homeTeam__country'),\n",
" away_country=F('awayTeam__country'),\n",
").values()\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "bc191792",
"metadata": {},
"source": [
"#### Dataframe"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "1e404cf8",
"metadata": {},
"outputs": [],
"source": [
"from sklearn.preprocessing import OneHotEncoder\n",
"\n",
"# create dataset\n",
"df = pd.DataFrame.from_records(games.values())\n",
"\n",
"# data cleaning\n",
"df['time'] = df['time'].replace('','0')\n",
"df = df[df['attendance'] != 0]\n",
"\n",
"\n",
"# pivots\n",
"pivot_homeTeam_mean = df.pivot_table('attendance','homeTeam_id',aggfunc='mean')\n",
"pivot_homeTeam_max = df.pivot_table('attendance','homeTeam_id',aggfunc='max')\n",
"\n",
"# add more features\n",
"df['weekday'] = df.apply(lambda r: r['date'].weekday(), axis=1)\n",
"df['day'] = df.apply(lambda r: r['date'].day, axis=1)\n",
"df['month'] = df.apply(lambda r: r['date'].month, axis=1)\n",
"df['year'] = df.apply(lambda r: r['date'].year, axis=1)\n",
"df['distance'] = df.apply(lambda r: distanceInKmByGPS(r['home_lon'],r['home_lat'],r['away_lon'],r['away_lat']), axis=1)\n",
"df['weekend'] = df.apply(lambda r: int(r['weekday'] in [6,7]), axis=1)\n",
"df['winter_season'] = df.apply(lambda r: int(r['month'] in [1,2,3,10,11,12]), axis=1)\n",
"df['home_base'] = df.apply(lambda r: pivot_homeTeam_mean.loc[r['homeTeam_id'],'attendance'], axis=1)\n",
"df['stadium_size'] = df.apply(lambda r: pivot_homeTeam_max.loc[r['homeTeam_id'],'attendance'], axis=1)\n",
"df['early'] = df.apply(lambda r: r['time'].replace(':','') < \"1800\", axis=1)\n",
"df['before2010'] = df.apply(lambda r: r['historic_season'].split('-')[0] < \"2010\", axis=1)\n",
"\n",
"\n",
"# one hot encoding\n",
"ohe_fields = ['home_country']\n",
"\n",
"for field in ohe_fields:\n",
" ohe = OneHotEncoder()\n",
" transformed = ohe.fit_transform(df[[field]])\n",
" df[ohe.categories_[0]] = transformed.toarray()\n",
"\n",
"# sort label to last index\n",
"cols = list(df.columns)\n",
"cols.append(cols.pop(cols.index('attendance')))\n",
"df = df[cols]"
]
},
{
"cell_type": "markdown",
"id": "e2ea08e5",
"metadata": {},
"source": [
"#### Train/Test Data - Normalization"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "74e12f87",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np \n",
"import pandas as pd \n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"from sklearn.model_selection import train_test_split, cross_val_predict\n",
"from sklearn import metrics\n",
"from sklearn.ensemble import RandomForestRegressor\n",
"\n",
"\n",
"remove_columns = ['season_id', 'resultEntered', 'reversible', 'reschedule', 'homeGoals', 'awayGoals',\n",
" 'homeGoals2', 'awayGoals2', 'homeGoals3', 'awayGoals3', 'home', 'away', 'date', 'time',\n",
" 'id', 'homeTeam_id', 'awayTeam_id', 'historic_season',\n",
" 'home_country','home_lat','home_lon','away_lat','away_lon','away_country']\n",
"feature_cols = list(set(df.columns[:-1]) - set(remove_columns))\n",
"# feature_cols = ['weekday','weekend','home_base','distance','winter_season']\n",
"label = 'attendance'\n",
"\n",
"\n",
"X = df[feature_cols] # Features\n",
"y = df[label] # Target variable\n",
"\n",
"X_train, X_test, y_train, y_test = train_test_split(\n",
" X, y, test_size=0.3, random_state=1) # 70% training and 30% test"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "3a05ac61",
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import pandas as pd\n",
"from pandas import DataFrame,Series\n",
"from sklearn import tree\n",
"import matplotlib\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from sklearn import svm\n",
"from sklearn.preprocessing import StandardScaler\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"import seaborn as sns\n",
"from sklearn import neighbors\n",
"from sklearn import linear_model"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "76e774e8",
"metadata": {},
"outputs": [],
"source": [
"X_Train=X_train.values\n",
"X_Train=np.asarray(X_Train)\n",
"\n",
"# Finding normalised array of X_Train\n",
"X_std=StandardScaler().fit_transform(X_Train)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "45e08026",
"metadata": {},
"outputs": [],
"source": [
"number_of_samples = len(y_train)\n",
"np.random.seed(0)\n",
"random_indices = np.random.permutation(number_of_samples)\n",
"num_training_samples = int(number_of_samples*0.75)\n",
"x_train = X_Train[random_indices[:num_training_samples]]\n",
"y_train=y[random_indices[:num_training_samples]]\n",
"x_test=X_Train[random_indices[num_training_samples:]]\n",
"y_test=y[random_indices[num_training_samples:]]\n",
"y_Train=list(y_train)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "470425b6",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train error = 98.11885891315514 percent in Ridge Regression\n",
"Test error = 100.86230814227264 percent in Ridge Regression\n"
]
}
],
"source": [
"model=linear_model.Ridge()\n",
"model.fit(x_train,y_train)\n",
"y_predict=model.predict(x_train)\n",
"\n",
"error=0\n",
"for i in range(len(y_Train)):\n",
" error+=(abs(y_Train[i]-y_predict[i])/y_Train[i])\n",
"train_error_ridge=error/len(y_Train)*100\n",
"print(\"Train error = \"'{}'.format(train_error_ridge)+\" percent in Ridge Regression\")\n",
"\n",
"Y_test=model.predict(x_test)\n",
"y_Predict=list(y_test)\n",
"\n",
"error=0\n",
"for i in range(len(y_test)):\n",
" error+=(abs(y_Predict[i]-Y_test[i])/y_Predict[i])\n",
"test_error_ridge=error/len(Y_test)*100\n",
"print(\"Test error = \"'{}'.format(test_error_ridge)+\" percent in Ridge Regression\")"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "88b4de2f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Residual plot in Ridge Regression')"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"matplotlib.rcParams['figure.figsize'] = (6.0, 6.0)\n",
"\n",
"preds = pd.DataFrame({\"preds\":model.predict(x_train), \"true\":y_train})\n",
"preds[\"residuals\"] = preds[\"true\"] - preds[\"preds\"]\n",
"preds.plot(x = \"preds\", y = \"residuals\",kind = \"scatter\")\n",
"plt.title(\"Residual plot in Ridge Regression\")"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "f2f52314",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train error = 86.04732435905834 percent in Knn algorithm\n",
"Test error = 29.305494469835775 percent in knn algorithm\n"
]
}
],
"source": [
"n_neighbors=5\n",
"knn=neighbors.KNeighborsRegressor(n_neighbors,weights='uniform')\n",
"knn.fit(x_train,y_train)\n",
"y1_knn=knn.predict(x_train)\n",
"y1_knn=list(y1_knn)\n",
"\n",
"error=0\n",
"for i in range(len(y_train)):\n",
" error+=(abs(y1_knn[i]-y_Train[i])/y_Train[i])\n",
"train_error_knn=error/len(y_Train)*100\n",
"print(\"Train error = \"+'{}'.format(train_error_knn)+\" percent\"+\" in Knn algorithm\")\n",
"\n",
"y2_knn=knn.predict(x_test)\n",
"y2_knn=list(y2_knn)\n",
"error=0\n",
"for i in range(len(y_test)):\n",
" error+=(abs(y2_knn[i]-Y_test[i])/Y_test[i])\n",
"test_error_knn=error/len(Y_test)*100\n",
"print(\"Test error = \"'{}'.format(test_error_knn)+\" percent\"+\" in knn algorithm\")"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "06ed0796",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Residual plot in Knn')"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"matplotlib.rcParams['figure.figsize'] = (6.0, 6.0)\n",
"preds = pd.DataFrame({\"preds\":knn.predict(x_train), \"true\":y_train})\n",
"preds[\"residuals\"] = preds[\"true\"] - preds[\"preds\"]\n",
"preds.plot(x = \"preds\", y = \"residuals\",kind = \"scatter\")\n",
"plt.title(\"Residual plot in Knn\")"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "27215d99",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train error = 98.41770536088067 percent in Bayesian Regression\n",
"Test error = 6.2704745296132876 percent in Bayesian Regression\n"
]
}
],
"source": [
"reg = linear_model.BayesianRidge()\n",
"reg.fit(x_train,y_train)\n",
"y1_reg=reg.predict(x_train)\n",
"y1_reg=list(y1_reg)\n",
"y2_reg=reg.predict(x_test)\n",
"y2_reg=list(y2_reg)\n",
"\n",
"error=0\n",
"for i in range(len(y_train)):\n",
" error+=(abs(y1_reg[i]-y_Train[i])/y_Train[i])\n",
"train_error_bay=error/len(y_Train)*100\n",
"print(\"Train error = \"+'{}'.format(train_error_bay)+\" percent\"+\" in Bayesian Regression\")\n",
"\n",
"error=0\n",
"for i in range(len(y_test)):\n",
" error+=(abs(y2_reg[i]-Y_test[i])/Y_test[i])\n",
"test_error_bay=(error/len(Y_test))*100\n",
"print(\"Test error = \"+'{}'.format(test_error_bay)+\" percent\"+\" in Bayesian Regression\")"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "c68c7026",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Residual plot in Bayesian Regression')"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZ0AAAGDCAYAAADwA81JAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABNrklEQVR4nO3deZwcdZn48c/TPUeGTI7JJASSSQiSIJsgRBgFBBUBOUQTXBDPBV2U3Z+yq+tBcF3EhT0Ed1VYj10UV/BCBDVZQBFB5JAAAyaBcGU4MwkhyWRyTJjM+fz+qG8nNT1VPT3TXcf0PO/Xa5Lub1VXf7v6eOp7i6pijDHGxCGTdAaMMcaMHxZ0jDHGxMaCjjHGmNhY0DHGGBMbCzrGGGNiY0HHGGNMbCzomLIRkQ+LyO8KbL9HRD5ehuc5UUTaRvnYj4rI/aXmwR1rroh0iki2HMdLmoj8t4hcmnQ+0sbOS3lZ0BmnRORFEelyP5qbROSHIlJfyjFV9Seqemq58pi04YKkqr6sqvWq2j+KY58oIgPu/HeKyAYR+efSclwaVf1bVb2i3MfNe627ROQZEflYuZ8nKlGdl/HKgs749h5VrQcWA28EvphsdsadjS5o1QMnABeIyFkJ5ykqG93rnAz8A/A9EXl9uZ9ERKrKfUxTXhZ0DKq6CbgDL/gAICLHisifRGS7iKwWkRN92z4qIs+7q9YXROTDvvT7ffu9U0SeFpEdIvItQHzbviIiP/bdnycimvvREJGPichT7jmeF5G/Kfb1uOP8vXvcVhH5mogEftZF5C0i8ojL4yMi8haX/q/AW4FvuSv0bwU8Nj/P94jIFSLygMv370RkejF5VtUXgD8BC33Hv1pE1ovIThF5VETe6tIPEJHXRKTRt+9RIrJFRKrd/b92569DRO4QkYNcuojIN0Rkszvu4yJyuNv2QxH5F3e7QURudcfscLebfM83qteqntuBbcAR7lgZEblERJ4TkXYRuUlEpvme6zwRecltu9SV0k9x274iIjeLyI9FZCfwURGZIiLXicgrrgT5L+KqQEVkvoj80b3fW0Xk5yM5L+7+J0SkVUS2icgKEZnl26Yi8rcisk687863RWTv595Y0DGA+zE5A2h192cDtwH/AkwDPg/cIiIzRGQicA1whqpOAt4CrAo45nTgl8A/AdOB54DjR5CtzcC78a6MPwZ8Q0SOGsHj3ws0A0cBS4G/DsjjNLzXeQ3QCHwduE1EGlX1S8B9wEWuNHJRkc/7IZff/YEavHM3LBFZgHd+VvqSH8G7EJgG/BT4hYhMcBcJ9wDn+vb9K+BGVe0VkaXAPwJ/Ccxwr+Nnbr9TgbcBhwJT3DHaA7KUAf4XOAiYC3QB+YF3xK/VBZgleJ+JVpf8d8BZwNuBWUAH8G23/0LgO8CHgQNdnmfnHXYpcDMwFfgJ8EOgD5iPV4I/FchVk14B/A5oAJqA/3LpRZ0XETkJ+He3/UDgJeDGvN3eDbwJL6ieC5w2zGkZX1TV/sbhH/Ai0AnsAhS4C5jqti0DfpS3/x3A+cBEYDtwNlCXt89Hgfvd7fOAlb5tArQBH3f3vwL82Ld9nstHVUh+fw182t0+EWgr8NoUON13/5PAXQF5/Cvg4bzHPgh81N2+J5ffkOcZlGe3/z/lPe9vQx57IjDgzuVOd5xfAjUFnq8DONLdfj/wgLudBTYBb3b3fwNc4HtcBngNL4CcBDwLHAtk8o7/Q+BfQp57MdDhuz/a19oN9AOf8W1/CjjZd/9AoBeoAr4M/My3bT+gBzjF9zm617d9pnuOOl/aB4E/uNs3ANcCTXl5LOq8ANcBV/m21bu8zvN99k7wbb8JuCSO7/RY+bOSzvh2lnqllROBw/CuPsH7cXqfqx7YLiLb8docDlTV3Xg/eH8LvCIit4nIYQHHngWsz91R7xu4PmC/QCJyhoisdFUY24F3+fJXDP9zveTyE5THl/LSXmLolfRIbPLdfg3vRynMRlWdqqqT8a7Su4DrcxtF5POuimyHOwdT2HcOlgMLReRg4J3ADlV92G07CLja995twwv6s1X1brwSy7eBzSJyrYhMzs+YiOwnIv/jqrV2AvcCU2VwT70Rv1a8kus1eD/yOQcBv/Ll9ym8wDSToZ+j1xhaAvG/1wcB1Xifzdzx/gevNAZwsTsXD4vIWhH5a3fcos4LeZ8ZVe10+fF/ZkZyXsYdCzoGVf0j3tXcf7ik9Xglnam+v4mq+lW3/x2q+k68K9Knge8FHPYVYE7ujqvXnuPbvhvvqjXnAN++tcAtLj8z3Y/V7fjahIrgf665wMaAfTbi/UiRt+8Gdzu2KdhVdQdeFdp7AMRrv7kYr3qmwZ2DHbhzoKp78K6iP4JXYvuR73Drgb/Je//qVPVP7rHXqOrReO1HhwJfCMjS54DXA8e4oPg2l15S+4SqduOVpN8g+zpNrMerrvXnd4KqbsD7HPnbkurwqkIHHdZ3ez1eSWe671iTVXWRe/5NqvoJVZ0F/A3wHRGZ77YVc14GfWZcdXMj+z4zZhgWdEzON4F3isiRwI+B94jIaSKSFZEJ4nV7bRKRmSKy1H3ZuvGq6AYCjncbsEhE/lK8hva/xxdY8NqB3ibeWJcpDO45VwPUAluAPhE5A6/OfSS+IF5j+Bzg08DPA/a5HThURD4kIlUi8n68H5xb3fZXgdeN8HlHRbzu6h8A1rqkSXjtEluAKhH5Ml4pwe8GvOrCJQwOOv8NfFFEFrljTxGR97nbbxKRY8TrcLAb2EPw+zcJr+S13bV9XVbyi3RUtQf4T7yqs1x+/1X2dXaY4dqlwGureY94HT5q8KrTQgOfqr6C12bznyIy2bUhHSIib3fHfp/s6xDRgRewBkZwXn4GfExEFruLo38DHlLVF0d3NsYfCzoGAFXdgvcj9mVVXY/XOPuPeD966/Gu+jLu77N4V3zb8Bp//1/A8bYC7wO+ilf9sAB4wLf9TrxAsAZ4lH0/9KjqLrwgdRPeD8OHgBUjfEnL3XFX4QXA6wLy2I7X6Ps5l8eLgXe7vANcDZwjXu+ta0b4/MWYJW6cDl6VzTS8BnPw2tB+i9fO8BLej+Cg6klVfQDvh/ExVfVX+fwKuBK40VWNPYHXUQS8wPU9vPP6Et7r/lpA3r4J1AFb8To3/LbE15rvB8BcEXkP3nleAfxORHa55zvGvZa1eB0NbsQr9XTidTLpLnDs8/AuXJ7Ee50345XKwWvgf8id8xV47YTPU+R5UdXfA5filcRfAQ7Bu1gwRRKvqt2YyiEiCixQ1dZhdx7jRORu4Keq+v2k8xIHVyLcjvf+vpBwdswoWEnHmDFKRN6E1yU8qOqwYojIe1zHhol47XyP4/W+NGOQBR1jxiARuR74PV7X411J5ydiS/GqczfiVdN+QK2KZsyy6jVjjDGxsZKOMcaY2FjQMcYYExubkTXP9OnTdd68eUlnwxhjxpRHH310q6rOGG4/Czp55s2bR0tLS9LZMMaYMUVE8qeUCmTVa8YYY2JjQccYY0xsLOgYY4yJjQUdY4wxsbGgY4wxJjYWdIwxxsTGgo4xxpjYWNAxxhgTGws6xhhjYmNBxxiTeu2d3axev532zkILhpqxwKbBMcak2vJVG1h2yxqqMxl6Bwa46uwjWLJ4dtLZGnPaO7tp6+iiqaGOxvraxPJhQccYk1rtnd0su2UNe3oH2MMAABffsobj509P9IdzrElT4LbqNWNMarV1dFGdGfwzVZ3J0NbRlVCOxh5/4N7V3cee3gEuvmVNYlWViQYdEZkqIjeLyNMi8pSIHCci00TkThFZ5/5vcPuKiFwjIq0iskZEjvId53y3/zoROd+XfrSIPO4ec42ISBKv0xgzOk0NdfQODAxK6x0YoKmhLqEcjT1pC9xJl3SuBn6rqocBRwJPAZcAd6nqAuAudx/gDLz10RcAFwLfBRCRacBlwDHAm4HLcoHK7fMJ3+NOj+E1GWPKpLG+lqvOPoIJ1Rkm1VYxoTrDVWcfYVVrI5C2wJ1Ym46ITAHeBnwUQFV7gB4RWQqc6Ha7HrgHWAYsBW5QVQVWulLSgW7fO1V1mzvuncDpInIPMFlVV7r0G4CzgN9E/+qMMeWyZPFsjp8/PRWN4GNRLnBfnNemk9R5TLIjwcHAFuB/ReRI4FHg08BMVX3F7bMJmOluzwbW+x7f5tIKpbcFpA8hIhfilZ6YO3fu6F+RMSYSjfW1FmxKkKbAnWT1WhVwFPBdVX0jsJt9VWkAuFKNRp0RVb1WVZtVtXnGjGFXWzXGmDGnsb6WI+dMTTx4Jxl02oA2VX3I3b8ZLwi96qrNcP9vdts3AHN8j29yaYXSmwLSjTHGJCSxoKOqm4D1IvJ6l3Qy8CSwAsj1QDsfWO5urwDOc73YjgV2uGq4O4BTRaTBdSA4FbjDbdspIse6Xmvn+Y5ljDEmAUkPDv074CciUgM8D3wMLxDeJCIXAC8B57p9bwfeBbQCr7l9UdVtInIF8Ijb7/JcpwLgk8APgTq8DgTWicAYYxIkXrOJyWlubtaWlpaks2GMMWOKiDyqqs3D7Zf0OB1jjDHjiAUdY4wxsbGgY4wxJjYWdIwxxsTGgo4xxpjYWNAxxhgTGws6xhhjYmNBxxhjTGws6BhjjImNBR1jjDGxsaBjjDEmNhZ0jDHGxMaCjjHGmNhY0DHGGBMbCzrGGGNiY0HHGGNMbCzoGGOMiY0FHWOMMbGxoGOMMSY2FnSMMcbExoKOMcaY2FjQMcYYExsLOsYYY2JjQccYY0xsLOgYY4yJjQUdY4wxsbGgY4wxJjYWdIwxxsTGgo4xxpjYWNAxxhgTGws6xhhjYmNBxxhjTGws6BhjjImNBR1jjDGxsaBjjDEmNokGHRF5UUQeF5FVItLi0qaJyJ0iss793+DSRUSuEZFWEVkjIkf5jnO+23+diJzvSz/aHb/VPVbif5XGGGNy0lDSeYeqLlbVZnf/EuAuVV0A3OXuA5wBLHB/FwLfBS9IAZcBxwBvBi7LBSq3zyd8jzs9+pdjjDEmTBqCTr6lwPXu9vXAWb70G9SzEpgqIgcCpwF3quo2Ve0A7gROd9smq+pKVVXgBt+xjDHGJCDpoKPA70TkURG50KXNVNVX3O1NwEx3ezaw3vfYNpdWKL0tIH0IEblQRFpEpGXLli2lvB5jjDEFVCX8/Ceo6gYR2R+4U0Se9m9UVRURjToTqnotcC1Ac3Nz5M9njDHjVaIlHVXd4P7fDPwKr03mVVc1hvt/s9t9AzDH9/Aml1YovSkg3RhjTEISCzoiMlFEJuVuA6cCTwArgFwPtPOB5e72CuA814vtWGCHq4a7AzhVRBpcB4JTgTvctp0icqzrtXae71jGGGMSkGT12kzgV64XcxXwU1X9rYg8AtwkIhcALwHnuv1vB94FtAKvAR8DUNVtInIF8Ijb73JV3eZufxL4IVAH/Mb9GWOMSYh4HbtMTnNzs7a0tCSdDWOMGVNE5FHf0JdQSfdeM8YYM45Y0DHGGBMbCzrGGGNiY0HHGGNMbCzoGGOMiY0FHWOMMbGxoGOMMSY2FnSMMcbExoKOMcaY2FjQMcYYExsLOsYYY2JjQScC7Z3drF6/nfbO7qSzYowpgX2Xyy/pRdwqzvJVG1h2yxqqMxl6Bwa46uwjWLI4cMFSY0yK2Xc5GlbSKaP2zm6W3bKGPb0D7OruY0/vABffssaukowZY+y7HB0LOmXU1tFFdWbwKa3OZGjr6EooR8aY0bDvcnQs6JRRU0MdvQMDg9J6BwZoaqhLKEfGmNGw73J0LOiUUWN9LVedfQQTqjNMqq1iQnWGq84+gsb62qSzZkzkKqnR3b7L0bGVQ/OUY+XQ9s5u2jq6aGqosw+pGRcqtdHdvsvFK3blUOu9FoHG+lr7gJpxw9/ovgevSuriW9Zw/PzpY/57YN/l8rPqNWNMSazR3YyEBR1jTEms0d2MhAUdY0xJrNHdjIS16RhjSrZk8WyOnz/dGt3NsCzoGGPKwhrdTTGses0YY0xsLOgYY4yJjQUdY4wxsbGgY4wxJjYWdIwxxsTGgo4xxpjYWNAxxhgTGws6xhgzDqRl6QkbHFomNgW6MSat0rT0hAWdMkjTG2qMMX5pW3oi8eo1EcmKyJ9F5FZ3/2AReUhEWkXk5yJS49Jr3f1Wt32e7xhfdOnPiMhpvvTTXVqriFwSRf79b+iu7j729A5w8S1rEi/CGmMMpG/picSDDvBp4Cnf/SuBb6jqfKADuMClXwB0uPRvuP0QkYXAB4BFwOnAd1wgywLfBs4AFgIfdPuWVdreUGOM8Uvb0hOJBh0RaQLOBL7v7gtwEnCz2+V64Cx3e6m7j9t+stt/KXCjqnar6gtAK/Bm99eqqs+rag9wo9u3rNL2hhpjjF/alp5Iuk3nm8DFwCR3vxHYrqp97n4bkGscmQ2sB1DVPhHZ4fafDaz0HdP/mPV56ceUOf9739CL89p0rDOBMSYt0rT0RGJBR0TeDWxW1UdF5MSk8uHyciFwIcDcuXNH/Pg0vaHGGBMkLUtPJFnSOR5YIiLvAiYAk4GrgakiUuVKO03ABrf/BmAO0CYiVcAUoN2XnuN/TFj6IKp6LXAtQHNzs47mxaTlDTXGmDRLrE1HVb+oqk2qOg+vI8Ddqvph4A/AOW6384Hl7vYKdx+3/W5VVZf+Ade77WBgAfAw8AiwwPWGq3HPsSKGl2aMMSZE0m06QZYBN4rIvwB/Bq5z6dcBPxKRVmAbXhBBVdeKyE3Ak0Af8ClV7QcQkYuAO4As8ANVXRvrKzHGGDOIeIUFk9Pc3KwtLS1JZ8MYY8YUEXlUVZuH2y8N43SMMcaMExZ0jDHGxMaCjjHGmNhY0DHGGBMbCzrGGGNiY0HHGGNMbCzoGGOMiY0FHWOMGaW0LAE9lqRxRgJjjEk9WzF4dKykY4wxI2QrBo+eBR1jKoRV9cTHVgwePateM6YCWFVPvGzF4NGzko4xY5xV9cQvbUtAjyVW0jFmjMtV9exh35V3rqrHfgSjYysGj44FHWPGOKvqSY6tGDxyVr1mzBhnVT1mLLGSjjEVwKp6zFhhQceYCmFVPWYssOo1Y4wxsbGgY4wxJjYWdIwxxsTGgo4xxpjYWNAxxhgTGws6xhhjYmNBxxhjTGws6BhjjImNBR1jjDGxsaBjjDEmNhZ0jDHGxMaCjjHGmNhY0DHGGBMbCzrGGGNiU1TQEZHjRWSiu/0REfm6iBwUbdaMMcZUmmJLOt8FXhORI4HPAc8BN0SWK2OMMRWp2KDTp6oKLAW+parfBiZFly1jjDGVqNigs0tEvgh8BLhNRDJAdSlPLCITRORhEVktImtF5J9d+sEi8pCItIrIz0WkxqXXuvutbvs837G+6NKfEZHTfOmnu7RWEbmklPwaY4wpXbFB5/1AN3CBqm4CmoCvlfjc3cBJqnoksBg4XUSOBa4EvqGq84EO4AK3/wVAh0v/htsPEVkIfABYBJwOfEdEsiKSBb4NnAEsBD7o9jXGGJOQooKOqm5S1a+r6n3u/suqWlKbjno63d1q96fAScDNLv164Cx3e6m7j9t+soiIS79RVbtV9QWgFXiz+2tV1edVtQe40e1rjDEmIVWFNorILrxAMGQTXtyYXMqTu9LIo8B8vFLJc8B2Ve1zu7QBs93t2cB6vCfuE5EdQKNLX+k7rP8x6/PSjyklv8YYY0pTMOioaqSdBVS1H1gsIlOBXwGHRfl8YUTkQuBCgLlz5yaRBWOMGRdGNDhURPYXkbm5v3JlQlW3A38AjgOmikguGDYBG9ztDcAcl48qYArQ7k/Pe0xYetDzX6uqzaraPGPGjHK8JGOMMQGKHRy6RETWAS8AfwReBH5TyhOLyAxXwkFE6oB3Ak/hBZ9z3G7nA8vd7RXuPm773a4b9wrgA65328HAAuBh4BFggesNV4PX2WBFKXk2xWvv7Gb1+u20d3YnnZVxw865GQsKVq/5XAEcC/xeVd8oIu/A6z5digOB6127Tga4SVVvFZEngRtF5F+APwPXuf2vA34kIq3ANrwggqquFZGbgCeBPuBTrtoOEbkIuAPIAj9Q1bUl5tkUYfmqDSy7ZQ3VmQy9AwNcdfYRLFk8e/gHmlGzc27GCvEKC8PsJNKiqs0ishp4o6oOiMhq1925ojQ3N2tLS0vS2Riz2ju7Of7Ku9nTO7A3bUJ1hgeWnURjfW2COatcds5NGojIo6raPNx+xbbpbBeReuBe4CcicjWwu5QMmsrU1tFFdWbwx6o6k6GtoyuhHFU+O+dmLCk26CwFuoB/AH6L17X5PVFlyoxdTQ119A4MDErrHRigqaEuoRxVPjvnZiwpdnDoblXtV9U+Vb1eVa9R1faoM2fGnsb6Wq46+wgmVGeYVFvFhOoMV519hFXzRMjOuRlLim3T8Q8SrcGbPWB3qYND08jadMqjvbObto4umhrq7McvJnbOTZKKbdMpqveaf5Cob+qZY0efPVPpGutr7YcvZnbOy88CefkV22V6Lzc25tcichlgMzcbYyqSdUOPRlFBR0T+0nc3AzQDeyLJkTHGJKy9s5tlt6xhT+8Ae/A6aVx8yxqOnz/dSjwlKrak4++p1oc3I4HN2GyMqUi5bui5gAP7uqFb0ClNsW06H4s6I8YYkxbWDT06wy1t8F8EL20AgKr+fdlzZIwxCct1Q784r03HSjmlG66kk+s7fDze6ps/d/ffhzfXmTHGVKQli2dz/Pzp1nutzIZbT+d6ABH5f8AJucXVROS/gfuiz54xxiTHuqGXX7HT4DQA/oGg9S7NGGOMKVqxvde+CvxZRP6At1T124CvRJUpY4wxlanY3mv/KyK/AY5xSctUdVN02TLGGFOJClavichh7v+jgFnAevc3y6UZY4wxRRuupPNZ4ELgPwO2KXBS2XNkjDGmYg3Xe+1C9/874smOMcaYSlZU7zUReZ+ITHK3/0lEfikib4w2a8YYYypNsV2mL1XVXSJyAnAKcB3w39FlyxhjTCUqNuj0u//PBK5V1dvwFnMzxhhjilZs0NkgIv8DvB+4XURqR/BYY4wxBig+cJwL3AGcpqrbgWnAF6LKlDHGFNLe2c3q9dtp7+xOOitjXtznstjBoa+JyGbgBGAd3po666LMmDHGBLEVPcsniXNZbO+1y4BlwBddUjXw46gyZYwxQfwreu7q7mNP7wAX37LGSjyjkNS5LLZ67b3AEmA3gKpuBCZFlSljjAmSW9HTL7eipxmZpM5lsUGnR1UVt6CbiEyMLkvGGBPMVvQsn6TO5bBBR0QEuNX1XpsqIp8Afg98L9KcGWNMntyKnhOqM0yqrWJCdcZW9BylpM6leAWYYXYSeRxvHrZT8ZY2uENV74w0Zwlpbm7WlpaW4Xc0xiSmvbPbVvQsk3KdSxF5VFWbh9uv2PV0HgO2q6p1kzbGJM5W9CyfuM9lsUHnGODDIvISrjMBgKoeEUmujDHGVKRig85pkebCGGPMuFDs4NCXos6IMcaYymfzpxljjImNBR1jjDGxSSzoiMgcEfmDiDwpImtF5NMufZqI3Cki69z/DS5dROQaEWkVkTUicpTvWOe7/deJyPm+9KNF5HH3mGvcmCNjjDEJSbKk0wd8TlUXAscCnxKRhcAlwF2qugC4y90HOANY4P4uBL4LXpACLsPrYfdm4LJcoHL7fML3uNNjeF3GmBjYTNNjU7G918pOVV8BXnG3d4nIU8BsYClwotvteuAevMlGlwI3uOl4VorIVBE50O17p6puAxCRO4HTReQeYLKqrnTpNwBnAb+J4eUZYyJkM02PXalo0xGRecAbgYeAmS4gAWwCZrrbs4H1voe1ubRC6W0B6UHPf6GItIhIy5YtW0p7McaYSNlM02Nb4kFHROqBW4DPqOpO/zb/JKNRUtVrVbVZVZtnzJgR9dMZY0pgM02PbYkGHRGpxgs4P1HVX7rkV121Ge7/zS59AzDH9/Aml1YovSkg3RgzhtlM02Nbkr3XBLgOeEpVv+7btALI9UA7H1juSz/P9WI7FtjhquHuAE4VkQbXgeBUvAlJXwF2isix7rnO8x0rUtbAmT72nkQvrnOcmx25tkrYrzpLbZXYTNMlivP7kVhHAuB44K+Ax0VklUv7R+CrwE0icgHwEnCu23Y78C6gFXgN+BiAqm4TkSuAR9x+l+c6FQCfBH4I1OF1IIi8E4E1cKaPvSfRi/sce3Xu4s15rzYSohRxv3dFLW0wnpSytEF7ZzfHX3k3e3r3Ff0nVGd4YNlJdhWWkNZXd3HGNffR27/vc16p70lS0/3H/bm371n5lPNcFru0QeIdCSpJW0cXOjA4iOuAWgNnQpav2sBp37x3UMCBymx0Xr5qA8dfeTcf+f5DHH/l3axYFV/zZdwN+9aRoHjDVZuFnbMoz2WS1WsVZ2JNlu68H7jufmViTTahHI1f7Z3dXHzzavoDCvI9/f0V1ejs70K8B++K9eJb1nD8/OmxXPnH3bBvHQmKU0y12cSa7KBSDsCe3oFIf7OspFNGu3v6mVA9+JROqM6wu6c/oRyNX20dXWQl+ON90TsWVFQ1TNJX/nEve2xLVg+v2LFMu3v6qc0ObhOrzUqkv1lW0imjsCstuwKLX1NDHf06MCS9tirDh46Zm0COopOGK/8li2dz/PzpsbUpxf18Y03uQiRX8oV9FyL+c9XUUIdkBH+VgGQk0s+OlXTKyK7A0qOxvpavnXMkVb5PeHVW+No5lfd+pOVz11hfy5Fzpsb2vHE/31hS7IVIEp8d672Wp5TeazlJ9SIyQ7V3drN2405AWTRrSkW/H/a5M34rVm3g4iK7Qpfjs1Ns7zULOnnKEXSMMSYN4rwQKTboWJtOBFpf3cWq9dtZPGcq82dOSjo7xphRGuulx8b62tTl24JOmX35149zw8qX994/77i5XL70DQnmyJjKFHVAsJksomEdCcqo9dVdgwIOwA0Pvkzrq7sSypExlSnqwbC2fEJ0LOiU0ar120eUbowZuTgCQtJjnyqZBZ0yWjxn6ojSTTxshunKEkdASMPYp0plbTpl1DCxhoyAf/q1jHjpJhlWL1954ggIufEr+V2O09YoPxZZ0Cmjto4uJtZUsau7b2/axJqqIaOATTySnpPMRCOugGCzHkTDgk4ZWZE8XYqdCsSMPXEFhDR2OR7rrE2njNIyHYnx2EVAZbNpcMYmK+mUmRXJ08Pq5Y1JHws6EbAieXrYRYAx6WJBx1Q8uwgwJj2sTcdEwsbGGGOCWEnHlJ2NjTHGhLGSTpnYlb3H5qwycbDv29hlJZ0ysCv7fWxsjImafd/GNivplMiu7AezsTEmSvZ9G/ss6JTIZqMdLG0DZK0aprIEfd+yGRm337exyKrXSmRX9kOlZWyMVcNUnqDv2+7ufp7YsIMjbTb3IdK48qmVdErUWF/Luc1Ng9KWHDmLto6ucX11nfQUJUHVMJ//xWpbUG+Ma6yv5dJ3LxySfsVtT47r71uQqBe6Gy0LOiVq7+zmppa2QWk3tbTx4e+vTNUbHbekq7WCqmF6+pV3/df94/Y9qRSHz5pCbZUMSbcqtn3S3PZlQadEQT9uAJ3d/al6o+OUhiuspoY6unr7hqT39I3P96SSTKzJ0t2ng9L29A4wsSZb9udK+uJptNLc1mxtOiUKqmP2G2/dhdO0ho0igA5Jr9T3JI3191HY3dNPbVbo7t/33tZmhd09/WV9nrHcJpjmtmYr6ZTI31sr6EorLW90XNJyhbV24w76B4YGHKjM92T5qg285at388HvreQtX63sat2mhjokM7h6TTJS1vc0zdVTxUhbL1I/K+mUgb+31r/d/iQPvdCxd9ubDmpIxRsdl6Bqra7evgR+5IfW+eec29xUUe9Je2c3n//Fanp9V/6f+8Xqil0hNfeD+vlfrELIoJR/yYqwi6SxVEJOSy/SfFbSKZPG+lom1mQHBRyA+1rbx12PKREpeD8Os6ZMCN3204deHjNXrMVYu3HHoIAD0NuvrN24I6EcRe/+1q309EN3/wA9/dDy0rayHn9iTZY9vYOrp6JqN4pS0r1Ig1jQKaNV67ePKL0StXV0MaFq8BdzQlU29uq13T39ZENiXd8ArN24M9b8RCssqMcf7ONw7R+fG9Jj9IYHXy7rxV2u3cgvinajpCTZQcKq18poccjgtLD0StTUUMeevsFfzD19/bFXr02sydIf3KTjFNw4piyaNZmqjBdMc6oyXnqlae/s5srfPh247f7WrcyfOaksz7O33cj3ISp3u1FSku4gkWhJR0R+ICKbReQJX9o0EblTRNa5/xtcuojINSLSKiJrROQo32POd/uvE5HzfelHi8jj7jHXSMT1PPNnTuK84+YOSjvvuLll+yKMFapa8H4cdvf0M6E6+ONdnRUWzZoSc46i01hfy9fPXUxtlbBfdZbaKuHr5y5OVZVKubR1dBH2LZ5eX1O25ym2IX6sdalOQweJpEs6PwS+BdzgS7sEuEtVvyoil7j7y4AzgAXu7xjgu8AxIjINuAxoxrt8fVREVqhqh9vnE8BDwO3A6cBvonxBly99A0uOmMW967bytgXTaT64McqnS522ji7qqqvY1b2vM0FddVXsDbBhV6TVGeE/33dkxf0gL1k8m1lTJlT8525iTXZQic7vsAPKW7IbriE+6RLDSLW+uosVqzeSzYvacQ8hSDToqOq9IjIvL3kpcKK7fT1wD17QWQrcoN5l80oRmSoiB7p971TVbQAicidwuojcA0xW1ZUu/QbgLCIKOi0vtHPvuq0I8D/3PU91JsO19z2f+g9iuaVlfEDuSvWzN60a9CPVO6C0vLSt4t6TL//6cW5Y+TIA19zdynnHzeXypW9IOFflF9amUpPNRNLeErbUeZrGoxXD//nIF/f3M40dCWaq6ivu9iZgprs9G1jv26/NpRVKbwtIH0JELhSRFhFp2bJly4gz/JHvr+Sc/1nJNXe3cvXdrWO2b385BM1Fl1QX5ePnTycTUBdT7kbnpLW+umvID0oSrzGOqqbevuDA0h/zD2daxqMVI+jzAbBfTTaR8TtpDDp7uVJN5A0CqnqtqjaravOMGTNG9NiWF9q5v7U9dHsGqbCeUoWFzUWXROBt6+giZHxoRfUoTEOvybgGp77Y/lrwhpi75aelRD+c9s5uVqzeGLjt4ycczAPLToq91J/GoPOqqzbD/b/ZpW8A5vj2a3JphdKbAtLL6t51Wwtuf623n0/c0FLRI8T90nQF6NX/B0edSupROK9xvxGll1tucGp33wCv9fTT3TfA536xOpILjbD3rbYqms9Y66u7+OEDL3Dr6g2DXk+aR/zn5OZA/P59zwduf9uCZKoCk+5IEGQFcD7wVff/cl/6RSJyI15Hgh2q+oqI3AH8W66XG3Aq8EVV3SYiO0XkWLyOBOcB/1XuzL5twXSuubu14D7dbpLJtNb3llN6ZiQInqMLYHHTlIrqUVhdlaU6K4MGiFZnheqqeAYyFhqc+rZD9y/rc82fOYlzm2dzU8vgi7juvvKXMvLbQTIC33z/4r0lg7SO+IfBbU5BqjLE9vnIl3SX6Z8BDwKvF5E2EbkAL9i8U0TWAae4++D1PnseaAW+B3wSwHUguAJ4xP1dnutU4Pb5vnvMc0TQiaD54EYOnTlxUFrT1Fr2yxu5nNb63iikYUYC8AKgBgyQfGrTzopqZ2tqqAv80Y8r0O/sGjqbd6H0Uh0yY+gFQ/+A0rG7p2zPEdQOMqDw+bwSXBpH/EP47Pc5VdlMYlWBSfde+2DIppMD9lXgUyHH+QHwg4D0FuDwUvI4nPbObl7eNjiYbOnsIX80eBrre6OQm5Ggt3/fD05uRoK4v5hX//5ZevqHXunVZJPJT1Tue3ZzaPpZR80J3FZeYc2u5W+Obe/s5j9+90zgtlXrt5etBBvWHiYiY+KzEzb7/YSqDIomWhWYxjadMSXoiqImm+Wid8xPdX1vVNLSwBrWYwegp7+yLgB++efg9sKw9HKbXFc9ovRStHV00Rcy1UTDfuV7vrC2I9X4SpClyG9zqsp4Va6ZjJD09EgWdEoU9CPb0z/AkXOmcutFJ/Djjx+TSA+RpKSly3ShnlsXvWN+RV0AHD23YUTp5bZo1hSq8+Ypi2rWh96+/tDyU8drvWV7nqDZRTIC/zGGBhYvWTybB5adxLc/fBTZTIbeft3b0SN/KEecMytY0ClR/hVFdVboHxjgUz95jHd/635eat89Zj6k5dDe2c1PHxpcwkhiVudCV721VZX1sf/IcfNGlF5ujfW1HHvwtEFpxx48LZLPfWiXacrfI/HypW/g5r85lk+89WD+/b2H88iXThmTF4+bd+4JTM+1Mce90m8ae6+NOUsWz2bhgZO5v3UL/3b7U/QOsHcamPHSay1n7cadQ6Ypyc3q/LZDRzYGqhSFrnr/485nOfvoylpTJ2jCz7i0vrqL+/LGquWW9ChHG4t/RdSwwLLkyAPL3iMxf5qbibVVqQ86/nN1f+tWlt2yhgxe7z6/3DINScysYEGnDJav2sDFN69BgPyZOHRAx0TDY7ns7Ar+sQ9Lj0qhq96qzNhoDC5W0vPdFRqcWmogCJrf7Lzj5nLDg/tK06cvnMk1HzyqwFFGbqxNcwODz1VP/wD9AwOh89RVZ2Djjj3s7umnOpPZ+xq9bdHOxVZZ9QwJ8A+M2xPwDnf365hb+KkUcTYqFzJ/5iTOPPyAwG19A2OjMbhYSY+NimpJj7AZkT998qH84xmHkRVvjZs/PLu57FVCaRrkXIz8c9XdFx5wAHoH4BM3tPDExh2xd/yxoFOioIFxfhOqo5mIMK3CVuwstJJnVC4/63CqAjrqnLV4VmqvVkcrfzxS0PikqES1pEfYD//ajTu56o6n6Vfvoq67T/nsTavK2m5YzLpQaVrWYLhxOUG6+wa44tYnufTMhbH2tLXqtZIN/+WupKvq4QTNApDUiotX//5Z+gKuB1as3siy0w+rmMCzduMO+vOm++kfiGZGgDBHHzSNnz/ShuCNzmk+aNpwDxlWWPf7nV09Rbcb+ts4Rvp+F1oXKm3LGoSNy8lXkxV6/DNXZDIcPnsKDyw7KbaZFaykU6KwK/j9qjPjanxOzt4VF/0k/sBbaJzOgGtnqxzJLledq9rJVTEHdckdjbD5zcJeV367YSm9snLtZH65drI0LISWL/9chfXQzJ8dJFeVFufMClbSKVHQlX11Bj7+1tex5MhZFTXHVzGC1rEZUHigdWusV4KFxun0VFg7W9LLVeeqdqJojA6a3+zeZ4OXH/G3G5baEaBQ9VqUr7cU+efq6rueHdTh4rzj5tJ80DQuziuhxZ1nCzolClpLvXcAfvDAC+NyETfw1rHJZjL0ueJ+b7/G3vOnUCN2bVVltbPllqv+ws2ryUqGfh3ga+fEN4gx6lko8hdSW79t6Fid/CBbjsCQP/NB7n5aZt0I4j9XYasYJz1JqVWvlchfrPVfPXd296ei2J2Eto4uarLJ9vwp1Hutv8J6r4F3lfunS07mZxcey58uOTnWC504Z6Fo7+zmitueHJL+z0sPH/R8pQaGtRt3Dpn5QF36WFjWALzqxY/84GH+94EX+cgPHt5bvZj0JKVW0imD3ODQFas3ct39z7O7J13F7ril5UrwH955KLc9sWlIetgaO2Nd2NLKUQtbuO/TJx9a9vwElWAm1mQ5PG/KnVxgGG1V0oaO4JkPculpXtYA0j3OyIJOGeQGh2ZE6OpN/sc2aY31tVx65kL++f/WUp3N0K/JzGq7u6d/SG+dnLhnSKhkbR1daF4gj2pQdFBbS9gErqUEhu6QZbH96bnj5UrwSf+Y+4XVKqThAtiCTolyg0PDxuokMdll0pav2sDltz5JNuMtLHbZkoWJtGsVDvaVV9oppXtwKSbWZIcslBfloOj8rswDBUquoy39nTB/BvBUSLonbd2m/SbWZIcs4Jab+iZp1qZTouEGh97U0jau2nT8MzR09Q7Q0z/AV1asTeQcNNbX8v/efkjgtllTKqv0GfekjX67e/qZUD34pySqQdFBXZn7lSGTzJZquAGvaew27ZfrVeuX1Hi5fFbSKVnhsRDjrU0nzqWLh7N81Qa+dc9zgds27thTMd3Zk66/DytRRlGt3NRQF7gw37f+sI4PHTO3rK/38qVv4Lxj57Fq/XYWz5k66PPS1tFFNm/MS5q+600NdfTnlQj7U7IWkJV0SjTc9C7jr00n2YGKOe2d3Vx885ohI/X3qZzqtaTnCcs12tdWZdivJkttVXS9uRrrazn5sKEXL7nVYMtt/sxJnNM8Z8gFyhMbdgwpNaTtuz5kaiQV1m5Mfql2Czol2rgjeK2KnPHWppMbqOgX50DFnLaOLrL5MyPszU80C4wlJQ29BTX3r+67F4X2zm7uevrVIelxrgYb1m370jMXpua7Hjg1kip/86OW2Ktf81nQKdFwU/YnsYBZkhrrazn2dY2D0o57XWPsX8amhjq6e4PnovrLo2an5sehHJIeN7JvGhzltd5+uvs0svaNto6uwJgW52qwQSXLibVZDp+dnguZnV19geldvQOJtz9Zm06JhpuyP4kFzJLU+uou7o9wQa9idezuGVKnnXNTS1tFTfgJyY4bibPLdFBPOYAzQgYCRyGoZDnWBhwn2f5kJZ0SFTdlf+W0Hwyn0IJecbq/dWvB7b9bO3TQ6FiX1EjzOLtM7+7ppzqvV1Z1zL2yki5ZFpJbbmHXnsI1MK/19icWJK2kU6Jcd9H8PvE52QprPxjOnp7gYn1YelSmD/MD8PzW3THlJD6tr+4K7GkVtY07ghvwN+7oKns+JtZkA3tHRjX+JOycpnFGAv+4oT19hb9v/QPK79Zu4tRFB9iEn2PNcFcLMo5KOQCPvNQRmv6RtxwcWz6OO6SRbEZCe6+dtnBmbHmJw5d//figpRzOO24uly99QyzPHdZ+EJZeirCOO1/9zVN8/6NvLutzDXdOk5p2KEhQt/nhfPFXT3Dp8if4+rmLWXjg5NguWKx6rUT+7qJBa1jk1uAYL94Q0pgalh6VxvpaLl+yKHDbMQc37J1xtxIErR10w4Mv0/rqrlief3Jd8LVrWHopwjru/P7pLWV9vUmf05EKGjdUjL4B+MzPV3HKN+7l8zev4ZRv3MuXlz8eQQ73saBTBrnuokEnM3+J20p34uuDB4CGpUfp8NlTmFgz9F3xT2VSCe5vDV5fJiy93MJmd4hi1odCbRW//HPbkLTRLimdlrbJYgWNGypWfmVA1MHVgk6J/N1Fu/LX0GXoPFGVbndPP3ntvGSFRKbf8L6IQ9+Tq+96tqK6sU+vD+7MEpZebnFOubJtd/j7ll+dV8rUQGHrMRVapykpYeOGShFlcLWgU6Kg7qJ+4616bWJNlvwerf1K7BMNFvoiet3Yd8SanygddkBwHXxYerkFLVEuGYmkhH9QY33otne8fl8JttS50Rom1owoPUlh44Y+985DqclCdYFat/wLxJwog6sFnRKFjRvISdvUGFF7elNwsTwsPSpBX0S/4Qb1jiVhjevDzZZRLlF3IfZXkR13SGPohErVVfsubEqdGmjtxp1Fp4+2Cq9cwsYNTZtYAwiZkJk5vvXBxTz8pVMKTmwaBeu9VqKwL3ZdVQYVUtN/Py5bQ754YelRCfoi+k2uS98V62iFBdA4A2tuIcNy94DKXz7gs6ccWqA/6L4tpU8NFPwsDz63ddBA7zQsbxC0YN2l717IZcufIKDGH4BJtVXMmTbR63BTYGLTKFjQKdGzm4KviI4+aCqfOeXQiuolVYwT5k8fUXpUGutrufTdC/nSr54I3B73XHBRCmtcH26AYDlF8eMb1A34qjueCd3f33Ghsb6Wc49uGtQDbSTzIC6aNYXqrAwZE/SDB17g4299HY31tYnP7u2XP25o7cadoQEHhnZwmj9zUmxju6x6rURh1Ub3P7eNc/5nZeTdD9OmYWLNkOoPIZm68PbOntBtL2zpjDEn0WoLWVo5LL3colpbJqiKLGwSVxg8SLW9s5ubHh26hHaxeWqsr+WdfzF0LJd/NuukZ/fO55+RIuxiOKevQJNA1CzolGjyhMKFxTT37Y9CW0cXNXmtkzVZif2L2N7ZzdW/fzZ0+69XbYwxN9Haryb4MxiWXm5tHV2Bq1SW+p4HVZEV7g2673NXakBo7+zmjoCpknr695UQ0jC7d5hXdxUOrgrc+HAykxFb0CnRgVOH/4ANNw9YJYl76eIwazfuHNKLzq+/QHvPWJN077UXtgRfVIWlFyuog8LnT3196P73PbtvXFKpASHs8/PXxx+8t+qssb6WS89cSE1WmFiTTdUcbMXMuPG13z3LMf/2e1as2hBrZ4iKb9MRkdOBq4Es8H1V/Wo5j9/TN/xYhL6AlQ4rVcuL20LT45wPbGdXeNUawK498c4FF6WO14LbbsLSy+23a4eub5NLP+uoOSUde2hbRXhX9+vuf4G/PfGQvdPT5DeuBwWE9s7uwPnTNoZUTR40bb+9t5ev2sAVtz1JTVWGnn7lsvcsjL0TQb7cXHHzGvcbfme84QP/8PNVVGUz1GTj6QxR0UFHRLLAt4F3Am3AIyKyQlXLNpKqtmr4K/juQi16FeaJkK6mYelRGW7JiTvWvkp7Z3cqrkpLFfYDU+wPT6kODJlpPSx9pAbPcVZ4qhf/dP3DTcpZqPPDnpDvbC7d346Vc8WtT3J6AhNo5uTPFVesfoX+voG9v1NRd4ao9Oq1NwOtqvq8qvYANwJLy/kEVdnhT+FBjRPL+ZSp1htS8lv3arxBZ7iZvTOZ+NuZolJdlQ2cBaK6iAuicjjzDQeOKL0UYZ8vAJGhE/CGLfcwXOeHw0N6N+bS09aJIGiuuFJE+ToqPejMBtb77re5tLKZU0QdcVx162nwys7gcUsPvxjv4LlVLwfPdp0zoGNr0a1Ckp4FYtPO4Pc1LL0UK18Irr4F+KvjDir66ny4oPFab3Bwy6WnrRNBOaet2dM7EOlnp9KDTlFE5EIRaRGRli1bRjZJYjEj7eMaGZ4Gx78ueFxSlUR79ZTv/9YU7p32ybcfUhFVa5D8LBAvtQevTRSWXopCP4Y1RdQ65AwXNJ4JOXe59LQt5FbOqtSo5s3Lqeg2HWAD4G/JbHJpg6jqtcC1AM3NzSPqwP5aEYuTPbNp/CxX3TgpuB5fA6o+orR/SD5y0jiH1mjF+aMfpCZgSY9C6aWoLhBYHn4+vBSUz9/RICtCb/8Al565cG/Q2Lwr+ELRn56mhdyqq7JUZSg4ILRYUc2bl1PpJZ1HgAUicrCI1AAfAFaU8wka9hv+x+uRAlUClaZhv+AG/LcuiHeUdlXYTIZOJfUo7A15LWHp5dbxWnBPwbD0UhR6TTMmj+zztWTxbC49cyG9A0pNVYYrbnty70zUiw4MbtPJT09qifB8TQ11RbUvB8n/poxk5obRqOigo6p9wEXAHcBTwE2quracz7Fx+/BVRsWUhirFYyFtKX98ZmusbToThxkYuaGI922s2Boy80JYermFhfeRLyk2vPUFZll4+4KRTbWUm4m8p2+Azu7+QZ0JHgq5UAxLT1p+dV/1CJpk8qt2fvRgtINGKzroAKjq7ap6qKoeoqr/Wu7jF9NOUR/TyPA0WLshvJdanG06w3Xe2BJSfTIWdYc0eq/bHE+Pwfz5yYZLL8WUCeFd4f/cNrLlKgp1JlgTcqyw9DRYsng2Dyw7iR9//BguPu2wUR9Hgf+6a135Mpan4oNO9Ib/Yj23NZ669TTYuSf46nqAeNt0hhsYWUlTEz35SnBweeiFeHoMbg6ZciUsvRQLCgwwbu8c2YVEU0MdXb2DayG6evtoaqhjekj1Ulh6WuSq+wq1feVMqAovi/7ooZci++xY0ClRMXWfE2vHz2kOmxrroIbaWOu9h+vN8/Tm1ypm9dDaAg32cZQuTzw0uForLL0Uu7vDq6on1Y68RkFEAu+/ce7UwP3z05NeSydMMbO69/YrYbVwNRGOYxs/9T4RCevl4tfdWzmN1sMJW0R16n7xXiFWV2URwsuhWQaPXh/L3nboDB5bP7TaR4indFmVDf7pCksvxf3rwucxnL//0FJQ2DQ34L3/E6qy9PbvC2QTqrxZpIvpnLF81QYuvnk1WcnQrwN87ZwjE50Gx/9ai1Go9rMvwnFsFnRK9OeXtw+7zzOv7q6YKVeGs7hpKqsD2nUWN02NNR8Ta7KFKz4z8Vb3RWnm5ODu4e+PuBdSTpxdtl/ZEX71vSlvYPJwa/wUGqvzzCvB1a/3PLuZL5z+F7R3dvO5m1a5Lspem9pnb1qVyFo6MPS1FjsbRHUGgq6JP37C62wanLTqKqJnWlUm3kb0JGVDuiqHpUflkZCJR3Muesf8irkIWBfSPrVfTDMShHU/j6Jb+oFTw8dfPb9lX5ArZo2fQgM8N4XUYKzd2El7Z3fgIml9A+HLXEcp6LUuL3LpjrBKmJMP27+MORzMSjolmjmljhfbCweU3oHKuaoezs6Q1SrD0qMy3Jf/gJDSwVi0M2TG7LD0cmvdHLwgXlh6KU5bdCD3PNseuG3/SfvGzOV6puVW9IR9PdP8FxthAzw/0DyHf1oxdF7g2r1rQ4WVo+NfHC3otfaF1XMX6YmNOyNb9dhKOiUqZnDo4rlTKuaqejivPyB4UF1YelSm1xd+X/5UQWsc1YUMyghLL7ewWdSjmF39TfOmhW472bfS50jmRgsa4HnsIcEN8YrX1rFo1pTAFXKHm2g2Ck0NdfSUuVQ53PenFBZ0SlRXPfwpfNfh5Z9t1xQ2NWRmhJzWEhcYS5PntwaXKMLSyy2sFL8nZPxQKZ4usAyzP8aVOjfa/a3BczAeOaeBxvpabnm0bUiZRoGO3fEMyPVrrK/lonfML+sxD4vwItGCTonqawv/uAG8VqCbZ6V5OGTEdlh6VA4f5orzqU27U9fNdbSmhZS2w9LLLWyizftb28t+jm97/JXQbe157TD+wZIPLDtpRD3LtoeM82p5sYPWV3dx1R1PB27/wQMvFP0c5fShY+ZSW2DcTZjqkLbWjQU6bJTKgk6JJtYOX4Xxp+cqpypnOJtCPqxh6VEJm5o+R6iczh3nv2XeiNLL7c8h0+oPUP5z3LYt/Hh3PrV5SNpo50Z7+PngdiPFW0YgLNDe8tiGRC5mGutref+bRrZK6xGzJ/Guww8I3LazK7oLZQs6JSo0WC3n4Ze2751IsNLtFzLlT1h6VIr50lRK5462kPnIwtLL7bWe8E4i5V6X5cim8GqfkSxtMJwtBeatWzxnKmEtKDXZZBZya+/s5qcPjWwRtydf2cXy1cElx8l10X1fLeiUqKaI1RlVGdJds1IVO5I7aTPqayqmc8etj28aUXq5VWXCvwPlXpdl6+7wADd3evnWlFl4YPB0O0fNmcL8mZO46uwjAquzklrILagL93DC9o+6Q4QFnRLN37++qP2SXMo2TtlMyDidkPSkbO7sqZiLgDeFBPSw9HIb0PBfu3L/ABf6wdrZNbpG/KCpbCbVBbeHLXQ/xksWz+ZPl5zM5955KLVVaVjIrXxdtYdbFqTk40d69HGg2DVLklzKNk5pqV7bVcS4oEqZBqcv5PcmLL3cjjtkOqs3DO0NGMVPV6EatM27Rh50wmYtCKsWfMW3JEZjfS0fOmYuR86ZAgiLZk1O7PO0aNYUqrNSlpm9c1MB2YwEKdVVRPVBdVYSXco2TlMmBAeXF9vj6b6b0903/PtSKRcBrZuDu3+HpZfbQY0TA9NrsuWfNLLQ7MnNcxtGdKz2zm4uvnl14KwFu0NmGvnDs1v2loiWr9rA8VfezSd/8hgfv6GF366NpzozSGN9LR8cYUeCMFFfIFvQKVExgeS/P3xUohMBxunuZ4PHN9z86MZYq7NOmD8+lgcH2NEVXKoLSy+3+0Le8+7+8k8a2dkdfjFRN8JOCz956GW684qDOqC0dXSFtmkMKKzduGPQ1DOd3f309A3wpV89wU9WvjSiPJRLe2c3Nz3aVpZj2cqhKTe7wFxQOevHQVtOTlaCK1UyEm8X5YaJw49RSWKerCgcETKZalh6ua0LKVHNnFT+zhqFelUNN9+eX3tnN9+6e+hCZd39ysSaLKcuCu5K7PFKcFUB7ZT//H9rE2krbOvoQkuc+ibnpw/ZyqGpdl9rcH9+vygmPkyrsDnN+jXe6qy1G4tZ4TH+ebKiEFbFW0zVbzkcMCX4PT90ZnGdbEbijAKzexRTpZrjBY2hP3812czeHndBfV+yAotmTXZTzwz9/FQn1GV6Yk2W7jKt1Br1xKUWdEokRfxwdbwW/9QYSWnbHjw2ZOGBk2Ju0yrcjJ3UPFlRePTljhGll1tddXDpIyy9FNUFFqzLhJSygzQ11NEf0OtOxNu2duPOwLWh3vH6/Wms9xYkvOw9C4ds749wHZpCdvf0M6GIKbmKtTPCqlkLOiUqdOWVk8R8TEmZWhc8LdDrI7jqLWTRrMJzR5102IyK6dixf8jrCEsvt10hs1mHpZdiQ4FSxEgmqWysr+Vr5xyJP4ZVZ4WvnZPr8BN8MfnHdfs6EtTXVg2aRqYqQ2Idhsod6CaHfI/LwbpMl6i6iMGh6yKY4j2takNmNg5LT8pRI+zplGYHzwgeFBmWXm4DIWuUh6WXYn2BWRYmjLBbfm5ZA68qSVk0a99s8PuFfF6rfMs4L7tlzaAuytlMhuOLWCY6CrkJTi923b9f6+kruDJoIVWZ4S/aSmFBp0QbiphqpJgxI5WiM+S1hqVH5cHnCre1NRbR0WCs+IsDp44ovdzCFlYrtODaaBWaVqf5oPBlD8I01tfytkOH9nR8KGSC2p4+rztx0Bo2uSlwkipB+9cGum3NRq69r/jJR6szUJ3N7l12O8rXYEGnRMWsGfKRYw6KISfpcFBj8NV1WHpUtg7T+6Y+ZDzRWHTcIcGLbYWll9usqcFVO2HppTht0YF87XdDe50Bw/Q4K48zDj9g7w9ysev1xCnX3vTnl4vvyTehOsO1f3U0U+pqBi1kFxVr0ynRCcMUp6dMyPKRtxwcU26S9943Bg9QC0uPynDvy+SQaU7Gqvwp6sOmrI/CwgODq2LC0ksxf+Ykzm0eOuat3K/3tJAA9plTDgVKX68nasMt7ZFv0awpo5qNezQq53IvIQ0TaxCGNju+ce4Uzl48e1wFHPB+FM47bi43PLhvxtvzjpvL/JnBEyjGmY+cqOus49bW0cWEqiy9/fsa7qOeysTvuEOmkxEG9fbKiJcehQ8fM4/b1mwaNJlouV9vMZ/jsKWu06C6KktWKNiuM7E2S/+Axh4sLeiUqK2ji/raKnb5ljiYVFvFV95zOEfOmZpcxhJ0+dI3cN6x81i1fjuL50yNPeDk5+O79zzHr1dtoCabYQCNvM46biNZmjkKjfW1fPP9i/n8L1YjIqgq//G+6M6x19158K9pFK+3mM9xrjorbZoa6qiuytDfO/hzUVedYUDhy+9eyOGzpyQSLEUj6GEyljU3N2tLS0vR+7d3dnP8lXezx/fmTqjO8MCyk1L5YRyv2ju7U3lFWi4rVm3Y23PJP3FlnOI8x2l4vWmXf44uPTPaQCMij6pq87D7WdAZbKRBB+wLYNKh0gNrvvH2ekcjznNkQWeURhN0wL4AxpjxrdigY206ZZLWul1jjEkT6zJtjDEmNhZ0jDHGxMaCjjHGmNhY0DHGGBMbCzrGGGNik0jQEZH3ichaERkQkea8bV8UkVYReUZETvOln+7SWkXkEl/6wSLykEv/uYjUuPRad7/VbZ8X2ws0xhgTKKmSzhPAXwL3+hNFZCHwAWARcDrwHRHJikgW+DZwBrAQ+KDbF+BK4BuqOh/oAC5w6RcAHS79G24/Y4wxCUok6KjqU6r6TMCmpcCNqtqtqi8ArcCb3V+rqj6vqj3AjcBSERHgJOBm9/jrgbN8x7re3b4ZONntb4wxJiFpa9OZDaz33W9zaWHpjcB2Ve3LSx90LLd9h9t/CBG5UERaRKRly5YtZXopxhhj8kU2I4GI/B4IWpTiS6q6PKrnHQ1VvRa4FrxpcBLOjjHGVKzIgo6qnjKKh20A/Kt9Nbk0QtLbgakiUuVKM/79c8dqE5EqYIrbv6BHH310q4i8NMJ8Twe2jvAxcbG8jY7lbfTSnD/L2+gUk7eilkhO29xrK4CfisjXgVnAAuBhQIAFInIwXjD5APAhVVUR+QNwDl47z/nAct+xzgcedNvv1iJmN1XVoQumD0NEWoqZ6C4JlrfRsbyNXprzZ3kbnXLmLaku0+8VkTbgOOA2EbkDQFXXAjcBTwK/BT6lqv2uFHMRcAfwFHCT2xdgGfBZEWnFa7O5zqVfBzS69M8Ce7tZG2OMSUYiJR1V/RXwq5Bt/wr8a0D67cDtAenP4/Vuy0/fA7yv5MwaY4wpm7T1Xhurrk06AwVY3kbH8jZ6ac6f5W10ypY3W8TNGGNMbKykY4wxJjYWdAKIyOtFZJXvb6eIfEZErhCRNS7tdyIyy+3/YZf+uIj8SUSO9B0rcM64GPO21JfeIiIn+I51voisc3/nx5033+PeJCJ9InJOVHkbTf5E5EQR2eHb/8u+YyX6vvryt0q8eQz/mJa8icgXfPs+ISL9IjItJXmbIiL/JyKr3Xn7mO9YiX4fRKRBRH7ltj0sIof7jhXLefNt/5yIqIhMd/dFRK5xz79GRI7y7Tuy86aq9lfgD8gCm/D6oE/2pf898N/u9luABnf7DOAh32OfA14H1ACrgYUx562efdWoRwBPu9vTgOfd/w3udkOcefPtdzdeJ5Fz4sjbCM7dicCtIY9N+n2ditfLc667v39a8pa3/3vwhiukIm/APwJXutszgG0uL4l/H4CvAZe524cBd8V93tz9OXg9hV8Cpru0dwG/wRu+ciz7fuNGfN6spDO8k4HnVPUlVd3pS58IKICq/klVO1z6SrxBqhAyZ1zMeetU9+nwpwOnAXeq6jaX9zvxJlmNLW/O3wG3AJt9aVHnbST5C5L4+wp8CPilqr4MoKq585eGvPl9EPhZivKmwCQREbwLsm1AH+n4PizEuwBDVZ8G5onITGI8b+7+N4CLGfx+LgVuUM9KvEH5BzKK85a2waFp9AH2fWkQkX8FzsOby+0dAftfgHdFAMFzxh0Td95E5L3AvwP7A2cWyNtsymfYvInIbOC97v6bfI+NOm9F5c85TkRWAxuBz6s3PiwN7+uhQLWI3ANMAq5W1RtSkrfctv3wfoAucklpyNu38AaOb8Q7b+9X1QH3WUz0+4BXgvlL4D4ReTNeqaiJGM+biCwFNqjqahk8P/JI58UMZSWdAsRbm2cJ8Itcmqp+SVXnAD9h35cpt/878ILOsjTlTVV/paqH4c3AfUWK8vZNYJmqDkSdp1Hm7zG8Kocjgf8Cfp2ivFUBR+NdRJwGXCoih6YkbznvAR5Q1W1R5muEeTsNWIU348li4FsiMjklefsqXgliFV4NwJ+B/rjy5i4S/hH4cuFHlcaCTmFnAI+p6qsB234CnJ27IyJHAN8Hlqpqbo63QnPJxZa3HFW9F3idaxxMQ96agRtF5EW8qYq+IyJnRZy3ovOnqjtVtdPdvh2vZJGWc9cG3KGqu1V1K97aVEemJG85g67uU5K3j+FVS6qqtgIv4LWfJJ4393n7mKouxisFzcBrI4krb4cABwOr3XeyCXhMRA4okIeR560cDVGV+odXd/ox3/0Fvtt/B9zsbs/FW/vnLXmPr8L70BzMvgbARTHnbT77OhIc5T4Qgtfw9wJe41+Duz0tzrzlPeaHDO5IEEneRnjuDvCduzcDL7tzl4b39S+Au1xe9sNbGPHwNOTN3Z+C114yMWXfh+8CX3G3Z7rvw/Q0fB/wOofUuNufwGtDifW85W17kX0dCc5kcEeCh136iM9bWb7ElfiH18DXDkzxpd3ivtxrgP8DZrv07+OtWrrK/bX4HvMu4Fm83idfSiBvy4C1Ll8PAif4HvPXeMGyNeyDF2Xe8h73Q1zQiSpvozh3F7lztxqvg8hbfI9J9H11276A14PtCeAzKcvbR/EWZMw/TtLfh1nA74DH3faPpOX7gDcX5bPAM8Av8fUCi+u85W1/kX1BR/BWb37Onbvm0Z43m5HAGGNMbKxNxxhjTGws6BhjjImNBR1jjDGxsaBjjDEmNhZ0jDHGxMaCjjFjnHizTd+adD6MKYYFHWNSSkSySefBmHKzoGNMAkRknog8LSI/EZGnRORmEdlPRF4UkStF5DHgfSJyqog8KCKPicgvRKTePf509/jH8CaJzB337b41Uv4sIpOSeo3GBLGgY0xyXg98R1X/AtgJfNKlt6vqUcDvgX8CTnH3W4DPisgE4Ht4E2oejTddT87ngU+pN3/XW4GuOF6IMcWyoGNMctar6gPu9o+B3KquP3f/H4u3xsoDbubh8/Gmuz8MeEFV16k3pciPfcd8APi6iPw9MFVV+yJ+DcaMiAUdY5KTPwdV7v5u97/gLZC12P0tVNULCh5Q9avAx4E6vGB1WFlzbEyJLOgYk5y5InKcu/0h4P687SuB40VkPoCITHRr5uRWlTzE7ffB3ANE5BBVfVxVrwQewSsVGZMaFnSMSc4zwKdE5Cm8aeG/69+oqlvwZmv+mYiswZsl/DBV3QNcCNzmOhL4l/r+jIg84fbvZd8qtsakgs0ybUwCRGQecKuqHp50XoyJk5V0jDHGxMZKOsYYY2JjJR1jjDGxsaBjjDEmNhZ0jDHGxMaCjjHGmNhY0DHGGBMbCzrGGGNi8/8BuIQNY1r4Y0IAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"matplotlib.rcParams['figure.figsize'] = (6.0, 6.0)\n",
"preds = pd.DataFrame({\"preds\":reg.predict(x_train), \"true\":y_train})\n",
"preds[\"residuals\"] = preds[\"true\"] - preds[\"preds\"]\n",
"preds.plot(x = \"preds\", y = \"residuals\",kind = \"scatter\")\n",
"plt.title(\"Residual plot in Bayesian Regression\")"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "a3c76976",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train error = 98.15574267963966 percent in Decision Tree Regressor\n",
"Test error = 7.1677452486549855 percent in Decision Tree Regressor\n"
]
}
],
"source": [
"dec = tree.DecisionTreeRegressor(max_depth=1)\n",
"dec.fit(x_train,y_train)\n",
"y1_dec=dec.predict(x_train)\n",
"y1_dec=list(y1_dec)\n",
"y2_dec=dec.predict(x_test)\n",
"y2_dec=list(y2_dec)\n",
"\n",
"error=0\n",
"for i in range(len(y_train)):\n",
" error+=(abs(y1_dec[i]-y_Train[i])/y_Train[i])\n",
"train_error_tree=error/len(y_Train)*100\n",
"print(\"Train error = \"+'{}'.format(train_error_tree)+\" percent\"+\" in Decision Tree Regressor\")\n",
"\n",
"error=0\n",
"for i in range(len(y_test)):\n",
" error+=(abs(y1_dec[i]-Y_test[i])/Y_test[i])\n",
"test_error_tree=error/len(Y_test)*100\n",
"print(\"Test error = \"'{}'.format(test_error_tree)+\" percent in Decision Tree Regressor\")"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "52ec5460",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Residual plot in Decision Tree')"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"matplotlib.rcParams['figure.figsize'] = (6.0, 6.0)\n",
"preds = pd.DataFrame({\"preds\":dec.predict(x_train), \"true\":y_train})\n",
"preds[\"residuals\"] = preds[\"true\"] - preds[\"preds\"]\n",
"preds.plot(x = \"preds\", y = \"residuals\",kind = \"scatter\")\n",
"plt.title(\"Residual plot in Decision Tree\")"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "f2b28bd7",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train error = 73.1224560206315 percent in SVM Regressor\n",
"Test error = 21.522381238558573 percent in SVM Regressor\n"
]
}
],
"source": [
"svm_reg=svm.SVR()\n",
"svm_reg.fit(x_train,y_train)\n",
"y1_svm=svm_reg.predict(x_train)\n",
"y1_svm=list(y1_svm)\n",
"y2_svm=svm_reg.predict(x_test)\n",
"y2_svm=list(y2_svm)\n",
"\n",
"error=0\n",
"for i in range(len(y_train)):\n",
" error+=(abs(y1_svm[i]-y_Train[i])/y_Train[i])\n",
"train_error_svm=error/len(y_Train)*100\n",
"print(\"Train error = \"+'{}'.format(train_error_svm)+\" percent\"+\" in SVM Regressor\")\n",
"\n",
"error=0\n",
"for i in range(len(y_test)):\n",
" error+=(abs(y2_svm[i]-Y_test[i])/Y_test[i])\n",
"test_error_svm=error/len(Y_test)*100\n",
"print(\"Test error = \"'{}'.format(test_error_svm)+\" percent in SVM Regressor\")"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "71819737",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, 'Residual plot in SVM')"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAaUAAAGDCAYAAACLJw+FAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABVj0lEQVR4nO3df5xT5ZX48c+5SSaMgICjBWEAbZF1GVaozoot1ipqRSvorj9qxWpbrd/tqm23/sDWWrW2u0X702p/WOtW1NYirAVFa63YWqmgQwUK1MpUK8zgDxwR+ZmZJOf7x70ZbpKbTDKTmWQy5/168TJzc3PzJDPm5Hme85xHVBVjjDGmEjjlboAxxhiTYkHJGGNMxbCgZIwxpmJYUDLGGFMxLCgZY4ypGBaUjDHGVAwLSsb4iMgcEfltnvt/LyKXlOB5jheRlm4+9pMi8kxP2+Bda5yI7BSRUCmuZ0xPWVAy/ZaI/ENE9ngfqq+LyM9FZEhPrqmq96vqR0rVxnLrKoiq6iZVHaKqiW5e/8si8or3O2gRkV95x38sIvMDzp8iIjEROUBEbhQRFZHPZ5zzee/4jd1pk+nfLCiZ/m6Wqg4BpgLvB75U3uYMHCJyEfAJ4CTvd9AIPOndfQ/w7yIyOONhnwAeUdW3vZ9fAi7MOOci77gZgCwomaqgqq8Dj+MGJwBE5BgR+ZOIvCMia0TkeN99nxSRl0Vkh/dNf47v+DO+804WkRdFZLuI3A6I774bReQ+38+HeN/ww97PnxKRv3rP8bKI/L9CX493nc95j3tLRG4VkcD/X0XkgyLyvNfG50Xkg97xbwAfAm73ejK3Bzw2s82/F5GbRWS51+7fisiBOZr5r8Djqvp3cH8Hqnqnd/tZoBU4y/dcIeB8wN+Deh7YT0QavHMagEHecTMAWVAyVUFE6oFTgWbv5zHAUuDrwAHAVcAiETnI+/Z+G3Cqqg4FPgisDrjmgcD/AV8BDgT+DkwvollvAqcD+wOfAr4rIkcW8fh/w+19HAmcAXw6oI0H4L7O24A64DvAUhGpU9XrgD8Cl3tDdJcX+Lzne+19D1CD+94FWQFcKCJXi0hjwLzUfNJ7QScBEeDRjPPu9Z13kfezGaAsKJn+7tcisgPYjBsEbvCOXwA8qqqPqmpSVZ8AmoDTvPuTwGQRqVXV11R1fcC1TwPWq+pCVe0Avge8XmjDVHWpqv5dXX8AfovbcynUPFV9W1U3ec/98YBzPgpsVNV7VTWuqr8EXgRmFfE8mf5XVV9S1T3AAny9Tz9VvQ+4AjgF+APwpojM9Z1yL/Bh7wsDuIHnF9576Xcf8HERiQDneT+bAcqCkunvzvR6O8cDh+P2aADGA+d4Q3fviMg7wLHAwaq6C/gY8B/AayKyVEQOD7j2aNxgB4C61Ys3B5wXSEROFZEVIvK29/yn+dpXCP9zveq1J6iNr2YcexUYU8TzZPIH3t1AzuQRLzHkJGA47vt5s4ic4t23CXgauMBLQDmT9KE7fOc1A/+NG2ALfo9N9bGgZKqC1xP5OfAt79Bm4F5VHe77N1hVv+md/7iqngwcjNuz+GnAZV8DxqZ+EBHx/wzsAvbz/TzKd24UWOS1Z6SqDscdthIK53+uccCWgHO24AZgMs5t9W73yTYAqtqhqg8Ca4HJvrvuwU1uOAt4RVVX5bjEfOBKAoKWGVgsKJlq8j3gZBGZgjsENEtEThGRkIgM8tYG1YvISBE5w5tbigE7cYfzMi0FGkTk371EgM/hCzy481DHeWt9hpGe+VcDRIGtQFxETgWKTTW/WkRGiMhY4PPArwLOeRSYKCLni0hYRD4GTAIe8e5/A3hvkc9bEC8p5KMiMlREHO81NgArfactwg2SN+EGqFx+hfv+LOiNtpr+w4KSqRqquhX3m/ZXvSGgM4Av4waGzcDVuH/zDvBF3F7G28CHgc8GXO8t4Bzgm0AbcBiw3Hf/E7gfpmuBVewLBKjqDtwgtgDYhps8sKTIl7TYu+5q3AD5s4A2tuEmU1zptfEa4HSv7QDfB84WkW0icluRz9+Vd3Hf303AO8AtwGdVtTN70RsqXQTUA/fnupCq7lHV33nzWGYAE9vkz5jKIyIKHKaqzeVuizF9yXpKxhhjKoYFJWOMMRXDhu+MMcZUDOspGWOMqRgWlIwxxlSMcLkbUGkOPPBAPeSQQ8rdDGOM6VdWrVr1lqoe1NPrWFDKcMghh9DU1FTuZhhjTL8iIpnlrrrFhu+MMcZUDAtKxhhjKoYFJWOMMRXDgpIxxpiKUdagJCL/EJG/iMhqEWnyjh0gIk+IyEbvvyO84yIit4lIs4is9e/gKSIXeedvFJGLfMeP8q7f7D22mG0DjDHG9LFK6CmdoKpTVbXR+/la4ElVPQx40vsZ3K2uD/P+XQr8CDq3g74BmAYcDdyQCmTeOZ/xPW5m778cY4wx3VUJQSnTGezbd+Ue3N0qU8fne1tLrwCGi8jBuFsxP+FtG70NeAKY6d23v6qu8HYMne+7ljHGmApU7qCkwG9FZJWIXOodG6mqr3m3XwdGerfHkL49dIt3LN/xloDjWUTkUhFpEpGmrVu39uT1GGOM6YFyL549VlVbReQ9wBMi8qL/TlVVb1+ZXqWqdwJ3AjQ2NlqFWmOMKZOy9pRUtdX775vAQ7hzQm94Q294/33TO70VGOt7eL13LN/x+oDjxhhTNm07Y6zZ/A5tO2PlbkpFKltQEpHBIjI0dRv4CLAOd8voVAbdRbhbQuMdv9DLwjsG2O4N8z0OfERERngJDh8BHvfue1dEjvGy7i70XcsYY/rc4tWtTJ+3jAvuWsn0ectYstq+J2cq5/DdSOAhL0s7DPxCVX8jIs8DC0TkYuBV4Fzv/EeB04BmYDfwKQBVfVtEbgae9877mqq+7d3+T+DnQC3wmPfPGGP6XNvOGHMXrWVvR5K9JAG4ZtFapk84kLoh0TK3rnKULSip6svAlIDjbcCJAccVuCzHte4G7g443gRM7nFjjTGmh1q27SHiOJ0BCSDiOLRs22NByafc2XfGGDMg1I+opSOZTDvWkUxSP6K2TC2qTBaUjDGmD9QNiXLLWUcwKOIwNBpmUMThlrOOKLqXVO2JEuVOCTfGmAFj9tQxTJ9wIC3b9lA/orbogLR4dStzF60l4jh0JJPcctYRzJ4auPyy37KgZIwxfahuSLRbc0gDJVHChu+MMaYfSCVK+KUSJaqJBSVjjOkHBkqihAUlY4zpB0qVKFHpbE7JGGP6iZ4mSvQHFpSMMaYf6W6iRH9hw3fGGGMqhgUlY4wxFcOCkjHGmIphQckYY0zFsKBkjDGmYlhQMsYYUzEsKBljjKkYFpSMMcZUDAtKxhhjKoYFJWOMMRXDgpIxxpiKYUHJGGNMxbCgZIwxpmJYUDLGGFMxLCgZY4ypGBaUjDHGVAwLSsYYYyqGBSVjjDEVw4KSMcaYimFByRhjTMWwoGSMMaZiWFAyxhhTMSwoGWOMqRgWlIwxxlQMC0rGGGMqhgUlY4wxFcOCkjHGmIpR9qAkIiEReUFEHvF+PlREVopIs4j8SkRqvONR7+dm7/5DfNf4knf8byJyiu/4TO9Ys4hc2+cvzhhjTFHKHpSAzwN/9f08D/iuqk4AtgEXe8cvBrZ5x7/rnYeITALOAxqAmcAPvUAXAu4ATgUmAR/3zjXGGFOhyhqURKQe+Chwl/ezADOAhd4p9wBnerfP8H7Gu/9E7/wzgAdUNaaqrwDNwNHev2ZVfVlV24EHvHONMcZUqHL3lL4HXAMkvZ/rgHdUNe793AKM8W6PATYDePdv987vPJ7xmFzHs4jIpSLSJCJNW7du7eFLMsYY011lC0oicjrwpqquKlcbUlT1TlVtVNXGgw46qNzNMcaYAStcxueeDswWkdOAQcD+wPeB4SIS9npD9UCrd34rMBZoEZEwMAxo8x1P8T8m13FjjDEVqGw9JVX9kqrWq+ohuIkKy1R1DvAUcLZ32kXAYu/2Eu9nvPuXqap6x8/zsvMOBQ4DngOeBw7zsvlqvOdY0gcvzRhjTDeVs6eUy1zgARH5OvAC8DPv+M+Ae0WkGXgbN8igqutFZAGwAYgDl6lqAkBELgceB0LA3aq6vk9fiTEVpG1njJZte6gfUUvdkGi5m2NMIHE7GyalsbFRm5qayt0MY0pq8epW5i5aS8Rx6EgmueWsI5g9NTDvx5huEZFVqtrY0+uUO/vOGNPL2nbGmLtoLXs7kuyIxdnbkeSaRWtp2xkrd9OMyWJByZgq17JtDxEn/X/1iOPQsm1PmVpkTG4WlIypcvUjaulIJtOOdSST1I+o7fXnbtsZY83md6xXZgpWiYkOxpgSqhsS5ZazjuCajDml3k52yJzHuv70SUwePcwSLUxeluiQwRIdTLXqy+y7tp0xps9bxt6O9B7a4JoQCVVLtKhCluhgjClK3ZAoU8YO75NeStA8FsCu9oQlWpi8LCgZY0ouaB7LzxItTC4WlIwxJZeaxxoUcRgcDWXd31eJFqb/sUQHY0yvmD11DNMnHEjLtj2sa93OzUs39GmihemfLCgZY3pN3ZBo51zWzMmjrMyR6ZIFJWNMn0gFKGPysTklY6qILVY1/Z31lIypElZ01VQD6ykZUwWs6KqpFhaUjKkCVnTVVAsLSsZUgXIWXTWmlCwoGVMF/ItVh0bDDIo4thbI9EuW6GBMlfAvVrW1QKa/sqBkTBWxtUCmv7PhO2OMMRXDgpIxxpiKYUHJGGNMxbCgZIwxpmJYUDLGGFMxLCgZY4ypGBaUjDHGVAwLSsYYYyqGBSVjTEWyvaEGJqvoYIypOLY31MBlPSVjTEWxvaEGNgtKxpiKYntDDWwWlIwxFcX2hhrYLCgZU2X6e4KA7Q01sFmigzFVpFoSBGxvqIHLgpIxVcKfILAXd/jrmkVrmT7hwH75oW57Qw1MNnxnTJWwBAFTDcoWlERkkIg8JyJrRGS9iNzkHT9URFaKSLOI/EpEarzjUe/nZu/+Q3zX+pJ3/G8icorv+EzvWLOIXNvnL9KYPmQJAqYalLOnFANmqOoUYCowU0SOAeYB31XVCcA24GLv/IuBbd7x73rnISKTgPOABmAm8EMRCYlICLgDOBWYBHzcO9eYqmQJAqYalG1OSVUV2On9GPH+KTADON87fg9wI/Aj4AzvNsBC4HYREe/4A6oaA14RkWbgaO+8ZlV9GUBEHvDO3dB7r8qY8rIEAdPflXVOyevRrAbeBJ4A/g68o6px75QWIJU6NAbYDODdvx2o8x/PeEyu40HtuFREmkSkaevWrSV4ZcaUT92QKFPGDreAZPqlsgYlVU2o6lSgHrd3c3iZ2nGnqjaqauNBBx1UjiYYY4yhQrLvVPUd4CngA8BwEUkNK9YDrd7tVmAsgHf/MKDNfzzjMbmOG2OMqVDlzL47SESGe7drgZOBv+IGp7O90y4CFnu3l3g/492/zJuXWgKc52XnHQocBjwHPA8c5mXz1eAmQyzp9RdmjDGm28q5ePZg4B4vS84BFqjqIyKyAXhARL4OvAD8zDv/Z8C9XiLD27hBBlVdLyILcBMY4sBlqpoAEJHLgceBEHC3qq7vu5dnjDGmWOJ2NkxKY2OjNjU1lbsZxhjTr4jIKlVt7Ol1KmJOyRhjjAELSsYYYyqIBSVjjDEVw4KSMcaYimFByRhjTMWwoGSMMaZiWFAyxhhTMSwoGWOMqRgWlIwxxlQMC0rGGGMqhgUlY4wxFcOCkjHGmIphQckYM+C17YyxZvM7tO2MlbspA145t64wxpiyW7y6lbmL1hJxHDqSSW456whmTx1T7mYNWNZTMsYMWG07Y8xdtJa9HUl2xOLs7UhyzaK11mMqIwtKxpgBq2XbHiJO+sdgxHFo2banTC0yFpSMMQNW/YhaOpLJtGMdyST1I2rL1CJjQcmYAtlkePWpGxLllrOOYFDEYWg0zKCIwy1nHUHdkGi5mzZgWaKDMQWwyfDqNXvqGKZPOJCWbXuoH1FrAanMLCgZ0wX/ZPhe3KGeaxatZfqEA+0DrErUDYna77JC2PCdMV2wyXBj+o4FJWO6YJPhxvQdC0rGdMEmw43pOzanZEwBbDLcmL5hQcmYAlXLZHjbzpgFV1OxLCgZM4BYarupdDanZMwAYXXeTH9gQcmYAaLY1HarYGHKwYbvjBkgikltt2E+Uy7WUzJmgCg0td2G+Uw5WU/JmAGkkNT21DBfqqQS7Bvms2w909ssKBkzwHSV2m4VLEw52fCdMSaNVbAw5WQ9JWNMFqtgYcrFgpIxJlC1VLAw/YsN3xljjKkYZQtKIjJWRJ4SkQ0isl5EPu8dP0BEnhCRjd5/R3jHRURuE5FmEVkrIkf6rnWRd/5GEbnId/woEfmL95jbRET6/pWaamQLS43pHeXsKcWBK1V1EnAMcJmITAKuBZ5U1cOAJ72fAU4FDvP+XQr8CNwgBtwATAOOBm5IBTLvnM/4HjezD16XqXKLV7cyfd4y5ty1gg98cxn3r3y13E0ypmoUFJREZLqIDPZuXyAi3xGR8T15YlV9TVX/7N3eAfwVGAOcAdzjnXYPcKZ3+wxgvrpWAMNF5GDgFOAJVX1bVbcBTwAzvfv2V9UVqqrAfN+1jOkW/8LSnbEE7fEk1z20jvtXWGAyphQK7Sn9CNgtIlOAK4G/437Il4SIHAK8H1gJjFTV17y7XgdGerfHAJt9D2vxjuU73hJwPOj5LxWRJhFp2rp1a89ejKlqLdv2EHayR4Fveni9DeUZUwKFBqW419s4A7hdVe8AhpaiASIyBFgEfEFV3/Xf5z2nluJ58lHVO1W1UVUbDzrooN5+OtOP1Y+opT2R/ScZCeUubGqMKVyhQWmHiHwJuABYKiIOEOnpk4tIBDcg3a+q/+cdfsMbesP775ve8VZgrO/h9d6xfMfrA44b0211Q6LcMGtS1vGEqlU8MKYECg1KHwNiwMWq+jruB/ytPXliLxPuZ8BfVfU7vruWAKkMuouAxb7jF3pZeMcA271hvseBj4jICC/B4SPA495974rIMd5zXei7ljHdNmfaeL5x5mRqQsLgmpBVPDCmhMQdISvDE4scC/wR+At0Vn78Mu680gJgHPAqcK6qvu0FlttxM+h2A59S1SbvWp/2HgvwDVX9X+94I/BzoBZ4DLhCu3jBjY2N2tTUVKqXaaqYbStuzD4iskpVG3t8nXyf0SKyg+A5HcGd8tm/pw2oNBaUjDGmeKUKSnnLDKlqSZIZjDHGmEIUVftORN4DDEr9rKqbSt4iY4wxA1ahi2dni8hG4BXgD8A/cOdojCk7K/ljTPUotKd0M24poN+p6vtF5ATc9HBjymrx6lbmLlpLxHHoSCa55awjmD01cI20MaYfKDQlvENV2wBHRBxVfQro8YSWMT3hL/mzIxZnb0eSaxattR6TMf1YoUHpHa/ywtPA/SLyfWBX7zXLmK61bNtDxEn/Ew45wlMvvpkWmGx4z5j+o6B1Sl4x1r24qeBzgGG4VRjaerd5fc9SwvuPtp0xps9bxt6OZNrxwTUhEqrcctYRKNjwnjF9oE/WKQ1EFpT6lyWrW7lm0VpCjrArlki7Lxp2ACUW3/c3PijisHzuDFvsakyJlSooFZp9t0NE3vX+7RWRhIi82/Ujjelds6eOYfncGdw0q4HBNaG0+0KOEJL0P/GIY4VTjalkBQUlVR2qqvt7FRxqgbOAH/Zqy4wpUN2QKCcc/h4SGb3+RFJJaPrQXkcymVY41eabjKksRe88622y92vczfWMqQh1Q6LcctYRDIo4DI2GGRRxuPXsI7j17Clpx/yFU1M7yF5w10o++M0n+cGTGy04GVNmhSY6/LvvRwc3HfzDqvqB3mpYudicUuXoTsHToMfkOhaUJBENu8HMkiGMKU6f1L7zmeW7Hcet6HBGT5/cmFy6uyi2bkg0K4AFHUulk+8lPSjF4u5ap+kTDixLMoRVHjcDXUFBSVU/1dsNMSbFvyg2FTRKHSjqR9TSkUwG3pdKhujquXIFkO4GFqtOYUwXQUlEfkCe7chV9XMlb5EZ8IJ6MYUGikKl5qCuXrgmLWUcspMhguQKIN0NLH0RiI3pD7pKdGgCVuFWBj8S2Oj9mwrU9GrLzIAV1IspJFAUa/bUMfzp2hO58uSJRMPByRBBcpU3an5jR87jXWX4BVWnsPR1MxB1tZ/SPQAi8lngWFWNez//GHfXWGNKLtWLuSajx9EbPYa6IVGuOPEwzp82ruAht1w9udWb3wmcpzrttj8SDYfy9pz6KhAbU+kKTXQYAewPvO39PMQ7ZkyvmD11DNMnHFjU3ExPkgSCkiFyyRVApo4dnnU8ld3XnogDuYfk+jIQG1PJCg1K3wReEJGncOvfHQfc2FuNMgaKCxT+uZz2RJLLT5jA+dPGFfWh3rYzxvot7wJKw+hhOR+bK4BMGDk07XgskURUiSX2zVllzo35A2l3ArEx1abg2nciMgqY5v24UlVf77VWlZGtU+p/cq85Em49e0pBiQaLV7dy5YLVxL1LRELCt8/J/9iusu8G14Q4/fZn0to1KOLwyOXHsqs9wbrW7dy8dENBSRGWKm4qXZ8UZBWRw1X1RRE5Muh+Vf1zTxtQaSwo9T9rNr/DBXetZEcsnnVfIQVY23bG+OA3n8zKwouGHf50bc+Kt6YKxqYCz7lH1bNgVQshEXa1pxeQzdVWSxU3/UFfLZ79InAp8O2A+xSY0dMGGNNTPV1z1LJtj1e4NT1IhBzpcRq6f0guqOfUVVstVdwMNF1l313q/feEvmmOMcXbt+ZoLbF48Rls9SNqswq3glvQNddjixlOS82NrcmRnZevrX2xZsuYSlLo1hXniMhQ7/ZXROT/ROT9vds0Ywrnrjma4a05koLXHIEbNG49ewph3/8NkZBw69nBj/UXcp0+bxlLVrcW1MZcPbrB0VDOtlqquBloCi3IulZVjxCRY4GvA7cCX1XVaV08tN+xOaXKkK8n0lUvpbtJAYVk3wUlVRSzcWDmHNP1H53E5DHD8rY18zE2p2QqUV8XZE0Ntn8UuFNVl4rI13v65MZAdhDJnNi//vRJTB7tfnA/0/xWl5P+xaSSZz7uuIkH5T2np8Np3Un7tlRxM5AUGpRaReQnwMnAPBGJ0o29mEx1KKYnknlulwHoo5O4eemGtIn96x5ax+CaEPFkkqRCR0LLNulfiuG07gTN7gZaY/qbQoPSucBM4Fuq+o6IHAxc3XvNMpWqmPTkzHPPbaxnQVNL3gB008PrqQlnf9/JTJ9O6etJf6u8YEzvKnTrit0i8iZwLG5B1rj3XzOA5EtPBrJ6RJnnzn92E0DeABQJObQnClvQDeWZ9LfhNGN6T0FBSURuwN1t9p+A/wUiwH3A9N5rmqk0ueZT7l+5iR/+vjmt5zC+bnDe9GcIDkAJVW6YNYmbH9lAyBF2xdJ7SGEHQo5DTai8vRQbTjOmdxQ6fPdvwPuBPwOo6pZUirgZOILmU9oTSe54aiOxePo8zyOXH5tzQWuKPwBlDgfObBhFy7Y9gaV4rJdiTPUqNCi1q6qKiAKIyOBebJOpUEHzKZcdP4E7n36ZWHxfiZ+I47CrPZF1buacUmYA8geZVE9kytjhzJwcfL8xpvp0GZRERIBHvOy74SLyGeDTwE97u3Gm8mTOpwDc8fvmtHNS8zxTxg7P6tV8/sSJOQNQLsUOlVnxUmP6ry6DktdDOge3Dt67uPNKX1XVJ3q7caYyZQaJfNlomedm/lzKANK2M8b9Kzdxx1PNaXNOttDUmP6j0OG7PwPvqKqlgZssxWSj+YNQIQthC7lOar3TNQvXdFb6TtXAs+KlxvQvhQalacAcEXkV2JU6qKpH9EqrTEUppDfj7wHlOj9zI75EMkk8uS9F/OqFaxm+Xw0No/fPG0SCKj7c/MiGrK0nwIqXGtPfFBqUTumNJxeRu4HTgTdVdbJ37ADgV8AhwD+Ac1V1mze39X3gNGA38MnUfk4ichHwFe+yX1fVe7zjRwE/B2qBR4HPa6G7Ghqg+L18cp3f/MYOrn5wDe2+agyZYvEk/3HvKpJozucJWv9008MbiDgSeE0rXmpM/1JQqSBVfTXoXwme/+e4lSL8rgWeVNXDgCe9nwFOBQ7z/l0K/Ag6g9gNuL25o4EbRGSE95gfAZ/xPS7zuUwe/gCwIxZnb0eSaxatpW1nrPP+NZvfSfs56Pz7V7zKaT94pqBFsbs7ElnP45daK+UXdoT2eHbFh2i4sCrhxpjKUWhPqVeo6tMickjG4TOA473b9wC/B+Z6x+d7PZ0VIjLcK3d0PPCEqr4NICJPADNF5PfA/qq6wjs+HzgTeKz3XlF1yVd89Jnmt7hm4VpCjpBIKreeHbxgNiTCTQ9voD2R3TuKhARH3MWwuzPKCOUadgtaK7W7PUFIBHffSQgJfOGkiZw/bZwFJGP6mUosqjpSVV/zbr8OjPRujwE2+85r8Y7lO94ScDyLiFwqIk0i0rR169aev4J+KLPXA7mLjw6uCXHVg2uIxZPsbk8Qiye58sE1DK4JZZ2/pz0RGJBqQsK3z5nC0is+xDWn/BM1ofTht1zDbnVDolx/+qSs4wnfqGw45HQrIAW9B8Xcb4zpubL2lLriX7Dby89zJ3AnuPsp9fbzVZpc80C5io8u+nMLHRlDcR0J5cXXd3DZ8RO4bdnGzvuDZo/CDvzikmm0bt/L6bc/414743rnNtbnDCqTRw9jcE0oZ5HWmlDxyQ1u9l56z88/p1Xs3JoxpnsqMSi9ISIHq+pr3vDcm97xVmCs77x671gr+4b7Usd/7x2vDzjf+OQrslo3JBq4WPbKB9cEXuu/fvUC0UgoK8BkcsRhzs+ey8q+81vQ1MLnT5zYGVia39jB6s3vMHXscOpH1BLPU8Ko2OSGtp0xrnpwTVq7/2vBaiYdvD8TRg7t8j0yxpROJQ7fLQEu8m5fBCz2Hb9QXMcA271hvseBj4jICC/B4SPA495974rIMV7m3oW+axlPUOJAaj4nJVXup25IlJZte4gGbC0B0JGEnbHg3otfeyJJLO4GpFxSbWjbGeOz963ipO8+zVUL13LSd5/m+0++xOUnHBb4uJoCkxv8Q3Hrt2zPCqSJJJx62x9Zsrq1oPfIGFMaZe0picgvcXs5B4pIC24W3TeBBSJyMfAq7l5O4KZ0nwY046aEfwpAVd8WkZuB573zvpZKegD+k30p4Y9hSQ5ZguaNYvEEg2tCOc+PJ7N7QjUOtOevv1qUPR1xVr7cxlmPv5gVvOY/u4mfXXgU0bDTuUgW3HmqR684lgkj89cKzhyK+9QHDwk8ryOhXPngGh773Id6vLGfMaYwYst20jU2NmpTU1O5m9GrMhe3LlndyjWL1qJJJZZQBkXcXkGueZPU+SFH6EgoV508ke/87iX2dgRHpZDApce9l7uX/yMtiOSzL5cuWNiB86eN41fPt2TNA+Vb7Nu2M8b0ecvS2loTghzTUwDM//S/8s7ujqy5NZtTMmYfEVmlqo09vU4lzimZXpRrwn7Swftz2g+eAbTzAzvXvElQWaFRwwalfWhff/okxo6oBaSzQsN+NWG+/cRLBbWzq69K8ST8YuUmHBHQfSGsq4SEoDT3sBMCNDBL0CW2sZ8xfcSC0gCSb8J+V3uCaMihPZ69JinoAzizrNDw/Wr41tlT2L820hmEUskJo4cNom5IlPOnjUvLzOspt6lKe8Lt5ly9cA0gxOK5ExIG14SIZSy07UgkcJzgebKwAw2j9896zX69UZXcKp2bgcqC0gCSbzFsrjVJXc2bLF7dypULVnfO+0S89UdN/3ib+Ss2dZ534QfG8bUz/oUbZzdw3UPrSveifJJJpSNjvssfWFNFW1NCAgmFUMghnkgSCQkhR9jbkSTiCI4Dt549pag6fP6eWXcDi6Wfm4HMgtIAki/w5FqT1FXF72sWrklLROhIKFc9uDZrKGz+s5u48JhDmNkwiq88tC5reC4kblmg3TnmpcAtJ5RIas6hvaCHtifc19e2M5YWPMENSEDncGU0DHd+4ihGD6tlV3siLZgEBZh8Pc/uVkC39HMz0FlQGkC6CjzFzpu0bNtDSBwgM0sgOGys3vwO79l/UOC94ZAEZvX55bp/cE2IjkQSx+vl+F1+wgTqhkR5+qWteVPQAWpCIYbV1jBicA272vele+fqueTqea7f8m5WYLl64ZqCAku+3qwFJTMQWFAaYLoKPEFbUKSqJ6SG8lKPrR9RS0KDPumDc+emjh3Olu3Ba3uSqtw4azI3L91AxHHY3R6nkKmnwdEQN81qYOrY4Zx++zNp90XDwvnTxnk/dX2xjmSSda3bOfcnfyIkDglN8tXTG7h56YbAAJOr5wmaFVhiceUXKzdxxYnB66tSujuMaky1sKA0ABWyvXiqdwDu8FY0JCQBVaU2Eu7sMXzsX8cy/9l9c0chR/jWOUfQ9Orbaccv/MA4JowcyojBNURCkpXscOOsycycPIqxB7gZe6OHDeK02/7YZWXxRFI54fD3BPYCrz99Euu3bPeuV5v1vCFHCDtuDyl1/g2L13k9Krf399XF66jNWLPlDzBBPc+G0cM6ky/8bn+qucuafIUOo1oihKlWtk4pQ39Zp9SbH0pBa3mCRMNOZ6mglLADK798Ulr23dSxwxkxuKazvcub3+LqhWtxxK2ccMPsSQyJhtOGyC47fgJ3Pv0yO2LxtOc86Z8P4umNbURC7vzSLWcdkVUGqWXbHta1bufGh9d3BqHUuqYHntuMiKCqfOucKWmPXb/lXS68+7ms1xl2yBr6i4SEFV86kboh0cDfxQ+e3JiV/j40Gua+S6YxZezwgn4HuX6/lghhKpGtUxrAivlQ6k7wCprXCOIIxDJOiSdh/ZbtHDfxPUwYOZQJI4cGtvdP187obNe2Xe2dvaLUc97+1EbcYcB9wg48/dJWQuLQHk9w46zJKDB93rK0a0+fcCDn/uTZtF5RPAn3r9hEOOR4i23d4+m9xuAvaJPHDGP15u1pxzoS2vk6g3qe508bx+1PNactFi5mGC5f+rklQphqVom170weXW2857d4dSvT5y3jgrtWMn3eMpasLqwebdC8RpCca019wSRXewGmjB3OM81vBW4AWBMKcfkJExgUcRgaDXu9Mrfywp54ko6EO7R2zcI1Wddev+VdQgE70SaUtO02Mt+3htHDiISyH7euZXvWsczXmaluSJRbzz6is/2DIj3bcDBVq2/9lnetDp+patZT6meCejEhR3jqxTc751agsG/UuXpR/nkNIOcw3lWnTOSW37yYNXyXWmyaq73+D9G5i9amLdhN6UgmOXXyKKaMHQYI7+7p4PJfvpB2TkKhJiOpwkF4d087iS4y+QAcSX/f6oZE+dyMw7KG3aKRENqRSEu8yHydQUpVBcLf02xPJElYIoSpYhaU+pmgXsyuWIIblqznK4vXdZmu7F9Imjmk5v8A9X+gbn57F9cs+kva7rCDoyGmHVrHd86dytUL1yDizvHcOLsh7cM3XzZZrmHCmpBw7lH1nXsttSeSnH7EqMD3I2sX2o4E/7VgDf/2/tE89MKWziG8kIDjpCc67G5P8OX/W4sTcjrfN3fYbSOx+L7zEqp87czJfO3h9Z1Zef5FtZnBPfPnngyrBX25iISEaHhfgoZt+W6qiQWlfqZuSJRzj6pPq5YAdG54l+oN5QsGQR90Vz64BkfcD7r2RIJPTz+UD7yvjobRw6gfUUsyIyEmkVTqR9QyZexwduyNc9PD66kJOdz8yAaGRsOdc1z+XldIhI5Ekus/OqnzQzSzjZGQ8ItLpnHB3c+ltW/Rn7cEvh9Jdceg/VfpSCgLmlr58qmHc/jBQ0nV3/vN+tezqkm0J4FkMq0XeevZUwKLr85sGJXV68kM7uceVc+CVS0lS0IICtyDwiHumPN+htXWWPadqTo2p9TPtO2MsWBVS877/b2hW84KntMI2h+oI6HE4sqOWJxYXPnRH17mwruf55j/eZLlzW/lvFbbzhg3L91Ae0LZ1Z4InOOaPXUM1390Eh1JpSbscPPSDSxZ3drZxsztmZ59+e2s9uWSVDcgBUwFcetv/8boYbUcN/Eg6oZEO3eszfe+pdr7yOXHcsOsSTxy+bFpATa1r1TbzhhPv/Rm1pzW/BWbCprvK1T9iFr2ZtTq2xtP0DB6WGdbjKkm1lPqZ7rKjPPPL+Sa0yg0kQHcYHX1wrX86doZLJ87I+tahVQg6Axc8STtXob31QvXMny/GiYdvD8hx+ncSbYjoYGZdym1kRCJZDIrMSJoOVNHQjnttj/yrXOmMHvqGG+xb/Bck/99y5XdmBqWW9e6nZuXbsARSRvmC1KKagyZyzZsGYepZhaU+pn6EbWBCzPBrWCQOb+QmtNIZW+lPng/Nf0QfvT7lwt6zpAjaeuAMtvTVQWCoMAViyf5j3tXEU+65YEyn+/MqWNY9OfWrP2XkqpFfSi3J7RzaA7gsuMncPtTzYjsWxQsjqT1/IISRHbsjXPz0g2ERDqHSgvR0ySElm17qI2E09Zr1UbCVnbIVC0LShWgmLVEdUOiXH5CdobYfjUhfnzBkRw38T1Zj/F/89/TEUdECAekTOeSSKpXfufZzg31vjprEpO9+aZ8FQjadsbYvqcjcK+i3R3eh3tGN2d3e5KFq1oQgdP+ZSRP/vXNtEn9HXvjXPfrwiuNRxyH+1du4oe/b/aGBZXLjj+MUyePSiuftGbzO2zf0xGY3XjTw+vzVpfYLxIiiXJuYz0LmloC34vusLJDZqCxoFRm3Vmdf8DgmqxjSVUaRg/LOh70zR+0qD2Nrjx5Ylp1BIDrHlrH4BqHhLo71AYN7aWlMuephhq0lXoqACx7cStLr/hQVtVuBG5asiEr2NWEBEXpSPivleAObyFr6j244/duyZ8JI6Ndply3x5OEJPdeuNGwwzUz/4ljJxzIhJFD+fyJEwv6klHIl5HuVG83pj+zMkMZ+rLMUFA5n2jY4U/Xzsj5oZOrBNA3/m0yc6aNzzp/zeZ3uOCulVnleooRVKvOb1DEYfnc9DYXWqoI3EACBPZE8pXmadsZ4xcrN3H7UxvTelLPNL/FgqZ9ySAfnTyKpze+lfYepK5bP6I2q52RkHRmIqZ6lkGvf3A0RHs8mVUPMPNLRVDwKfbLiNW6M5XOygxVgVxzLfmqSQc9ZnBNiMleL6ltZ4z1W94FtDOdO9ccVKG66lWl5pz8Q3ZPvfgmydwlH9IcPnIIa7fsCLwvtR9SkNRutqkFtg2j9+c3615PC0gAv3vxTTJ7OfnWSqVSrkH4zPymrHmtaFj46ukNjD2g1r0/QWfAy1ygnAo+YUdoTyg3zJrEzIZRRZcK6ul6J2P6CwtKZeQGjOwP7tuf2pizmnTQYxLqrhkK2gX24/86Fn9xA8Hdu2hQOFTw9hBdaY9nZ66FRLKG5HLJFZAAEskky5vfCuxFZPY2rj99Ejc9vD7rvJAD/zZ1LAv/vDlwwWnQnE3D6GG0bNtDTchJC0r+ubunX3oT1exhvVSA9g+dplz30Dpa3t5d9J5J1lMyA4WtUyojN2lhQtbxcMjhqRffDFzf8kzzW2lzHpGQcNnxE3hl606uejB7F9j5Kzal9XRqwg6Pfe5D3DHn/ZRq5HbO0eOyPoSLyVDLJ54kcK1PUE29mx7eEJjAsbs9yeI1rYBw6XHvZfncGVmLe4PWYAUlGaTm7havbuWSe57P+oKwtyPZuRaqZduewPbc9czLWY/zJy+kMiVTr7m7NQyN6Y8sKJXZ+dPGEQ2nf3ClygZlfgClPogzA8/tyzZy9k9WFJS8EHKkc6O9AjsyXfrl85tYsro1cFFuSSg8vGZLWmAKeq5Int1rd8bcIqx3/L45677ZU8ewfO4M7rtkWkEBC7yafQFxN+zsq65RP6I2cE4ts9isPxBmBqD7V75acAFeY6qBBaUyS5W1GRRxGBzdV20gVR3hqoVraX7DHd7K9aEfK2IMbnd7gs/Mb+LZv7d1u82ZX/5jceWqhWvpiCcKXpTrd25jvfv6a0JEQpJVnWFvPMmND29g2n//rjNIB/ViEknl1MnpNfIyr5Wrora/WoPf9AkHcucnjuKOOUd2Bqx8wTeeJK1qRFAiUTyZ5Pxp47ICYa7en5v51/VrMKYaWFAqs7adMcbXDeaRy4/lplkNWWVw2uNJTrvtjyxZ3crgmhCxeM+HxWJx5e7lr2R9YIcEvnHmZKJhYb9IKLB0D8CFx4xnv0h2O8+/ayXnNtYTzawblEdIYO7Mw1k+dwa/+MwxrPjSiXz3Y1Ozeo/gfuBfvXANbTtjWb2YaNhh+vsOZPGa19Iekxmvi1njk+q1XHb/C1x6bxPLm98C8lfEiIb2La5t2baH/Wqyp20vP+GwzsQFfyDM1fvryDPUZ0y1saBURqkPvTl3reC0HzzD27vaA8vgtCeULzywmlNv+yOpL82R4BJuBQs7Dqc0pPcq/vWQEfyjbRc/PP9IfvyJIwnl+Ou4d8WrOdu5oKmF+y8+mrOOHF1QOwZFQjz14psAnR/Q0yccyJdOPTwwuIUkvUbd8rkz+Mxx70U1yZPedXKJhLIrXuSSb9+qVEAMap840hkwgoJXNOxw/rRxgc+Zq/d3w6yGku3LZEyls3VKGXprnVLQ9gZB63jObRzDr1e/lnexKUDYcbf07kn2XEiCa8YBHD5yMC9v3ZUzg+6occNZ0/JO1jbh0ZCg4g7B7SlgjRLAkGiIuLe1uUJn9l5QskQ0LPzp2hPT0s8LXQ+V+dh8gtZ3Za6ZyrVOyp8puGR1a2DF8VxynW/Zd6bS2TqlfiRooeT4usGBmVmLVrVy5yeO4v/dtyrrA98vntSc3dywQ97HpuQLaC++sSvvY1dteifwuDu/lfvCYUcIOW5PLRV0dsbc/169cC2gOYucCqTtYwSFb90OboJBoTXjCinvUzckyhUnHsb508blDBjFbvSX63xbp2QGChu+62VBw0BXPriGjniC9oAP34TCZ+9/AZGua9Pl+hguvKpd34snlU8feyhXnzKRQRnDXyFHCEnuP8masNNZWDUl1zybkJ3kUMxcTL5U8aBz820j0dX9PT3fmGpiPaVeFvRNviOhnPfTlRw+cgjrXsteOBq0oLYYBY6alc1Pn34Z1eyeWjyRzLuNeU3ISVuYev/KTdzxVHaKN7h9tU8cM55fPr8p5w6tXQ2JlWo7c2NM4Swo9bJcVRviSQ0MSANBrqHFfFW4YV9PZ/HqVq5ZuKbLvYx++fxmUgtmMytkFFp7rlKHzWyOyVQrG74rkcxV+H5nH1lfhhZVn+tPnwS4iRBdBSRw6whmLpjNtWPs1QuLW5Ca7/ddSkHPYxUeTDWznlIJ5PrW7S/GaXru7Z3tRSU2pCSTyvot77JtdztzF60N3DG2q0K4fsVU+A7Kuiy0hxP0PNMnHFh0MVdj+hMLSj2Ua6fSSQfvn1WM0y8SEo459AD+2Nz9ygoDze1PNXPq5FFFV41oTyiX3PM8Sv6K5/kK4abk+n0HBYXMoBK0AWC+YBb0PHd+4qiii7ka05/Y8F0PBa7CdxxWb34n69yw467fiYbcNUZ/6kGpn/7kA4eOyHt/NOwwc3L2jrmZwo67dim1cHW/mhA1IeHKkyfyjTMnMyjiZFWaSGlPFLCxodJl+Z5cv+/MxwVlXc5/dlPBNexyPQ+I7URrqpoFpR7KtZ7lkLr9snpJ8aS72DWWUOLJ/OuEqsmzr2zLe/9XZ03ipMNH5T0H3HqA67Zs91ZBKSiIwPi6/ZhzzHiWz53Bjz9xVFFljvxiCc0q85SpfkQtezrSN0zc0xHPCgqFFKcNiQQGQXcL+fasfbDcLTX2LzhV3Zj+qOqH70RkJvB9IATcparfLOX1c21XvbvS87IryNgRtYweVtg3/a89vIF9C2zdD23/8NlxEw/i1rOP4OqA7LywAyHHAdXAIraDIk5aFYlc8z+SsTV60JqyfPXxUlJB1r+rrn/IL6lum/272tYNiVqquqlqVR2URCQE3AGcDLQAz4vIElXdUMrnCfqQePql/HXYqllX26dnenTta3x82nhmThrJbza8kffckCOgQiogQfacSur34ZYAaqYmtO/LwuhhgzjvpytzXj9zs8LM+Z+WbXsYFA7RkdjXWxoUzq4UEfRlZfaU0Vm74t78yAZmNozK2o8qNWcUDTvcMedIGkbvn3V9C0amGlV1UAKOBppV9WUAEXkAOAMoaVCC7A+JhtHDiv5wrhbFvuYHmlr4vxdaaE/sq8fnEFyxwl1cm3799kSC7XvaO4ulpno4508bx/nTxnVuD7/57T2c+6sVBK3PrQnvGwbLl8xQSPmhlMwvKy3b9vDoX17rLKsE6QE1KLOwJuQwrDZiAcgMGNUelMYAm30/twDTMk8SkUuBSwHGjQuu4FysuiFRbpzdwI1L1gd+SEecyq+80JdSo2apt8px3MCUudD209MPYVcszvwVmzqPdSSUy+5/ITDD7dyj6lmwqoWwI2nBwC8SEh694lgmjBwKBFfhSAWPKWOHBw7X+gvE+nvMmV9WYhkvaG88kbeqeHeSGGxhbfHsPasc1R6UCqKqdwJ3glslvBTXXLy6lZsf2UBNyCGpCTQJkbBDLJ4khBuQBmpPqhC5qj785A8vIxnrvpJKZzXv+c+6wSoVUPzBK5dzjqrvDEj5kgxSwSHXnE4h65cyq/L7f841P1nMh+T9K17lpofXEwk5JFS7rEpuilt3ZnpftQelVmCs7+d671iv8g//+KW+Jac+7iwgFS8JBI6/9cCnpx8KFJZkkJLZAypk/VLLtj3URsJp22HURsKB82Hrt2wHhIbR+xf8Ou78w9/578deBOgMqrawNr9i1p2ZvlHtQel54DARORQ3GJ0HnN/bT9qdqgOmPC78wDgmjBxaVJJBkHxDfqnHFjo890zzW0V/c79/xaudAckvlXZuH7DBCvm9mb5V1UFJVeMicjnwOG5K+N2qur63n7eQdGBTHjUh4fMnHsbgaJhjJxyYdx4pHBLefHdvQb2VQvdf6mp4rjvf3Nt2xrjpkeDcnY6ELazNp1TzeKZ0qn7xrKo+qqoTVfV9qvqNvnjOuiFRzm20IqyVSFUZXzeYWVNGdwYkCP5w2hVLcMOS9QUVPS10/6XUFu73XTKN5XNnZPWACq0YkfmYmszNozw3zGqwb/x5FLNvlukbVd1TKpe2nTF+uTL/BHv68kvTVzqScPkvXyASEr59zpTOoJD6cLrywTVpc32pxbT+3kquTK1CF7XmW2PUnW/u9SNqiQfMs335tMOZc8z4nI8zLluMXFksKPUC91tt/rBjQalvZb7fHQnl6oXpw2I79sZzJp+EHOGpF98kFk9y89INWfM9/kDlr9DQHZcdPyFr0W++D0r/sGDIcTM6b5g1iTnTLCAVyhYjVw4LSr3A/VabO+REQkJNKL2kjekdYUf4zIcO5Z4/vcrujvT3O55Isn7Ldo6b+B53Xubh3NON7lDeOna1u72Y1HzP1QvXsGNvvMtAVcgHnj/7DzRwc8Jc7Nu+qRZVP6dUDnVDonz73KmB90VCwiXHHho43GJKL+TAWUfWE09mfwFIKHz6589z/4pX3bmcUP7/HVIByS8WV766eF1W9e/7V7yacyO+oI37MquKx+KatjlhIeqGRJkydrgFJNOvWU+pl6S+uf52/eus3/Iu4+v24+1d7dy9/BXuW7GJRDLZWVLHZCvV8GZNKMSu9gRXzJjIt594Kev+eBKu+/U6vnDiBBKa/YxnvX80v1n/Rt5ebebvMJlIctMjG2iPZ2fQ5Ur3ttRkY1wWlHpR3ZAoH/fG9dt2xpg+bxmxuBKLu4snrZuaW6lidSpJ4APvPSDved97splzG8ewZM1rhEToSCS5YVYDMyePYum614t6zvYkDA4L7b5jEcdh/ZbtJampZ0w1s8/FPhKY6psjjdeUzuwpo3mm+S3Ovyt3ZfCUX7+whfs+fTQ3zW7g0c99iDnHjM9KGY6GpcvfW01I6MgYnnUDjuRM97bUZGNc1lPqI4ELasVdcR80bNTfh/YqJbvw1y9sYfHqVtoLeDNV4eN3rSQadmj3ZbDtK/2zr9r4zUs34CBZyRMAiHDDrEnc/Eh68kPD6P3z9oYsWcEYC0p9JtdqfoCrHlxLeyL9wyoSdvjVp4/moRe28IvnNlXEB3wxKqW97p5+hYXIVO+mw6sbd91D60BhzjHj0+aC2hNJTj/iYBrHj+Arv16X9eUhFcxmNoyiZdseBteEOuekuqroYKnJZqCTzKrFA11jY6M2NTX12vWD0oTbdsa8Dek2UhMKZdU7a3qljbN/sqLX2mRyqwkJj37uQ5x++zNZBXYhu0cYduDuTx7dWS8vqAK19YYGrmreIkNEVqlqY0+vYz2lPhb0TbhuSJQrTjyM86eNC/yDjYRDREMSuIV3plyb45luUmX15ndyFtjN/I3Ek/Af964iiXL9Rydx89INWYkNy+fO6PECW9P/2BYZhbFEhwqSa51J/YjarD2Eglz4gXE8/5WT+OQHbCV/qbQn3UW2qYzJQuzuSLC3I8lND68nnPF789exC1qvZKpT5jq01Ho2+91ns55SPxA0H3X96ZMYO2I/WrftJhZPplW8vvGMyRw2aig3LFlPvD9nS/RAxMnOgMtUaDLJ9UvWE5TP0JWwI1kJFqnEhu5+a04N/6TmqapxGKga2Tq0wllQ6ieKzcyaM2080w45gNNueyYriaJY/zJ6KH/ZsqNH1wgLxPsoPgrkDEiRkDAovG/ebsfeODc+HLxlfUp3N2Pc3eFuz75kzZas5JbubCyXCmQAezuSREOCOFK2YaBqnh8pNVuHVjgLSv1IsZlZE0YO5VvnpFe+dryZ+WLC1N/e3MXk0UNZ14PA1FcBCfLn2SWTyh1z3k/D6GGd7+XMyaP4xcpN3PbkSwTkMmSpCQnxhBb0Hi5Zs4VHLj82rVezJmCOqqtvzUG7GccSCgkty06ppZgfGUhBrRRb3Q8UFpSqXND22tt2tXPabX8saO0OQHs8ycY3d/X7tVOQar9kpWFfceJhnDp5FKf94Bna4/nDTb73bVDYYW88Pdjsak+kJTZ051tzvt2M+3oYqBRbiA/ESX9bh1YYS3QYAOqGRDlu4ns4buJB1A2JMmHkUG6Y3ZB1npC7ykSsiw/q/uTlrTuyJpjbdsbY1Z7gqo9M7PZ1IyFBCZ5D8utO9YZ8uxmnnqOvEie6sxGh30Ce9LeiuV2zntIANXn0sLRFnQBDomHumHMk7+5p54sLshf09vdeUsq837zE/zz2Ny4/YQLnTxuXtjB2d3vhWXaZbpzVwNBB4YKGaIr91uwf/oHsOaVchV57Q0/nR2zSvzgDaZgTLCgNWPUjarPKG3Ukk52LPpPqDsk4IuwOqJBdE3J6nEARpCYkhEMOiaTy2Q+/lx889XcSJdjmwz/0uMdLpfv2Ey/xg2Uvobgb4wUNjRVqcDTE5DHDmDJ2eMHBppg5wradMcbXDe6cn/Jn3wFMn7esR8Npxejp/IhN+hduIA5zWlAaoLr6YPHPRX1mfhMxX6ZCNCz89MKjGD2slsfWvc4Plm0seH6qKwp89sPv44DBNdz08PqSBCQH+OLJE7n1t9lbV7jxtovUcQf+Zcz+rN78bs5z4gnt/FAtJNjk+/brvw/g/pWbuH3ZRsKOQ0KT3Hr2lLQPpu4kTvRUT+ZHbNK/MKWYu+uPLCgNYF19sKTmom49e0rWB8hxE98DwBUjh3Lq5FHMvO2PJVkT1ZFQbn+qGdDAQCdATdgh7EjBO/c6jjC+bnC323TnBUdxyfxVec+5/IQJeTPn/O9xvm+//vv2xhMkk9rZw2v3avJ9ccHqtA+mQnsemcGukICSL3j2pE6fTfp3baAOc1pQGuAK+WDp6gNkwsih3DS7wS1g6hNyIIRbFaEYSVVvIj076IRDwtIrjuWZ5reY95sX2VNADnck5PDWzr05swfzlWaKhoQXX9+Rty8VceDUyaMC78sMQLlKD02fcCCQvX4pSDwJ67e8y3ETDwIK63lkBjtVpTYSzjsk1NtDR1Z8Nr+BOsxp2XemIF1lDc2ZNp5vnDmZmpAwuCbEoIjD186YjNPFFuPfO/eIrGMdCe2s1J2pJuzw6LrX+Z/H/lpQQAJ3DunWx1/CcYSQuEEEYFDEYVDE4f99+L05H5uEnMkPqQpCjiOcetsfmffYX/Nucd5V6aGgrLbc0sPk7KljWD53BvddMo3lc2ekBY/MdnQklHiSvJlvAzlDrlIM1D22rKdkSmbOMeOZOXlUWo9qaDTM1QvXpM1JpZzbWM+hBw1lUMRJWxQ6KOJw1vvruf+5TVmPaY8nueOpjYHXyyc11BcNO3zp1MOZPHp/IuFQ57fOn/7xZYKy3lWV+hH7BV4zFVpSbfnRH17mzqdf5gsnTewsrps5/BIO5S49lLrdlUhIaBg9LOt4rp5HvjVOEDwkNFCHjirNQBzmtJ6SKanMHtXsqWP407UncuXJE4mGHfarcQiHhC+fdji3nD0l51DEp6YfQk3AmqlEUhHp/o69sXiSeY+9yAV3P8erbbs6P8jPP3pc4Pk1oVDOa9UE9AIT6mb1ffCby1i3ZXtWkNndnuTMqaMDv/1mfjOOhISw4w4hpp4vGnb49jlTivpwyrfGCYKHhIIe055Isn1Ph/WW+thAW9tk+yll6O39lAayXJPmS1a3Zs2HKHCVrzxSbxgUcVg+dwawL6U6SGpBcbFtGRRx+OLJE/nvR1/MOp5ZesgvKCGhpwVY/e9xoXNKmY9JJpVoOBSYAWiM7adk+p1cw0uZQxTgBolcQSAaEpLkDhJhR4gXkEoeEumsQpBveKu7gTHiOBywX03WIuWg0kN+me9TKb4hB73HXQ0J+ZcFfOp/nyehdG7/npkBaEyp2PCdqQj+IYquJvzFEX55yTRyVETiMx86NGe5JL+9HW7Po6vhLSDnc+XTkUwydexw4iXIoCpFCSH/e1zokJB7v2RlLaYyAI0pNQtKpuLkChKprL5bzjqCxkPr+NoZk7POCTtwyYfey4ovnciNs/6Z2kie4OYFGv9czn6R4DmkYjpLg6P72rn+tXfxd9rCDkVnUC1e3cr0ecu44K6VTJ+3jCWrWwtvjE/3A1uuF29D/6b0bPjOVJxcmxpOHj0sbbhpzjHjQeDGJesJOYKqcuvZ+5IAZk0Zwzd/87ecz1MbCXdmk6WGqp79+1uBdf8yhcTdAyQzWEXDwk2zGjjhcHdxceYwZMhxOtckFaJUq/rzrTnqqrZaw+hhREKS9jpyZQAa01MWlExFKjQVds608cxsGBV4nj+4hRxhVyx97VPmMFqqqGkio5cWtLjWceDHc47i4oxKD7G4MtUbFgsq/1MTKi6tujup2ZlBJl9gK6SQa92QKN8+ZwpXL3Tfx0RSufXs0qyXGWjFRk3XLCiZilXoiv985/mD27rW7dy8dENg1YOgTfRSgvpMkZDDtt0dREPibrbniYb2lT/qzor8zO3OB9eEirpGUI9ofN3gwMC2fsv2gnth+b4kdDew5Oq9te2Mpe3/ZcFqYLGgZKqef2I/c3FvSsu2PVmVFlJqAha87m5P8PbudsRJr10kjqQVZi2m8GjqQ1qTSiyhDPLmw85trGdBU0uX18jVI3rk8mMDAxtIVrBykLQSRpkBJ/N5u1uKKFdbM7enDzvwnXOnWvr5AGJByQwouXpV9SNqc1c6F+ELJ76P7z3ZnHb4lt+8yE2zJ+fsfUHhw5BBPbXU7QVNLXnXNaXkGurb1Z4IDI4No/fPXtzbkeAz85u49Wx3rVi+gNOT+a6gtoYcSQtI4Gb5Xb1wjaWfDyAWlIzBDVY3zJqUVVQW4IZZkxgbUGoonoSxB+zH8rkz8gadQoYhu9ruPN+6phQ3sAbPm+Xa5+mWs47IKgMViye5euFaQInFNWfA6UkposChzYQSdiRrXVhIrLzRQGIp4cZ4/EVl94s41ISEb5w5mTnTxpMvLboUZWBKsd35M81v5U0/D2rn7Klj+OmFjexXk54K72YzZj+Hf8vznlSxDio2esOsSQSteU5o9VfGNvuUpackIucANwL/DBytqk2++74EXIy7b8HnVPVx7/hM4Pu4uyHcparf9I4fCjwA1AGrgE+oaruIRIH5wFFAG/AxVf1Hn7xA028FFZWF3k+L9s8/Zc4pFbLdeWoorTvp5w2jh5HMiECJZPZ+Vns7kgz2Ba+ebtYXNLQ5NBrmSl95qbBDWpq/qX7lGr5bB/w78BP/QRGZBJwHNACjgd+JyETv7juAk4EW4HkRWaKqG4B5wHdV9QER+TFuQPuR999tqjpBRM7zzvtY7780098FDbf1Vlq0P5HA/yFd7HbnQUNphaafBwWXy46fwO3LNubMLEzpaRXrzPfaX9rIsu8GprIEJVX9KxBU7fkM4AFVjQGviEgzcLR3X7Oqvuw97gHgDBH5KzADON875x7cHtiPvGvd6B1fCNwuIqJWgdZ0U6m3EciVuZZ53UK2Ow+u6p0oeNgrqDbeHb9vzplZ6FfqzfrqhkQ7dzY2A0+lzSmNATb7fm7xjuU6Xge8o6rxjONp1/Lu3+6dn0VELhWRJhFp2rp1a4leiqlGpdpGoJhN9AqZu0n1dsK+/6OTCsub3yq4TZm18braYK4U9fhy6c1rm8rWaz0lEfkdELRH9HWquri3nrc7VPVO4E5wt64oc3PMAFBM5lquskuppIPU+dMnHEjIcToLwHYktFsliVLy9QzzLXztaU+yt7dhN5Wt14KSqp7UjYe1AmN9P9d7x8hxvA0YLiJhrzfkPz91rRYRCQPDvPONKbtiM9eyKlM8siHrQ7tl2x5qQg6xePEp2rkEDc3lW/iauWar2GBSqlp/pv+qtOG7JcB5IhL1suoOA54DngcOE5FDRaQGNxliiTc/9BRwtvf4i4DFvmtd5N0+G1hm80mmUhQyPBb0mPoRtdy8dEPgsF9PUrSLEbS1SEiEmx4JbldPr50KrNXAhiW7Vq6U8H8DfgAcBCwVkdWqeoqqrheRBcAGIA5cpqoJ7zGXA4/jpoTfrarrvcvNBR4Qka8DLwA/847/DLjXS5Z4GzeQGVMxupM4kW/Yb8rY4Vx/+iRuengDkZCbIVjsNhmFCF74mqQm7NAe33esO720vgqs5WDDkoUpS09JVR9S1XpVjarqSFU9xXffN1T1far6T6r6mO/4o6o60bvvG77jL6vq0ao6QVXP8TL3UNW93s8TvPtf7ttXaUzXik2cyPehvXh1qzesJ3TEk1z/0Um98qEXvPC1IWu33+4Ek+70IPuDYhJbBjorM2RMP5JrwSqQVTvv5qUbmDl5VK98oAcufB0U7vZC2q6u3d/1pCTTQGNByZh+JuhDu5C1TKWWa+FrKYJJqdc+lVs1D0uWWqUlOhhjCpA57NdbH3rFTsyXYh1XNSYDVOuwZG+wnpIxVaCndeiClGNivpqTAapxWLI3iGVJp2tsbNSmpqauTzSmApVqe/G2nbHOenspgyIOy+fO6LUP03I8pykdEVmlqo09vY71lIypIj2di0kFte172tGMbDpNaq/OUVkyQHmV6gtNT1lQMsYA6UNnsXicjILgxBKatnVFqVkyQPlU0rCpJToYY7LW0WQGJHCH0jK3riglSwYoj0pbQ2U9JWNM3u3Y/Xq712LJAH2v0oZNLSgZYwKHzsKOu3ttTag02XyFqrY1SpWu0oZNLSgZY3KmlFuvpfr1xnKCnrCU8AyWEm4GskrJwDJ9r6e/e0sJN8aUnA2ddU81BPNK+d1bUDLGmB6opHTqamAp4cYY002Vlk5dDSwoGWOMp9hisC3b9uSsfGG6x4bvjDGG7g3DDa4JEUukB6XernxR7aynZIwZ8Lo7DLerPcGgSPrHaG9Xvqh2FpSMMQNeqqqBX6qqQT71I2qJJ9IXnsYTVq+vJywoGWMGvJ5UNRCRvD+b4lhQMsYMeN0tBtuybQ+DwunzR4PCIUt06AFLdDDGGLpXDLbS6sZVA+spGWOMp25IlCljhxdc2aDYHlaxKecDkfWUjDGmBwrtYS1e3co1C9cQEoeEJrn17ClW+SGABSVjjOmhrurGte2MceWC1cSTAG66+BcXrGb6hAMrot5cJbHhO2OM6WXrt7zrBaR94kn3uElnQckYY3pdri2CbOugTBaUjDGmlzWMHkYklL5+KRISGkYPK1OLKpcFJWOM6WV1Q6J8+5wpRMMO+9WEiIYdvn3OFJtPCmCJDsYY0we6sw5qILKgZIwxfaRSdnetZDZ8Z4wxpmJYUDLGGFMxLCgZY4ypGBaUjDHGVAwLSsYYYypGWYKSiNwqIi+KyFoReUhEhvvu+5KINIvI30TkFN/xmd6xZhG51nf8UBFZ6R3/lYjUeMej3s/N3v2H9OVrNMYYU7xy9ZSeACar6hHAS8CXAERkEnAe0ADMBH4oIiERCQF3AKcCk4CPe+cCzAO+q6oTgG3Axd7xi4Ft3vHveucZY4ypYGUJSqr6W1WNez+uAOq922cAD6hqTFVfAZqBo71/zar6sqq2Aw8AZ4i77/AMYKH3+HuAM33Xuse7vRA4UWyfYmOMqWiVMKf0aeAx7/YYYLPvvhbvWK7jdcA7vgCXOp52Le/+7d75WUTkUhFpEpGmrVu39vgFGWOM6Z5eq+ggIr8DRgXcdZ2qLvbOuQ6IA/f3VjsKoap3AncCNDY2WtleY4wpk14LSqp6Ur77ReSTwOnAiaqaCgStwFjfafXeMXIcbwOGi0jY6w35z09dq0VEwsAw7/y8Vq1a9ZaIvNrVeQEOBN7qxuP6QiW3Dax9PVHJbQNrX09Uctsgu33jS3HRstS+E5GZwDXAh1V1t++uJcAvROQ7wGjgMOA5QIDDRORQ3GBzHnC+qqqIPAWcjTvPdBGw2Heti4BnvfuX+YJfTqp6UDdfU5OqNnbnsb2tktsG1r6eqOS2gbWvJyq5bdB77StXQdbbgSjwhJd7sEJV/0NV14vIAmAD7rDeZaqaABCRy4HHgRBwt6qu9641F3hARL4OvAD8zDv+M+BeEWkG3sYNZMYYYypYWYKSl6ad675vAN8IOP4o8GjA8Zdxs/Myj+8FzulZS40xxvSlSsi+qxZ3lrsBeVRy28Da1xOV3Daw9vVEJbcNeql9UsA0izHGGNMnrKdkjDGmYlhQykFExorIUyKyQUTWi8jnveM3ikiriKz2/p3me0xRdftK0MZ/iMhfvHY0eccOEJEnRGSj998R3nERkdu8NqwVkSN917nIO3+jiFxUgnb9k+/9WS0i74rIF8r53onI3SLypois8x0r2XslIkd5v4tm77FFVQ/J0b7AGpEicoiI7PG9jz/uqh25XmsP2lay36XkqF/Zw/b9yte2f4jI6jK9d7k+Ryriby9P+8r3t6eq9i/gH3AwcKR3eyhujb5JwI3AVQHnTwLW4GYVHgr8HTdTMOTdfi9Q450zqURt/AdwYMaxW4BrvdvXAvO826fhVs4Q4BhgpXf8AOBl778jvNsjSvg+hoDXcdcwlO29A44DjgTW9cZ7hbt04RjvMY8Bp5agfR8Bwt7teb72HeI/L+M6ge3I9Vp70LaS/S6BBcB53u0fA5/t6XuXcf+3ga+W6b3L9TlSEX97edpXtr896ynloKqvqeqfvds7gL+yr4RRkKLq9vVi0/01/zJrAc5X1wrcRccHA6cAT6jq26q6DbdY7swStudE4O+qmm9Bcq+/d6r6NO7SgMzn7fF75d23v6quUPf/vPm+a3W7fZq7RmSgLtqR67V2q215lLJ+ZY/b513/XOCX+a7Ri+9drs+Rivjby9W+cv7tWVAqgLjbXrwfWOkdutzr1t7t64oWW7evFBT4rYisEpFLvWMjVfU17/brwMgytg/c9WH+D4RKee+gdO/VGO92b7UT0mtEAhwqIi+IyB9E5EO+dudqR67X2hOl+F3mq19ZCh8C3lDVjb5jZXnvMj5HKu5vL+BzLqVP//YsKHVBRIYAi4AvqOq7wI+A9wFTgddwhwbK5VhVPRJ3S4/LROQ4/53eN5aypVd6cwOzgQe9Q5X03qUp93uVj2TXiHwNGKeq7we+iFsFZf9Cr1ei11qxv8sMHyf9S1FZ3ruAz5EeX7OUcrWvHH97FpTyEJEI7i/qflX9PwBVfUNVE6qaBH7KvoW7uer25avn1yOq2ur9903gIa8tb3hd6VSX+s1ytQ83WP5ZVd/w2lkx752nVO9VK+nDGyVrp+yrETnH+x8ab2iszbu9CneuZmIX7cj1WrulhL/LzvqVAW3uEe+a/w78ytfuPn/vgj5H8lyzz//2crSvfH97+SacBvI/3Mm6+cD3Mo4f7Lv9X7jj5+BuTOif4H0Zd3I37N0+lH0TvA0laN9gYKjv9p9w54JuJX1S8Rbv9kdJn0B9zjt+APAK7uTpCO/2ASV6Dx8APlUp7x0Zk7SlfK/InuQ9rQTtm4lbcuugjPMOAkLe7ffi/s+ftx25XmsP2lay3yVuT9qf6PCfPX3vfO/fH8r53pH7c6Qi/vbytK9sf3s9/uCp1n/AsbjdzLXAau/facC9wF+840sy/ue8Dvebw9/wZcB4j3vJu++6ErXvvd7/2GuA9anr4o7RPwlsBH7n+4MR3N17/+61v9F3rU/jTkg34wsiPWzfYNxvwcN8x8r23uEO4bwGdOCOd19cyvcKaATWeY+5HW9heg/b14w7j5D6+/uxd+5Z3u98NfBnYFZX7cj1WnvQtpL9Lr2/5ee81/sgEO3pe+cd/znwHxnn9vV7l+tzpCL+9vK0r2x/e1bRwRhjTMWwOSVjjDEVw4KSMcaYimFByRhjTMWwoGSMMaZiWFAyxhhTMSwoGdPPicjxIvJIudthTClYUDKmQolIqNxtMKavWVAypgy8fWleFJH7ReSvIrJQRPYTd++feSLyZ+AcEfmIiDwrIn8WkQe9GmWpvYle9M77d991P+zb6+YFERlartdoTHdYUDKmfP4J+KGq/jPwLvCf3vE2dQvt/g74CnCS93MT8EURGYRbb24WcBQwynfNq4DLVHUqboXsPX3xQowpFQtKxpTPZlVd7t2+D7fkC+wrIHoM7oZry8XdOfUi3M0SDwdeUdWN6pZkuc93zeXAd0Tkc8Bw3bclhDH9ggUlY8ons8ZX6udd3n8Fd2O3qd6/Sap6cd4Lqn4TuASoxQ1mh5e0xcb0MgtKxpTPOBH5gHf7fOCZjPtXANNFZAKAiAwWkYnAi8AhIvI+77yPpx4gIu9T1b+o6jzgedxelTH9hgUlY8rnb7ibM/4VdzuCH/nvVNWtwCeBX4rIWuBZ4HBV3QtcCiz1Eh38+9N8QUTWeed3kL5jqDEVz6qEG1MG3tbTj6jq5HK3xZhKYj0lY4wxFcN6SsYYYyqG9ZSMMcZUDAtKxhhjKoYFJWOMMRXDgpIxxpiKYUHJGGNMxbCgZIwxpmL8f15kUhYLXVgQAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 432x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"matplotlib.rcParams['figure.figsize'] = (6.0, 6.0)\n",
"preds = pd.DataFrame({\"preds\":knn.predict(x_train), \"true\":y_train})\n",
"preds[\"residuals\"] = preds[\"true\"] - preds[\"preds\"]\n",
"preds.plot(x = \"preds\", y = \"residuals\",kind = \"scatter\")\n",
"plt.title(\"Residual plot in SVM\")"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "ef357c92",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Train Error</th>\n",
" <th>Test Error</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Ridge Regression</th>\n",
" <td>98.118859</td>\n",
" <td>100.862308</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Knn</th>\n",
" <td>86.047324</td>\n",
" <td>29.305494</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Bayesian Regression</th>\n",
" <td>98.417705</td>\n",
" <td>6.270475</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Decision Tree</th>\n",
" <td>98.155743</td>\n",
" <td>7.167745</td>\n",
" </tr>\n",
" <tr>\n",
" <th>SVM</th>\n",
" <td>73.122456</td>\n",
" <td>21.522381</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Train Error Test Error\n",
"Ridge Regression 98.118859 100.862308\n",
"Knn 86.047324 29.305494\n",
"Bayesian Regression 98.417705 6.270475\n",
"Decision Tree 98.155743 7.167745\n",
"SVM 73.122456 21.522381"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"train_error=[train_error_ridge,train_error_knn,train_error_bay,train_error_tree,train_error_svm]\n",
"test_error=[test_error_ridge,test_error_knn,test_error_bay,test_error_tree,test_error_svm]\n",
"\n",
"col={'Train Error':train_error,'Test Error':test_error}\n",
"models=['Ridge Regression','Knn','Bayesian Regression','Decision Tree','SVM']\n",
"df=DataFrame(data=col,index=models)\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2fbe3ec2",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3.7.13 ('leagues')",
"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.6.9"
},
"vscode": {
"interpreter": {
"hash": "a07b7f3079ca8c056705d3c757c4f3f92f9509f33eeab9ad5420dacec37bc01a"
}
}
},
"nbformat": 4,
"nbformat_minor": 5
}