{ "cells": [ { "cell_type": "code", "execution_count": 18, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:08:57.540520Z", "start_time": "2022-01-26T15:08:57.529542Z" } }, "outputs": [], "source": [ "import numpy as np \n", "import pandas as pd \n", "\n", "from sklearn.pipeline import make_pipeline\n", "\n", "from sklearn.preprocessing import PolynomialFeatures \n", "from sklearn.linear_model import LogisticRegression\n", "from sklearn.linear_model import LinearRegression, Ridge\n", "\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.metrics import mean_squared_error as mse\n", "\n", "import matplotlib.pyplot as plt\n", "\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Interactive outputs of notebook" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "There are many applications in which you can run your Python code, such as IDE and Notebooks, We choose notebooks for some reasons,\n", "\n", "- Notebook combined with Python provides a quite efficient toolkit for prototyping.\n", "\n", "- Notebook can provide fully interactive outputs, you can write/change the code and observe (print) the effects immediately, without running the entire \"program\".\n", "\n", "That means:\n", "\n", "- After you execute a statement, e.g., defining a variable and giving it a value, you can (and perhaps should) immediately just check the value by printing it.\n", "\n", "- Write some code (or change some code), you can observe the results immediately (fix/modify as you go).\n" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:08:58.340105Z", "start_time": "2022-01-26T15:08:58.315207Z" } }, "outputs": [ { "data": { "text/plain": [ "array([1, 2, 3, 5])" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A = 3\n", "# print(A)\n", "\n", "B = 0.1\n", "# print(B)\n", "\n", "C = [1,2,3,5]\n", "# print(C)\n", "\n", "D = np.array([1,2,3,5])\n", "# print(D)\n", "\n", "A\n", "D" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:08:59.233491Z", "start_time": "2022-01-26T15:08:59.224279Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1, 2, 3, 5]\n", "[1 2 3 5]\n" ] } ], "source": [ "# print() vs type()\n", "print(C)\n", "print(D)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:08:59.249304Z", "start_time": "2022-01-26T15:08:59.239659Z" } }, "outputs": [ { "data": { "text/plain": [ "list" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(C)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:08:59.261227Z", "start_time": "2022-01-26T15:08:59.253922Z" } }, "outputs": [ { "data": { "text/plain": [ "numpy.ndarray" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(D)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:08:59.471281Z", "start_time": "2022-01-26T15:08:59.447742Z" } }, "outputs": [], "source": [ "def sum_num(X):\n", " s = np.sum(X)\n", " return s" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:08:59.626245Z", "start_time": "2022-01-26T15:08:59.609415Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1, 2, 3, 5]\n" ] }, { "data": { "text/plain": [ "11" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print(C)\n", "sum_num(C)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:08:59.824896Z", "start_time": "2022-01-26T15:08:59.817173Z" } }, "outputs": [], "source": [ "# misusing of print() and return\n", "\n", "def func1(X):\n", " m = np.mean(X)\n", " return m\n", "\n", "def func2(X):\n", " m = np.mean(X)\n", " print(m)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:08:59.972948Z", "start_time": "2022-01-26T15:08:59.955181Z" } }, "outputs": [ { "data": { "text/plain": [ "3.0" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "func1(A)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:09:00.159474Z", "start_time": "2022-01-26T15:09:00.145359Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3.0\n" ] } ], "source": [ "func2(A)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:09:04.079833Z", "start_time": "2022-01-26T15:09:04.073775Z" }, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "3.0\n" ] } ], "source": [ "output1 = func1(A)\n", "output2 = func2(A)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:09:04.090630Z", "start_time": "2022-01-26T15:09:04.084359Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "output1 is: 3.0\n", "output2 is: None\n" ] } ], "source": [ "print(\"output1 is: \",output1)\n", "print(\"output2 is: \",output2)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:09:05.350178Z", "start_time": "2022-01-26T15:09:05.331530Z" } }, "outputs": [ { "data": { "text/plain": [ "numpy.float64" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(output1)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:09:05.380510Z", "start_time": "2022-01-26T15:09:05.360329Z" } }, "outputs": [ { "data": { "text/plain": [ "NoneType" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(output2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# ML diagnosis:underfitting and overfitting\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Learning goals\n", "- Train a model on the training set, and then compute train/validation error/accuracy to detect underfitting/overfitting\n", "- Use k-fold CV as a more advanced version of single train/val \n", "- Select between different models based on validation error/accuracy\n", "\n", "- Understand how model size influence the performance of a model\n", "- Understand how regularization strength influence the performance of a model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Underfitting and overfitting of regression task\n", "**Using simulated dataset to illustrate how model size(polynomial degree)and regularization strength affect model's performance on training set and validation set:model being underfitted, overfitted or properly fitted:**\n", "\n", "- The left plot shows a properly fitted model.\n", "\n", "- The right plot is for you to play around, you can try out different values for poly degree, alpha to see the effect." ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:09:06.225591Z", "start_time": "2022-01-26T15:09:06.161888Z" } }, "outputs": [], "source": [ "def make_data(N=30, err=0.8, seed=1):\n", " \n", " \"\"\"Use a complicated function to simulate real-life dataset:intrinsic relation + noise\"\"\" \n", " \n", " rng = np.random.RandomState(seed)\n", " X = rng.rand(N, 1) ** 2\n", " y = 10 - 1. / (X.ravel() + 0.1) # intrinsic relation between X and y\n", " y += err * rng.randn(N) # noise \n", " return X, y\n", "\n", "# err is std of noise, that means err**2 is the variance of y given x, i.e. Bayes error\n", "\n", "def PolynomialRegression(degree=1, regularization=True, alpha=None):\n", " \n", " \"concatenate polynomial feature transformer and linear models to facilitate hyperparamter tuning\"\n", " \n", " if regularization==True:\n", " return make_pipeline(PolynomialFeatures(degree),\n", " Ridge(alpha=alpha,fit_intercept=False))\n", " else:\n", " return make_pipeline(PolynomialFeatures(degree),\n", " LinearRegression(fit_intercept=False))\n", " \n", "def plot_underfit_overfit():\n", " fig, ax = plt.subplots(1, 2, figsize=(14, 5))\n", " fig.subplots_adjust(left=0.0625, right=0.95, wspace=0.1)\n", " \n", " xfit = np.linspace(-0.1, 1.0, 1000)[:, None]\n", " ax[0].scatter(X.ravel(), y, s=40, c='blue',label='training set')\n", " ax[0].plot(xfit.ravel(), model1.predict(xfit), color='gray',label='h(x)')\n", " ax[0].axis([-0.1, 1.0, -2, 14])\n", " ax[0].set_title('MSE on training set: {:.5}\\n MSE on val set: {:.5}'.format(train_mse1,val_mse1),fontsize=14)\n", " ax[0].scatter(X_val.ravel(), y_val, s=40, c='red',label='validation set')\n", " ax[0].set_xlabel('X (Feature)')\n", " ax[0].set_ylabel('y (label)')\n", " ax[0].legend(loc=\"lower right\")\n", "\n", " ax[1].scatter(X.ravel(), y, s=40, c='blue',label='training set')\n", " ax[1].plot(xfit.ravel(), model2.predict(xfit), color='gray',label='h(x)')\n", " ax[1].axis([-0.1, 1.0, -2, 14])\n", " ax[1].set_title('MSE on training set: {:.5}\\n MSE on val set: {:.5}'.format(train_mse2,val_mse2),fontsize=14)\n", " ax[1].scatter(X_val.ravel(), y_val, s=40, c='red',label='validation set')\n", " ax[1].set_xlabel('X (Feature)')\n", " ax[1].legend(loc=\"lower right\")\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:16:59.951677Z", "start_time": "2022-01-26T15:16:59.095669Z" }, "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Bayes Error: 0.6400000000000001\n" ] }, { "data": { "image/png": "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8xTjNI291b/ujUEeo844QzCcwAn3o8D/AgkB62Ti3Lt0Aaejke3ATwOW98cJpEIChjXACeoXa/lsLXH+eSm7b+dDnCZQgetY4CcBr1NxOgv5yv9zPAT8HEgMWMf4j/lJ/7FZTsBQDXX9XfKvcyNXDhPUwf/ZPf5j8ylwXbj/NjRp0qSpLlMQWVFhOcrTqrYddXnqnzfBP39UNdt9wH9cLvoz9XdA60rr/CNOk+9LONn8n0CLupQPp0n4Fv/PvOzYfBeID/ffh6bonIy1gbc1iIiIiIiIiEQn3YMrIiIiIiIiMaHRK7jGmHnGmGz/GFqVl33PGGMD7m8TERGRaihTRUREatYUV3Bf5HJ36+WMMT1weio92gRlEBERiQUvokwVERGpVqNXcK21K4BzVSyaDfwrFcc2ExERkWooU0VERGoWlntwjTFTgRPW2m3h2L+IiEisUKaKiIhc1uTj4BpjkoEf4jSlCmb9p4GnAVJSUjKuueaaRiydiIhI6DZt2nTGWtuxqfanTBURkVgVaqY2eQUX6Av0BrY540vTHdhsjBllrT1VeWVr7XPAcwCZmZl248aNTVlWERGRoBljvmriXSpTRUQkJoWaqU1ewbXWbgc6lb02xhzBGTj7TFOXRUREJJopU0VERCpqimGCXgPWAAOMMceNMTMae58iIiKxSJkqIiJSs0a/gmutfbiW5b0auwwiIiKxQJkqIiJSs7D0oiwiIiIiIiLS0FTBFRERERERkZigCq6IiIiIiIjEBFVwRUREREREJCaogisiIiIiIiIxQRVcERERERERiQmq4IqIiIiIiEhMUAVXREREREREYoIquCIiIiIiIhITVMEVERERERGRmKAKroiIiIiIiMQEVXBFREREREQkJqiCKyIiIiIiIjFBFVwRERERERGJCargioiIiIiISExQBVdERERERERigiq4IiIiIiIiEhNUwRUREREREZGYoAquiIiIiIiIxARVcEVERERERCQmqIIrIiIiIiIiMUEVXBEREREREYkJquCKiIiIiIhITFAFV0RERERERGKCKrgiIiIiIiISExq9gmuMmWeMyTbG7AiY9wtjzB5jzJfGmPeMMW0auxwiIiLRTpkqIiJSs6a4gvsiMLnSvCXAEGvtMGAf8IMmKIeIiEi0exFlqoiISLUavYJrrV0BnKs0b7G11ut/uRbo3tjlEBERiXbKVBERkZpFwj2404FPwl0IERGRGKBMFRGRZi2sFVxjzI8AL/BKDes8bYzZaIzZmJOT03SFExERiSLKVBERkTBWcI0x04DbgUestba69ay1z1lrM621mR07dmyy8omIiEQLZaqIiIgjPhw7NcZMBv4VGG+tLQxHGURERGKBMlVEROSyphgm6DVgDTDAGHPcGDMD+B2QCiwxxmw1xvypscshIiIS7ZSpIiIiNWv0K7jW2oermD23sfcrIiISa5SpIiIiNYuEXpRFRERERERE6k0VXBEREREREYkJquCKiIiIiIhITFAFV0RERERERGKCKrgiIiIiIiISE1TBFRERERERkZigCq6IiIiIiIjEBFVwRUREREREJCaogisiIiIiIiIxQRVcERERERERiQmq4IqIiIiIiEhMUAVXREREREREYoIquCIiIiIiIhITVMEVERERERGRmKAKroiIiIiIiMQEVXBFREREREQkJqiCKyIiIiIiIjFBFVwRERERERGJCargioiIiIiISExQBVdERERERERiQny4CyAiIiIiIiICYK3lyy+/DPn9uoIrIiIiIiIiEWHnzp28//77Ib9fFVwREREREREJu5KSEj799FO6dOkS8jZUwRUREREREZGwW716NXl5edx6660hb0MVXBFpUB4P7NvnPIqIiEjolKnSnJw7d44vvviCwYMH06tXr5C30+gVXGPMPGNMtjFmR8C8dsaYJcaY/f7Hto1dDhFpXF4vzJwJnTpBRobzOHOmM19EGoYyVaR5UKZKc2Ot5eOPP8blctXr6i00zRXcF4HJleZ9H/jMWtsP+Mz/WkSi2KxZMG8eFBU5Z5qLipzXs2aFu2QiMeVFlKkiMU+ZKs3Nrl27OHjwIBMnTiQ1NbVe22r0Cq61dgVwrtLsqcBf/c//CtzV2OUQkcbj8cDcuVBYWHF+YaEzX02rRBqGMlUk9ilTpbkpKipi4cKFdO3alWuvvbbe2wvXPbidrbUn/c9PAZ3DVA4RaQBZWeByVb3M5XKWi0ijUaaKxBBlqjQ3n3zyCYWFhdx+++3ExdW/ehr2TqastRaw1S03xjxtjNlojNmYk5PThCUTkWClpYHPV/Uyn89ZLiKNT5kqEv2UqdKc7Nq1i+3btzN27FjSGuiXO1wV3NPGmK4A/sfs6la01j5nrc201mZ27NixyQooIsFz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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "## Try different hyperparameters to tune model complexity and regularization strength \n", "## and illustrate underfitting/overfitting\n", "\n", "DEGREE = 15 # Polynomial degree to control the size of the model\n", "R = True # Regularize or not, If True, use Ridge model(L_2 regularizetion), if False, use plain linear regression model\n", "ALPHA = 0.001 # Manipulate the regularization strength of Ridge, larger values specify stronger regularization\n", "\n", "N = 45\n", "ERR = 0.8 # std of noise, ERR**2 is variance of y given x, i.e. Bayes error / irreducible error\n", "X, y = make_data(N=N, err=ERR, seed=8)\n", "\n", "X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.4, random_state=0) # training, val set split\n", "\n", "model1 = PolynomialRegression(degree = 3,regularization=False,alpha=None).fit(X_train, y_train) #train a linear regression model\n", "model2 = PolynomialRegression(degree = DEGREE,regularization=R,alpha=ALPHA).fit(X_train, y_train) #train a Ridge model\n", "\n", "y1 = model1.predict(X_train); train_mse1 = mse(y1,y_train); y2 = model2.predict(X_train); train_mse2 = mse(y2,y_train)\n", "y1_val = model1.predict(X_val); val_mse1 = mse(y1_val,y_val); y2_val = model2.predict(X_val); val_mse2 = mse(y2_val,y_val)\n", "\n", "print(\"Bayes Error:\",ERR**2) # Bayes error / noise / irreducible error\n", "# Bayes error is the lowest possible prediction error that can be achieved and is the same as irreducible error \n", "plot_underfit_overfit()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**The figure below** shows\n", "training MSE decreases monotonically as the polynomial degree increases, while validation MSE initially decreases but eventually starts to increase again.\n", "\n", "[sklearn.model_selection.cross_validate](https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.cross_validate.html) is used here to do k-fold cross validation to make the code concise, it is efficient, but wraps all details. If you don't understand this block of code, no worries, in assignment4, you will see a detailed demo of k-fold cross validation." ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:24:03.991281Z", "start_time": "2022-01-26T15:24:03.315953Z" }, "scrolled": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmEAAAGpCAYAAADFpuEPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABZPklEQVR4nO3dd3iUZdbH8e8hBEInQJSqFE1EyIAQEcWG2NaCiw27uCq2Xcurrh3F3tZVsaKiqIgF69obdlGKCAgoKIhUA9J7yP3+cU/CJEySScjkmUl+n+uaa542z5yZUE7ucm5zziEiIiIiVatW0AGIiIiI1ERKwkREREQCoCRMREREJABKwkREREQCoCRMREREJAC1gw6gvFq0aOHat28fdBgiIiIiZZo4ceJS51xGtHNJl4S1b9+eCRMmBB2GiIiISJnM7PeSzqk7UkRERCQASsJEREREAqAkTERERCQASTcmTEREpLravHkz8+fPZ8OGDUGHIuWUlpZG27ZtSU1Njfk1SsJEREQSxPz582nUqBHt27fHzIIOR2LknGPZsmXMnz+fDh06xPw6dUeKiIgkiA0bNtC8eXMlYEnGzGjevHm5WzCVhImIiCQQJWDJqSI/NyVhIiIiIgFQEiYiIiIArFixgkceeaRCrz3iiCNYsWJFqdcMGTKEjz/+uEL3r46UhImIiAhQehKWl5dX6mvfffddmjZtWuo1N998MwcffHBFwyu3LVu2lLof6+viRUmYiIiIAHD11Vfz66+/0r17d6688ko+++wz9ttvP/r378/uu+8OwN///nd69uxJly5dGD58eOFr27dvz9KlS5k7dy6dO3fm3HPPpUuXLhx66KGsX78egEGDBjFmzJjC62+88UZ69OhBdnY2M2fOBCA3N5dDDjmELl26cM4557DzzjuzdOnSbWL98MMP2XvvvenRowcnnHACa9asKbzvVVddRY8ePXjllVe22R89ejTZ2dl07dqVq666qvB+DRs25PLLL6dbt258++238fmCi1GJChERkUR06aUweXLl3rN7d7j//hJP33nnnUybNo3J4ff97LPPmDRpEtOmTSssvTBixAiaNWvG+vXr2XPPPTnuuONo3rx5kfvMmjWL0aNH88QTT3DiiSfy6quvctppp23zfi1atGDSpEk88sgj3HvvvTz55JMMHTqUgw46iGuuuYb333+fp556apvXLV26lFtvvZWPP/6YBg0acNddd3HfffcxZMgQAJo3b86kSZMAn1gW7C9cuJDevXszceJE0tPTOfTQQ3njjTf4+9//ztq1a9lrr734z3/+U4EvtmLUEiYiIiIl6tWrV5HaVw8++CDdunWjd+/e/PHHH8yaNWub13To0IHu3bsD0LNnT+bOnRv13scee+w213z11VecdNJJABx++OGkp6dv87px48Yxffp0+vTpQ/fu3Rk5ciS//751neyBAwcWub5gf/z48Rx44IFkZGRQu3ZtTj31VL744gsAUlJSOO6442L4RiqPWsJEREQSUSktVlWpQYMGhdufffYZH3/8Md9++y3169fnwAMPjFobq27duoXbKSkphd2RJV2XkpJS5pizSM45DjnkEEaPHl1mzNH2o0lLSyMlJSXmGCqDWsKK2bQJpk6FlSuDjkRERKRqNWrUiNWrV5d4fuXKlaSnp1O/fn1mzpzJuHHjKj2GPn368PLLLwN+3Nfy5cu3uaZ37958/fXXzJ49G4C1a9fyyy+/lHnvXr168fnnn7N06VK2bNnC6NGjOeCAAyr3A5SDkrBifvwRQiEYOzboSERERKpW8+bN6dOnD127duXKK6/c5vzhhx9OXl4enTt35uqrr6Z3796VHsONN97Ihx9+SNeuXXnllVdo2bIljRo1KnJNRkYGzzzzDCeffDKhUIi99967cGB/aVq1asWdd95J37596datGz179uSYY46p9M8QK3POBfbmFZGTk+MmTJgQt/uvXAlNm8Jdd8G//x23txEREdnGjBkz6Ny5c9BhBGrjxo2kpKRQu3Ztvv32Wy644ILCiQKJLtrPz8wmOudyol0ftzFhZpYGfAHUDb/PGOfcjcWuGQTcAywIH3rIOfdkvGKKRZMmsOOO8PPPQUYhIiJSM82bN48TTzyR/Px86tSpwxNPPBF0SHETz4H5G4GDnHNrzCwV+MrM3nPOFe9Afsk59884xlFumZlKwkRERIKw66678sMPPwQdRpWI25gw560J76aGH0nR95mVBTGM7xMRERGpsLgOzDezFDObDPwJfOSc+y7KZceZ2RQzG2Nm7Uq4z2Azm2BmE3Jzc+MZMuCTsNxciDIhQ0RERKRSxDUJc85tcc51B9oCvcysa7FL/ge0d86FgI+AkSXcZ7hzLsc5l5ORkRHPkAHfHQlqDRMREZH4qZISFc65FcBY4PBix5c55zaGd58EelZFPGXJyvLPGhcmIiIi8RK3JMzMMsysaXi7HnAIMLPYNa0idvsDM+IVT3l06AApKWoJExERKUvDhg0BWLhwIccff3zUaw488EDKKi91//33s27dusL9I444ghUrVlRanIkoni1hrYCxZjYFGI8fE/a2md1sZv3D11xsZj+Z2Y/AxcCgOMYTszp1oGNHtYSJiIjEqnXr1owZM6bCry+ehL377rs0bdq0EiIrW/Elk2JdQqk8Sy1FE8/ZkVOcc3s450LOua7OuZvDx4c4594Kb1/jnOvinOvmnOvrnCu73G0VUZkKERGpaa6++moefvjhwv2bbrqJe++9lzVr1tCvXz969OhBdnY2b7755javnTt3Ll27+qHf69ev56STTqJz584MGDCgyNqRF1xwATk5OXTp0oUbb/TlQx988EEWLlxI37596du3LwDt27dn6dKlANx333107dqVrl27cn94Tc25c+fSuXNnzj33XLp06cKhhx4adY3K3NxcjjvuOPbcc0/23HNPvv7668LPdvrpp9OnTx9OP/30bfbnzp3LQQcdRCgUol+/fsybNw+AQYMGcf7557PXXnvx7+2s6q4FvEuQlQWffAL5+VBLizuJiEgVu/RSqOxC8d27l74u+MCBA7n00ku56KKLAHj55Zf54IMPSEtL4/XXX6dx48YsXbqU3r17079/f8ws6n0effRR6tevz4wZM5gyZQo9evQoPHfbbbfRrFkztmzZQr9+/ZgyZQoXX3wx9913H2PHjqVFixZF7jVx4kSefvppvvvuO5xz7LXXXhxwwAGkp6cza9YsRo8ezRNPPMGJJ57Iq6++ymmnnVbk9ZdccgmXXXYZ++67L/PmzeOwww5jxgw/+mn69Ol89dVX1KtXj5tuuqnI/tFHH82ZZ57JmWeeyYgRI7j44ot54403AJg/fz7ffPPNdi/4rSSsBFlZsGED/PEH7Lxz0NGIiIjE3x577MGff/7JwoULyc3NJT09nXbt2rF582auvfZavvjiC2rVqsWCBQtYsmQJLVu2jHqfL774gosvvhiAUChEKBQqPPfyyy8zfPhw8vLyWLRoEdOnTy9yvrivvvqKAQMG0KBBAwCOPfZYvvzyS/r370+HDh3o3r07AD179mTu3LnbvP7jjz9m+vTphfurVq1izRpfxrR///7Uq1ev8Fzk/rfffstrr70GwOmnn16k1euEE07Y7gQMlISVKLJMhZIwERGpaqW1WMXTCSecwJgxY1i8eDEDBw4EYNSoUeTm5jJx4kRSU1Np3749GzZsKPe958yZw7333sv48eNJT09n0KBBFbpPgbp16xZup6SkRO2OzM/PZ9y4caSlpW1zriCxK2m/JLFeVxZ1tJVAZSpERKQmGjhwIC+++CJjxozhhBNOAGDlypXssMMOpKamMnbsWH7//fdS77H//vvzwgsvADBt2jSmTJkC+FaoBg0a0KRJE5YsWcJ7771X+JpGjRqxevXqbe6133778cYbb7Bu3TrWrl3L66+/zn777Rfz5zn00EMZNmxY4X6si4Hvs88+vPjii4BPQsvznrFSS1gJWraEhg1VpkJERGqWLl26sHr1atq0aUOrVr6S1KmnnsrRRx9NdnY2OTk57LbbbqXe44ILLuCss86ic+fOdO7cmZ49fRnQbt26sccee7DbbrvRrl07+vTpU/iawYMHc/jhh9O6dWvGjh1beLxHjx4MGjSIXr16AXDOOeewxx57RO16jObBBx/koosuIhQKkZeXx/77789jjz1W5uuGDRvGWWedxT333ENGRgZPP/10TO9XHuZcUiznWCgnJ8eVVWuk8t4LmjeHDz6okrcTEZEabsaMGXTu3DnoMKSCov38zGyicy4n2vXqjiyFylSIiIhIvCgJK0VWFsybB1HG+YmIiIhsFyVhpcjKAudg9uygIxEREZHqRklYKSLLVIiIiIhUJiVhpShIwjQuTERERCqbkrBSNGwIrVurJUxEREQqn5KwMmRlqSVMRERqjpSUFLp37063bt3o0aMH33zzTdAhVVtKwspQkIQlWTk1ERGRCqlXrx6TJ0/mxx9/5I477uCaa64JOqSo8vLySt2P9XVBUhJWhsxMWL4cli0LOhIREZGqtWrVKtLT0wFYs2YN/fr1o0ePHmRnZ/Pmm28CMGTIEO6PWOjyuuuu44EHHgDgnnvuYc899yQUCnHjjTcCsHbtWo488ki6detG165deemll7Z5319//ZXDDz+cnj17st9++zFz5kwABg0axPnnn89ee+3Fv//97232J0+eTO/evQmFQgwYMIDly5cDcOCBB3LppZeSk5NTGFsi0LJFZYhcQ7JFi2BjERGRmsWGWonnHj/qcQb3HAzA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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from sklearn.model_selection import cross_validate\n", "\n", "# cross_validate() expects a scorer object for the parameter scoring. All scorer objects follow the convention \n", "# that higher return values are better than lower return values, so \"neg_mean_squared_error\" is returned here\n", "# see https://scikit-learn.org/stable/modules/model_evaluation.html for more details\n", "ERR = 0.8\n", "X, y = make_data(45,err=ERR,seed=8) # generate dataset\n", "def plot_errors_reg():\n", " fig, axs = plt.subplots(figsize=(10,7))\n", " train_errs = []\n", " val_errs = []\n", " degrees = range(1,15)\n", " for degree in degrees :\n", " # Sklearn use \"estimator\" to refer to regressor/classifier\n", " estimator = PolynomialRegression(degree = degree,regularization=False,alpha=None) # initialize a regressor\n", " \n", " # cross_validate() returns a dictionary of arrays containing the training scores, validation scores, etc.\n", " cv_results = cross_validate(estimator, X, y, cv=5,scoring=\"neg_mean_squared_error\",return_train_score=True)\n", " \n", " average_train_error = (-cv_results['train_score']).mean() # calculate averaged train error of k folds\n", " average_val_error = (-cv_results['test_score']).mean() # calculate averaged validation error of k folds\n", " \n", " train_errs.append(average_train_error) # stack training errors into a list\n", " val_errs.append(average_val_error)# stack validation errors into a list\n", " \n", " axs.plot(degrees,train_errs,color='red',label='training error')\n", " axs.plot(degrees,val_errs,color='blue',label='validation error')\n", " axs.axhline(y=ERR**2,linewidth=2, color='g',ls=\"--\",label=\"Bayes error\")\n", " axs.set_xlabel('Degree of polynomial (model size)')\n", " axs.set_ylabel('Mean Squared Error (MSE)')\n", " axs.legend()\n", " \n", "plot_errors_reg()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## You try it\n", "Try to plot a figure showing how regularization strength (alpha) influences the performance of a model, i.e. how training error and validation error evolves.\n", "\n", "Use a larger polynomial degree, say 10, and then change alpha in $[10^{-4},10^{-3},10^{-2},10^{-1},1,10,10^{2}]$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Automatically search for best hyperparameters (polynomial degree and alpha)\n", "GridSearchCV provides efficient method to search for best hyperparameters." ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:27:39.282443Z", "start_time": "2022-01-26T15:27:39.278704Z" } }, "outputs": [], "source": [ "from sklearn.model_selection import GridSearchCV" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:29:12.039307Z", "start_time": "2022-01-26T15:29:11.687553Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The lowest MSE we can get on validation set is: 0.8077153847079636\n", "It's corresponding polynomial degree is: {'polynomialfeatures__degree': 3}\n" ] } ], "source": [ "parameters = {'polynomialfeatures__degree':range(1,15)} # parameter range we want to search\n", "\n", "# Sklearn use \"estimator\" to refer to regressor/classifier\n", "estimator = PolynomialRegression(regularization=False) # initialize a regressor\n", "\n", "# Similarly,GridSearchCV() also expects a scorer object for the parameter scoring\n", "regr = GridSearchCV(estimator=estimator,scoring = \"neg_mean_squared_error\",param_grid=parameters,cv=5)\n", "regr.fit(X,y)\n", "\n", "print(\"The lowest MSE we can get on validation set is: \",-regr.best_score_)\n", "print(\"It's corresponding polynomial degree is: \", regr.best_params_)" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:29:16.076530Z", "start_time": "2022-01-26T15:29:13.336187Z" }, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The lowest MSE we can get on validation set is: 0.8039945063359261\n", "It's corresponding polynomial degree is: {'polynomialfeatures__degree': 4, 'ridge__alpha': 0.0001}\n" ] } ], "source": [ "parameters = {'polynomialfeatures__degree':range(1,15),'ridge__alpha': np.logspace(-5,5,11)}\n", "estimator = PolynomialRegression(regularization=True)\n", "\n", "regr = GridSearchCV(estimator=estimator,scoring = \"neg_mean_squared_error\",param_grid=parameters,cv=5)\n", "regr.fit(X,y)\n", "\n", "print(\"The lowest MSE we can get on validation set is: \",-regr.best_score_)\n", "print(\"It's corresponding polynomial degree is: \", regr.best_params_)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Underfitting and overfitting of classification task\n", "**Using a dataset from Kaggle to illustrate how model size(polynomial degree)and regularization strength affect model's performance on training set and validation set:model being underfitted, overfitted or properly fitted**" ] }, { "cell_type": "code", "execution_count": 50, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:30:47.502840Z", "start_time": "2022-01-26T15:30:46.989010Z" }, "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#Load Dataset for Logistic Regression\n", "data = pd.read_csv('ex2data2.txt', header=None, names = ['feature 1', 'feature 2', 'faulty'])\n", "data = data.sample(80,random_state=2) #randomly select 80 samples\n", "\n", "pos = data['faulty'] == 1 \n", "neg = data['faulty'] == 0\n", "\n", "# Visualize the dataset\n", "fig, axes = plt.subplots();\n", "axes.set_xlabel('Feature 1')\n", "axes.set_ylabel('Feature 2')\n", "axes.scatter(data.loc[pos, 'feature 1'], data.loc[pos, 'feature 2'], color = 'r', marker='x', label='Faulty')\n", "axes.scatter(data.loc[neg, 'feature 1'], data.loc[neg, 'feature 2'], color = 'g', marker='o', label='Good')\n", "axes.legend(title='Legend', loc = 'best' )" ] }, { "cell_type": "code", "execution_count": 55, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:36:32.549687Z", "start_time": "2022-01-26T15:36:32.538109Z" } }, "outputs": [], "source": [ "## construct training and test set\n", "X = data.iloc[:, :2].to_numpy() # construct feature matrix, X.shape==(80,2), y.shape==(80,)\n", "y = data.iloc[:,-1].to_numpy() # construct label vector\n", "\n", "X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.4, random_state=42) # training, val set split\n", "\n", "tr_p_idx = np.where(y_train == 1)[0] # indices of faulty samples in training set\n", "tr_n_idx = np.where(y_train == 0)[0] # indices of good samples in training set\n", "te_p_idx = np.where(y_val == 1)[0] # indices of faulty samples in val set\n", "te_n_idx = np.where(y_val == 0)[0] # indices of good samples in val set" ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:36:34.651662Z", "start_time": "2022-01-26T15:36:34.596964Z" } }, "outputs": [], "source": [ "def polt_logistic_boundary(clf):\n", " \n", " def Boundary(theta, axes):\n", "\n", " \"\"\"Plot the decision boundary\"\"\"\n", "\n", " u = np.linspace(-0.75, 1, 50)\n", " v = np.linspace(-0.75, 1, 50)\n", " U,V = np.meshgrid(u,v)\n", " # convert U, V to vectors for calculating additional features\n", " # using vectorized implementation\n", " U = np.ravel(U)\n", " V = np.ravel(V)\n", " Z = np.zeros((len(u) * len(v)))\n", "\n", " F = np.array([U,V]).T # concatenate U, V to create feature matrix\n", " F_p = poly.fit_transform(F) \n", " Z = F_p.dot(theta.T) # Z(F_p) \n", "\n", " # reshape U, V, Z back to matrix\n", " U = U.reshape((len(u), len(v)))\n", " V = V.reshape((len(u), len(v)))\n", " Z = Z.reshape((len(u), len(v)))\n", "\n", " cs = axes.contour(U,V,Z,levels=[0],cmap= \"Greys_r\")\n", " axes.legend(labels=['good', 'faulty', 'Decision Boundary'])\n", " return cs\n", " \n", " fig, axes = plt.subplots(1,2)\n", " fig.set_size_inches(15, 5)\n", " axes[0].set_xlabel('Feature 1')\n", " axes[0].set_ylabel('Feature 2')\n", " axes[0].scatter(X_train[tr_p_idx,0], X_train[tr_p_idx, 1], color = 'r', marker='x', label='Faulty')\n", " axes[0].scatter(X_train[tr_n_idx,0], X_train[tr_n_idx, 1], color = 'g', marker='o', label='Good')\n", " axes[0].legend(title='Legend', loc = 'best' )\n", " axes[0].set_title('accuracy on training set: {}'.format(clf.score(X_poly,y_train)),fontsize=14)\n", " Boundary(clf.coef_, axes[0])\n", "\n", " axes[1].set_xlabel('Feature 1')\n", " axes[1].set_ylabel('Feature 2')\n", " axes[1].scatter(X_val[te_p_idx,0], X_val[te_p_idx, 1], color = 'orange', marker='x', label='Faulty')\n", " axes[1].scatter(X_val[te_n_idx,0], X_val[te_n_idx, 1], color = 'b', marker='o', label='Good')\n", " axes[1].legend(title='Legend', loc = 'best' )\n", " axes[1].set_title('accuracy on validation set: {}'.format(clf.score(poly.transform(X_val),y_val)),fontsize=14)\n", " Boundary(clf.coef_, axes[1])\n", " \n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 65, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:39:31.603620Z", "start_time": "2022-01-26T15:39:31.085921Z" }, "scrolled": false }, "outputs": [ { "data": { "image/png": "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SRCRNBFJ279/v93hBJTt24tXrpQKXIFcP2oiqZTyCduzCv6GVVi5Kjl3dyG+55572Lp1K9dccw2jR4/m0ksvpV27dnTt2pWNGzcCMGnSJB544IEz51x//fXMmzcvz/s89thjbNmyhbZt2/Loo49y55138vXXX595PT4+nm+++aZUsQaQXUB9l/16jrLCys9hjJlgjIkzxsRVr17dY4EGo6io4pXbzpjz7ysVJNw9tjnQ60dNJJVSPiEqouBvWIWVq5LxRBfid955hzp16jB37lzuvfdefv75Z1asWMGzzz7LE088UeT3eemll2jUqBErV65kzJgxDBs2jEmTJgGQlZXFwoULue6660ocZ4CZBtzpmL21C5BljNkN/ABcJSJVHJPsXOUoU16UkgLh4XnLwsOtcp+zOhmWjzybPBpj7a9Oti8mpWzgibHNgV4/aiKplPIJKb1SCA/L+80rPCyclF6++M3Lf3m6C3FWVhb9+/fnkksuYeTIkaxdu7bE79WjRw82bdrE/v37+eyzz7jlllsoUyY4lj8Wkc+ARUCsiOwUkWEico+I3OM45DtgK7AZeA+4D8AYcxB4Dljq2J51lCkvio+HCRMgOtpazzw62tovwRApzzIGcjJh4/izyeTykdZ+Tqa2TKqg4umxzYFYPwZHjayUKpLUNakkzUlie9Z2oiKiSOmVQnwr73zzcV7HrusHC093IX7qqae44oormDp1Kunp6fTs2ROAMmXKkJube+a448ePF+n97rzzTj755BM+//xzJk6c6JYY/YExZuAFXjfA/YW89iHwoSfiUkUXH++DiWN+ItB+rPV843hrA4hNtMpF7ItNKS/z9NjmQKwfNZFUSgFnuzw6W6ucXR4BryaTmjh6VlREFBlZGQWWu0NWVhZ161qThDq73YA189xbb71Fbm4uu3bt4tdffz3n3MqVK/PXX3/lKRsyZAidOnWiVq1atGjRwi0xKqVcOJNJZxIJmkSqoBQVZXVnLajcHQKxftSurUopQGdNDRae7kL8r3/9i8cff5x27dpx6tSpM+XdunWjQYMGtGjRggcffJD27dufc261atXo1q0bl1xyCY8++igANWvWpHnz5gwdOtQt8Sml8nF2Z3XlOmZSqSDh6bHNgVg/igmiPxRxcXEmLS3N7jCU8kkhz4RgOPfvgSDkjsot4Az/YGd3XW9Zv349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ik0RedbatWtZsmQJw4YN0yRSqUDjI/VD5cqV+fLLL3nmmWf45JNP6Natm09/IVbK16xatSooWiNBE0mlAIiLi2P58uXcf//9jBs3jri4OFasWGF3WOoC4lvFM+GGCURHRCMI0RHRTLhhAvGt4u0OzSM++OADwsLCuOOOO+wORSkVwEJCQnj66aeZPn06W7dupUOHDsycOdPusJTyeUeOHOH333+nbdu2dofiFZpIKuUQHh7OG2+8wffff8+hQ4fo1KkTzz33HDk5OXaHps4jvlU86Q+lkzsql/SH0gM2iTx58iQff/wxN954I9WrV7c7HKVUELjuuutIS0ujXr16XHvttTz77LPk5ubaHZZSPmvZsmXk5ubSqVMnu0PxCk0klcqnb9++rFmzhv79+/P0009z6aWX8ttvup63ste0adP4888/GTZsmN2hKKWCSOPGjVm0aBGDBg1i1KhR3HDDDRw8eNDusJTySUuWLAHQRFKpYFatWjU+/fRT/u///o+MjAzatWvH008/zfHjx+0OTQWpt956i/r163PVVVfZHYpSKsiEh4fz0Ucf8dZbbzFr1iw6dOiATs6k1LmWLFlCw4YNg6bnkCaSSp3Hrbfeyvr16xk4cCDPPfccbdu25eeff7Y7LBVkVq9ezdy5c7n//vsJDQ21OxylVBASEe69917mz5/P6dOn6datG2+88YYuEaKUi19//ZXOnTsX6djUVIiJgZAQ6zE11aOheYQtiaSIVBWRWSKyyfFYpZDjTovISsc2zaW8gYgsEZHNIjJZRMp6L3oVbC6++GL++9//MnPmTI4fP87ll19OQkKCZ9edVMrFa6+9RoUKFRg+fLjdoSilglyXLl1YsWIFvXv3ZsSIEfTv35/MzEy7w1LKdjt37mTnzp1FSiRTUyEhATIyrJV+MjKsfX9LJu1qkXwMmGOMaQLMcewX5Jgxpq1ju9GlfDQw1hjTGDgE6KAh5XFXX301a9eu5Z///CcffvghzZo1IzU11TfuxuaPwRdiUm7x559/kpqayh133EHVqlXtDkcppahWrRrTp09nzJgxfPPNN7Rt25bFixfbHZZStvrpp58AuPzyyy94bFISZGfnLcvOtsr9iV2JZD/gI8fzj4CbinqiWIunXQl8UZLzlSqNihUr8p///Ie0tDRiYmIYNGgQV111Fb///rt9QSUnw8iRZ5NH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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "## Try different hyperparameters to tune model complexity and regularization strength \n", "## and illustrate underfitting/overfitting\n", "\n", "# C is the inverse of regularization strength, smaller values specify stronger regularization\n", "\n", "DEGREE = 12\n", "C = 100\n", "\n", "poly = PolynomialFeatures(degree=DEGREE) \n", "X_poly = poly.fit_transform(X_train)\n", "\n", "clf = LogisticRegression(fit_intercept=False,C=C,max_iter=1000)\n", "clf = clf.fit(X_poly,y_train)\n", "\n", "polt_logistic_boundary(clf)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**The figure below** shows\n", "training accuracy increases monotonically as the regularization penalty gets weak, while validation accuracy initially iecreases but eventually starts to decrease." ] }, { "cell_type": "code", "execution_count": 66, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:39:50.380648Z", "start_time": "2022-01-26T15:39:48.885395Z" }, "scrolled": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmcAAAGtCAYAAABTKdNeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABZNUlEQVR4nO3deZzNdfvH8ddlC2VvlbV+ZF+H3FlSItUdRWVJpdKiRXvRRlpJaV/QorJGCrcWKrflRkYhW0QKyR6ym/n8/vic4RhjzHLOnGXez8djHs75rtd8Heaaz3J9zDmHiIiIiESHPJEOQEREREQOU3ImIiIiEkWUnImIiIhEESVnIiIiIlFEyZmIiIhIFMkX6QBC5eSTT3YVKlSIdBgiIiIixzVv3rzNzrlT0toXN8lZhQoVSExMjHQYIiIiIsdlZr8fa5+6NUVERESiiJIzERERkSii5ExEREQkisTNmLO0HDhwgLVr17J3795IhyJRomDBgpQpU4b8+fNHOhQREZE0xXVytnbtWooUKUKFChUws0iHIxHmnGPLli2sXbuWihUrRjocERGRNMV1t+bevXspVaqUEjMBwMwoVaqUWlJFRCSqxXVyBigxkyPo8yAiItEu7pMzERERkVii5CyM/v77b956660snXvppZfy999/p3vMk08+yZQpU7J0fREREYlOSs7CKL3k7ODBg+meO2nSJIoXL57uMX379uWiiy7KangRcbzvW0REJLdTchZGPXv2ZOXKldSpU4eHHnqIqVOn0rRpU9q0aUO1atUAuOKKK6hfvz7Vq1dn0KBBh86tUKECmzdvZvXq1VStWpVbbrmF6tWr06pVK/bs2QNA165dGTNmzKHje/fuTb169ahZsybLli0DYNOmTbRs2ZLq1avTrVs3ypcvz+bNm4+KtXv37iQkJFC9enV69+59aPvcuXM577zzqF27Ng0bNmTnzp0kJSXx4IMPUqNGDWrVqsXrr79+RMwAiYmJNG/eHIA+ffpw3XXX0bhxY6677jpWr15N06ZNqVevHvXq1eN///vfofv169ePmjVrUrt27UPPr169eof2r1ix4oj3IiIi8SauS2kc4d57Yf780F6zTh145ZVj7n7hhRdYtGgR8wP3nTp1Kj/++COLFi06VMrh/fffp2TJkuzZs4cGDRrQvn17SpUqdcR1VqxYwYgRIxg8eDDX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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "poly = PolynomialFeatures(degree=10) \n", "X_poly = poly.fit_transform(X)\n", "\n", "def plot_accus_clf():\n", " fig, axs = plt.subplots(figsize=(10,7))\n", " \n", " train_errs = []\n", " val_errs = []\n", " \n", " Cs = np.logspace(-3, 3, num=6) # the range for C\n", " \n", " for C in Cs :\n", " estimator = LogisticRegression(fit_intercept=False,C=C,max_iter=1000)\n", " \n", " # for classification task, we use \"accuraccy\" as scoring metric\n", " cv_results = cross_validate(estimator, X_poly, y,cv=3,scoring=\"accuracy\",return_train_score=True)\n", " \n", " averaged_train_error = (cv_results['train_score']).mean()\n", " averaged_val_error = (cv_results['test_score']).mean()\n", " \n", " train_errs.append(averaged_train_error)\n", " val_errs.append(averaged_val_error)\n", " \n", " axs.plot(Cs,train_errs,color='red',label='training accuracy')\n", " axs.plot(Cs,val_errs,color='blue',label='validation accuracy')\n", " axs.set_xlabel('Inverse of regularization strength (C)')\n", " axs.set_ylabel('Accuracy')\n", " axs.set_xscale('log')\n", " axs.legend()\n", " \n", "plot_accus_clf()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## You try it\n", "Try to plot a figure showing how polynomial degree influences the performance of a model, i.e. how training accuracy and validation accuracy evolves." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Underfitting and overfitting for Tree models" ] }, { "cell_type": "code", "execution_count": 67, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:43:08.403587Z", "start_time": "2022-01-26T15:43:08.275339Z" } }, "outputs": [], "source": [ "from sklearn.tree import DecisionTreeClassifier" ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:43:10.764218Z", "start_time": "2022-01-26T15:43:10.738099Z" } }, "outputs": [], "source": [ "def plot_tree_bondary():\n", " \"\"\" auxiliary function to plot decision boundary for tree models\"\"\"\n", " def Boundary(axes):\n", " u = np.linspace(-1, 1.2, 50)\n", " v = np.linspace(-1, 1.2, 50)\n", " U,V = np.meshgrid(u,v)\n", " U = np.ravel(U)\n", " V = np.ravel(V)\n", "\n", " Z = clf_tree.predict(np.array([U,V]).T)\n", "\n", " U = U.reshape((len(u), len(v)))\n", " V = V.reshape((len(u), len(v)))\n", " Z = Z.reshape((len(u), len(v)))\n", " cs = axes.contourf(U, V, Z, cmap='twilight')\n", " return cs\n", "\n", " fig, axes = plt.subplots(1,2)\n", " fig.set_size_inches(15, 5)\n", "\n", " Boundary(axes[0])\n", " axes[0].set_xlabel('Feature 1')\n", " axes[0].set_ylabel('Feature 2')\n", " axes[0].scatter(X_train[tr_p_idx,0], X_train[tr_p_idx, 1], color = 'r', marker='x', label='Faulty')\n", " axes[0].scatter(X_train[tr_n_idx,0], X_train[tr_n_idx, 1], color = 'g', marker='o', label='Good')\n", " axes[0].legend(title='Legend', loc = 'best' )\n", " axes[0].set_title('accuracy on training set: {}'.format(clf_tree.score(X_train,y_train)),fontsize=14)\n", "\n", " Boundary(axes[1])\n", " axes[1].set_xlabel('Feature 1')\n", " axes[1].set_ylabel('Feature 2')\n", " axes[1].scatter(X_val[te_p_idx,0], X_val[te_p_idx, 1], color = 'yellow', marker='x', label='Faulty')\n", " axes[1].scatter(X_val[te_n_idx,0], X_val[te_n_idx, 1], color = 'b', marker='o', label='Good')\n", " axes[1].legend(title='Legend', loc = 'best' )\n", " axes[1].set_title('accuracy on validation set: {}'.format(clf_tree.score(X_val,y_val)),fontsize=14)\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 77, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T16:23:01.097391Z", "start_time": "2022-01-26T16:23:00.597721Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "MAX_DEPTH = 10\n", "\n", "clf_tree = DecisionTreeClassifier(max_depth=MAX_DEPTH,random_state=10)\n", "clf_tree.fit(X_train,y_train) # use the same dataset as logistic regression\n", "\n", "plot_tree_bondary()" ] }, { "cell_type": "code", "execution_count": 76, "metadata": { "ExecuteTime": { "end_time": "2022-01-26T15:46:57.980875Z", "start_time": "2022-01-26T15:46:57.052638Z" } }, "outputs": [ { "data": { "image/png": "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m3ym5vr164mKiqJDhw6ULVuW+vXrp3pG5aRJk6hevTqVK1fmpptu4u+//wZgz5493H///ZQvX54KFSocO7Zo2rRpREdHU7FiRerWrXvc9+GocuXKsX79etavX0+pUqVo06YN5cqVY+PGjal+fQALFizg2muvpWLFilSrVo2EhARq1ap13CDa6667jiVLlqTxpyUip7RrF4wcCS1auLldDRrAJ59A9eruz61bXTB77DEFMJF0EHYrYY89Buk9KL5SpdOfC968eXMee+wxHn7YXew5ZswYvvnmG3LkyMH48ePJly8f27Zto0aNGjRq1AhzikuyBw4cSK5cuVi1ahVLly4lOjr62GOvv/46hQoVIjExkbp167J06VK6du1K7969mTlzJkWKFDnutRYuXMjHH3/MvHnzsNZSvXp1ateuTcGCBVmzZg0jR47kgw8+4O6772bcuHG0atXquI+/7rrr+PnnnzHGMHToUN5++23++9//8uqrr5I/f36WLVsGwI4dO4iPj6dDhw7Mnj2bEiVK8M8//5zxe7pmzRo++eSTY0c4pfb1lS5dmubNmzN69GiqVq3K7t27yZkzJ+3atWPYsGH07duX3377jQMHDlCxYsUzfk4RSUVc3L+DU2fNcoNTL7wQmjVzg1Pr1tXgVJEACbsQ5kPlypXZunUrmzdvJj4+noIFC1KsWDEOHz7M888/z+zZs8mUKRObNm3i77//5uKLL071dWbPnk3Xrl0BqFChAhUqVDj22JgxYxgyZAhHjhxhy5YtrFy58rjHTzRnzhwaN2587LzGJk2a8L///Y9GjRpRokQJKlWqBECVKlVYv379SR8fFxdH8+bN2bJlC4cOHaJE8m+9M2bMYNSoUceeV7BgQSZNmkStWrWOPadQoUJn/J5dccUVx52hmdrXZ4zhkksuoWrVqgDkS77CqlmzZrz66qu88847fPTRR7Rt2/aMn09EklkLy5f/21h/tO+0ZEn3W+ydd7qVLw1OFQm4sAthp1uxCqRmzZoxduxY/vrrL5o3bw7AiBEjiI+PZ+HChWTNmpXixYtz4MCBs37tP/74g169erFgwQIKFixI27Ztz+l1jsqePfux9zNnzpzqdmSXLl144oknaNSoEbNmzaJ79+5n/XmyZMlCUlLSsdspaz4aDuHsv75cuXJRr149JkyYwJgxY1i4cOFZ1yYSUY4c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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def plot_accu_tree():\n", " fig, axs = plt.subplots(figsize=(10,7))\n", " \n", " train_errs = []\n", " val_errs = []\n", " \n", " depths = range(1,12)\n", " \n", " for d in depths :\n", " estimator = DecisionTreeClassifier(max_depth=d,random_state=10)\n", " \n", " cv_results = cross_validate(estimator, X, y, cv=3,scoring=\"accuracy\",return_train_score=True)\n", " \n", " averaged_train_error = (cv_results['train_score']).mean()\n", " averaged_val_error = (cv_results['test_score']).mean()\n", " \n", " train_errs.append(averaged_train_error)\n", " val_errs.append(averaged_val_error)\n", " \n", " axs.plot(depths,train_errs,color='red',label='training accuracy')\n", " axs.plot(depths,val_errs,color='blue',label='validation accuracy')\n", " axs.set_xlabel('tree depth')\n", " axs.set_ylabel('Accuracy')\n", " axs.legend()\n", " \n", "plot_accu_tree()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "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.6" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }