{ "cells": [ { "cell_type": "markdown", "source": [ "# [30 POINTS + 5 Bonus]\n", "# COS 324: Programming Assignment 2\n", "\n", "In this exercise, we'll use Gradient Descent to do predict house prices in Boston.\n", "\n", "## 2 POINTS Loading the Dataset\n", "Before we begin, let us load the dataset into the memory, and get to know it better." ], "metadata": { "inputHidden": false, "outputHidden": false } }, { "cell_type": "code", "source": [ "%matplotlib notebook\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from sklearn.datasets import load_boston\n", "dataset = load_boston()\n", "\nprint(dataset.DESCR)" ], "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Boston House Prices dataset\n", "===========================\n", "\n", "Notes\n", "------\n", "Data Set Characteristics: \n", "\n", " :Number of Instances: 506 \n", "\n", " :Number of Attributes: 13 numeric/categorical predictive\n", " \n", " :Median Value (attribute 14) is usually the target\n", "\n", " :Attribute Information (in order):\n", " - CRIM per capita crime rate by town\n", " - ZN proportion of residential land zoned for lots over 25,000 sq.ft.\n", " - INDUS proportion of non-retail business acres per town\n", " - CHAS Charles River dummy variable (= 1 if tract bounds river; 0 otherwise)\n", " - NOX nitric oxides concentration (parts per 10 million)\n", " - RM average number of rooms per dwelling\n", " - AGE proportion of owner-occupied units built prior to 1940\n", " - DIS weighted distances to five Boston employment centres\n", " - RAD index of accessibility to radial highways\n", " - TAX full-value property-tax rate per $10,000\n", " - PTRATIO pupil-teacher ratio by town\n", " - B 1000(Bk - 0.63)^2 where Bk is the proportion of blacks by town\n", " - LSTAT % lower status of the population\n", " - MEDV Median value of owner-occupied homes in $1000's\n", "\n", " :Missing Attribute Values: None\n", "\n", " :Creator: Harrison, D. and Rubinfeld, D.L.\n", "\n", "This is a copy of UCI ML housing dataset.\n", "http://archive.ics.uci.edu/ml/datasets/Housing\n", "\n\n", "This dataset was taken from the StatLib library which is maintained at Carnegie Mellon University.\n", "\n", "The Boston house-price data of Harrison, D. and Rubinfeld, D.L. 'Hedonic\n", "prices and the demand for clean air', J. Environ. Economics & Management,\n", "vol.5, 81-102, 1978. Used in Belsley, Kuh & Welsch, 'Regression diagnostics\n", "...', Wiley, 1980. N.B. Various transformations are used in the table on\n", "pages 244-261 of the latter.\n", "\n", "The Boston house-price data has been used in many machine learning papers that address regression\n", "problems. \n", " \n", "**References**\n", "\n", " - Belsley, Kuh & Welsch, 'Regression diagnostics: Identifying Influential Data and Sources of Collinearity', Wiley, 1980. 244-261.\n", " - Quinlan,R. (1993). Combining Instance-Based and Model-Based Learning. In Proceedings on the Tenth International Conference of Machine Learning, 236-243, University of Massachusetts, Amherst. Morgan Kaufmann.\n", " - many more! (see http://archive.ics.uci.edu/ml/datasets/Housing)\n", "\n" ] } ], "execution_count": 1, "metadata": {} }, { "cell_type": "code", "source": [ "# 2 POINTS \n", "# ACT (1) Append a column filled with 1s to the var `dataset.data`. \n", "# This will act as an intercept for the regression problem we're about the solve. \n", "# When tyring to model y ~ wx+b; b is the intercept.\n", "dataset.data = np.hstack((np.ones((len(dataset.target),1)), dataset.data))\n", "\n", "assert(dataset.data.shape[1] == 14)\n", "\n", "print(\"Shape of Feature Matrix \", dataset.data.shape)\n", "print(\"Shape of Target Variable \", dataset.target.shape)\n", "print(\"Sample (feature, target) \", (dataset.data[0], dataset.target[0]))" ], "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Shape of Feature Matrix (506, 14)\n", "Shape of Target Variable (506,)\n", "Sample (feature, target) (array([ 1.00000000e+00, 6.32000000e-03, 1.80000000e+01,\n", " 2.31000000e+00, 0.00000000e+00, 5.38000000e-01,\n", " 6.57500000e+00, 6.52000000e+01, 4.09000000e+00,\n", " 1.00000000e+00, 2.96000000e+02, 1.53000000e+01,\n", " 3.96900000e+02, 4.98000000e+00]), 24.0)\n" ] } ], "execution_count": 2, "metadata": { "inputHidden": false, "outputHidden": false } }, { "cell_type": "markdown", "source": [ "## 3 POINTS Train-Test Split\n", "\nAs we've learned in the class, evaluating the performance of our predictor on the same dataset it was trained on isn't the best idea. For this reason, we'll split the dataset into `(X_train, y_train)` and `(X_test, y_test)` datasets. We want the number of examples in the former to be roughly twice that of the later. " ], "metadata": { "inputHidden": false, "outputHidden": false } }, { "cell_type": "code", "source": [ "# 3 POINTS\n", "# ACT (2) Split the variables (dataset.data, dataset.target) into (X_train, y_train) and (X_test, y_test).\n", "tot_samples = len(dataset.target)\n", "num_train = int(2/3*tot_samples)\n", "indices = np.random.permutation(tot_samples)\n", "X_train = dataset.data[indices[:num_train]]\n", "y_train = dataset.target[indices[:num_train]]\n", "X_test = dataset.data[indices[num_train:]]\n", "y_test = dataset.target[indices[num_train:]]\n", "\n", "assert(len(y_train) == len(X_train))\n", "assert(len(y_test) == len(X_test))\n", "assert(len(y_test)+len(y_train) == len(dataset.target))\n", "assert(len(y_train) > 1.8*len(y_test))\n", "assert(len(y_train) < 2.1*len(y_test))\n", "\n", "print(\"Number of Training Samples \", len(y_train))\n", "print(\"Number of Test Samples \", len(y_test))" ], "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Number of Training Samples 337\n", "Number of Test Samples 169\n" ] } ], "execution_count": 3, "metadata": { "inputHidden": false, "outputHidden": false } }, { "cell_type": "markdown", "source": [ "## 4 POINTS The Gradient and the Loss\n", "\n", "Here we'll define a ``LossSq`` function that takes in\n", "+ a weight vector $w\\in\\mathbb{R}^d$\n", "+ a feature matrix $X\\in\\mathbb{R}^{n\\times d}$\n", "+ a vector of outcomes $y\\in\\mathbb{R}^{n}$\n", "\n", "and outputs $\\sum_{i=1}^n (x_{(i)}^Tw-y_i)^2$, where $x_{(i)}$ is the $i^{th}$ row.\n", "\n\n", "We'll also define a ``GradientSq`` function that takes in\n", "+ a weight vector $w\\in\\mathbb{R}^d$\n", "+ a feature matrix $X\\in\\mathbb{R}^{n\\times d}$\n", "+ a vector of outcomes $y\\in\\mathbb{R}^{n}$\n", "\nand outputs $\\nabla_w \\left(\\sum_{i=1}^n (x_{(i)}^Tw-y_i)^2\\right)$ - this is a vector in $\\mathbb{R}^d$." ], "metadata": { "inputHidden": false, "outputHidden": false } }, { "cell_type": "code", "source": [ "# 2 PONITS\n", "# ACT (3) Design a function LossSq matching the above specifications.\n", "def LossSq(w, X, y):\n", " return np.linalg.norm( X.dot(w)-y )**2\n", "\nassert(LossSq(np.array(2), np.matrix(3), np.array(9))==9)" ], "outputs": [], "execution_count": 4, "metadata": { "collapsed": true } }, { "cell_type": "code", "source": [ "# 2 POINTS\n", "# ACT (4) Design a function GradientSq matching the above specifications.\n", "def GradientSq(w, X, y):\n", " return 2*np.dot( ( X.dot(w)-y ), X)\n", "\n", "assert(np.sum(GradientSq(np.array([2, 1]), \n", " np.matrix([[2, 5], [3, 0], [3, 1]]), \n", " np.array([9, 6, 7]))) == 0)" ], "outputs": [], "execution_count": 5, "metadata": { "inputHidden": false, "outputHidden": false } }, { "cell_type": "markdown", "source": [ "## 4 POINTS Gradient Descent\n", "\n", "Now that the hard work is done, we'll code up the `GradD` algorithm which takes in\n", "+ the dimension of the weight vector $d\\in\\mathbb{N}$\n", "+ a function to compute the gradient $g:w\\to \\nabla_w(\\cdot)$\n", "+ a function to compute the loss $l:w\\to \\mathbb{R}$\n", "+ the learning rate $\\eta\\in\\mathbb{R}$ - we're using a constant step size\n", "+ the number of steps $t\\in\\mathbb{N}$\n", "\n", "and returns \n", "+ a weight vector $w\\in\\mathbb{R}^d$\n", "+ a vector of loss at all iterates $l_t\\in\\mathbb{R}^{t}$" ], "metadata": { "inputHidden": false, "outputHidden": false } }, { "cell_type": "code", "source": [ "# 3 POINTS\n", "# ACT (5) Design a function GradD does Gradient Descent.\n", "def GradD(d, g, l, eta, t):\n", " weight, l_t = np.zeros(d), np.zeros(t)\n", " for it in range(t):\n", " weight -= eta*g(weight)\n", " l_t[it] = l(weight)\n", " return weight, l_t\n", "\nassert(GradD(1, lambda _: 1, lambda _: 0, 0.1, 1)[0] == -0.1)" ], "outputs": [], "execution_count": 6, "metadata": { "collapsed": true } }, { "cell_type": "code", "source": [ "# 1 POINT\n", "# ACT (6) Set the value of eta and t.\n", "# After completing the next section, you may need to revise this (multiple times).\n", "eta, t = 1e-9, 10000\n", "\n", "w, l_t = GradD(len(X_train[0]),\n", " lambda w: GradientSq(w, X_train, y_train),\n", " lambda w: LossSq(w, X_train, y_train),\n", " eta, t)" ], "outputs": [], "execution_count": 35, "metadata": { "inputHidden": false, "outputHidden": false } }, { "cell_type": "markdown", "source": [ "## 4 POINTS Did it work?\n", "\n", "Write a function `LostPlot` that takes in a vector of loss at all iterates\n", "$l_t\\in\\mathbb{R}^{t}$, and plots the loss values against the number of steps.\n", "\n", "Design a function `DebugInfo` that takes in \n", "+ a weight vector $w\\in\\mathbb{R}^d$\n", "+ the variables `X_train`, `y_train`, `X_test`, `y_test`\n", "\n", "and prints\n", "+ the range of the target variable\n", "+ the [RMSE](https://en.wikipedia.org/wiki/Root-mean-square_deviation) loss on the training dataset\n", "+ the [RMSE](https://en.wikipedia.org/wiki/Root-mean-square_deviation) loss on the test dataset\n", "\n", "Finally, code up `TvF` a function that takes in \n", "+ a weight vector $w\\in\\mathbb{R}^d$\n", "+ the variables `X_test`, `y_test`\n", "\n", "and outputs a scatter plot with predicted prices on the $y$-axis and true prices on the $x$ axis.\n", "On the same plot draw a line indicating what a perfect predictor would look like - this is \n", "a 45 degree line passing through $(5,5)$ and $(50,50)$." ], "metadata": {} }, { "cell_type": "code", "source": [ "# 1 POINT\n", "# ACT (7) LossPlot to plot the loss against time.\n", "def LostPlot(l_t):\n", " plt.plot(l_t)\n", " plt.xlabel(\"Number of Steps\")\n", " plt.ylabel(\"Loss\")\n", " plt.show()\n", " \n", "LostPlot(l_t)" ], "outputs": [ { "output_type": "display_data", "data": { "image/png": [ "iVBORw0KGgoAAAANSUhEUgAAAZsAAAEKCAYAAADEovgeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n", "AAALEgAACxIB0t1+/AAAIABJREFUeJzt3X2UHNV95vHv090zoxeQkNCYlSUcKQbHEcQvIGMS78kS\n", "ywfYOLFIFmw5EOREC+vAxs7LxkZ2zpK1j86BdWIcNjFZYjACOwZFcYLWWYIVYce75ywvA8YWL8bI\n", "iBcpAslIlkBImunu3/5Rt6Wa1nTPoOmalkbP55w6XX2r7u17ZcxD3bqqUkRgZmZWpFK3O2BmZpOf\n", "w8bMzArnsDEzs8I5bMzMrHAOGzMzK5zDxszMCuewMTOzwjlszMyscA4bMzMrXKXbHThazJkzJxYs\n", "WNDtbpiZHVMefvjhH0dE/2jnOWySBQsWMDAw0O1umJkdUyQ9N5bzPI1mZmaFc9iYmVnhHDZmZlY4\n", "h42ZmRXOYWNmZoVz2JiZWeEcNmZmVjiHzTi9Nljl8998iu8+v6vbXTEzO2o5bMZp32CNG+/bxMat\n", "u7vdFTOzo5bDxszMCldY2Ei6VdJ2SY+NcOwPJYWkObmylZI2SXpK0gW58rMlbUzHbpSkVN4n6a5U\n", "/oCkBbk6yyU9nbblRY0xL2IifsXM7NhU5JXNbcCFzYWSTgXOB57PlS0ClgFnpDpflFROh28CrgBO\n", "T1ujzRXArog4DbgBuD61NRu4Fng3cA5wraRZHR5bfjxFNW1mNmkUFjYR8R1g5wiHbgA+AeSvBZYC\n", "d0bEgYjYDGwCzpE0F5gREfdHRAC3Axfl6qxO+2uBJemq5wJgfUTsjIhdwHpGCD0zM5s4E3rPRtJS\n", "YGtEfK/p0Dzghdz3LalsXtpvLh9WJyKqwG7g5DZtmZlZl0zYKwYkTQM+RTaFdlSQdCVwJcCb3vSm\n", "cbUVvmljZtbSRF7ZvBlYCHxP0rPAfOARSf8G2Aqcmjt3firbmvaby8nXkVQBZgIvt2nrMBFxc0Qs\n", "jojF/f2jvvtnRL5jY2Y2ugkLm4jYGBFviIgFEbGAbHrrrIh4EVgHLEsrzBaSLQR4MCK2AXsknZvu\n", "x1wO3J2aXAc0VppdDNyX7uvcC5wvaVZaGHB+KjMzsy4pbBpN0teA84A5krYA10bELSOdGxGPS1oD\n", "PAFUgasjopYOX0W2sm0qcE/aAG4B7pC0iWwhwrLU1k5JnwUeSud9JiJGWqjQUZ5EMzNrrbCwiYgP\n", "j3J8QdP3VcCqEc4bAM4coXw/cEmLtm8Fbn0d3T1iXvlsZjY6P0HAzMwK57DpEC9GMzNrzWEzTvJ6\n", "NDOzUTlszMyscA4bMzMrnMOmQ3zLxsysNYfNePmWjZnZqBw2ZmZWOIdNh/hBnGZmrTlsxslPEDAz\n", "G53DxszMCuewMTOzwjlsxsmzaGZmo3PYmJlZ4Rw2ZmZWOIdNh3jls5lZaw6bcZLXPpuZjcphY2Zm\n", "hXPYdEj4UZxmZi05bMbJk2hmZqNz2JiZWeEcNh3i1WhmZq05bMbJi9HMzEZXWNhIulXSdkmP5co+\n", "J+kHkr4v6e8lnZQ7tlLSJklPSbogV362pI3p2I1Ka40l9Um6K5U/IGlBrs5ySU+nbXlRYzQzs7Ep\n", "8srmNuDCprL1wJkR8Tbgh8BKAEmLgGXAGanOFyWVU52bgCuA09PWaHMFsCsiTgNuAK5Pbc0GrgXe\n", "DZwDXCtpVgHjMzOzMSosbCLiO8DOprJvRkQ1fb0fmJ/2lwJ3RsSBiNgMbALOkTQXmBER90f2drLb\n", "gYtydVan/bXAknTVcwGwPiJ2RsQusoBrDr2O8y0bM7PWunnP5reBe9L+POCF3LEtqWxe2m8uH1Yn\n", "Bdhu4OQ2bRVCXvxsZjaqroSNpE8DVeCr3fj9XD+ulDQgaWDHjh3d7IqZ2aQ24WEj6SPArwCXpqkx\n", "gK3AqbnT5qeyrRyaasuXD6sjqQLMBF5u09ZhIuLmiFgcEYv7+/vHMSovfTYza2dCw0bShcAngA9E\n", "xGu5Q+uAZWmF2UKyhQAPRsQ2YI+kc9P9mMuBu3N1GivNLgbuS+F1L3C+pFlpYcD5qaygMRXVspnZ\n", "5FEpqmFJXwPOA+ZI2kK2Qmwl0AesTyuY74+Ij0bE45LWAE+QTa9dHRG11NRVZCvbppLd42nc57kF\n", "uEPSJrKFCMsAImKnpM8CD6XzPhMRwxYqmJnZxCosbCLiwyMU39Lm/FXAqhHKB4AzRyjfD1zSoq1b\n", "gVvH3NkO8IM4zcxa8xMEzMyscA4bMzMrnMPGzMwK57DpEC99NjNrzWEzTl76bGY2OoeNmZkVzmFj\n", "ZmaFc9iMkx/EaWY2OoeNmZkVzmHTIeHlaGZmLTlsxsmr0czMRuewMTOzwjlszMyscA6bDvEtGzOz\n", "1hw24+RbNmZmo3PYmJlZ4Rw2HeJZNDOz1hw24ySvfTYzG5XDxszMCuew6RCvRjMza81hM06eRDMz\n", "G53DxszMCuewMTOzwjlsOiS8+NnMrKXCwkbSrZK2S3osVzZb0npJT6fPWbljKyVtkvSUpAty5WdL\n", "2piO3ai01lhSn6S7UvkDkhbk6ixPv/G0pOVFjTH7rSJbNzObHIq8srkNuLCp7BpgQ0ScDmxI35G0\n", "CFgGnJHqfFFSOdW5CbgCOD1tjTZXALsi4jTgBuD61NZs4Frg3cA5wLX5UDMzs4lXWNhExHeAnU3F\n", "S4HVaX81cFGu/M6IOBARm4FNwDmS5gIzIuL+yN5OdntTnUZba4El6arnAmB9ROyMiF3Aeg4PvY7z\n", "0mczs9Ym+p7NKRGxLe2/CJyS9ucBL+TO25LK5qX95vJhdSKiCuwGTm7TViH8BAEzs9F1bYFAulLp\n", "6vWApCslDUga2LFjRze7YmY2qU102LyUpsZIn9tT+Vbg1Nx581PZ1rTfXD6sjqQKMBN4uU1bh4mI\n", "myNicUQs7u/vH8ew/CBOM7N2Jjps1gGN1WHLgbtz5cvSCrOFZAsBHkxTbnsknZvux1zeVKfR1sXA\n", "felq6V7gfEmz0sKA81OZmZl1SaWohiV9DTgPmCNpC9kKseuANZJWAM8BHwSIiMclrQGeAKrA1RFR\n", "S01dRbaybSpwT9oAbgHukLSJbCHCstTWTkmfBR5K530mIpoXKpiZ2QQqLGwi4sMtDi1pcf4qYNUI\n", "5QPAmSOU7wcuadHWrcCtY+6smZkVyk8Q6BSvfTYza8lh0wFe/Wxm1p7DxszMCuew6RBPopmZteaw\n", "6QDPopmZteewMTOzwjlsOsSL0czMWnPYdIAfxmlm1p7DxszMCuewMTOzwjlsOiS8+NnMrCWHTQf4\n", "jo2ZWXsOGzMzK5zDpkO89NnMrLUxhY2kN0vqS/vnSfqYpJOK7dqxwyufzczaG+uVzd8BNUmnATeT\n", "vXb5bwrrlZmZTSpjDZt6RFSBXwP+R0T8ETC3uG4dezyLZmbW2ljDZkjSh4HlwDdSWU8xXTr2yOvR\n", "zMzaGmvY/Bbw88CqiNgsaSFwR3HdMjOzyaQylpMi4gngYwCSZgEnRsT1RXbMzMwmj7GuRvu2pBmS\n", "ZgOPAH8t6fPFdu3Y4qXPZmatjXUabWZE7AF+Hbg9It4NvK+4bh1jfMvGzKytsYZNRdJc4IMcWiBg\n", "ZmY2JmMNm88A9wI/ioiHJP008PSR/qik35f0uKTHJH1N0hRJsyWtl/R0+pyVO3+lpE2SnpJ0Qa78\n", "bEkb07EblV4sI6lP0l2p/AFJC460r2PlB3GambU2prCJiL+NiLdFxO+k789ExH84kh+UNI9sscHi\n", "iDgTKAPLgGuADRFxOrAhfUfSonT8DOBC4IuSyqm5m4ArgNPTdmEqXwHsiojTgBuAQhczeBbNzKy9\n", "sS4QmC/p7yVtT9vfSZo/jt+tAFMlVYBpwL8CS4HV6fhq4KK0vxS4MyIORMRmYBNwTprWmxER90dE\n", "ALc31Wm0tRZY0rjqMTOziTfWabQvA+uAN6btf6Wy1y0itgJ/CjwPbAN2R8Q3gVMiYls67UXglLQ/\n", "D3gh18SWVDYv7TeXD6uTnnywGzj5SPo7Zp5FMzNraaxh0x8RX46IatpuA/qP5AfTvZilwEKy4Jou\n", "6bL8OelKpfB/fUu6UtKApIEdO3aMo50OdsrMbBIaa9i8LOkySeW0XQa8fIS/+T5gc0TsiIgh4OvA\n", "LwAvpakx0uf2dP5Wsgd/NsxPZVvTfnP5sDppqm7mSP2NiJsjYnFELO7vP6LsNDOzMRhr2Pw22bLn\n", "F8mmvi4GPnKEv/k8cK6kaek+yhLgSbJpuuXpnOXA3Wl/HbAsrTBbSLYQ4ME05bZH0rmpncub6jTa\n", "uhi4L10tmZlZF4z1cTXPAR/Il0n6PeALr/cHI+IBSWvJnkRQBb5L9tqCE4A1klYAz5GFGxHxuKQ1\n", "wBPp/Ksjopaauwq4DZgK3JM2gFuAOyRtAnaSrWYrlJPMzKy1MYVNC3/AEYQNQERcC1zbVHyA7Cpn\n", "pPNXAatGKB8AzhyhfD9wyZH07Uj4qc9mZu2N57XQ/jesmZmNyXjCxjNHOb4lZGbWWttpNEmvMHKo\n", "iOw+ieGlz2Zmo2kbNhFx4kR1xMzMJq/xTKNZjmfRzMxac9h0gGfRzMzac9iYmVnhHDZmZlY4h02H\n", "+JaNmVlrDpsO8KtyzMzac9iYmVnhHDYd4qXPZmatOWw6wJNoZmbtOWzMzKxwDpsOCa9HMzNryWHT\n", "CZ5HMzNry2FjZmaFc9iYmVnhHDYd4qXPZmatOWw6wLdszMzac9iYmVnhHDZmZlY4h00H+EGcZmbt\n", "OWzMzKxwXQkbSSdJWivpB5KelPTzkmZLWi/p6fQ5K3f+SkmbJD0l6YJc+dmSNqZjNypdYkjqk3RX\n", "Kn9A0oKixxRejmZm1lK3rmz+HPiniHgr8HbgSeAaYENEnA5sSN+RtAhYBpwBXAh8UVI5tXMTcAVw\n", "etouTOUrgF0RcRpwA3B9kYPxLJqZWXsTHjaSZgK/CNwCEBGDEfETYCmwOp22Grgo7S8F7oyIAxGx\n", "GdgEnCNpLjAjIu6P7LLi9qY6jbbWAkvkGytmZl3TjSubhcAO4MuSvivpS5KmA6dExLZ0zovAKWl/\n", "HvBCrv6WVDYv7TeXD6sTEVVgN3Byc0ckXSlpQNLAjh07OjI4MzM7XDfCpgKcBdwUEe8E9pKmzBrS\n", "lUrhN0Ei4uaIWBwRi/v7+8fXVof6ZGY2GXUjbLYAWyLigfR9LVn4vJSmxkif29PxrcCpufrzU9nW\n", "tN9cPqyOpAowE3i54yNJPD9nZtbehIdNRLwIvCDpZ1LREuAJYB2wPJUtB+5O++uAZWmF2UKyhQAP\n", "pim3PZLOTfdjLm+q02jrYuC+8HIxM7OuqXTpd38X+KqkXuAZ4LfIgm+NpBXAc8AHASLicUlryAKp\n", "ClwdEbXUzlXAbcBU4J60Qbb44A5Jm4CdZKvZCuUoMzNrrSthExGPAotHOLSkxfmrgFUjlA8AZ45Q\n", "vh+4ZJzdHDMvdDMza89PEDAzs8I5bDokvB7NzKwlh00HeBLNzKw9h42ZmRXOYWNmZoVz2HSIlz6b\n", "mbXmsOkAr3w2M2vPYWNmZoVz2HSIZ9HMzFpz2HSE59HMzNpx2JiZWeEcNh3i1WhmZq05bDrAq9HM\n", "zNpz2JiZWeEcNmZmVjiHTQcI8ItAzcxac9h0QKUkanWHjZlZKw6bDig5bMzM2nLYdEClJGqeRjMz\n", "a8lh0wG+sjEza89h0wG+Z2Nm1p7DpgNKctiYmbXjsOmAStlhY2bWTtfCRlJZ0nclfSN9ny1pvaSn\n", "0+es3LkrJW2S9JSkC3LlZ0vamI7dKGUPjpHUJ+muVP6ApAVFjqUsLxAwM2unm1c2HweezH2/BtgQ\n", "EacDG9J3JC0ClgFnABcCX5RUTnVuAq4ATk/bhal8BbArIk4DbgCuL3IgZd+zMTNrqythI2k+8H7g\n", "S7nipcDqtL8auChXfmdEHIiIzcAm4BxJc4EZEXF/ZH99//amOo221gJLGlc9RXDYmJm1160rmy8A\n", "nwDqubJTImJb2n8ROCXtzwNeyJ23JZXNS/vN5cPqREQV2A2c3MH+D1MuiarDxsyspQkPG0m/AmyP\n", "iIdbnZOuVAr/t7ekKyUNSBrYsWPHEbdTLom6w8bMrKVuXNm8B/iApGeBO4H3SvoK8FKaGiN9bk/n\n", "bwVOzdWfn8q2pv3m8mF1JFWAmcDLzR2JiJsjYnFELO7v7z/iAVVKJYYcNmZmLU142ETEyoiYHxEL\n", "yG783xcRlwHrgOXptOXA3Wl/HbAsrTBbSLYQ4ME05bZH0rnpfszlTXUabV2cfqOwNJjeV+a1A9Wi\n", "mjczO+ZVut2BnOuANZJWAM8BHwSIiMclrQGeAKrA1RFRS3WuAm4DpgL3pA3gFuAOSZuAnWShVpgT\n", "+iq86rAxM2upq2ETEd8Gvp32XwaWtDhvFbBqhPIB4MwRyvcDl3Swq22d0NfDq/sdNmZmrfgJAh1w\n", "Ql+ZVwerXiRgZtaCw6YDTphSIQJeG6qNfrKZ2XHIYdMBJ/T1APDK/qEu98TM7OjksOmA2dOzsNm5\n", "d7DLPTEzOzo5bDpgzgl9APz4VYeNmdlIHDYdcDBsXjnQ5Z6YmR2dHDYdMOfExpWNw8bMbCQOmw6Y\n", "3ltmSk/JYWNm1oLDpgMk0X9iHy/tcdiYmY3EYdMhC06eznMv7+12N8zMjkoOmw5ZOGc6z/x4LwU+\n", "79PM7JjlsOmQhXOm88r+qpc/m5mNwGHTIYvmzgDgey/8pMs9MTM7+jhsOuTtp55Eb7nE/c8c9o42\n", "M7PjnsOmQ6b0lDn3zSfzjxu3Ua3Vu90dM7OjisOmgy5995vYtns/q//fc93uipnZUeVoelPnMe/8\n", "Raew5K1v4LPfeIKNW37CL731Dby5/wTmnTSVk6b1kL292szs+OOw6SBJ/OWlZ/H59T/kbx54nn94\n", "9F8PHustl5g1vYdZ03o5+YReZk3rZfb0Q9vMqT3MmNrDjCk9zJxaObg/pafcxRGZmXWG/PdCMosX\n", "L46BgYGOtVet1XnqpVd4YedrbNm1jx+/OsiuvYO8vHeQXa8NsnNvtu3e1/4dOL2VEjOm9DBjaiUF\n", "USOUKpwwpcL03grT+ypM7y1nn33lQ2W579N6y76yMrOOk/RwRCwe7Txf2RSkUi5xxhtncsYbZ7Y9\n", "r1qrs+u1IXbvG2LP/iH27Btiz/5q+kzl+6oHj/1k3xAv7HyN3fuGePVAlQPVsS1GkGBaT3lYCE3r\n", "qTClt8yUSompvWWmVMrZZ0/2rLepPdn+1J4yfel74/jUdM6Unvz3MuWSA83MDuew6bJKuUT/iX30\n", "pydHv15DtTqvDdbYe6DKa4NVXj2Q7e89UGXvYJW9je8jnLNvsMaefUNsH6qxf6jGvqEa+4fq7Buq\n", "MTjGEDtsPCXRWynRVynRm7a+Spnecom+nhK95UNlfQePD//sLZcPntuuTk+5RKUsesvZfk+lRE9J\n", "h/bLoqdUouQANOs6h80xrqdcYubUEjOn9nS03Vo9OFCtsW+wxv5qPfscIZT2D9bYn85rhNRgtc6B\n", "9DlYq3OgWjtYdqBaz560UB1ksFrLjg/Vh33W6p2d2i2XlAVPOQuuSm6/p/l7RVRKWXlvJSuvlA7t\n", "HxZw5dLBtisp3MolUSln7WSfolIuZZ+HHWtxTiovp/AsCU+D2jHNYWMjKpfEtN4K03on/h+Rai0L\n", "nXxwZdvwMKvW6wxWg6Fatj9UDQZr9ex77dD+Yd9TnaF6MFTNygbTOQeG6rxaqzJYC6oH60c6fmh/\n", "qFZnom939jTCKQVWuZQFXSOQys1hlvYPHSvljufCLXd+OXc1WCllbZeb9g99L1EuQTnVLUkH2yhr\n", "pDolSiWopEBu1e6w31b26aA99jls7KhTKZeolEtM6+12T9qr1eNgUA1V61TrkW21tF8LqvV602fr\n", "c2r1YKheT+0GtXoWbtXGfj0O/mb+nEPtHtpvnFOtBXur1eG/VY9Dv3ewreH97/DF5bjlgycfaCMG\n", "VArCkYKrcbV4sG45F5JN4TlSAJZ0qLxRr1QSZWV9LOXazp+XPz9/XqnEwX7lz8vXb7R3WNuN+k1t\n", "H63BPOFhI+lU4HbgFCCAmyPizyXNBu4CFgDPAh+MiF2pzkpgBVADPhYR96bys4HbgKnA/wY+HhEh\n", "qS/9xtnAy8CHIuLZCRqiHSey/9OXJ+Xy9IigHlBN4VetB/X0Wctt1WH7der1Q3WGnRNBLQVhPRr1\n", "6tTqZIE5QvvV3OehY0114lBw1hrt1tLvDaubXf0eqB7e74N1c+3UUugOOxYx4VezR0IiBdGhK8zS\n", "sODLjjcCu1QSi+bO4C9+46xC+9WNK5sq8IcR8YikE4GHJa0HPgJsiIjrJF0DXAN8UtIiYBlwBvBG\n", "4J8lvSUiasBNwBXAA2RhcyFwD1kw7YqI0yQtA64HPjShozQ7hkmN/1qffEE6HhGHAqle52CINgKq\n", "HoeHWD0XYI0wzs7jYJ1GKI5Up7EdrBNBrVanFjS1fSjMh7WTwrmW6h/WdgRvmj2t8D+7CQ+biNgG\n", "bEv7r0h6EpgHLAXOS6etBr4NfDKV3xkRB4DNkjYB50h6FpgREfcDSLoduIgsbJYCf5LaWgv8hSSF\n", "/1KRmY2D0pSX7z+8fl19NpqkBcA7ya5MTklBBPAi2TQbZEH0Qq7allQ2L+03lw+rExFVYDdw8gi/\n", "f6WkAUkDO3bs6MCIzMxsJF0LG0knAH8H/F5E7MkfS1cghV+FRMTNEbE4Ihb39/cX/XNmZsetroSN\n", "pB6yoPlqRHw9Fb8kaW46PhfYnsq3Aqfmqs9PZVvTfnP5sDqSKsBMsoUCZmbWBRMeNsrW5d0CPBkR\n", "n88dWgcsT/vLgbtz5csk9UlaCJwOPJim3PZIOje1eXlTnUZbFwP3+X6NmVn3dOM+13uA3wQ2Sno0\n", "lX0KuA5YI2kF8BzwQYCIeFzSGuAJspVsV6eVaABXcWjp8z1pgyzM7kiLCXaSrWYzM7Mu8VOfk04/\n", "9dnM7Hgw1qc++02dZmZWOIeNmZkVztNoiaQdZPeKjtQc4Mcd6s6x4ngb8/E2XvCYjxfjGfNPRcSo\n", "f3fEYdMhkgbGMm85mRxvYz7exgse8/FiIsbsaTQzMyucw8bMzArnsOmcm7vdgS443sZ8vI0XPObj\n", "ReFj9j0bMzMrnK9szMyscA6bcZJ0oaSnJG1KL307Zkk6VdK3JD0h6XFJH0/lsyWtl/R0+pyVq7My\n", "jf0pSRfkys+WtDEdu1FH67tqAUllSd+V9I30fbKP9yRJayX9QNKTkn7+OBjz76d/ph+T9DVJUybb\n", "mCXdKmm7pMdyZR0bY3o+5V2p/AFlr4gZu4jwdoQbUAZ+BPw00At8D1jU7X6NYzxzgbPS/onAD4FF\n", "wH8Hrknl1wDXp/1Facx9wML0Z1FOxx4EzgVE9sy6f9/t8bUZ9x8AfwN8I32f7ONdDfzHtN8LnDSZ\n", "x0z2fqvNwNT0fQ3Zm4En1ZiBXwTOAh7LlXVsjGTPovyrtL8MuOv19M9XNuNzDrApIp6JiEHgTrK3\n", "hB6TImJbRDyS9l8B8m9RXZ1OW032RlTIvUU1IjYDjbeoziW9RTWyfzJvz9U5qkiaD7wf+FKueDKP\n", "dybZv5RuAYiIwYj4CZN4zEkFmKrslSPTgH9lko05Ir5D9uDhvE6OMd/WWmDJ67myc9iMT6u3iB7z\n", "VNxbVI82XwA+AdRzZZN5vAuBHcCX09ThlyRNZxKPOSK2An8KPE/2SvrdEfFNJvGYcyb8DcitOGzs\n", "MDoK3qI6EST9CrA9Ih5udc5kGm9SIZtquSki3gnsJZteOWiyjTndp1hKFrRvBKZLuix/zmQb80i6\n", "PUaHzfi0eovoMUvFv0X1aPIe4AOSniWbAn2vpK8weccL2X+pbomIB9L3tWThM5nH/D5gc0TsiIgh\n", "4OvALzC5x9xw1LwB2WEzPg8Bp0taKKmX7KbZui736Yil+dei36J61IiIlRExPyIWkP1vd19EXMYk\n", "HS9ARLwIvCDpZ1LRErIXE07aMZNNn50raVrq6xKy+5GTecwNR88bkLu9guJY34BfJlu19SPg093u\n", "zzjH8m/JLrO/Dzyatl8mm5fdADwN/DMwO1fn02nsT5FbmQMsBh5Lx/6C9BeIj9YNOI9Dq9Em9XiB\n", "dwAD6X/nfwBmHQdj/m/AD1J/7yBbhTWpxgx8jeye1BDZFeyKTo4RmAL8LdliggeBn349/fMTBMzM\n", "rHCeRjMzs8I5bMzMrHAOGzMzK5zDxszMCuewMTOzwjls7LgnKST9We77f5H0Jx1q+zZJF3eirVF+\n", "5xJlT3D+VlN5KT2597H0JN+H0t+rQNKniu6XWYPDxgwOAL8uaU63O5KX/pb2WK0AroiIX2oq/xDZ\n", "I1reFhE/B/wa8JN0zGFjE8ZhYwZVstfi/n7zgeYrE0mvps/zJP2LpLslPSPpOkmXSnowXUG8OdfM\n", "+yQNSPpheh5b4x06n0tXGt+X9J9y7f4fSevI/mZ/c38+nNp/TNL1qey/kv2F3Fskfa6pylxgW0TU\n", "ASJiS0TsknQd2VOQH5X01dTOZan/j0r6n5LKjTFLukHZ+2A2SOpP5R9T9u6j70u68wj+3O044rAx\n", "y/wlcGl6BP9YvR34KPCzwG8Cb4mIc8heV/C7ufMWkL2O4v3AX0maQnYlsjsi3gW8C7iiMb1F9qyy\n", "j0fEW/I/JumNwPXAe8meAvAuSRdFxGfInghwaUT8UVMf1wC/mgLkzyS9EyAirgH2RcQ7IuJSST9L\n", "dhX0noh4B1ADLk1tTAcGIuIM4F+Aa1P5NcA7I+Jt6c/BrCWHjRkQ2dOtbwc+9jqqPRTZO4AOkD3a\n", "45upfCNZwDSsiYh6RDwNPAO8FTgfuFzSo2SvcTiZ7PlUkD2javMIv/cu4NuRPVCyCnyV7N007ca1\n", "BfgZYCXZaxQ2SFoywqlLgLOBh1KflpC9FJBU7660/xWyqyjIHnfz1fQE5Wq7fpi9njlhs8nuC8Aj\n", "wJdzZVXSf5RJKpG92bLhQG6/nvteZ/j/t5qfCRVkb0H83Yi4N39A0nlkj/3vmBSG9wD3SHqJ7GVY\n", "G5pOE7A6IlaOpcn0+X6ysPtV4NOSfi6FoNlhfGVjlkTETrJppxW54mfJ/osf4ANAzxE0fUlaFfZm\n", "squFp4CaIHNQAAABE0lEQVR7gd9R9koHJL1F2UvM2nkQ+HeS5qT7KR8mm9ZqSdJZafqtEZZvA55L\n", "h4cav08WPhdLekM6d7akn0rHSmRP+QX4DeD/prZOjYhvAZ8ke9z8CaP+Sdhxy1c2ZsP9GfCfc9//\n", "Grhb0veAf+LIrjqeJwuKGcBHI2K/pC+RTbU9kh7lvoNRXjEcEdskXQN8i+xK5B8jYrRH3L8B+GtJ\n", "fen7g2RP8oVsUcT3JT2S7tv8MfDNFCRDwNVkwbSX7JXBf0z2PpQPAWXgK+kel4AbI3u9tNmI/NRn\n", "M2tL0qsR4asWGxdPo5mZWeF8ZWNmZoXzlY2ZmRXOYWNmZoVz2JiZWeEcNmZmVjiHjZmZFc5hY2Zm\n", "hfv/HKK5vdSusdcAAAAASUVORK5CYII=\n" ], "text/plain": [ "" ] }, "metadata": {} } ], "execution_count": 36, "metadata": { "inputHidden": false, "outputHidden": false } }, { "cell_type": "code", "source": [ "# 1 POINT\n", "# ACT (8) Code for DebugInfo.\n", "def DebugInfo(w, X_train, y_train, X_test, y_test):\n", " print(\"Range of Target \", min(y_train), max(y_train))\n", " print(\"Train RMSE Loss \", \n", " np.sqrt(LossSq(w, X_train, y_train)/len(y_train)))\n", " print(\"Test RMSE Loss \", \n", " np.sqrt(LossSq(w, X_test, y_test)/len(y_test)))\n", " \n", "DebugInfo(w, X_train, y_train, X_test, y_test)" ], "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Range of Target 5.0 50.0\n", "Train RMSE Loss 7.99424850305\n", "Test RMSE Loss 8.39354780964\n" ] } ], "execution_count": 37, "metadata": { "inputHidden": false, "outputHidden": false } }, { "cell_type": "code", "source": [ "# 2 POINT\n", "# ACT (9) Code for TvF.\n", "def TvF(w, X_test, y_test):\n", " plt.scatter(y_test, X_test.dot(w), edgecolors=(0,0,0))\n", " plt.plot([y_test.min(), y_test.max()], \n", " [y_test.min(), y_test.max()], 'k--', lw=4)\n", " plt.xlabel(\"True Prices\")\n", " plt.ylabel(\"Predicted Prices\")\n", " plt.show()\n", " \n", "TvF(w, X_test, y_test)" ], "outputs": [ { "output_type": "display_data", "data": { "image/png": [ "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\n" ], "text/plain": [ "" ] }, "metadata": {} } ], "execution_count": 38, "metadata": { "inputHidden": false, "outputHidden": false } }, { "cell_type": "markdown", "source": [ "## 4 POINTS Normalizing the Features\n", "Normalize each _feature_ so that it is zero mean and unit variance. (Hint: Look at the asserts.) \n", "As a consequence of this action, we'll have 2 new matrices `X_train_norm` and `X_test_norm`.\n", "Note that in section 1 (**Loading the Dataset**) we set the feature indexed at $0$ to be $1$; we\n", "wish to leave this feature as it is.\n", "\nWe re-run GD on this transformed space of features. Does it perform better?" ], "metadata": { "inputHidden": false, "outputHidden": false } }, { "cell_type": "code", "source": [ "# 3 POINT\n", "# ACT (10) Normalize the features.\n", "mean, std = np.mean(X_train, axis=0), np.std(X_train, axis=0)\n", "std[0] = 1e-12\n", "X_train_norm = (X_train-mean)/std\n", "X_train_norm[:, 0] = 1\n", "X_test_norm = (X_test-mean)/std\n", "X_test_norm[:, 0] = 1\n", "\n", "assert( np.linalg.norm(X_train_norm[:,0])**2 == 337 )\n", "assert( np.linalg.norm(np.mean(X_train_norm, axis=0)) == 1.0 )\n", "assert( 12.9< np.linalg.norm(np.std(X_train_norm, axis=0))**2 < 13.1 )\n", "assert(X_train_norm.shape == X_train.shape)\n", "assert(X_test_norm.shape == X_test.shape)" ], "outputs": [], "execution_count": 11, "metadata": { "inputHidden": false, "outputHidden": false } }, { "cell_type": "code", "source": [ "# 1 POINT\n", "# ACT (11) Choose eta, t again.\n", "eta, t = 1e-4, 400\n", "w, l_t = GradD(len(X_train_norm[0]),\n", " lambda w: GradientSq(w, X_train_norm, y_train),\n", " lambda w: LossSq(w, X_train_norm, y_train),\n", " eta, t)\n", "\n", "print(\"Gradient Descent on Normalized Features\")\n", "LostPlot(l_t)\n", "DebugInfo(w, X_train_norm, y_train, X_test_norm, y_test)\n", "TvF(w, X_test_norm, y_test)" ], "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Gradient Descent on Normalized Features\n" ] }, { "output_type": "display_data", "data": { "image/png": [ "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\n", "cvf/AawoiPSgcFxDAAAAAElFTkSuQmCC\n" ], "text/plain": [ "" ] }, "metadata": {} }, { "output_type": "stream", "name": "stdout", "text": [ "Range of Target 5.0 50.0\n", "Train RMSE Loss 4.59803888299\n", "Test RMSE Loss 4.90765603271\n" ] }, { "output_type": "display_data", "data": { "image/png": [ "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\n", "AABJRU5ErkJggg==\n" ], "text/plain": [ "" ] }, "metadata": {} } ], "execution_count": 12, "metadata": { "inputHidden": false, "outputHidden": false } }, { "cell_type": "code", "source": [ "# OPTIONAL ACT -- No credits bonus or otherwise.\n", "# Observe.\n", "print(\"Original Condition Number \", np.linalg.cond(X_train))\n", "print(\"New Condition Number \", np.linalg.cond(X_train_norm))" ], "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Original Condition Number 15106.3649261\n", "New Condition Number 9.15428277989\n" ] } ], "execution_count": 13, "metadata": { "inputHidden": false, "outputHidden": false } }, { "cell_type": "markdown", "source": [ "## 3 POINT Stochastic Gradient Descent\n", "\n", "We'll code up Stochastic Gradient Descent. But we'll do it cleverly.\n", "\n", "The idea is that we'll design a function `StoGradientSq` (in the spirit of `GradientSq`) \n", "which calculates the gradient on **one** randomly sampled data point, rather than calculaing it\n", "on the entire dataset. Concretely, it takes in\n", "+ a weight vector $w\\in\\mathbb{R}^d$\n", "+ a feature matrix $X\\in\\mathbb{R}^{n\\times d}$\n", "+ a vector of outcomes $y\\in\\mathbb{R}^{n}$\n", "\nand outputs $\\nabla_w (x_{(i)}^Tw-y_i)^2$, where $i\\sim Unif(\\lbrace1,2,\\dots n\\rbrace)$." ], "metadata": { "inputHidden": false, "outputHidden": false } }, { "cell_type": "code", "source": [ "# 2 POINT\n", "# ACT (12) Fill in the code for StoGradientSq.\n", "def StoGradientSq(w, X, y):\n", " index = np.random.randint(len(y))\n", " return GradientSq(w, X[index], y[index])\n", "\n", "# 1 POINT\n", "# ACT (13) Set eta, t.\n", "eta, t = 1e-2, 400\n", "w, l_t = GradD(len(X_train[0]),\n", " lambda w: StoGradientSq(w, X_train_norm, y_train),\n", " lambda w: LossSq(w, X_train_norm, y_train),\n", " eta, t)\n", "\n", "print(\"Stochastic Gradient Descent on Normalized Features\")\n", "LostPlot(l_t)\n", "DebugInfo(w, X_train_norm, y_train, X_test_norm, y_test)\n", "TvF(w, X_test_norm, y_test)" ], "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Stochastic Gradient Descent on Normalized Features\n" ] }, { "output_type": "display_data", "data": { "image/png": [ "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\n" ], "text/plain": [ "" ] }, "metadata": {} }, { "output_type": "stream", "name": "stdout", "text": [ "Range of Target 5.0 50.0\n", "Train RMSE Loss 4.80898844265\n", "Test RMSE Loss 5.12971368746\n" ] }, { "output_type": "display_data", "data": { "image/png": [ "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\n" ], "text/plain": [ "" ] }, "metadata": {} } ], "execution_count": 14, "metadata": { "inputHidden": false, "outputHidden": false } }, { "cell_type": "markdown", "source": [ "## 4 POINT Is SGD faster?\n", "\n", "We'll attempt to investigate the performance of SGD against GD. This will involve _trail-error_.\n", "1. Calculate the number of steps it takes for GD (on normalized features) to reach a training RMSE of 5.0 or less.\n", "2. Calculate the number of examples GD computes the gradient on to reach a training RMSE of 5.0 or less.\n", "3. Calculate the number of steps it takes for SGD (on normalized features) to reach a training RMSE of 5.0 or less.\n", "4. Calculate the number of the number of examples SGD computes the gradient on to reach a training RMSE of 5.0 or less.\n", "\nWhat do you conclude?" ], "metadata": {} }, { "cell_type": "code", "source": [ "# 2 POINT (1 for each)\n", "# ACT (14) Number of steps and number of examples it takes for GD.\n", "eta_GD, t_GD = 4e-4, 8\n", "n_GD = t_GD*len(y_train)\n", "w, l_t = GradD(len(X_train_norm[0]),\n", " lambda w: GradientSq(w, X_train_norm, y_train),\n", " lambda w: LossSq(w, X_train_norm, y_train),\n", " eta_GD, t_GD)\n", "\n", "print(\"Gradient Descent on Normalized Features\")\n", "DebugInfo(w, X_train_norm, y_train, X_test_norm, y_test)\n", "print(\"Number of steps for GD\", t_GD) \n", "print(\"Number of examples for GD\", n_GD)" ], "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Gradient Descent on Normalized Features\n", "Range of Target 5.0 50.0\n", "Train RMSE Loss 5.13762604887\n", "Test RMSE Loss 5.28371476129\n", "Number of steps for GD 8\n", "Number of examples for GD 2696\n" ] } ], "execution_count": 15, "metadata": { "inputHidden": false, "outputHidden": false } }, { "cell_type": "code", "source": [ "# 2 POINT (1 for each)\n", "# ACT (15) Number of steps and number of examples it takes for SGD.\n", "# Being random, this will involve some amount of variability.\n", "# Choose t_SGD so that RMSE<5.0 on 10 or so consecutive trails.\n", "eta_SGD, t_SGD = 1e-2, 400\n", "n_SGD = t_SGD\n", "w, l_t = GradD(len(X_train_norm[0]),\n", " lambda w: StoGradientSq(w, X_train_norm, y_train),\n", " lambda w: LossSq(w, X_train_norm, y_train),\n", " eta_SGD, t_SGD)\n", "\n", "print(\"Stochastic Gradient Descent on Normalized Features\")\n", "DebugInfo(w, X_train_norm, y_train, X_test_norm, y_test)\n", "print(\"Number of steps for SGD\", t_SGD) \n", "print(\"Number of examples for SGD\", n_SGD)" ], "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Stochastic Gradient Descent on Normalized Features\n", "Range of Target 5.0 50.0\n", "Train RMSE Loss 4.81684909027\n", "Test RMSE Loss 5.24352209639\n", "Number of steps for SGD 400\n", "Number of examples for SGD 400\n" ] } ], "execution_count": 16, "metadata": { "inputHidden": false, "outputHidden": false } }, { "cell_type": "markdown", "source": [ "## 2 POINT Least Squares Regression thorugh Matrix Inversion\n", "\n", "We want to minimize $\\min_w \\|Xw-y\\|^2$. If we set the gradient to zero, we get \n", "$$\\nabla_w \\|Xw-y\\|^2 = 2X^T(Xw-y),$$\n", "$$\\implies w^* = (X^TX)^{-1}X^Ty$$." ], "metadata": {} }, { "cell_type": "code", "source": [ "# 2 POINT\n", "# ACT (16) Choose w as prescribed by the equation.\n", "w = np.linalg.pinv(X_train).dot(y_train)\n", "\n", "print(\"Analytic Solution\")\n", "DebugInfo(w, X_train, y_train, X_test, y_test)\n", "TvF(w, X_test, y_test)" ], "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "Analytic Solution\n", "Range of Target 5.0 50.0\n", "Train RMSE Loss 4.596321851\n", "Test RMSE Loss 4.90302946321\n" ] }, { "output_type": "display_data", "data": { "image/png": [ "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEKCAYAAAAfGVI8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n", "AAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xd81PX9wPHX55KQzcggrIQwAvwQFRWs1CpWQcWKBVtF\n", "RkUcVECLKLiIGBAcIKJoHbgACQptRRHFhbOWWqNSK3GAzDBCJoSQnffvj7uES3KXXJIbSe79fDzu\n", "kbvv/NxX/L7v+xnvjxERlFJK+S+LrwuglFLKtzQQKKWUn9NAoJRSfk4DgVJK+TkNBEop5ec0ECil\n", "lJ/TQKCUUn5OA4FSSvk5DQRKKeXnAn1dAFfExMRIYmKir4uhlFKtytdff50tIrENbdcqAkFiYiJp\n", "aWm+LoZSSrUqxpi9rmynVUNKKeXnNBAopZSf00CglFJ+TgOBUkr5OQ0ESinl5zzaa8gYswcoACqA\n", "chEZYoyJAtYBicAe4GoRyfNkOZRSSjnnjSeC34rIYBEZYvt8N7BFRJKALbbPSimlbPLz83nnnXe8\n", "dj5fVA39Hlhle78KGOODMiilVItTWFjIQw89RO/evRk7diz79u3zynk9HQgE+NAY87UxZqptWZyI\n", "HLK9PwzEOdrRGDPVGJNmjEnLysrycDGVUsr3nnvuOe69917y8vIoLS3lgQce8Mp5jScnrzfGdBeR\n", "A8aYzsAHwK3ARhHpaLdNnoh0qu84Q4YMER1ZrJRq6woLC+nTpw+ZmZkABAQE8MMPP5CUlNSk4xlj\n", "vrarlnfKo08EInLA9vcIsAE4G8g0xnS1FbIrcMSTZVBKqdYiPDyce++9F4AOHTqQkpJCly5dPH5e\n", "jwUCY0y4MSay6j1wMfA9sBGYbNtsMvCmp8qglFItiYiwYcMGRo8eTVlZmcNt/vznP7No0SJ2795N\n", "cnIykZGRHi+XJ58I4oB/GmP+C/wHeFtE3gUeBkYaY3YAI2yflVKqzRIR3n33XYYOHcqVV17Jpk2b\n", "ePnllx1uGxwczL333kunTvXWmLuVR9sI3EXbCJRSrdVnn31GcnIyn3/+eY3lPXr0YMeOHYSEhHjs\n", "3C2ijUAppfzVV199xSWXXMLw4cPrBAGAAwcO8PHHH/ugZHVpIFBKKTf6/vvvGTt2LGeffTbvv/++\n", "w23+8Ic/8P333zNq1Cgvl86xVjExjVJKtXQ7d+7k/vvv59VXX8VZlfuoUaN44IEHOOuss7xcuvpp\n", "IFBKqWY4ePAg999/Py+//DIVFRUOtxk+fDgLFy7kN7/5jZdL5xoNBEop1Qy5ubm8+OKLDp8Chg4d\n", "yqJFixgxYgTGGB+UzjXaRqCUUs0waNAgxo8fX2PZqaeeyhtvvMGXX37JyJEjW3QQAA0ESinlkpKS\n", "EqfrUlJSCAgIICkpibVr17Jt2zZ+//vft/gAUEUDgVJK1aOoqIhHH32U+Ph4vv32W4fbJCUl8fHH\n", "H5Oens748eOxWFrXrbV1lVYppbyktLSUp59+mj59+jBnzhyysrK47777nG5/3nnnERjYOptdNRAo\n", "pZSd8vJyVq5cSf/+/ZkxYwaHDh2qXvf222+zdetWH5bOMzQQKKUUUFlZyfr16xk0aBBTpkxhz549\n", "dbaJjIzkl19+8X7hPEwDgVLKr4kImzZt4swzz2TcuHH89NNPdbYJDQ1lzpw57Nq1i0mTJnm8TKmp\n", "a+mVNABLQAC9kgaQmrrWo+drnRVaSinlBh999BFz587l3//+t8P1QUFBTJ06lblz59K1a1evlCk1\n", "dS3TZs0h7KJbiB8zkKKMdKbNmgPAxIkTPHJOzT6qlPI7mZmZTJgwgY8++sjheovFwuTJk5k3bx6J\n", "iYleLVuvpAHkxg6maMdWynIyCIruQWjSMKKytrF7x4+NOpar2Uf1iUAp5Xeio6M5cOCAw3Xjxo1j\n", "/vz59O/f38ulstrzy8+YA4cJCA4DQMrLKNj2LseKj3nsnNpGoJTyO4GBgcyfP7/GstGjR7Nt2zZe\n", "e+01nwUBgICgECxB7Yi+9FYS7nid6EtvxRLUjoAgz81boIFAKdVm7d69m4KCAofrrrrqKk4//XRG\n", "jBjBv//9bzZu3Mjpp5/u5RLWVSkQc9ksQnqehgkIJKTnacRcNotKD9biayBQSrU5Bw8eZPr06fTv\n", "359ly5Y53MZisfDJJ5/wwQcf8Ktf/crLJXROyooJ7jGwxrLgHgORsmKPnVMDgVKqzcjKymL27Nn0\n", "6dOHZ555hrKyMpYuXUpubq7D7Tt27OjlEjYstmt3SjLSaywryUgntmt3j51TA4FSqtXLz8/nvvvu\n", "o3fv3ixdupTi4pO/no8dO8bixYt9WLrGWbbkEfI3P0bx3u+QinKK935H/ubHWLbkEY+dU3sNKaVa\n", "rcLCQpYvX86SJUvIy8tzuE2vXr0YPHiwl0vWPKaygpx3n6T8aCaBHeIIrHQ84Y3bzqfjCJRSrU1x\n", "cTHPPfccDz74IEeOHHG4Tbdu3bjvvvu4/vrradeunZdL2HS9kgZQNGQyIT1Pq15WvPc7QtNW6TgC\n", "pZQqKytj5cqVLFiwgIyMDIfbxMTEcM899zBt2jRCQ0O9XMLm27trB/Fj6jYW712/w2Pn1ECglGoV\n", "ysvLOfPMM/n+++8dru/QoQOzZ89m5syZREZGerl07tOzdxJFGek1nghKMtLp2TvJY+fUxmKlVKsQ\n", "GBjIyJEj6ywPDw/n3nvvZffu3SQnJ7fqIACwMGUeJ7Y8VaOx+MSWp1iYMs9j59Q2AqVUq3HkyBF6\n", "9+5NYWEhwcHBTJs2jXvuuYfOnTv7umhulZq6luSUBezdtYOevZNYmDKvSQnnXG0j8HggMMYEAGnA\n", "ARG53BgTBawDEoE9wNUi4ri530YDgVL+4/PPPycoKIhzzjnH4fr58+dz8OBBkpOTiY+P93LpWhdX\n", "A4E3qoZmAj/Yfb4b2CIiScAW22ellJ/76quvuOSSSzj//PO59dZbcfYj9f777+e5557TIOBGHg0E\n", "xpgewO+AF+wW/x5YZXu/ChjjyTIopVq277//nrFjx3L22Wfz/vvvA5CWlsabb77p45L5D08/ETwO\n", "3AlU2i2LE5GqSUAPA3GOdjTGTDXGpBlj0rKysjxcTKWUt+3cuZOJEydy2mmn8cYbb9RZf99991FZ\n", "WelgT+/w9ixhvuSxQGCMuRw4IiJfO9tGrM9+Dp//RGSFiAwRkSGxsbGeKqZSysv27dvHTTfdxIAB\n", "A1i7dq3DKqDzzz+fZ555BovFNx0bq2YJKxoymfjbX6doyGSmzZrTZoOBxxqLjTEPAX8CyoEQoD3w\n", "OjAUuEBEDhljugKfiEi9yb+1sVip1i8zM5MHH3yQZ599ltLSUofbDB06lIULFzJy5EiMMV4u4Unu\n", "HN3rSz5vLBaRe0Skh4gkAtcAH4nIJGAjMNm22WRAKwKVasNyc3O555576N27N8uXL3cYBAYNGsQb\n", "b7zBl19+ycUXX9xgEPB0tc3eXTscpoLeu8tzo3t9yRcjix8G1htjbgD2Alf7oAxKKS+ZOHEi7777\n", "rsN1SUlJzJ8/n3HjxrlcDeSNyd19MbrXl7xSAScin4jI5bb3OSJykYgkicgIEXGcKFwp1Sbcdddd\n", "dZbFx8fzwgsvkJ6ezvjx4xvVFpCcsoCwi26pMYNX2EW3kJyywG1l9sXoXnvebqjWFBNKKY+64IIL\n", "GDFiBABxcXEsX76cHTt2cMMNNxAY2PhKicZU2zT1hjpx4gSeWbaE0LRV7H/sSkLTVvHMsiVue+Ko\n", "jy8aqjXFhFKqWcrLy1mzZg0ZGRkkJyc73Oarr77io48+4pZbbiE8PLxZ53O1Ide+Cim4x0BKMtI5\n", "seUpr93Qm8oXaaj1iUCpNshdVQv1HaeyspL169czaNAgpkyZwoIFC9izZ4/D4wwdOpS77rqr2UEA\n", "XK+28UYVkif4oqFa01Ar1ca4qzHV2XFEhI4dO5CcnMx///vf6u3LysqYP38+L7/8stu/k72q75Cc\n", "soC9661J2ZY6+JXvi7z+7uCLhmqtGlKqjXFX1YKj4xz7zwZO/CuVkpJih/uEhISwf/9+YmJimv4F\n", "3KS1jgVwZ5WWVg0p5afcVbVgf5ySAz+Q+dq95H38osMgYLFYmDJlCj/88EOLCALg+54/TTVx4gQm\n", "XTWW3I0Pse9R699JV431aLuGVg0p1ca4q2qhZ+8kjv3vQ4p2fknRL1853W7cuHHMnz+f/v3rTRDg\n", "da5WIbU0qalrWfO3DURdcU/1E8Gavz3Fub/+tcfKrk8ESrVSzhpym/JLuPaxlix5lM5RHcl97ymn\n", "QWD06NFs27aN1157rcUFgSoTJ05g944fqayoYPeOH1t8EADfNHLrE4FSrVB9DcIAwRY48o8HkLJi\n", "Yrt2r7d+2dGxkucvoLSwwOH2F110EQsXLnQ6cYxqHp28XinlEvtfjYD170W3MGvOXRSXV1pv6nYN\n", "jY09VsdRd5C94QEqKyqqtxs2bBiLFi3it7/9ree+mNLJ65VSrnHWIJx16ECjqhUqKysdHiskcXD1\n", "XABnnHEGb7/9Nl988YUGAS/wRSO3BgKlWqGevZMoyUivsawkIx0TFOJSj6GjR48yb948zjzzTBJ6\n", "9XV4rJ69+/L666+TlpbGZZdd5nJaaH+a0MUTfJHeQquGlGplUlPXUlhYSNZrcwns2IUO544nMDKG\n", "E1ueIjqqEyX1VCsUFhby5JNPsnjxYvLy8gCYMmUKf9/0FNTqt7502RLGjh3b6LJ5OjOoP5g4cYJX\n", "r5cOKFOqFXE02Chr42KiIsN4fOkSAIeDkZ54ZBHHjh3lwQcf5MiRIzWO2a1bNxYuXMSCBx9m7y5r\n", "N8uFKfOadCNqrYO42ipXB5TpE4FSrUBq6lprf/i9++j8h/tqNOzGXnEnoWmraty4q/rOJ/Tqy+VX\n", "jOL+++exf/9+h8cuLS3ltNNOdcuNurWmdfB32kagVAtnn5ZYyksabAOYOHECO3/cziurVxNkKnnx\n", "xRcdBoEOHTrwwAMPsGvXLs466yy3lNVZ20VbndClrdBAoFQDXG38bEwjaWO2te/eGRTdo94brYiw\n", "YcMGTj/9dCZNmsTOnTvrHC88PJx7772X3bt3k5ycTGRkpCuXwSWtNa2D3xORFv8666yzRClfWLMm\n", "VSJju0ncNQ9Kwuw3JO6aB8US1lFi4rrJmjWp9W4XGVtzm6ZsKyJiLBZJmP2G9Lxrk8SMniOBHeIc\n", "7puWliZDhgwRwOErODhYbrvtNsnMzPTY9ar6fol9+4uxWCSxb3+n30t5HpAmLtxjtbFYqXo4a/zM\n", "efdJQoNMdbc+Z9tVfPwUEZGRNRphk1MWNKpBtfaxC9M/Jf/zNZTnHyaxb7/qht3t27dz6qmnUvv/\n", "6cDAQK6//nqSk5OJj4939yVSLZhmH1XKDZwN3Co/mlljoJaj7coLssktOFFnysE9v/zcqOygtatb\n", "AsI7ERpkWLNmTY38OaeccgoTJpxsMDbGMGnSJH788Ueee+45DQLKqQZ7DRljZgIvAwXAC8AZwN0i\n", "8r6Hy6aUzzkb7h8QEUXuB89SlrOfXkkDiI7tUqf//tEvXiX2ijvrpIEo3vgQJRnpVBTmcXTrOspy\n", "MgjsEEd0bBeHZaidRbN7fKLTAUYpKSmsW7eOK664ggULFnDKKae483KoNsqVJ4LrReQYcDHQCfgT\n", "8LBHS6VUC+Go8TPrzUfAGKJG3kzC7A0UDZlMYWkFR99eUmO78vzDjp8migo5+vYS8j5dSdSIm0m4\n", "43WiL72VwtIKUlPXOmxInjhxAh9s3sT4a67h4P49/N//DXBY3r59+7Jr1y7+8Y9/aBBQLnMlEFSN\n", "K78MeEVEttstU6pFcXd6g6rh/pWfPs2+R8eS8+6TmKBgYi6bVSOfT/tLZhIZEV6dFqDi46cICAl3\n", "3MOnTxKREeEOj3HbHXOqu4pWVSfdMGMmIWHhJCUlsXbtWiorK51OEg94rQpIU0m0Ha4Egq+NMe9j\n", "DQTvGWMigUrPFkupxrPvb29fJ++OYHDk4H7WrFlDj5j2VBzLcvhLPzvzILt3/Mgrq1+hpBLCz/gd\n", "2ZufqPGUkLPpUfb88jPZ2TmUF2TXOUZObl51V9HK4gJO7NhKSUEeJUUnamy7efNmvvjiizrf31s3\n", "Zk9da+UbDfYaMsZYgMHALhHJN8ZEA91F5DtvFBC015ByTWyX7uSXCOVHMwmK7kGHYeOsDatuTm/Q\n", "UBoF+/WF6Z/a2gH2Y4JCiTxrNB3PHU9JRjrZ7yyj0/DrCB84vPoYma/NpfuM1RR8/SYFX7+FlJU4\n", "LENQu3Zs+fBDzjvvPACmz7iFFS+tpKLkBEFR8YT2G4bs/Nxjyco0lUTr4M5eQwIMBP5i+xwOhDSj\n", "bEq5XWrqWnILThB96a0k3PE6USNuJvfDFWS/8zh7dv7s1l/IDQ2asu9BFD5wON1ueJqEOzYgZUV0\n", "Ov9P1VVBMZfNIv/zNdXHKPxgOWERkRxccSPH/v13h0EgsFM3on93O2VlZdVBIDV1Lc+vfpWYMXNJ\n", "uGMDUSNv5kT6J5i+53lsVit3zYusWgZXAsHTwDBgvO1zAfDXhnYyxoQYY/5jjPmvMWa7MWa+bXmU\n", "MeYDY8wO299OTS69UjbJKQuqe+iYgEAqCvMwQe2Iuey26gZdd1VdNJQm2FmahaComnX3wT0GUp5/\n", "mH1Lx1L6wTJMaSEnjh9zGAAsIZFEXfoXut34DIGRMST26Vfju0dfPrtGe0P0qJkU/bzVYzfmlp5K\n", "QtsvGseVQPArEZkBFAOISB7QzoX9SoALReR0rFVLlxpjzgHuBraISBKwxfZZqWap/Qv16NZ1dRpj\n", "3Tnva31z4Tp6YsjZ9Cih/YbVOEZJRjrdExLp1rUreTlZFBTUnRrSWCwEBocSM3oOEYMupGT/9jop\n", "G5z9Oi/L3e+xG3NLTiWh7ReN50ogKDPGBGCtIsIYE4sLjcW2Ec7HbR+DbC8Bfg+ssi1fBYxpbKGV\n", "qq32L9SynIzqm2Nh+qccfHE6meuS2bt3n8dvCI6eGG66djyy8/M6N84HH5jvMNdPp06dePjhhyk4\n", "doyVL75A2LepTicpcfbrPCA4zGM3Zl9MnuIqX0z+3uo1lIMCmAhsBDKARcBPwFWu5K8AAoBtwHHg\n", "EduyfLv1xv5zrX2nAmlAWkJCglvzb6jWxZXcNbXz9wR27Cpx1zzoMDdPaKc4iYnr5vVcOM6+x7p1\n", "66rzAUVERMi8efMkPz+/UcetnbsoMCJKpk2f4amv0qLZ52aqeiXMfkOMxeLronkdLuYacinpGzAA\n", "mAHcAvyfK/vU2r8j8DEwqPaNH8hraH9NOue/GpvMrepGGxPXTUI7xVUHBPubQtw1D0pgx66NOl5z\n", "AkZlZaVs2rRJjh496nB9RUWFDBs2TGbPni1ZWVlNOocmejspsW9/h//NE/v293XRvM7VQOBK99Fz\n", "gO0iUmD73N4WDL5szJOHMWYecAK4CbhARA4ZY7oCn4hI//r21e6j/qs53RRTU9cyadIkEmZvwASc\n", "zKYiFeXsW3olPe/c6PR4jmYCO7HlKZerP6bPuIUXVq6m7EQBxmJBKitJSUnh/vvvd7h9ZWUlFoum\n", "/nKH5v63a0tc7T7qSiD4FjjTFl2qxhWkiciZDewXC5SJdexBKPA+8AgwHMgRkYeNMXcDUSJyZ33H\n", "0kDgvywBAcTf/nqdG/n+x66ksqKiwf2dBZLcD5+l2w1POz1ecwLQ9Bm38NxLqwlsH0vpkV3Vy4OC\n", "gjh06BDR0dENf3HVLNUzujVz6s3Wzp3jCIzYRQsRqcS1KS67Ah8bY74DvgI+EJFNWPMUjTTG7ABG\n", "oHmLVD2a2k2xqvvgnl9+JmfTozUaabPfWUaHYePqPZ7TfvK/1N8dc9u2bTz77LNUFhfUCAIAZWVl\n", "LF68uN79W6LW2BWzvl5dqi5Xbui7jDF/AZ6xfZ4O7KpnewDEOvL4DAfLc4CLGlNI5b8Wpszjxmm3\n", "kBMQQvnRTAI7xBFYUczSZ55yuo991UDCmIHkf/Eq2W8sorKkiJgu3QgSaypnqSivrjZYumxJjWM4\n", "yzpqCQ6tTgJn78cff2TevHn87W9/q/f72KeJbg3sr2X8mIEUZaQzbdYcAL25tiGuVA11BpYDF2Lt\n", "2bAFuE1Ejni+eFZaNeS/UlPXcsOMmXQcdTvlBdkc/eJVyvMPE9u1O8uWPOLwZtRQtY4r1QapqWu5\n", "7uZbib58dnU9c87mJwgbeAFRWduqq4d2797N/PnzeeWVV6isdNyrOqTn6YQmDeP4v1IpLTzmxqvj\n", "eZpKonVzWxtBS6CBwH917haPZfh0KgrzyP9sNdGjZjbYANjcdoUqxmIhKCqestyM6txFYf3PZf9j\n", "V5Kxfz8LFy7khRdeoKyszOH+QdEJdLroJowlgOy3ljB18gSe/qvzJ5mWyF3XUvmGq4HAadWQMeZO\n", "EVlsjHkS22AyeyLyFwe7KeVWWYcOkNBjIIdW/oXoUTPrTPKSnLKgTiBwVq3T2FG2iX36Ofw1HJ/Y\n", "h0GDBpGXl+dwv8GDB9OtW3fe//hTjqyfR1BYBFOvu7bVBQFw37VULVt9jcU/2P6mAV87eCnlcSYo\n", "hJKM9Bojhas4S3LmrvQHzo7z4IIUpkyZUmf7AQMGsH79er7++mvefnsTZScKEKmktPBYqwwC0LJT\n", "SSg3qm+QAdaRwY+6MiDBky8dUOa/YuK6SUBktNOBYc4GCblrgJWz4xw5ckQiIiIEkF69esmqVauk\n", "vLy8yd+zJdPBaq0XLg4oq7fXkIhUGGPO9UI8Usqhq/4wlmdfXIkJqCBr42Jir7izRhtB7d4+7lJc\n", "XMyKFSsYNGiQw0bR2NhYFi5cSHBwMNdffz3t2rmSh7F1mjhxgvYQausaihRYu41uxDpX8ZVVL1ei\n", "jLte+kTQejX112T1fkGh1U8CMaPnSFBMgmCMBIVFOj3WtOkzJDAiyqW0FLWVlpbKihUrJD4+XgA5\n", "66yzpLKyslHfWamWAhefCFwZUBYC5GDtPjra9rrcAzFJtTFNTQdsv5+Ulzic5KW8uNDhr9TU1LWs\n", "eGllnfz89tknHQ2QqqioIDU1lYEDBzJ16lT2798PwNdff82GDRvcfGWUqp+3B/G5Mo4gRkSy693I\n", "w7T7aPP5Ysh9U/ug2+938MXpRI24uc4xKj99GqmsJCc3Dykrrh5XkJyygD2//EzCHXXzC+1/7Epe\n", "Wf0KN916O+0vsXZDLd6/nfxNi+ncKZKMjAyH5Tn77LP58stGpdZSqsncmSup2eMIjDGjgZeAMqzz\n", "D1wtIv9qVCncRANB8/gqCVdT+6Db71eY/mmd8QPH3nuC8qLjVLYLI+ayWTWWF+dnERjVg6iRdYNH\n", "aNoqCgsLsQyfTnDCqRTv/ob8z9dQethx2oh27doxbdo07rnnHuLi4tx3YZSqhzsH8bkj19Ai4DwR\n", "6Qb8AXioUSVQLYYvJupITV1LYEh4k/IE2ecXCh84nI7nX0vOu0+y79GxhKatIrxdABLSvs4MZO0v\n", "mUlgaDih/YaRs/mJGl0es95azKiLR5B16ACCkLn2bo787X6HQSAgIICbbrqJnTt38vjjj7s9CLTG\n", "3D3Ke3wxH3R9vYbKReRHABH50hhTdxol1Srs3bWD+DEO/mGt98w/rKonkNDTLyN78xPE1BoN3FBP\n", "n1EXj2DFS4uoKDlBUFQ8of2GERpkeGbNGiZOnIAlIAARHE/PWHQc+d8HhJ06ktwPnqUsdz+mXRgh\n", "CaeyatVqMIYjr811eF5jDBMmTCAlJYW+ffu67XrY09w9qiG+GMRXXyDobIy53dlnEXnMY6VSbuXt\n", "f1j2TyDtYhLI/fBZynL2ExQawcsrnq2+4TlqtwBY87cNxIyZezLHz6ZHuena8YD1sVkqBRMcRv4X\n", "r9Lp/D/V+E6Jffqx55efKfp5qy01RDwdho2jeP92jhcVgTjOB9QuOIRvvk7jlFNO8cg1cXRtoP4R\n", "0so/LUyZZ/1xUKsq11NdpaH+NgLHM2jYiMh8j5TIAW0jaB5vtxFYLAHE31G3bWDfo2NJ7Nuv+oZf\n", "u0xZGxdjKsuIGTPXYeNwcXllze3fWkLEaRfT8dzx1W0Ezz/5GMkpC+rUse57fBwdz51A3kfP1yys\n", "sdAuNJyX7AKUJ2nuHuUKd3XuaHauIW/e6JVnVf0DSk5ZwN711n9YSz3YUBwYam0bqJPCOSS8ugtp\n", "SKClzi/j2CvuJPO1uQ6rfPYdOkDcNYtqbj96Dpl/S6Eg7U2krITYrt0Bx7+opOQEkWf+jqJdaRTv\n", "+Zbg+EF0OHc8R15L9loQAM3do1zj7UF8rsxHoNoAb/7DKis6XqdtIHvzE1QWF1ZXhWS+NpcEBzf8\n", "qtxCtW+UJiikToAoL8jGEhxWPdr4xM4v+dOU6zn1/wbwzLIlNQJfgK3hutNvp1BROJaQxDMo2fc/\n", "gsIivPo/nC8e+5VqiE6SqtwusU8/wgdeQO6Hz7Jv6ZXkfvgs4QMvICgmHqh5w7dXkpEOge3IemtJ\n", "nSRn0VGd6mx/9ItXib3iToI69yL/n2vIefsxpKyE7777L0eOHKkxQ9XU6yeT/dYSKouOU1GYz8EV\n", "U8l8bS6hISFe7bUzceIEnlm2hNC0Vex/7EpC01b55Vy6qoVxZfixr1+aYsJ73JFgbM2aVImM7VYj\n", "xUNghziJGT2nOlmcCQqW0E5xNbYJaB8rltAO0n7YOAmKtqaSCAgJl2nTZ8iaNaliCesocdc8KNG/\n", "u10CO3YVQDqcO15MuzDBmiq9+hUe2b5OuaZNnyEB7UKrj9PY9BNKtTa4mGKivsbi2x2uOBlAvNZr\n", "SBuLvcOdjcrVjV2/7IB2IUSeOZqO544n/4tXKfhmE1J6goCgEMIjIjiWm01gxy5IeRkxl9/udCBN\n", "bJfu5BacQEQI7/9rjv/3Pae9gAAKCwsJCwursUxn3FL+xB0ji6t6DfUHhmJNPAfWXEP/EZFJ7iio\n", "KzQQeIenbpLGYiEgPJrKkuNIWQmBHbvQ4dzxBEbGcGLLUxRkHSIoOp6ynP0kzK6bGqKqt9HFF/2W\n", "5198CRMUQmWRkykfjYXgnqfTJeA4e3b+XGe19tpR/qTZI4tFZL5Yew71AM4UkTtE5A7gLCDBfUVV\n", "LYWnRjR4OOInAAAgAElEQVTGdO4KFkPnP8wjYfYGoi+9laP/TKWiMA/T9zwswaFEjbyZoJh4x+0G\n", "7UI5LB14/vnnkfJSp0HAEtaRyKFjaVeYyaL5KQ63sR+1bH8O7bWj/JkrjcVxQKnd51LbMtXGeOom\n", "aSyWOukgokfNJO+z1RSmf0LEmaPJ3vwEoUnD6jQUZ21cjCUggOJf/oNU1v3FbtqFEn7KhQSGRiDF\n", "x4jO/b7eqiydcUupulzpProa+I8xpioX7xhgleeKpLzNvj7fkrGI8DMurx6k1diujfYDYWLiuiGV\n", "lWRnHnLYVbTi6JHqsQHtYhLI++RlKgvzbakhrBPGh/Q8jRM/fFb3RAGBRJ5xOSHxp1D8z5dZ+fxz\n", "LrVjeHtMhVKtQYOBQEQWGWM2A+fZFk0RkW89WyzlLbVz31SldDj27/Uk9unXqJuko2Nlv7OMgIho\n", "J2MDgmvMNXB06zpMQFCNzKGVZcUU7/6WyuIC646WAAICAunQKYq8bzYSnf8Dyxp5I9cZt5SqqcH5\n", "CACMMb8BkkTkZWNMLBAhIrs9XjobbSz2nKoG4orCPI5uXUdZTgaBHeLoGGzIOnygSceq3dicvfkJ\n", "DBA28AJbDqD9mHahSFkZcVfPJ6TnaVQWH2f/8glEX3YbR/+ZWiPt9JF/PICUFREcP4iY382iPD+T\n", "0LRVLEyZ5/U5FpRqTdyRhrrqQPcDdwH32BYFAWuaVzzVHO5MY7x31w7KC7LJ/2w1USNuJuGO14m+\n", "9FZyC040+rjOGpsrjmUR2mcox797n6iRN5NwxwY6j03GEhJO5oYHOfTKbA6unElA+84ERsbQ8fxr\n", "qwej5bz7JKZdGNGXzaLiWBYlB34kuMdA9vzyM9NmzSE3djCBnXqw55efmXzjVKbPuKXJ10Ipf+VK\n", "Y/FY4AqgEEBEDgINpqQ2xsQbYz42xqQbY7YbY2balkcZYz4wxuyw/e3UnC/gb5o6/aMzPXsncfSL\n", "V4keNbNGY27sFXeSnLKgUUHHWWNzUHQPivd9R+zoOdXnCIjoRFB0PJQcp/Tgj1QczaSyuIDst5cS\n", "EN6JrtctJ27cQpBKoi68nohTLyJ61EyObl1nPWZoBKbveZxI/6Q6uMSMmcvzq1/1en5/nV9AtXau\n", "TFX5HxE52xjzjYicaYwJB7aKyGkN7NcV6Coi39jmMvgaa0PzdUCuiDxsjLkb6CQid9V3LK0aOsnd\n", "ff1TU9cyadIkx/33l44lMqarywPMHA1Iy35nGR3P+xM57ywj4Y4NVBzPIf+fr1K4/aM6g8Esoe2x\n", "GJDKCiqKT1hTSP96HOEDh9cp0/Hsw/XOROatwWG+mv1NKVc0e0CZ3YFmA0nASKyzlF0PvCoiyxtZ\n", "oDeBp2yvC0TkkC1YfCIi/evbVwPBSZ4YENW5WzyW4dPr3FBzNz5E1BX3NOpGm5q6lj9NuREpLyGg\n", "fSxUVlBRkANBwVBWXG85gkNCePihh7nttplOA17uxod4ecWzDc5N7K3BYTpSWbVkbmsjEJFHgb8D\n", "/8A6ynheE4JAInAG8CUQJyKHbKsOo2MSGqWpff3rq75YtuQRh33ry4sKnQ4wq3286TNuoVfSAP50\n", "7Z8IDAqk/TlX0ePmF+kwbBymXShUljst2+DBg9m0aRNFJ05w220zAef9/asmtlmYMo+A4DCfDw7z\n", "xbSCSrldQ8mIgEdcWVbP/hFYq4WutH3Or7U+z8l+U4E0IC0hIaGpOZfaHEcJ3RpKmubKPo6SzSX2\n", "7S9x1zwoPe/aVP2Ku+ZBie3ao87xLOGdpP2wcSc/h3WUdt0HCpg6CeGqXt26dZP169dLRUWF03LX\n", "lwBv2vQZEhgR5dMEcs6uUWLf/l4rg1LO4GLSOVdu5N84WPadSwe39jB6D7jdbtlPWNsOALoCPzV0\n", "HM0+WlNjM4Q29WblMItoRJSAkcCOXauziVYdLygmQXretUlir0wW0y7UaQAI6BAngPTs06/ZN213\n", "ZEtt7vkbG5iV8pZmBwJgGvA/4ATwnd1rN5Da4IHBYB2V/Hit5UuAu23v7wYWN3SsthgIGrqBNfUG\n", "52g/Y7FIwuw3agSChNlviLFYXD+esUhASHjNX/2hHaw3dWOxpo3GSM+7NknXG552+CQQEBElURdP\n", "l85XLZCg6ITqm+a06TN8ejNvLl8HI6WccTUQ1Jd9tAPQCWsD8d12qwpEJLf+CqfqQWif24JJVfeQ\n", "e7G2E6zHmrhuL3B1Q8dra43FDfU0cbT+2HtPEN4ugJysw04HTzk7brAFAn57clrIwvRPyf98DeX5\n", "h0ns249RF49g8/sf1jswq3ajaGH6p+R9upKYy2bVmEM46sIbCR84nMx191G8xzYA3RgiTh9Fx+GT\n", "Kcv8hZzNT9Dx/GsJHzjcOuDsjUU1JqvXXjdKuYc7ew2dA2wXkQLb5/bA/4nIl24pqQvaWiBoqKeJ\n", "s/U57z5JtxufcXqzdLaf/cTv5QXZ5H/+So0bePZbSwi3mwTe0bFr91Y68MI0Ik+/hPZDx9Q4V+4H\n", "zxI18mayNz5CZXEBYadcSNHub7AEBlOef9hpl9Ced77l8FoopZrObb2GgGeA43afj9uWqSZqqKeJ\n", "s/XlRzOrB3yFXXQLySkL6hy3vCCbgy9OZ+/iKzj44nTKC7LJzjxYPT1i7vvP1MkEGjN6DkU7ttZ7\n", "7OjYLhx8YRp7HxlNxtPXUZ6zn7yPXqDk8M4aZSzL2U/2G4uYet0kXnrxJSr2fI2UnKD8aCaWkHBC\n", "+w2rDgJgG3AWFe/0WiilPM+VQGDE7rFBRCrRSe+bpaEuoPWN0C1M/5SDL04nc10ye/fuq9ENNDq2\n", "C/mfv1KdKiJqxM3kf/4K0bFdmDhxgvUXdkWJwyBTlpNR47P9jTg1dS3HS8qJOP0S2sX1oaIgu3pd\n", "/mev1ChjQEgYq15Ywbm//jV33ptMcUE+AeGdiL7sNmLH3Mvx794n77NXTqaZfmsxof2GOb0WrtCR\n", "vUo1jyuBYJcx5i/GmCDbayawy9MFa8sayonvaH32O8sISTitRk6gzn+4r0Z6CUd5/2Mum4WxnPzP\n", "XF+Qsf9sfyOefdfdVASFkf/pSkozd9bYt3j31xTt/a66jJ06dABg2qw5WIZPrzMRTezoORR8s4l9\n", "j44l+53HqSw8iuz8vMnzA7g75YZS/siVNoLOwHLgQqy9P7YAt4nIEc8Xz6qttRFAzbz9jhpoa+f1\n", "LzheSHlACNGX3uq0bcGVUccO00A4aSPo378fycnJvPfee06/hwkOQ0qKCIqJp/2v/kju5sfp2TvJ\n", "8ajgD5+l63XL2ffoWGJGzyYgvFOzs4jqyF6lnHPnyOIjInKNiHQWkTgRmeDNINBSNbc6oqqqprKi\n", "gt07fqxz47Nff+Tgfl545inK8w87rNbZs/NnUlPXujTqeOLECdXtBfsfu5LQtFVMnTyBqKxt1Z/n\n", "3jGTf/zj7wwdOtRpEAjucQqW8E5EXzyDnne9RbcbniYwMoaevZOctnGU5WTYnj7iCQjvxIktTzHq\n", "4hHNSiWtI3uVar76uo/eKSKLjTFPYn0SqEFE/uLpwlVpaU8Evko0Vl9votAgw6SrxrLmbxuaXK6d\n", "O3eSkpLC2rVrcfbvIqTXWXQ8/08Ed+nrtCdTcsoCp+WkvITywjwS+1i7rTanvPVdE30iUMo9TwQ/\n", "2P6mYU0RUfvlt5JTFhB20S016uId9bRxN0dtBzmbn6DjeZMIu+gW/r7hzTq/9u1vqvU9xWzdupUB\n", "AwaQmprqNAh0vmYRcVfPJ7hLX8DWkyn/MPuWXsmRfzxQfS5H5czauJiOwYaVzz6JVFaye8ePbH7/\n", "w2ZfR52DWKnmc9r7R0Tesv3V+Ylr2btrB/FjHFRHrPdsdUTVDb0qu2dQdI/qgVlSUc6+Q9YZxRz9\n", "Eq49jWRRRjrX3Xwrk/40icQ+/VgwL5l+/frxww8/1NivV6/eHM7Np5R2GEyNdSUZ6QTFxBM14mZC\n", "01ZVl8/RvMCrV/y1RkBKTlnAnp0/k9DM66hzECvVfPVVDb2FgyqhKiJyhacKVVtLqxrydXVEfVVE\n", "PWLaOyyD07TOtgFgJ7Y8xZTxf2T5cmti2UGDBvHAAw9w2+y7KB56HRWFeeR/trrGFJLZm58gfOAF\n", "yM7PXa7OsQ9IVefWah2lPMMdVUOPAkux5hYqAp63vY4Dv7ijkK2Vr6sjFqbMI2vj4jpVRB3OHe+0\n", "kXTvrh0Ede7F0X//jcqSQsDWgJubUV0l8+bb7/LHP/6R1NRUtm3bxpgxY9i3eyfBPQYSPnB4jSkk\n", "j/xjARXHjhCVta1Rdfr21Wodfj2OnM1PaLWOUj7mSvfRtNoRxdEyT2ppTwTQcPdPT4vt0p38EqH8\n", "aCZB0T3oMGxcdXfM2r+mi4qK6B7fk/zjhUjJCTqcO56Ov5lY3aWz2w1PO53Qxd1PP7W7uBamf8rR\n", "f62jLGc/iX376QT0SrmRO1NMhBtjetsduBcQ3pzCtQUNdf9srMZ2R3186RJCgwxx4xbS9brl1d0x\n", "7X9Nl5aWMmXK9URERJCXk4WUnADg2FdvcOLnf1ufIoaNA5yP5nX300/tLq7hA4cTNfJmEvv2c8t1\n", "9BYdzazalIbSkwKXAvuAT4BPgT3AJa6kNnXXqy2mobbX2Jz29qmhg8IiBWNqpD8uKyuTlStXSmxs\n", "rNM5AQgIrJFS2qXzuSHNclvI398WvoPyD7hrYhrrsQgGTre9gl3Zx52vth4IGjNxjLPJYqZNnyEV\n", "FRWybt06GTBggNMAYALbiQmOkOi4bi7f3BsbCDw110JLobOSqdbCbYEACAOSgedtn5OAy105uLte\n", "LS0QuPtGhzHWiV2MRYJiEiRm9BynE8c4ugl1HrdILEHB0rNnz3oDQPuzr5Tu01cLxuLSpDRV38WV\n", "X79V3xljfD59pKc1Z6IfpbzJ1UDgShvBy0ApUJUi8gCwsJE1UG1GQ0nOGpsELTV1LYHhnYgaaZcx\n", "9LPV5H/xqsM6+9opFYr2/pf8z1dTWVbC3r17657AEkDEGb+j29Tn6fTb6ynPzSCwQ5zL2T1dGTxn\n", "/52DouKJvny21wfbeZMrqTyUak1cCQR9RGQxUAYgIieg1sgiP9LQjbGxo46TUxbUuXFGj5pJ4beb\n", "WJgyr06jZHRsl+qbUMWJo2T9fT6lB3+qc1xjDOeddz7BEZ0I738uAWEdqjOEBlYUu9zY60ouH/vv\n", "XJab0eZz//i6+7BS7ubKvAKlxphQbIPLjDF9gBKPlqoFa2hUcWNHHTvbvrKkCKDOaODC956g+O8L\n", "CIjoZJ2opl0olJfW3D/+VAKOH+bPf/4zfwZmzbmLfYcOYIJCiI7qxONLH3e5d07P3kkUZaTX6D5a\n", "+9ev/XcIiu5BSQPbt3Y6mlm1Na48EdwPvAvEG2NSsaahvtOjpWohHHURbOqkMs5uhE6375Pk8Oki\n", "aMAFWIJDib70VhLueJ2Yy26r3i+079l0nbKcLhMeIvKSWSSnLGDixAkcObgfkUoqS0+QdfhAo25Y\n", "rvz6tf8OHYb5xyAxd3cfVsqX6g0ExhgD/AhcCVwHvAoMEZFPPF4yH3NW1z/q4hGNnlSmvhthfdvv\n", "3bWDgMhost9+nKJd1jx/RT9vJWb0nOrgENZvGO3PuYqA9nF0/sM82nW2DvlwV3WMo7TVtUcS23+H\n", "sP7nEjbwArLfWMT+pY63V0q1MA21JgP/c6XV2ZMvX/Qaqq+LoLt7DTna/sCBAxLZoaNgCRBA2sX1\n", "kYQ73xKMcdhjBWN82p2xtXcJVaotwsVeQ66kmFgFPCUiX3k+LDnmixQTrsz25QnZ2dk8/PDDLF++\n", "nLKyshrrOpw7gWNpb9J57Nw6KR+y31hEzJi5zZ4fwdepM5RS7uNqiglXGot/BUwyxuwBCrH2GBIR\n", "Oa3evVo5VxpJ3eno0aMsXbqUZcuWcfz4ccfbfPl3Ik+7mJzNT9TIAnpiy1NMvf46Nr+/qlmNl45S\n", "VU+bNQdAg4FSbZgrTwQ9HS0XEQed1j3DF08EnpyFzP5Xd3xiH84ZciYffPA+eXl5DrcP7BBH2IDz\n", "OLHzS7rf+IzHErV17haPZfh0TQutVBvR7CcCY0wIcDPQF/gf8KKIlLuviC2bp7oIVgWY0AtupmPC\n", "PjL+9Rrr169zuG1ARBQdfn0NEaeNBAzH/vM6YE3UFhDeidyND7ntBp2aupasQwdIcDQGwMMT7iil\n", "fKu+iWnWYR1E9jkwCtgrIjO9WLZqLTENdVMl9u1PbtQpnPjxn1QUZDncxmIJIOy0i+l04Y1YgoKB\n", "kxPPVM0PnL35CSqOHUEqK91Srl5JA8jIPkb0pbfqE4FSbYQ72ggGisiptoO9CPynkQV4CbgcOCIi\n", "g2zLooB1QCLWLKZXi4jj+pA2au+uHQSXBDoMAu3bt2f27Nl07dqN2++dR+nBn07OBvb2UsCwb+mV\n", "BEX3IHzgBURlbXNruaJG3Van/SFr42JWr/ir286jlGp56gsE1V1WRKTcOqSgUVYCTwGr7ZbdDWwR\n", "kYeNMXfbPt/V2AO3Bs563yT26cfRhHNrDiILCKJD+0h27dxBVFQUAKGhodXVUjFx3Qiikg6/m1Oj\n", "vWLhsiVuK2/P3kkURcZUz0JWlmPNSRQVGaYNxUq1dc76lQIVwDHbqwAot3t/zJW+qVh/+X9v9/kn\n", "oKvtfVfgJ1eO09KyjzZkzZpUiYjpKp2vWlAnA2dVNs92XZKEgEAJ6/drCY+Oa3ZqZ3eUWXPsK9W2\n", "4M75CJr6chAI8u3eG/vP9b1aWyDo0j1egmITJWLwpQ4HeK1ZkyrdE3rVmVDG13RQmFJti6uBoMHu\n", "o81hjEkENsnJNoJ8Eelotz5PRDo52XcqMBUgISHhLIcplluYtLQ0kpOTee+996wLLAF0u+k5gjp2\n", "8cpgNKWUsufOOYvdKdMY0xXA9veIsw1FZIWIDBGRIbGxsV4rYFNs376dK6+8kqFDh54MAgCVFRz9\n", "wjoPQVvLwKmUaju8HQg2ApNt7ycDb3r5/G61c+dOJk2axKmnnsqGDRscblNReJSi3d+2yQycSqm2\n", "wZUUE01ijHkVuACIMcZkYE1n/TCw3hhzA7AXuNpT5/ek/fv388ADD/DSSy9R4aSqZ8CAAeQXFJK5\n", "91vCAo7zmGbgVEq1UB57IhCR8SLSVUSCRKSHiLwoIjkicpGIJInICBHJ9dT5PSEzM5PbbruNvn37\n", "8vzzzzsMAkOGDOG9994jPT2dQxn7fJqv3tF8CkopVZvHngjamsWLFzN//nxOnDjhcH1Qu3bMmD6D\n", "xx5bShPGXLidJpBTSrnK220ErZbFYnEYBAIio4n+3e10GjuPF1PXsXbtqz4oXV2NnTtZKeW/PNp9\n", "1F1aQq6hoqIi+vTpw6FDhwAICAwk/Iwr6HjBZIwlAGhZeXl8NZ+CUqrlaKndR1u00tJSfvrpJ4fr\n", "QkNDSU5OJi4ujuXLl1NRUUHH4ddWBwFw3/SQ7tDYuZOVUv6rzQaCxjSUVlRUsGrVKgYMGMCll15K\n", "aWmpw+1uvPFGfvnlF2699VYS+/Rr0Tfaxs6drJTyY64MP/b1q7EpJlzNm1NRUSHr16+XAQMGCFD9\n", "+utf/9rgOaZNnyEBIeGCMRIUnSDth41zmpvHV6kbNGWEUv6NlpBryF2vxgaC+iaeFxGprKyUTZs2\n", "yeDBg2sEgKpX165dpbCw0OnxHQWawIgomTZ9hkvbeiKZm970lVK1uRoI2mRjcX0NpVs+/JC5c+ey\n", "detWh/sGBQVx0003sWjRIjp27Ohwm15JAygaMtmlCVwas21TeXJaTaVU6+XXjcWOGkoLtr1LcHAI\n", "F154ocMgYLFYuO666/j555/561//6jQIgG1yGUdTOjpoKG7Mtk2lXUWVUs3RJgOBfUNpyaEdHHpl\n", "NnkfPktxkePBYFdffTXbt2/n5ZdfJjExscHjN6ZHjjd673gj2Cil2q42GQgmTpzAM8uWUPbh4xxe\n", "PYvSg46rYEaPHs22bdtYt24dAwYMcPn4jemR443eO9pVVCnVLK40JPj61dSJadLT08VisdRpDL7o\n", "ootk69atTTpmlcY0zursYkopX8Cfew3Zu/baa6sDwLBhw+Sjjz5q8rFacs+cllw2pZRvuBoI2mSv\n", "IXu7d+/mmmuuYd68eVx22WVNTginPXOUUq2Nq72G2nwgcBf7bqCF6Z9ydOs6ynL2ExQawcsrntVg\n", "oJRqcfy6+6gnVPXMKUz/lPzPVhM14mYS7thA1BX3cN3Nt2IsFs35r5RqlTQQuKiqZ87RreuIHjWz\n", "Rp/96MtnExQVT9GQyUybNUeDgVKqVdFA4KKqbqBlOfsd9tkvy83QgVxKqVZJA4GLqsYmBIVGOOyz\n", "HxTdA9CBXEqp1kcDQSNMnDiBl1c8W2eAWM7mJ+gwbBygA7mUUq2PzlncSFW9g5JTFrB33Q4swaGE\n", "n3E5Yf3PrR41vHTZEh+XUimlXKdPBE0wceIEdu/4kcrKCla9sIKorG3sf+xKQtNW6bgCpVSro+MI\n", "lFKqjdJxBEoppVyigUA1WmPmg1ZKtXzaWKwaxT7nUvyYgRRlpDNt1hwAbRtRqpXySRuBMeZS4Akg\n", "AHhBRB6ub3ttI2g5vDH1plLKPVpsG4ExJgD4KzAKGAiMN8YMrH8v1VLobGhKtT2+aCM4G9gpIrtE\n", "pBR4Dfi9D8qhmkBnQ1Oq7fFFIOgO7Lf7nGFbploBb0y9qZTyrhbbWGyMmQpMBUhISPBxaVSVGiOr\n", "1++gZ+8kluogOqVaNa83FhtjhgEpInKJ7fM9ACLykLN9tLFYKaUar8U2FgNfAUnGmF7GmHbANcBG\n", "H5RDKaUUPqgaEpFyY8wtwHtYu4++JCLbvV0OpZRSVj5pIxCRd4B3fHFupZRSNWmKCaWU8nMaCJRS\n", "ys9pIFBKKT+ngUAppfycBgKllPJzGgiUUsrPaSBQSik/p4FAKaX8nAYCpZTycxoIlFLKz2kgUEop\n", "P6eBQCml/JwGAqWU8nMaCJRSys9pIKglNXUtvZIGYAkIoFfSAFJT1/q6SEop5VEtds5iX0hNXcu0\n", "WXMIu+gW4scMpCgjnWmz5gDonLxKqTbL63MWN4W35izulTSAoiGTCel5WvWy4r3fEZq2it07fvT4\n", "+ZVSyp1a8pzFLdbeXTsI7jGwxrLgHgPZu2uHj0qklFKep4HATs/eSZRkpNdYVpKRTs/eST4qkVJK\n", "eZ4GAjsLU+ZxYstTFO/9Dqkop3jvd5zY8hQLU+b5umhKKeUx2lhsp6pBODllAXvX76Bn7ySWLlui\n", "DcVKqTZNG4uVUqqN0sZipZRSLtFAoJRSfk4DgVJK+TkNBEop5ec0ECillJ9rFb2GjDFZwF5fl6OZ\n", "YoBsXxeiBdHrcZJei5r0epzU3GvRU0RiG9qoVQSCtsAYk+ZKNy5/odfjJL0WNen1OMlb10KrhpRS\n", "ys9pIFBKKT+ngcB7Vvi6AC2MXo+T9FrUpNfjJK9cC20jUEopP6dPBEop5ec0EHiAMeYlY8wRY8z3\n", "dsuijDEfGGN22P528mUZvcUYE2+M+dgYk26M2W6MmWlb7q/XI8QY8x9jzH9t12O+bblfXg8AY0yA\n", "MeZbY8wm22d/vhZ7jDH/M8ZsM8ak2ZZ5/HpoIPCMlcCltZbdDWwRkSRgi+2zPygH7hCRgcA5wAxj\n", "zED893qUABeKyOnAYOBSY8w5+O/1AJgJ/GD32Z+vBcBvRWSwXbdRj18PDQQeICKfAbm1Fv8eWGV7\n", "vwoY49VC+YiIHBKRb2zvC7D+D98d/70eIiLHbR+DbC/BT6+HMaYH8DvgBbvFfnkt6uHx66GBwHvi\n", "ROSQ7f1hIM6XhfEFY0wicAbwJX58PWxVIduAI8AHIuLP1+Nx4E6g0m6Zv14LsP4o+NAY87UxZqpt\n", "mcevh85Q5gMiIsYYv+quZYyJAP4B3CYix4wx1ev87XqISAUw2BjTEdhgjBlUa71fXA9jzOXAERH5\n", "2hhzgaNt/OVa2PmNiBwwxnQGPjDG/Gi/0lPXQ58IvCfTGNMVwPb3iI/L4zXGmCCsQSBVRF63Lfbb\n", "61FFRPKBj7G2J/nj9TgXuMIYswd4DbjQGLMG/7wWAIjIAdvfI8AG4Gy8cD00EHjPRmCy7f1k4E0f\n", "lsVrjPWn/4vADyLymN0qf70esbYnAYwxocBI4Ef88HqIyD0i0kNEEoFrgI9EZBJ+eC0AjDHhxpjI\n", "qvfAxcD3eOF66IAyDzDGvApcgDVzYCZwP/AGsB5IwJpJ9WoRqd2g3OYYY34DfA78j5P1wPdibSfw\n", "x+txGtYGvwCsP8TWi8gCY0w0fng9qtiqhmaLyOX+ei2MMb2xPgWAtdp+rYgs8sb10ECglFJ+TquG\n", "lFLKz2kgUEopP6eBQCml/JwGAqWU8nMaCJRSys9pIFBtijEm2pa5cZsx5rAx5oDd53ZuPM8IY8xR\n", "23F/MMbMdbJdvDFmnbvOq5QnaPdR1WYZY1KA4yLyaK3lBuu//UqHO7p27BHALSIyxpY+4ztgrIj8\n", "126bQBEpb+o5lPIWfSJQfsEY09c2J0IqsB2IN8bk262/xhjzgu19nDHmdWNMmm3ugHPqO7Ytm+g3\n", "QB9jzI3GmDeMMR8D79nOu8123EBjzDJjzPfGmO+MMdNty4caYz61JRrbbIyJsy2fZSvzd7bUC0p5\n", "hCadU/5kAHCtiKQZY+r7t78cWCwi/7ZlTN0EDHK2sTEmFmtOmLnAeVgzrA4WkTxjTF+7TacB3YDT\n", "RaTCNuFIMPAEcIWIZBtjJgIPAFOxZuXsKSKlVWkplPIEDQTKn/wiImkubDcC6G+XIbWTMSZURIpq\n", "bfdbY8y3WFNnPCAiPxljzgPeF5E8J8d93JZ9FBHJNcYMBk7BmnoYrKknMmzbbwfWGGPexJqiRCmP\n", "0ECg/Emh3ftKwNh9DrF7b4CzRaS0geN9LCKOJgkpdLDMGQN8JyLnOVh3CTAcuAK41xhzWlUQUcqd\n", "tI1A+SVbQ3GeMSbJGGMBxtqt/hCYUfXB9qvdHT4AbjbGBNiOGwWkA92NMWfblrUzxpxi26aHiHyE\n", "tbf2CWcAAACKSURBVIooBghzUzmUqkEDgfJndwHvAf/iZHUMWIPAubZG2nTgJjed7zmsM0x9Z4z5\n", "L9YskiXAH4HHjDHfAd8Cv8KWfdK27BvgUdtUn0q5nXYfVUopP6dPBEop5ec0ECillJ/TQKCUUn5O\n", "A4FSSvk5DQRKKeXnNBAopZSf00CglFJ+TgOBUkr5uf8Hl4ilFiTAVnsAAAAASUVORK5CYII=\n" ], "text/plain": [ "" ] }, "metadata": {} } ], "execution_count": 17, "metadata": { "inputHidden": false, "outputHidden": false } }, { "cell_type": "markdown", "source": [ "## 5 POINTS BONUS: Polynomial Combination of Features\n", "Any row of the feature matrix (`X_train` or `X_test`) can be represented as $(1, x_1, x_2, \\dots x_{13})$. \n", "For any such row, once can create a new representation (and hence richer feature set)\n", "$$(1,x_1,x_2,\\dots x_{13}, x_1^2, x_1 x_2, \\dots x_1 x_{13}, x_2^2, x_2 x_3,\\dots x_{13}, \\dots, \\dots x_{13}^2) $$\n", "Intuitively, having cross terms like $x_ix_j$ captures how features $x_i$ and $x_j$ interact.\n", "\n", "Create matrices `X_train_2` and `X_test_2` from `X_train` and `X_test` where each row of the original is expanded to include these interaction terms.\n", "\n", "As an example, the matrix `[[1, 2, 3], [1, 4, 5]]` should transform to `[[1, 2, 3, 4, 6, 9], [1, 4, 5, 16, 20, 25]]`.\n", "\nNow solve the new regression problem. Note that the weight vector in this case will not be $14$ dimensional." ], "metadata": { "inputHidden": false, "outputHidden": false } }, { "cell_type": "code", "source": [ "# 3 POINTS\n", "# ACT (17) Create X_train_2, X_test_2.\n", "from sklearn.preprocessing import PolynomialFeatures\n", "pf = PolynomialFeatures(2)\n", "X_train_2 = pf.fit_transform(X_train)\n", "X_test_2 = pf.transform(X_test)\n", "\n", "# 2 POINTS\n", "# ACT (18) Choose your favorite way to solve this regression problem.\n", "w = np.linalg.pinv(X_train_2).dot(y_train)\n", "\n", "print(\"With Polynomial Features\")\n", "DebugInfo(w, X_train_2, y_train, X_test_2, y_test)\n", "TvF(w, X_test_2, y_test)\n" ], "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "With Polynomial Features\n", "Range of Target 5.0 50.0\n", "Train RMSE Loss 2.2752104443\n", "Test RMSE Loss 3.94182331871\n" ] }, { "output_type": "display_data", "data": { "image/png": [ "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\n", "54Ise34+A886KyTBwooCGmNME1FaWkqXLl0oLv4+dUxEGD58ODk5OVxwwQWICN17nUJZ/2uOKQoY\n", "t2Ep3275wtuhvWrO02ONMabF2rp1K2vWrPH6Wnx8PDfccAMAycnJTJ8+nW+++YaXX36ZCy+8EFcP\n", "TKPXqwr3rCdjjGnxVJW1a9cyb948Vq1aRfv27dm+fTvR0dHH7Dt58mROPvlksrOziY+P93q8rB69\n", "KNu52eOOIpSznuyOwhhjQuTQoUMsWLCAPn36MHjwYF555RVUlb179/L88897fU+3bt246aabfAYJ\n", "cNarKl0336MoYOm6+cyaeVdIPofdURhjTJBt2bKF+fPn88QTT3DwoPeFhObNm0d2dvYJHb+x61VZ\n", "oDDGmCCoqanhtddeY968ebz22mt+9z399NOZMGECNTU1REScWMdOdvaYRitkaF1PxpgWqbHWxT5w\n", "4AB//etf6d27N7/85S99BonIyEhGjx7Nu+++y4YNG7j22mtPOEg0tubRSmOMOQ6162KX9b+Grr95\n", "kbL+1zBx2oygB4ulS58kJTWVadOm8fXXX3vdp3379tx1113k5eXx9NNPc9ZZZ7lnLzVEYwVCsDwK\n", "Y0wLFKw8A39qg1FV206UbT32++eMM84gJyeHK664gpiYmKCcs+65b5w4hSpHLFUH9hKZmEFkdTlL\n", "Fs4PSZlxCxTGmBYnwuGg629eRBzfD8NqdRU7/nIpNdXVx3284uJiEhMTPbqKaoNRRFxbdj+eU3ti\n", "EhISeHPtG5xxxhkN/hy+pHfoTHFZJWlDp7kzswtenUtyXBT5e3YFfBxLuDPGtFrBWhf7f//7Hzff\n", "fDOdO3dm9erVHq/VJr1Ft+9O/KnnkHh2Np1v/gelJYdDGiQACouKSRs6jdisvu71KNKGTqOwKDSL\n", "gVqgMMa0OA3JM6iqquLFF1/k5z//OX379mXx4sWUlZUxb948j/3qBqP0EbeRNPAqqoq/C1nSW11a\n", "We41M1sry0NyPgsUxpgWJzt7DAvnziZuw1J2/OVS4jYsrXeZ0IKCAv785z/To0cPLrvsMt566y2P\n", "19esWcOXX37pft7YSW91pXfs7PWOKb1j59CcUFWb/aNfv35qjDEnYuPGjXrddddpTEyM4lx10+uj\n", "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\n" ], "text/plain": [ "" ] }, "metadata": {} } ], "execution_count": 18, "metadata": { "inputHidden": false, "outputHidden": false } } ], "metadata": { "kernel_info": { "name": "python3" }, "kernelspec": { "name": "python3", "language": "python", "display_name": "Python 3" }, "language_info": { "name": "python", "version": "3.6.1", "mimetype": "text/x-python", "codemirror_mode": { "name": "ipython", "version": 3 }, "pygments_lexer": "ipython3", "nbconvert_exporter": "python", "file_extension": ".py" }, "nteract": { "version": "0.3.4" } }, "nbformat": 4, "nbformat_minor": 4 }