{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Intro\n", "\n", "L1, L2 regularization are 2 closely techniques that can be used by reducing ***over-fitting*** problem in machine learning. \n", "\n", "The ***cost Function*** known as (error = $expectations(y(predict) - y(true))$) can be modified by L1, L2 regularization by adding \n", "the ***extra*** L1, L2 term :\n", "\n", "- L1 regularization (Lasso)\n", " > - error = $expectations(y(predict) - y(true))**2$) + λ*sigma(|beta_i|)\n", " \n", " \n", "- L2 regularization (Ridge)\n", " > - error = $expectations(y(predict) - y(true))**2$) + λ*sigma((beta_i)**2)\n", " \n", "\n", "Both these 2 approached can reduce over-fitting in cases, but the modified model accuracy and computing speed may be big differences sometime, we will discuss further about how to obtain L1, L2 terms, the relation between L1, L2, and learning rate in this notebook.\n", "\n", "> In brief, regularization is the way we prevent model feat \"too perfectly\" with the redundant features \n", ">\n", "\n", "\n", "\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "#cd analysis/ML_/doc/" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " \n", "L1 Penalty and Sparsity in Logistic Regression :\n", "\n", "demo below show how L1, L2 \"reduce\" effect from redundant features\n", "that make features sparsity that make model much simple for avoiding \n", "over fitting and learn from \"not good\" features\n", "\n", "\n", "ps : C=1/lambda, the small C, the stronger L1, L2 regression\n", "\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3Xl01fWd//HXTQJZ7w0EYkIgJGTY\nZC0niEJGg1KIYklVsJ1iKeB+QkEWx4q0pwxTcIpoUcLiWFwqoYulOIdqIWBRR4iymRaBFrAE0BAB\no2QDsn1/f/hLphES8vmGcMn9PB/n5Bxy7/d1358sfHjxvZvHcRxHAAAAsEaQvxcAAACAK4sCCAAA\nYBkKIAAAgGUogAAAAJahAAIAAFiGAggAAGAZCiAAAIBlKIAAAACWoQACAABYhgIIAABgGQogAACA\nZSiAAAAAlqEAAgAAWIYCCAAAYBkKIAAAgGUogAAAAJahAAIAAFiGAggAAGAZCiAAAIBlKIAAAACW\noQACAABYhgIIAABgGQogAACAZSiAAAAAlqEAAgAAWIYCCAAAYBkKIAAAgGUogAAAAJahAAIAAFiG\nAggAAGAZCiAAAIBlKIAAAACWoQACAABYhgIIAABgGQogAACAZSiAAAAAlqEAolW8/PLL8ng82rVr\nV5PHLV26VHfddZd69Oghj8ejkSNHXpkFXkFTpkxRcnJyg8sWLVqk119/3T8LAq5Szdk3Dh48qEcf\nfVSpqanq0KGDYmJilJaWpt///vdXcKWtj30DrY0CCL9atWqVjh49qltuuUWxsbH+Xs4Vw0YOuJOb\nm6s33nhD48eP12uvvaacnBz16tVLd999txYsWODv5bUq9g1cTiH+XgDstn//fgUFffX/kAEDBvh5\nNQCudv/2b/+madOmyePx1F9222236fTp0/r5z3+uH/3oRwoNDfXjCoG2gTOA8Ku68udG3d1Fmzdv\n1tSpUxUTE6PIyEiNGzdO//jHPy44fsuWLRo1apR8Pp8iIiKUlpamt956q8Ex8+fPl8fj0b59+/S9\n731P0dHRiouL07333qszZ840OHb58uW66aabdM011ygyMlIDBw7U4sWLVVVV1eS6PR6PysvL9cor\nr8jj8dTf9V1QUKCQkBA9+eSTF2TeffddeTwevfbaay6+U0Dg6Ny5c4PyV2fYsGGqqKhQcXFxk3n2\nDeArFEC0effdd5+CgoK0du1aLV26VDt27NDIkSP15Zdf1h+zZs0ajRkzRj6fT6+88op+97vfKSYm\nRhkZGRds5pI0fvx49e7dW+vWrdPjjz+utWvXatasWQ2O+fjjjzVx4kS9+uqr+uMf/6j77rtPTz31\nlB566KEm15uXl6fw8HCNHTtWeXl5ysvL04oVK5ScnKzMzEytWrVKNTU1DTLZ2dlKSEjQnXfe2YLv\nFBC4tm7dqtjYWF1zzTXNOp59A9ZzgFbw0ksvOZKcnTt3NjvTv39/Jz093XjGnXfe2eDybdu2OZKc\nn/3sZ47jOE55ebkTExPjjBs3rsFxNTU1zuDBg51hw4bVX/bTn/7UkeQsXry4wbFZWVlOWFiYU1tb\ne9G11NTUOFVVVc6vfvUrJzg42CkuLq6/bvLkyU5SUlKD4yMjI53JkydfcDtbt251JDnr16+vv+zT\nTz91QkJCnP/4j/9o/JsBBAA3+4bjOM4LL7zgSHKeffbZZs9g34DtOAOINu+ee+5p8PmIESOUlJSk\nrVu3SpK2b9+u4uJiTZ48WdXV1fUftbW1uvXWW7Vz506Vl5c3uI3MzMwGnw8aNEjnzp3TyZMn6y/7\n8MMPlZmZqU6dOik4OFjt2rXTD37wA9XU1OjgwYOuvpaRI0dq8ODBWr58ef1lq1atksfj0YMPPujq\nNoFA9qc//UnTpk3ThAkTNH369Gbn2DdgO54EgjYvPj7+opd9/vnnkqTPPvtMkjRhwoRGb6O4uFiR\nkZH1n3fq1KnB9XUPKj979qwk6dixY7rxxhvVp08fPfvss0pOTlZYWJh27NihadOm1R/nxowZM3T/\n/ffr73//u1JSUvTCCy9owoQJF/06AZtt2rRJd911l0aPHq2cnJyLPjawMewbsB0FEG1eUVHRRS/r\n2bOnpK8eNC5Jy5Yt0w033HDR24iLizOa+frrr6u8vFx/+MMflJSUVH95fn6+0e1czMSJE/WjH/1I\ny5cv1w033KCioiJNmzatxbcLBJJNmzbpjjvuUHp6utatW6f27dsb5dk3YDsKINq8nJwcjR8/vv7z\n7du36+jRo7r//vslSWlpaerQoYP279+vH/7wh5dlZt2Zhn9+uQnHcfTCCy80Kx8aGtro//bDwsL0\n4IMPKjs7W9u3b9c3vvENpaWltXzRQIDIzc3VHXfcoX/913/V66+/7uplX9g3YDsKIFrVn//8ZxUU\n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\nuHGKjIxU586dNWPGDFVWVjY45p133lFqaqrCwsKUkpKiVatWtcaXAMAyvBcwgIBRUFCgtLQ0dejQ\nQYsXL9agQYNUVVWlTZs2adq0afrb3/7WKnPPnz+v2NhYzZs3T7/4xS+alampqdHtt9+u2NhYvffe\ne/r88881efJkOY6jZcuWSZKOHDmisWPH6oEHHtCaNWu0bds2ZWVlKTY2VuPHj2+VrwWAHSiAAAJG\nVlaWPB6PduzYocjIyPrL+/fvr3vvvbfV5iYnJ+vZZ5+VJL344ovNyuTm5mr//v06fvy4EhISJElP\nP/20pkyZooULF8rn82nVqlXq3r27li5dKkm69tprtWvXLi1ZsoQCCKBFKIBotoKCAkVFRRllPvzw\nQ+M5v/vd74wz0lf/CJvav3+/q1m33HKLq9zkyZONM9HR0caZ8vJy40xbV1xcrI0bN2rhwoUNyl+d\nDh06NJrNycnRQw891OTtP//887rnnntavM46eXl5GjBgQH35k6SMjAydP39eu3fv1s0336y8vDyN\nGTOmQS4jI0OrV69WVVWV2rVrd9nW05oOHz58RfaOV155xTgjSUlJScaZ999/39WsW2+91VXuwQcf\nNM589tlnxplz584ZZ9A2UQABBITDhw/LcRz17dvXOJuZmanrr7++yWPi4uLcLu2iioqKLrjNjh07\nqn379ioqKmr0mLi4OFVXV+v06dPq0qXLZV0TAHtQAAEEBMdxJEkej8c46/V65fV6L/eSLulia3Uc\np8HlXz+mJV8nANThWcAAAkKvXr3k8Xh04MAB42xOTo6ioqKa/MjJybms642Pj68/01fniy++UFVV\nVf1Zv4sdc/LkSYWEhKhTp06XdT0A7MIZQAABISYmRhkZGVq+fLlmzJhxweMAv/zyy0YfB+iPu4CH\nDx+uhQsX6sSJE/V35ebm5io0NFSpqan1x2zYsKFBLjc3V0OHDm0zj/8DcHWiAAIIGCtWrNCIESM0\nbNgwLViwQIMGDVJ1dbU2b96slStXNnp28HLcBZyfny9JKisr06lTp5Sfn6/27durX79+kqT169dr\n7ty59S9FM2bMGPXr10+TJk3SU089peLiYj366KN64IEH5PP5JEkPP/ywsrOzNXv2bD3wwAPKy8vT\n6tWr9etf/7pFawUACiCAgNGjRw/t2bNHCxcu1Jw5c3TixAnFxsYqNTVVK1eubNXZQ4YMqf/z7t27\n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\npAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# credit : http://scikit-learn.org/stable/auto_examples/linear_model/plot_logistic_l1_l2_sparsity.html\n", "\n", "from IPython.display import Image\n", "print (\"\"\" \n", "L1 Penalty and Sparsity in Logistic Regression :\n", "\n", "demo below show how L1, L2 \"reduce\" effect from redundant features\n", "that make features sparsity that make model much simple for avoiding \n", "over fitting and learn from \"not good\" features\n", "\n", "\n", "ps : C=1/lambda, the small C, the stronger L1, L2 regression\n", "\"\"\")\n", "Image(filename='L1_L2_Penalty_Sparcity.png')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "# Application :\n", "\n", "- Linear regression:\n", " - L1 regularization : Lasso Regression \n", " - Least Absolute Shrinkage and Selection Operator\n", " - L2 regularization : Ridge Regression\n", " \n", " \n", "- Logistics regression \n", "\n", "\n", "# Quick summary :\n", "\n", "\n", "- L1 regularization (Lasso)\n", " > * Can do particular \"feature selections\" via making the coefficients become zero which means exclude them from the model.\n", " > * Work well with lots # of features (~millions) since it provides sparse solutions in fact is kind of feature selection\n", " > * Lasso arbitrarily selects any one feature among the highly correlated ones and reduced the coefficients of the rest to zero. Also, the chosen variable changes randomly with change in model parameters. This generally doesn’t work that well as compared to ridge regression.\n", "\n", " \n", "- L2 regularization (Ridge)\n", " > * The advantage of ridge regression is coefficient shrinkage and reducing model complexity.\n", " \n", " > * L2 is majorly used to prevent overfitting. Since it includes all the features, it is not very useful in case of exorbitantly high # of features(~millions) , as it will cost losts of computing time&resorces.\n", " \n", " > * Works well even for highly correlated features as it will include all of them in the model but the coefficients will be distributed among them depending on the correlation.\n", " \n", " \n", " \n", "# Ref :\n", "\n", "- https://www.analyticsvidhya.com/blog/2016/01/complete-tutorial-ridge-lasso-regression-python/" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "# analysis library\n", "import pandas as pd, numpy as np \n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "%pylab inline\n", "\n", "# ML\n", "from sklearn import datasets\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.preprocessing import StandardScaler" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 1) Demo : \n", " - Lasso, Ridge Regression" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1-0) Model complexity :Polynomial regression" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# help function\n", "# linear regression model \n", "\n", "from sklearn.linear_model import LinearRegression\n", "from sklearn.linear_model import Ridge\n", "from sklearn.linear_model import Lasso\n", "\n", "def linear_regression(data, power, models_to_plot):\n", " #initialize predictors:\n", " predictors=['x']\n", " if power>=2:\n", " predictors.extend(['x_%d'%i for i in range(2,power+1)])\n", " \n", " #Fit the model\n", " linreg = LinearRegression(normalize=True)\n", " linreg.fit(data[predictors],data['y'])\n", " y_pred = linreg.predict(data[predictors])\n", " \n", " #Check if a plot is to be made for the entered power\n", " if power in models_to_plot:\n", " plt.subplot(models_to_plot[power])\n", " plt.tight_layout()\n", " plt.plot(data['x'],y_pred)\n", " plt.plot(data['x'],data['y'],'.')\n", " plt.title('Plot for power: %d'%power)\n", " \n", " #Return the result in pre-defined format\n", " \"\"\"\n", " RSS refers to ‘Residual Sum of Squares’ : \n", " sum of square of errors between the predicted \n", " and actual values in the training data set\n", " \"\"\"\n", " rss = sum((y_pred-data['y'])**2)\n", " ret = [rss]\n", " ret.extend([linreg.intercept_])\n", " ret.extend(linreg.coef_)\n", " return ret\n", "\n", "def ridge_regression(data, predictors, alpha, models_to_plot={}):\n", " #Fit the model\n", " ridgereg = Ridge(alpha=alpha,normalize=True)\n", " ridgereg.fit(data[predictors],data['y'])\n", " y_pred = ridgereg.predict(data[predictors])\n", " \n", " #Check if a plot is to be made for the entered alpha\n", " if alpha in models_to_plot:\n", " plt.subplot(models_to_plot[alpha])\n", " plt.tight_layout()\n", " plt.plot(data['x'],y_pred)\n", " plt.plot(data['x'],data['y'],'.')\n", " plt.title('Plot for alpha: %.3g'%alpha)\n", " \n", " #Return the result in pre-defined format\n", " rss = sum((y_pred-data['y'])**2)\n", " ret = [rss]\n", " ret.extend([ridgereg.intercept_])\n", " ret.extend(ridgereg.coef_)\n", " return ret\n", "\n", "def lasso_regression(data, predictors, alpha, models_to_plot={}):\n", " #Fit the model\n", " lassoreg = Lasso(alpha=alpha,normalize=True, max_iter=1e5)\n", " lassoreg.fit(data[predictors],data['y'])\n", " y_pred = lassoreg.predict(data[predictors])\n", " \n", " #Check if a plot is to be made for the entered alpha\n", " if alpha in models_to_plot:\n", " plt.subplot(models_to_plot[alpha])\n", " plt.tight_layout()\n", " plt.plot(data['x'],y_pred)\n", " plt.plot(data['x'],data['y'],'.')\n", " plt.title('Plot for alpha: %.3g'%alpha)\n", " \n", " #Return the result in pre-defined format\n", " rss = sum((y_pred-data['y'])**2)\n", " ret = [rss]\n", " ret.extend([lassoreg.intercept_])\n", " ret.extend(lassoreg.coef_)\n", " return ret" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmgAAAHBCAYAAADdFEfyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAH7xJREFUeJzt3XuQpWldH/Dvb9nVcGm5eFmURRGChpmxsqCBCWSXNiYK\nmLBoScRcBDQWpSikQilqUmFQk1KrvGDAKHIpMCgiEdlSEiBqO4s14uoCcXeoSIWQLJBdweXSCKU7\n7C9/nNO7vbPdMz3T5/Kc7s+nquu857zved9n+pnT/e3n9lZ3BwCAcVyy7AIAAHB3AhoAwGAENACA\nwQhoAACDEdAAAAYjoAEADEZAAw6cqrqkqjar6ooZne/mqrp6FucC2AsBDVi6aZj65PTrs1X16W2v\nfduFnq+77+jute7+4DzKu5uquldV3VFVX7rI6wIHz6XLLgBAd69tbVfV+5N8Z3f/3m7HV9W9uvuz\nCynchakkVv8G9k0LGjCamn7d9ULVj1bV66vqV6rqE0n+WVUdr6pTVfWxqvpQVb2kqu41Pf5uLVlV\n9cvT/W+Ztsr9QVV92a4FqHpWVX2gqv68ql541r5dr5vk96ePp6fX+aaqelBV/fb0XH9RVddW1RfP\n6psFHEwCGrAqnpbkP3f3/ZP8WpLbkzwvyYOSPCHJNyR5zrbjz27J+rYk/ybJA5PcnORHd7pIVX1V\nkv+Y5BlJHpLkS5Jcvu2QM+e47tWZhMtHdffndfebMvk5+/IkVyT5siR/neQlF/ZPBw4bAQ1YFe/o\n7rckSXf/VXf/SXdf3xMfSPJLSZ647fg66/1v7O53TbtGX5fkyl2u8y1J3tTdf9jdtyf54Wz7Wdnd\nf3ye697t2t390e5+c3f/dXd/KsmP73A8wN0Ygwasipu3P6mqr0zyU0m+Osl9ktwryTvP8f5btm1/\nOsn9djnuS7Zfq7v/sqpuu9jrVtV9kvxckn+Y5P6ZhLfdrg2QRAsasDrO7rL8xSR/muTh027PF+We\nrWYX4/8leejWk6q6XybdmXu57k4TBH4gk67Nr+nuByT5+zMoI3DACWjAqlpL8onu/kxVPSp3H3+2\nH7+e5JqqelxVfU6SH0tyx16u2913JPlokoefdfynk3yiqj4/k0AHcE4CGjCavS5T8YIkz6qqTyb5\nT0lef47z7Hnpi+7+0yTPzySofTDJh3P37tHzXfdFSX61qm6rqqdl0h36gCR/keQdSX57r2UBDq/q\nnu+SPVV1/ySvSHIsk79Cv6O737lt/xOTvDnJ+6cv/UZ3/9hcCwUAMLBFTBJ4SZK3dPfTq+rSTAbV\nnu1kdz91AWUBABjeXANaVa0luaq7n5Uk3X0mySd3OnSe5QAAWCXzHoP28CQfrapXV9UNVfXyqrr3\nDscdr6p3TVfbPjLnMgEADG3eAe3SJI9J8rLufkwmM5l+8Kxj/iTJl3X3o5O8NMlvzrlMAABDm+sk\ngaq6PMmp7n749PnfS/LC7v7H53jP/07y1d1921mvuwExALAyuvuih3DNdQxad99aVTdX1Vd0958l\n+bokp7cfU1WXd/et0+3HZhIab9vhdJn3jFPm58SJEzlx4sSyi8FFUHerTf2tNvW3uqr2N7x+EbM4\nn5fkdVV1WSZLaTy7qp6TpLv75Um+paq+O5MbH38mybcuoEwAAMOae0Dr7vck+TtnvfyL2/a/LMnL\n5l0OAIBV4U4CLMT6+vqyi8BFUnerTf2tNvV3eM39TgKzUlW9KmUFAA63qtrXJAEtaAAAgxHQAAAG\nI6ABAAxGQAMAGIyABgAwGAENAGAwAhoAwGAENACAwQhoAACDEdAAAAYjoAEADEZAAwAYjIAGADAY\nAQ0AYDACGgDAYAQ0AIDBCGgAAIMR0AAABiOgAQAMRkADABiMgAYAMBgBDQBgMAIaAMBgBDQAgMEI\naAAAgxHQAAAGI6ABAAxGQAMAGIyABgAwGAENAGAwAhoAwGAENACAwQhoAACDEdAAAAYjoAEADEZA\nAwAYjIAGADAYAQ0AYDACGgDAYAQ0AIDBCGgAAIMR0AAABiOgAQAMRkADABiMgAYAMBgBDQBgMAIa\nAMBgBDQAgMEIaAAAgxHQAAAGI6ABAAxGQAMAGIyABgAwGAENAGAwcw9oVXX/qvr1qnpvVd1UVY/b\n4Zifq6r3VdW7q+rKeZcJAGBkly7gGi9J8pbufnpVXZrkPtt3VtWTkzyiux85DW+/kOT4AsoFADCk\nubagVdVakqu6+9VJ0t1nuvuTZx12TZLXTve/M8n9q+ryeZYLADg4NjeTU6cmjwfFvLs4H57ko1X1\n6qq6oapeXlX3PuuYhyS5edvzD01fAwA4p83N5KqrkquvnjwelJA274B2aZLHJHlZdz8myaeT/OBZ\nx9QO7+s5lwsAOABuvDG56abkzJnk9OnJ9kEw7zFoH0xyc3f/8fT5G5O8cIdjHrrt+RVJPrzTyU6c\nOHHn9vr6etbX12dVTgBgBR07lhw9OglnR45MtpdhY2MjGxsbMztfdc+3saqqfj/Jd3X3n1XVi5Lc\np7tfuG3/U5I8t7u/saqOJ/nZ7r7HJIGq6nmXFQBYPZubk5azo0eTtbVll2aiqtLdO/US7u39Cwho\nfzvJK5JcluT9SZ6d5BlJurtfPj3mpUmelOQvkzy7u2/Y4TwCGgCwEoYPaLMioAEAq2K/Ac2dBAAA\nBiOgAQAMRkADABiMgAYAMBgBDQBgMAIaAMBgBDQAgMEIaAAAgxHQAAAGI6ABAAxGQAMAGIyABgAw\nGAENAGAwAhoAwGAENACAwQhoAACDEdAAAAYjoAEADEZAAwAYjIAGADAYAQ0AOPA2N5NTpyaPq0BA\nAwAOtM3N5KqrkquvnjyuQkgT0ACAA+3GG5ObbkrOnElOn55sj05AAwAOtGPHkqNHk8suS44cmWyP\nrrp72WXYk6rqVSkrADCWzc1Jy9nRo8na2vyvV1Xp7rro969K6BHQAIBVsd+AposTAGAwAhoAsDSr\ntvzFoghoAMBSrOLyF4sioAEAS7GKy18sioAGACzFKi5/sShmcQIAS7Po5S8WxTIbAMCQNjcn3ZjH\njh2s8LUXltkAAIZjAsD+CGgAwMyZALA/AhoAMHMmAOyPMWgAwFwc1AkAe2GSAADAYEwSAAAOtMN4\nOygBDQAY1iJng44UBAU0AGBYi5oNOtqyIAIaADCsRc0GHW1ZEJMEAIChLWI26FYL2unTkyB43XU7\nX2uvd0cwixMAYAbOFwS3QtzWMbuFuMQsTgBgxkYaLL9Ia2vJ8eO7h65FdoMKaACwAhYVmkYbLD+S\nRd4dQUADgMEtMjSNNlh+JGtrk27NkyfP3b05CwIaAAxukaHJPTTP7XzdoLNikgAADG6vMwxneb3D\neg/NWTGLEwAOAaFptQhoAACDscwGAMABI6ABwJItct2xw7rG2aoR0ABgiRa5hIY1zlaHgAbAvmmV\nuXiLXELDGmerQ0ADYF+0yuzPItcds8bZ6pj7LM6q+kCSTyS5I8nt3f3Ys/Y/Mcmbk7x/+tJvdPeP\n7XAeszgBBnTq1CScnTkz+cV/8uRkIU/2blZLaGxuTlrJjh3b/TyW61iM4ZfZqKr3J/nq7v7YLvuf\nmOQF3f3U85xHQAMY0KIXUWVnW/WwFb7Uw3KtwjIbtYfrXPQ/AIDlWuT9CdndoseXGXc4X4sIaJ3k\nrVV1fVV91y7HHK+qd1XVb1fVkQWUCYAZWtT9CdndIseXGXc4f4vo4nxwd99SVV+Y5O1Jvre737Ft\n//2S3NHdn66qJyd5SXd/xQ7n0cUJcMDtZQwVu1vU+DLjDs9vv12cl86yMDvp7lumjx+pqjcleWyS\nd2zb/6lt2/+1qn6+qh7U3bedfa4TJ07cub2+vp719fU5lhyARTKGav+2WjLnbau1bmvcodmgycbG\nRjY2NmZ2vrm2oFXVfZJc0t2fqqr7Jnlbkhd399u2HXN5d9863X5skjd098N2OJcWNIADTKvMajEb\n9NxGb0G7PMmbqqqn13pdd7+tqp6TpLv75Um+paq+O8ntST6T5FvnXCaAlXcQuwK1yqyWRbXWHVZz\nH4M2K1rQACYOclegVhkOiuHXQZsVAQ1gQlcgjG8V1kEDYIbcrmcce1kLzHphXAwtaAArSFfg8u2l\nq/kgd0dzblrQAA4hC8Mu315W7l/06v4cHAIaAFyEvXQ1647mYuniBICLtJeuZt3Rh5NZnAAAgzEG\nDQDggBHQAAAGI6ABAAxGQAMuiEU3Dxb1CWMS0IA921p08+qrJ49+qa+2w1yfgimjE9CAPbPo5sFy\nWOvzMAdTVoeABuyZRTcPllWtz/22fh3WYMpqsQ4acEEsunmwrFp9zuLellvnOH16EkzdH5N5sFAt\nAIfGqVOTrskzZyYtfydPTu5JeqH2egeAG2+ctDQKcFwoC9UCh5rB3ofLrLplz3ezeePUWDYBDViK\nWQQrv0TP7SCG17W1SZfkyZPz7Zo0To1lE9CAhZtVsPJLdHcHObyer/VrFlZ1AgUHh4AGLNysgpVf\norsTXvdnUS11sBuTBICFm+UsulWbhbgoZirCcpnFCawkwWr+fI9heQQ0AOZq1ZabWLXycjBZZgOA\nuVm1yQarVl7YjYAGwK5WbbLBqpUXdiOgAYfeQVwvbFZmOVN2Ed9nM3s5KIxBAw61Wdzb8UKvt2rj\no2Yx2WCR32eTIxiBMWgA+7DILrFVHR81i4VhF/l9XsRCtjBvAhpwqC2yS+wwj4/S9QgXRhcncOgt\nqkvssC8eq+uRw8Q6aAArREiBw0FAA4azigPhAWbJJAFgKKs6EB5gJAIaMFOHeSA8wKwIaMBMma0H\nsH/GoAEzZyD8/hjDB6vPJAGAA2TRdzYA5sMkAYADxBg+IBHQAIZiDB+Q6OIEGI4xfLD6jEEDWAAD\n94ELYQwawJxZfBdYNAEN4Dz2OnB/czM5dUqAA/ZPQAM4j70M3NfKBsySMWgAe3C+gfunTk3C2Zkz\nkyB38mRy/PjiywmMwRg04MAaqctwbW0SuHabIGB5DGCWtKDBEpkZuLtZrqi/qO+z5TGALVrQYEUZ\ns3Rus1pRf5Hf5/O1sgHslYAGS+KWPuc2qy5D32dgFQlosCTGLJ3b2tqkW/Pkyf11b/o+A6vIGDRY\nImOWFsP3GVg0t3oCABiMSQIAAAeMgAYAMBgBDQBgMAIacKeRVu4HOMzmHtCq6gNV9Z6qeldV/dEu\nx/xcVb2vqt5dVVfOu0zAPVk4F2Aci2hBuyPJenc/ursfe/bOqnpykkd09yOTPCfJLyygTMBZLOgK\nMI5FBLQ6z3WuSfLaJOnudya5f1VdvoByAdtY0BVgHOcNaFX1vVX1wH1co5O8taqur6rv2mH/Q5Lc\nvO35h6avAQs0q5X7Adi/S/dwzIOTXF9VNyR5VZK3XuCKsY/v7luq6guTvL2q3tvd79i2f6dF3KxI\nC0uwdbNvAJbrvC1o3f1vkzwyySuTPCvJ+6rqP1TVI/Zyge6+Zfr4kSRvSnL2OLQPJnnotudXJPnw\nXs4NAHAQ7aUFLd3dVXVLkluSnEnywCRvrKq3d/cP7Pa+qrpPkku6+1NVdd8kX5/kxWcddm2S5yb5\ntao6nuTj3X3rTuc7ceLEndvr6+tZX1/fS/EBAOZqY2MjGxsbMzvfee/FWVXPS/LMJB9N8ookv9nd\nt1fVJUne1927tqRV1Zdn0mrWmYTB13X3j1fVczLJfS+fHvfSJE9K8pdJnt3dN+xwLvfiBABWwtxv\nll5VP5Lkld39f3bY96jufu/FXvxCCGgAwKqYe0AbhYAGAKyK/QY0t3oCABiMgAYAMBgBDQBgMAIa\nAMBgBDQAgMEIaAAAgxHQAAAGI6ABAAxGQAMAGIyABgAwGAGNA2VzMzl1avK4bCOVBYDVIqBxYGxu\nJlddlVx99eRxmcFopLIAsHoENA6MG29MbropOXMmOX16sn0xZtHyNauyAHA4CWgcGMeOJUePJpdd\nlhw5Mtm+ULNq+ZpFWQA4vKq7l12GPamqXpWysjybm5PWqqNHk7W1C3//qVOTcHbmzCRcnTyZHD++\nnLIAsLqqKt1dF/3+VQk9AhqLsNWCdvr0pOXruuuEKwAunIDGgbC5ORm3dezY8gORli8A9ktAY+Vt\ntVpthSKtVgCsuv0GNJMEWDozHgHg7gQ0ls6MRwC4O12cDMG4LwAOEmPQ4AKNNCEBgIPJGDS4AG7B\nBMAqENA4VExIAGAVCGgcKiYkALAKjEHj0DEhAYB5M0kADjiTGgBWj0kCcICZ1ABwOAloMDCTGgAO\nJwENBmZSA8DhZAwaDM6kBoDVY5IAsCcmGwAsjkkCwHmZbACwWgQ0OARMNgBYLQIaHAImGwCsFmPQ\n4JAw2QBgcUwSYHgGpwNw2JgkwNAMTgeACyegMVcGpwPAhRPQmKuDOjh9czM5dUqLIADzYQwac3fQ\nBqdvddtu/Zuuu275/y7j/ADGYgwaw1tbS44fPzjBYbRuW+P8AA4eAQ0u0GjdtqMFRgD2TxcnXISR\num23WtBOn54ExhG6XAEOO+ugAUMFRgAENACA4ZgkAABwwAhoAACDEdAAAAYjoAEADEZAAwAYjIAG\nADAYAQ0AYDACGgDAYAQ09mVzMzl1ajE36F7ktQBgmQQ0LtrWPSCvvnryOM/gtMhrAcCyLSSgVdUl\nVXVDVV27w75nVtWfT/ffUFXfsYgycX7na7G68cbJ/R/PnJncqPumm+ZXlkVeCwCWbVEtaM9Pcvoc\n+1/f3Y+Zfr1qQWXiHPbSYnXs2OTm3Jddlhw5Mtmel0VeCwCWbe4BraquSPKUJK8412HzLgcXZi8t\nVmtryXXXJSdPTh7X1uZXnkVeCwCWbREtaD+T5PuT9DmO+eaqendVvWEa6Jiz83Vf7rXFam0tOX58\nMYFpkdcCgGWaa0Crqm9Mcmt3vzuTVrKdWsquTfKw7r4yye8kec08y8Teui+1WAHA8lw65/M/IclT\nq+opSe6dZK2qXtvd3751QHd/bNvxv5TkJ3Y72YkTJ+7cXl9fz/r6+qzLeyjs1H15/Pg9j9tqsQIA\nzm1jYyMbGxszO191n6vncXaq6olJXtDdTz3r9Qd39y3T7W9K8v3d/fgd3t+LKuuq29ychLBjx3Zu\n+dpqQTt9etJ9qYUMAGarqtLdFz3Gft4taDuqqhcnub67fyvJ86rqqUluT3Jbkmcto0wHxVb4uumm\nybixncLXVvfl1jHCGQCMZWEtaPulBW1vTp2ajC07c2YywP/kSd2UALBo+21BcyeBA8Z6YQCw+rSg\nHUCbm7ovAWCZ9tuCJqABAMyYLk4AgANGQBvI+Vb3BwAOBwFtEHtZ3R8AOBwEtEHs5ebkAMDhIKAN\nwvIYAMAWszgHYnkMADgYLLMBADAYy2wAABwwAhoAwGAENACAwQhoAACDEdAAAAYjoAEADEZAAwAY\njIAGADAYAQ0AYDACGgDAYA59QNvcTE6dmjwCAIzgUAe0zc3kqquSq6+ePAppAMAIDnVAu/HG5Kab\nkjNnktOnJ9sAAMt2qAPasWPJ0aPJZZclR45MtudlVl2pumQB4OCr7l52GfakqnoeZd3cnLScHT2a\nrK3tvP/GGydhbqf9e73GVVfddZ3rrru4c83qPADAfFVVursu9v2HugUtmQSc48d3D2ezGKM2q65U\nXbIAcDgc+oB2LrMKRLPqSl1klywAsDyHvovzXLZa0E6fngSi/XQpnq8rddHnAQDmZ79dnALaeQhE\nAMCFEtAAAAZjkgAAwAEjoAEADEZAAwAYjIAGADAYAQ0AYDACGgDAYAQ0AIDBCGgAAIMR0AAABiOg\nAQAMRkADABiMgAYAMBgBDQBgMAIaAMBgBDQAgMEIaAAAgxHQAAAGI6ABAAxGQAMAGIyABgAwGAEN\nAGAwAhoAwGAENACAwQhoAACDEdAAAAYjoAEADGYhAa2qLqmqG6rq2h32fU5Vvb6q3ldVp6rqSxdR\nJgCAUS2qBe35SU7vsu87k9zW3Y9M8rNJfnJBZQIAGNLcA1pVXZHkKUlescsh1yR5zXT7jUm+bt5l\nAgAY2SJa0H4myfcn6V32PyTJzUnS3Z9N8vGqetACygUAMKS5BrSq+sYkt3b3u5PU9Oseh+3wfLcw\nN6TNzeTUqckjAMB+XTrn8z8hyVOr6ilJ7p1krape293fvu2Ym5M8NMmHq+peST6vuz+208lOnDhx\n5/b6+nrW19fnVe4929xMrroquemm5OjR5LrrkrW1ZZcKAFikjY2NbGxszOx81b2YxqqqemKSF3T3\nU896/XuSHOvu76mqZyR5Wnc/Y4f396LKeiFOnUquvjo5cya57LLk5Mnk+PFllwoAWKaqSnfv1HO4\nJ0tZB62qXlxV/2j69JVJvqCq3pfkXyX5wWWU6WIdOzZpObvssuTIkck2AMB+LKwFbb9GbUFLJt2c\nW12cujcBgP22oAloAAAztpJdnAAA7E5AAwAYjIAGADAYAQ0AYDACGgDAYAQ0AIDBCGgAAIMR0AAA\nBiOgAQAMRkADABiMgAYAMBgBDQBgMAIaAMBgBDQAgMEIaAAAgxHQAAAGI6ABAAxGQAMAGIyABgAw\nGAENAGAwAhoAwGAENACAwQhoAACDEdAAAAYjoAEADEZAAwAYjIAGADAYAQ0AYDACGgDAYAQ0AIDB\nCGgAAIMR0AAABiOgAQAMRkADABiMgAYAMBgBDQBgMAIaAMBgBDQAgMEIaAAAgxHQAAAGI6ABAAxG\nQAMAGIyABgAwGAENAGAwAhoAwGAENACAwQhoAACDEdAAAAYjoAEADEZAAwAYjIAGADAYAQ0AYDAC\nGgDAYAQ0AIDBCGgAAIOZa0Crqs+tqndW1buq6k+r6kU7HPPMqvrzqrph+vUd8ywTAMDo5hrQuvuv\nknxtdz86yZVJnlxVj93h0Nd392OmX6+aZ5lYjo2NjWUXgYuk7lab+ltt6u/wmnsXZ3d/err5uUku\nTdI7HFbzLgfL5YfM6lJ3q039rTb1d3jNPaBV1SVV9a4ktyR5e3dfv8Nh31xV766qN1TVFfMuEwDA\nyBbRgnbHtIvziiSPq6ojZx1ybZKHdfeVSX4nyWvmXSYAgJFV9049jnO6WNW/S/Kp7v7pXfZfkuS2\n7n7ADvsWV1AAgH3q7osewnXpLAtytqr6giS3d/cnqureSf5Bkh8/65gHd/ct06fXJDm907n2848E\nAFglcw1oSb44yWumLWOXJPm17n5LVb04yfXd/VtJnldVT01ye5LbkjxrzmUCABjaQrs4AQA4v2Hv\nJFBVH6iq90wXuf2j6WsPrKq3VdX/rKq3VtX9l11Okqp6ZVXdWlX/Y9tru9ZVVf1cVb1vOnP3yuWU\nmi271N+LquqD2xaQftK2fT80rb/3VtXXL6fUJElVXVFVv1tVp6eLgT9v+rrP3wrYof6+b/q6z98K\n2G0x/qp6WFX94fTz96tVden09c+pqtdP6+9UVX3puc4/bEBLckeS9e5+dHdvLW77g0n+e3d/ZZLf\nTfJDSysd2706yTec9dqOdVVVT07yiO5+ZJLnJPmFRRaUHe1Uf0ny09sWkP5vSVJVj0ryT5I8KsmT\nk/x8VRkfujxnkvzr7j6S5O8meW5V/a34/K2Ks+vve6f1l/j8DW+Xxfgfl+QnkvzU9PP38STfOX3L\nd2YyEfKRSX42yU+e6/wjB7TKPct3Te5ahuM1SZ620BKxo+5+R5KPnfXy2XV1zbbXXzt93zuT3L+q\nLl9EOdnZLvWX7LyA9DWZ3PnjTHd/IMn7kux0dxAWoLtv6e53T7c/leS9mSxp5PO3Anapv4dMd/v8\nrYBdFuP/2iT/Zfr69qyy/XP5xiRfd65zjxzQOslbq+r6qvqX09cu7+5bk8l/7CRfuLTScT5fdFZd\nfdH09YckuXnbcR/KXT+QGMtzp91gr9jWRab+BlVVD8vkr/g/zD1/Vvr8DW5b/b1z+pLP3wo4ezH+\nJP8ryce7+47pIR/MXXV0Z/1192eTfLyqHrTbuUcOaI/v7q9J8pRM/qNelZ1vE8Vq2emvQvU6np/P\npCvsykx+8PzU9HX1N6Cqul8mf5E/f9oSs1udqL8B7VB/Pn8r4qzF+B+bSffzPQ6bPp5df5Vz1N+w\nAW1rbbTu/kiS38zkH37rVnN8VT04yZ8vr4Scx2519cEkD9123BVJPrzgsnEe3f2RvmuK9y/lrm4U\n9TeY6QDkNyb55e5+8/Rln78VsVP9+fytnu7+ZJLfT3I8yQOmy4sld6+jO+uvqu6V5PO6e6fhJUkG\nDWhVdZ/pXxSpqvsm+fokf5rJbaGeNT3smUnevOMJWIbK3f862F5Xz8pddXVtkm9Pkqo6nklT8K2L\nKSLncLf6m/5S3/LNSW6cbl+b5BnT2UhfnuRvJvmjhZWSnbwqyenufsm213z+Vsc96s/nbzVU1Rds\ndT/XXYvxn07ye0mePj1se1a5dvo80/2/e87zj7gO2vQ/3psyafq7NMnruvvHp321b8gkgf7fJE/v\n7o8vr6QkSVX9SpL1JJ+f5NYkL8qk1fPXs0NdVdVLkzwpyV8meXZ337CEYjO1S/19bSbjYe5I8oEk\nz9n6RV5VP5TJbKTbM+mSedviS02SVNUTkpzM5A/Ynn79cCa/tHf8WenzN45z1N8/jc/f8KrqqzIZ\n9L99Mf5/P80wr0/ywCTvSvLPu/v2qvrcJL+c5NFJ/iLJM6aTPXY+/4gBDQDgMBuyixMA4DAT0AAA\nBiOgAQAMRkADABiMgAYAMBgBDQBgMAIaAMBgBDQAgMEIaMChVFVfU1Xvmd42575VdWNVHVl2uQAS\ndxIADrGq+pEk955+3dzdP7HkIgEkEdCAQ6yqLktyfZLPJHl8+4EIDEIXJ3CYfX6S+yVZS/I3llwW\ngDtpQQMOrap6c5JfTfLlSb6ku79vyUUCSJJcuuwCACxDVf2LJLd39+ur6pIkf1BV6929seSiAWhB\nAwAYjTFoAACDEdAAAAYjoAEADEZAAwAYjIAGADAYAQ0AYDACGgDAYAQ0AIDB/H9wMo3SQYR09AAA\nAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# generate log like toy data with noise \n", "\n", "from matplotlib.pylab import rcParams\n", "rcParams['figure.figsize'] = 10, 7\n", "\n", "#Define input array with angles from 60deg to 300deg converted to radians\n", "#x = np.array([i*np.pi/180 for i in range(60,300,4)])\n", "x = np.array([i for i in range(60,300,4)])\n", "np.random.seed(10) #Setting seed for reproducability\n", "#y = np.sin(x) + np.random.normal(0,0.15,len(x))\n", "y = np.log(x) + np.random.normal(0,0.15,len(x))\n", "data = pd.DataFrame(np.column_stack([x,y]),columns=['x','y'])\n", "plt.plot(data['x'],data['y'],'.')\n", "plt.title('Train data')\n", "plt.xlabel('x')\n", "plt.ylabel('y')" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 10, "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", "
xyx_2x_3x_4x_5x_6x_7x_8x_9x_10x_11x_12x_13x_14x_15
060.04.2940833600.0216000.012960000.07.776000e+084.665600e+102.799360e+121.679616e+141.007770e+166.046618e+173.627971e+192.176782e+211.306069e+237.836416e+244.701850e+26
164.04.2661754096.0262144.016777216.01.073742e+096.871948e+104.398047e+122.814750e+141.801440e+161.152922e+187.378698e+194.722366e+213.022315e+231.934281e+251.237940e+27
268.03.9876984624.0314432.021381376.01.453934e+099.886748e+106.722989e+124.571632e+143.108710e+162.113923e+181.437468e+209.774779e+216.646850e+234.519858e+253.073503e+27
\n", "
" ], "text/plain": [ " x y x_2 x_3 x_4 x_5 x_6 \\\n", "0 60.0 4.294083 3600.0 216000.0 12960000.0 7.776000e+08 4.665600e+10 \n", "1 64.0 4.266175 4096.0 262144.0 16777216.0 1.073742e+09 6.871948e+10 \n", "2 68.0 3.987698 4624.0 314432.0 21381376.0 1.453934e+09 9.886748e+10 \n", "\n", " x_7 x_8 x_9 x_10 x_11 \\\n", "0 2.799360e+12 1.679616e+14 1.007770e+16 6.046618e+17 3.627971e+19 \n", "1 4.398047e+12 2.814750e+14 1.801440e+16 1.152922e+18 7.378698e+19 \n", "2 6.722989e+12 4.571632e+14 3.108710e+16 2.113923e+18 1.437468e+20 \n", "\n", " x_12 x_13 x_14 x_15 \n", "0 2.176782e+21 1.306069e+23 7.836416e+24 4.701850e+26 \n", "1 4.722366e+21 3.022315e+23 1.934281e+25 1.237940e+27 \n", "2 9.774779e+21 6.646850e+23 4.519858e+25 3.073503e+27 " ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# build polynomial regression (x**1 - x**15) with powers of x form 1 to 15.\n", "\n", "for i in range(2,16): #power of 1 is already there\n", " colname = 'x_%d'%i #new var will be x_power\n", " data[colname] = data['x']**i\n", "#print (data.head())\n", "data.head(3)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "//anaconda/envs/g_dash/lib/python3.4/site-packages/scipy/linalg/basic.py:1018: RuntimeWarning: internal gelsd driver lwork query error, required iwork dimension not returned. This is likely the result of LAPACK bug 0038, fixed in LAPACK 3.2.2 (released July 21, 2010). Falling back to 'gelss' driver.\n", " warnings.warn(mesg, RuntimeWarning)\n" ] }, { "data": { "image/png": "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\nA8cGt0cCz2daUFhl/0oq+lVQ1qOM8n7lVPSryMZqRUpWIfMKyqxIurSNFYmmTrtYdMTMLgJedc49\nAdwK3G1m7wPz8CHvsljvGHWj61ae/tGpH5HM5COvoMyKZIu2sSKF1WkXi6y+meaJF1kpF6drs02Z\nFVkl6plVXkVWyXkXCxERERGR7kQNZBERERGREDWQRURERERC1EAWEREREQlRA1lEREREJEQNZBER\nERGREDWQRURERERC1EAWEREREQlRA1lEREREJEQNZBERERGREDWQRURERERC1EAWEREREQlRA1lE\nREREJEQNZBERERGREDWQRURERERC1EAWEREREQlRA1lEREREJEQNZBERERGREDWQRURERERC1EAW\nEREREQlRA1lEREREJEQNZBERERGREDWQRURERERC1EAWEREREQlRA1lEREREJKTTBrKZ9TazV8zs\nDTN728zGJFjmWDP7wsymBD/H56bc3KmtrS10CUlFuT7VFh3dJa8Q7e9WtWUu6vVlW3fJbJS/1yjX\nBtGuL8q1dVWnDWTnXDPwPefcd4GdgAPMbEiCRe93zu0c/NyW7UJzLepfcpTrU23R0V3yCtH+blVb\n5qJeX7Z1l8xG+XuNcm0Q7fqiXFtXpdTFwjm3JLjZG+gFuASLWbaKEpHMKa8ixUWZFYmelBrIZtbD\nzN4APgeecc69mmCxw81sqpn908y2yGqVIpIy5VWkuCizItFjziXaUe1gYbP1gEeAXzrnmkKP9wUW\nOeeWmdkpwJHOueEJXp/6m4l0A865nB0V6mpeg2WVWZGQKGdWeRVpqyt5TauBDGBmf8AH9S8dPN8D\nmO+cWz/TokQkO5RXkeKizIpEQyqjWGxkZn2C22sB3wemtVtmk9DdQ4AmRCTvlFeR4qLMikRTrxSW\n2RS4M9hr7QE84Jwbb2YXAa86554AfmVmBwPLgPnAcbkqWESSUl5FiosyKxJBaXexEBEREREpZTmd\nSc/MppvZm8EA6JODx/qa2dNm9q6Z/af11FKumdmtZjbbzN4KPdZhLWZ2vZm9H1w1vFMBahtjZp+G\nBobfP/Tc74La3jGzfXNc2xZm9ryZNQWD2P8qeLzgn12C2k4LHo/KZ5dwAgAz28rMJgWf3X1m1it4\nfA0zuz+or97MBuSyvgT1RiavwXsrs5nVpsxmVltR5TWoITKZVV4zrk15zby+3GbWOZezH+AjoG+7\n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\nERERkTj/D8HfeMgO2SdBAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Initialize a dataframe to store the results:\n", "col = ['rss','intercept'] + ['coef_x_%d'%i for i in range(1,16)]\n", "ind = ['model_pow_%d'%i for i in range(1,16)]\n", "coef_matrix_simple = pd.DataFrame(index=ind, columns=col)\n", "\n", "#Define the powers for which a plot is required:\n", "models_to_plot = {1:231,3:232,6:233,9:234,12:235,15:236}\n", "\n", "#Iterate through all powers and assimilate results\n", "for i in range(1,16):\n", " coef_matrix_simple.iloc[i-1,0:i+2] = linear_regression(data, power=i, models_to_plot=models_to_plot)" ] }, { "cell_type": "code", "execution_count": 12, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
rssinterceptcoef_x_1coef_x_2coef_x_3coef_x_4coef_x_5coef_x_6coef_x_7coef_x_8coef_x_9coef_x_10coef_x_11coef_x_12coef_x_13coef_x_14coef_x_15
model_pow_11.540.0064NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
model_pow_21.13.50.013-1.8e-05NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
model_pow_31.130.024-8.5e-051.2e-07NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
model_pow_413.50.00955.2e-05-4.2e-077.7e-10NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
model_pow_515.4-0.0610.001-6.4e-061.9e-08-2e-11NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
model_pow_60.99-0.520.2-0.00353.3e-05-1.6e-074e-10-3.9e-13NaNNaNNaNNaNNaNNaNNaNNaNNaN
model_pow_70.9322-0.940.021-0.000231.5e-06-5.7e-091.1e-11-9.5e-15NaNNaNNaNNaNNaNNaNNaNNaN
model_pow_80.9245-2.40.055-0.00075.3e-06-2.5e-086.8e-11-1e-136.6e-17NaNNaNNaNNaNNaNNaNNaN
model_pow_90.871.7e+02-110.29-0.00454.3e-05-2.6e-071e-09-2.6e-123.6e-15-2.2e-18NaNNaNNaNNaNNaNNaN
model_pow_100.871.4e+02-8.40.22-0.00322.7e-05-1.4e-074.1e-10-3.9e-13-1.2e-154e-18-3.5e-21NaNNaNNaNNaNNaN
model_pow_110.87-739-0.410.01-0.000151.5e-06-9.9e-094.5e-11-1.4e-132.7e-16-3.1e-191.6e-22NaNNaNNaNNaN
model_pow_120.87-3.4e+0233-1.30.032-0.000495.1e-06-3.7e-081.9e-10-6.9e-131.7e-15-2.9e-182.8e-21-1.3e-24NaNNaNNaN
model_pow_130.863.2e+03-3.1e+0214-0.350.0061-7.5e-056.6e-07-4.2e-092e-11-6.8e-141.6e-16-2.6e-192.5e-22-1.1e-25NaNNaN
model_pow_140.792.4e+04-2.5e+031.2e+02-3.20.061-0.000818e-06-5.8e-083.2e-10-1.3e-123.8e-15-8.2e-181.2e-20-1e-234e-27NaN
model_pow_150.7-3.6e+044.3e+03-2.3e+027.3-0.160.0025-2.8e-052.5e-07-1.6e-098.1e-12-3.1e-148.6e-17-1.7e-192.4e-22-2e-257.5e-29
\n", "
" ], "text/plain": [ " rss intercept coef_x_1 coef_x_2 coef_x_3 coef_x_4 coef_x_5 \\\n", "model_pow_1 1.5 4 0.0064 NaN NaN NaN NaN \n", "model_pow_2 1.1 3.5 0.013 -1.8e-05 NaN NaN NaN \n", "model_pow_3 1.1 3 0.024 -8.5e-05 1.2e-07 NaN NaN \n", "model_pow_4 1 3.5 0.0095 5.2e-05 -4.2e-07 7.7e-10 NaN \n", "model_pow_5 1 5.4 -0.061 0.001 -6.4e-06 1.9e-08 -2e-11 \n", "model_pow_6 0.99 -0.52 0.2 -0.0035 3.3e-05 -1.6e-07 4e-10 \n", "model_pow_7 0.93 22 -0.94 0.021 -0.00023 1.5e-06 -5.7e-09 \n", "model_pow_8 0.92 45 -2.4 0.055 -0.0007 5.3e-06 -2.5e-08 \n", "model_pow_9 0.87 1.7e+02 -11 0.29 -0.0045 4.3e-05 -2.6e-07 \n", "model_pow_10 0.87 1.4e+02 -8.4 0.22 -0.0032 2.7e-05 -1.4e-07 \n", "model_pow_11 0.87 -73 9 -0.41 0.01 -0.00015 1.5e-06 \n", "model_pow_12 0.87 -3.4e+02 33 -1.3 0.032 -0.00049 5.1e-06 \n", "model_pow_13 0.86 3.2e+03 -3.1e+02 14 -0.35 0.0061 -7.5e-05 \n", "model_pow_14 0.79 2.4e+04 -2.5e+03 1.2e+02 -3.2 0.061 -0.00081 \n", "model_pow_15 0.7 -3.6e+04 4.3e+03 -2.3e+02 7.3 -0.16 0.0025 \n", "\n", " coef_x_6 coef_x_7 coef_x_8 coef_x_9 coef_x_10 coef_x_11 \\\n", "model_pow_1 NaN NaN NaN NaN NaN NaN \n", "model_pow_2 NaN NaN NaN NaN NaN NaN \n", "model_pow_3 NaN NaN NaN NaN NaN NaN \n", "model_pow_4 NaN NaN NaN NaN NaN NaN \n", "model_pow_5 NaN NaN NaN NaN NaN NaN \n", "model_pow_6 -3.9e-13 NaN NaN NaN NaN NaN \n", "model_pow_7 1.1e-11 -9.5e-15 NaN NaN NaN NaN \n", "model_pow_8 6.8e-11 -1e-13 6.6e-17 NaN NaN NaN \n", "model_pow_9 1e-09 -2.6e-12 3.6e-15 -2.2e-18 NaN NaN \n", "model_pow_10 4.1e-10 -3.9e-13 -1.2e-15 4e-18 -3.5e-21 NaN \n", "model_pow_11 -9.9e-09 4.5e-11 -1.4e-13 2.7e-16 -3.1e-19 1.6e-22 \n", "model_pow_12 -3.7e-08 1.9e-10 -6.9e-13 1.7e-15 -2.9e-18 2.8e-21 \n", "model_pow_13 6.6e-07 -4.2e-09 2e-11 -6.8e-14 1.6e-16 -2.6e-19 \n", "model_pow_14 8e-06 -5.8e-08 3.2e-10 -1.3e-12 3.8e-15 -8.2e-18 \n", "model_pow_15 -2.8e-05 2.5e-07 -1.6e-09 8.1e-12 -3.1e-14 8.6e-17 \n", "\n", " coef_x_12 coef_x_13 coef_x_14 coef_x_15 \n", "model_pow_1 NaN NaN NaN NaN \n", "model_pow_2 NaN NaN NaN NaN \n", "model_pow_3 NaN NaN NaN NaN \n", "model_pow_4 NaN NaN NaN NaN \n", "model_pow_5 NaN NaN NaN NaN \n", "model_pow_6 NaN NaN NaN NaN \n", "model_pow_7 NaN NaN NaN NaN \n", "model_pow_8 NaN NaN NaN NaN \n", "model_pow_9 NaN NaN NaN NaN \n", "model_pow_10 NaN NaN NaN NaN \n", "model_pow_11 NaN NaN NaN NaN \n", "model_pow_12 -1.3e-24 NaN NaN NaN \n", "model_pow_13 2.5e-22 -1.1e-25 NaN NaN \n", "model_pow_14 1.2e-20 -1e-23 4e-27 NaN \n", "model_pow_15 -1.7e-19 2.4e-22 -2e-25 7.5e-29 " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Set the display format to be scientific for ease of analysis\n", "pd.options.display.float_format = '{:,.2g}'.format\n", "coef_matrix_simple" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> So, from polynomial modeling approach above, we can see the model get much more complexity (coffecient of high polynomial terms) when polynomial powers get larger \n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1-1) Ridge Regression" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "//anaconda/envs/g_dash/lib/python3.4/site-packages/scipy/linalg/basic.py:223: RuntimeWarning: scipy.linalg.solve\n", "Ill-conditioned matrix detected. Result is not guaranteed to be accurate.\n", "Reciprocal condition number: 5.088744863659296e-17\n", " ' condition number: {}'.format(rcond), RuntimeWarning)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Initialize predictors to be set of 15 powers of x\n", "predictors=['x']\n", "predictors.extend(['x_%d'%i for i in range(2,16)])\n", "\n", "#Set the different values of alpha to be tested\n", "alpha_ridge = [1e-15, 1e-10, 1e-8, 1e-4, 1e-3,1e-2, 1, 5, 10, 20]\n", "\n", "#Initialize the dataframe for storing coefficients.\n", "col = ['rss','intercept'] + ['coef_x_%d'%i for i in range(1,16)]\n", "ind = ['alpha_%.2g'%alpha_ridge[i] for i in range(0,10)]\n", "coef_matrix_ridge = pd.DataFrame(index=ind, columns=col)\n", "\n", "models_to_plot = {1e-15:231, 1e-10:232, 1e-4:233, 1e-3:234, 1e-2:235, 5:236}\n", "for i in range(10):\n", " coef_matrix_ridge.iloc[i,] = ridge_regression(data, predictors, alpha_ridge[i], models_to_plot)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> When alpha increases (L2 regularization), the model complexity reduces. \n", "Thing to notice is : though high values of alpha can reduce over-fitting ; significantly high values can cause under-fitting in cases as well. How to select a right alpha can be a core part of model tuning : cross-validation...\n", "\n" ] }, { "cell_type": "code", "execution_count": 14, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
rssinterceptcoef_x_1coef_x_2coef_x_3coef_x_4coef_x_5coef_x_6coef_x_7coef_x_8coef_x_9coef_x_10coef_x_11coef_x_12coef_x_13coef_x_14coef_x_15
alpha_1e-150.8796-5.10.11-0.00125.7e-063.2e-09-1.4e-103.1e-131.3e-15-3.7e-18-1.5e-204e-231.5e-25-6.5e-287.1e-31-1.1e-34
alpha_1e-100.9214-0.480.0092-7.9e-052.7e-072.6e-10-2.6e-12-5.2e-151.7e-179.6e-206.1e-23-9.2e-25-3.4e-273.1e-305.5e-32-1e-34
alpha_1e-080.954.2-0.0170.00044-2.8e-064.2e-092e-11-1.5e-14-1.9e-16-3.5e-194.7e-223.8e-248e-274.4e-301.7e-321.7e-34-1.6e-36
alpha_0.00010.963.60.00951.2e-05-1.2e-08-1.6e-10-7.1e-13-2e-15-2.9e-187e-217.8e-234e-251.5e-274e-304.9e-33-3.1e-35-3.3e-37
alpha_0.0010.993.50.0114.3e-06-3e-08-1.4e-10-4e-13-6.7e-164.2e-199.5e-215.1e-232e-256.1e-281.4e-305.1e-34-1.7e-35-1.4e-37
alpha_0.011.13.80.00755.7e-06-6.7e-09-5.3e-11-1.8e-13-4.2e-16-6.2e-194.8e-228.2e-244.1e-261.5e-284.1e-317.3e-34-9.4e-37-1.8e-38
alpha_13.14.60.00163.3e-067.9e-091.9e-114.8e-141.2e-162.7e-195.7e-221e-247.4e-28-5.3e-30-4.1e-32-2.1e-34-9.2e-37-3.8e-39
alpha_55.54.80.000621.4e-064e-091.2e-113.4e-141e-163.1e-199.3e-222.8e-248.6e-272.6e-297.9e-322.4e-347.2e-372.2e-39
alpha_106.84.90.000399.4e-072.7e-098.3e-122.6e-148.1e-172.5e-198.1e-222.6e-248.2e-272.6e-298.5e-322.7e-348.8e-372.8e-39
alpha_208.450.000235.8e-071.8e-095.5e-121.8e-145.6e-171.8e-196e-222e-246.4e-272.1e-296.9e-322.3e-347.5e-372.5e-39
\n", "
" ], "text/plain": [ " rss intercept coef_x_1 coef_x_2 coef_x_3 coef_x_4 coef_x_5 \\\n", "alpha_1e-15 0.87 96 -5.1 0.11 -0.0012 5.7e-06 3.2e-09 \n", "alpha_1e-10 0.92 14 -0.48 0.0092 -7.9e-05 2.7e-07 2.6e-10 \n", "alpha_1e-08 0.95 4.2 -0.017 0.00044 -2.8e-06 4.2e-09 2e-11 \n", "alpha_0.0001 0.96 3.6 0.0095 1.2e-05 -1.2e-08 -1.6e-10 -7.1e-13 \n", "alpha_0.001 0.99 3.5 0.011 4.3e-06 -3e-08 -1.4e-10 -4e-13 \n", "alpha_0.01 1.1 3.8 0.0075 5.7e-06 -6.7e-09 -5.3e-11 -1.8e-13 \n", "alpha_1 3.1 4.6 0.0016 3.3e-06 7.9e-09 1.9e-11 4.8e-14 \n", "alpha_5 5.5 4.8 0.00062 1.4e-06 4e-09 1.2e-11 3.4e-14 \n", "alpha_10 6.8 4.9 0.00039 9.4e-07 2.7e-09 8.3e-12 2.6e-14 \n", "alpha_20 8.4 5 0.00023 5.8e-07 1.8e-09 5.5e-12 1.8e-14 \n", "\n", " coef_x_6 coef_x_7 coef_x_8 coef_x_9 coef_x_10 coef_x_11 \\\n", "alpha_1e-15 -1.4e-10 3.1e-13 1.3e-15 -3.7e-18 -1.5e-20 4e-23 \n", "alpha_1e-10 -2.6e-12 -5.2e-15 1.7e-17 9.6e-20 6.1e-23 -9.2e-25 \n", "alpha_1e-08 -1.5e-14 -1.9e-16 -3.5e-19 4.7e-22 3.8e-24 8e-27 \n", "alpha_0.0001 -2e-15 -2.9e-18 7e-21 7.8e-23 4e-25 1.5e-27 \n", "alpha_0.001 -6.7e-16 4.2e-19 9.5e-21 5.1e-23 2e-25 6.1e-28 \n", "alpha_0.01 -4.2e-16 -6.2e-19 4.8e-22 8.2e-24 4.1e-26 1.5e-28 \n", "alpha_1 1.2e-16 2.7e-19 5.7e-22 1e-24 7.4e-28 -5.3e-30 \n", "alpha_5 1e-16 3.1e-19 9.3e-22 2.8e-24 8.6e-27 2.6e-29 \n", "alpha_10 8.1e-17 2.5e-19 8.1e-22 2.6e-24 8.2e-27 2.6e-29 \n", "alpha_20 5.6e-17 1.8e-19 6e-22 2e-24 6.4e-27 2.1e-29 \n", "\n", " coef_x_12 coef_x_13 coef_x_14 coef_x_15 \n", "alpha_1e-15 1.5e-25 -6.5e-28 7.1e-31 -1.1e-34 \n", "alpha_1e-10 -3.4e-27 3.1e-30 5.5e-32 -1e-34 \n", "alpha_1e-08 4.4e-30 1.7e-32 1.7e-34 -1.6e-36 \n", "alpha_0.0001 4e-30 4.9e-33 -3.1e-35 -3.3e-37 \n", "alpha_0.001 1.4e-30 5.1e-34 -1.7e-35 -1.4e-37 \n", "alpha_0.01 4.1e-31 7.3e-34 -9.4e-37 -1.8e-38 \n", "alpha_1 -4.1e-32 -2.1e-34 -9.2e-37 -3.8e-39 \n", "alpha_5 7.9e-32 2.4e-34 7.2e-37 2.2e-39 \n", "alpha_10 8.5e-32 2.7e-34 8.8e-37 2.8e-39 \n", "alpha_20 6.9e-32 2.3e-34 7.5e-37 2.5e-39 " ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Set the display format to be scientific for ease of analysis\n", "pd.options.display.float_format = '{:,.2g}'.format\n", "coef_matrix_ridge" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> - The RSS (Residual Sum of Squares) increases with increase in alpha, i.e. the model complexity reduces because of big alpha \n", "- High alpha values can lead to significant under-fitting. Note the rapid increase in RSS for values of alpha greater than 1\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1-2) Lasso Regression" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "//anaconda/envs/g_dash/lib/python3.4/site-packages/sklearn/linear_model/coordinate_descent.py:484: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations. Fitting data with very small alpha may cause precision problems.\n", " ConvergenceWarning)\n" ] }, { "data": { "image/png": "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\n/w184Jz7InAFMLnYwkSkKMqrSGVRZkUiJKcOspmNBA4CbkyzyaHArYmv7wH2L740ESmE8ipSWZRZ\nkejJ9QzyFOBMwKV5fjtgCYBz7jNgpZltWXx5EO+K07akjXhXPIi3E6kGZcsrKLMiBVAbKxIxA7Jt\nYGbfBpY5514ysybAUm2W4vuUQZ80adL6r5uammhqakq773hXnMZpjXQs76BuWB2tza3EBsaylSwS\nSS0tLbS0tIS6j6DzCsqsVK9KzKzyKtUq6Lyac2nbRW8Ds98DPwK6gU2BGHCvc+4nvm1mApOcc7PN\nrD/wtnNumxTv5bLtz69tSRtjbxlL97puavrVMKt5Fg0jG3J+vUiUmRnOuVSNYTHvGVheE9sqsyIJ\nUc+s8irSo9i8Zh1i4Zz7tXNuB+fcTsAPgMf9wU14EDgm8fUE4PFCC/Kr36aeumF11PSroXZYLXXD\n6oJ4W5E+q5x5BWVWJF9qY0WiKesQi3TM7ELgOefcQ8BNwJ/N7GXgfbyQFy02MEZrc+v6yz+69CNS\nmFLkFZRZkaCojRUpr6xDLALdWZ6Xf0T6sjAu1wZNmRXpEfXMKq8iPUIfYiEiIiIiUk3UQRYRERER\n8VEHWURERETERx1kEREREREfdZBFRERERHzUQRYRERER8VEHWURERETERx1kEREREREfdZBFRERE\nRHzUQRYRERER8VEHWURERETERx1kEREREREfdZBFRERERHzUQRYRERER8VEHWURERETERx1kERER\nEREfdZBFRERERHzUQRYRERER8VEHWURERETERx1kEREREREfdZBFRERERHzUQRYRERER8VEHWURE\nRETERx1kEREREREfdZBFRERERHzUQRYRERER8cnaQTazgWY228xeNLN5ZnZBim2OMbN3zeyFxL9j\nwyk3PC0tLeUuIaMo16faoqNa8grR/t2qtsJFvb6gVUtmo/x7jXJtEO36olxbsbJ2kJ1zXcA3nXO7\nA18DxpvZmBSb3umc2yPx7+agCw1b1H/JUa5PtUVHteQVov27VW2Fi3p9QauWzEb59xrl2iDa9UW5\ntmLlNMTCObcm8eVAYADgUmxmQRUlIoVTXkUqizIrEj05dZDNrJ+ZvQi8A/zTOfdcis0ON7OXzOxu\nMxsZaJUikjPlVaSyKLMi0WPOpTpQTbOx2RDgfuAE51yn7/EtgA+dc2vN7Djg+865/VO8PvediVQB\n51xoZ4WKzWtiW2VWxCfKmVVeRTZUTF7z6iADmNn5eEG9PM3z/YAPnHNDCy1KRIKhvIpUFmVWJBpy\nmcViazPbPPH1psD/Axb02ubzvm8PBToRkZJTXkUqizIrEk0DcthmOHBr4qi1H3CXc26GmV0IPOec\newg4ycwOAdYCHwA/DatgEclIeRWpLMqsSATlPcRCRERERKQvC3UlPTNbZGZzEhOgP5t4bAsz+z8z\nW2hmjyQvLYXNzG4ys2VmNtf3WNpazOwqM3s5cdfw18pQ2wVm9qZvYvgDfc+dm6htvpkdEHJtI83s\ncTPrTExif1Li8bJ/dilqOzHxeFQ+u5QLAJjZKDN7JvHZ/dXMBiQe38TM7kzU12ZmO4RZX4p6I5PX\nxL6V2cJqU2YLq62i8pqoITKZVV4Lrk15Lby+cDPrnAvtH/AasEWvxy4Bzkp8fTbwhzBr8O13X7xJ\n2OdmqwUYDzyc+HpP4Jky1HYBcFqKbb8EvIg3PGYU8AqJKwEh1fZ54GuJrzcDFgKjo/DZZagtEp9d\nYp+DEv/tDzyT+EzuAiYkHr8GOC7x9fHAnxJfH4m3MEDo2fDVGpm8JvanzBZWmzJbeH0Vk9fEfiOT\nWeU18EyU/bOLel4T+wwts6GeQcab2Lz3Pg4Fbk18fSvw3ZBrAMA59ySwIksth/oevy3xutnA5ma2\nbYlrg9QTwx+K90vtds4tAl4GUq26FFRt7zjnXkp8/SEwHxhJBD67NLVtl3i67J9doq5UCwB8E/h7\n4nF/Bvyf6T1AyqnXQhSZvIIyW0Rtymzh9VVSXiFCmVVeC65NeS2uxtAyG3YH2QGPmNlzZvazxGPb\nOueWgffhA8NCriGTbXrVsk3i8e2AJb7t3qLnf4pSmpi4hHKj7/JK2Wozs1F4R+HPsPHvsayfna+2\n2YmHIvHZWa8FAIBXgZXOuXWJTd701bC+PufcZ8BKM9syzPp6iXpeQZnNizKbd02VlFeIfmaV1zwo\nrwXVFVpmw+4g7+2c+y/gILwPs5HUS2hGTaojo1LX/SdgZ+fc1/B+8ZclHi9LbWa2Gd4R18mJI8l0\n+yx5fSlqi8xn55xb55zbHe+MwBi8S1Dpauhdn1Ha/+8qNa+gzG5Emc1fheUVKjezymsvymthwsxs\nqB3kxFEPzrnleKsDjQGWJS8HmDe347th1pBFulreBLb3bTcSWFrKwpxzy11ioAxwAz2XKUpeW2KA\n+z3An51zDyQejsRnl6q2KH12Sc651cC/gAZgqHlTOvWuYX19ZtYfGOKcS3VZMKwao55XMtSjzPoo\ns8WphLwm6ox6ZiPx/1wqUfp/TnktXhiZDa2DbGaDEkcdmNlg4ABgHjCdnjkcjwEeSPkGIZXFhkcQ\n/lp+6qtlOvATADNrwDtdv6yUtdmGE8MfDrT7avtB4m7MHYFdgGdDru1moNM5d6Xvsah8dhvVFpXP\nzlIvANAJPAFMSGzmz8D0xPcknn88rNpS1BrFvIIyWyhlNk+VlNdEjVHMrPJaGOW1AKFn1oV3Z+GO\nwEt4dzTOA85JPL4l8Cje3ZD/BIaGVUOveu7AO4roAhYDzcAW6WoBpuLdgTkH2KMMtd0GzE18hvfj\njUdKbn9uorb5wAEh17YP8Jnvd/kCcGCm32OpPrsMtUXls/tyoqaXEvWc58vGbOA/eHfb1iQeHwjc\njXdjwzPAqFJkw1dTZPKa2LcyW1htymxhtVVMXn11RSazymvgmVBes9cXama1UIiIiIiIiE/YN+mJ\niIiIiFQUdZBFRERERHzUQRYRERER8VEHWURERETERx1kEREREREfdZBFRERERHzUQRYRERER8fn/\n+BWASb7RLNsAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Initialize predictors to all 15 powers of x\n", "predictors=['x']\n", "predictors.extend(['x_%d'%i for i in range(2,16)])\n", "\n", "#Define the alpha values to test\n", "alpha_lasso = [1e-15, 1e-10, 1e-8, 1e-5,1e-4, 1e-3,1e-2, 1, 5, 10]\n", "\n", "#Initialize the dataframe to store coefficients\n", "col = ['rss','intercept'] + ['coef_x_%d'%i for i in range(1,16)]\n", "ind = ['alpha_%.2g'%alpha_lasso[i] for i in range(0,10)]\n", "coef_matrix_lasso = pd.DataFrame(index=ind, columns=col)\n", "\n", "#Define the models to plot\n", "models_to_plot = {1e-10:231, 1e-5:232,1e-4:233, 1e-3:234, 1e-2:235, 1:236}\n", "\n", "#Iterate over the 10 alpha values:\n", "for i in range(10):\n", " coef_matrix_lasso.iloc[i,] = lasso_regression(data, predictors, alpha_lasso[i], models_to_plot)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">Plots above again show that the model complexity decreases with increase in the values of alpha. But notice the straight line (subplot) at alpha=1\n", "looks a bit abnormal to us, let's check the coefficients further :" ] }, { "cell_type": "code", "execution_count": 27, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
rssinterceptcoef_x_1coef_x_2coef_x_3coef_x_4coef_x_5coef_x_6coef_x_7coef_x_8coef_x_9coef_x_10coef_x_11coef_x_12coef_x_13coef_x_14coef_x_15
alpha_1e-150.963.50.012-2.4e-051.4e-073.5e-11-1.4e-12-5.8e-15-1.1e-175.4e-211.5e-227.3e-252.5e-276.1e-305.2e-33-5.3e-35-4.7e-37
alpha_1e-100.963.50.012-2.4e-051.4e-073.5e-11-1.4e-12-5.8e-15-1.1e-175.4e-211.5e-227.3e-252.5e-276.1e-305.2e-33-5.3e-35-4.7e-37
alpha_1e-080.963.50.012-2.4e-051.4e-073.7e-11-1.4e-12-5.8e-15-1.1e-174.9e-211.5e-227.3e-252.5e-276e-305.2e-33-5.3e-35-4.7e-37
alpha_1e-050.973.50.0110-0-3e-11-1.5e-12-0-0007.6e-251.4e-2700-0-3.1e-37
alpha_0.00011.13.50.011-0-5.8e-08-0-00003e-230000-0-7.3e-39
alpha_0.0011.33.90.0071-0-0-0-1.1e-13-0-0-0-0-0-0-0-0-0-0
alpha_0.011.84.20.005200000000000000
alpha_1135.1000000000000000
alpha_5135.1000000000000000
alpha_10135.1000000000000000
\n", "
" ], "text/plain": [ " rss intercept coef_x_1 coef_x_2 coef_x_3 coef_x_4 coef_x_5 \\\n", "alpha_1e-15 0.96 3.5 0.012 -2.4e-05 1.4e-07 3.5e-11 -1.4e-12 \n", "alpha_1e-10 0.96 3.5 0.012 -2.4e-05 1.4e-07 3.5e-11 -1.4e-12 \n", "alpha_1e-08 0.96 3.5 0.012 -2.4e-05 1.4e-07 3.7e-11 -1.4e-12 \n", "alpha_1e-05 0.97 3.5 0.011 0 -0 -3e-11 -1.5e-12 \n", "alpha_0.0001 1.1 3.5 0.011 -0 -5.8e-08 -0 -0 \n", "alpha_0.001 1.3 3.9 0.0071 -0 -0 -0 -1.1e-13 \n", "alpha_0.01 1.8 4.2 0.0052 0 0 0 0 \n", "alpha_1 13 5.1 0 0 0 0 0 \n", "alpha_5 13 5.1 0 0 0 0 0 \n", "alpha_10 13 5.1 0 0 0 0 0 \n", "\n", " coef_x_6 coef_x_7 coef_x_8 coef_x_9 coef_x_10 coef_x_11 \\\n", "alpha_1e-15 -5.8e-15 -1.1e-17 5.4e-21 1.5e-22 7.3e-25 2.5e-27 \n", "alpha_1e-10 -5.8e-15 -1.1e-17 5.4e-21 1.5e-22 7.3e-25 2.5e-27 \n", "alpha_1e-08 -5.8e-15 -1.1e-17 4.9e-21 1.5e-22 7.3e-25 2.5e-27 \n", "alpha_1e-05 -0 -0 0 0 7.6e-25 1.4e-27 \n", "alpha_0.0001 0 0 0 3e-23 0 0 \n", "alpha_0.001 -0 -0 -0 -0 -0 -0 \n", "alpha_0.01 0 0 0 0 0 0 \n", "alpha_1 0 0 0 0 0 0 \n", "alpha_5 0 0 0 0 0 0 \n", "alpha_10 0 0 0 0 0 0 \n", "\n", " coef_x_12 coef_x_13 coef_x_14 coef_x_15 \n", "alpha_1e-15 6.1e-30 5.2e-33 -5.3e-35 -4.7e-37 \n", "alpha_1e-10 6.1e-30 5.2e-33 -5.3e-35 -4.7e-37 \n", "alpha_1e-08 6e-30 5.2e-33 -5.3e-35 -4.7e-37 \n", "alpha_1e-05 0 0 -0 -3.1e-37 \n", "alpha_0.0001 0 0 -0 -7.3e-39 \n", "alpha_0.001 -0 -0 -0 -0 \n", "alpha_0.01 0 0 0 0 \n", "alpha_1 0 0 0 0 \n", "alpha_5 0 0 0 0 \n", "alpha_10 0 0 0 0 " ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Set the display format to be scientific for ease of analysis\n", "pd.options.display.float_format = '{:,.2g}'.format\n", "coef_matrix_lasso" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "> From coefficients VS alpha table above :\n", "1. For the same alpha, the coefficients of lasso regression are much smaller as compared to that of ridge regression \n", "2. For the same alpha, lasso has higher RSS (poorer fit) as compared to ridge regression\n", "3. Many of the coefficients are ***zero*** even for very small values of alpha => This explains the horizontal line fit for ***alpha=1*** in the lasso plots\n", "4. This phenomenon of most of the coefficients being ***zero*** is called ***‘sparsity‘***. Although lasso performs feature selection, this level of sparsity is achieved in some special cases\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" } }, "nbformat": 4, "nbformat_minor": 2 }