Created
March 4, 2021 01:13
-
-
Save ljbelenky/47fb4984502da50df9e2e93f173da7b7 to your computer and use it in GitHub Desktop.
Sklearn does not standardize the intercept
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"id": "athletic-coaching", | |
"metadata": {}, | |
"source": [ | |
"# Does sklearn regularize the intercept?" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"id": "coated-development", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import pandas as pd\n", | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt\n", | |
"\n", | |
"from sklearn.linear_model import LinearRegression as LR\n", | |
"from sklearn.linear_model import Ridge, Lasso, ElasticNet\n", | |
"from sklearn.preprocessing import StandardScaler as SS" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"id": "circular-stewart", | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"N = 100\n", | |
"df = pd.DataFrame()\n", | |
"df['X0'] = 100+np.random.random(N)*50\n", | |
"df['X1'] = 100+np.random.random(N)*500\n", | |
"df['y'] = 4 * df['X0'] + .5*df['X1'] + np.random.random(N)*40" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"id": "dimensional-amino", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"687.9564571950345" | |
] | |
}, | |
"execution_count": 3, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"df['y'].mean()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"id": "foreign-finance", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 9 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"pd.plotting.scatter_matrix(df);" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "reasonable-senegal", | |
"metadata": {}, | |
"source": [ | |
"## Without Scaling\n", | |
"\n", | |
"First, we fit LR, Ridge, Lasso, and Elastic Net without standard scaling and examine the coefficents and intercepts with very large regularization penalty" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"id": "cordless-hamburg", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(array([4.01752297, 0.492787 ]), 20.877678509216935)" | |
] | |
}, | |
"execution_count": 5, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"lr = LR().fit(df[['X0','X1']], df['y'])\n", | |
"lr.coef_, lr.intercept_" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"id": "downtown-sending", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(array([9.15510713e-06, 1.13217203e-04]), 687.9163505220387)" | |
] | |
}, | |
"execution_count": 9, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"ridge = Ridge(alpha = 1e10).fit(df[['X0','X1']], df['y'])\n", | |
"ridge.coef_, ridge.intercept_" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"id": "deadly-defendant", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(array([0., 0.]), 687.9564571950345)" | |
] | |
}, | |
"execution_count": 12, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"lasso = Lasso(alpha = 1e10).fit(df[['X0','X1']], df['y'])\n", | |
"lasso.coef_, lasso.intercept_" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"id": "alone-mills", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(array([0., 0.]), 687.9564571950345)" | |
] | |
}, | |
"execution_count": 14, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"elastic_net = ElasticNet(alpha = 1e10, l1_ratio = .5 ).fit(df[['X0','X1']], df['y'])\n", | |
"elastic_net.coef_, elastic_net.intercept_" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "checked-swiss", | |
"metadata": {}, | |
"source": [ | |
"### Observation:\n", | |
"\n", | |
"With very large regularization penalty, the coefficients, $\\beta_1$ and $\\beta_2$ are driven to zero, but the intercept term, $\\beta_0$ remains large (~687.9) and takes on the value of $\\bar y$" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "local-galaxy", | |
"metadata": {}, | |
"source": [ | |
"## With Scaling of $\\vec X$" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"id": "detected-punch", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAD4CAYAAAD1jb0+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAOxklEQVR4nO3de4xmd13H8ffH1oJFUlp3KJd22NZAFYgGMsECikCRrC1hMWLSJsVWS0Y0RTQoWSSRxsRYkXgLKtmUtTWSBa1cKhdpKTSNCS1sS0svWyjUClsLu7XJIl4ola9/zFmZTmfmuZ3neea3fb+SyZznnDPP+eyZJ589c66pKiRJ7fm+eQeQJI3HApekRlngktQoC1ySGmWBS1Kjjp3lwrZt21bbt2+f5SIlqXk33XTTA1W1sHb8TAt8+/bt7Nu3b5aLlKTmJfnX9ca7C0WSGmWBS1KjLHBJapQFLkmNssAlqVEWuCQ1amCBJ9mT5GCS29eMf2OSu5LckeQd04soSVrPMFvglwM7Vo9I8jJgJ/DjVfUc4J39R5MkbWZggVfV9cCDa0b/KnBpVX27m+fgFLJJkjYx7pWYzwJ+KsnvA/8D/FZVfW69GZMsA8sAi4uLYy5OGsIlJ4w4/+Hp5JBmZNyDmMcCJwFnAr8N/F2SrDdjVe2uqqWqWlpYeNSl/JKkMY1b4AeAD9SKzwLfBbb1F0uSNMi4Bf4h4GUASZ4FHAc80FMmSdIQBu4DT7IXeCmwLckB4O3AHmBPd2rhQ8AF5dORJWmmBhZ4VZ23waTze84iSRqBV2JKUqMscElqlAUuSY2ywCWpURa4JDXKApekRlngktSocW9m9ZiyfddHR/6Zey89ZwpJJOl73AKXpEZZ4JLUKAtckhplgUtSoyxwSWqUBS5JjbLAJalRFrgkNWpggSfZk+Rg9/SdtdPenKSS+DxMSZqxYbbALwd2rB2Z5FTglcBXe84kSRrCwAKvquuBB9eZ9CfAWwCfhSlJczDWPvAkO4H7qurWnvNIkoY08s2skhwP/A4ru0+GmX8ZWAZYXFwcdXGSNHWj3rBuq9ysbpwt8B8GTgNuTXIvcApwc5KnrDdzVe2uqqWqWlpYWBg/qSTpEUbeAq+q24AnH3ndlfhSVT3QYy5J0gDDnEa4F/gMcEaSA0kumn4sSdIgA7fAq+q8AdO395ZGkjQ0r8SUpEZZ4JLUKAtckhplgUtSoyxwSWqUBS5JjbLAJalRFrgkNWrkS+mbcskJI85/eDo5JGkK3AKXpEZZ4JLUKAtckhplgUtSoyxwSWqUBS5JjbLAJalRFrgkNWqYR6rtSXIwye2rxv1RkruSfCHJB5M8aaopJUmPMswW+OXAjjXjrgGeW1U/BnwJeGvPuSRJAwws8Kq6Hnhwzbirq+rh7uUNwClTyCZJ2kQf90L5ZeD9G01MsgwsAywuLvawOEmas1HvswRTudfSRAcxk7wNeBh470bzVNXuqlqqqqWFhYVJFidJWmXsLfAkFwKvAs6qquotkSRpKGMVeJIdwFuAn66q/+o3kiRpGMOcRrgX+AxwRpIDSS4C3gU8EbgmyS1J3j3lnJKkNQZugVfVeeuMfs8UskiSRuCVmJLUKAtckhplgUtSoyxwSWqUBS5JjbLAJalRFrgkNaqPm1lJ3zPqTX6mcIOfSW3f9dGRf+beS8+ZQhJpc26BS1KjLHBJapQFLkmNssAlqVEWuCQ1ygKXpEZZ4JLUKAtckhplgUtSo4Z5pNqeJAeT3L5q3ElJrklyd/f9xOnGlCStNcwW+OXAjjXjdgHXVtUzgWu715KkGRpY4FV1PfDgmtE7gSu64SuA1/QbS5I0yLg3szq5qu7vhr8OnLzRjEmWgWWAxcXFMRc35g2GHj/24jRnzf2+j4KbeDXHdT75QcyqKqA2mb67qpaqamlhYWHSxUmSOuMW+DeSPBWg+36wv0iSpGGMW+BXARd0wxcAH+4njiRpWMOcRrgX+AxwRpIDSS4CLgV+JsndwCu615KkGRp4ELOqzttg0lk9Z5EkjcArMSWpURa4JDXKApekRlngktQoC1ySGmWBS1KjLHBJatS4N7PSIEfBjXaau6GU9BjjFrgkNcoCl6RGWeCS1CgLXJIaZYFLUqMscElqlAUuSY2ywCWpURa4JDVqogJP8ptJ7khye5K9SbwOT5JmZOwCT/J04NeBpap6LnAMcG5fwSRJm5t0F8qxwA8kORY4Hvi3ySNJkoYx9s2squq+JO8Evgr8N3B1VV29dr4ky8AywOLi4riLe8wa64ZSl54zhSSalVF/533+vue5bI1ukl0oJwI7gdOApwFPSHL+2vmqandVLVXV0sLCwvhJJUmPMMkulFcA/1JVh6rqO8AHgBf1E0uSNMgkBf5V4MwkxycJcBawv59YkqRBxi7wqroRuBK4Gbite6/dPeWSJA0w0RN5qurtwNt7yiJJGoFXYkpSoyxwSWqUBS5JjbLAJalRFrgkNcoCl6RGWeCS1KiJzgPXFnXJCSPOf3g6OXT06/GzNvKNtHz6gFvgktQqC1ySGmWBS1KjLHBJapQFLkmNssAlqVEWuCQ1ygKXpEZZ4JLUqIkKPMmTklyZ5K4k+5O8sK9gkqTNTXop/Z8B/1RVr01yHHB8D5kkSUMYu8CTnAC8BLgQoKoeAh7qJ5YkaZBJdqGcBhwC/jrJ55NcluQJa2dKspxkX5J9hw4dmmBxkqTVJinwY4HnA39VVc8D/hPYtXamqtpdVUtVtbSwsDDB4iRJq01S4AeAA1V1Y/f6SlYKXZI0A2MXeFV9HfhakjO6UWcBd/aSSpI00KRnobwReG93Bso9wC9NHkmSNIyJCryqbgGW+okiSRqFV2JKUqMscElqlAUuSY2ywCWpURa4JDXKApekRlngktSoSS/kkTRvl5ww4vyHp5NDM+cWuCQ1ygKXpEZZ4JLUKAtckhplgUtSoyxwSWqUBS5JjbLAJalRFrgkNWriAk9yTJLPJ/lIH4EkScPpYwv8TcD+Ht5HkjSCiQo8ySnAOcBl/cSRJA1r0i3wPwXeAnx3oxmSLCfZl2TfoUOHJlycJOmIsQs8yauAg1V102bzVdXuqlqqqqWFhYVxFydJWmOSLfAXA69Oci/wPuDlSf62l1SSpIHGLvCqemtVnVJV24FzgU9V1fm9JZMkbcrzwCWpUb08kaeqrgOu6+O9JEnDcQtckhplgUtSoyxwSWqUBS5JjbLAJalRFrgkNcoCl6RGWeCS1CgLXJIaZYFLUqMscElqlAUuSY2ywCWpURa4JDXKApekRlngktQoC1ySGjXJU+lPTfLpJHcmuSPJm/oMJkna3CSPVHsYeHNV3ZzkicBNSa6pqjt7yiZJ2sQkT6W/v6pu7ob/A9gPPL2vYJKkzfWyDzzJduB5wI3rTFtOsi/JvkOHDvWxOEkSPRR4kh8E/gH4jar65trpVbW7qpaqamlhYWHSxUmSOhMVeJLvZ6W831tVH+gnkiRpGJOchRLgPcD+qvrj/iJJkoYxyRb4i4HXAS9Pckv3dXZPuSRJA4x9GmFV/TOQHrNIkkbglZiS1CgLXJIaZYFLUqMscElqlAUuSY2ywCWpURa4JDXKApekRlngktQoC1ySGmWBS1KjLHBJapQFLkmNssAlqVEWuCQ1ygKXpEZZ4JLUqEkfarwjyReTfDnJrr5CSZIGm+ShxscAfwH8LPBs4Lwkz+4rmCRpc5Nsgb8A+HJV3VNVDwHvA3b2E0uSNEiqarwfTF4L7Kiq13evXwf8RFVdvGa+ZWC5e3kG8MXx4w60DXhgiu8/TWafvVZzQ7vZW80N883+jKpaWDty7KfSD6uqdgO7p70cgCT7qmppFsvqm9lnr9Xc0G72VnPD1sw+yS6U+4BTV70+pRsnSZqBSQr8c8Azk5yW5DjgXOCqfmJJkgYZexdKVT2c5GLgE8AxwJ6quqO3ZOOZya6aKTH77LWaG9rN3mpu2ILZxz6IKUmaL6/ElKRGWeCS1KimCzzJLyS5I8l3k2x4ek+Se5PcluSWJPtmmXEjI2TfUrcrSHJSkmuS3N19P3GD+f63W9+3JJnrwe1B6zDJ45K8v5t+Y5Ltc4j5KEPkvjDJoVXr+fXzyLlWkj1JDia5fYPpSfLn3b/rC0meP+uMGxki+0uTHF61zn931hkfoaqa/QJ+lJWLg64DljaZ715g27zzjpqdlYPDXwFOB44DbgWePefc7wB2dcO7gD/cYL5vzXsdD7sOgV8D3t0Nnwu8v5HcFwLvmnfWdbK/BHg+cPsG088GPg4EOBO4cd6ZR8j+UuAj88555KvpLfCq2l9V07yyc2qGzL4Vb1ewE7iiG74CeM38ogxlmHW4+t90JXBWksww43q24u9+KFV1PfDgJrPsBP6mVtwAPCnJU2eTbnNDZN9Smi7wERRwdZKbukv7W/F04GurXh/oxs3TyVV1fzf8deDkDeZ7fJJ9SW5I8prZRFvXMOvw/+epqoeBw8APzSTdxob93f98txviyiSnrjN9K9qKn+tRvDDJrUk+nuQ58wwy9UvpJ5Xkk8BT1pn0tqr68JBv85NVdV+SJwPXJLmr+592qnrKPnOb5V79oqoqyUbnoT6jW+enA59KcltVfaXvrI9x/wjsrapvJ/kVVv6KePmcMx3tbmbls/2tJGcDHwKeOa8wW77Aq+oVPbzHfd33g0k+yMqfp1Mv8B6yz+V2BZvlTvKNJE+tqvu7P3sPbvAeR9b5PUmuA57Hyj7dWRtmHR6Z50CSY4ETgH+fTbwNDcxdVaszXsbK8YkWNHsbjqr65qrhjyX5yyTbqmouN7k66nehJHlCkiceGQZeCax7hHkL2oq3K7gKuKAbvgB41F8SSU5M8rhueBvwYuDOmSV8pGHW4ep/02uBT1V3xGqOBuZes9/41cD+GeabxFXAL3Zno5wJHF61W25LS/KUI8dHkryAlQ6d33/28z6KOskX8HOs7D/7NvAN4BPd+KcBH+uGT2flCP6twB2s7L5oInv3+mzgS6xsvc49Oyv7hq8F7gY+CZzUjV8CLuuGXwTc1q3z24CL5pz5UesQ+D3g1d3w44G/B74MfBY4fd7recjcf9B9pm8FPg38yLwzd7n2AvcD3+k+4xcBbwDe0E0PKw+D+Ur3+djwDLItmP3iVev8BuBF88zrpfSS1KijfheKJB2tLHBJapQFLkmNssAlqVEWuCQ1ygKXpEZZ4JLUqP8D6je+bXwq05MAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"X = SS().fit_transform(df[['X0','X1']])\n", | |
"plt.hist(X);" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"id": "separate-rwanda", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(array([59.34824567, 73.65139732]), 687.9564571950345)" | |
] | |
}, | |
"execution_count": 21, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"lr = LR().fit(X, df['y'])\n", | |
"lr.coef_, lr.intercept_" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"id": "biblical-petersburg", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(array([6.19753640e-07, 7.57683272e-07]), 687.9564571950345)" | |
] | |
}, | |
"execution_count": 22, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"ridge = Ridge(alpha = 1e10).fit(X, df['y'])\n", | |
"ridge.coef_, ridge.intercept_" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 23, | |
"id": "insured-nightlife", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(array([0., 0.]), 687.9564571950345)" | |
] | |
}, | |
"execution_count": 23, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"lasso = Lasso(alpha = 1e10).fit(X, df['y'])\n", | |
"lasso.coef_, lasso.intercept_" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 24, | |
"id": "impossible-handy", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"(array([0., 0.]), 687.9564571950345)" | |
] | |
}, | |
"execution_count": 24, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"elastic_net = ElasticNet(alpha = 1e10, l1_ratio = .5 ).fit(X, df['y'])\n", | |
"elastic_net.coef_, elastic_net.intercept_" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"id": "handled-processor", | |
"metadata": {}, | |
"source": [ | |
"### Observation:\n", | |
"\n", | |
"After scaling, the value of the intercept for Lasso, Ridge and Elastic Net is unchanged and equal to $\\bar y$.\n", | |
"\n", | |
"The intercept for unregularized linear regression has increased from its original value (20.8) to $\\bar y = 687.9$, but this is not a deficiency in sklearn. This is just a consequence of recentering $X0$ and $X1$ to the origin which place the mean of $y$ on the origin of the X-plane." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"id": "swiss-conditioning", | |
"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.8.5" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 5 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment