{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Week 2: Regression" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "This week, you will start learning and applying your first ML models" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1. Overfitting and regression in high dimension\n", "\n", "As a first exercise, we will see that behind the name 'linear regression' is in fact hidden a lot. Consider the function\n", "\n", "\n", "$$ f(x) = x + x^2$$\n", "\n", "\n", "- Is the relation $t = f(x)$ linear or non linear?\n", "\n", "- How about the relation $t = f(x, x^2)$ ?\n", "\n", "__1.1.__To get some intuition on this, start by plotting the function $t=f(x)$ below (use linspace together with 50 points)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nV0opL/f/ASs+RCvnuoiKAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "# plot the relation $t = f(x)$\n", "\n", "x = np.linspace(-10,10,50)\n", "\n", "t = x + np.square(x)\n", "\n", "plt.plot(x, t)\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__1.2__ Then in the cell below, plot the two dimensional plane $t = f(x, x^2) = f(x,y)$ (use meshgrid together with 50x 50 points). Plot the points $(t, x, x^2)$ on top of the plane. " ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n/OMfM23aNCRJYvPmzXz961/niiuuOMKPbgpHCVMF+VjCb37zG+677z6ef/75CWUHW/rna6655oAa\n53vuuYe33nqLe++9l4cffpg//vGPPPLII0fy4XzgkEqlcgL+169fTywWo7W1lX/6p39i8eLFEwqQ\nHx4e5oYbbqC9vZ1f/OIXORc+XdcnPUC/o6ODL37xi/T29iJJEl/+8pdZvnw5g4ODx+Og0aOJiTmA\nhBAH898UjgKeeeYZMXv2bBEOh8e9zcjIiIjFYvbXJ598snjmmWfE3//+d3HWWWfZt7v55pvFzTff\nnPO7Z511lvj73/8uhBAik8mIkpISoev6EXgkxwaeffZZsXTpUvHCCy+IZ555Rnz/+98X5557rpg7\nd6745Cc/Kf7f//t/4oknnhAdHR1iZGRExONxMTIyIp5++mkxb948cd999wlN096TtXZ3d4v169cL\nIYSIxWJi5syZ4t133xXf/va3xS233CKEEOKWW24R3/nOd96T9RzHmFCNnZK9fQDw9a9/nXQ6bUu8\nli5dyr333jumBA8MdcGll17KJz/5SR5//PEDapyzddDWhOmBgYEptcY4OOWUU3jllVds9cQnP/lJ\nYHT23apVq3jxxRf58Y9/zPDwMM3NzYTDYXw+H0899RTTp09/z9ZaVVVlx5rm5+cze/Zsurq6ePLJ\nJ21t8WWXXcZpp512PEx+ft9jqiB/ALB9+/Yxv19dXW0fCjY0NPDmm28esTWMt/XNxksvvcQ//uM/\nUl9fD8CFF144plHmg47xJqbIskxDQwMNDQ1ceumlgCGLe+utt3jqqaf43ve+N+mUxMGgvb2dN954\ng5NOOone3l67UFdWVtLb23vU1jWFUUwV5GMcE4kftW5TW1uLqqpEo9F9zAxOp5Of/OQnLFq0iOHh\nYVpbW22pVjZOPfVUnn766SP3gD5gcLlctLa20traelTXMTIywkUXXcSdd965T2iSJEmTHrg/hUPD\nlA75GMeBNM5gRJQ++OCDADz++OOcccYZ+3xAq6qqWLRoEZC79Z3C+x+ZTIaLLrqIz33uc1x44YUA\nVFRU2Br5np6eg8rYmMKRw1RBPsbhdDq5++67Ofvss5k9ezYXX3wxc+fO5Xvf+x5/+tOfAPjSl77E\nwMAATU1N3HHHHdx66637vc/sre/eeP3115k/fz7nnHMO77777hF5TFOYOIQQfOlLX2L27Nl885vf\ntL+ffRHOzv+ewtHFlOxtCgeFkZERPvaxj3H99dfb3ZaFWCyGLMvk5eWxcuVKli9fzrZt2/a5jwNl\nbgghWL58OStXrsTv9/Ob3/zG7s6ncHD429/+xqmnnsqJJ55o89c333wzJ510EhdffDF79uyxB41O\n9izCKeRgSoc8hclFJpPhvPPO4+yzz87ptsbDeNkaB8rcWLlyJStWrGDlypWsXr2a5cuXT6XfTeGD\njqksiylMHsbb+mYjFArZORBr1qxB1/VDmkX35JNP8sUvfhFJkli6dClDQ0M5mSBTmMKxiimVxRQm\nhNdee43f/va3nHjiifY07ptvvpk9e/YA8JWvfIXHH3+cn//85zidTnw+Hw8//PCYp/eSJHHWWWeN\nm7kxVj50V1eXLdOawhSOWUzUQSKmnHpTmCR0dnYKIYTo7e0V8+bNEy+//HLOzz/1qU+JV1991f73\nGWecIdauXZtzm82bN4v58+fb/+Xn54uf/vSnObd58cUXRTAYtG/zgx/84Ag9ovcOzzzzjGhubhaN\njY22024KHwhMOfWm8P7EgcZeTUQ73dLSwsaNGwEjOL6mpsZ2KmbjWNJFa5rG1772tZxckvPPP/+4\nHPV1rGKKQ57Ce4p4PG7PZ7PGXu2dEX3++efz0EMPIYRg1apVFBQU7JeueP7552lsbGTGjBlHdO1H\nG9mzF91utz17cQrHDqY65Cm8pxgvc+Pee+8FDC763HPPZeXKlTQ1NeH3+3nggQf2e59jjdqyYOmi\nq6uruf3225k7d+7kPqD3EFOzF48DTJTbEFMc8hTeh0in06KkpESEQqF9fhaNRsXw8LAQQog///nP\noqmpyf7Zv/zLv4iysjIxd+5c+3sDAwPi/2/njl2biqI4jn9/CC5O0aGKOghPXNwMgovTa+pWB4c6\ndcigEnd1Ex0szh06iKRZOmTrUCjdXByqf4GLYAUVfS6KS+HnkKsN4VWiaeKLns+Se8+7ufddCIfk\n5iR5njvLMud57qIoStdst9vOssxZlrndbh/wjvbX7XbdbDZ/9judjlut1sTWDyMZKsf+bh1yCJUi\naR5o2W4MMfY1ULf9UdJl4AvQsX0+XX8MFLaXJN0FarbvDMxxFHgB1OnV5b8ELtj+fJD72uf+LwH3\nbc+l/j0A24/GvXaYjDhDDtPuOrBWdkHScaW6O0kX6b3ePwHYfgYUA0+ZB1ZTexW4WjLtHLBlu0hJ\neAu4MuomhrQNnJV0RtJhYAFYn9DaYQLiDDlMLUlHgFngRl/sJoDtFeAacEvSLvANWPCvPxLO2P7x\nC5R3wEzJmJPAm77+ToqNne1dSbeBTeAQ8NR2/GHIPyQScphatr8CxwZiK33tZWD5D+e2pMqd59ne\nADb+9n2E8YgjixD2vJd0AiA9figZ8xY43dc/lWIhjCwScgh71oHF1F4Eyop8N4GGpJqkGtBIsRBG\nFgk5/JckrQHPgXOSdiQ1gSVgVtIrIE99JNUlPQGwXQAP6X3Btg08SLEQRhZlbyGEUBHxDjmEECoi\nEnIIIVREJOQQQqiI71dB2mZWD9doAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from mpl_toolkits.mplot3d import Axes3D\n", "\n", "\n", "x = np.linspace(-10,10,50)\n", "y = np.square(x)\n", "\n", "xmesh, ymesh = np.meshgrid(x, y)\n", "\n", "tplane = xmesh + ymesh\n", "\n", "\n", "\n", "fig = plt.figure()\n", "# Add an axes\n", "ax = fig.add_subplot(111,projection='3d')\n", "\n", "# plot the surface\n", "ax.plot_surface(xmesh, ymesh, tplane, alpha=0.2)\n", "\n", "ax.scatter(x, y, x+y)\n", "\n", "\n", "plt.show()\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have thus turned a non linear relationship between prototypes $x$ and their targets $t$, into a linear relationship encoded by the plane $t = x+y$ where $y = x^2$. In general regression will work like this. Given some pairs of prototypes and their associated targets $(t_i, x_i)$, even when the relation between the prototypes and the target is non linear in the original space, one can generate additional \"features\", for example, powers of monomials 'x^2', 'x^3', x^4, ... but also any non linear function of the data such as \"sin(x)\", \"e^x\", ...\n", "\n", "and then learn a linear regression model on the newly defined feature vectors $(x, y= x^2, z= sin(x), ...)$ and the label \"t\". If we forget that the coordinates \n", "\n", "\n", "Many machine learning models, will proceed like this. They will first lift the data in some higher dimensional space where the model is learned. Then we can bring our prediction back into the original space by selecting only the first coordinate of the pair $(x,y) = (x,x^2)$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__1.3.__ The problem that often arises with this approach is that when we don't have any intuition on the relation between the prototypes $x_i$ and their targets $t_i$, we might be tempted to add many features or basis functions which then results in a too high complexity of the model and hence overfitting. To illustrate this, let us go back to the quadratic relation above. \n", "\n", "Go back to the pairs $x_i, t_i$ that you generated from the relation $t_i = x_i +x_i^2$ above. Now generate a subset of $20$ points and add some random Gaussian noise on the labels $t_i$, just to get \n", "\n", "$$t_i = x_i + x_i^2 + \\varepsilon_i$$\n", "\n", "plot the resulting points on top of the function $t = f(x)$ first and do the same with the plane." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "xsample = np.linspace(-10,10, 20)\n", "\n", "tnoisy = xsample + np.square(xsample) + np.random.normal(0, 4, xsample.shape)\n", "\n", "\n", "plt.plot(x,t)\n", "plt.scatter(xsample, tnoisy, color='r')\n", "\n", "plt.show()\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__1.4__ Then generate all possible monomials of degrees less than 6 from the prototypes $x_i$ (the noisy samples). You can either do it manually or use the built in function 'PolynomialFeatures' from scikit-learn" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "from sklearn.preprocessing import PolynomialFeatures\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__1.5__ Now use the function 'linear_regression' from scikit-learn to learn the higher dimensional regression model using the powers of $x2$ and you noisy labels $t_noisy$" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from sklearn import linear_model\n", "from sklearn.linear_model import LinearRegression\n", "\n", "\n", "\n", "# xsample are my training points/prototypes\n", "# the two lines below generate the 12d data from the 1d prototypes\n", "poly = PolynomialFeatures(24)\n", "Xpolyfeature = poly.fit_transform(xsample.reshape(-1, 1))\n", "\n", "# learn the linear regression model in the high D space\n", "reg = LinearRegression().fit(Xpolyfeature, tnoisy)\n", "\n", "\n", "# generate new points to study the prediction of the model\n", "xpredict = np.linspace(-10,10, 100)\n", "\n", "# bring those points in the high D space\n", "poly = PolynomialFeatures(24)\n", "XpolyfeaturePredict = poly.fit_transform(xpredict.reshape(-1, 1))\n", "\n", "# apply the model to the new data (after brought them in the high-D space) and \n", "# get the predition for the 't'\n", "tprediction = reg.predict(XpolyfeaturePredict)\n", "\n", "# then keep only t and x for the new (prediction) points and plot\n", "plt.plot(x,t)\n", "plt.scatter(xsample, tnoisy, color='r')\n", "plt.plot(xpredict, tprediction, color='m')\n", "\n", "plt.show()\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__1.6__ Once you have learned the model, we will now use it to do predictions as follows:\n", " \n", " - Start by generating points using linspace between -10 and 10 (lets say 100)\n", " - Raise those points to power 1 to 6 using PolynomialFeatures\n", " - use the function predict of your linear_regression model to get the labels\n", " - plot the predicted pairs (x, t)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# put the code here\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__1.7__ Repeat the experiments above for 12 and then 24 features. What do you notice?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2. Regularization " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We have seen that a high complexity is not always a good idea. In particular, if the model can be expressed by fewer parameters we should always aim at selecting the greater simplicity. However this simplicity is often hidden in the data and is therefore not blatant to the naked eye. For this reason, having a general procedure that one can apply to the data and whose complexity could be easilty adapter to this data, would be much appreciated. This idea of adapting model complexity to the data is precisely the objective of regularization." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__2.1__ Regularization comes in many different flavors. But the most common models are based on putting some constraints on the number of parameters of the model, or, on the magnitude of those parameters in order to avoid the large variation that we observed when considering the model with the $24$ polynomial features. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The three most common regularization approaches are the $\\ell_2$, $\\ell_1$ and Best subset selection approaches. In each of these approaches, instead of solving the original regression problem\n", "\n", "\\begin{align}\n", "\\min_{\\beta_1,\\beta_2, \\ldots, \\beta_D} \\sum_{i=1}^N |t_i - \\sum_{\\ell=1}^D \\beta_\\ell x_{\\ell,i}|^2 \n", "\\end{align}\n", "\n", "we will augment our loss with a penalty.\n", "\n", "\n", "- In Ridge Regression, the penalty is the $2$ norm \n", "$$\\|\\beta\\|_2 = \\sqrt{\\sum_{i=1}^N \\beta_i^2}$$\n", "- In Lasso, the penalty is the $1$ norm (sum of the absolute values)\n", "$$\\|\\beta\\|_1 = \\sum_{i=1}^N |\\beta_i^2|$$\n", "\n", "- In Best subset selection, we compute, for every every possible subset of coefficients $(\\beta_0, \\beta_1, \\ldots, \\beta_D)$, the value of the loss on the prediction data and we select the subset (of each chosen size) that minimizes the value of the loss. From this, we thus have a sequence of best subsets of coefficients for each size parameter $K$. \n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- The last approach is computationally expensive because of the ${N\\choose k}$ that appears in the number of subsets. For this reason we won't apply it on the 6 feature. However you can implement it for 3 features. \n", "\n", "- Ridge regression and Lasso are very popular and are preimplented in scikit-learn. Try rach approach for different values of lambda on the 6 feature dataset above (don't forget the noise). Then try those approach with 12 and 24 features and plot the resulting model as we did in the case of a simple regression formulation. How do the models compare to each other?\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "__2.2. Cross validation on $\\lambda$ and $K$.__ \n", "\n", "Be it for the best subset selection approach, or for the ridge and lasso models, one question remain: How does one choose the last parameters $K$ and $lambda$. \n", "\n", "This last step is carried out through some validation or cross validation step.\n", "\n", "The simplest possible approach could be to split the original dataset between a training and a test part. Another approach is to split the data into $k$ bins. For each bin, the model is trained using the datapoints in $\\mathcal{D}\\setminus B_k$, that is all the prorotypes that are not in $B_k$ and the prediction error for a given subset size or for a value of $\\lambda$. The total error is then computed as the average \n", "\n", "\\begin{align}\n", "CV(\\lambda) = \\frac{1}{N}\\sum_{i=1}^N \\ell(t_i, f^{k(i)}(x_i))\n", "\\end{align}\n", "where $f^k$ denotes the model learned with the points the bin $k(i)$. The procedure is then repeated for the various values of $\\lambda$ the (hyper)-parameter that minimizes the prediction error is then selected. \n", "\n", "- For various value of $\\lambda$, using either of leave one out, K-fold or simply any training/test splitting of the dataset, plot the evolution of the training and test error" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# put your code here\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3. Real data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that you are familiar with regression, we will apply it to some real data. Use the line below to load the Google stock value between 2017-01-01 and 2017-04-30. Then using the train/test decomposition given below. Learn a good 'time vs stock value' regression model and apply it on the test data to see how well it an predict future values. " ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[*********************100%***********************] 1 of 1 downloaded\n", "DatetimeIndex(['2017-01-03', '2017-01-04', '2017-01-05', '2017-01-06',\n", " '2017-01-09', '2017-01-10', '2017-01-11', '2017-01-12',\n", " '2017-01-13', '2017-01-16', '2017-01-17', '2017-01-18',\n", " '2017-01-19', '2017-01-20', '2017-01-23', '2017-01-24',\n", " '2017-01-25', '2017-01-26', '2017-01-27', '2017-01-30',\n", " '2017-01-31', '2017-02-01', '2017-02-02', '2017-02-03',\n", " '2017-02-06', '2017-02-07', '2017-02-08', '2017-02-09',\n", " '2017-02-10', '2017-02-13', '2017-02-14', '2017-02-15',\n", " '2017-02-16', '2017-02-17', '2017-02-20', '2017-02-21',\n", " '2017-02-22', '2017-02-23', '2017-02-24', '2017-02-27',\n", " '2017-02-28', '2017-03-01', '2017-03-02', '2017-03-03',\n", " '2017-03-06', '2017-03-07', '2017-03-08', '2017-03-09',\n", " '2017-03-10', '2017-03-13', '2017-03-14', '2017-03-15',\n", " '2017-03-16', '2017-03-17', '2017-03-20', '2017-03-21',\n", " '2017-03-22', '2017-03-23', '2017-03-24', '2017-03-27',\n", " '2017-03-28', '2017-03-29', '2017-03-30', '2017-03-31',\n", " '2017-04-03', '2017-04-04', '2017-04-05', '2017-04-06',\n", " '2017-04-07', '2017-04-10', '2017-04-11', '2017-04-12',\n", " '2017-04-13', '2017-04-14', '2017-04-17', '2017-04-18',\n", " '2017-04-19', '2017-04-20', '2017-04-21', '2017-04-24',\n", " '2017-04-25', '2017-04-26', '2017-04-27', '2017-04-28'],\n", " dtype='datetime64[ns]', freq='B')\n", "808.01\n" ] } ], "source": [ "import pandas as pd\n", "import numpy as np\n", "pd.core.common.is_list_like = pd.api.types.is_list_like\n", "\n", "from pandas_datareader import data as pdr\n", "\n", "import matplotlib.pyplot as plt\n", "\n", "import yfinance as yf\n", "\n", "#fix_yahoo_finance as yf\n", "yf.pdr_override() # <== that's all it takes :-)\n", "\n", "# download dataframe\n", "data1 = pdr.get_data_yahoo(\"GOOGL\", start=\"2017-01-01\", end=\"2017-04-30\")\n", "\n", "\n", "\n", "close = data1['Close']\n", "\n", "all_weekdays = pd.date_range(start=\"2017-01-01\", end=\"2017-04-30\", freq='B')\n", "\n", "# How do we align the existing prices in adj_close with our new set of dates?\n", "# All we need to do is reindex close using all_weekdays as the new index\n", "close = close.reindex(all_weekdays)\n", "\n", "close = close.fillna(method='ffill')\n", "\n", "\n", "msft = close#.loc['SPY']\n", "\n", "# Calculate the 20 and 100 days moving averages of the closing prices\n", "short_rolling_msft = msft.rolling(window=20).mean()\n", "long_rolling_msft = msft.rolling(window=100).mean()\n", "\n", "msft = msft.dropna()\n", "#msft_norm = (msft - msft.mean()) / (msft.max() - msft.min())\n", "\n", "\n", "tmp = msft.index\n", "numDays = tmp.shape[0]\n", "\n", "days = np.arange(1,numDays+1)\n", "\n", "# normalized prices\n", "print(msft.index)\n", "\n", "\n", "tmp1 = 60\n", "\n", "X_train = days[0:tmp1]\n", "X_test = days[tmp1:]\n", "\n", "y_train = msft[0:tmp1]\n", "y_test = msft[tmp1:]\n", "\n", "print(y_train[0])\n", "\n", "tmp = y_train.values\n", "\n", "\n", "\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 2 }