{ "metadata": { "name": "lab0_gprs13" }, "name": "lab0_gprs13", "nbformat": 2, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": true, "input": "import sys as sys\nimport numpy as np\nimport pylab as pb", "language": "python", "outputs": [], "prompt_number": 48 }, { "cell_type": "code", "collapsed": true, "input": "# Loading in data: the 0:1 and 1:2 ensure we get column vectors\n# for x and y.\nolympics = np.genfromtxt('olympicMarathonTimes.csv', delimiter=',')\nx = olympics[:, 0:1]\ny = olympics[:, 1:2]", "language": "python", "outputs": [], "prompt_number": 49 }, { "cell_type": "code", "collapsed": false, "input": "print(x)\nprint(y)", "language": "python", "outputs": [ { "output_type": "stream", "stream": "stdout", "text": "[[ 1896.]\n [ 1900.]\n [ 1904.]\n [ 1908.]\n [ 1912.]\n [ 1920.]\n [ 1924.]\n [ 1928.]\n [ 1932.]\n [ 1936.]\n [ 1948.]\n [ 1952.]\n [ 1956.]\n [ 1960.]\n [ 1964.]\n [ 1968.]\n [ 1972.]\n [ 1976.]\n [ 1980.]\n [ 1984.]\n [ 1988.]\n [ 1992.]\n [ 1996.]\n [ 2000.]\n [ 2004.]\n [ 2008.]\n [ 2012.]]\n[[ 4.47083333]\n [ 4.46472926]\n [ 5.22208333]\n [ 4.15467867]\n [ 3.90331675]\n [ 3.56951267]\n [ 3.82454477]\n [ 3.62483707]\n [ 3.59284275]\n [ 3.53880792]\n [ 3.67010309]\n [ 3.39029111]\n [ 3.43642612]\n [ 3.20583007]\n [ 3.13275665]\n [ 3.32819844]\n [ 3.13583758]\n [ 3.0789588 ]\n [ 3.10581822]\n [ 3.06552909]\n [ 3.09357349]\n [ 3.16111704]\n [ 3.14255244]\n [ 3.08527867]\n [ 3.10265829]\n [ 2.99877553]\n [ 3.03392977]]" } ], "prompt_number": 50 }, { "cell_type": "code", "collapsed": false, "input": "pb.plot(x, y, 'rx')", "language": "python", "outputs": [ { "output_type": "pyout", "prompt_number": 51, "text": "[]" }, { "output_type": "display_data", "png": "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\nPPOMtmzZoocffjhm2fjx41VdXa3U1FTt3btXTz31lE6fPh0zxvgEAAAJ57M20vjOnTt68sknVVBQ\noFWrVrX5gEOHDtXx48eVnp7uWJEAgM5rtYdvZlq6dKmys7MfGPa1tbXRGXxVVZXMjLAHABdqtaVT\nWVmpXbt2aezYsQoEApKkjRs36ty5c5KkoqIi7dmzR1u3blVKSopSU1O1e/furq8aANB+HW3+f+97\n37MBAwbYmDFjovcdPXrUHn/8cRs3bpxNnDjRqqqqzMysrq7OFi5caLm5uTZ69Gh76aWXor9z7Ngx\nGzNmjGVlZdnKlSs7Wo4j9X/44Yc2ZcoUy83NtTlz5tjVq1ejyzZu3GhZWVk2cuRIe++99xJaf3tq\n37dvn02YMMFyc3NtwoQJduDAgYTW3t76G33yySfWp08fKykpSbr6//73v9uUKVMsJyfHcnNz7csv\nv0ya+t227p47d86CwaBlZ2dbTk6ObdmyxczMPv/8c5sxY4YNHz7cZs6caVeuXIn+jpvW3fbW7/T6\n2+HAP3TokJ04cSLmn2batGn27rvvmplZRUWFBYNBMzPbvn27LVy40MzMbt68aZmZmfbJJ5+Ymdnj\njz9uR48eNTOzgoIC27t3b0dL6nT9EydOtEOHDpmZ2bZt2+znP/+5mZmdOnXK8vLy7Pbt2xYOh23Y\nsGFWX1+fsPrbU/vJkyft4sWLZmb2r3/9y/x+f/R3kuG1b7RgwQJ79tlnYwI/Geq/c+eOjR071v7x\nj3+Ymdnly5ft3r17SVO/29bdixcv2smTJ83M7Nq1azZixAj797//bWvWrLGXX37ZzMw2bdpkP/7x\nj83Mfetue+t3ev3t1D4/4XA45p9m4cKF9oc//MHMzN544w1btGiRmZm9++67NmfOHLt7965dunTJ\nRowYYVeuXLELFy7YqFGjor//+9//3oqKijpTUqfq79evX/Tnc+fOWXZ2tpk1zBA2bdoUXTZr1iz7\n61//mtD64629qfr6ektPT7fbt28nzWtvZvbWW2/ZmjVrrLi4OBr4yVJ/eXm5Pffcc81+P1nqd+u6\n22jevHm2f/9+GzlypH366adm1hCqI0eONDN3rrtNtVV/U06sv46eS2fTpk364Q9/qEcffVRr1qzR\nxo0bJUmzZs3SI488osGDByszM1Nr1qxRWlqazp8/r4yMjOjv+/1+nT9/3smS2iUnJ0d/+tOfJEl/\n/OMfVV1dLUm6cOFCTJ0ZGRk6f/58s/sTWf+Dam/qzTff1IQJE9S7d++kee2vX7+uX/3qVyouLo4Z\nnyz1nz59Wj6fT9/+9rc1YcIEbd68WVLy1O/mdffs2bM6efKkJk+erNraWg0cOFCSNHDgQNXW1kpy\n97obT/1NObH+Ohr4S5cu1auvvqpz587plVde0dKlSyVJu3btUl1dnS5evKhwOKySkhKFw2Enn9oR\n27Zt02uvvaaJEyfq+vXr+spXvpLokuLWVu2nTp3Siy++qNLS0gRV2LoH1V9cXKzVq1crNTXV1cdz\nPKj+u3fv6oMPPtAbb7yhDz74QG+99ZYOHDggn8+X4IpjPah+t667169f14IFC7Rlyxb17ds3ZpnP\n53Pd63u/9tbv1Pob14FX8aqqqtKf//xnSdIzzzyjZcuWSZIOHz6s+fPnq1evXurfv7/y8/N1/Phx\nTZ06VTU1NdHfr6mpkd/vd7Kkdhk5cqTee+89SQ0zs/LyckkN755NZ8w1NTXKyMiQ3+93Tf0Pqr2x\nrqefflo7d+7U0KFDJclVtUvN66+oqJDU8D/15ptv6kc/+pEikYgeeughffWrX9XTTz/t6vobX/8h\nQ4boG9/4RnRX5dmzZ+vEiRN67rnnXF1/4+vvxnX3zp07WrBggRYvXqynnnpKUsOs+NNPP9WgQYN0\n8eJFDRgwQJI719321N9Ym1Prr6Mz/KysLB08eFCSdODAAY0YMUKSNGrUKB04cECSdOPGDR05ckSj\nRo3SoEGD9Mgjj+jo0aMyM+3cuTP6AiTCpUuXJEn19fVav369li9fLkmaO3eudu/erdu3byscDuvM\nmTOaNGmSq+p/UO2RSESFhYV6+eWX9bWvfS06fvDgwa6pXWpe//e//31J0qFDhxQOhxUOh7Vq1Sqt\nXbtWK1ascNVr31L9ja//rFmz9M9//lN1dXW6e/euDh48qJycHNfX3/j6u23dtQccGzR37ly9/vrr\nkqTXX389Wovb1t321u/4+tvRjQ0LFy60wYMHW+/evS0jI8O2bdtmf/vb32zSpEmWl5dnU6ZMsRMn\nTpiZ2a1bt2zRokU2ZswYy87ObnHXumHDhtkLL7zQ0XI6Xf/vfvc727Jli40YMcJGjBhhP/nJT2LG\nb9iwwYYNG2YjR46M7omUqPrbU/svf/lL69Onj40bNy76denSpYTV3t76myouLrZf//rX0dvJUv+u\nXbssJyfHxowZE937Ilnqd9u6+/7775vP57O8vLzo//PevXvt888/t+nTp7e4W6ab1t321u/0+tvm\nqRUAAD0DV7wCAI8g8AHAIwh8APAIAh8APILABwCPIPABwCP+Cy0iI/GrhN2fAAAAAElFTkSuQmCC\n" } ], "prompt_number": 51 }, { "cell_type": "code", "collapsed": true, "input": "m = -0.4\nc = 80", "language": "python", "outputs": [], "prompt_number": 52 }, { "cell_type": "code", "collapsed": false, "input": "# This is an iterative solution for \n# finding the gradient and bias. \n# Notice how slow it is!\nxTest = np.linspace(1890, 2020, 130)[:, None]\nfor i in arange(100000):\n m = ((y - c)*x).sum()/(x*x).sum()\n c = (y-m*x).sum()/y.shape[0]\npb.plot(xTest, m*xTest + c, 'b-')\npb.plot(x, y, 'rx')\n", "language": "python", "outputs": [ { "output_type": "pyout", "prompt_number": 53, "text": "[]" }, { "output_type": "display_data", "png": "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\nYOATEZnE/wd5wHVD1oNJ2QAAAABJRU5ErkJggg==\n" } ], "prompt_number": 53 }, { "cell_type": "code", "collapsed": false, "input": "print(m)\nprint(c)", "language": "python", "outputs": [ { "output_type": "stream", "stream": "stdout", "text": "-0.0129806477465\n28.8952457368" } ], "prompt_number": 54 }, { "cell_type": "code", "collapsed": true, "input": "Phi = np.hstack([np.ones(x.shape), x, x**2])", "language": "python", "outputs": [], "prompt_number": 55 }, { "cell_type": "code", "collapsed": false, "input": "#This is the multivariate linear regression solution. \nw = np.linalg.solve(np.dot(Phi.T, Phi), np.dot(Phi.T, y))\nprint(w)", "language": "python", "outputs": [ { "output_type": "stream", "stream": "stdout", "text": "[[ 6.43641952e+02]\n [ -6.42502986e-01]\n [ 1.61109703e-04]]" } ], "prompt_number": 61 }, { "cell_type": "code", "collapsed": false, "input": "xTest = np.linspace(1890, 2020, 130)[:, None]\nPhiTest = np.hstack([np.ones(xTest.shape), xTest, xTest**2])", "language": "python", "outputs": [], "prompt_number": 57 }, { "cell_type": "code", "collapsed": false, "input": "fTest = np.dot(PhiTest, w)", "language": "python", "outputs": [], "prompt_number": 58 }, { "cell_type": "code", "collapsed": false, "input": "pb.plot(x, y, 'rx')\npb.plot(xTest, fTest, '-') ", "language": "python", "outputs": [ { "output_type": "pyout", "prompt_number": 59, "text": "[]" }, { "output_type": "display_data", "png": "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\n" } ], "prompt_number": 59 }, { "cell_type": "code", "collapsed": true, "input": "", "language": "python", "outputs": [], "prompt_number": 59 } ] } ] }