{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Linear Model Selection and Regularization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- [Lab 2: Ridge Regression](#6.6.1-Ridge-Regression)\n", "- [Lab 2: The Lasso](#6.6.2-The-Lasso)\n", "- [Lab 3: Principal Components Regression](#6.7.1-Principal-Components-Regression)\n", "- [Lab 3: Partial Least Squares](#6.7.2-Partial-Least-Squares)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# %load ../standard_import.txt\n", "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "from sklearn.preprocessing import scale \n", "from sklearn import model_selection\n", "from sklearn.linear_model import LinearRegression, Ridge, RidgeCV, Lasso, LassoCV\n", "from sklearn.decomposition import PCA\n", "from sklearn.cross_decomposition import PLSRegression\n", "from sklearn.model_selection import KFold, cross_val_score\n", "from sklearn.metrics import mean_squared_error, r2_score" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Load data" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Index: 263 entries, -Alan Ashby to -Willie Wilson\n", "Data columns (total 20 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 AtBat 263 non-null int64 \n", " 1 Hits 263 non-null int64 \n", " 2 HmRun 263 non-null int64 \n", " 3 Runs 263 non-null int64 \n", " 4 RBI 263 non-null int64 \n", " 5 Walks 263 non-null int64 \n", " 6 Years 263 non-null int64 \n", " 7 CAtBat 263 non-null int64 \n", " 8 CHits 263 non-null int64 \n", " 9 CHmRun 263 non-null int64 \n", " 10 CRuns 263 non-null int64 \n", " 11 CRBI 263 non-null int64 \n", " 12 CWalks 263 non-null int64 \n", " 13 League 263 non-null object \n", " 14 Division 263 non-null object \n", " 15 PutOuts 263 non-null int64 \n", " 16 Assists 263 non-null int64 \n", " 17 Errors 263 non-null int64 \n", " 18 Salary 263 non-null float64\n", " 19 NewLeague 263 non-null object \n", "dtypes: float64(1), int64(16), object(3)\n", "memory usage: 43.1+ KB\n" ] } ], "source": [ "# In R, I exported the dataset from package 'ISLR' to a csv file.\n", "df = pd.read_csv('data/Hitters.csv', index_col=0).dropna()\n", "df.index.name = 'Player'\n", "df.info()" ] }, { "cell_type": "code", "execution_count": 3, "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", " \n", "
AtBatHitsHmRunRunsRBIWalksYearsCAtBatCHitsCHmRunCRunsCRBICWalksLeagueDivisionPutOutsAssistsErrorsSalaryNewLeague
Player
-Alan Ashby31581724383914344983569321414375NW6324310475.0N
-Alvin Davis479130186672763162445763224266263AW8808214480.0A
-Andre Dawson496141206578371156281575225828838354NE200113500.0N
\n", "
" ], "text/plain": [ " AtBat Hits HmRun Runs RBI Walks Years CAtBat CHits \\\n", "Player \n", "-Alan Ashby 315 81 7 24 38 39 14 3449 835 \n", "-Alvin Davis 479 130 18 66 72 76 3 1624 457 \n", "-Andre Dawson 496 141 20 65 78 37 11 5628 1575 \n", "\n", " CHmRun CRuns CRBI CWalks League Division PutOuts Assists \\\n", "Player \n", "-Alan Ashby 69 321 414 375 N W 632 43 \n", "-Alvin Davis 63 224 266 263 A W 880 82 \n", "-Andre Dawson 225 828 838 354 N E 200 11 \n", "\n", " Errors Salary NewLeague \n", "Player \n", "-Alan Ashby 10 475.0 N \n", "-Alvin Davis 14 480.0 A \n", "-Andre Dawson 3 500.0 N " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head(3)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Index: 263 entries, -Alan Ashby to -Willie Wilson\n", "Data columns (total 6 columns):\n", " # Column Non-Null Count Dtype\n", "--- ------ -------------- -----\n", " 0 League_A 263 non-null bool \n", " 1 League_N 263 non-null bool \n", " 2 Division_E 263 non-null bool \n", " 3 Division_W 263 non-null bool \n", " 4 NewLeague_A 263 non-null bool \n", " 5 NewLeague_N 263 non-null bool \n", "dtypes: bool(6)\n", "memory usage: 3.6+ KB\n", " League_A League_N Division_E Division_W NewLeague_A \\\n", "Player \n", "-Alan Ashby False True False True False \n", "-Alvin Davis True False False True True \n", "-Andre Dawson False True True False False \n", "\n", " NewLeague_N \n", "Player \n", "-Alan Ashby True \n", "-Alvin Davis False \n", "-Andre Dawson True \n" ] } ], "source": [ "# Convert categorical variable into dummy/indicator variables.\n", "dummies = pd.get_dummies(df[['League', 'Division', 'NewLeague']])\n", "dummies.info()\n", "print(dummies.head(3))\n", "dummies = dummies.astype(float)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Index: 263 entries, -Alan Ashby to -Willie Wilson\n", "Data columns (total 19 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 AtBat 263 non-null float64\n", " 1 Hits 263 non-null float64\n", " 2 HmRun 263 non-null float64\n", " 3 Runs 263 non-null float64\n", " 4 RBI 263 non-null float64\n", " 5 Walks 263 non-null float64\n", " 6 Years 263 non-null float64\n", " 7 CAtBat 263 non-null float64\n", " 8 CHits 263 non-null float64\n", " 9 CHmRun 263 non-null float64\n", " 10 CRuns 263 non-null float64\n", " 11 CRBI 263 non-null float64\n", " 12 CWalks 263 non-null float64\n", " 13 PutOuts 263 non-null float64\n", " 14 Assists 263 non-null float64\n", " 15 Errors 263 non-null float64\n", " 16 League_N 263 non-null float64\n", " 17 Division_W 263 non-null float64\n", " 18 NewLeague_N 263 non-null float64\n", "dtypes: float64(19)\n", "memory usage: 41.1+ KB\n" ] } ], "source": [ "y = df.Salary\n", "\n", "# Drop the column with the independent variable (Salary), and columns for which we created dummy variables\n", "X_ = df.drop(['Salary', 'League', 'Division', 'NewLeague'], axis=1).astype('float64')\n", "# Define the feature set X.\n", "X = pd.concat([X_, dummies[['League_N', 'Division_W', 'NewLeague_N']]], axis=1)\n", "X.info()" ] }, { "cell_type": "code", "execution_count": 6, "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", "
AtBatHitsHmRunRunsRBIWalksYearsCAtBatCHitsCHmRunCRunsCRBICWalksPutOutsAssistsErrorsLeague_NDivision_WNewLeague_N
Player
-Alan Ashby315.081.07.024.038.039.014.03449.0835.069.0321.0414.0375.0632.043.010.01.01.01.0
-Alvin Davis479.0130.018.066.072.076.03.01624.0457.063.0224.0266.0263.0880.082.014.00.01.00.0
-Andre Dawson496.0141.020.065.078.037.011.05628.01575.0225.0828.0838.0354.0200.011.03.01.00.01.0
\n", "
" ], "text/plain": [ " AtBat Hits HmRun Runs RBI Walks Years CAtBat CHits \\\n", "Player \n", "-Alan Ashby 315.0 81.0 7.0 24.0 38.0 39.0 14.0 3449.0 835.0 \n", "-Alvin Davis 479.0 130.0 18.0 66.0 72.0 76.0 3.0 1624.0 457.0 \n", "-Andre Dawson 496.0 141.0 20.0 65.0 78.0 37.0 11.0 5628.0 1575.0 \n", "\n", " CHmRun CRuns CRBI CWalks PutOuts Assists Errors \\\n", "Player \n", "-Alan Ashby 69.0 321.0 414.0 375.0 632.0 43.0 10.0 \n", "-Alvin Davis 63.0 224.0 266.0 263.0 880.0 82.0 14.0 \n", "-Andre Dawson 225.0 828.0 838.0 354.0 200.0 11.0 3.0 \n", "\n", " League_N Division_W NewLeague_N \n", "Player \n", "-Alan Ashby 1.0 1.0 1.0 \n", "-Alvin Davis 0.0 1.0 0.0 \n", "-Andre Dawson 1.0 0.0 1.0 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X.head(3)" ] }, { "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", "
AtBatHitsHmRunRunsRBIWalksYearsCAtBatCHitsCHmRunCRunsCRBICWalksLeagueNDivisionWPutOutsAssistsErrorsNewLeagueN
-Darryl Strawberry4751232776937241810471108292343267102261061
-Glenn Wilson584158157084425235863658265316134103312041
-Leon Durham48412720666567730068441164364583771012318071
\n", "
" ], "text/plain": [ " AtBat Hits HmRun Runs RBI Walks Years CAtBat \\\n", "-Darryl Strawberry 475 123 27 76 93 72 4 1810 \n", "-Glenn Wilson 584 158 15 70 84 42 5 2358 \n", "-Leon Durham 484 127 20 66 65 67 7 3006 \n", "\n", " CHits CHmRun CRuns CRBI CWalks LeagueN DivisionW \\\n", "-Darryl Strawberry 471 108 292 343 267 1 0 \n", "-Glenn Wilson 636 58 265 316 134 1 0 \n", "-Leon Durham 844 116 436 458 377 1 0 \n", "\n", " PutOuts Assists Errors NewLeagueN \n", "-Darryl Strawberry 226 10 6 1 \n", "-Glenn Wilson 331 20 4 1 \n", "-Leon Durham 1231 80 7 1 " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_train = pd.read_csv('data/Hitters_X_train.csv', index_col=0)\n", "y_train = pd.read_csv('data/Hitters_y_train.csv', index_col=0)\n", "X_test = pd.read_csv('data/Hitters_X_test.csv', index_col=0)\n", "y_test = pd.read_csv('data/Hitters_y_test.csv', index_col=0)\n", "X_train.head(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Ridge Regression" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Scikit-learn" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "The __sklearn Ridge()__ function optimizes:\n", " $$ ||X\\beta - y||^2_2 + \\alpha ||\\beta||^2_2 $$\n", "which is equivalent to optimizing\n", " $$ \\frac{1}{N}||X\\beta - y||^2_2 + \\frac{\\alpha}{N} ||\\beta||^2_2 $$" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkcAAAHLCAYAAADC2TzJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACq7UlEQVR4nOzdd3wUZf7A8c/M9uxuNj0EEkLoXZRuAazY+9nPeraz353neVW94nnenf7UOz09Fc8u9o4VEBQLTXqHBALpySbbd+b5/bHJkpAAAQlJ4Pt+MczsM7Mzz/ZvnqoppRRCCCGEEAIAvbMzIIQQQgjRlUhwJIQQQgjRjARHQgghhBDNSHAkhBBCCNGMBEdCCCGEEM1IcCSEEEII0YwER0IIIYQQzUhwJIQQQgjRjARHQgghhBDNSHB0EJgyZQpTpkzZ7XEzZ85E0zRmzpzZ4XnqKsrKyjj33HPJzMxE0zQefPBBANasWcMJJ5yAz+dD0zTefPNNpk2bhqZpbNy4cY+ucfnll9OnT599nveDXVuvUVfU3s9fZ9rZ52BPXH755Xg8nn2fuW6iI17njRs3omka06ZN26fn7arX7UokOOqGmn6kmxar1UqvXr24/PLL2bJlS2dnr1u57bbbmDFjBnfeeSfPPvssJ554IgCXXXYZS5Ys4c9//jPPPvssY8aM6eSc7try5cu566679jhw68660mvU3Z//nX0OdhQMBrnrrrsOqj+gDmQvvPDCXgXCBwUlup2nn35aAeqee+5Rzz77rHriiSfUVVddpSwWi+rXr58KhUItjo9EIioSiez2vJ9//rkC1Oeff95BOe96cnNz1cUXX9wiLRgMKkD95je/aZEej8dVKBRSpmnu0TWi0agKh8M/OK+7Mn369IPqtdvZa9RZdvX8t/fz15na+hy0paKiQgHqD3/4Q6t9l112mXK73R2Qu+5h8uTJavLkyfv0nKZpqlAopOLx+D49b5NTTjlFFRYW7vfrdgfWTozLxA900kknJf9a/slPfkJWVhb33Xcfb7/9Nuedd17yOLvd3llZ7PLKy8tJS0trkVZRUQHQKt1isWCxWPb4GjabbW+zJ3ZiZ69RV9QdPn9tfQ66k0AggNvt7uxs7DPxeBzTNLHb7Tidzv1+fU3TOuW6XUpnR2dizzWVHH377bct0t99910FqL/85S8t0tv6i6akpESdccYZKiUlRWVnZ6tbb71Vffjhh23+9fvII4+ooqIi5XQ61dixY9Xs2bPbPGc4HFa///3vVb9+/ZTdblf5+fnq9ttvb3epybx589RJJ52k0tLSVEpKihoxYoR68MEHWxzz6aefqiOPPFKlpKQon8+nTj/9dLV8+fJW59q8ebO64oorVE5OjrLb7Wro0KHqySefbPUc7rj84Q9/aJXW9JdV0302bNjQ4lrvv/++mjRpkvJ4PMrr9aoxY8ao559/Prn/sssua/XXmWEY6oEHHlBDhw5VDodD5eTkqGuuuUZVV1e3OK6wsFCdcsop6osvvlBjx45VDodDFRUVqWeeeWa3j6Xpdfz222/VCSecoDIzM5XT6VR9+vRRV1xxxW5fjzfffFOdfPLJKi8vT9ntdtW3b191zz33tPprcvXq1erss89Wubm5yuFwqF69eqnzzz9f1dbW7vL8s2fPVueee64qKChIvl9uvfVWFQwGd3m/Xb1GbT3Xze/THKBuuOEG9cYbb6hhw4Yl3ycffPBBq/tv3rxZXXnllcnnok+fPuq6665TkUhkt89/W5+VsrIydeWVV6qcnBzlcDjUyJEj1bRp01ocs2HDBgWo+++/X/3nP/9Rffv2VXa7XY0ZM0Z98803u3yOmqxbt06de+65Kj09XblcLjV+/Hj17rvvJvfvLO9tacpPW58ZpbaXHG3evFmdccYZyu12q6ysLPXzn/+81Xumve//tjRdZ+3ateqkk05SHo9HnXHGGXt0XsMw1B/+8AeVl5enXC6XmjJlilq2bJkqLCxUl112WfK4tt43zZ+35t8FO77OkUhE/e53v1OHHXaYSk1NVSkpKerII49Un332WZvP6/33368eeOAB1bdvX6Xrulq4cGFy39NPP62U2l6639bS/H3fns/u5MmTd3qOHa/bpD3fv03P2Zo1a9Rll12mfD6fSk1NVZdffrkKBAJtvKJdk5QcHUCa2jukp6fv8rhQKMSxxx5LcXExN998Mz179uTZZ5/ls88+a3Xso48+yo033shRRx3FbbfdxsaNGznzzDNJT08nPz8/eZxpmpx++unMmTOHa665hiFDhrBkyRIeeOABVq9evdvGsh9//DGnnnoqeXl53HLLLfTo0YMVK1bw7rvvcssttwDwySefcNJJJ9G3b1/uuusuQqEQDz/8MEcccQQLFixINnouKytj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uNMv0MmTJ3Pttddy7733smjRIk444QRsNhtr1qxh+vTp/N///V+LxvLtMWrUKCwWC/fddx91dXU4HA6OOeYYXnjhBf79739z1lln0a9fP+rr63niiSdITU3d5Rfa4YcfTnp6Opdddhk333wzmqbx7LPPtgq0PvvsM2688UZ+9KMfMXDgQOLxOM8++2wySN2ZwYMH069fP37xi1+wZcsWUlNTee2119rVjmpXLrjgAu644w7OOussbr75ZoLBII8++igDBw7c64b4f/nLX/joo4+YPHlycpiKrVu3Mn36dObMmUNaWtpOn/+22r9cc801/Oc//+Hyyy9n/vz59OnTh1dffZW5c+fy4IMP4vV6f9Bz0ORXv/oVL774IieddBI333wzGRkZPPPMM2zYsIHXXnutVYlDe7hcLoYOHcrLL7/MwIEDycjIYPjw4XvUdqkj3v97ct7c3FxuueUW/vGPf3D66adz4oknsnjxYj744AOysrJafK+dcMIJ9O7dm6uuuorbb78di8XCU089RXZ2NsXFxbvMz6mnnsrrr7/OWWedxSmnnMKGDRt47LHHGDp0KA0NDXv8+ADee+89/ve//3HOOefw/ffft/gjwOPxcOaZZ7b7swswevRoXn75ZX72s58xduxYPB4Pp512WpvXbu/37wFjP/eOE/vAzgaBVCoxuFm/fv1Uv379kgN+tTUI3aZNm9Tpp5+uUlJSVFZWlrrlllt2OgjkQw89pAoLC5XD4VDjxo1Tc+fOVaNHj1Ynnnhii+Oi0ai677771LBhw5TD4VDp6elq9OjR6u6771Z1dXW7fVxz5sxRxx9/vPJ6vcrtdquRI0e26FKtlFKffPKJOuKII5TL5VKpqanqtNNOa3MQyLKyMnXDDTeogoICZbPZVI8ePdSxxx6rHn/88RbH8QO68jd5++231eGHH57M07hx49SLL76Y3L+z7uWPP/64Gj16tHK5XMrr9aoRI0aoX/7yl6q0tDR5TNMgkDtq6zV94oknVN++fZXFYkm+jgsWLFAXXnih6t27d3JQvFNPPVV99913rc65o7lz56oJEyYol8ulevbsqX75y1+qGTNmtHiPrF+/Xl155ZWqX79+yul0qoyMDHX00UerTz75ZLfnX758uTruuOOUx+NRWVlZ6uqrr052pd9Z1+UmO3uNlFLqo48+UsOHD1d2u10NGjRI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hjF37lzmzJlDv379+Oijj1iwYIHucSQiIiIereo+R/5AD54VERFpfdrkfY5EREREWoLCkYiIiEgDCkciIiIiDSgciYiIiDTQKi7l9yf149dLS0t9XImIiIg0Vv33dmOuQ1M4aqKysjIAPYBWRESkFSorKyMiIuKU6+hS/iZyuVwcOHCAsLAwDMPwdTlnpLS0lKSkJPbt26fbEZyG2qrx1FaNp7ZqGrVX46mtTs7tdlNWVkZCQgIm06lHFannqIlMJpPnrtytnR6k23hqq8ZTWzWe2qpp1F6Np7Y6sdP1GNXTgGwRERGRBhSORERERBpQOGqHAgICePTRRwkICPB1KX5PbdV4aqvGU1s1jdqr8dRW3qEB2SIiIiINqOdIREREpAGFIxEREZEGFI5EREREGlA4EhEREWlA4UhERESkAYUjOcasWbPo3bs3aWlpvPvuu74ux6/l5OTQv39/zxQUFMSCBQt8XZbfSklJoW/fvvTv35+RI0f6uhy/VVxczMCBA+nfvz9paWm8+uqrvi7Jr02ePJmoqCiuuOIKX5fS6qjtTk6X8otHVlYWU6ZMYeXKlbjdbkaOHMmiRYuIjIz0dWl+r7y8nJSUFPbs2UNISIivy/FLKSkpZGdnExoa6utS/JrT6aSmpobg4GAqKipIS0tj3bp1REdH+7o0v7R06VLKysp46623+Oijj3xdTquitjs59RyJx5YtW8jIyCAwMJCgoCD69evHokWLfF1Wq/Dpp58yevRoBSM5a2azmeDgYABqampwu93o37And/HFFxMWFubrMloltd3JKRy1IcuWLePSSy8lISEBwzBO+BPPSy+9REpKCoGBgQwZMoQ1a9Z4lqWlpbF06VKKi4spKipi6dKl7N+/vwXPoGWdbXs19OGHH3LVVVc1c8W+4422MgyDESNGMGjQIN57770WqrzleaOtiouL6devH4mJidx///3ExMS0UPUty5t/B9satY1vKRy1IRUVFfTr14+XXnrphMs/+OADpk2bxqOPPsr69evp168f48aN4+DBgwD06tWLu+66i1GjRvG73/2OoUOHYjabW/IUWtTZtle90tJSVq5cyYQJE1qibJ/wRlstX76czMxMPv30U5544gk2bdrUUuW3KG+0VWRkJBs3bmTXrl3MnTuXgoKCliq/RXnr72Bb5I22qR+39uvpwIEDLXUarZdb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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "alphas = 10**np.linspace(10,-2,100)*0.5\n", "\n", "ridge = Ridge()\n", "coefs = []\n", "\n", "for a in alphas:\n", " ridge.set_params(alpha=a)\n", " ridge.fit(scale(X), y)\n", " # print(sum(ridge.coef_))\n", " coefs.append(ridge.coef_)\n", "\n", "ax = plt.gca()\n", "ax.plot(alphas, coefs)\n", "ax.set_xscale('log')\n", "ax.set_xlim(ax.get_xlim()[::-1]) # reverse axis\n", "plt.axis('tight')\n", "plt.xlabel('alpha')\n", "plt.ylabel('weights')\n", "plt.title('Ridge coefficients as a function of the regularization');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The above plot shows that the Ridge coefficients get larger when we decrease alpha." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "from sklearn.preprocessing import StandardScaler\n", "\n", "scaler = StandardScaler().fit(X_train)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "98866.37786033245\n", "0.4868771617300639\n" ] } ], "source": [ "\n", "ridge2 = Ridge(alpha=X_train.shape[1]/10)\n", "ridge2.fit(scaler.transform(X_train), y_train)\n", "pred = ridge2.predict(scaler.transform(X_test))\n", "\n", "print(mean_squared_error(y_test, pred))\n", "print(r2_score(y_test, pred))" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "AtBat -232.417538\n", "Hits 185.399421\n", "HmRun 61.693947\n", "Runs -82.295866\n", "RBI 47.624703\n", "Walks 156.248223\n", "Years -122.339806\n", "CAtBat -82.785224\n", "CHits 134.265011\n", "CHmRun -19.297365\n", "CRuns 369.449829\n", "CRBI -50.380718\n", "CWalks -103.110248\n", "PutOuts 22.500903\n", "Assists -64.528856\n", "Errors 90.415338\n", "League_N 37.281989\n", "Division_W -13.502786\n", "NewLeague_N 3.273231\n", "dtype: float64" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.Series(ridge2.coef_.flatten(), index=X.columns)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Alpha = $10^{10}$ \n", "This big penalty shrinks the coefficients to a very large degree and makes the model more biased, resulting in a higher MSE." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "193253.09741651407\n", "-0.002995962802482266\n" ] } ], "source": [ "ridge2.set_params(alpha=10**10)\n", "ridge2.fit(scale(X_train), y_train)\n", "pred = ridge2.predict(scale(X_test))\n", "\n", "print(mean_squared_error(y_test, pred))\n", "print(r2_score(y_test, pred)) ## RSS > TSS" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Compute the regularization path using RidgeCV" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
RidgeCV(alphas=array([5.00000000e+09, 3.78231664e+09, 2.86118383e+09, 2.16438064e+09,\n",
       "       1.63727458e+09, 1.23853818e+09, 9.36908711e+08, 7.08737081e+08,\n",
       "       5.36133611e+08, 4.05565415e+08, 3.06795364e+08, 2.32079442e+08,\n",
       "       1.75559587e+08, 1.32804389e+08, 1.00461650e+08, 7.59955541e+07,\n",
       "       5.74878498e+07, 4.34874501e+07, 3.28966612e+07, 2.48851178e+07,\n",
       "       1.88246790e+07, 1.42401793e+0...\n",
       "       3.06795364e+00, 2.32079442e+00, 1.75559587e+00, 1.32804389e+00,\n",
       "       1.00461650e+00, 7.59955541e-01, 5.74878498e-01, 4.34874501e-01,\n",
       "       3.28966612e-01, 2.48851178e-01, 1.88246790e-01, 1.42401793e-01,\n",
       "       1.07721735e-01, 8.14875417e-02, 6.16423370e-02, 4.66301673e-02,\n",
       "       3.52740116e-02, 2.66834962e-02, 2.01850863e-02, 1.52692775e-02,\n",
       "       1.15506485e-02, 8.73764200e-03, 6.60970574e-03, 5.00000000e-03]),\n",
       "        scoring='neg_mean_squared_error')
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "RidgeCV(alphas=array([5.00000000e+09, 3.78231664e+09, 2.86118383e+09, 2.16438064e+09,\n", " 1.63727458e+09, 1.23853818e+09, 9.36908711e+08, 7.08737081e+08,\n", " 5.36133611e+08, 4.05565415e+08, 3.06795364e+08, 2.32079442e+08,\n", " 1.75559587e+08, 1.32804389e+08, 1.00461650e+08, 7.59955541e+07,\n", " 5.74878498e+07, 4.34874501e+07, 3.28966612e+07, 2.48851178e+07,\n", " 1.88246790e+07, 1.42401793e+0...\n", " 3.06795364e+00, 2.32079442e+00, 1.75559587e+00, 1.32804389e+00,\n", " 1.00461650e+00, 7.59955541e-01, 5.74878498e-01, 4.34874501e-01,\n", " 3.28966612e-01, 2.48851178e-01, 1.88246790e-01, 1.42401793e-01,\n", " 1.07721735e-01, 8.14875417e-02, 6.16423370e-02, 4.66301673e-02,\n", " 3.52740116e-02, 2.66834962e-02, 2.01850863e-02, 1.52692775e-02,\n", " 1.15506485e-02, 8.73764200e-03, 6.60970574e-03, 5.00000000e-03]),\n", " scoring='neg_mean_squared_error')" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ridgecv = RidgeCV(alphas=alphas, scoring='neg_mean_squared_error')\n", "ridgecv.fit(scale(X_train), y_train)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "115.5064850041579" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ridgecv.alpha_" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "97384.92959172589" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ridge2.set_params(alpha=ridgecv.alpha_)\n", "ridge2.fit(scale(X_train), y_train)\n", "mean_squared_error(y_test, ridge2.predict(scale(X_test)))" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "AtBat 7.576771\n", "Hits 22.596030\n", "HmRun 18.971990\n", "Runs 20.193945\n", "RBI 21.063875\n", "Walks 55.713281\n", "Years -4.687149\n", "CAtBat 20.496892\n", "CHits 29.230247\n", "CHmRun 14.293124\n", "CRuns 35.881788\n", "CRBI 20.212172\n", "CWalks 24.419768\n", "PutOuts 16.128910\n", "Assists -44.102264\n", "Errors 54.624503\n", "League_N 5.771464\n", "Division_W -0.293713\n", "NewLeague_N 11.137518\n", "dtype: float64" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.Series(ridge2.coef_.flatten(), index=X.columns)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### The Lasso" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##### Scikit-learn" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkcAAAHLCAYAAADC2TzJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAACXF0lEQVR4nOzdd3wUdfrA8c/M1mTTe0IghNC7FOlgQUDRE0XROzy73Clib9jxVDz1Ts8GtlNOvZ+9nKgooIgFAQFBeie09LKp2+b7+2OTJSEJJCEhhDxvX+Psznxn5tkS8uTbRlNKKYQQQgghBAB6SwcghBBCCHEikeRICCGEEKIKSY6EEEIIIaqQ5EgIIYQQogpJjoQQQgghqpDkSAghhBCiCkmOhBBCCCGqkORICCGEEKIKSY6EEEIIIaqQ5Ei0aW+99Rbdu3fHYrEQERER2P7UU0/RqVMnTCYT/fv3B6Bjx45ceeWVDTr/7t270TSNN998s8liFn61fUYnmiVLlqBpGkuWLGnpUI6orp+D+qr8nj/99NNNH1wr0Fyf85VXXknHjh2b9Jwn8nVPJJIctUJvvvkmmqbx66+/tnQordrmzZu58sorSUtL49VXX+WVV14B4JtvvuGuu+5ixIgRvPHGGzz++OMtHOnRvfTSS20qATvRPqPW/P7X9XNQmy+//JKHH374+AUnms2BAwd4+OGH+e2331o6lBOSuaUDEKKlLFmyBMMw+Ne//kXnzp0D27/99lt0Xef111/HarUGtm/ZsgVdb9jfEykpKZSVlWGxWJos7tq89NJLxMTENLhmq7Wq6zNqKXW9/6NHj6asrOyEiLEudf0c1ObLL7/kxRdflATpOHn11VcxDKNZzn3gwAFmzZpFx44da9S8Nud1WwtJjkSblZWVBVCjGSErK4ugoKAav9BsNluDr6FpGna7vdExitrV9RmdaHRdP+E//7p+DloLr9eLYRgn/HehIUpKSnA4HM3+R1VdWuq6JxQlWp033nhDAWrlypV1lnG5XOqBBx5QAwYMUGFhYSo4OFiNHDlSffvttzXK/t///Z8aMGCACgkJUaGhoap3797q2WefDex3u93q4YcfVp07d1Y2m01FRUWpESNGqG+++abaeRYvXqxGjhypgoODVXh4uPrDH/6gNm7cWK/XVFZWph566CHVpUsXZbPZVEJCgrrgggvU9u3bA2WKi4vVbbfdppKTk5XValVdu3ZVTz31lDIMo8b53nrrLTVgwABlt9tVZGSkuuSSS1R6enpgf0pKigKqLQ899FCNbYB64403AsdcccUV1a6Tn5+vbrnlFpWSkqKsVqtq166d+vOf/6yys7OVUkrt2rWr2jkqbdq0SU2ePFlFRkYqm82mBg4cqD777LNqZSo/5x9//FHdeuutKiYmRgUHB6tJkyaprKysI76WMWPGNOizO1xubq66/fbbVe/evZXD4VChoaFqwoQJ6rfffqtR9rnnnlM9e/ZUQUFBKiIiQg0cOFC98847Rzx/Q76fh6vrM6rrva485qGHHgo8r/yst23bpq644goVHh6uwsLC1JVXXqlKSkpqHP/WW2+pwYMHB17jqFGj1Ndff62UOvL7/9133ylAfffdd9XO9/777we+n9HR0Wrq1Klq37591cpcccUVyuFwqH379qnzzz9fORwOFRMTo26//Xbl9XqP+j4ppdSLL76oevbsqaxWq0pMTFQ33HCDys/PD+yv6+egNldccUWt771Sh77nTz31lHr55ZdVp06dlNVqVYMGDVIrVqyoca76fP9rU/U6zzzzjOrUqZPSdV2tWbOmQeddu3atGj16tLLb7apdu3bqb3/7m/r3v/+tALVr165Aubrej8P/Lajtc166dKm66KKLVPv27ZXValXJycnqlltuUaWlpTXeV4fDobZv367OPvtsFRISos4///zAvpSUlEDZMWPG1PoZVP3e1+dntzLeus5x+HWVqv+/v4CaPn26+uSTT1SvXr2U1WpVPXv2VF999VWN9/FEJjVHJymn08lrr73GH//4R6677jqKiop4/fXXGT9+PCtWrAhUoy5cuJA//vGPnHnmmfz9738HYNOmTfz000/cfPPNADz88MPMnj2ba6+9llNPPRWn08mvv/7K6tWrOeusswBYtGgRZ599Np06deLhhx+mrKyM559/nhEjRrB69eojdu7z+Xyce+65LF68mEsvvZSbb76ZoqIiFi5cyPr160lLS0MpxR/+8Ae+++47rrnmGvr378/XX3/NnXfeyf79+3nmmWcC53vsscd44IEHmDJlCtdeey3Z2dk8//zzjB49mjVr1hAREcGzzz7Lf/7zHz755BPmzJlDSEgIffv2pXPnzrzyyiusWLGC1157DYDhw4fXGndxcTGjRo1i06ZNXH311QwYMICcnBz+97//sW/fPmJiYmo9bsOGDYwYMYJ27dpxzz334HA4eP/995k0aRIfffQRF1xwQbXyM2bMIDIykoceeojdu3fz7LPPcuONN/Lee+8B8OyzzzJjxgxCQkK47777AIiPj6/3Z1ebnTt38umnn3LxxReTmppKZmYmL7/8MmPGjGHjxo0kJSUB/ur3m266iYsuuoibb76Z8vJy1q1bx/Lly/nTn/5U5/nr+/2szVtvvVXvz+hopkyZQmpqKrNnz2b16tW89tprxMXFBX4WAGbNmsXDDz/M8OHDeeSRR7BarSxfvpxvv/2WcePGHfH9r82bb77JVVddxeDBg5k9ezaZmZn861//4qeffgp8Pyv5fD7Gjx/PkCFDePrpp1m0aBH/+Mc/SEtL4/rrrz/ia3v44YeZNWsWY8eO5frrr2fLli3MmTOHlStX8tNPP2GxWOr8OajNX/7yFw4cOMDChQt56623ai3z3//+l6KiIv7yl7+gaRpPPvkkF154ITt37gzURjT0+1+bN954g/LycqZNm4bNZiMqKqre592/fz+nn346mqYxc+ZMHA4Hr732WqNqho/kgw8+oLS0lOuvv57o6GhWrFjB888/z759+/jggw+qlfV6vYwfP56RI0fy9NNPExwcXOs577vvPq699tpq295++22+/vpr4uLigPr97Pbo0YNHHnmEBx98kGnTpjFq1Cig7p+jhvz7C/Djjz/y8ccfc8MNNxAaGspzzz3H5MmTSU9PJzo6ulHv53HX0tmZaLj61Bx5vV7lcrmqbcvPz1fx8fHq6quvDmy7+eabVVhY2BH/Eu3Xr5+aOHHiEWPq37+/iouLU7m5uYFta9euVbquq8svv/yIx1b+xfbPf/6zxr7Kv0o+/fRTBahHH3202v6LLrpIaZoWqGHavXu3MplM6rHHHqtW7vfff1dms7na9srag8pankqVf8kd7vC/Fh988EEFqI8//rjOuGurzTjzzDNVnz59VHl5ebXyw4cPV126dAlsq/ycx44dW+2vs1tvvVWZTCZVUFAQ2NarV69AbUVV9fnsalNeXq58Pl+1bbt27VI2m0098sgjgW3nn3++6tWrV4PPX9/vZ11q+4waU3N0+LUuuOACFR0dHXi+bds2peu6uuCCC2q8H1U/k7re/8NrFNxut4qLi1O9e/dWZWVlgXLz589X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v81ZZ53FjBkzAkP5O3ToQF5eXrUalWuvvZa//vWvTJ48mbPOOou1a9fy9ddf1zlNR6Xu3buTlpbGHXfcwf79+wkLC+Ojjz465j43V111FeBvLn/77ber7Rs+fDidOnWq989uWloaERERzJ07l9DQUBwOB0OGDKnRnwuo97+/J5XjNi5ONJnKId51LXv37lWGYajHH39cpaSkKJvNpk455RQ1f/78GkM0P/zwQzVu3DgVFxenrFar6tChg/rLX/6iDh48GCjz6KOPqlNPPVVFRESooKAg1b17d/XYY48pt9tdLa5FixapESNGqKCgIBUWFqbOO++8ek8CWVpaqu677z6VmpqqLBaLSkhIUBdddJHasWNHoExRUZG69dZbVVJSkrJYLKpLly51TgL50UcfqZEjRyqHw6EcDofq3r27mj59utqyZUugzLEO5VfKPwT4xhtvVO3atQtM9HbFFVeonJwcpVTdw8t37NihLr/8cpWQkKAsFotq166dOvfcc9WHH34YKFPXlA21DRvOyMhQEydOVKGhodUmIazvZ3e48vJydfvtt6vExEQVFBSkRowYoZYtW6bGjBlTbcj6yy+/rEaPHq2io6OVzWZTaWlp6s4771SFhYVHPH99v591qeszKi0tVddcc40KDw9XoaGhasqUKSorK6vOofyHf/aV73nV4dxK+aebOOWUU5TNZlORkZFqzJgxauHChYH9db3/dU0C+d577wXOFxUVdcRJIA9XGXt9vPDCC6p79+7KYrGo+Ph4df3111ebBPJI70VtvF6vmjFjhoqNjVWaptU6CeThDn/vlarf9782R7pOQ867Zs0aNWrUKGWz2VRycrKaPXu2eu655xSgMjIyAuV8Pp+6++67AxOwjh8/Xm3fvr1eQ/k3btyoxo4dq0JCQlRMTIy67rrrAkPaq/57UNfnXLmv6s9DbZN2Vi6V56zvz65S/qkWevbsqcxm81Engazvv79UTAJ5uNr+/TyRaUq1oh5SQgghRDO45ZZbePnllykuLm51HeFF05M+R0IIIdqUsrKyas9zc3N56623GDlypCRGApA+R0IIIdqYYcOGcdppp9GjRw8yMzN5/fXXcTqdPPDAAy0dmjhBSHIkhBCiTTnnnHP48MMPeeWVV9A0jQEDBvD6668zevTolg5NnCCkz5EQQgghRBXS50gIIYQQogpJjoQQ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yZEQQgjRCG/94u+Ifcmg9tgtphaORjQlSY6EEEKIBtqdU8L3W7PRNJg6RDpin2xaTXLk8/l44IEHSE1NJSgoiLS0NP72t7+hlAqUUUrx4IMPkpiYSFBQEGPHjmXbtm3VzpOXl8fUqVMJCwsjIiKCa665huLi4uP9coQQQrRib1fUGp3WNZYO0cEtHI1oaq0mOfr73//OnDlzeOGFF9i0aRN///vfefLJJ3n++ecDZZ588kmee+455s6dy/Lly3E4HIwfP57y8vJAmalTp7JhwwYWLlzI/PnzWbp0KdOmTWuJlySEEKIVcnsNPli1D4DLpSP2SUlTVateTmDnnnsu8fHxvP7664FtkydPJigoiLfffhulFElJSdx+++3ccccdABQWFhIfH8+bb77JpZdeyqZNm+jZsycrV65k0KBBACxYsIBzzjmHffv2kZSUdNQ4nE4n4eHhFBYWEhYW1jwvVgghxAnrh23Z/Pn1FcSEWFl+71hMutbSIYl6aMjv71ZTczR8+HAWL17M1q1bAVi7di0//vgjZ599NgC7du0iIyODsWPHBo4JDw9nyJAhLFu2DIBly5YRERERSIwAxo4di67rLF++vNbrulwunE5ntUUIIUTb9fWGDADO6hkvidFJytzSAdTXPffcg9PppHv37phMJnw+H4899hhTp04FICPD/2WNj4+vdlx8fHxgX0ZGBnFxcdX2m81moqKiAmUON3v2bGbNmtXUL0cIIUQrZBiKhRszARjXK6GFoxHNpdXUHL3//vu88847/Pe//2X16tXMmzePp59+mnnz5jXrdWfOnElhYWFg2bt3b7NeTwghxIlr7b4CMp0uQmxmhqdFt3Q4opm0mpqjO++8k3vuuYdLL70UgD59+rBnzx5mz57NFVdcQUKCP4PPzMwkMfHQZFyZmZn0798fgISEBLKysqqd1+v1kpeXFzj+cDabDZvN1gyvSAghRGvzTUWt0WndYrGZZW6jk1WrqTkqLS1F16uHazKZMAwDgNTUVBISEli8eHFgv9PpZPny5QwbNgyAYcOGUVBQwKpVqwJlvv32WwzDYMiQIcfhVQghhGjNKvsbSZPaya3V1Bydd955PPbYY3To0IFevXqxZs0a/vnPf3L11VcDoGkat9xyC48++ihdunQhNTWVBx54gKSkJCZNmgRAjx49mDBhAtdddx1z587F4/Fw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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "lasso = Lasso(max_iter=10000)\n", "coefs = []\n", "\n", "for a in alphas:\n", " lasso.set_params(alpha=a)\n", " lasso.fit(scale(X_train), y_train)\n", " coefs.append(lasso.coef_)\n", "\n", "ax = plt.gca()\n", "ax.plot(alphas, coefs)\n", "ax.set_xscale('log')\n", "ax.set_xlim(ax.get_xlim()[::-1]) # reverse axis\n", "plt.axis('tight')\n", "plt.xlabel('alpha')\n", "plt.ylabel('weights')\n", "plt.title('Lasso coefficients as a function of the regularization');" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
LassoCV(alphas=array([5.00000000e+09, 3.78231664e+09, 2.86118383e+09, 2.16438064e+09,\n",
       "       1.63727458e+09, 1.23853818e+09, 9.36908711e+08, 7.08737081e+08,\n",
       "       5.36133611e+08, 4.05565415e+08, 3.06795364e+08, 2.32079442e+08,\n",
       "       1.75559587e+08, 1.32804389e+08, 1.00461650e+08, 7.59955541e+07,\n",
       "       5.74878498e+07, 4.34874501e+07, 3.28966612e+07, 2.48851178e+07,\n",
       "       1.88246790e+07, 1.42401793e+0...\n",
       "       3.06795364e+00, 2.32079442e+00, 1.75559587e+00, 1.32804389e+00,\n",
       "       1.00461650e+00, 7.59955541e-01, 5.74878498e-01, 4.34874501e-01,\n",
       "       3.28966612e-01, 2.48851178e-01, 1.88246790e-01, 1.42401793e-01,\n",
       "       1.07721735e-01, 8.14875417e-02, 6.16423370e-02, 4.66301673e-02,\n",
       "       3.52740116e-02, 2.66834962e-02, 2.01850863e-02, 1.52692775e-02,\n",
       "       1.15506485e-02, 8.73764200e-03, 6.60970574e-03, 5.00000000e-03]),\n",
       "        cv=10, max_iter=10000)
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "LassoCV(alphas=array([5.00000000e+09, 3.78231664e+09, 2.86118383e+09, 2.16438064e+09,\n", " 1.63727458e+09, 1.23853818e+09, 9.36908711e+08, 7.08737081e+08,\n", " 5.36133611e+08, 4.05565415e+08, 3.06795364e+08, 2.32079442e+08,\n", " 1.75559587e+08, 1.32804389e+08, 1.00461650e+08, 7.59955541e+07,\n", " 5.74878498e+07, 4.34874501e+07, 3.28966612e+07, 2.48851178e+07,\n", " 1.88246790e+07, 1.42401793e+0...\n", " 3.06795364e+00, 2.32079442e+00, 1.75559587e+00, 1.32804389e+00,\n", " 1.00461650e+00, 7.59955541e-01, 5.74878498e-01, 4.34874501e-01,\n", " 3.28966612e-01, 2.48851178e-01, 1.88246790e-01, 1.42401793e-01,\n", " 1.07721735e-01, 8.14875417e-02, 6.16423370e-02, 4.66301673e-02,\n", " 3.52740116e-02, 2.66834962e-02, 2.01850863e-02, 1.52692775e-02,\n", " 1.15506485e-02, 8.73764200e-03, 6.60970574e-03, 5.00000000e-03]),\n", " cv=10, max_iter=10000)" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lassocv = LassoCV(alphas=alphas, cv=10, max_iter=10000)\n", "lassocv.fit(scale(X_train), y_train.values.ravel())" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "28.6118382967511" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lassocv.alpha_" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "102773.23894326504" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lasso.set_params(alpha=lassocv.alpha_)\n", "lasso.fit(scale(X_train), y_train)\n", "mean_squared_error(y_test, lasso.predict(scale(X_test)))" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "AtBat 0.000000\n", "Hits 0.000000\n", "HmRun 3.338801\n", "Runs 0.000000\n", "RBI 30.295110\n", "Walks 104.483629\n", "Years -0.000000\n", "CAtBat 0.000000\n", "CHits 0.000000\n", "CHmRun 0.000000\n", "CRuns 133.994637\n", "CRBI 0.000000\n", "CWalks 0.000000\n", "PutOuts 3.290144\n", "Assists -52.513370\n", "Errors 77.650527\n", "League_N 0.000000\n", "Division_W 0.000000\n", "NewLeague_N 0.000000\n", "dtype: float64" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Some of the coefficients are now reduced to exactly zero.\n", "pd.Series(lasso.coef_, index=X.columns)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Principal Components Regression" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(19, 19)\n" ] }, { "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", "
012345
00.198290-0.3837840.0886260.0319670.028117-0.070646
10.195861-0.3772710.0740320.017982-0.004652-0.082240
20.204369-0.237136-0.216186-0.2358310.077660-0.149646
30.198337-0.377721-0.017166-0.049942-0.038536-0.136660
40.235174-0.314531-0.073085-0.1389850.024299-0.111675
\n", "
" ], "text/plain": [ " 0 1 2 3 4 5\n", "0 0.198290 -0.383784 0.088626 0.031967 0.028117 -0.070646\n", "1 0.195861 -0.377271 0.074032 0.017982 -0.004652 -0.082240\n", "2 0.204369 -0.237136 -0.216186 -0.235831 0.077660 -0.149646\n", "3 0.198337 -0.377721 -0.017166 -0.049942 -0.038536 -0.136660\n", "4 0.235174 -0.314531 -0.073085 -0.138985 0.024299 -0.111675" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pca = PCA()\n", "X_reduced = pca.fit_transform(scale(X))\n", "\n", "print(pca.components_.shape)\n", "pd.DataFrame(pca.components_.T).loc[:4,:5]" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(263, 19)\n", "[7.30749065e+00 4.16564336e+00 2.03815790e+00 1.56251989e+00\n", " 1.00246702e+00 8.28606396e-01 6.91971644e-01 5.14987685e-01\n", " 2.51690120e-01 1.85522541e-01 1.37768673e-01 1.27966318e-01\n", " 9.59512911e-02 6.12697946e-02 5.21743719e-02 2.81122622e-02\n", " 1.41463854e-02 4.88096009e-03 1.19182631e-03]\n" ] }, { "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", "
012345
0-0.0096491.8705221.265145-0.9354811.1096361.211972
10.411434-2.429422-0.909193-0.2642121.2320311.826617
23.4668220.8259470.555469-1.616726-0.857488-1.028712
3-2.558317-0.2309840.519642-2.176251-0.8203011.491696
41.027702-1.5735371.3313823.4940040.9834270.513675
\n", "
" ], "text/plain": [ " 0 1 2 3 4 5\n", "0 -0.009649 1.870522 1.265145 -0.935481 1.109636 1.211972\n", "1 0.411434 -2.429422 -0.909193 -0.264212 1.232031 1.826617\n", "2 3.466822 0.825947 0.555469 -1.616726 -0.857488 -1.028712\n", "3 -2.558317 -0.230984 0.519642 -2.176251 -0.820301 1.491696\n", "4 1.027702 -1.573537 1.331382 3.494004 0.983427 0.513675" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print(X_reduced.shape)\n", "print(pca.explained_variance_)\n", "pd.DataFrame(X_reduced).loc[:4,:5]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The above principal components are the same as in R." ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0.3831, 0.6015, 0.7084, 0.7903, 0.8429, 0.8863, 0.9226, 0.9496,\n", " 0.9628, 0.9725, 0.9797, 0.9864, 0.9914, 0.9946, 0.9973, 0.9988,\n", " 0.9995, 0.9998, 0.9999])" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Variance explained by the principal components\n", "np.cumsum(np.round(pca.explained_variance_ratio_, decimals=4))" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "image/png": "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Z88eIYQQf/75p7C1tRWvvvqqOHfunFi9erVo1apVtfXp27ev2L9/vzh37pwoKCgQzz33nOjbt6/Yt2+fSElJER988IGws7OTzn9MTIx48MEHxYkTJ8TFixfFpk2bxN69e4UQQsTGxopu3bqJI0eOiNTUVJGQkCA2btyo83ujff9cu3ZNODg4iKlTp4qzZ8+K9evXC3d3d51FjQcNGiSUSqV48803xfnz58WqVauETCYTO3bsqPE1I9NisCKLog1WQgjRp08fMXHiRCFEw4NVQECAUKvV0n3BwcFiwIAB0u3y8nLh6OgoVq9eLYS4+0G5ePFiqUxZWZnw9fWVvujffvttERUVpfPcV69elb60hKj48OzevXudx+vj4yPeffddnft69eolpk6dKt0ODQ3V+WCuzqBBg0THjh2FRqOR7ps9e7bo2LGjdDsgIECMHDlS53E1BatffvlFKrNlyxYBQBQVFQkhhIiIiBBjx46tsS7VBavKYUQIIXr37i2mTJlS4z4++OADERYWJt2uK1jNmTNHBAUFidLS0mq31/U6a1+Hr776Stq+evVqAUDs3LlTum/RokUiODhYuj1+/Hjh5uYmCgoKpPuWL18unJychFqtFvn5+cLW1lZ899130vbS0lLh4+MjlixZIoSo32s+dOhQnfAqhBD/93//J1q2bCndBiDmzp0r3c7PzxcAxM8//6zzPNoQIoQQSUlJAoC4dOlSta/bvaoLVgBESkqKVGbZsmXCy8urzn1s2LBBuq+4uFg4ODiIAwcO6JSdNGmSeOqpp4QQFb/PXbp00dn+xhtvVFuf48ePS2UuX74srK2txV9//aXz2KFDh4o5c+YIIYQICQnRCamVPfLII+LZZ5+tdtu975/XX39dBAcH67wPly1bJv0+CFHxXu3fv7/Ofnr16iVmz55d7XOQ6fHCLlms999/Hw888ABeffXVBu+jc+fOsLK6e8Xcy8tLp6OptbU1WrRogczMTJ3HRURESP+3sbFBz549cfbsWQDAH3/8gd27d8PJyanK8128eBHt27cHAISFhdVat9zcXFy/fh39+vXTub9fv374448/6nmEd/Xp00en70tERAQ++ugjqNVqWFtbAwB69uxZr3117dpV+n/Lli0BAJmZmfD398fx48fxj3/8Q6+6VX49tbcrXz754Ycf8Omnn+LixYvIz89HeXk5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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 10-fold CV, with shuffle\n", "n = len(X_reduced)\n", "kf_10 = KFold(n_splits=10, shuffle=True, random_state=1)\n", "\n", "regr = LinearRegression()\n", "mse = []\n", "\n", "# Calculate MSE with only the intercept (no principal components in regression)\n", "score = -1 * cross_val_score(regr, np.ones((n,1)), y.ravel(), cv=kf_10, scoring='neg_mean_squared_error').mean() \n", "mse.append(score)\n", "\n", "# Calculate MSE using CV for the 19 principle components, adding one component at the time.\n", "for i in np.arange(1, 20):\n", " score = -1*cross_val_score(regr, X_reduced[:,:i], y.ravel(), cv=kf_10, scoring='neg_mean_squared_error').mean()\n", " mse.append(score)\n", " \n", "plt.plot(mse, '-v')\n", "plt.xlabel('Number of principal components in regression')\n", "plt.ylabel('MSE')\n", "plt.title('Salary')\n", "plt.xlim(xmin=-1);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The above plot indicates that the lowest training MSE is reached when doing regression on 18 components." ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 106.36859204, -21.60350456, 24.2942534 , -36.9858579 ,\n", " -58.41402748, 62.20632652, 24.63862038, 15.82817701,\n", " 29.57680773, 99.64801199, -30.11209105, 20.99269291,\n", " 72.40210574, -276.68551696, -74.17098665, 422.72580227,\n", " -347.05662353, -561.59691587, -83.25441536])" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "regr_test = LinearRegression()\n", "regr_test.fit(X_reduced, y)\n", "regr_test.coef_" ] } ], "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.9.6" } }, "nbformat": 4, "nbformat_minor": 1 }