{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Chapter 6 - Linear Model Selection and Regularization" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[6.2 Shrinkage Methods](#6.2-Shrinkage-Methods)\n", "> [6.2.1 Ridge Regression](#6.2.1-Ridge-Regression)
\n", "> [6.2.2 The Lasso](#6.2.2-The-Lasso)
\n", "> [6.2.3 Selecting the Tuning Parameter](#6.2.3-Selecting-the-Tuning-Parameter)\n", "\n", "[6.3 Dimension Reduction Methods](#6.3-Dimension-Reduction-Methods)\n", "> [6.3.1 Principal Components Regression](#6.3.1-Principal-Components-Regression)\n", "\n", "[6.5 Lab 1: Subset Selection Methods](#6.5-Lab-1:-Subset-Selection-Methods)\n", "> [6.5.1 Best Subset Selection](#6.5.1-Best-Subset-Selection)
\n", "> [6.5.2 Forward and Backward Stepwise Selection](#6.5.2-Forward-and-Backward-Stepwise-Selection)\n", "\n", "[6.6 Lab 2: Ridge Regression and the Lasso](#6.6-Lab-2:-Ridge-Regression-and-the-Lasso)\n", "> [6.6.1 Ridge Regression](#6.6.1-Ridge-Regression)
\n", "> [6.6.2 The Lasso](#6.6.2-The-Lasso)\n", "\n", "[6.7 Lab 3: PCR and PLS Regression](#6.7-Lab-3:-PCR-and-PLS-Regression)\n", "> [6.7.1 Principal Components Regression](#6.7.1-Principal-Components-Regression)
\n", "> [6.7.2 Partial Least Squares](#6.7.2-Partial-Least-Squares)" ] }, { "cell_type": "code", "execution_count": 381, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "from numpy import linalg\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "from sklearn.preprocessing import scale, StandardScaler\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\n", "\n", "import itertools\n", "from itertools import combinations\n", "\n", "%matplotlib inline\n", "plt.style.use('seaborn-white')" ] }, { "cell_type": "code", "execution_count": 2, "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", "
IncomeLimitRatingCardsAgeEducationBalance
count400.000000400.000000400.000000400.000000400.000000400.000000400.000000
mean45.2188854735.600000354.9400002.95750055.66750013.450000520.015000
std35.2442732308.198848154.7241431.37127517.2498073.125207459.758877
min10.354000855.00000093.0000001.00000023.0000005.0000000.000000
25%21.0072503088.000000247.2500002.00000041.75000011.00000068.750000
50%33.1155004622.500000344.0000003.00000056.00000014.000000459.500000
75%57.4707505872.750000437.2500004.00000070.00000016.000000863.000000
max186.63400013913.000000982.0000009.00000098.00000020.0000001999.000000
\n", "
" ], "text/plain": [ " Income Limit Rating Cards Age \\\n", "count 400.000000 400.000000 400.000000 400.000000 400.000000 \n", "mean 45.218885 4735.600000 354.940000 2.957500 55.667500 \n", "std 35.244273 2308.198848 154.724143 1.371275 17.249807 \n", "min 10.354000 855.000000 93.000000 1.000000 23.000000 \n", "25% 21.007250 3088.000000 247.250000 2.000000 41.750000 \n", "50% 33.115500 4622.500000 344.000000 3.000000 56.000000 \n", "75% 57.470750 5872.750000 437.250000 4.000000 70.000000 \n", "max 186.634000 13913.000000 982.000000 9.000000 98.000000 \n", "\n", " Education Balance \n", "count 400.000000 400.000000 \n", "mean 13.450000 520.015000 \n", "std 3.125207 459.758877 \n", "min 5.000000 0.000000 \n", "25% 11.000000 68.750000 \n", "50% 14.000000 459.500000 \n", "75% 16.000000 863.000000 \n", "max 20.000000 1999.000000 " ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_credit = pd.read_csv('Data/Credit.csv', index_col=0)\n", "df_credit[\"Gender\"] = df_credit[\"Gender\"].astype('category')\n", "df_credit[\"Student\"] = df_credit[\"Student\"].astype('category')\n", "df_credit[\"Married\"] = df_credit[\"Married\"].astype('category')\n", "df_credit[\"Ethnicity\"] = df_credit[\"Ethnicity\"].astype('category')\n", "df_credit.describe()" ] }, { "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", "
GenderStudentMarriedEthnicity
count400400400400
unique2223
topFemaleNoYesCaucasian
freq207360245199
\n", "
" ], "text/plain": [ " Gender Student Married Ethnicity\n", "count 400 400 400 400\n", "unique 2 2 2 3\n", "top Female No Yes Caucasian\n", "freq 207 360 245 199" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_credit.describe(include='category')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Int64Index: 400 entries, 1 to 400\n", "Data columns (total 11 columns):\n", "Income 400 non-null float64\n", "Limit 400 non-null int64\n", "Rating 400 non-null int64\n", "Cards 400 non-null int64\n", "Age 400 non-null int64\n", "Education 400 non-null int64\n", "Gender 400 non-null category\n", "Student 400 non-null category\n", "Married 400 non-null category\n", "Ethnicity 400 non-null category\n", "Balance 400 non-null int64\n", "dtypes: category(4), float64(1), int64(6)\n", "memory usage: 26.9 KB\n" ] } ], "source": [ "df_credit.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 6.2 Shrinkage Methods" ] }, { "cell_type": "code", "execution_count": 5, "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", "
AgeCardsEducationIncomeLimitRatingEthnicity_AsianEthnicity_CaucasianGender_FemaleMarried_YesStudent_Yes
13421114.891360628301010
282315106.025664548310111
371411104.593707551410000
\n", "
" ], "text/plain": [ " Age Cards Education Income Limit Rating Ethnicity_Asian \\\n", "1 34 2 11 14.891 3606 283 0 \n", "2 82 3 15 106.025 6645 483 1 \n", "3 71 4 11 104.593 7075 514 1 \n", "\n", " Ethnicity_Caucasian Gender_Female Married_Yes Student_Yes \n", "1 1 0 1 0 \n", "2 0 1 1 1 \n", "3 0 0 0 0 " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y = df_credit.Balance\n", "\n", "X = df_credit[df_credit.columns.difference(['Balance'])]\n", "# Use K-1 columns for K categories so Yes/No uses only one column 0/1\n", "X = pd.get_dummies(X, drop_first=True)\n", "X_scaled = scale(X)\n", "X.head(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 6.2.1 Ridge Regression" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "n_lambdas = 200\n", "lambdas = np.logspace(5, -2, n_lambdas)\n", "\n", "coefs = []\n", "scores = []\n", "for lam in lambdas:\n", " ridge = Ridge(alpha=lam)\n", " # it's very important to scale the data for Ridge regression\n", " ridge.fit(X_scaled, y)\n", " coefs.append(ridge.coef_)\n", " scores.append(ridge.score(X_scaled, y))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(15,4))\n", "\n", "# get the four largest (in abs value) coefficient positions\n", "ind = np.argpartition(np.abs(coefs[-1]), -4)[-4:]\n", "\n", "# firt plot\n", "ax1.plot(lambdas, coefs)\n", "ax1.set_xscale('log')\n", "ax1.set_xlabel('lambda')\n", "ax1.set_ylabel('Standardized Coefficients')\n", "ax1.legend(np.array(ax1.get_lines())[ind], X.columns[ind])\n", "\n", "# second plot\n", "no_ridge_norm = linalg.norm(coefs[-1])\n", "norm_coefs = linalg.norm(coefs/no_ridge_norm, axis=1)\n", "ax2.plot(norm_coefs, coefs)\n", "ax2.set_xlabel('Normalized Ridge coefficients')\n", "ax2.set_ylabel('Standardized Coefficients')\n", "ax2.legend(np.array(ax2.get_lines())[ind], X.columns[ind]);\n", "\n", "# third\n", "ax3.plot(lambdas, scores)\n", "ax3.set_xscale('log')\n", "ax3.set_xlabel('lambda')\n", "ax3.set_ylabel('R^2')\n", "ax3.set_title('R^2 as a function of regularization');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 6.2.2 The Lasso" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "n_lambdas = 200\n", "lambdas = np.logspace(3, 0.5, n_lambdas)\n", "\n", "coefs = []\n", "scores = []\n", "for lam in lambdas:\n", " lasso = Lasso(alpha=lam)\n", " lasso.fit(X_scaled, y)\n", " coefs.append(lasso.coef_)\n", " scores.append(lasso.score(X_scaled, y))" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(15,4))\n", "\n", "# get the four largest (in abs value) coefficient positions\n", "ind = np.argpartition(np.abs(coefs[-1]), -4)[-4:]\n", "\n", "# firt plot\n", "ax1.plot(lambdas, coefs)\n", "ax1.set_xscale('log')\n", "ax1.set_xlabel('lambda')\n", "ax1.set_ylabel('Standardized Coefficients')\n", "ax1.legend(np.array(ax1.get_lines())[ind], X.columns[ind])\n", "\n", "# second plot\n", "no_lasso_norm = linalg.norm(coefs[-1], ord=1)\n", "norm_coefs = linalg.norm(coefs/no_lasso_norm, axis=1, ord=1)\n", "ax2.plot(norm_coefs, coefs)\n", "ax2.set_xlabel('Normalized Lasso coefficients')\n", "ax2.set_ylabel('Standardized Coefficients')\n", "ax2.legend(np.array(ax2.get_lines())[ind], X.columns[ind]);\n", "\n", "# third\n", "ax3.plot(lambdas, scores)\n", "ax3.set_xscale('log')\n", "ax3.set_xlabel('lambda')\n", "ax3.set_ylabel('R^2')\n", "ax3.set_title('R^2 as a function of regularization');\n", "\n", "# the values for lambda are different here than in the text\n", "# most likely the function that is minimized is a bit different in scikit-learn and R\n", "# there's probably a factor of N or 2N (N=len(y)) difference." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 6.2.3 Selecting the Tuning Parameter" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "lambdas = np.logspace(0.5, -4, 100)\n", "ridgeCV = RidgeCV(alphas=lambdas, store_cv_values=True)\n", "ridgeCV.fit(X_scaled, y)\n", "MSE_alphas = np.mean(ridgeCV.cv_values_, axis=0)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1, 1, figsize=(5,4))\n", "ax.plot(lambdas, MSE_alphas)\n", "ax.axvline(ridgeCV.alpha_, color='k', linestyle='--')\n", "ax.set_xscale('log')\n", "ax.set_xlabel('lambda')\n", "ax.set_ylabel('CV MSE');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 6.3 Dimension Reduction Methods" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 6.3.1 Principal Components Regression" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "components = list(range(1, X_scaled.shape[1]+1))\n", "coefs = []\n", "scores = []\n", "for comp in components:\n", " pca = PCA(n_components=comp)\n", " X_pca_comp = pca.fit_transform(X_scaled)\n", " # use the first comp components\n", " #X_pca_comp = X_pca[:, 0:comp+1]\n", " linear = LinearRegression(fit_intercept=False)\n", " linear.fit(X_pca_comp, y)\n", " coefs.append(linear.coef_)\n", " scores.append(linear.score(X_pca_comp, y))" ] }, { "cell_type": "code", "execution_count": 382, "metadata": {}, "outputs": [], "source": [ "coefs = np.array(list(itertools.zip_longest(*coefs, fillvalue=0))).T" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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adOmsXbtWsBJct59911mz55NVVUVq1ev5tJLL+X000/nggsuYNq0aXTp0oWpU6dSVlZGOBzm7rvv5o033qBHjx5s3bqVbdu2MW3aNMrKyjj11FMZP348K1as4O677+Yf//hHk7G98MILTJgwgb59+/Lqq68yefJkqqurufbaawkEAlRVVfHzn/+cMWPGcNhhhzFnzhwWLFiwPTGrqqri7rvvJj09nRtvvJE+ffqwZs0a9t9/f26//fZWfMomniTHz0tFWyirC9LJ17FHVBrTnoVCYW58fhFrt1Ty7E/H0quTP9EhmTbUZDKmqkuAJSLyf6q6TkS6AEF35FCzGhuZVO/YMSKSD7yJ0+RZv+dhZORRdoP93pYkYok2b948Lrjggu2vjzrqKE477TR69OjBAQccAMAZZ5zBqFGjmDp1KnPmzAEgEAgwY8YMVq5cyeWXX/69mq9jjjmG8847j7lz5/Lll19uP3bFFVfw1FNPMW3aNObNm8ezzz7L+PHjefHFFznzzDObjDMQCLBw4UJ+//vfM2zYMK688komT57M6tWr2bhxI4899hibNm1i5cqVO11XUFDAH//4R3r37s3DDz/MrFmzOPXUU1m5ciUzZswgKyuL4447jpKSEnr27NkWH6mJkUgn/uXlVYzsnJPgaIwxTXlo9gr++3URvzl1X0YP7tiz1aei5popR+AkVIeIyOk4nVm3ishNqvpGSwsSkV8Aa1X1SZwO/EFVLRWRGncm629wJpe9HegPnAo87/YZW9zUfZuSM7J1tVhtoalmyvr2289p6e3RowdVVU6fnfx8p/2/b9++1NTU7HT+t99+uz2xGjduXKP3BBgzZgx33HEHmzZtYs6cOdxwww1Nxvn6668TCoW47LLLACgpKWHu3LmMGzeO888/nxtuuIG6urqdEkuA3r17c8cdd5CdnU1RUREjRowAYODAgdubOXv27El1dXWTZZv2YfsalZaMGdNufVhQwj1vKz88sB8/PnRwosMxMdBcM+UdOGux1bqjg07CGbY9E2hxMgY8ijPCaArOOm4Xu/svB552972tqvNF5BPgeBH5GGeU0sWN3TCZeDweQqHQTq8bO6cpQ4YMYfHixeTn5/PJJ5/wwQcf4PfvqKYOuyuwejweTj31VO644w4OO+ww0tObnnvmxRdf5OGHH2bYsGGAk5w9/fTTdOvWjfLy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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10,4))\n", "\n", "# get the four largest (in abs value) coefficient positions\n", "ind = np.argpartition(np.abs(coefs[-1]), -4)[-4:]\n", "\n", "# firt plot\n", "ax1.plot(components, coefs)\n", "ax1.set_xlabel('Number of PCA components')\n", "ax1.set_ylabel('Standardized Coefficients')\n", "ax1.legend(np.array(ax1.get_lines())[ind], X.columns[ind])\n", "\n", "# third\n", "ax2.plot(components, scores)\n", "ax2.set_xlabel('Number of PCA components')\n", "ax2.set_ylabel('R^2')\n", "ax2.set_title('R^2 as a function of regularization');\n", "\n", "# i'm not sure what Figure 6.20 is displaying\n", "# this is not the same" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 6.5 Lab 1: Subset Selection Methods" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [], "source": [ "df_hitters = pd.read_csv('Data/Hitters.csv', index_col=0).dropna()\n", "df_hitters.index.name = 'Player'\n", "df_hitters.index = df_hitters.index.map(lambda x: x.replace('-', '', 1))\n", "df_hitters[\"League\"] = df_hitters[\"League\"].astype('category')\n", "df_hitters[\"Division\"] = df_hitters[\"Division\"].astype('category')\n", "df_hitters[\"NewLeague\"] = df_hitters[\"NewLeague\"].astype('category')" ] }, { "cell_type": "code", "execution_count": 94, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \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
Andres Galarraga3218710394230239610112484633NE80540491.5N
Alfredo Griffin5941694745135114408113319501336194AW28242125750.0A
\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", "Andres Galarraga 321 87 10 39 42 30 2 396 101 \n", "Alfredo Griffin 594 169 4 74 51 35 11 4408 1133 \n", "\n", " CHmRun CRuns CRBI CWalks League Division PutOuts \\\n", "Player \n", "Alan Ashby 69 321 414 375 N W 632 \n", "Alvin Davis 63 224 266 263 A W 880 \n", "Andre Dawson 225 828 838 354 N E 200 \n", "Andres Galarraga 12 48 46 33 N E 805 \n", "Alfredo Griffin 19 501 336 194 A W 282 \n", "\n", " Assists Errors Salary NewLeague \n", "Player \n", "Alan Ashby 43 10 475.0 N \n", "Alvin Davis 82 14 480.0 A \n", "Andre Dawson 11 3 500.0 N \n", "Andres Galarraga 40 4 91.5 N \n", "Alfredo Griffin 421 25 750.0 A " ] }, "execution_count": 94, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_hitters.head()" ] }, { "cell_type": "code", "execution_count": 126, "metadata": {}, "outputs": [], "source": [ "X = df_hitters[df_hitters.columns.difference(['Salary'])]\n", "X = pd.get_dummies(X, drop_first=True)\n", "y = df_hitters['Salary']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 6.5.1 Best Subset Selection" ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [], "source": [ "# we could also use Exhaustive Feature Selector from mlxtend\n", "# http://rasbt.github.io/mlxtend/user_guide/feature_selection/ExhaustiveFeatureSelector/\n", "def best_subset(estimator, X, y, max_size=8, cv=5):\n", " n_features = X.shape[1]\n", " subsets = (combinations(range(n_features), k + 1) for k in range(min(n_features, max_size)))\n", "\n", " best_size_subset = []\n", " for subsets_k in subsets: # for each list of subsets of the same size\n", " best_score = -np.inf\n", " best_subset = None\n", " for subset in subsets_k: # for each subset\n", " estimator.fit(X.iloc[:, list(subset)], y)\n", " # get the subset with the best score among subsets of the same size\n", " score = estimator.score(X.iloc[:, list(subset)], y)\n", " if score > best_score:\n", " best_score, best_subset = score, subset\n", " # to compare subsets of different sizes we must use CV\n", " # first store the best subset of each size\n", " best_size_subset.append(best_subset)\n", " \n", " # compare best subsets of each size\n", " best_score = -np.inf\n", " best_subset = None\n", " list_scores = []\n", " for subset in best_size_subset:\n", " score = cross_val_score(estimator, X.iloc[:, list(subset)], y, cv=cv).mean()\n", " list_scores.append(score)\n", " if score > best_score:\n", " best_score, best_subset = score, subset\n", "\n", " return best_subset, best_score, best_size_subset, list_scores" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [], "source": [ "# very slow!, results are given below\n", "#lm = LinearRegression()\n", "#best_subset(lm, X, y, max_size=8, cv=5)" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [], "source": [ "# results of best_subset(lm, X, y, max_size=8, cv=5)\n", "best_subset, best_score, best_size_subset, list_scores = (\n", " (1, 5, 9, 11, 14, 16), \n", " 0.41901698933468134,\n", " [(5,),\n", " (5, 9),\n", " (5, 9, 11),\n", " (5, 9, 11, 16),\n", " (1, 5, 9, 11, 16),\n", " (1, 5, 9, 11, 14, 16),\n", " (2, 3, 4, 9, 11, 14, 16),\n", " (1, 4, 6, 7, 9, 11, 14, 16)],\n", " [0.2814147499343555,\n", " 0.3666886710091333,\n", " 0.364425331129966,\n", " 0.37839204327295717,\n", " 0.39425582486482524,\n", " 0.41901698933468134,\n", " 0.39758595297949645,\n", " 0.40534090030548126])" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1 ['CRBI']\n", "2 ['CRBI' 'Hits']\n", "3 ['CRBI' 'Hits' 'PutOuts']\n", "4 ['CRBI' 'Hits' 'PutOuts' 'Division_W']\n", "5 ['AtBat' 'CRBI' 'Hits' 'PutOuts' 'Division_W']\n", "6 ['AtBat' 'CRBI' 'Hits' 'PutOuts' 'Walks' 'Division_W']\n", "7 ['CAtBat' 'CHits' 'CHmRun' 'Hits' 'PutOuts' 'Walks' 'Division_W']\n", "8 ['AtBat' 'CHmRun' 'CRuns' 'CWalks' 'Hits' 'PutOuts' 'Walks' 'Division_W']\n" ] } ], "source": [ "# same results as the book\n", "for subset in best_size_subset:\n", " print(len(subset), X.columns[list(subset)].values)" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1, 1, figsize=(5,4))\n", "\n", "ax.plot(range(1,9), list_scores, '.-')\n", "ax.set_xlabel('Subset length')\n", "ax.set_ylabel('R^2');" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 6.5.2 Forward and Backward Stepwise Selection" ] }, { "cell_type": "code", "execution_count": 124, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZQAAAEPCAYAAABlZDIgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xl8VNXd+PHPvXfWZCaEsMewBAEFXBDQiAItyFKpRa2kgEofW1v0qaYVBEFWQQRcwCoo1qWPtNKKEbVq+xMRFwSVTVFBsATDThYSssxk1nvP749JBsYkMAlZJsl5v17zSubMuWfOTDL3O2e9ihBCIEmSJEnnSW3sCkiSJEnNgwwokiRJUp2QAUWSJEmqEzKgSJIkSXVCBhRJkiSpTsiAIkmSJNUJU2NXQGo4u3btYtmyZRQVFSGEoGPHjsyYMYOePXs2dtXCPv74Y77++mv+9Kc/sXHjRj7//HPmzJlTbf6jR4/yi1/8gq+++qrSY8OHD8dsNmOz2cJp7du354UXXqiXutdUYWEhgwYN4vvvv6/0WF5eHosXL+bAgQMA2Gw27rrrLkaMGHHWMrdu3crDDz/Mu+++W6s6ZWZm4vf7ue222/jnP/9JaWkpkydPrlVZVXn88ccZNGgQgwcPPq9yXC4XS5cu5euvv0ZRFFRV5bbbbiM9PR2IfB0/tnDhQlq3bk1GRgYzZ85ky5YtJCUlReS55ZZb+PWvf33OeixdupRhw4aRlpZ2Xq+nuZABpYXw+/3cdddd/PWvf6Vv374A/Otf/+L3v/89GzduRNO0Rq5hyLfffktxcTEA1113Hdddd915lffEE09w6aWX1kXVGtScOXO45ppr+POf/wxAVlYWEydOJDU1lQsvvLDennfnzp3hLxgTJ06s07J37drFgQMHmD59+nmXtWzZMuLi4nj77bdRFIXc3FzGjx9Pp06dGDx4cMTrOJc77riDO++8s1b1uOeee7j11lvJzMyM+OLSUsmA0kJ4PB5KS0spKysLp40dOxaHw4Gu62iaxocffsiqVasIBALYbDZmzJjBFVdcQWlpKXPmzGHfvn20b9+eTp060blzZzIyMhg+fDhPPfVU+KR95v0vv/ySJ554Ao/Hg6qq3HvvvQwbNow33niDDRs2oKoqhw4dwmaz8eijj+JyuXj11VfRdR2n00nXrl1Zv349f/nLX9i1axePP/44fr+f/Px8rrnmGhYvXlzr92P//v0sXLiQoqIiFEXht7/9LTfddBNbt27lkUceIS4uDrfbTTAYZN68eQwaNIh3332XBx98kO3bt2Oz2Zg9ezZ9+/Zl0KBBLFy4ELfbTX5+PhdffDF//vOfsVqtXHLJJVx33XXs27ePJ554ghMnTvDkk09it9u55JJLqq1ffn4+Xq8XwzBQVZUePXqwatUqEhISADhw4ACPPPIIRUVF6LrOpEmTGDduXEQZfr+fJ554gu3bt6PrOn369GHOnDk4HA6ys7OZN28ehYWFqKrK//7v/2I2m/nwww/ZsmULNpuNwsJCTp06xbx58876fj355JN07tyZ/fv3EwwGWbBgAQMGDKj0mlasWMHtt98OwI033sjMmTPP+r7eeuutZ31/2rRpQyAQwGKx0KFDB1asWEFiYiIbNmyIeB033ngjs2fPDv//appWZf2qMnz4cC677DK+//57pk6dypIlSyLujxw5kiuuuIK1a9fyP//zP1GV2awJqcX461//Ki677DIxfPhwMW3aNJGZmSnKysqEEEJkZ2eLG264QRQWFgohhPjvf/8rrr32WuF2u8XDDz8spk+fLgzDEPn5+WLIkCHi6aefFkIIMWzYMPHNN9+En6PiflFRkRg1apQ4cuSIEEKInJwcMXToUHHs2DGxbt06MWDAAHHixAkhhBALFy4UDzzwgBBCiKefflosWLBACCHEunXrxOTJk4UQQkyZMkV88cUXQgghXC6XSEtLE99++604cuSI6NevX5Wvd9iwYWLUqFFi7Nix4dt3330nAoGAuO6668T69evDdRsyZIj48ssvxRdffCEuvvhicfToUSGEECtWrBBLly4VQgjxwAMPiGuvvVZ8+umnwjAMce2114q8vDyxdOlS8dZbbwkhhPD7/eKGG24Q7733nhBCiF69eok333xTCCFEfn6+GDBggNi/f78QQojnnntO9OrVq8q6f/bZZ+Laa68VV111lbj77rvFCy+8IHJycoQQQgQCATFmzBixe/duIYQQJSUl4vrrrxdfffWV+OKLL8TPf/7ziLobhiGEEGLZsmVi/vz5QgghbrrpJvHKK68IIYQ4fvy4uO6660RpaamYMWOGePHFFyP+Fud6v3r37i2+++47IYQQL730krjtttsqvZ7i4mJx+eWX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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Sequential Forward Selection:\n", "['AtBat', 'CRBI', 'CRuns', 'CWalks', 'Hits', 'PutOuts', 'Walks', 'Years', 'Division_W']\n", "CV Score:\n", "-106654.37407806469\n" ] } ], "source": [ "# Use the Sequential Feature Selector from mlxtend\n", "# http://rasbt.github.io/mlxtend/user_guide/feature_selection/SequentialFeatureSelector/\n", "from mlxtend.feature_selection import SequentialFeatureSelector as SFS\n", "from mlxtend.plotting import plot_sequential_feature_selection as plot_sfs\n", "\n", "lr = LinearRegression()\n", "\n", "sfs = SFS(lr, \n", " k_features=(1,len(X.columns)), \n", " forward=True, \n", " floating=False, \n", " scoring='neg_mean_squared_error',\n", " cv=10)\n", "\n", "sfs = sfs.fit(X.values, y)\n", "fig = plot_sfs(sfs.get_metric_dict(), kind='std_err')\n", "\n", "plt.title('Sequential Forward Selection (w. StdErr)')\n", "plt.grid()\n", "plt.show()\n", "\n", "print('\\nSequential Forward Selection:')\n", "print(X.columns[list(sfs.k_feature_idx_)].tolist())\n", "print('CV Score:')\n", "print(sfs.k_score_)" ] }, { "cell_type": "code", "execution_count": 125, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZQAAAEPCAYAAABlZDIgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xl8VNXd+PHPvXe2ZGaysYcABsIWFDEgEUEqyKI8gFahaJFWq6K/tlFUEEUWQQRXVMTi0lp51EcW0dalRRGKFFQ2iwpFZIlhD4GQZfaZe8/vj0kGIkmYhOyc9+sVyNx75sy5M5n7vWe55yhCCIEkSZIknSe1vgsgSZIkNQ0yoEiSJEk1QgYUSZIkqUbIgCJJkiTVCBlQJEmSpBohA4okSZJUI2RAaaK2b9/OhAkTGDVqFCNHjuTOO+9kz5499V2sMtatW8eLL74IwJo1a5g7d26l6Q8dOsRll11W7r6uXbsyatQorr/+ekaNGsXo0aP5/PPPq122l156iTlz5lT7+dWxatUqJkyYUO6+6n6e53sc06dPZ8eOHQA8+uijfPnll9XO6+d0Xefuu+/mxIkT553Xvn37mDhxIqNGjWLUqFHceuutbN26NbL/zOP4uZEjR7Jp0yYABg8ezPDhw7n++uvL/HzzzTdRH8/JkyfP+3gaK1N9F0CqeYFAgLvvvps33niDHj16APD3v/+du+66izVr1qBpWj2XMOz777+nsLAQgGuuuYZrrrnmvPJbsmQJSUlJAHz77bf89re/ZfPmzVgslvMua32qz8/zyy+/ZNy4cQA88cQTNZr3G2+8Qd++fWnevPl553XvvfcyadIkhg4dCsCWLVu4++67WbNmDQkJCWWO41yeffZZLrnkkiqXQdM07rzzTmbPns3ChQur/PymQAaUJsjr9VJcXIzH44lsGz16NA6HA13X0TSNtWvXsnjxYoLBIDabjalTp3LZZZdRXFzM9OnT+eGHH2jZsiVt2rShXbt2ZGVlMXjwYF588cXIl+3Mx9988w3PPvssXq8XVVX54x//yKBBg3j//fdZvXo1qqqSk5ODzWbjqaeewuVysXTpUnRdx+l00qFDBz799FNeffVVtm/fzjPPPEMgECAvL48rr7ySefPmVek9KCgoICkpCZMp/Cf+yiuvsGbNGnw+H16vl6lTpzJ06FBCoRDPPPMM69atQ9M0LrvsMmbNmlUmrzfffJP333+f119/nWuvvZaNGzcSGxvLzJkz2b9/P2+//TYAw4YNY/HixRw4cIBXX32VQCBAfn4+N9xwA5MmTWLTpk088cQTxMbG4na7WblyJYsXL+ajjz4iISGBDh061Pjneabc3FzmzJnD0aNHCQaD/M///A/33HMPAP/617944YUXMAyD2NhYZs+ezT//+U+OHz/O5MmTefrpp3n22WcZP3481157LZ9//jmLFi3CMAzsdjuPPPIIPXv25KWXXuLw4cPk5eVx+PBhWrVqxTPPPEPLli3POqYlS5bw0UcfcerUKQYPHnzO97VTp04Vft55eXll3p/LL7+cF154AU3TeP7558sch91uZ9q0aXi9Xjp27FjmeZU5dOgQ48ePp1OnThw+fJgnn3ySSZMmRR6/9dZbXH755cyaNYtdu3bRvXv3qPJtUoTUJL3xxhuiZ8+eYvDgwWLy5MlixYoVwuPxCCGEyM7OFiNHjhT5+flCCCF+/PFH0b9/f+F2u8Xjjz8upkyZIgzDEHl5eeKqq64SCxcuFEIIMWjQIPHdd99FXqP0cUFBgRg2bJg4ePCgEEKIY8eOiYEDB4rDhw+LlStXit69e4ujR48KIYSYM2eOeOihh4QQQixcuFDMnj1bCCHEypUrxcSJE4UQQtx///3i66+/FkII4XK5RGZmpvj+++/FwYMHRa9evco93i5duoiRI0eK0aNHiyFDhoiuXbuKZcuWCSGEOHTokJgwYYLwer1CCCE+/vhjMXLkSCGEEEuWLBHjx48XXq9X6Lou7rvvPvHBBx9Eyvbaa6+JcePGicLCQiGEEBMmTBBr164VQggxbNgwceWVVwqXyyX27NkjrrvuOmEYhrj11ltFdnZ25L3o3r27OHnypPj6669Ft27dxKFDh4QQQqxevVqMGDFCFBcXi2AwKCZOnChuvfXWGv08z3yPJ0yYINasWSOEEMLn84kJEyaITz75ROTl5YnevXuLnTt3CiGE+PTTT8Udd9xx1md+6623in/+859i79694sorrxQHDhwQQgjx5Zdfiv79+4vi4mKxcOFCcc0114ji4mIhhBB33323ePHFF886nrVr15Y51nO9r+fy0UcfiT59+oj+/fuLe++9V7z11lvi1KlTkf1nHsf1118vli9fLoQQYuvWraJr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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Sequential Backward Selection:\n", "['AtBat', 'CAtBat', 'CRBI', 'CRuns', 'CWalks', 'Hits', 'PutOuts', 'Walks', 'Division_W']\n", "CV Score:\n", "-106618.88199929385\n" ] } ], "source": [ "lr = LinearRegression()\n", "sbs = SFS(lr, \n", " k_features=(1,len(X.columns)), \n", " forward=False, \n", " floating=False, \n", " scoring='neg_mean_squared_error',\n", " cv=10)\n", "\n", "sbs = sbs.fit(X.values, y)\n", "fig = plot_sfs(sbs.get_metric_dict(), kind='std_err')\n", "\n", "plt.title('Sequential Backward Selection (w. StdErr)')\n", "plt.grid()\n", "plt.show()\n", "\n", "print('\\nSequential Backward Selection:')\n", "print(X.columns[list(sbs.k_feature_idx_)].tolist())\n", "print('CV Score:')\n", "print(sbs.k_score_)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 6.6 Lab 2: Ridge Regression and the Lasso" ] }, { "cell_type": "code", "execution_count": 177, "metadata": {}, "outputs": [], "source": [ "# same data split as the book\n", "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", "\n", "# use the same transformation for train and test\n", "scaler = StandardScaler().fit(X_train)\n", "X_train_scaled = scaler.transform(X_train)\n", "X_test_scaled = scaler.transform(X_test)" ] }, { "cell_type": "code", "execution_count": 228, "metadata": {}, "outputs": [], "source": [ "def find_nearest_idx(array, value):\n", " array = np.asarray(array)\n", " idx = (np.abs(array - value)).argmin()\n", " return idx" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 6.6.1 Ridge Regression" ] }, { "cell_type": "code", "execution_count": 367, "metadata": {}, "outputs": [], "source": [ "# alpha = lambda/2\n", "n_lambdas = 100\n", "lambdas = np.logspace(5, -2, n_lambdas)\n", "alphas = lambdas/2\n", "\n", "coefs = []\n", "scores = []\n", "for alpha in alphas:\n", " ridge = Ridge(alpha=alpha)\n", " ridge.fit(X_train_scaled, y_train)\n", " coefs.append(ridge.coef_)\n", " scores.append(mean_squared_error(y_test, ridge.predict(X_test_scaled)))\n", "coefs = np.array(coefs)[:,0,:]\n", "scores = np.array(scores)" ] }, { "cell_type": "code", "execution_count": 368, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# norm of coefs\n", "norm_coefs = linalg.norm(coefs, axis=1)\n", "norm_coefs_line = plt.plot(alphas, norm_coefs)\n", "plt.plot(alphas, coefs)\n", "plt.xscale('log')\n", "plt.xlabel('alpha')\n", "plt.ylabel('Norm of Ridge coefficients');\n", "plt.legend(norm_coefs_line, ['Total norm']);" ] }, { "cell_type": "code", "execution_count": 369, "metadata": {}, "outputs": [], "source": [ "idx_4 = find_nearest_idx(lambdas, 4)\n", "idx_10e10 = find_nearest_idx(lambdas, 10e10)\n", "\n", "# Ridge with alpha=0 (same as normal LinearRegression)\n", "ridge = Ridge(alpha=0)\n", "ridge.fit(X_train_scaled, y_train)\n", "lr_MSE = mean_squared_error(y_test, ridge.predict(X_test_scaled))" ] }, { "cell_type": "code", "execution_count": 370, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE for intercept-only model: 193253\n", "MSE for lambda = 0: 114781\n", "MSE for lambda = 4: 98606\n", "MSE for lambda = 10^10: 190139\n" ] } ], "source": [ "print(f'MSE for intercept-only model: {np.mean(((y_train.mean()-y_test)**2))[0]:.0f}')\n", "print(f'MSE for lambda = 0: {lr_MSE:.0f}')\n", "print(f'MSE for lambda = 4: {scores[idx_4]:.0f}')\n", "print(f'MSE for lambda = 10^10: {scores[idx_10e10]:.0f}')" ] }, { "cell_type": "code", "execution_count": 371, "metadata": {}, "outputs": [], "source": [ "ridgeCV = RidgeCV(alphas=alphas, cv=10, scoring='neg_mean_squared_error')\n", "ridgeCV.fit(X_train_scaled, y_train)\n", "ridgeCV_alpha = ridgeCV.alpha_" ] }, { "cell_type": "code", "execution_count": 373, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE for the best lambda = 242: 96922\n" ] } ], "source": [ "ridge = Ridge(alpha=ridgeCV_alpha)\n", "ridge.fit(X_train_scaled, y_train)\n", "ridge_MSE = mean_squared_error(y_test, ridge.predict(X_test_scaled))\n", "print(f'MSE for the best lambda = {ridgeCV_alpha*2:.0f}: {ridge_MSE:.0f}')" ] }, { "cell_type": "code", "execution_count": 374, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Intercept 535.925882\n", "Assists 6.256680\n", "AtBat 4.230942\n", "CAtBat 25.453157\n", "CHits 42.138824\n", "CHmRun 37.083594\n", "CRBI 44.617907\n", "CRuns 42.728298\n", "CWalks 7.394743\n", "Errors -12.112109\n", "Hits 45.839927\n", "HmRun 1.061817\n", "PutOuts 53.824576\n", "RBI 22.566189\n", "Runs 28.448012\n", "Walks 39.297081\n", "Years 0.467366\n", "Division_W -46.095585\n", "League_N 13.701139\n", "NewLeague_N 3.533970\n", "dtype: float64" ] }, "execution_count": 374, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# all data\n", "ridge = Ridge(alpha=ridgeCV_alpha)\n", "ridge.fit(X_scaled, y)\n", "# much larger than in the book\n", "pd.Series(np.array((ridge.intercept_, *ridge.coef_)), index=['Intercept', *X.columns])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 6.6.2 The Lasso" ] }, { "cell_type": "code", "execution_count": 375, "metadata": {}, "outputs": [], "source": [ "n_alphas = 200\n", "alphas = np.logspace(3, -2, n_alphas)\n", "\n", "coefs = []\n", "scores = []\n", "for alpha in alphas:\n", " lasso = Lasso(alpha=alpha, max_iter=10000)\n", " lasso.fit(X_train_scaled, y_train)\n", " coefs.append(lasso.coef_)\n", " scores.append(mean_squared_error(y_test, lasso.predict(X_test_scaled)))" ] }, { "cell_type": "code", "execution_count": 376, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# norm of coefs\n", "norm_coefs = linalg.norm(coefs, axis=1)\n", "norm_coefs_line = plt.plot(alphas, norm_coefs)\n", "plt.plot(alphas, coefs)\n", "plt.xscale('log')\n", "plt.xlabel('alpha')\n", "plt.ylabel('Norm of Ridge coefficients');\n", "plt.legend(norm_coefs_line, ['Total norm']);" ] }, { "cell_type": "code", "execution_count": 377, "metadata": {}, "outputs": [], "source": [ "lassoCV = LassoCV(alphas=alphas, cv=10, max_iter=10000)\n", "lassoCV.fit(X_train_scaled, y_train.values.ravel())\n", "lassoCV_alpha = lassoCV.alpha_" ] }, { "cell_type": "code", "execution_count": 378, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE for the best lambda = 62: 101781\n" ] } ], "source": [ "lasso = Lasso(alpha=lassoCV_alpha)\n", "lasso.fit(X_train_scaled, y_train)\n", "lasso_MSE = mean_squared_error(y_test, lasso.predict(X_test_scaled))\n", "print(f'MSE for the best lambda = {lassoCV_alpha*2:.0f}: {lasso_MSE:.0f}')" ] }, { "cell_type": "code", "execution_count": 379, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Intercept 535.925882\n", "CRBI 127.568265\n", "CRuns 63.205299\n", "Hits 78.669615\n", "PutOuts 51.280542\n", "Walks 44.412184\n", "Division_W -38.812489\n", "dtype: float64" ] }, "execution_count": 379, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# all data\n", "lasso = Lasso(alpha=lassoCV_alpha)\n", "lasso.fit(X_scaled, y)\n", "# much larger than in the book\n", "coefs_lasso = pd.Series(np.array((lasso.intercept_, *lasso.coef_)), index=['Intercept', *X.columns])\n", "coefs_lasso = coefs_lasso[coefs_lasso != 0]\n", "coefs_lasso" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 6.7 Lab 3: PCR and PLS Regression" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 6.7.1 Principal Components Regression" ] }, { "cell_type": "code", "execution_count": 486, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([38.89, 60.24, 70.84, 79.06, 84. , 88.51, 92.61, 95.2 , 96.78,\n", " 97.62, 98.27, 98.88, 99.26, 99.55, 99.77, 99.89, 99.95, 99.98,\n", " 99.98])" ] }, "execution_count": 486, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pca = PCA()\n", "X_train_pca = pca.fit_transform(X_train_scaled)\n", "np.cumsum(np.round(pca.explained_variance_ratio_, decimals=4)*100)" ] }, { "cell_type": "code", "execution_count": 472, "metadata": {}, "outputs": [], "source": [ "components = range(0, X_scaled.shape[1]+1)\n", "scores = []\n", "linear = LinearRegression()\n", "\n", "# only intercept\n", "score = -cross_val_score(linear, np.ones((len(y_train), 1)), y_train, cv=10, scoring='neg_mean_squared_error').mean() \n", "scores.append((score.mean(), score.std()))\n", "\n", "for comp in components:\n", " score = -cross_val_score(linear, X_train_pca[:, 0:comp+1], y_train, cv=10, scoring='neg_mean_squared_error')\n", " scores.append((score.mean(), score.std()))\n", "scores = np.array(scores)" ] }, { "cell_type": "code", "execution_count": 482, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(range(0, X_scaled.shape[1]+2), scores[:,0], '.-')\n", "plt.xlabel('PCA components')\n", "plt.ylabel('CV MSE');" ] }, { "cell_type": "code", "execution_count": 494, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "96587.9206957096" ] }, "execution_count": 494, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X_test_pca = pca.transform(X_test_scaled)\n", "\n", "# optimum number of components\n", "opt_comp = scores[:,0].argmin()\n", "linear = LinearRegression()\n", "\n", "# fit only the optimum number of components\n", "linear.fit(X_train_pca[:,:opt_comp], y_train)\n", "# get test sample error\n", "pred = linear.predict(X_test_pca[:,:opt_comp])\n", "mean_squared_error(y_test, pred)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 6.7.2 Partial Least Squares" ] }, { "cell_type": "code", "execution_count": 532, "metadata": {}, "outputs": [], "source": [ "components = range(1, X_scaled.shape[1]+1)\n", "scores = []\n", "\n", "for comp in components:\n", " pls = PLSRegression(n_components=comp)\n", " score = -cross_val_score(pls, X_train_scaled, y_train, cv=10, scoring='neg_mean_squared_error')\n", " scores.append((score.mean(), score.std()))\n", "scores = np.array(scores)" ] }, { "cell_type": "code", "execution_count": 533, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.plot(range(1, X_scaled.shape[1]+1), scores[:,0], '.-')\n", "plt.xlabel('PLS components')\n", "plt.ylabel('CV MSE');" ] }, { "cell_type": "code", "execution_count": 535, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "101417.46102410383" ] }, "execution_count": 535, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# optimum number of components\n", "opt_comp = scores[:,0].argmin()+1\n", "pls = PLSRegression(n_components=opt_comp)\n", "pls.fit(scale(X_train), y_train)\n", "\n", "mean_squared_error(y_test, pls.predict(X_test_scaled))" ] }, { "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.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }