Skip to content

Instantly share code, notes, and snippets.

@kshirsagarsiddharth
Created December 10, 2019 13:15
Show Gist options
  • Select an option

  • Save kshirsagarsiddharth/17812a747d5df1cbce247cb88b083cc7 to your computer and use it in GitHub Desktop.

Select an option

Save kshirsagarsiddharth/17812a747d5df1cbce247cb88b083cc7 to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.ticker as ticker\n",
"from sklearn.datasets import load_boston\n",
"from sklearn import preprocessing\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.linear_model import LinearRegression,Ridge\n",
"from sklearn.metrics import r2_score,mean_squared_error"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The dataset is now loaded subsequently the features should be standardized.Since ridge regression shrinks coefficients by penalizing,The features should be scaled for start condition to be fair."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"house_price = load_boston()\n",
"df = pd.DataFrame(house_price.data,columns=house_price.feature_names)\n",
"df['PRICE'] = house_price.target\n",
"#standardize and train test split\n",
"house_price.data = preprocessing.scale(house_price.data)\n",
"X_train,X_test,y_train,y_test = train_test_split(house_price.data,house_price.target,test_size=0.3,random_state=10)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"now we can iterate the lambda values ranged from 0 to 199.Note that the coefficients at lambda equal to zero are same with OLS coefficients"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [],
"source": [
"ridge_reg = Ridge(alpha=0)\n",
"ridge_reg.fit(X_train,y_train)\n",
"ridge_df = pd.DataFrame({'variables':house_price.feature_names,'estimate':ridge_reg.coef_})\n",
"ridge_train_pred = []\n",
"ridge_test_pred = []\n",
"ols_pred = ridge_reg.predict(X_test)\n",
"for alpha in np.arange(0,200,1):\n",
" ridge_reg = Ridge(alpha=alpha)\n",
" ridge_reg.fit(X_train,y_train)\n",
" var_name = 'estimate' + str(alpha)\n",
" ridge_df[var_name] = ridge_reg.coef_\n",
" ridge_train_pred.append(ridge_reg.predict(X_train))\n",
" ridge_test_pred.append(ridge_reg.predict(X_test))\n",
" \n"
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>variables</th>\n",
" <th>estimate</th>\n",
" <th>CRIM</th>\n",
" <th>ZN</th>\n",
" <th>INDUS</th>\n",
" <th>CHAS</th>\n",
" <th>NOX</th>\n",
" <th>RM</th>\n",
" <th>AGE</th>\n",
" <th>DIS</th>\n",
" <th>RAD</th>\n",
" <th>TAX</th>\n",
" <th>PTRATIO</th>\n",
" <th>B</th>\n",
" <th>LSTAT</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>estimate</td>\n",
" <td>-1.321404</td>\n",
" <td>1.514832</td>\n",
" <td>-0.166266</td>\n",
" <td>0.411579</td>\n",
" <td>-1.771168</td>\n",
" <td>2.352821</td>\n",
" <td>0.318499</td>\n",
" <td>-3.256645</td>\n",
" <td>2.632576</td>\n",
" <td>-2.059466</td>\n",
" <td>-1.755201</td>\n",
" <td>1.181143</td>\n",
" <td>-3.887043</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>estimate0</td>\n",
" <td>-1.321404</td>\n",
" <td>1.514832</td>\n",
" <td>-0.166266</td>\n",
" <td>0.411579</td>\n",
" <td>-1.771168</td>\n",
" <td>2.352821</td>\n",
" <td>0.318499</td>\n",
" <td>-3.256645</td>\n",
" <td>2.632576</td>\n",
" <td>-2.059466</td>\n",
" <td>-1.755201</td>\n",
" <td>1.181143</td>\n",
" <td>-3.887043</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>estimate1</td>\n",
" <td>-1.305844</td>\n",
" <td>1.491704</td>\n",
" <td>-0.186300</td>\n",
" <td>0.416554</td>\n",
" <td>-1.734866</td>\n",
" <td>2.368304</td>\n",
" <td>0.305241</td>\n",
" <td>-3.213459</td>\n",
" <td>2.540705</td>\n",
" <td>-1.976631</td>\n",
" <td>-1.746362</td>\n",
" <td>1.179751</td>\n",
" <td>-3.867286</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>estimate2</td>\n",
" <td>-1.291053</td>\n",
" <td>1.469716</td>\n",
" <td>-0.204508</td>\n",
" <td>0.421192</td>\n",
" <td>-1.700188</td>\n",
" <td>2.382762</td>\n",
" <td>0.292616</td>\n",
" <td>-3.171513</td>\n",
" <td>2.455276</td>\n",
" <td>-1.900395</td>\n",
" <td>-1.737941</td>\n",
" <td>1.178322</td>\n",
" <td>-3.847925</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>estimate3</td>\n",
" <td>-1.276962</td>\n",
" <td>1.448771</td>\n",
" <td>-0.221104</td>\n",
" <td>0.425531</td>\n",
" <td>-1.667018</td>\n",
" <td>2.396278</td>\n",
" <td>0.280573</td>\n",
" <td>-3.130750</td>\n",
" <td>2.375608</td>\n",
" <td>-1.830033</td>\n",
" <td>-1.729900</td>\n",
" <td>1.176856</td>\n",
" <td>-3.828944</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>196</th>\n",
" <td>estimate195</td>\n",
" <td>-0.660784</td>\n",
" <td>0.677185</td>\n",
" <td>-0.504568</td>\n",
" <td>0.499952</td>\n",
" <td>-0.498848</td>\n",
" <td>2.188311</td>\n",
" <td>-0.201508</td>\n",
" <td>-0.898071</td>\n",
" <td>0.183866</td>\n",
" <td>-0.495208</td>\n",
" <td>-1.241954</td>\n",
" <td>0.828847</td>\n",
" <td>-2.302692</td>\n",
" </tr>\n",
" <tr>\n",
" <th>197</th>\n",
" <td>estimate196</td>\n",
" <td>-0.659786</td>\n",
" <td>0.676331</td>\n",
" <td>-0.504713</td>\n",
" <td>0.499619</td>\n",
" <td>-0.497990</td>\n",
" <td>2.185530</td>\n",
" <td>-0.202161</td>\n",
" <td>-0.894260</td>\n",
" <td>0.181707</td>\n",
" <td>-0.494909</td>\n",
" <td>-1.240543</td>\n",
" <td>0.827560</td>\n",
" <td>-2.298731</td>\n",
" </tr>\n",
" <tr>\n",
" <th>198</th>\n",
" <td>estimate197</td>\n",
" <td>-0.658794</td>\n",
" <td>0.675484</td>\n",
" <td>-0.504856</td>\n",
" <td>0.499284</td>\n",
" <td>-0.497142</td>\n",
" <td>2.182753</td>\n",
" <td>-0.202809</td>\n",
" <td>-0.890472</td>\n",
" <td>0.179565</td>\n",
" <td>-0.494614</td>\n",
" <td>-1.239137</td>\n",
" <td>0.826278</td>\n",
" <td>-2.294789</td>\n",
" </tr>\n",
" <tr>\n",
" <th>199</th>\n",
" <td>estimate198</td>\n",
" <td>-0.657808</td>\n",
" <td>0.674643</td>\n",
" <td>-0.504998</td>\n",
" <td>0.498948</td>\n",
" <td>-0.496303</td>\n",
" <td>2.179981</td>\n",
" <td>-0.203453</td>\n",
" <td>-0.886709</td>\n",
" <td>0.177438</td>\n",
" <td>-0.494324</td>\n",
" <td>-1.237735</td>\n",
" <td>0.825002</td>\n",
" <td>-2.290864</td>\n",
" </tr>\n",
" <tr>\n",
" <th>200</th>\n",
" <td>estimate199</td>\n",
" <td>-0.656827</td>\n",
" <td>0.673807</td>\n",
" <td>-0.505138</td>\n",
" <td>0.498611</td>\n",
" <td>-0.495473</td>\n",
" <td>2.177215</td>\n",
" <td>-0.204092</td>\n",
" <td>-0.882969</td>\n",
" <td>0.175327</td>\n",
" <td>-0.494038</td>\n",
" <td>-1.236337</td>\n",
" <td>0.823731</td>\n",
" <td>-2.286957</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>201 rows × 14 columns</p>\n",
"</div>"
],
"text/plain": [
"variables estimate CRIM ZN INDUS CHAS NOX \\\n",
"0 estimate -1.321404 1.514832 -0.166266 0.411579 -1.771168 \n",
"1 estimate0 -1.321404 1.514832 -0.166266 0.411579 -1.771168 \n",
"2 estimate1 -1.305844 1.491704 -0.186300 0.416554 -1.734866 \n",
"3 estimate2 -1.291053 1.469716 -0.204508 0.421192 -1.700188 \n",
"4 estimate3 -1.276962 1.448771 -0.221104 0.425531 -1.667018 \n",
".. ... ... ... ... ... ... \n",
"196 estimate195 -0.660784 0.677185 -0.504568 0.499952 -0.498848 \n",
"197 estimate196 -0.659786 0.676331 -0.504713 0.499619 -0.497990 \n",
"198 estimate197 -0.658794 0.675484 -0.504856 0.499284 -0.497142 \n",
"199 estimate198 -0.657808 0.674643 -0.504998 0.498948 -0.496303 \n",
"200 estimate199 -0.656827 0.673807 -0.505138 0.498611 -0.495473 \n",
"\n",
"variables RM AGE DIS RAD TAX PTRATIO \\\n",
"0 2.352821 0.318499 -3.256645 2.632576 -2.059466 -1.755201 \n",
"1 2.352821 0.318499 -3.256645 2.632576 -2.059466 -1.755201 \n",
"2 2.368304 0.305241 -3.213459 2.540705 -1.976631 -1.746362 \n",
"3 2.382762 0.292616 -3.171513 2.455276 -1.900395 -1.737941 \n",
"4 2.396278 0.280573 -3.130750 2.375608 -1.830033 -1.729900 \n",
".. ... ... ... ... ... ... \n",
"196 2.188311 -0.201508 -0.898071 0.183866 -0.495208 -1.241954 \n",
"197 2.185530 -0.202161 -0.894260 0.181707 -0.494909 -1.240543 \n",
"198 2.182753 -0.202809 -0.890472 0.179565 -0.494614 -1.239137 \n",
"199 2.179981 -0.203453 -0.886709 0.177438 -0.494324 -1.237735 \n",
"200 2.177215 -0.204092 -0.882969 0.175327 -0.494038 -1.236337 \n",
"\n",
"variables B LSTAT \n",
"0 1.181143 -3.887043 \n",
"1 1.181143 -3.887043 \n",
"2 1.179751 -3.867286 \n",
"3 1.178322 -3.847925 \n",
"4 1.176856 -3.828944 \n",
".. ... ... \n",
"196 0.828847 -2.302692 \n",
"197 0.827560 -2.298731 \n",
"198 0.826278 -2.294789 \n",
"199 0.825002 -2.290864 \n",
"200 0.823731 -2.286957 \n",
"\n",
"[201 rows x 14 columns]"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ridge_df = ridge_df.set_index('variables').T.rename_axis('estimate').rename_axis().reset_index()\n",
"ridge_df\n"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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t//14dOmiYLb7t12MN3y8ubTTZsiy1VVbe/H6ex4gMvJsaWuzoExGuTSJZkA9iiwHlgMzBaRvbAX4iullFIqSvRp07326th7BAI2xCUKaq1Nw4+3Ci8nehZprMNwOGzYDIeyzhavt2N97o+SeRbkg8CD4WUR2Qjo8yGVUkqpbuB0Rq4d64z6+uZBrbzchrvKSli8eA1FRaOblqPLzp2xy22HOcvtjg1kyYS77Gw7bl34yGP0clZW330aQ2vjgN1vjLkyNP8LY8wDAMYYIyJ/BWalpolKKaWUai+v1w52W1SUeH1x8SZmzhyd1Hs1NNhTo4nCWlulosI+jD66rq0bHaJlZDQPZomWk12XldUzntjQ2hGww6LmLwAeiFo+sHuao5RSSqmexuOJjKPWWcZAXV0kjFVX23AXniY7v317bH11dfvacfPNRUTdf5FyrQUwaWFeKaWUUqpDROxRrYyM5J++kIxg0D6wPtkgt9de7UxsXay1AOYQkXzAETUfDmI6iolSSimleozwDQXZ2TB4cNvbFxfXdH+jWtFaAMvDjvcVDl2fR63TYSiUUkoppTqotUcRjUxhO5RSSiml+o0+enOnUkoppVTPldYAJiLHicgKEVktItelsy1KKaWUUqmStgAmIk7gYeB4YH/gHBHZP13tUUoppZRKlWQeRQSAiAwCfOFlY8zGTu77IGC1MWZt6P2fAU4Fvu7k+yqllFJK9WhtBjAROQW4FxgGbAf2ApYB4zu57z2ATVHLJcC3W3vBihUrYp5aD/CDH/yAyy+/nJqaGk444YRmr5k1axazZs1i586dnHnmmc3WX3bZZZx11lls2rSJ//mf/6GsrIwBUc9/uPrqqzn55JNZsWIFl156abPX33TTTXz3u99l0aJFXHnllc3W33777cyYMYO5c+dyww03NFt///33M2nSJN59911+//vfN1v/6KOPsu+++/LKK69w7733Nlv/xBNPMGLECJ599ln+8pe/NFv/n//8h4EDB/L444/z+OOPN1v/+uuvk5mZySOPPMJzzz3XrP/FxcUA3HPPPbz66qsxr83IyOCNN94A4LbbbuO9996LWV9YWMjzzz8PwPXXX8+8efNi1g8fPpx//etfAFx55ZUsWrQoZv0+++zDY489BsAll1zCypUrY9ZPmjSJ+++/H4DzzjuPkpKSmPXTp0/njjvuAOCM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\n",
"text/plain": [
"<Figure size 720x360 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"fig,ax = plt.subplots(figsize=(10,5))\n",
"ax.plot(ridge_df.RM,'r',ridge_df.ZN,'g',ridge_df.RAD,'b',ridge_df.CRIM,'c',ridge_df.TAX,'y')\n",
"ax.axhline(y=0,color='black',linestyle='--')\n",
"ax.set_xlabel(\"Lambda\")\n",
"ax.set_ylabel(\"Beta Estimate\")\n",
"ax.set_title(\"Ridge Regression Trace\",fontsize=16)\n",
"ax.legend(labels=['Room','Residential zone','Highway Access','Crime Rate','Tax'])\n",
"ax.grid(True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"as we increase value of lambda the values of all the other estimates tend towards zero but rooms is not deviated which tells us that room is significant in determining the price of house\n"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [],
"source": [
"ridge_mse_test = [mean_squared_error(y_test,p) for p in ridge_test_pred]\n",
"ols_mse = mean_squared_error(y_test,ols_pred)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0, 0.5, 'MSE')"
]
},
"execution_count": 60,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# MSE of Ridge and OLS\n",
"ridge_mse_test = [mean_squared_error(y_test, p) for p in ridge_test_pred]\n",
"ols_mse = mean_squared_error(y_test, ols_pred)\n",
"\n",
"# plot mse\n",
"plt.plot(ridge_mse_test[:25], 'ro')\n",
"plt.axhline(y=ols_mse, color='g', linestyle='--')\n",
"plt.title(\"Ridge Test Set MSE\", fontsize=16)\n",
"plt.xlabel(\"Model Simplicity$\\longrightarrow$\")\n",
"plt.ylabel(\"MSE\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The green dotted line is from OLS on the graph above with the X-axis being drawn by increasing lambda values which means the model prediction is improved (less error to a certain point) In short an OLS model with some bias is better at prediction then the pure OLS model"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python",
"language": "python",
"name": "conda-env-python-py"
},
"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.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment