{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Supervised Learning\n", "## Overfitting and Regularization\n", "\n", "Martin Skarzynski\n", "\n", "March 7, 2019" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Recap supervised learning and regression" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from sklearn.datasets import load_boston\n", "\n", "boston = load_boston()\n", "X = boston.data\n", "y = boston.target\n", "\n", "# boston.DESCR.splitlines()\n", "# ?load_boston" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('X:', (506, 13), 'y:', (506,))" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"X:\", X.shape, \"y:\", y.shape" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.7406426641094095" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.linear_model import LinearRegression\n", "\n", "lr_house_price = LinearRegression().fit(X, y)\n", "lr_house_price.score(X, y)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "predicted_price = lr_house_price.predict(X)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(506,)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "predicted_price.shape" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "import pandas as pd\n", "import seaborn as sb\n", "\n", "d = pd.DataFrame(X)\n", "d['predicted_price'] = pd.Series(predicted_price)\n", "d['actual_price'] = pd.Series(y)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0123456789101112predicted_priceactual_price
00.0063218.02.310.00.5386.57565.24.09001.0296.015.3396.904.9830.00384324.0
10.027310.07.070.00.4696.42178.94.96712.0242.017.8396.909.1425.02556221.6
20.027290.07.070.00.4697.18561.14.96712.0242.017.8392.834.0330.56759734.7
30.032370.02.180.00.4586.99845.86.06223.0222.018.7394.632.9428.60703633.4
40.069050.02.180.00.4587.14754.26.06223.0222.018.7396.905.3327.94352436.2
\n", "
" ], "text/plain": [ " 0 1 2 3 4 5 6 7 8 9 10 \\\n", "0 0.00632 18.0 2.31 0.0 0.538 6.575 65.2 4.0900 1.0 296.0 15.3 \n", "1 0.02731 0.0 7.07 0.0 0.469 6.421 78.9 4.9671 2.0 242.0 17.8 \n", "2 0.02729 0.0 7.07 0.0 0.469 7.185 61.1 4.9671 2.0 242.0 17.8 \n", "3 0.03237 0.0 2.18 0.0 0.458 6.998 45.8 6.0622 3.0 222.0 18.7 \n", "4 0.06905 0.0 2.18 0.0 0.458 7.147 54.2 6.0622 3.0 222.0 18.7 \n", "\n", " 11 12 predicted_price actual_price \n", "0 396.90 4.98 30.003843 24.0 \n", "1 396.90 9.14 25.025562 21.6 \n", "2 392.83 4.03 30.567597 34.7 \n", "3 394.63 2.94 28.607036 33.4 \n", "4 396.90 5.33 27.943524 36.2 " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### How we evaluate performance of models?" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
0123456789101112predicted_priceactual_pricesquared_error
00.0063218.02.310.00.5386.57565.24.09001.0296.015.3396.904.9830.00384324.036.046135
10.027310.07.070.00.4696.42178.94.96712.0242.017.8396.909.1425.02556221.611.734478
20.027290.07.070.00.4697.18561.14.96712.0242.017.8392.834.0330.56759734.717.076757
30.032370.02.180.00.4586.99845.86.06223.0222.018.7394.632.9428.60703633.422.972499
40.069050.02.180.00.4587.14754.26.06223.0222.018.7396.905.3327.94352436.268.169392
\n", "
" ], "text/plain": [ " 0 1 2 3 4 5 6 7 8 9 10 \\\n", "0 0.00632 18.0 2.31 0.0 0.538 6.575 65.2 4.0900 1.0 296.0 15.3 \n", "1 0.02731 0.0 7.07 0.0 0.469 6.421 78.9 4.9671 2.0 242.0 17.8 \n", "2 0.02729 0.0 7.07 0.0 0.469 7.185 61.1 4.9671 2.0 242.0 17.8 \n", "3 0.03237 0.0 2.18 0.0 0.458 6.998 45.8 6.0622 3.0 222.0 18.7 \n", "4 0.06905 0.0 2.18 0.0 0.458 7.147 54.2 6.0622 3.0 222.0 18.7 \n", "\n", " 11 12 predicted_price actual_price squared_error \n", "0 396.90 4.98 30.003843 24.0 36.046135 \n", "1 396.90 9.14 25.025562 21.6 11.734478 \n", "2 392.83 4.03 30.567597 34.7 17.076757 \n", "3 394.63 2.94 28.607036 33.4 22.972499 \n", "4 396.90 5.33 27.943524 36.2 68.169392 " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Squared error for each example:\n", "\n", "d['squared_error'] = (d['predicted_price'] - d['actual_price'])**2\n", "d.head()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-21.894831181729202" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Overall performance: mean squared error:\n", "\n", "-d['squared_error'].mean()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "21.894831181729202" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# It is the same as mean_squared_error in scikit-learn\n", "\n", "from sklearn.metrics import mean_squared_error\n", "mean_squared_error(d['actual_price'], d['predicted_price'])" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "4.679191295697281" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Sometimes Root Mean Squared Error (RMSE) is used\n", "# RMSE preserves the scale of the units (e.g. price in dollars)\n", "np.sqrt(mean_squared_error(d['actual_price'], d['predicted_price']))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## But will the model be able to predict the future cases?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Remember what happens when we train and predict using KNearestNeighbors(K=1)?" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.neighbors import KNeighborsRegressor\n", "\n", "predicted_price = KNeighborsRegressor(n_neighbors=1).fit(X, y).predict(X)\n", "actual_price = y\n", "mean_squared_error(actual_price, predicted_price)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Solution: split the dataset\n", "\n", "The learning algorithm uses examples only from the training set and it cannot use examples from any of the holdout sets.\n", "\n", "* Training set (70% - 95%)\n", "\n", "* Holdout sets: (5% - 30%)\n", " - Validation set\n", " - Test set\n", " \n", "\n", "We want good performance on a holdout set, using the data the model has not seen before!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Why do we need two holdout sets?\n", "\n", "We need validation set to choose the learning algorithm and its hyperparameters." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "from sklearn.model_selection import train_test_split" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "((339, 13), (339,))" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_train.shape, y_train.shape" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "((167, 13), (167,))" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_test.shape, y_test.shape" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "20.724023437339717" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Linear Regression\n", "\n", "predicted_price = LinearRegression().fit(X_train, y_train).predict(X_test)\n", "mean_squared_error(y_test, predicted_price)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "44.078263473053894" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# KNN Regression(K=1)\n", "\n", "predicted_price = KNeighborsRegressor(n_neighbors=1).fit(X_train, y_train).predict(X_test)\n", "mean_squared_error(y_test, predicted_price)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Overfitting and Underfitting\n", "\n", "\n", "* Overfitting - model performs well on the training set but performs poorly on the test set\n", "\n", "* Underfitting - model does not perform well on the training set but its performance on test set is not much different\n" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "from sklearn.preprocessing import PolynomialFeatures\n", "from sklearn.pipeline import Pipeline\n", "\n", "X12 = X[:, 12].reshape(-1, 1) # only one feature only but maintain 2D array shape\n", "X12_train, X12_test, y_train, y_test = train_test_split(X12, y, test_size=0.33, random_state=42)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Examples of underfitting and overfitting:\n", "\n", "m1 - Linear Regression\n", "\n", "m2 - Polynomial regression of the second degree\n", "\n", "m5 - Polynomial regression of the fifth degree" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Model m1:\n", "\n", "$$ y = \\beta_1 x + \\beta_0 $$" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "m1 = LinearRegression(fit_intercept=True)\n", "m1.fit(X12_train, y_train)\n", "m1_train_predicted = m1.predict(X12_train)\n", "m1_test_predicted = m1.predict(X12_test)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "38.71120361270592" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mean_squared_error(y_train, m1_train_predicted)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "38.410075117662345" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mean_squared_error(y_test, m1_test_predicted)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sb.scatterplot(X12_train.flatten(), y_train)\n", "sb.scatterplot(X12_train.flatten(), m1_train_predicted)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sb.scatterplot(X12_test.flatten(), y_test)\n", "sb.scatterplot(X12_test.flatten(), m1_test_predicted)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Model m2:\n", "\n", "$$ y = \\beta_1 x + \\beta_2 x^2 + \\beta_0 $$" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [], "source": [ "m2 = Pipeline([('poly', PolynomialFeatures(degree=2)),\n", " ('linear', LinearRegression(fit_intercept=True))])\n", "m2.fit(X12_train, y_train)\n", "m2_train_predicted = m2.predict(X12_train)\n", "m2_test_predicted = m2.predict(X12_test)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "29.442905187577004" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mean_squared_error(y_train, m2_train_predicted)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "32.51162005950131" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mean_squared_error(y_test, m2_test_predicted)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sb.scatterplot(X12_train.flatten(), y_train)\n", "sb.scatterplot(X12_train.flatten(), m2_train_predicted)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sb.scatterplot(X12_test.flatten(), y_test)\n", "sb.scatterplot(X12_test.flatten(), m2_test_predicted)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Model m10:\n", "\n", "$$ y = \\beta_1 x + \\beta_2 x^2 + \\beta_3 x^3 + ... + \\beta_{10} x^{10} + \\beta_0 $$" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [], "source": [ "m10 = Pipeline([('poly', PolynomialFeatures(degree=10)),\n", " ('linear', LinearRegression(fit_intercept=True))])\n", "m10.fit(X12_train, y_train)\n", "m10_train_predicted = m10.predict(X12_train)\n", "m10_test_predicted = m10.predict(X12_test)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "25.747782608969423" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mean_squared_error(y_train, m10_train_predicted)" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "29.152486217792696" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mean_squared_error(y_test, m10_test_predicted)" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sb.scatterplot(X12_train.flatten(), y_train)\n", "sb.scatterplot(X12_train.flatten(), m10_train_predicted)" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sb.scatterplot(X12_test.flatten(), y_test)\n", "sb.scatterplot(X12_test.flatten(), m10_test_predicted)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Let us summarize the models' errors" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "M1 train 39.0\n", "M1 test 38.0\n", "M2 train 29.0\n", "M2 test 33.0\n", "M10 train 26.0\n", "M10 test 29.0\n" ] } ], "source": [ "print(\"M1 train\", round(mean_squared_error(y_train, m1_train_predicted)))\n", "print(\"M1 test\", round(mean_squared_error(y_test, m1_test_predicted)))\n", " \n", "print(\"M2 train\", round(mean_squared_error(y_train, m2_train_predicted)))\n", "print(\"M2 test\", round(mean_squared_error(y_test, m2_test_predicted)))\n", "\n", "print(\"M10 train\", round(mean_squared_error(y_train, m10_train_predicted)))\n", "print(\"M10 test\", round(mean_squared_error(y_test, m10_test_predicted)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will talk about model selection and feature selection in mode detail in one of the next classes." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Is there only one way to split the dataset? Cross-validation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Cross-validation is reusing the dataset and creates multiple train-holdout subset pairs.\n", "\n", "The major assumption is that our whole dataset is a representative sample. By taking the random subsamples from the whole dataset we can estimate the performance of the model on previously unseen data." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### LeaveOneOut\n", "\n", "LeaveOneOut (or LOO) is a simple cross-validation. Each learning set is created by taking all the samples except one, the test set being the sample left out. Thus, for n samples, we have n different training sets and n different tests set. This cross-validation procedure does not waste much data as only one sample is removed from the training set" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### KFold\n", "KFold divides all the samples in k groups of samples, called folds (if k = n, this is equivalent to the Leave One Out strategy), of equal sizes (if possible). The prediction function is learned using \n", "k−1folds, and the fold left out is used for test.\n", "\n", "![](https://scikit-learn.org/stable/_images/sphx_glr_plot_cv_indices_0041.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### ShuffleSplit\n", "\n", "The ShuffleSplit iterator will generate a user defined number of independent train / test dataset splits. Samples are first shuffled and then split into a pair of train and test sets.\n", "\n", "![](https://scikit-learn.org/stable/_images/sphx_glr_plot_cv_indices_0061.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### TimeSeriesSplit\n", "\n", "TimeSeriesSplit is a variation of k-fold which returns first \n", "k folds as train set and the (k+1)th fold as test set. Note that unlike standard cross-validation methods, successive training sets are supersets of those that come before them. Also, it adds all surplus data to the first training partition, which is always used to train the model.\n", "\n", "![](https://scikit-learn.org/stable/_images/sphx_glr_plot_cv_indices_0101.png)" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.716098217736928" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "KNeighborsRegressor().fit(X, y).score(X, y)" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.7079649368669326" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from sklearn.model_selection import ShuffleSplit\n", "from sklearn.model_selection import cross_val_score\n", "\n", "reg = LinearRegression()\n", "cv = ShuffleSplit(n_splits=100, test_size=0.1, random_state=0)\n", "\n", "# here we try to maximize the score, that is why neg_mean_squared_error\n", "# essentially, score = - cost_function\n", "s = cross_val_score(reg, X, y, cv=cv)\n", "pd.Series(s).hist()\n", "s.mean() # R^2" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "['accuracy',\n", " 'adjusted_mutual_info_score',\n", " 'adjusted_rand_score',\n", " 'average_precision',\n", " 'balanced_accuracy',\n", " 'brier_score_loss',\n", " 'completeness_score',\n", " 'explained_variance',\n", " 'f1',\n", " 'f1_macro',\n", " 'f1_micro',\n", " 'f1_samples',\n", " 'f1_weighted',\n", " 'fowlkes_mallows_score',\n", " 'homogeneity_score',\n", " 'jaccard',\n", " 'jaccard_macro',\n", " 'jaccard_micro',\n", " 'jaccard_samples',\n", " 'jaccard_weighted',\n", " 'max_error',\n", " 'mutual_info_score',\n", " 'neg_log_loss',\n", " 'neg_mean_absolute_error',\n", " 'neg_mean_squared_error',\n", " 'neg_mean_squared_log_error',\n", " 'neg_median_absolute_error',\n", " 'normalized_mutual_info_score',\n", " 'precision',\n", " 'precision_macro',\n", " 'precision_micro',\n", " 'precision_samples',\n", " 'precision_weighted',\n", " 'r2',\n", " 'recall',\n", " 'recall_macro',\n", " 'recall_micro',\n", " 'recall_samples',\n", " 'recall_weighted',\n", " 'roc_auc',\n", " 'v_measure_score']" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import sklearn.metrics\n", "sorted(sklearn.metrics.SCORERS.keys())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Bias - Variance Tradeoff\n", "\n", "The **bias** is an error from erroneous assumptions in the learning algorithm. High bias can cause an algorithm to miss the relevant relations between features and target outputs (underfitting).\n", "\n", "\n", "The **variance** is an error from sensitivity to small fluctuations in the training set. High variance can cause an algorithm to model the random noise in the training data, rather than the intended outputs (overfitting)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Let's plot some learning curves" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "scrolled": true, "slideshow": { "slide_type": "slide" } }, "outputs": [], "source": [ "#From http://scikit-learn.org/stable/auto_examples/model_selection/plot_learning_curve.html\n", "\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from sklearn.naive_bayes import GaussianNB\n", "from sklearn.svm import SVC\n", "from sklearn.datasets import load_digits\n", "from sklearn.model_selection import learning_curve\n", "from sklearn.model_selection import ShuffleSplit\n", "\n", "def plot_learning_curve(estimator, title, X, y, ylim=None, cv=None,\n", " n_jobs=None, train_sizes=np.linspace(.3, 1.0, 10)):\n", " plt.figure()\n", " plt.title(title)\n", " if ylim is not None:\n", " plt.ylim(*ylim)\n", " plt.xlabel(\"Training examples\")\n", " plt.ylabel(\"Score\")\n", " train_sizes, train_scores, test_scores = learning_curve(\n", " estimator, X, y, cv=cv, n_jobs=n_jobs, train_sizes=train_sizes, scoring=\"neg_mean_squared_error\")\n", " train_scores_mean = np.mean(train_scores, axis=1)\n", " train_scores_std = np.std(train_scores, axis=1)\n", " test_scores_mean = np.mean(test_scores, axis=1)\n", " test_scores_std = np.std(test_scores, axis=1)\n", " plt.grid()\n", "\n", " plt.fill_between(train_sizes, train_scores_mean - train_scores_std,\n", " train_scores_mean + train_scores_std, alpha=0.1,\n", " color=\"r\")\n", " plt.fill_between(train_sizes, test_scores_mean - test_scores_std,\n", " test_scores_mean + test_scores_std, alpha=0.1, color=\"g\")\n", " plt.plot(train_sizes, train_scores_mean, 'o-', color=\"r\",\n", " label=\"Training score\")\n", " plt.plot(train_sizes, test_scores_mean, 'o-', color=\"g\",\n", " label=\"Cross-validation score\")\n", "\n", " plt.legend(loc=\"best\")\n", " return plt" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [], "source": [ "from sklearn.model_selection import KFold" ] }, { "cell_type": "code", "execution_count": 54, "metadata": { "scrolled": true, "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "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1rtMeHSCBm8PKj+jzhK8PainPHqKnvLoKTrh0Qk64dEJesqjp+ipj52q1712XZ1zJnv77bd1woQJ9a5799139eSTT9azzjpLhw0bpqqqv/nNb3TEiBE6YsQIvffee1VVtaKiQs8++2wdNWqUjhgxQp966ilVVb3xxhv16KOP1pEjR+qPfvSjOsf/05/+pNdff33N+8cee0yvueYaVVU9//zz9bjjjtPhw4frAw88ULPNkCFDdOfOnaqqmpubq6qqruvqNddco0cccYSefvrpetZZZ+mzzz6rqqo///nPdezYsTpixAidMWOGuq6rzz77rObm5urhhx+uo0eP1qqqKj311FN1/vz5qqr65JNP6jHHHKMjRozQG264oebcubm5esstt+ioUaP0hBNO0O3bt9e5puLiYh09erSOHj1ajz32WC0rK1NV1bvuukuPOeYYHTVqlN5445/DktEAAA9qSURBVI2qqvrRRx/pCSecoCNHjtSvfOUrunv3blVVPfXUU/W6667TMWPG6N133607duzQCy+8UMeOHatjx47V999/v855k3+P3n333Xr/PzuzrnhNqnZdzQEs0Gbew9PVOyu5dHE+sDqe3k/iLc4iMg6vuq0EmA8ME5FDRCQTmAq81B55DTv1T/kedsJeaQVFEHzia3Zj+fLlyxkzZkyD6xctWsQvf/lL1q5dy8KFC3nsscf48MMP+eCDD3jooYf46KOP+Mc//sGAAQNYsmQJy5cvZ8qUKZSUlDB37tyaadtvu+22Ose+6KKLmDt3bs37p59+mqlTpwLw6KOPsnDhQhYsWMDvf/97SkpKGszj3LlzWbNmDStXruTxxx+veUYJwLXXXsv8+fNZvnw51dXVvPzyyzXPK3n44YdZvHhxzUy/AFu3buXGG2/knXfeYfHixcyfP58XXngB8ObVOvHEE1myZAmnnHJKTckt2d13383999/P4sWLmTdvHtnZ2bz22mu8+OKLfPjhhyxZsoQbbrgBgOnTp/PLX/6SpUuXMnLkSH7+85/XHCcSibBgwQJ+9KMfcd1119VMXf/cc89xxRVXNPhZGHMwS1ddyV0iciTgAp8BV8XTLwauFpEYUA1MjUfFmIhcC7wO+IFHVXVFW2Tkt/+/vfuPjrK68zj+/pAfpBGliFSxgQVapBBAQMjBIj892IBYDOIKixYth63V7pHFZcHV47HUUnC3FamtLLWl1HYRFkQ8nHVdU4LoCqKm4YcYFz12VyMqPw7BCGE1fPeP584wjEmA2cBkku/rnDk8c+fOM9/v3GFunvs8c29x/VPBx6Y96fVoL/6n+otTwXe5oAul3yklu012k58sLyoqolu3bkA0XXtJSUl8FtxJkybx4osvUlxczN13383cuXOZMGECw4cPj09hMmPGDCZMmBCftj1Rp06d6NGjB1u3bqVnz55UVlbG5+VasmRJvIN577332LNnDx07dqw3xs2bNzN16lSysrK49NJLGTNmTPyxsrIyHnroIY4cOcLBgwcpLCzkuuuuazDfV199lVGjRtGpUycApk2bxubNm7n++uvJzc2N53HFFVfw/PNfnH5/2LBhzJ49m2nTpjFp0iQKCgooLS3ltttuIz8/H4imtK+urubQoUOMHDkSgOnTp3PjjTfG93PTTTfFt0tLS086X3P48GFqampo165dg3k41xql6+qsG8ysr0WX+V5nZlWh/FEzKzSzy81sqJm9nPCcfzOzy8zsa2b243MV6/zR88nPyT+pLD87nwVXLyA3KzelDqSwsLDRX4onTpvekMsuu4zy8nL69evHfffdx/z588nOzmbbtm1MnjyZDRs2UFxcTF1dHQMGDGDAgAHcf390/cKUKVNYvXo1a9eupaSkBEls2rSJ0tJStmzZwvbt2xk4cCC1tbVnnFttbS133HEHa9asYefOncycOTOl/cTk5Jy4HLqhaeznzZvH448/ztGjRxk2bBiVlZUpvVbi+378+HG2bt1KRUUFFRUVVFVVeQfiXD38etNTmNp3Kr8c/0u6XNAFIbq278qyby/j5v43p7zPMWPGcOzYMZYtWxYv27FjR70LSg0fPpynn36aI0eO8Omnn7Ju3TqGDx/OBx98QH5+PjfffDNz5syhvLycmpoaqqurGT9+PA8//DDbt28nKysr/kUYW9GwpKSE9evXs3LlyvhQVnV1NR06dCA/P5/Kykq2bt3aaA4jRoxg1apV1NXVsXfvXsrKygDiHcZFF11ETU3NSVdsnX/++dTU1HxhX0VFRbzwwgvs37+furo6Vq5cGT9aOB3vvPMO/fr1Y+7cuQwZMoTKykrGjh3L8uXLORLWgTl48CDt27enQ4cO8ff5iSeeaPB1rrnmmvjyvkC9ywY753zak0aZGXVWx5S+U7il/y20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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# http://scikit-learn.org/stable/auto_examples/model_selection/plot_learning_curve.html\n", "title = \"Learning Curves\"\n", "\n", "# Create the CV iterator\n", "cv_iterator = KFold(n_splits=5, shuffle=True, random_state=10)\n", "model = LinearRegression()\n", "# model = KNeighborsRegressor(n_neighbors=4)\n", "\n", "plot_learning_curve(model, title, X, y, cv=cv_iterator, n_jobs=4)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "#### Lasso Regression\n", "\n", "“when you have two competing theories that make exactly the same predictions, the simpler one is the better.” - William of Ockham\n", "\n", "So for a regression model LASSO (least absolute shrinkage and selection operator), or more commonly referred to as L1 regularization, could be used to penalize for the large number of parameters.\n", "\n", "* L1 regularization (the last term of the equation) favors a sparse model with features having coefficients equal to zero or close to zero:\n", "\n", "$ Loss = ||y - Xw||^2_2 + \\alpha * ||w||_1$\n", "\n", "L1 norm $||w||_1$ is simply a sum of absolute values of coefficients and $\\alpha$ regulates the strength of regularization. A zero coefficient for a feature essentially mean that the feature is eliminated.\n", "\n" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "scrolled": true, "slideshow": { "slide_type": "slide" } }, "outputs": [], "source": [ "from sklearn.linear_model import Lasso, LinearRegression\n", "from sklearn.model_selection import cross_val_score, KFold\n", "from sklearn.metrics import mean_squared_error" ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "scrolled": true, "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/plain": [ "26.183440497117296" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "llr = Lasso(alpha=0.5)\n", "llr.fit(X, y)\n", "preds = llr.predict(X)\n", "\n", "# Create the CV iterator\n", "cv_iterator = KFold(n_splits=5, shuffle=True, random_state=10)\n", "\n", "# Note: default in sklearn: higher return values are better than lower return values\n", "np.mean(-cross_val_score(llr, X, y, cv=cv_iterator, scoring=\"neg_mean_squared_error\"))" ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "scrolled": true, "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/plain": [ "26.183440497117296" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "cross_val_score(llr, X, y, cv=5, scoring=\"neg_mean_squared_error\")\n", "abs(np.mean(cross_val_score(llr, X, y, cv=cv_iterator, scoring=\"neg_mean_squared_error\")))" ] }, { "cell_type": "code", "execution_count": 64, "metadata": { "scrolled": true, "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "image/png": "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eXzkkUc6y6xOJRQKSRdhQWglPaJGMe8/85j6xNSEy7Qnp3HhaxfGRCJKTbCG8145r8n75v1nXrPPfOedd3A6nVx44YWxY6NHj2bKlCksXbqUKVOmcNJJJ8VGN99xxx2xsN3RsOHV1dWceOKJjB49mpEjR/Lcc88BMH/+/Fg48IZzXAA88MADXHXVVbH9J554gksuuQQwAfzGjh3LiBEjeOihhxLanpGRARixu+SSSzjggAM4+uijY6HNAW6++WbGjx/PyJEjmTt3LlprXnjhBVasWMH555/PmDFj8Pl8TJ06lehgyEWLFjFq1ChGjhwZC1IYfd6CBQsYPXo0hx56KFu2bGlk07vvvhub+Onggw+msrISgNtuu41Ro0YxevRo5s+fD8CqVas49NBDOeigg5g5cyZlZWUATJ06lXnz5jFu3Djuvvtutm3bxqmnnsr48eMZP348H1zSd2EAAA8DSURBVHzwQdM/qCD0YHqEULREbThxOPGmjreGNWvWMHbs2CbPf/bZZ9x99918/vnnrFy5kscff5xPPvmEjz/+mIcffpjPP/+c//znPwwYMIDVq1ezZs0apk+fzo4dO1i8eHEsHPh1113XKO1TTz2VxYsXx/afe+45zjjjDAAee+wxVq5cyYoVK7jnnnvYsWNHkzYuXryY9evXs27dOp588sl6NY1LLrmE5cuXs2bNGnw+H6+99lpsrotHHnmEVatWxaLLApSUlHDNNdfw9ttvs2rVKpYvX87LL78MGEE89NBDWb16NYcffjgPP/xwI1v+/Oc/87e//Y1Vq1bx/vvv4/V6eeONN3jllVf45JNPWL16NVdffTUAZ511FrfddhtffPEFo0aN4qabboqlEwgEWLFiBVdccQW//e1vueyyy1i+fDkvvvgi559/fpPvQhB6Mj2i7n3X9KbDjIesEHvfvTdFFY3DjA/OHszSc5Z2iU0TJkxg6NChVFZWsmzZMmbOnBmLvDpr1izef/99pk+fzhVXXME111zDjBkzmDJlSiwUx3nnnceMGTNi4cDj6du3L3vvvTcff/wx++23H19//XUshtQ999wTE5GioiK+/fZbevfundDG9957jzPPPBO73c6AAQM46qijYufeeecdbr/9dmpqati5cycjRozgJz/5SZP5Xb58OVOnTqVv374AzJ49m/fee49TTjkFl8sVy8fYsWN5883God0nTZrE5ZdfzuzZs5k1axYDBw5kyZIlnHvuuaSlpQEmVHp5eTm7du3iiCOOAODss8/mpz/9aSyd008/Pba9ZMmSev6TiooKqqqqYjUqQRAMUqMAbj7yZrwOb71jac40bpl2S7vTHDFiRLOjoePDcTfF/vvvz2effcaoUaO47rrruPnmm3E4HHz66aecdtppvPbaa0yfPp1wOBxrlrn++usBOOOMM3j++ed58cUXmTlzJkopli5dypIlS/joo49YvXo1Bx98cMKQ5i3h9/v59a9/zQsvvMCXX37JnDlz2pVOFKfTGeuC3FR49Pnz5/PII4/g8/mYNGkSX3/9dbueFf/eLcvi448/ZtWqVaxatYri4mIRCUFIgAgF8LMRP+P+GfczOHswCsXg7ME89JOH2u3IBjjqqKOora2t5wf44osvEk44NGXKFF5++WVqamqorq5m8eLFTJkyhZKSEtLS0vjFL37BVVddxWeffUZVVRXl5eWccMIJ3HnnnaxevRq73R4r7KKz2s2cOZNXXnmFRYsWxZqdysvLyc3NJS0tja+//pqPP/642TwcfvjhPPfcc4TDYUpLS3nnnXcAYqLQp08fqqqq6vWEyszMpKqqqlFaEyZM4N1332X79u2Ew2EWLVoU++pvDd999x2jRo3immuuYfz48Xz99dccc8wxPP7449RE5hHZuXMn2dnZ5Obmxt7zU0891eRzjj322Ng0rkDC6WEFQeghTU8tYVM2zjroLM4efXanpamUYvHixcybN4/bbrsNj8fDkCFDuOuuuyguLq537SGHHMI555zDhAkTANOl9OCDD+a///0vV111FTabDafTyf33309lZSUnn3wyfr8frXUsHHhDcnNzGTZsGOvWrYulO336dB544AGGDRvGAQccwKGHHtpsHmbOnMnbb7/N8OHDKSgoYOLEiYCJHTVnzhxGjhxJ//79Yw55MF1o582bx4IFC/joo49ix/Py8li4cCFHHnkkWmtOPPFETj755Fa/z7vuuot33nkHm83GiBEjOP7443G73axatYpx48bhcrk44YQTuPXWW/n73//OhRdeSE1NDXvvvTePP/54wjTvueceLr74Yg466CBCoRCHH354bO4NQRDq6PFhxsNWGAC7LTlhOlItJDekXp4kzHj3JBXzJWHGk0SyBEIQBKG7kBQfhVLqRqVUsVJq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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# http://scikit-learn.org/stable/auto_examples/model_selection/plot_learning_curve.html\n", "title = \"Learning Curves\"\n", "\n", "# Create the CV iterator\n", "cv_iterator = KFold(n_splits=5, shuffle=True, random_state=10)\n", "llr = Lasso(alpha=0.5)\n", "\n", "plot_learning_curve(llr, title, X, y, cv=cv_iterator, n_jobs=4)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ridge regression addresses some of the problems of Ordinary Least Squares by imposing a penalty on the size of coefficients.\n", "\n", "The ridge coefficients minimize a penalized residual sum of squares,\n", " \n", "\n", "$$ Loss = ||y - Xw||^2_2 + \\alpha * ||w||^2_2$$\n", "\n", "Here, \n", "α\n", "≥\n", "0\n", " is a complexity parameter that controls the amount of shrinkage: the larger the value of \n", "α\n", ", the greater the amount of shrinkage and thus the coefficients become more robust to collinearity." ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZEAAAEWCAYAAACnlKo3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3XeYVOX58PHvPXU7VRaWtisq0lEWbEBoGkysqFGDoolKNJrEJBZsMb9EDBLfxBYTjVEkYg+oiRgDCEawBFSQZkFR6tLELbNlynneP87MMLs722d2dpf7czHXzJz6nGH23PN0McaglFJKNYcj1QlQSinVfmkQUUop1WwaRJRSSjWbBhGllFLNpkFEKaVUs2kQUUop1WwaRJRqIRF5TUQuS3U6lEoFDSKq3RKRL0VkSqrTYYw53RjzZDKOLSI5InKfiGwTkTIR+Tz8vnsyzqdUU2kQUaoeIuJK4bk9wDJgCDAVyAFOAg4AY5pxvJRdi+q4NIioDklEzhCRtSLyjYi8LSLDY9bNCv+iLxWRTSJybsy6y0VklYj8UUQOAL8OL1spIveKyEER2Soip8fss0JErozZv75tC0Tkv+FzLxWRP4nIU3VcxgygH3CuMWaTMcYyxuw1xvzWGLM4fDwjIkfFHH+eiNwVfj1BRHaIyM0iUgQ8ISKbReSMmO1dIrJPRI4Pvz8x/Hl9IyLrRGRCjc/mi3Dat4rI9Ob976iORIOI6nBE5DjgceBHQDfgEeAVEfGGN/kcGAd0Av4PeEpEesUc4gTgCyAXmB2z7BOgOzAX+JuISB1JqG/bp4H/hdP1a+DSei5lCvBvY0xZw1ddp55AV6A/MBN4Brg4Zv23gf3GmA9EpDfwKnBXeJ8bgH+IyBEikgk8AJxujMkGTgbWtiBdqoPQIKI6opnAI8aY94wxoXB9RRVwIoAx5gVjzK7wL/vngM+oXjy0yxjzoDEmaIypCC/7yhjzV2NMCHgS6IUdZOKJu62I9ANGA78yxviNMSuBV+q5jm7A7mZ9AodYwJ3GmKrwtTwNnCUiGeH138cOLACXAIuNMYvDn80SYA3wnZhjDRWRdGPMbmPMxhamTXUAGkRUR9Qf+GW4SOYbEfkG6AvkAYjIjJiirm+Aodi5hojtcY5ZFHlhjCkPv8yq4/x1bZsHfB2zrK5zRRzADkAtsc8YUxmTni3AZuDMcCA5CzuwgP25XVDjcxsL9DLG+IALgauB3SLyqogc28K0qQ5Ag4jqiLYDs40xnWMeGcaYZ0SkP/BX4DqgmzGmM7ABiC2aStbQ1ruBrjG5ALCDW12WAt8OFyXVpRyIPV7PGuvjXUukSOtsYFM4sID9uf29xueWaYyZA2CMed0Ycyp2YPsY+3NUhzkNIqq9c4tIWszDhX1zu1pEThBbpoh8V0SygUzsG+s+ABH5AXZOJOmMMV9hFw/9WkQ8InIScGY9u/wd+8b+DxE5VkQcItJNRG4VkUgR01rg+yLiFJGpwLcakZRngdOAaziUCwF4CjuH8u3w8dLClfN9RCRXRM4OB7QqoAy7eEsd5jSIqPZuMVAR8/i1MWYNcBXwEHAQ2AJcDmCM2QT8P+AdYA8wDFjViumdzqFmuncBz2HflGsxxlRhV65/DCwBSrAr5bsD74U3+xl2IPomfOyXGkqAMWY39vWfHD5/ZPl27NzJrdhBdjtwI/Z9wgH8AtgFfI0drK5p7EWrjkt0UiqlUkdEngM+Nsbcmeq0KNUcmhNRqhWJyGgRGRAumpqK/cu/wdyDUm2V9mBVqnX1BBZiN9/dAVxjjPkwtUlSqvm0OEsppVSzaXGWUkqpZuvwxVndu3c3+fn5qU5Gk/l8PjIz6+se0D7pdbUfHfGaQK+rMd5///39xpgjGrNthw8i+fn5rFmzJtXJaLIVK1YwYcKEVCcj4fS62o+OeE2g19UYIvJVY7fV4iyllFLNpkFEKaVUs2kQUUop1WwaRJRSSjVbuwsiIjJVRD4RkS0iMivV6VFKqcNZuwoiIuIE/gScDgwGLhaRwalNlVJKHb7aVRDBnn1uizHmC2OMH3tI67NTnCallDpstathT0TkfGCqMebK8PtLgROMMdfV2G4m9hSp5Obmjnr22WdbPa0tVVZWRlZWXRPntV96Xe1HR7wm0OtqjIkTJ75vjCls1MbGmHbzAM4HHot5fynwUH37jBo1yjTZU08Zq18/Y4kY07+/MU891fRjtNDy5ctb/ZytQa+r/eiI12SMXldjAGtMI+/L7a3H+k6qTyfaJ7wscRYsgJkzkfLwNNhffQUzZ9qvp09P6KmUUqq9a291IquBo0WkQEQ8wEXAKwk9w223QSSARJSXwy23QEUF+P0QCiX0lEop1V61q5yIMSYoItcBrwNO4HFjzMaEnmTbtvjn3r4dKSyE3Fzo0cN+7tULeveGPn2gb197udsNTqf9cDhAJKHJU0qptqS95UQwxiw2xhxjjBlgjJmd8BP06xf/vBnpmNxc2LMHli6FBx6wcyczZsCkSXD00dC9Oxx1FJx4Inz3u3DZZXDTTXD//fDii/Duu7Bzp52zieRo6mjY0GPpUsjPtwNRfr5dzJYqCxakPi2ahrabFnVYa1c5kVYxe7ZdBxJTpGWleSmadR3pZ59Pl7TO9o0/EIB9+2D/fvt53z47wOzdaz9/8QW88w6UlNQ+R0aGnWuJPHJz7RxNXp6do1m3joH33gtVVfb2kXoZY+D73z90nJq5nGTkesJ1RKSyjkjTYDMGLAueegquucYuXk1VWpQK0yBSU/iP0Nx6K2zfTqhPHqV3zsKcfw57Kr7Bm92DDIfX/mPu39/OUQSDh54DAfs4xtg39bKy6oFm797qjw0bYMmSQwEjzFkzXeXl8IMfwG9+Yx/X4ThUXBZ5He99U5bFrhOxi+RefTV+HdGPfgTLl1ffvuaxI8eIOV7/PXvs641s4wxfac3tY9/fdVf8NPzkJ1BUZH/WsQ/LOvR/EHkfuz6SA6y5T+Q11N7n8cfr/hwWL+bYffvgoYfs70AwaJ8jFKr/feyzZcXftub6upSXw623ahBRrU6DSDzTpxO86Hts/WYrWR673bUAGek57KrcT//O/XE73XXvb1n2H3/N59iAE7k5RLYvLbVzMPv2wQ9/GP+4waBdbGZZhx6RG2DN15H3gUD1ZfG2q2tfY2rfOCN8Pnjhherb1rzxxh43rKAZ/x11OngQbrghkUesHsAiOTuHo1aQj/L54I036GQMpKUdqg+LfbhchwJmXdvU9XC5ar9/8MH4adm2Da6+Gs47DyZMsOvnlEoyDSJN4HK4CEiAorIieuf0xiF1VClFfpE3JHKDjQSawYPt51/9CnbsqL19Xl78G0jMTbrW8evqTBrJKTVk4kTYtSt+WpYvb3j/yPnDz29+8QXf6t+/eqCJF3xil02bZgfYmnJzYdGiQ9cRmyOKvI4NBJF1sdvGbl/f51Lf57ByJe999hkTBg48dK5EPMdeV+zzSy/B9u210+L1whNPwCOPQOfOMHWq/dmdfjp0wM51qm3QINJE6e50yvxlHCg/wBGZjZo9sm6R4hpnjcKrOXMIXXEFzthfvxkZMHcuHHlky84ZUV9wiXXPPXaRTWyOJCMD5syBAQOafB5TVASRm21j95s7164DqJmG3/8eRo+uvl9dgTHe8qZsO3durbqy6P9JQYFdL9G/f/zjJdrvfhc/LQ8+COPGwWuv2Y0/Xn0Vnn3WXjdhApx7Lpx9NhzRwu+tUjHaXeustiDTncmB8gOUVpUm5wTTp/PJDTfYNyUR+/nRRxNb3h37S7zmr/LYxyWX2OeumZZLL218cUzsA2ovi/dwuw89ZsyoOw0196srHfXV/dR81PF/EjcNqaiDqCstP/yhXdx57bXwzDOwfr1dl3PWWbB6NVx1lZ1zGjcO7r3XbvzRjoY9Um2T5kSaQUTI9GSyu3Q3XpcXj9OT8HPsnTKFwXfdlfDjNsv06amvsNU0VFdfWpxOyMy0H5ddBhdeCN98AytX2o0ali6FG2+0HyNGwJlnwvnnw7BhjSuGVSqGfmOayelw4na62VWyi5ClPdhVG+Vw2MVZeXl2oLj/fnj7bVi8GK6/3q6Pu+suGDkSjjkGfvpT+O9/D7UyVKoBmhNpAa/Li8/vY69vL72ye6U6OUrVLxJQMjLsRgkTJtgdZj/++FAO5eGH7bqVnj05aswYKC6GKVPsfXT0BRWHBpEWyvRkUlxVTIY7g05pnVKdHKUax+GA9HT7ccQRdgOFn/zEbiCwbBksW0avf/8bXnnFbuk1cSKcc449EkOXLvb+CxbYY81t22aP9DB7dtsp7kswYwwGg2WsuI+QFSJoBQlaQSxTR2vJJAtYAXaW7CT9+UXk/GYOzh27oG9f5O67k/r/okEkAbI8Wewus+tH0lxpqU6OUk0jUj2gDB0KV17JqlWrGL99ezSosGiR3c9l7Fh73LgXX2x3veZNuCFB5GZfMxBYxooGg8gjZEJYdTSjNxhEBIc4yH7xn3T/7b24du4m1DuPg7+6Ad8F57TqtXmee4HOP7sVR+T/Zdu2pP+/aBBJAIc4SHels7NkJ/0798fl0I9VtVMxAcXq1Am+/W246CI4cMCuS3njDbvYa+nS2vtGRhHw+yE7237k5FR/eDz1twxsRpGZWbDA7q2/fTumbx8q/+9XVF14Xp3BoCpYxRdff1H9GDHBQLCfHeLA5XDhFnfdfcLC0p9fSKfrb4vevF07dtLtZ7fiwkHF+eFAUqPPVJ3P0UTFWR8MIpWV4A8glZWIPwB+P1JVRc5nO+j667t45qgKbpsM2zpBv2KYvayc6bfdpkGkrXM73QSsAHvK9pCXnYdo+bHqCNLS7Ee3bnZT4rPOskcKOOaY+M2DDx6se8QFsINIpOVYRsah17GPrCw7AMW+zs4mlJlJKCeDYGYG/qwMKtJdOF/5F91v/jWOikoAZNt20n78E0pK9+GbdiYOBAeCC8EN9ntjyPL5ocqPhOyhiiQYHlEiEEQCgfCyIAQDSMAejkaCIXt5+L29zN4/53f3xbl5V3DxL27F9e5q+5j+ABIIxLz2I4GgHQjCy6u/DqcnvC2BIFJXx2KgB7BgGMw8E8rDDUa/6my/559fkaz8oQaRBMpwZ1BaVcrByoN0Te+a6uQolTgihwJK1672QKHxpk3o0cPus+Lz2UVdPp+dQ4n37PPZY8uVldljoJWVYcrLoaws7s3SGX54gAygM2CAp4dR4+Zdyfd/fjvW7D+GhxcK2QEgGERCIXoFg0gC+8eEBJ4YCT/9DlSER5r5qjNceRZsX+7j9H8/jeVyYTxuQm4XltuFCT8slwuT6cZyO+3X7gwstwvL5cS47OXG5cS43VguZ3i5E8vpPLSP04lxOtlbXsVvK56j3FP92so9cNu3nRpE2ossTxZ7yvaQ5kojw52R6uQolXgicPfdtXvNp6fbveknTz40nE+8h2UR9FcSNCGCoQB+E6QyVEWl5SdoBcEYpKoKR1kFrqoA7soq3OV+HJWVSEUFDl85Ul6B+Mr554pH4v/yxuKcgSdHO7walxPjdOBzwzafD2/3dHxOizK3hc8Rosxp4XMG7deOID4J4pMA5Y4gZcaPT/z4TAAfVZSbAD5Thc+qwmdVUmniN4eudMMtp8EtWIA//EiwUPgB4QH+4m+2LSt53RA0iCRYpCPizpKd5HfOr3+gRqXaq0j5ej2ts2IrqQOhAJXBSiqDlfhDISzjBONAjAsHghPBjZM0wsXAkbHTwiMYB6IDmQbBMlT5K9jp280v0h+N+8v7irPh7q4bKQ9VUB6swBesoDxUiaGBHIgVfgAZznQyJZ0MVxoZrgwyXelkuTqT60on3ZlGpjuTTFc6me4M7t3waJ2HfHTCH+z6FocTcTgQcYA4EIcgCBKuhxGH4BCnXRRec33kfbiuRhDsf5FthK2bt/LbT3/LvvJ9tdLQr1PyhuTRIJIELoeLoCPIrtJd9O3Ut8FKOaXapXCv+djK66ryA1QGK6kKVtm5Cg5VWjvFicvhIsOd0WCdYUWggp2lO9levJ3tJdvZWbKT7SWHXu/xhQfkrOOXd5UL+nTLJ9OTSYY7kwxXOpmeLDLdGRQXlXLUgAFkuDPIdGeQ6ckiw5MZ3jaDTHcm6e70Jv3dPvPVq+ws3Vlree/s3nz3+AsbfZyW8O7w8qtv/YqbltxERbAiujzDncHsyYmfvy9Cg0iSpLnS8Pl97PPtIzcrN9XJUSphjDH4Q36eXPckv3nzN+wq3UWvrF784qRfcM6x5+B0OPG4PKRJ3c3dfX4f20u2s6NkR/SxvWQ7O4p3sKN0B/vL91fb3u1w0zu7N71zejMxfyJ9OvWhT04f7vrvXbW2Bfvm/cS5T8Y998bVGxkydEjLPoQaZo2dVevmne5KZ9bYWQk9T0OmDZoGwJyVc6I/Yu+efDfTh2k/kXYpw53BwYqDpLvSyUnLSXVylGo2y9hNY8v8ZZRUlfDSxy9x+/LbqQzaraJ2le3ijuV34HV5mTZoGiVVJYdyEMXb2VG6gx3FO6KB42DlwWrH9zq99M7pTd+cvgzpMYQ+OXaQ6JvTlz45feiR2QOno9ZUbTjF2SZv3nnZecwaOyu6vLXTMm3QNMqqyjiy65FJ73KgQSSJIvUjRb4ivC4vXpc31UlSqkkiQaPMX4YxBpfDhdfl5Y/v/jEaQCIqghX8/PWfc/sbt1NcVVxtXborPRoURvYcaQeHTn3ok92Hvp360j2je7OKfdvizdvEtPyK13vd1JweoUY9TUPr69rGGBP9P4n0sG8NGkSSzOlw4na42Vm6k/6d+sf9NaVUW+EP+akIVFBcVUxVqIqdJTtxO91kujOr1WPsKo0zQRd2T/Bpg6ZFcxKRwNE1vWtS+k4ZYzh74NmcecyZhEwoenOtCFREb6KRZZEbrWVZlFaV2umJ3GcjSYvzPlKnY4yJVmjXtS2Ao8ZIyI4a49zW/BwiFeOx64Xq29QMsPHeO8RBpjszegwHjlapj9Ug0gq8Li/l/nL2+vbSM6undkRUbUbk12t5oJziymICVgCHOPA4PfZQHt7suPvlZefVWZF816SWT2FQcygSy1h2MIhOQGmiN1+Xw4XL4SLNlRZtuRTpfQ7Uet7p3EnvnN7RG3XsTTvyt1nf+4a2TZXNjs0pqX/VINJKMjwZFFcWk+ZKo0t6l1QnRx3GQlaIymAlpVWllPpLsYyF0+HE6/SS5m7c2G+zxs7iZ//+WbXimobqIoyxBzAMmVC1Matq/aIHXOLC6XCS5krD5XDhcXpwOpw4xRn91e10OJv1S9shDrI8Ol1womgQaUVZ3iz2+vaS5koj3Z2e6uSow0ggFIgWU1UEwuM7ORvX3DaekT1HYhmLHE8Opf5S8rLzuOHkGzj9qNPx+X2HyuOjTyYaBDxOTzQwuByuagEhEiRS/ateNZ4GkVbkEAdprjS7I2KXfB2oUSWNMYaqUFW0mMof8iMIHpeHLG/Lf4XPXzcfl8PFG5e9YXe682RWCwyR4BAbILS/VMekd7FW5na6CVpBdpfupk9OH/3FpRLGMhaVwcpoi6qQFcIhDrwuL9mu+HUbzVERqOD5jc/znaO/Q9f0rnhdXvKy8xJ2fNW+aBBJgXR3OqVVpRwoP0D3zO6pTo5qp4wxdi/xUBXFlcXRYqTYSuZkWPTxIoqrivnByB8QtIJ0detgo4czDSIpkuXJYn/FftJcaQkpXugoarZ/jy5voK18U9rat6SdfrxzRiqMiyvtvhGxlc2RVkWRbSPrGvscOZ9FzDEjI9xKuJWSCG6Hm0xPZtJztsYYnlj7BIO6D2J03mjK/GXa/+kwp0EkRUSETHcmu0p3ke/Kx+P0pDpJcUVa8pT5y6Idmeqa/jNeADBU7/RUFapiy9dbGpwpLt6xa7adj31bc32t49RMWjP3rbYuplVRwAqwx7enzuaf0dM2ogkp2K2TGtonFdbsWsOmfZu4Z8o90eaubfW7q1qHBpEUcjqcuJwudpXsol/nfm2m4tEf8lMZqIy25IkUkURGJI69wcWq6+YWeyONzAJZ3/bt0eHSbHTe2nnkeHOYNmgaQSuI1+VtM99blRoaRFKsLQzUGNuS55vKbwiEAgltyVNTRwoeh5N9vn28+tmrzBgxgwx3BhWBCjp5O6U6WSrFNIi0AZmeTA5WHiTNlUantNb5o6y3w5mrcR3O1OFlwfoFBKwAl428DLC/Q9rfSWkQaSOyPFkUldkDNSbrJh47LlJFoAJBWtThTB0+glaQpz56ivH9xzOgywDArh/S+hClQaSNiLTn31Wyi/6dEzMLWc1xkYImCAY8Lk+dYyIpFc9/Pv8Pu8t2M3uSPblRJOeqM3eqNlcjJiK/FpGdIrI2/PhOzLpbRGSLiHwiIt9OZTqTweP0YDAUlRU1+xghK4TP76OotIgtX29hW/E2DlYexO10k+XJIsubpb8eVZPNWzuP3tm9mXLkFMAeRiUyYqw6vLXVnMgfjTH3xi4QkcHARcAQIA9YKiLHGGOSNwN9CkQ6IoaacFlaTKWS6bMDn7Fq+ypmjZ0VncogaAXJcNcxN606rLTVIBLP2cCzxpgqYKuIbAHGAO+kNlmJl+XJIhAKUB4oj/uHGpllzuf3UVJVEh2+2+10azGVSrh5a+fhcXr4/tDvR5cZjHYyVEDbDSLXicgMYA3wS2PMQaA38G7MNjvCy2oRkZnATIDc3FxWrFjR5AQY7HmkU9UG3l/h563/voXH6Yn2s4gdRhsDSHjCm3aU2aj0VbJx9cZUJyPhOuJ1VfoqWf3Oap7f8Dzju42naGMRRdhFrZZlscsVf2Kqtq6srKxZ94S2LlXXlZIgIiJLgZ5xVt0G/Bn4LfZt8rfA/wN+2JTjG2MeBR4FKCwsNBMmTGhyGgOhAFu/2ZqyDmQbV2/kyJFH2kNjOxxUBisxxuB2uvE6ve22mGrj6o0MGT0k1clIuI54XRtXb2S1ezXloXJ+NvlnDOllX18gFABIWAOQ1rZixQqac09o61J1XSkJIsaYKY3ZTkT+Cvwr/HYn0DdmdZ/wsg4r3Z1OZbASMXJY9IZWbYsxhifXPcnw3OEc1/O46PKAFaBLmk6spmxtsXVWr5i35wIbwq9fAS4SEa+IFABHA/9r7fS1tjRXmjajVCnxUfFHfHrgUy4fcXm1nK9lWdohVUW1xTqRuSIyErs460vgRwDGmI0i8jywCQgC13a0lllKtSWv7H6FzmmdOWvgWbXWaTNxFdHmgogx5tJ61s0GZrdicpQ6LO0u3c2q/auYOWpmtaFNLGPhcDg0d6yi2lxxllIq9RasX4DBMGPEjGrL/SG/djJU1WgQUUpV4w/5WbB+AaO7jK7VAisYCmoQUdVoEFFKVfPaltfY69vLWXm160IQe+w1pSI0iCilqpm3dh75nfIp7FIYd71WqqtYGkSUUlGb9m3ifzv/x6UjLq01WkMgFCDNlaYzGapq9NuglIqat3Yeac40LhxyYa11AUtH7lW1aRBRSgFQXFnMws0LOefYc+iSXrtHus5kqOLRIKKUAuCFTS9QEazg8pGXx10viNaHqFo0iMSxYP0CjnrwKI596FjG/HUMCzcvTHWSlEoqy1g8ue5Jju91PMNyh8Vd73K4cDnaXP9klWIaRGpYsH4BM/85k23F2zAYdpbu5KYlN2kgUR3aym0r+eLgF1w+4vK46/0hv05CpeLSIFLDbctuozxQXm1ZRbCCOSvnpChFSiXfvLXz6JbejTOOOSPu+mBIZzJU8WkQqWFb8ba4y3eVts8JeJRqyM6SnSz5YgkXD7u4ztkKdSZDVRcNIjX069Qv7vK87LxWTolSrWP+R/MBmDF8Rtz1xhhERAddVHFpEKlh9uTZtbLt6a50Zo2dlaIUKZU8lcFKnl7/NKcdeRq9c+LONk3QCmonQ1Un/VbUMH3YdB4989FqOZJLh1/KtEHTUpgqpZLjX5/+i68rvuaykZfVuU3ACujMmqpOGkTimD5sOlt+soUN12xgQJcBLP9yOUErmOpkKZVw89bOY0CXAYzrN67ObUJWSGcyVHXSIFIPt9PNLWNv4bOvP+P5jc+nOjlKJdRHez7iw6IPuWzEZdWmv41HOxmqumgQacDUo6ZSmFfIvW/fW6vpr1Lt2by188hwZ3DBkAvq3MYyFm6HWzsZqjppEGmAiHD7+NvZ49vDXz/4a6qTo1RCfF3xNS9//DLTBk0jx5tT53bayVA1RINII4zOG83UAVN5ePXDHCg/kOrkKNViz298nspQZZ091COCoSCZHh25V9VNg0gj3TLuFioCFdz37n2pTopSLWIZi/nr5nNC7xMYdMSgerc1GK0PUfXSINJIR3U9iouHXcz8j+az9eDWVCdHqWZbvnU5XxV/VW+z3ggRHblX1U+DSBP88qRf4nF6uGfVPalOilLNNm/dPHIzczn9qNPr3c4YQ7orvcGWW+rwpkGkCXpk9uBHo37EPz/9Jx/u/jDVyVGqyb785kuWb13O9GHTG8xhGIzWh6gGaRBpoqsLr6Z7RndmvzUbY0yqk6NUk8xfNx+nw8n04dMbtb12MlQN0SDSRFmeLH5+4s95Z8c7LNu6LNXJUarRKgIVPLfhOaYeNZWeWT0b3sFoJ0PVMA0izTB92HQKOhdw91t3E7JCqU6OUo3y8icv803VNw026wV7qBMR0U6GqkEaRJohMhzKJwc+4YVNL6Q6OUo1yBjDvLXzGNhtICf2ObHB7QNWQEftVY2i35Jm+s7R3+H4Xsfz+7d/T0WgItXJUapeH+z+gPV713PZyIbHyQK7k6EGEdUY+i1pJhHh9nG3U1RWxGMfPpbq5ChVr3nr5pHlyeK8Qec1eh9t2qsaQ4NIC5zQ5wROG3Aaf/rfn/i64utUJ0epuPaX7+dfn/6LCwZf0Kh5QSIzGQoaRFTDNIi00C1jb8EX8OlwKKrNembDM/hDfi4b0XAPdbDrQ7Rpr2osDSItdEy3Y7h46MXMXzefr775KtXJUaqaoBXk7+v+zth+Yzm629GN2icQ0pkMVeOlJIiIyAUislFELBEprLHuFhHZIiKfiMi3Y5ZPDS/bIiJtasLzX5z0C5wOJ3NXzU11UpSqZukXS9lZurNRzXojDEZzIqogy0pFAAAgAElEQVTRUpUT2QBMA/4bu1BEBgMXAUOAqcDDIuIUESfwJ+B0YDBwcXjbNqFnVk9+NOpHvPTJS6wrWpfq5CgVNW/tPPKy8zh1wKlN2s/tdCcpRaqjSUkQMcZsNsZ8EmfV2cCzxpgqY8xWYAswJvzYYoz5whjjB54Nb9tmXFN4DV3Tu3LXW3fpcCiqTdjy9Rbe2vYWlwy/pNGdBkNWCJfDpZ0MVaO1tW9Kb+DdmPc7wssAttdYfkJdBxGRmcBMgNzcXFasWNHkhBgM/pC/SW3lL867mD99/ifm/WceY7qOafI5Y1X6Ktm4emOLjtEW6XW1noc/fxiXuBgVHNXotFnGwilOtjm2UVZW1qy/nbZOryuxkhZERGQpEG+AntuMMS8n67wAxphHgUcBCgsLzYQJE5p8jEAowNZvtjapgvHo0NG8Ou9VFuxZwIxTZ+B0OJt83oiNqzcyZPSQZu/fVul1tQ6f38ey95Zx5sAzGXvK2EbvV1pVSu+c3mR5slixYgXN+dtp6/S6EitpxVnGmCnGmKFxHvUFkJ1A35j3fcLL6lrepnicHm4eezOb92/mH5v/kerkqMPYwo8XUuovbdTEU7EEnYRKNU1ba+L7CnCRiHhFpAA4GvgfsBo4WkQKRMSDXfn+SgrTWaczjzmTkbkjmbtqrg6HolLCGMOTa59kyBFDKOxV2PAOMfuJCG6HVqqrxmt0EBGRsSLyg/DrI8I3+WYRkXNFZAdwEvCqiLwOYIzZCDwPbAL+DVxrjAkZY4LAdcDrwGbg+fC2bY6IcPv429ldtpsn1j6R6uSow9D/dv6Pzfs3c/nIy5s0dEnACuhMhqrJGhVERORO4GbglvAiN/BUc09qjFlkjOljjPEaY3KNMd+OWTfbGDPAGDPQGPNazPLFxphjwutmN/fcreGkvicx5cgpPPi/B3U4FNXq5q2bRydvJ8499twm7RcIBXQmQ9Vkjc2JnAucBfgAjDG7gOxkJaojuHXsrZT5y3jwfw+mOinqMLKnbA+LP1vMhUMvJN2d3qR9LWNpJ0PVZI0NIn5jd34wACKiP1caMLD7QL43+HvMWzuP7cXbG95BqQRYsH4BQSvIjOEzmryviFaqq6ZrbBB5XkQeATqLyFXAUuCvyUtWx/DLk3+JQxw6HEoHsXDzQsb8dQx9/tCHMX8dw8LNC1OdpGoCoQBPffQUE/MnUtClaVWWkU6GLWmWrg5PjQoixph7gReBfwADgV8ZY7ScpgF52XlcefyVLPx4IRv2bkh1clQLLNy8kJuW3MTO0p0YDDtLd3LTkpvaVCD59+f/Zo9vT5Ob9QL4Q34ddFE1S4NBJDx21XJjzBJjzI3GmBuMMUtaI3EdwbWjr6VLWhfu+u9dqU6KaoE5K+dQEazeZLsiWMGclXNSlKLanlz7JH1z+jIpf1KT9w2ZEBnujCSkSnV0DQYRY0wIsESkUyukp8PJ8eZw/YnX89a2t3jzyzdTnZxmaevFOMlijGHjvo088N4D7CyN37d1Z+lOXv7kZUoDpa2cuuo+3v8x7+x4hxkjmjdSgjFG60NUszR22JMyYL2ILCHcQgvAGPPTpKSqg5kxYgaPf/g4d711F+P6j2tXc1dHinEiv8IjxTgA0wZNS2XSksLn97Fy20qWbV3Gsq3LKCorAsDtcBOwArW2F4Qfv/pjHDg4ftvxTCqYxKT8SQzpMaRV/5+fXPckXqeXi4Ze1OR9jTE4xKGdDFWzNDaILAw/VDN4nB5uPuVmfrz4xyzcvJDzB5+f6iQ1Wn3FOB0liGw9uJVlW5fxxtY3eGfHO9H6gfH9xzOlYAoT8iewavuqasEUIN2Vzpwpc8jvnM/zq55ng38Dc1fNZe6quRyRcQQT8icwqWAS4/uPp3Na56Slv7SqlH9s+gdnDTyLruldm7y/djJULdGoIGKMeTI83Mgx4UWfGGNq/yxTdTpz4Jn85f2/MHfVXM445ox20R7fMla9xTg3/udGRvQcwYjcEQzsPrDdFIf4Q37e3fEub2x9g2Vbl/HFwS8AOKrrUfxg5A+YVDCJMb3HVLueSMCcs3IOu0p3kZedx6yxs6LL0/PTGTJ6CPt8+1jx1QqWb13Oks+X8MKmF3CIg1G9RjGxYCKTCyYz5IghCb1hv7jpRXwBH5ePvLxZ+wdCATplaGm1ap5GBRERmQA8CXwJCNBXRC4zxvy3vv3UIQ5xcPu42/nei3bfkasLr051kuq19eBWblxyY53rvU4vi7cs5ukNTwN2bmtw98EM7zmckbkjGZ47nKO7Hd1m5qUoKivija1v8MbWN/jvV//FF/DhdXo5ue/J/GDkD5hcMJn+nfvXe4xpg6Y1mPs6IvMILhh8ARcMvoCgFeTDog9ZvnU5b2x9I5pL6ZHZgwn5E5iYP7HFuRRjDPPWzeO4nscxsufIZh1DOxmqlmjsX/j/A06LTCQlIscAzwCjkpWwjuiUfqcwKX8SD7z3ABcOuZAu6V1SnaRaQlaIv334N+5ZdQ9uh5uLh17MSx+/VKsYZ+6pczn32HPZVryNdXvW8dGej1i3Zx2LNi9i/rr5AKS50hjaYygjcu3cyoieI7CM1WrXsbZobbRuI9LEuldWL84ddC6TCyYztt/YpLZIcjlcjM4bzei80dx0yk3s9e1lxZcrWP7lcl7f8jrPb3wepzgZlTeKifkTmVQwqcm5lJXbV7Ll6y3cN/W+FqW1veQiVdvT2CDijp2J0BjzqYhoLVwz3DruVk79+6k89L+HuONbd6Q6OdV8euBTfvmfX/LB7g+YcuQU5kyeQ6/sXpzc9+Q6i3H6d+5P/879OWvgWYD9q/aLg19Eg8q6onU8vf5p/vbh3wDIcGYw4ks7qAzvOZwRuSPo36l/Qop3vqn8hje/fJOlW5ey4ssVfF3xNQ5xUJhXyC1jb2FywWSO7X5sysr+e2T24HtDvsf3hnzPzqXs/pA3vnyD5VuXc8+qe7hn1T3kZubauZSCiYzvN55OafUXMz259km6pnflzGPObFaaQlYIj9OjnQxVszU2iKwRkcc4NOjidGBNcpLUsQ06YhAXDLmAJ9Y+wQ+P+yG9c3o3vFOSBUIB/rzmz/zx3T+S6c7kodMf4pxjz4nebBtTjBPhEAdHdT2Ko7oeFd0naAXZ8vUW1u1Zx/KPlrMjuIPH1z6OP+QHoLO3M8N7Dmd47vBoriUvO6/azX7h5oW1Atm5x57Lx/s/juY21uxag2UsuqR1YWLBRKYUTGF8//FtMsfncrgY3Xs0o3uP5uZTbmavby/Lv1zO8q3LeW3Lazy38Tmc4qQwr5CJBROZmD+xWi5l4eaFzH5rNkVlRWR5slj82eJmNXTwh/xke3UYPNV80pj5wEXEC1wLRKZIewt42BhTlcS0JURhYaFZs6bp8a45Mxs21s7SnYx/fDxnDDyD+6feH3eb1popb8PeDfzi9V+wcd9GzjzmTO6adBfdM7on7XyR6/KH/Hx64FPWFq2N5lo+3v8xQSsIQPeM7tGg4vP7mP/RfCqDldHjOMVJtiebb6q+AWBoj6FMLpjMpIJJHNfzuFb/ZZ3I/6+gFeSD3R9E63A27rNnPcjNzGVi/kQy3Bk8veHpap9HpIixqYGkzF9GXnZe3O+5zgDYviTyukTkfWNMoyajaWxOxAXcb4z5Q/gETsDbzPQd9npn9+aK46/g4dUPM3PUTIYc0frTqlYFq7jvvft4ePXDdEnrwmNnPsbpR5/eauf3OD0M7TGUoT2GRpdVBivZtG9TNKh8VPQRK75cEbceJWRCVIYq+f2pv2dSwSR6ZsWbibl9cjlcjOk9hjG9xzBr7Cz2lO1hxZcrWLZ1GYu3LKakqqTWPs1tdq2dDFVLNTaILAOmYHc6BEgH/gOcnIxEHQ6uHX0tC9Yv4O7/3s2C8xa06rnf3/U+Nyy5gU8PfMoFgy/gzm/d2SaKfNJcaRzf63iO73V8dJnP72PgQwMx1M4xVwWr+P6w77dmElMiNyuXC4deyIVDLyQQClBwf0Hcz2NX6a4mHVc7GapEaGyX2jRjTCSAEH6tA+20QKe0TvzshJ+x4qsV/Per1mkpXRGo4P/e/D/OfvZsyvxlPHXuU9w39b42EUDqkunJJC87L+66upZ3ZG6nO2Gfhz/kJ8OdoZ0MVYs0Noj4RCT681BECgGdQLyFLhtxGX1z+jL7rdlJb/r69va3mTJ/Co++/yiXjriUN2a8wcSCiUk9Z6LMGjuLdFf1CZbSXenMGjsrRSlKrUR9HkErqCP3qhZrbBC5HnhBRN4SkbeAZ7HnPFct4HV5ufmUm9mwdwMvffxSUs5RWlXKrKWzuOCFCwB44YIX+N3k37WrFjnTBk1j7qlz6Z3dG0Hond27WZXIHUWiPg+tD1GJUG+diIiMBrYbY1aLyLHAj4BpwL+Bra2Qvg7v7GPP5pH3H2Huqrl89+jv4nUlrr3C8q3LuWnpTewu3c3MUTO56eSbmjxlalvRlGbGh4NEfR4aRFRLNZQTeQTwh1+fBNwK/Ak4CDyaxHQdNhzi4NZxt7K9ZDtPrnsyIcc8WHGQ6/99PZcsuoRMdyYvX/Qyd37rznYbQFTiBa0gbqdbOxmqFmsoiDiNMV+HX18IPGqM+Ycx5g7gqOQm7fAxvv94JvSfwP3v3U9xZXGLjvXaZ68xaf4kFm5eyM9O+BmvX/I6o/J0dBpVXSAU0PoQlRANBhERiRR5TQbeiFnXNkbW6yBuHX8rxZXF/Gn1n5q1//7y/fzoXz/iyn9eyREZR7B4+mJuOuWmhBaPqY5DZzJUidJQIHgGeFNE9mO3xnoLQESOAlr2k1lVM+SIIZw3+Dwe++CxJs2RbYzhpY9f4o7ld+AL+Lj5lJu5pvAa3E5t+6/qp98RlQj15kSMMbOBXwLzgLHm0BgpDuAnyU3a4eemk+0ZA+99+95Gbb+7dDeXv3w51712HQVdCnj9ktf56Qk/1ZuDqpd2MlSJ1GCRlDHm3TjLPk1Ocg5vvXN688Pjfshf1vyFycdPZgjxh0MxxvDMhmf4zZu/IWAFuPNbd3LFcVdoJalqFH/IrzMZqoRpP5N9HyauG3MdnbydeGzrY3HXbyvexsX/uJgbl9zI0B5DWXrpUmaOmqkBRDVawNJKdZU4GkTamM5pnfnJCT9h9cHVrNy2MrrcMhaPf/g4k+dP5sOiD5kzZQ7PX/A8BV0KUpha1S4ZtMGFShhtYdUGXT7ycu5bdR+XLLyEoBWkR2YPMtwZbP1mK5PyJzHn1Dn0zk79PCSq/dL6EJUoGkTq4BAHGLv+obXLjhd/tpgKq4KgsefW2OPbA8Alwy9hzuQ5Wpatmi1oBXUmQ5VQWpxVB6fDSef0ztUm/mktc1bOiQaQWMu3LtcAolokEAqQ6clMdTJUB6JBpB6dvJ2iM+21prrmhWjqfBFK1RS0gtrJUCWUBpF6eF1e0t3p0bnAW4vOn6GSRUR00EWVUBpEGtAtvRtVwdadSn7W2Fl4HdVbzxzO82eoxLCMhUMcuBxaFaoSJyVBREQuEJGNImKFJ7iKLM8XkQoRWRt+/CVm3SgRWS8iW0TkAWmlyoF0dzouh4uQFWqN0wH2MN/XH329zp+hEioQCuhMhirhUvWTZAP2vCSPxFn3uTFmZJzlfwauAt4DFgNTgdeSlsIwhzjomt6V/eX7W7VCcnKPyfz0uz9ttfOpji9gBejq7prqZKgOJiU5EWPMZmPMJ43dXkR6ATnGmHfD43fNB85JWgJryPZmYzAcGjpMqfbHGKOdDFXCtcXC0QIR+RAoAW43xrwF9AZ2xGyzI7wsLhGZCcwEyM3NZcWKFS1OVNAKEjIhu/9IK6j0VbJx9cZWOVdr0utKHcuy2O3a3ejty8rKEvK309bodSVW0oKIiCwFesZZdZsx5uU6dtsN9DPGHBCRUcBLIhJ/FMJ6GGMeJTzzYmFhoZkwYUJTD1FLRaCCbcXbWm1u8o2rNzJkdJMvvc3T60qNoBXEsizyu+Q3ep8VK1aQiL+dtkavK7GSFkSMMVOasU8VUBV+/b6IfA4cA+wE+sRs2ie8rNWkudLwOr0EQgEdal21O4FQgE7eTqlOhuqA2lQTXxE5QkSc4ddHAkcDXxhjdgMlInJiuFXWDKCu3Eyy0kbX9K4p6cGuVEsFrSDp7vRUJ0N1QKlq4nuuiOwATgJeFZHXw6vGAx+JyFrgReDqmDnefww8BmwBPqcVWmbVlOXNwiEOLGO19qmVajHtZKiSISUV68aYRcCiOMv/Afyjjn3WAEOTnLR6OcRBl7QuHKw8qOMPqXbDMhZOh1OLYVVStKnirPYgJy1HcyKqXYl0MlQqGTSINJHH6SHTndnqQ6Eo1VxBK0imW3POKjk0iDRD14yurT4oo1LNZdBOhip5NIg0Q7orHbfDnZJh4pVqMqOV6ip5NIg0g4jQLaMblQFt7qvatqAVxOvyttpIC+rwo9+sZsryZAHoeFqqTQuEAlofopJKg0gzpXL6XKUaK2SFtJOhSioNIi2QqulzlWoKrQ9RyaRBpAVSNX2uUo1hGQuHw6GdDFVSaRBpoVRMn6tUY/hDfq0PUUmnQaSFUjF9rlKNEbJCGkRU0mkQaaHI9Llawa7aGoPB49L6EJVcGkQSIMuThWUsbe6r2hytVFfJpkEkAdxON9nebM2NqDYjEArgdWonQ5V8+g1LkC5pXQiEAqlOhlIABKxAtEOsUsmkQSRB0lxpeF1eDSSqTbAsSzsZqlahQSRBRMRu7hvS5r6qbXA7tH+ISj4NIgmU5c1CEJ20SqWUZSxcDpd2MlStQoNIAkWmz9UKdpVK/pBfi7JUq9EgkmA5aTna8VClVDCkMxmq1qNBJMF0+lyVcoLOZKhajQaRJNDpc1WqaX2Iai0aRJIgMn2uFmup1hYIBUhzpWknQ9Vq9JuWBJHpcysCFalOijrMaCdD1do0iCRJpseu2NTxtDqetvx/GrJCpLnSUp0MdRjRIJIkLodLp8/tYIwxlFWV4Qv4KKksabOjE+igi6o1uVKdgI6sk7cTBysOpjoZKgEqAhWETIiu6V3pkt6FqlAVRWVFVPmryHBnpDp5gN3J0O1w43Lon7VqPfptS6LY6XP112H75A/5qQxWkuPNoXtG9+j/Y4Yjg/zO+RRXFrPPt69NjFLgD/nbTEBThw8tzkqyruldtc9IOxSyQpRWlYKB/p36k5edV+uHgEMcdEnvQkGXAhzioKSqJKVNu4OhYLQuTqnWokEkyTLcGTjF2SZ+qaqGGWPw+X1UBavoldWL/p37NziEiNvpxu1w079TfzBQWlWakubdBqM5XtXqtDgryRzioGtGVw6UH2jXvxLL/eWETAiP09Nhe0NXBCoIWkG6pXejS3oXnA5nk/ZPd6fTv3N/SqpK2OvbiyCku9MRkSSl+BBjDCKiQUS1Og0irSDbk80+377oH3p74/P7SHOl0TW9KwcrDlJSVYJTnKS70ztEpzZ/yE9loJJsbzZHZB7RohuxiNAprROZnky+rviar8u/xuvyJj3wBq0gaa60dvn9Uu2bBpFWEJk+tyJQ0e5GV40EkN45vXGIg0xPJv6Qn9KqUg5WHMQyFh6Xp13+Ag5ZIcoD5XicHvp17pfQSmmXw0WPzB7keHPY69tLSWUJmZ7MJuduGitgBeia3jUpx1aqPhpEWkmXtC52RW07Uu4vrxZAIjxOD90y7CKf8kA5+337Ka0qxeVwtYtfw8YYygPlCELPrJ7keHOSluY0Vxp9c/pSWlXKXt9eDIYMd0bCz6edDFWqpKQsQkR+LyIfi8hHIrJIRDrHrLtFRLaIyCci8u2Y5VPDy7aIyKxUpLsl0lxpeJweglYw1UlplHJ/OV6Xl7zsvDqLrBziIMuTRX6XfPI755Ptzcbn91FWVdZmr7MiUEGZv4wuaXarqk5pnZIe9ESEnLQcCroU0CWtC2X+sqR0Qm2PuUHV/qWqQHsJMNQYMxz4FLgFQEQGAxcBQ4CpwMMi4hQRJ/An4HRgMHBxeNt2IzJ9bnvowR4bQBpb/OJ1eemR2YMBXQeQm5VLMBSktKq0zVxvIBSgpLKENFcaBV0K6J7ZPWlFS3VxOpx0z+xOfud83A43JVUlCQm2ISuknQxVyqTkW2eM+U/M23eB88OvzwaeNcZUAVtFZAswJrxuizHmCwAReTa87aZWSnJCZHoyEZ89fW5brZAu95fjcXmaFEBiOR1OOqV1IsebQ2WwkoOVBymtKsUhjpTUB0XqPdxOd8LrPZrL6/LSJ6cP5YFyisqKqAxU2t+NZuaIAlagXbf8U+1bW/jp8kPgufDr3thBJWJHeBnA9hrLT6jrgCIyE5gJkJuby4oVK2quJzMzE6ezdX+JRpTScN1I105dKdpS1AqpqU0QDnAg4cctpTQl1yXYN+diihN2zFAohM/niw7GWFZWVut71uhjmVA0R9KcHxeWZeF2utksm5t1/rq05JraMr2uxEpaEBGRpUDPOKtuM8a8HN7mNiAILEjkuY0xjwKPAhQWFpoJEyZUW79161ays7Pp1q1bq1cCW8bCH/TjcNR/s6j0VZKW2XoVpZaxEOx+Bsn6TIwxlJaW4s3w2jdfad5NszHnsYyFy+HC5XAl/HqMMRw4cIDS0lIKCgoAWLFiBTW/Z03hD/nZ59tHaVUp6e70Jk0qVVZVRv/O/RPejLil19RW6XUlVtKCiDFmSn3rReRy4Axgsjk0tvZOoG/MZn3Cy6hneZNVVlaSn5+fklZEDnHgEEeb6jPSGgEE7BygiOB1ebGMRcgKETJ2z25BWnzuSPBwihOvy5u0IkMRoVu3buzbty9hx/Q4PfTO6X2oiKvKLuJq6BoiwVgr1VWqpKp11lTgJuAsY0x5zKpXgItExCsiBcDRwP+A1cDRIlIgIh7syvdXWpiGluzeIk6Hs83MSdFaAaQmhzhwO914nV7cDvtXt2VZzR4exrLs/TxODx6XJ+l1Tsn6rDLc9sCOPTJ7UO4vpzxQXu/2AStAuqt1esUrFU+q6kQeArzAkvCX/11jzNXGmI0i8jx2hXkQuNYY+6eqiFwHvA44gceNMRtTk/SWc4jD/qM3QAr/9lMVQGKJCE5xRnNnQROMBhIHjgY/n8i2LqcLpzg7xM00MrBjlieL/eX7Ka4qjjYRryloBemU3ikFqVTKlpKciDHmKGNMX2PMyPDj6ph1s40xA4wxA40xr8UsX2yMOSa8bnarJnjBAsjPB4fDfl7Q/CqcAwcOcNxxxzGmcAz9+vSjoF8Bo0eNZvSo0fj9jRsB9qorruKTTz6pd5s/P/xnnnn6mTrXt4UAEktEcDgc9thcTi8uhwsLC8uy4ubajDFYVrjoKrx9W7iORHI73fTK7lXvwI6WsTrsWGaqfWgLrbPatgULYOZMKA8XK3z1lf0eYPr0Jh+uW7durF27FmMMd/zqDrKys/jFL39RbZvIDbIuf/3bXxs8zzU/vqbOdakMIJFrq69hgYjgEld09OOQFbI/D7HrTiL1Hm6Xu802lU6khgZ21PoQlUod/y+wIddfDxMm1P244opDASSivNxeXtc+11/f4GkjlcwG+1f2li1bGDFsBJddehkjh4+kqKiIa66+hpNOOImRw0cy+7eHMl8Tx09k3dp1BINBenTrwW233Ebh8YWMP2U8e/fuBeDOO+7kgfsfiG5/2y23ccqJpzB08FDefftdPE4P5eXlnHfeeQwePJjzzz+fwsJC1q5dWyutN954I4MHD2b48OHcfPPNABQVFXH22WczfPhwRowYwXvvvQfA3LlzGTp0KEOHDuXBBx+MXtvgwYOZPn06Y8aMYffu3bz22mucdNJJHH/88Vx44YX4fL64n5HT4bTH5nJ5cIrdJLu16j3aksjAjgVdCshJy6G0qpSKQAUucWknQ5VSh89fYXNV1TGhVF3Lm8AhDogpqfnk40/46c9+yrr168jLy2P23bN55713WPPBGpYtXcbmTbX7ARQXFzNu/DjWfLCGE048gSefeDLuuYwxvPXOW/xuzu+Yc/ccRIQHH3yQnj17smnTJu644w4+/PDDWvvt2bOHxYsXs3HjRj766CNuueUWAK699lpOPfVUPvroI95//30GDRrEe++9x4IFC1i9ejXvvPMODz/8MOvXrwfg448/5uc//zmrV6/G7XYzZ84cli1bxgcffMDw4cO5//77G/ys3E43Xpe31XuatyWRgR3zu+TjdrrJ8malOknqMKc/Ye67r/71+fl2EVZN/ftDCzv2RHMj4TL/IwccyajCUdH1zz37HPOemEcwGGT3rt1s3ryZQYMHVTtGeno6U0+fCsDxo45n5cqVcc911jlnIQgnjD6B2265DYCVK1dGcxYjRoxgyJAhtfbr2rUrDoeDq666iu9+97ucccYZgN0m/dlnnwXA5XKRk5PDypUrOe+880hPt3umn3POObz11lucdtppDBgwgMLCQkpLS3n77bfZtGkTJ598MgB+v5+xY8c270M8TEUGdlQq1TSINGT27Op1IgAZGfbyBIi0SgLI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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from sklearn.linear_model import Ridge\n", "\n", "title = \"Learning Curves\"\n", "\n", "# Create the CV iterator\n", "cv_iterator = KFold(n_splits=5, shuffle=True, random_state=10)\n", "llr = Ridge(alpha=0.5)\n", "\n", "plot_learning_curve(llr, title, X, y, cv=cv_iterator, n_jobs=4)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Optimizing hyperparameters with GridSearchCV\n" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "GridSearchCV(cv=KFold(n_splits=5, random_state=None, shuffle=False),\n", " error_score='raise-deprecating',\n", " estimator=KNeighborsRegressor(algorithm='auto', leaf_size=30,\n", " metric='minkowski',\n", " metric_params=None, n_jobs=None,\n", " n_neighbors=5, p=2,\n", " weights='uniform'),\n", " iid=False, n_jobs=None,\n", " param_grid={'n_neighbors': [1, 3, 5, 7, 9]},\n", " pre_dispatch='2*n_jobs', refit=True, return_train_score=False,\n", " scoring=None, verbose=0)" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from sklearn.model_selection import GridSearchCV\n", "\n", "# Hyperparameter optimization:\n", "# (Hyper)parameter grid\n", "p_grid = {\n", " \"n_neighbors\": [1, 3, 5, 7, 9]\n", "}\n", "\n", "# Note that GridSearchCV requires a cross-validation scenario, in this case KFold\n", "\n", "knnr = KNeighborsRegressor()\n", "grid_search = GridSearchCV(estimator=knnr, param_grid=p_grid, cv=KFold(n_splits=5), iid=False)\n", "grid_search.fit(X, y)" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
mean_fit_timestd_fit_timemean_score_timestd_score_timeparam_n_neighborsparamssplit0_test_scoresplit1_test_scoresplit2_test_scoresplit3_test_scoresplit4_test_scoremean_test_scorestd_test_scorerank_test_score
00.0007140.0002660.0017290.0004161{'n_neighbors': 1}-2.627907-0.236199-0.600097-0.076035-1.595620-1.0271720.9589775
10.0004870.0001260.0016810.0004383{'n_neighbors': 3}-1.3100980.217386-0.466775-0.026002-0.317241-0.3805460.5212934
20.0006470.0000800.0019470.0002915{'n_neighbors': 5}-1.1092120.149350-0.425920-0.014744-0.174557-0.3150160.4401303
30.0004850.0001160.0018000.0000987{'n_neighbors': 7}-1.0081520.166533-0.4385160.031234-0.277777-0.3053350.4119192
40.0006890.0002540.0020170.0004509{'n_neighbors': 9}-1.0082670.156244-0.3901390.039706-0.169021-0.2742950.4116251
\n", "
" ], "text/plain": [ " mean_fit_time std_fit_time mean_score_time std_score_time \\\n", "0 0.000714 0.000266 0.001729 0.000416 \n", "1 0.000487 0.000126 0.001681 0.000438 \n", "2 0.000647 0.000080 0.001947 0.000291 \n", "3 0.000485 0.000116 0.001800 0.000098 \n", "4 0.000689 0.000254 0.002017 0.000450 \n", "\n", " param_n_neighbors params split0_test_score split1_test_score \\\n", "0 1 {'n_neighbors': 1} -2.627907 -0.236199 \n", "1 3 {'n_neighbors': 3} -1.310098 0.217386 \n", "2 5 {'n_neighbors': 5} -1.109212 0.149350 \n", "3 7 {'n_neighbors': 7} -1.008152 0.166533 \n", "4 9 {'n_neighbors': 9} -1.008267 0.156244 \n", "\n", " split2_test_score split3_test_score split4_test_score mean_test_score \\\n", "0 -0.600097 -0.076035 -1.595620 -1.027172 \n", "1 -0.466775 -0.026002 -0.317241 -0.380546 \n", "2 -0.425920 -0.014744 -0.174557 -0.315016 \n", "3 -0.438516 0.031234 -0.277777 -0.305335 \n", "4 -0.390139 0.039706 -0.169021 -0.274295 \n", "\n", " std_test_score rank_test_score \n", "0 0.958977 5 \n", "1 0.521293 4 \n", "2 0.440130 3 \n", "3 0.411919 2 \n", "4 0.411625 1 " ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# exploring the results of hyperparameter search using 5-fold cross-validation\n", "\n", "import warnings\n", "\n", "with warnings.catch_warnings():\n", " warnings.filterwarnings(\"ignore\",category=FutureWarning)\n", " df_cv_results = pd.DataFrame(grid_search.cv_results_)\n", "\n", "df_cv_results" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'n_neighbors': 9}" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grid_search.best_params_" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "-0.27429538641415063" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grid_search.best_score_" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "KNeighborsRegressor(algorithm='auto', leaf_size=30, metric='minkowski',\n", " metric_params=None, n_jobs=None, n_neighbors=9, p=2,\n", " weights='uniform')" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grid_search.best_estimator_" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 22.333333\n", "1 22.088889\n", "2 23.122222\n", "3 24.600000\n", "4 23.922222\n", "dtype: float64" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "best_model = grid_search.best_estimator_\n", "pd.Series(best_model.predict(X)).head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Nested GridSearchCV cross-validation" ] }, { "cell_type": "code", "execution_count": 74, "metadata": { "scrolled": true, "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/plain": [ "array([0.56587668, 0.47906321, 0.46745653, 0.67292231, 0.52349235,\n", " 0.72262197, 0.68445332, 0.46320908, 0.39704074, 0.37277133])" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# CV iterators\n", "inner_cv_iterator = ShuffleSplit(n_splits=20, random_state=10)\n", "outer_cv_iterator = KFold(n_splits=10, shuffle=True, random_state=10)\n", "\n", "# Hyperparameter optimization:\n", "\n", "# (Hyper)parameter grid\n", "p_grid = {\n", " \"n_neighbors\": [1, 3, 5, 7, 9]\n", "}\n", "\n", "knnr = KNeighborsRegressor()\n", "grid_search = GridSearchCV(estimator=knnr, param_grid=p_grid, cv=inner_cv_iterator)\n", "\n", "cross_val_score(estimator=grid_search, X=X, y=y, cv=outer_cv_iterator)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Python 3", "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.7.3" }, "livereveal": { "start_slideshow_at": "selected" } }, "nbformat": 4, "nbformat_minor": 2 }