{ "cells": [ { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2018-07-03T12:02:43.936941Z", "start_time": "2018-07-03T12:02:43.930614Z" } }, "source": [ "*For full screen view & to download, visit *\n", "- `HTML` : Click here\n", "- `GITHUB` : Click here\n", "\n", "*To get back to ML website*, Click here" ] }, { "cell_type": "markdown", "metadata": { "toc": "true" }, "source": [ "
This is nothing but equation for a line.
\n", "\n", "Here, \n", "- `x` denotes the input features (`x[0]` is input feature of a single data point) and, \n", "- `ŷ` denotes the prediction made by the model.\n", "- `w` is the slope (*weights or coefficients*) along each feature axis (`w[0]` is slope along axis `x[0]`)\n", "- `b` is the intercept (offset) along `y-axis`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Trying to learn the parameters, `w` and `[b]` is the task of the linear models. \n", "\n", "For models with `n` input features, the prediction formula will become as\n", "\n", "- `ŷ = w[0]*x[0] + w[1]*x[1] + ... + w[n-1]*x[n-1] + b = w*x + b`\n", "\n", "Let's look at an one-dimensional (one input variable) `wave` dataset which will have a following linear line that best approximates the input features with output values.\n", "\n", "From the output below, we see that the slope `w[0]` of the linear line is around 0.4. The intercept `b` is close to 0. " ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "ExecuteTime": { "end_time": "2018-09-09T03:12:31.652230Z", "start_time": "2018-09-09T03:12:31.151966Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "w[0]: 0.393906 b: -0.031804\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "Linear models for regression can be characterized as regression models for which the prediction is \n", "
Linear Regression
Ridge Regression
Lasso
Linear regression has no parameters to control/tune which makes it easy to use, but it also has no way to control model complexity.
\n", "\n", "For more details, refer http://scikit-learn.org/stable/modules/linear_model.html#ordinary-least-squares" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### makewave: *1*-D dataset" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at an one-dimensional (one input variable) `wave` dataset for which we will find a linear line that best approximates the input features with output values." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2018-09-14T03:21:16.320509Z", "start_time": "2018-09-14T03:21:09.336340Z" } }, "outputs": [], "source": [ "import mglearn\n", "from sklearn.linear_model import LinearRegression\n", "from sklearn.model_selection import train_test_split\n", "import numpy as np\n", "\n", "X,y = mglearn.datasets.make_wave(n_samples=60)\n", "X_train, X_test, y_train, y_test = train_test_split(X,y, random_state=42)\n", "\n", "lr = LinearRegression().fit(X_train, y_train) # Fit the linear regression model on the training data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- The `intercept_` attribute learned by the `LinearRegression().fit(X_train, y_train)` method will always be a single float number.\n", "- The `coef_` learned is a `numpy` array with one entry per input feature. \n", " - As the `wave` dataset code has only one input feature, `coef_` only has a single entry." ] }, { "cell_type": "code", "execution_count": 95, "metadata": { "ExecuteTime": { "end_time": "2018-09-09T04:15:01.729514Z", "start_time": "2018-09-09T04:15:01.720520Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "--- Slope and intercept learned from the wave training data by Linear Regressor ---\n", "lr.coef_: [ 0.39390555]\n", "lr.intercept_: -0.031804343026759746\n" ] } ], "source": [ "print ('--- Slope and intercept learned from the wave training data by Linear Regressor ---')\n", "print (\"lr.coef_: {}\".format(lr.coef_)) # slope or weight parameter learned from the training data\n", "print (\"lr.intercept_: {}\".format(lr.intercept_)) # intercept along y-axis learned from the training data" ] }, { "cell_type": "code", "execution_count": 96, "metadata": { "ExecuteTime": { "end_time": "2018-09-09T04:15:31.572468Z", "start_time": "2018-09-09T04:15:31.562815Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "--- Compute the linear line learned to include in the plot ---\n" ] } ], "source": [ "print ('--- Compute the linear line learned to include in the plot ---')\n", "linear_x = np.array([min(X), max(X)])\n", "predicted_y = lr.coef_ * linear_x + lr.intercept_" ] }, { "cell_type": "code", "execution_count": 91, "metadata": { "ExecuteTime": { "end_time": "2018-09-09T04:09:23.915959Z", "start_time": "2018-09-09T04:09:23.623307Z" } }, "outputs": [ { "data": { "image/png": "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\ngg==\n", "text/plain": [ "An R2
test score of 0.66 is not very good.
From the training and test scores, we find that the prediction is good on training set, but R2
score is worse on the test set.
Regularization means explicitly restricting a model to avoid overfitting.
\n", "\n", "- The ridge regression used here is also known as `L2 regularization`, which penalizes the Euclidean length of w\n", "\n", "The ridge coefficients minimize the penalized residual sum of squares. \n", "The Ridge model makes a trade-off between the model simplicity (near-zero `w` coefficients) and its performance on training set.
\n", "\n", "- The tradeoff can be specified by the us, using the `alpha` parameter (called as `Regularization strength`)\n", "- When `alpha` parameter is not specified as in previous case, it uses default value of `alpha=1.0`, which have to be optimized for each dataset.\n", "\n", " Larger values specify stronger regularization (by forcing the coefficients w
to move toward zero), which decreases the training set performance but might help generalization
Linear regression\" title=\"Cost function - Ridge > Linear regression\" style=\"max-width:350px;\">
A higher alpha
means a more restricted model (more penalty), so we execpt the coef_
(weights) to have smaller magnitude for a higher value of alpha
.
■ Coefficients of Ridge model with alpha=1. Here, the coefficients are somewhat larger than range of -3 to 3
\n", "▲ Coefficients of Ridge model with alpha=10. Here, the coefficients are mostly between -3 to 3
\n", "▼ Coefficients of Ridge model with alpha=0.1. Here, the coefficients have large magnitude
\n", "● Coefficients of Linear model (no alpha parameter involved). Here, the coefficients are so large that many of them are outside the chart range
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Training size - insight" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Another way to understand the effect of regularization is to fix `alpha` but vary the **size of training data**.\n", "In the figure below, the `boston housing` dataset is subsampled & evaluated on `LinearRegression` and `Ridge(alpha=1)` with training subsets of increasing size." ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "ExecuteTime": { "end_time": "2018-09-14T04:06:17.945884Z", "start_time": "2018-09-14T04:06:14.305961Z" } }, "outputs": [ { "data": { "image/png": "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\n7ZkHDhzIKCkpaXCP2ZKSEk2/fv0q09PTM5544on85557LsjLy8uyf//+jKysrPSuXbvWPvPMM10B\nYOHChaG//vrrwczMzPTU1NSM6Ojo2t9++81l27ZtHocPH07LyspKX79+/aHGdXPq1CnNfffdF7Vy\n5crsgwcPpt92221FU6dOjbKlHz582HnWrFl5Bw8eTL/55puLnn/++a4XehwYY+xCdfqWuHO1lLWF\nH3/80XvPnj1ub775ZhAA1NTUqIKDg01+fn6WiIgI4+TJk6Ouu+66skmTJpXa7mvZGv369YurrKxU\nFxYWateuXdvs/S83btzocddddxXqdDqh0+nEbbfdVrht2zZ3W9rUqVMLtVottFqtmDRpUtHWrVvd\nAWDt2rXe+/btc0tISDAAgMViIQ8Pj45166xztJS1hct1LrTGXXfdVQQAsbGxtZ6enpbs7Gwnq9WK\n7Oxs5ylTptSNkzSZTLR//37nXr161SxdutRv1apVviaTiaqqqtRRUVF1rU/h4eE11113XaV9Hl99\n9ZXfxo0bPY8fP64bPHhw2fjx48sBeSu2kydPOo0ePTrGti4RIT09Xbdp0yb3ESNGlNr+Cbn//vsL\nvv32W1/bejqdTvz5z38utr3+/vvvvSsqKlRr1qzxAYDa2loyGAzVADBw4MDyqVOnRt5www2lt9xy\nS4nBYKiNi4urNZvNdPvtt0cOHz687LbbbmsQcALAxo0b3eLj46v79OlTAwBz5swpePLJJ8OLi4tV\nABAVFWVMTk6uBoBBgwZVrlu3zvtijgVjjF2ITh/EtUdCCHz77beHDQZDbeO0PXv2ZPzwww/uP/30\nk2e/fv3i//vf/x4aMGBAdWu2u2PHjkwvLy/rc889Fzh9+vRuhw8fPuDq6npJxkAJIfD444/nzp07\nt/BSbI9Jl+tcaA0XF5e6oFCtVguz2Qwigre3tzkzMzO98frr1q1z/+ijjwK2b9+eGRwcbH733Xd9\nly1bFmBLd3NzaxJkTpo0qfC99947efz4cc3gwYPjFi1aFDB//vx8IQRiY2Ord+7c2eSfjU2bNrmf\no9wWlaq+E0EIgcWLFx+fMGFCk/ugrl+//sjGjRtdf/zxR8/rrrsu9o033si57bbbyrKystK+++47\njx9++MFz4cKFoTt37myyvy3R6XT2dQeLxXLFLhhhjDEb7k69Atzc3KxFRUV1XUKjRo0qeeGFF7ra\n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\n", "text/plain": [ "The consequence of L1 regularization
is that when using lasso, some coefficients are exactly zero
This can be seen as automatic feature selection, where having some coefficients as 0 reveals the most important features of the model, thereby making it easier to interpret it
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### boston housing: *n*-D dataset" ] }, { "cell_type": "code", "execution_count": 92, "metadata": { "ExecuteTime": { "end_time": "2018-09-14T04:47:30.200863Z", "start_time": "2018-09-14T04:47:30.165390Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Shape of training set: (379, 104)\n", "Shape of test set : (127, 104)\n", "\n", "Lasso details: Lasso(alpha=1.0, copy_X=True, fit_intercept=True, max_iter=1000,\n", " normalize=False, positive=False, precompute=False, random_state=None,\n", " selection='cyclic', tol=0.0001, warm_start=False)\n", "\n", "Number of features used: 4 out of 104\n", "Training set score: 0.29\n", "Test set score: 0.21\n" ] } ], "source": [ "import mglearn\n", "from sklearn.linear_model import Lasso\n", "from sklearn.model_selection import train_test_split\n", "import numpy as np\n", "\n", "X,y = mglearn.datasets.load_extended_boston()\n", "X_train, X_test, y_train, y_test = train_test_split(X,y, random_state=0)\n", "print (\"Shape of training set: {}\".format(X_train.shape))\n", "print (\"Shape of test set : {}\".format(X_test.shape))\n", "\n", "lasso = Lasso().fit(X_train, y_train)\n", "print (\"\\n\" + 'Lasso details:', lasso)\n", "print (\"\\nNumber of features used: {} out of {}\".format(np.sum(lasso.coef_ != 0), X.shape[1]))\n", "\n", "print(\"Training set score: {:.2f}\".format(lasso.score(X_train, y_train)))\n", "print(\"Test set score: {:.2f}\".format(lasso.score(X_test, y_test)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### `alpha`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- We can see that Lasso does quite badly on both training (`0.29`) and testing (`0.21`) whereas *Ridge scored `0.77` on test set*. \n", "- A low training and test score indicates **underfitting** and it's obvious that the **model only used `4` out of `104` input features**\n", "- Similar to `Ridge`, we can control the regularization strength using `alpha` parameter. \n", "- To resovle underfitting issue, let's reduce the `alpha` from `default value (1.0)` to `0.01`, thereby reducing the regularization strength. " ] }, { "cell_type": "code", "execution_count": 93, "metadata": { "ExecuteTime": { "end_time": "2018-09-14T04:54:10.228671Z", "start_time": "2018-09-14T04:54:10.152718Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Lasso details: Lasso(alpha=0.01, copy_X=True, fit_intercept=True, max_iter=100000,\n", " normalize=False, positive=False, precompute=False, random_state=None,\n", " selection='cyclic', tol=0.0001, warm_start=False)\n", "\n", "Number of features used: 33 out of 104\n", "Training set score: 0.90\n", "Test set score: 0.77\n" ] } ], "source": [ "lasso = Lasso(alpha=.01, max_iter=100000).fit(X_train, y_train)\n", "print (\"\\n\" + 'Lasso details:', lasso)\n", "print (\"\\nNumber of features used: {} out of {}\".format(np.sum(lasso.coef_ != 0), X.shape[1]))\n", "\n", "print(\"Training set score: {:.2f}\".format(lasso.score(X_train, y_train)))\n", "print(\"Test set score: {:.2f}\".format(lasso.score(X_test, y_test)))" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2018-09-14T04:40:13.969734Z", "start_time": "2018-09-14T04:40:13.957757Z" } }, "source": [ "- It's evident that lower `alpha` allows us to fit a more complex model, thereby improving the score. \n", "- The performance on test data is `0.77` and is slightly better than `Ridge` as we are using only **33 out of 104** features. \n", "- If we set the `alpha` too low, we again remove the effect of regularization and end up overfitting, similar to `LinearRegression`." ] }, { "cell_type": "code", "execution_count": 95, "metadata": { "ExecuteTime": { "end_time": "2018-09-14T04:57:21.957624Z", "start_time": "2018-09-14T04:57:19.358120Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Lasso details: Lasso(alpha=0.0001, copy_X=True, fit_intercept=True, max_iter=100000,\n", " normalize=False, positive=False, precompute=False, random_state=None,\n", " selection='cyclic', tol=0.0001, warm_start=False)\n", "\n", "Number of features used: 94 out of 104\n", "Training set score: 0.95\n", "Test set score: 0.64\n" ] } ], "source": [ "lasso = Lasso(alpha=.0001, max_iter=100000).fit(X_train, y_train)\n", "print (\"\\n\" + 'Lasso details:', lasso)\n", "print (\"\\nNumber of features used: {} out of {}\".format(np.sum(lasso.coef_ != 0), X.shape[1]))\n", "\n", "print(\"Training set score: {:.2f}\".format(lasso.score(X_train, y_train)))\n", "print(\"Test set score: {:.2f}\".format(lasso.score(X_test, y_test)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- It's evident that a very low `alpha` (close to 0) causes overfitting, thereby failing to generalize well on test set. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### alpha - Qualitative insight" ] }, { "cell_type": "code", "execution_count": 105, "metadata": { "ExecuteTime": { "end_time": "2018-09-14T05:05:22.984114Z", "start_time": "2018-09-14T05:05:19.997135Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA7sAAAGDCAYAAADqLAcfAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XuclXW5///3NczAgCgemMEZT6gYgQIjjdrByi/YT60Q\nMjq6KzuoU5mB7dJMzbS9d/mtoPauve2I5SGTrwZjZakoaGU6GHkiNkIekEFQcYRwhIHr98d9r2HN\nmrXWrDWz1tz3uuf1fDzWY2bdx2vd5+v+fO7Pbe4uAAAAAACSpCrqAAAAAAAAKDWSXQAAAABA4pDs\nAgAAAAASh2QXAAAAAJA4JLsAAAAAgMQh2QUAAAAAJA7JLlBmZna2mf0h6jgKZWbjzGyFmW0zs2/3\nMex2MztqsGKLAzO71Mx+XMLpXWlm15dqeuE0zcx+ZmZbzezBEkxvvJm5mVWXIr6hxszeamZr4jr/\nga5fMzvHzO5P+959XDCzUWb2WzPrMLMfm9lIM2sNv9/Sn/nFlZnda2afijqOFDObaGarwmP5hUWO\ne4qZbSj1sIPNzJ4ys1Nz9Cv7tljAvrfIzL5ejnlXmqiPk0guLlxQMczsw5IukvR6SdskrZL0b+5+\nf94RI+buN0i6Ieo4inCepBck7ed9vIjb3UeXYoZmtkjSBne/rBTTKyd3//fU/2Y2XtI/JNW4e1dU\nMWVxsqR3SDrU3f8ZdTBDnbvfJ2liXOZvZk9J+pS731Wm+aUfF+ZKOkjSge6+28w+ImmcpIOi2GfM\nzCUd4+5PDva8I/AlSfe4e1PUgcTUXJV5W4x6368kLCuUCyW7qAhmdpGkhZL+XcHJ6XBJ35d0ZpRx\n9aVCS8KOkPREX4kuYu0ISU/1J9GttG221PFW2u+vAIdLWuvuu8PvR0j63/4kF6yboh0h6fGog4ix\nsm6LcdpeOU5iSHN3Pnxi/ZE0RtJ2Se/LM8wIBcnwxvCzUNKIsN8pkjYouMu9WVK7pDmS3inpfyW9\nJOnStGldKWmxpJsVlCA/LGlaWv9LJK0L+z0h6T1p/c6R9EdJCyS9KOnrYbf704ZxSS2S1kp6WUHS\nbmG/YZK+raBk9R+SLgiHr87xuw+TdKukLeH8/ivsXiXpMklPh7/555LGpI33Rkl/Cuf/N0mnhN0X\nSdolaWe4zE8NY7o07TevlHRY2m+ZkLYOviXpGUnPS/ofSSMz1sEX0tbBx8N+52XMszXHb3VJnwmX\n2zZJV0s6Ovwdr0j6laTh4bAHSLo9XC5bw/8PTZvWkZJWhNO5K1wH14f9xofz+lj4W16Q9JWM7SM1\n7DPhsNvDz5vS+2dMrzpt3svDed8p6b8yhs+6btK2r/XhuP+QdHaW5fRJSZ2SdocxfS3sfq6kJxVs\n70slNWYs28+Gy/YfWaaZ+Rs+Lml1GMd6SeenDTs2XN4vh/O6T1JV2O9iSc+F462RNLOv/TdLLOco\nYx8Lu38ijGmrpN9LOiJtnP8vnF+HpB+Ey/9T/ZmeJAuH3axgu3tU0nFhv3cqOCZsC3/nv6Zv/2nx\nTJJ0b7iMHpd0Zlq/RQq2x9+E0/mLpKNzLIvrJH0h/P+Q1HoMvx8dLv+q9PlL+oWkPZJeDbePL6mP\nbT7LfA9SsA29IulBBfti5jFugqSvKdivd2nvPpL+/ZMFrLte26aC2j13hr9vjaT3F7L8FOzzLumf\n4fw/kOU88nJqfYbd6sJlVa++jyv3au92daXyHwfGSPqJgmPhcwrOFcPCfhMUbKMd4bq4Oc+6OFPB\nNvRyOP9JYfdlCo4BneFvfV2WcfPtx93bTPj9KUlfVrB9b5X0M0m1fR3fw/7vkvRXBdvLs5KuzPN7\nClnGVyvYZ7dJ+oOksWn9P6LgvPeipK+EcZ+aZT6Z2+Ynlee8mbb+PqlgH1mRZZqp5XCxpE0K9rXM\n5Xi8gmuKbQquMX6p8JgT9v9SuPw2SvqUCjzHcpzMfZzkwyfyAPjw6esj6XRJXcqR8IXDXCXpAQUX\nJHUKkoWrw36nhONfIalGwUX/Fkk3StpX0rEKLmaODIe/UsEJcG44/L9qb1VVSXqfpEYFJ8YPKLhw\nagj7nRPO63MKHhMYqezJ7u2S9ldQ6rFF0ulhv5bwJHCogpP+XcqR7CpIQv8WnlD2kVQr6eSw3ycU\nJDZHSRqtICH+RdjvkPBk9c7wN7wj/F4X9l+kniffL4YnqonhCWyagmpfqd+SOhEvUHABfGC4XFsl\n/UfGOrgqXKbvlLRD0gHZ5pljHbukJZL2C9fZa5LuDn/jmHC5fSwc9iBJ75U0KozlFkm/TpvWnxVc\nNAxXUOX3FfVOdn8Urr9p4bwmpW0fmcNWp027u3+2YcJ5f0fBhcvbFJyor+9r3YTr+BVJE8NhGyQd\nm2NZnaOe29wMBRfN08P5/qfSLtbC+O4M112vi6csv+FdCpIpk/T2cF1OD/v9h4KLsJrw89ZwuIkK\nLnQb06aZSkJy7r85flvmPjZbwfY+Kex2maQ/hcOPDZfbWWG/zyvYvz/Vz+mdpuCGz/7h75qkvft/\nu6S3hv8fkLZMTtHeZLMmnPalCra/GeE2kFqvi8J1fmI47xsk/TLHsviEwptDkj6s4IbUzWn9lmTO\nP/z+lNISAPWxzWeZ7y8V3FzaR9JxCi5YeyW7OfaHzO85l3W2bTOc57MKErVqBcnDC5ImF7L80mPL\n8dt+quDxmNT3z0q6o8Djyr0qPNm9TdK14e+pV3DT4Pyw300KErUqpR3Xs8T6OgXnn3co2K6+FC7L\n4Znx5Bg/336cbZt5TMEN1gMVJD5fTxs23/H9FElTwt8zVUGiNidHTIUs43Xhbx8Zfv9G2G+ygsT1\nbQqOc98J4+qV7OZYR/nOm6n19/NwnWU7TqaWwzfD+Y9Uz31/uIJEen64nOYqOBalluPpCpLkY8Pf\nf70KPMdynMx9nOTDJ/IA+PDp6yPpbEmb+hhmnaR3pn0/TUE1ztQB9FXtvWu+b3gCOSlt+JUKT74K\nToAPpPWrSj84Z5n3Kkmzw//PkfRMRv9z1PtC8OS077+SdEn4/zL1vLt+qnInu29SkChn63e3pM+k\nfZ8YnriqFdx1/kXG8L/X3kRxkXomu2tSvy/LfFxBKYQpuOg6OiO+f2Ssg/SkcLOkN2abZ555vSVj\nnV2c9v3bkhbmGLdJ0tbw/8MVnLRHpfW/Xr0T2PTShAclfTBt++hXsps2733S+t+YNr2c60bBBdbL\nCi4Es97Nz7PN/UTSNWnfR4fbw/i0ZTsjz/R6/c6M/r+W9Pnw/6sU3JSYkDHMhHCdn6rwxlEh+2+O\n35a5j/1OYSlh2j67Q0E1xY9K+nNaP1OQLH2qn9OboaBGyBsVllinDfeMpPMVPO+e3v0U7b2Ie6uC\nC9qqtP43KSztUrAv/Dit3zsl/T3HsjhaQYlKlYIbDOenzec6SRdlzj/8/pSyJ7tZt/mMeQ4Lt53X\np3X7d/U/2c25rLNtmwpuMN6XEdO1kr5ayPJT38nuqZLWpX3/o6SP5hi2+7gSfr9XBSS7Ch7FeU1p\n+7GkDyl4vlYKEqofpq+PHPO/XNKvMpbdc9pbU6c7nkI+6rkfZ9tmWjKW67q0YXMe37PMZ6GkBQXG\nlG0ZX5b2/TPaezPiCvW8sbGPgtLbQpPdfOfN1Po7Kk+sp4Tzq83olton36agxNbS+v9Je5Pdnyot\neVVwzCzoHJsllnPEcZIPH7k7z+yiIrwoaWwfz4g0KrhjmvJ02K17Gr73mbFXw7/Pp/V/VUECkPJs\n6h9336OgalKjJJnZR8MWLl82s5cVlGyMzTZuHpvS/t+RNu/GjPHzTeswSU979ueNsi2P1EXWEZLe\nl4o//A0nKygpzDWfdXnikILSuFGSVqZN846we8qLGbGm/+5CZa6zrOswbAH2WjN72sxeUVB9cX8z\nG6Zg2bzk7jvSxs22nHOto4FoVHDhlv4sbfp6yrluwnE+oKD0v93MfmNmry9ivt3zcfftCvarQ9KG\nKWS7lSSZ2Rlm9oCZvRTG+E7t3Qf+r4I78n8ws/Vmdkk4zyclzVNwgbnZzH5pZql9tK/9N1NmrEdI\n+m7aMntJwcXaIcrYp9zdFezP/Zqeuy9TUPX8++Hv+KGZ7ReO995wWTxtZsvN7E1ZYm+U9Gx4XEn/\nvenroqBtz93XKbgAblJwcXi7pI1mNlFBSd3ybOPlUch86xQcS9KX2dNZhitUvnWX8mzG8Cdl7CNn\nSzo4bZiB7Lv3SBplZieFDdA1KSiF7eu4UowjFJRctaf9hmsVlPBKQQmtSXrQzB43s0/kmE7mfr1H\nwbI6JMfwPfSxH2eTuc4zz7FZj+/hsrzHzLaYWYeCY1jW+RS4jAs6f4bHzBfz/J5M+c6bKX0dJ7e4\ne2ee6T8XHoPS55HeP9f5v5BzbCaOk4BooAqV4c8K7oLPyTPMRgUH3pTDw279dVjqHzOrUlCteKOZ\nHaGgqt8FCqry7q+gapeljZt+IitWezivXnFk8aykw3PcBMi2PLoUJIfPKig93D/ts4+7fyPPfI7u\nI+4XFCSbx6ZNc4wX3lrzQJZZNl9QcFf+JHffT8EddSlYT+2SDjSzUWnD51vO+WSL+58KLkpS0i/C\n2yUdYGb7pHU7PO3/vOvG3X/v7u9QcGPi7wq2xUL02B7C+R+koBQo32/pxcxGSPp/CqqBjwv3gd8q\n3AfcfZu7f8Hdj1LwPOFFZjYz7Heju58cxuIKqvv1ik9977+ZsT6roEZE+nIb6e5/UsY+ZWamnvtY\nsdOTu3/P3d+goNrk6xRU9Ze7P+TusxUkLb9WUGsj00ZJh4XHlfTf+1yWYQuxXEF1yOHu/lz4/WMK\nqgeuyjHOQPa3LQqOJen7zOE5hi1E3mUd8ozhl2cMP9rdPz2AGPbOKLgp+isFJa0fknS7u28Le+c7\nrmTKdxx4VsE5bWzab9jP3Y8NY9jk7ue6e6OCErAfmNmELPPI3K9NwXrpc1vqaz/OIXOdF3qOvVFB\n9dvD3H2MgloIueZTzDLO1K6e5+5RCo5zhcp33kzpa9/J179d0iHhekqfR3r/XOf//pxjOU4CItlF\nBXD3DgXVk75vZnPCO7814V3pa8LBbpJ0mZnVmdnYcPiBvLv0DWZ2VphIzlNwYfKAgmpRruCCT2b2\ncQUlu6XyK0mfN7NDzGx/BdVac3lQwQnqG2a2j5nVmtlbwn43SZpvZkea2WgF1QxvDu+8Xy9plpmd\nZmbDwvFOMbPME1vKjyVdbWbHWGCqmfW4gAjvvv5I0gIzq5ek8DecVuDvfl7Bc1Klsq+CC4OXzexA\nSV9Ni/VpSW2SrjSz4eFd5Vn9nM8WBY39pMe+StLbzOxwMxujoFGXzHl/LZz3yRnzzrluLHj/8eww\nUX1NwbNp6Xe987lJ0sfNrCm8yP13SX9x96f68ZuHK3gebYukLjM7Q0HDJpIkM3u3mU0IL5Y6FDSS\ns8eCd37OCOffqWD9pOIf6P77P5K+bGbHhjGMMbP3hf1+I2lKeOyoVvAM5sE5ptPn9MzshLCkqkZB\nQtMZ/r7hFrxTe4y771Lw/Fu29fMXBaUQXwqPY6co2AZ+WcTvTbdcwc23FeH3e8Pv96fVZsnU7/0t\nnOatCvafUWY2WUFy3V/51l02t0t6nZl9JFx+NeE6mVTg/Ar57TcqqEVxdvh/Ss7jShb5jgPtChpW\n+raZ7WdmVWZ2tJm9XZLM7H1px+OtCs452balX0l6l5nNDLfHLyg4Nvwpy7CZ8u7HOXw2PBYdqOCZ\n4psLmI8ULLeX3L3TzE5U8Hx5vmELXcaZFkt6t5mdbGbDFTxSUcx1br7zZin8WUHyfGG43Z6l4JnT\nlF8pOE5PChP1y1M9SnCOlYb2cRJDGMkuKoK7f1vBO3YvU3ByflbBBd2vw0G+riCJeERBY0oPh936\na4mCi52tClp3PMvdd7n7EwqeDf2zgoumKQqe6SqVHym4CHpEQeuVv1Vwcux10RpedM5S8DzPMwqq\nHH0g7P1TBS1BrlDQuFangoYl5O7PKmhY4lLtXZZfVO7jwXcUnIT/oODE9BMFjVNkulhB9dUHLKh+\ndpcKf2feTyRNtqA61K/7HLpvC8MYX1Bwk+KOjP5nK3jeKdVi9s0KLhKLElaF/jdJfwxjf6O73xlO\n7xEFzxXfnjHahyWdpKDK11cVPJ+Xml6+dVOlYB/YGI77dkkFlWZ58D7VyxWU5LQrKKn/YLG/N5zW\nNkkXKtgmtoa/Z2naIMcoWPfbFewnP3D3exRcWH9DwTrZpOCufioBGND+6+63KSgl/mW47T0m6Yyw\n3wsKGpW7RsH6nhzOK+f6zjc9BQ2k/Sj87alWX/9v2O8jkp4Kx2lRsJ1lTnungv32jHBZ/EDBM6F/\nL/T3ZliuIEFIJbv3KyhRXJFzjKARscvCbfZf+zHPCxRUGdyk4Nm5n/VjGpL6XNbZht+mICn7oIJ9\nYZP2NghUiCslXRf+9vfnmMdfFFygNyp4LjGlr+NK+jT6Og58VEHCmWrdeLH2PkpygqS/mNl2BfvW\n5919fZZ5rJH0LwoanHtBwXY1K9zG8ipgP87mRgXngfUKHm0pdB/9jKSrzGybghtZ2UryUgpexpnc\n/XEFSdqNCo5zW9W7Km4+Oc+bpRCul7MUPP/6koLz9a1p/X8n6XsKqtI/qeD3S3uPVQM5xw714ySG\nsNTrTgCEzOxKBQ2Y/EsMYjlD0v+4+xF9Dox+M7ObFTRuUUwpAiqQBdXiNih4bdM9UccDVAIze0pB\nY0V3RR3LUBHWVnhMwWvYSlW6XOi8OU4iMSjZBWLEzEaa2TvNrNrMDlFQ8ndb1HElTVjF6uiw+uDp\nCkpTS1GijBgKq4XvH1ahvlTB838P9DEaAAwqM3uPmY0wswMUlJq2Dlaiy3ESSUWyC8SLKXjZ/VYF\n1ZhXK6j2hdI6WMGzjdsVVBv7tLv/NdKIUE5vUlDtMlXVc467v5p/FAAYdOcreG3TOgWPL5Wk4bUC\ncZxEIlGNGQAAAACQOJTsAgAAAAASh2QXAAAAAJA41VEHUApjx4718ePHRx0GAAAAAKAMVq5c+YK7\n1xUzTiKS3fHjx6utrS3qMAAAAAAAZWBmTxc7DtWYAQAAAACJQ7ILAAAAAEgckl0AAAAAQOKQ7AIA\nAAAAEodkFwAAAACQOCS7AAAAAIDEIdkFAAAAACQOyS4AAAAAIHFIdgEAAAAAiUOyCwAAAABIHJJd\nAAAAAEDikOwCAAAAABKHZBcAAAAAkDgkuwAAAACAxCHZBQAAAAAkDskuAAAAACBxSHYBAAAAAIlD\nsgsAAAAASBySXQAAAABA4pDsAgAAAAASpzrqAAAA/TN36Vyt2bqmV/eJB0zU4jMXRxARAABAfFCy\nCwAValr9NNVU1fToVlNVo6b6pogiAgAAiA+SXQCoUC1TW1RlPQ/jVVallmktEUUEAAAQHyS7AFCh\n6kbVafaE2d2luzVVNZozYY7GjhwbcWQAAADRI9kFgAqWXrpLqS4AAMBeJLsAUMFSpbsmo1QXAAAg\nDa0xA0CFa5naonUvr6NUFwAAIE1kya6ZHSbp55LGSXJJP3T375rZgZJuljRe0lOS3u/uW6OKEwDi\nrm5UnRadvijqMAAAMcLr6YYe1nlvUZbsdkn6grs/bGb7SlppZndKOkfS3e7+DTO7RNIlki6OME4A\nAACgokyrn6b1Heu1a8+u7m68nq604pZcss57i+yZXXdvd/eHw/+3SVot6RBJsyVdFw52naQ50UQI\nAAAAVCZeT1d+cXvfPeu8t1g0UGVm4yUdL+kvksa5e3vYa5OCas7ZxjnPzNrMrG3Lli2DEicAAABQ\nCXg9XfnFLblknfcWebJrZqMl/T9J89z9lfR+7u4Knuftxd1/6O7N7t5cV1c3CJECAAAAlYPX05VX\nHJNL1nlPkSa7ZlajING9wd1vDTs/b2YNYf8GSZujig8AAACoVLyervzillyyznuKLNk1M5P0E0mr\n3f07ab2WSvpY+P/HJC0Z7NgAAACAJGiZ2qLp46ZHnoQlVRyTS9b5XhbUFI5gxmYnS7pP0qOS9oSd\nL1Xw3O6vJB0u6WkFrx56Kd+0mpubva2trYzRDm0dra3avGChutrbVd3QoPr58zRm1qyowwIAAAAi\nt2XHFn1xxRf1rbd/KxbJblKZ2Up3by5qnKiS3VIi2S2fjtZWtV9+hbyzs7ub1daq4eqrSHgBAAAA\nDIr+JLuRN1CFeNu8YGGPRFeSvLNTmxcsjCgiAAAAAOgbyS7y6mpvL6o7AAAAAMQByS7yqm5oKKo7\nAAAAAMQByS7yqp8/T1Zb26Ob1daqfv68iCICAAAAgL5VRx0A4i3VCBWtMQMAAACoJCS76NOYWbNI\nbgEAAABUFKoxAwAAAAASh2QXAAAAAJA4JLsAAAAAgMQh2QUAAAAAJA7JLgAAAAAgcUh2AQAAAACJ\nQ7ILAAAAAEgckl0AAAAAQOKQ7AIAAAAAEodkFwAAAACQOCS7AAAAAIDEIdkFAAAAACQOyS4AAAAA\nIHFIdgEAAAAAiUOyCwAAAABIHJJdAAAAAEDikOwCAAAAABKHZBcAAAAAkDgkuwAAAACAxCHZBQAA\nAAAkDskuAAAAACBxSHYBAAAAAIlDsgsAAAAASBySXQAAAABA4pDsAgAAAAASh2QXAAAAAJA4JLsA\nAAAAgMQh2QUAAAAAJA7JLgAAAAAgcUh2AQAAAACJQ7ILAAAAAEgckl0AAAAAQOKQ7AIAAAAAEqc6\n6gAAJM/cpXO1ZuuaXt0nHjBRi89cHEFEAAAAGGoo2QVQctPqp6mmqqZHt5qqGjXVN0UUEQAAAIYa\nSnYBlFzL1BYteXJJj25VVqWWaS0RRQQAAKJCjS9EhZJdACVXN6pOsyfM7i7dramq0ZwJczR25NiI\nIwMAAIONGl+ICskugLJomdqiKgsOMZTqAgAwdKVfE6RwbYDBQLILoCxSpbsmo1QXAIAhjBpfiArJ\nLoCyaZnaounjpnPnFgCAIY4aX4gCyS6AsqkbVadFpy/izi0AAEMcNb4QBVpjBgAAAFB2LVNbtO7l\ndZTqYtCQ7AIAAAAou1SNL2CwUI0ZAAAAAJA4JLsYurZtkn52hrTt+agjAQAAAFBiJLsYupZfIz3z\ngLT8m1FHAgAAAKDESHYxNG3bJK26QfI9wV9KdwEAAIBEIdnF0LT8miDRlYK/lO4CAAAAiUKyi6En\nVaq7e2fwffdOSncBAACAhCHZxdCTXqqbQukuAAAAkCiRJrtm9lMz22xmj6V1O9DM7jSzteHfA6KM\nEQm04cG9pbopu3cG3QEAAAAkQnXE818k6b8k/Tyt2yWS7nb3b5jZJeH3iyOIDUnVcn/UEQAAAAAo\ns0hLdt19haSXMjrPlnRd+P91kuYMalAAAAAAgIoXx2d2x7l7e/j/Jknjsg1kZueZWZuZtW3ZsmXw\nokMidLS2au2MmVo9abLWzpipjtbWqEMCAAAAUEJxTHa7ubtL8hz9fujuze7eXFdXN8iRoZJ1tLaq\n/fIr1LVxo+Suro0b1X75FSS8AAAAQILEMdl93swaJCn8uznieJAwmxcslHd29ujmnZ3avGBhRBEB\nAAAAKLU4JrtLJX0s/P9jkpZEGAsSqKu9vajuAAAAACpP1K8euknSnyVNNLMNZvZJSd+Q9A4zWyvp\n1PA7UDLVDQ1FdQcAAABQeaJujflD7t7g7jXufqi7/8TdX3T3me5+jLuf6u6ZrTUDA1I/f56strZH\nN6utVf38eRFFBAAAUHo0yImhLo7VmIGyGjNrlhquvkrVjY2SmaobG9Vw9VUaM2tW1KEBAGKABAFJ\nQIOcgGRBg8eVrbm52dva2qIOAwAAVLhUgpDekKHV1nJTFBVn7YyZQaKbobqxUccsuzuCiICBMbOV\n7t5czDiU7AIAAIRosR9JQYOcAMkuAABANxIEJAUNcgIkuwAAAN1IEJAUNMg5OHjGP95IdgEAAEIk\nCBiIOCU+NMhZfjQCFn99NlBlZibpbElHuftVZna4pIPd/cHBCLAQNFAFAABKpaO1VZsXLFRXe7uq\nGxpUP38eCQL6RONmQw+NgA2u/jRQVUiy+9+S9kia4e6TzOwASX9w9xP6H2ppkewCAAAgSiQ+Q8/q\nSZOlbLmUmSatfmLwA0q4crXGfJK7f1ZSpyS5+1ZJw/sRHwAAAJBING429PCMf/wVkuzuMrNhklyS\nzKxOQUkvAAAAAJH4DEU84x9/1QUM8z1Jt0mqN7N/kzRX0mVljQoAACACc5fO1Zqta3p1n3jARC0+\nc3EEEaFS1M+fl/WZXRKf5Eo9i80z/vHVZ7Lr7jeY2UpJMyWZpDnuvrrskQEAAAyyafXTtL5jvXbt\n2dXdraaqRk31TRFGhUpA4jM0jZk1i3UcYzkbqDKzA/ON6O4vlSWifqCBKgAAUApbdmzRGbeeodd2\nv9bdbcSwEbrjvXdo7MixEUYGAENbqRuoWimpLfy7RdL/Slob/r+yv0ECAADEVd2oOs2eMFs1VTWS\nglLdORPmkOgCyG3bJulnZ0jbno86EmTImey6+5HufpSkuyTNcvex7n6QpHdL+sNgBQgAADCYWqa2\nqMqCS6Qqq1LLtJaIIwIQa8uvkZ55QFr+zagjQYZCWmN+o7v/NvXF3X8n6c3lCwlAEnS0tmrtjJla\nPWmy1s6YqY7W1qhDAoCCpEp3TUapLoD8tm2SVt0g+Z7gL6W7sVJIsrvRzC4zs/Hh5yuSer8xGwBC\nHa2tar/8CnVt3Ci5q2vjRrVffgUJL4CK0TK1RdPHTadUF0B+y68JEl0p+EvpbqwUkux+SFKdgtcP\n3SapPuwGAFltXrCwx6sXJMk7O7V5wcKIIgKA4tSNqtOi0xdRqgsgt1Sp7u6dwffdOyndjZk+k113\nf8ndP+/ux4efz8epJWYAe8Wl6nBXe3tR3QEAACpOeqluCqW7sdLne3bN7B5Jvd5P5O4zyhIRgH5J\nVR1Olaimqg5LGvT3v1U3NARVmLN0BwAAQ09Ha2vy3kG84cG9pbopu3cG3RELfSa7kv417f9aSe+V\n1FWecAD0V76qw4N9MqmfP69H4i1JVlur+vnzBjUOAAAQvTjdkC+plvujjgB96DPZdffMd+r+0cy4\nXQHETJxiYOqmAAAgAElEQVSqDqdOXIm7gwsAAIoWpxvyGFoKqcZ8YNrXKklvkDSmbBEB6Je4VR0e\nM2sWJzAAABCrG/IYWgppjXmlpLbw758lfUHSJ8sZFIDi1c+fJ6ut7dGNqsMAACBquW68R9mWR1wa\n9UR5FfLM7iR371HvwMxGlCkeAP1E1WEAABBHcWvLI7HPEKMXc+/V0HLPAcwedvfpfXWLUnNzs7e1\ntUUdBgAAAIAs4tQa89oZM7M/+tXYqGOW3R1BRCiEma109+ZixslZsmtmB0s6RNJIMztekoW99pM0\nqt9RAkAFi9PJGgCAShGntjx4hnjoyFeN+TRJ50g6VNJ30rpvk3RpGWMCgFii2hMAAJUvbo16onxy\nNlDl7te5+/+RdI67/5+0z5nufusgxogEoBEAJEG+VycAAIDKQKOeQ0e+asz/4u7XSxpvZhdl9nf3\n72QZDeiF0jAkBdWegPLg8QAAg4lGPYeOfNWY9wn/jh6MQJBcvEgcSUG1J6D0uCEKIApxeoYY5ZMz\n2XX3a8O/Xxu8cJBElIYhKeL26gQgCbghCgAolz7fs2tmdZLOlTQ+fXh3/0T5wkKSUBqGpKDaE1B6\n3BAFAJRLn8mupCWS7pN0l6Td5Q0HSURpGJKEak9AaXFDtLLwfDWASlJIsjvK3S8ueyRILErDAAC5\ncEO0cvB8NYBKY+6efwCzr0v6k7v/dnBCKl5zc7O3tbVFHQYAAOgHSgsrw9oZM7OXwjc26phld0cQ\nEYChxMxWuntzMeMUUrL7eUmXmtlrknZJMknu7vv1I0YAAIAeeDygMvB8NYBKU9XXAO6+r7tXuftI\nd98v/E6iCwBABetobdXaGTO1etJkrZ0xUx2trVGHhJjL9Rw1z1cDiKs+k10zm57lc7SZFVIqDAAA\nYib17GXXxo2Se/ezlyS8yKd+/jxZbW2PbjxfDSDOCklYfyBpuqRHw+9TJD0maYyZfdrd/1Cu4AAA\nQOnxblv0Bw1OAqg0hSS7GyV90t0flyQzmyzpKklfknSrJJJdAAAqCM9elt/cpXO1ZuuaXt0nHjBR\ni89cHEFEpcHz1QAqSZ/VmCW9LpXoSpK7PyHp9e6+vnxhAQCAcuHZy/KbVj9NNVU1PbrVVNWoqb4p\noogAYOgpJNl93Mz+28zeHn5+IOkJMxuhoHVmAABQQXj2svxapraoynpeZlVZlVqmtUQUUbwaJYtT\nLACSq5Bk9xxJT0qaF37Wh912Sfo/5QoMAACUx5hZs9Rw9VWqPnicJKn64HFquPoqqqeWUN2oOs2e\nMLu7dLemqkZzJszR2JFjI4knTo2SxSkWAMlm7h51DAPW3NzsbW1tUYcBAEBluf0iaeXPpDd8XHr3\nd6KOJnG27NiiM249Q6/tfk0jho3QHe+9I7Jkd+2MmUFymaG6sVHHLLt7yMYCoHKY2Up3by5mnEJe\nPXSMmS02syfMbH3q0/8wAQBA5LZtklbdIPme4O+256OOKHFSpbsmi7RUV4pXo2RxigVAshVSjfln\nkv5bUpeCass/l3R9OYMCAABltvyaINGVgr/LvxltPAnVMrVF08dNj/RZXSlejZLFKZa44plmoDQK\nSXZHuvvdCqo8P+3uV0p6V3nDAgAAZZMq1d29M/i+eyelu2VSN6pOi05fFGmprhSvRsniFEsc8Uwz\nUDqFJLuvmVmVpLVmdoGZvUfS6DLHBQAAyiW9VDeF0t1E626UrLFRMlN1Y2NkjZLFKZY42rxgobyz\ns0c37+zU5gULI4oIqFzVBQzzeUmjJF0o6WpJMyR9rJxBoTQ6Wlu1ecFCdbW3q7qhQfXz53EiAQBI\nGx7cW6qbsntn0B2JNWbWrNhcB8QplriJ2zPNXE+ikvWZ7Lr7Q+G/2yV9vLzhoFRSVWBSdwZTVWAk\ncYACgKGu5f6oIwCQQ3VDQ/bWqiN4ppnrSVS6PpNdM2uW9BVJR6QP7+5TyxgXBihfFRgOTsk0d+lc\nrdm6plf3iQdM1OIzF0cQEQYDd9wBIFnq58/rkWBK0T3TzPUkKl0h1ZhvkPRFSY9K2tPHsIiJuFWB\nQflNq5+m9R3rtWvPru5uNVU1aqpvijAqlBN33CsLNyYAFCJ1XIjD8YLrSVS6QpLdLe6+tOyRoKTi\nVAUGg6NlaouWPLmkR7cqq4r8dRcoH+64Vw5uTAAoRlyeaeZ6EpWukNaYv2pmPzazD5nZWalP2SPD\ngNCs/9BTN6pOsyfMVk1VjaSgVHfOhDmRv+4C5RO3O+68FzI3WlcFUIm4nkSlK6Rk9+OSXi+pRnur\nMbukW8sVFAYuTlVgMHjSS3cp1U2+ON1xp+Qyv7jdmACAQnA9iUpXSLJ7grtPLHskGczsdEnflTRM\n0o/d/RuDHUOli0sVGAyeVOnuLWtuoVR3CKARk8oRpxsTAFAMridRyQpJdv9kZpPd/YmyRxMys2GS\nvi/pHZI2SHrIzJbmiuHxFx/XlOumBOPubNQj5/6+4Hk1f/1OvbB9p+q0Vf81/D91wc4LtUX7a+zo\n4Wq77B1MpwTTKXUsmaKaztQfnSYf3vvitdhtsFTTSf2usdV1OuZQ069b6/TjX/+m6N9VCqVa51N/\ndJrevPZZffhe10GvSC/uJ914iulPxxwW6TKOw34lSTP/Vqvjjn2PPvnEb3TQq6/oxZFj9JPJ79Rj\nf6tVWxHXJaWIZ+fGjVmfi9mZJcErJJZMlb5/fqepU+dtlmq79nbrrJZ+2NSp/y54KvE6nsZtf2A6\n5Z9OnGJhOoMznTjFkj6dTFGdI0p9bRqH5RynWNKnI0nDD57whoJHDBXyzO4bJa0yszVm9oiZPWpm\njxQ7oyKdKOlJd1/v7jsl/VLS7L5G8j3D9Nr2w4uaUWrhXVh9m06wNfpc9a09ujOdgU+n1LEU2r3c\n03lt+2HyPcN6dOvPNliq6aTi/7zu1C3tT+tC+0OP7oOpVOv8xL+O0Pm/ddW9Ehys6l6Rzv+t68S/\n1vY5brpSL+M47Fep4e897A166l2H6vUfaNc/3nWI7j3sDdHs56NHFNW9r1gK7Z5L3PbPZYdN0rWn\nD9OW/YLngbbsJ117+jAtO2xyUdOJ0/E0jvsD0ynvdOIUC9MZnOnEKZZ8w0d1jij1tWkclnOcYunP\n8JkKKdk9fUBz6J9DJD2b9n2DpJP6Gslk2vnCTJ1yyimFz+mNX1Sdtup9w5arylzvG7ZC/9l1lrZo\nf6ZTqumUMJZcopjOzpPP1/D9V/bo1p9tsFTTKdlyDh04fJeumPwPXfXEkXppZ01xI5colitf6exR\nEiYFJWP/8ufnK3sZJ3A6R05+py58+LZeJZeLJr1LX2X/1M6Tz9cfj12pP06xvR33VGvnk9Ftg7lE\ncWxnOvmnc+az9+mk1Y9qzY6D9cZRj+rMSfdr6WEnV/T5nOlUyHTiFEs4nVyiui4oRTyxWs5xiiWc\nzkD0WbLr7k9n+wxoriVgZueZWZuZtUlSzR5X0yv7yHfvW/S0Lqy+TSaXJFVpT/edB6ZTuumUKpY4\n8a791PTKPqrZE/yu/m6D3rWfPtw2TN//fpd++R9d+v73u/ThtmGRbsuS9NEj2jV1zD/10SP614BO\nKWKp29GRvfur2bvnUqp1JcVrv4rTdO5pfIvuePs+PUou73j7PrrnkDf3K56BKuX+GafpSPE6nsZl\n+0vydE55dqXOW7VUu3cMk2TavWOYzlu1RKc8u7LPccsRT5yWDdMZnOnEKZZSKeUxuVTitJzjFMtA\nFVKyG4XnJB2W9v3QsFs3d/+hpB9K0sgjR3qVXP/esVZn6WXde++9Bc/ohEuu1/uGLdcIC4ojRlhX\n950HplOa6ZQqlvGX/CZnvyimc8Il1+trq57Sc4/vqwNfkV7aTzrk2Kf1gXHFbYMXnn2J5qzaLu0O\nSnzqXpHm3Ltd7U3363sRrHNJ0rZN0nenSV3SnCP+qTnfuVnad9ygx3Lf8Sdp7Kuv9Or+0sgxRa+r\n/+j4X83Zr06SieNF6adzwiXX6yPjntGcT9fptaoqjdizR7c9+6xu3VHcMi7l/lmqdR636cTleBqn\n7S/J07nv+JM0bLf36DZst+uTT/xWb/3rA4MaT9yWDdMp/3TiFIsUv3NEKeOJy3KOUyxS/mVciEKe\n2Y3CQ5KOMbMjzWy4pA9KWpprYJM0Z/s/Vb+7q+g7Bul3HFL6c+ehlNPZ/vRwrV1ar9W/bNDapfX6\n59M1Ff27ShVL3Fy58Wfa+eBojQ2fJx37irTzwX301Y0/LWo6n1j9m+5Et9tu0ydW317UdEq6nJdf\nI3n4pjHfIy3/ZiSxvDJltGxYz+nYMFfHlH2Kjqdu927N3v5PmXuijhdxmU6plnGplHKdx206cTme\nxmn7S/J0Dspywy/oXlwNlzidz5lO5UwnTrGUUhzPWXHJI+IUSyn0WbJrZt9094v76lZK7t5lZhdI\n+r2CVw/91N0fzzX8qD2ulpc7NML26KTqJ4ua14nVT2qEej4UOMK6IptO84Y1euGhfeW7g/sQXTuq\n9cJD++oErYkknlJMp1SxjB09PGeLd1FM56jHNsozklTfbTr6seJanx2xo6uo7rmUajlr2yZp1Q3S\n7nAZ7d4ZfH/7xQWX7pYqlglHvaCDq17Wpkf21e4dwzRs1G4dPHWbbHxxjR6dWP2kOp+q0ftba/Te\nHV0aNqpGnVNrdNL4yj5exGk6qWm0vNyhdTU1/T4ml2r/LFU8cZxO51M1euaRA9W1Y5iqR+1W/dRt\nRW/LpVjOcdr+kjwdGyVpR47ugxxP3JYN0yn/dOIUixS/c0Sp40kXVR4Rp1ik3Mu4UObu+Qcwe9jd\n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\nEnT+P2H1yqucySzAAAAAAElFTkSuQmCC\n", "text/plain": [ " A higher alpha
means a more restricted model (more penalty), so we execpt a lot of losso coef_
(weights) to have zero magnitude for a higher value of alpha
.
■ Coefficients of Losso model with alpha=1
: Here, the majority of the coefficients are zero and the remaining 4 features are also small in magnitude
▲ Coefficients of Losso model with alpha=0.01
: Here, most of the features are still zero, but the remaining 33 features are slightly less restricted than when alpha=1
▼ Coefficients of Losso model with alpha=0.0001
: Heremodel is slightly unregularized, woith most coefficients non-zero and large magnitude
● Coefficients of Ridge model with alpha=0.1
: Here, all the coefficients are non-zero though the test results are similar to Lasso model with alpha=0.01
\n", " | Population in 10,000s | \n", "Profit in $10,000s | \n", "
---|---|---|
0 | \n", "6.1101 | \n", "17.5920 | \n", "
1 | \n", "5.5277 | \n", "9.1302 | \n", "
2 | \n", "8.5186 | \n", "13.6620 | \n", "
3 | \n", "7.0032 | \n", "11.8540 | \n", "
4 | \n", "5.8598 | \n", "6.8233 | \n", "
\n", " | Population in 10,000s | \n", "Profit in $10,000s | \n", "
---|---|---|
count | \n", "97.000000 | \n", "97.000000 | \n", "
mean | \n", "8.159800 | \n", "5.839135 | \n", "
std | \n", "3.869884 | \n", "5.510262 | \n", "
min | \n", "5.026900 | \n", "-2.680700 | \n", "
25% | \n", "5.707700 | \n", "1.986900 | \n", "
50% | \n", "6.589400 | \n", "4.562300 | \n", "
75% | \n", "8.578100 | \n", "7.046700 | \n", "
max | \n", "22.203000 | \n", "24.147000 | \n", "
\n", " | House size (in sq ft) | \n", "No of bedrooms | \n", "House price | \n", "
---|---|---|---|
0 | \n", "2104 | \n", "3 | \n", "399900 | \n", "
1 | \n", "1600 | \n", "3 | \n", "329900 | \n", "
2 | \n", "2400 | \n", "3 | \n", "369000 | \n", "
3 | \n", "1416 | \n", "2 | \n", "232000 | \n", "
4 | \n", "3000 | \n", "4 | \n", "539900 | \n", "
\n", " | House size (in sq ft) | \n", "No of bedrooms | \n", "House price | \n", "
---|---|---|---|
count | \n", "47.000000 | \n", "47.000000 | \n", "47.000000 | \n", "
mean | \n", "2000.680851 | \n", "3.170213 | \n", "340412.659574 | \n", "
std | \n", "794.702354 | \n", "0.760982 | \n", "125039.899586 | \n", "
min | \n", "852.000000 | \n", "1.000000 | \n", "169900.000000 | \n", "
25% | \n", "1432.000000 | \n", "3.000000 | \n", "249900.000000 | \n", "
50% | \n", "1888.000000 | \n", "3.000000 | \n", "299900.000000 | \n", "
75% | \n", "2269.000000 | \n", "4.000000 | \n", "384450.000000 | \n", "
max | \n", "4478.000000 | \n", "5.000000 | \n", "699900.000000 | \n", "
Linear Regression
Ridge Regression
Lasso