{ "metadata": { "name": "week3_tutorial" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "Psych 216A Tutorial #3: Model Specification" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will cover in detail the following setions of Lecture 3\n", "\n", "1. Section 5, Linear models.\n", "\n", "2. Section 7, Linearized models.\n", " \n", "3. Section 9, Non parametric nonlinear models; nearest neighbours.\n", "\n", "We will cover procedures for fitting these models in future tutorials.\n", "\n", "Written by Franco Pestilli, PhD, Stanford University, April 2012\n", "\n", "Translated to Python by Michael Waskom, June 2012" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%pylab inline" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n", "Welcome to pylab, a matplotlib-based Python environment [backend: module://IPython.zmq.pylab.backend_inline].\n", "For more information, type 'help(pylab)'.\n" ] } ], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "from __future__ import division\n", "import utils\n", "import seaborn\n", "seaborn.set()\n", "colors = seaborn.color_palette(\"deep\")" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "(5) Linear Models" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- When computing the correlation between two variables $x$ and $y$, we are\n", "implicitly fitting the linear model $y = ax + b$ where $a$ and $b$ are free\n", "parameters. We can say that $x$ is an input variable, $y$ is the output\n", "variable, and the model attempts to predict the output variable based on\n", "the input variable. Alternatively, we can say that $x$ is a regressor, $y$ is\n", "the data, and the model attempts to explain the data using the regressor.\n", "\n", "- Linear models can be interpreted as models in which the prediction is a\n", "weighted sum of the regressors. For example, suppose we have a set of\n", "regressors $x_i$ where $i$ ranges from $1$ to $n$.\n", " \n", "- The prediction of a linear model is\n", "\n", "$$y = \\sum_{all i}{w_ix_i}$$\n", "\n", "where $w$ is the weight to apply to $x$ to obtain $y$. For example with three regressors:\n", "\n", "$$y = w_1x_1 + w_2x_2 + w_3x_3$$\n", "\n", "- To see why $y = ax + b$ counts as a linear model, notice that we can\n", "re-write the model as $y = ax + b1$ where $1$ is a constant regressor\n", "consisting of all ones. By constant regressor we mean a vector of all 1s\n", "with the same number of entries (rows) as $x$.\n", " \n", "Then, if we set $x_1 = x$ and $x_2 = 1$, the model can be re-written as\n", "$y = w_1x_1 + w_2x_2$ where and $w_1$ and $w_2$ are free parameters (parameters that are\n", "free to vary). This is to say:\n", "\n", "$y = ax + bx_2$, where $x_2 = 1$\n", " \n", "Hereafter we will show that we can rewrite $y = ax + b$ as $y = sum(hx)$\n", "where $h$ is a set of weights\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# We will simulate a dataset with two variables\n", "# First we create a variable x\n", "x = arange(15)\n", "a = 2 # Scaling, scales y in relation to the same value of x\n", "b = 4 # Additive term, shifts y up in relation to the same value of x\n", "\n", "# We will create a secod variable as a linear trasformation of the first\n", "# one. We double x, we add 4 to each of its elements and add random\n", "# gaussian noise the size as x\n", "noise = randn(len(x))\n", "\n", "# Note that we are effectively using the formula y = ax + b to simulate the data\n", "y = (a * x + b) + 3 * noise" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "# Now we take a look at the relation between these two variables using a scatterplot\n", "plot(x, y, \"o\")\n", "xlabel(\"variable 1\")\n", "ylabel(\"variable 2\");" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "display_data", "png": "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\nMXU8J6YBAIJyfHDXBOSylWvl9f+0p211cKYOGaLMMSMkSRUV1ZbNCwAwj+ODW/opONnDBQCYwPHH\nuAEAMAnBDQCAQQhuAAAMQnADAGAQghsAAIMQ3AAAGITgBgDAIAQ3AAAGIbgBADAIwQ0AgEEIbgAA\nDEJwAwBgEIIbAACDENwAABiE4AYAwCAENwAABiG4AQAwCMENAIBBCG4AAAwSZeVkl19+uS688EJF\nRkYqOjpa27dvt3J6AACMZ2lwu1wubdq0SR06dLByWgAAWgzLl8oDgYDVUwIA0GK4AhYm6RVXXKF2\n7dqpW7duys7O1pgxY+q87vcH5PX6rCqnWYmKipQk+qd/myuxh5P7d3LvEv1HRUUqIsLVpG0sDe4j\nR46oc+fOKikp0ejRo7VlyxbFxcVZNT0AAMazdKm8c+fOkqRevXppzJgxeuedd6ycHgAA41kW3CdO\nnFBlZaUk6fvvv9f69es1YsQIq6YHAKBFsOys8u+++06ZmZmSpI4dO+ree+9VQkKCVdMDANAiWLbH\n3a1bN+3atUu7du3Sxo0blZ2dXfva5s2b1atXL1111VV6/vnnrSqpWTh48KCGDRsmt9utoUOHavHi\nxXaXZAufzyePx6PRo0fbXYrlfvzxR916663q3r27rr76an388cd2l2SpV155RQMGDFD//v01c+ZM\nu8sJq+zsbF166aXq3bt37VhlZaUyMjKUmJiosWPHqqqqysYKwytY//fdd5969eqla6+9VjNnzlR1\ndbWNFYZXsP5r/P3vf1dERITKy8sb/D7N4s5p99xzj15++WW9//77evHFF3Xs2DG7S7JMdHS05s2b\np+LiYuXl5WnOnDm1hxSc5LnnntPVV18tl6tpZ1e2BA899JASExP12Wef6bPPPlOvXr3sLsky5eXl\nmjt3rt577z0VFRVpz549Wr9+vd1lhc3kyZOVn59fZ2zBggVKTEzU3r17FR8fr5deesmm6sIvWP9p\naWkqLi7Wjh079OOPP7bonZdg/Us/7cC999576tq1a6O+j+3BXVFRIUkaPHiwunbtqrS0NG3bts3m\nqqwTFxenfv36SZI6deokt9utHTt22FyVtQ4dOqR3331XU6dOdeR1/u+//74efPBBtWnTRlFRUYqN\njbW7JMvExMQoEAiooqJC1dXVOnHihNq3b293WWEzaNCgc/rbvn27pkyZotatWys7O7tF//4L1v9v\nf/tbRUREKCIiQjfccIMKCwttqi78gvUvSbNmzdJTTz3V6O9je3AXFRWpZ8+etV87camwxr59+1Rc\nXKzrrrvO7lIs9cc//lFPP/20IiJs/3G03KFDh3Ty5Enl5OQoOTlZTz75pE6ePGl3WZaJiYnRggUL\ndPnllysuLk7XX3+9437+f/47sGfPno6+FfQrr7ziuMNlq1evVnx8vPr06dPobZz3m7KZqqys1Pjx\n4zVv3jxdcMEFdpdjmTVr1uiSSy6Rx+Nx5N72yZMntWfPHmVlZWnTpk0qLi7W8uXL7S7LMt9//71y\ncnL0+eefq7S0VB999JHWrl1rd1mWcuLPfTCPPvqo2rVrp5tuusnuUixz4sQJzZ07V4888kjtWGN+\nHmwP7qSkJH3xxRe1XxcXFyslJcXGiqx35swZZWVladKkScrIyLC7HEt9+OGHevvtt9WtWzdNnDhR\nBQUFuuWWW+wuyzJXXnmlevToodGjRysmJkYTJ07UunXr7C7LMtu3b1dKSoquvPJKdezYUTfddJM2\nb95sd1mWSkpKUklJiSSppKRESUlJNldkvX/9619av369Fi1aZHcplvrqq69UWlqqvn37qlu3bjp0\n6JD69++vo0ePnnc724O75nje5s2bVVpaqvfee0/Jyck2V2WdQCCgKVOm6JprrmnxZ9QGM3fuXB08\neFD79+/X0qVLlZqaqtdff93usix11VVXadu2bfL7/Vq7dq2GDx9ud0mWGTRokHbs2KHy8nKdOnVK\n69atU1pamt1lWSo5OVm5ubmqrq5Wbm6u43Zc8vPz9fTTT+vtt99WmzZt7C7HUr1799Z3332n/fv3\na//+/YqPj9cnn3yiSy655Lzb2R7ckvTss8/qjjvu0PDhwzV9+nR16tTJ7pIss3XrVi1atEgFBQXy\neDzyeDxBzzp0CieeVf7MM8/onnvu0bXXXqs2bdpowoQJdpdkmQsvvFBz5sxRZmamBg4cqL59+2rY\nsGF2lxU2EydO1IABA7Rnzx4lJCTo1VdfVU5Ojg4cOKAePXro8OHDmjZtmt1lhk1N/19++aUSEhKU\nm5uru+++W1VVVRo+fLg8Ho+mT59ud5lhE+zz/7nG/v6z9F7lAADgf9Ms9rgBAEDjENwAABiE4AYA\nwCAENwAABiG4gRbu22+/VWpqaoPv27RpU73XEJ/vtfNZtGiR+vTpo+joaL344otN3h7AuQhuoAXz\ner3q0qWLCgoKbJnf4/Fo2bJluvnmmx15qR8QDgQ30Ew9/vjjmjVrVu3XZWVluvjii1VdXa2NGzdq\nwIABtY853eedAAADA0lEQVRC/fkTtYYOHao///nPSk5OVmZmpr755ps690b4/e9/r6SkJPXv319/\n+tOf6jxG0ufz6Y477lCPHj00ZcoUlZaWBq3t448/1pQpU5ScnKxJkyZp9+7dQd/ndrvVq1cvRURE\ncGtPIEQIbqCZuvXWW7V06VL5/X5J0uLFi5WRkaGYmBj1799fW7Zs0c6dO/Xcc89p9uzZtdu5XC59\n+OGHWr9+vd555x0FAoE6e7vPPfecioqKVFRUpKqqKq1atar2tV27dmnYsGH68ssv1b17dz3wwAPn\n1HXmzBnNmDFDTz31lLZt26apU6fWmR9AeEXZXQCA4BISEuR2u7V27VqNHj1ar732mp599llJ0g8/\n/KCHHnpI//73v+X3+/X111+ruLhYbrdb0k93aLrooouCft+1a9dq5cqV2rNnj06dOqWjR49q0qRJ\nkqSOHTvW3rnt9ttv15VXXimv11tn+3Xr1qm0tLTOrVnLysp0/PjxeucEEDoEN9CM3XbbbXrttdd0\n+eWXq6KiQgMHDpQk/fWvf1VcXJy2bt2qNm3aqHPnziorK6vdLj4+Puj3O3jwoB544AFt2bJF3bp1\n04svvqi8vLw67zl7D/1sPp9Pffr00fvvv9+kXjjGDYQGS+VAMzZu3Dht3rxZ//jHPzR58uTa8YMH\nD6p79+5q06aNXn/99XOeJlTf8eRvv/1WsbGxSkxM1NGjR/Xaa6/Veb2srExvvfWWAoGAFi5cqBtu\nuEFRUXX/vh81apRKSkr0wQcf1M5TVFR03j4CgQDHuIEQIbiBZiwmJkYZGRlatGhRnced/t///Z8W\nLFigPn36aOfOnbr22mvrbHf23m3N18nJyUpLS5Pb7daYMWM0atSo2tdcLpc8Ho82btyonj176osv\nvtATTzxR+1rN+6Kjo7Vq1SotWbJE/fr109VXX61XXnklaP1LlixRQkKC8vLy9Je//EUJCQl1HuML\noOl4yAgAAAZhjxsAAIMQ3AAAGITgBgDAIAQ3AAAGIbgBADAIwQ0AgEH+P5wEIl9OoO3KAAAAAElF\nTkSuQmCC\n" } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "# To help visualize the relation between the two variables it is good to\n", "# plot them on axis with equal spacing (on x and y) and displaying equal\n", "# ranges of x and y's\n", "figure(figsize=(8, 8))\n", "plot(x, y, \"o\")\n", "axis((-1, 35, -1, 35))\n", "\n", "# Above we simulated the data using the relation y = ax + b.\n", "# Here we show that we can rewrite the same relation using matrix notation\n", "X = row_stack((x, ones_like(x)))\n", "\n", "# Notice that the way we have set up our matrix X each regressor is in a\n", "# row and each observation is in a column. The matrix X should be\n", "# transposed such that regressors are in columns and observations are in\n", "# the rows. This dimensionality is essential for the matrix multiplication\n", "# to work out properly\n", "X = X.T # Here we transpose X\n", "\n", "# We could have also done\n", "X = column_stack((x, ones_like(x)))\n", "\n", "# The matrix X can be multiplied by some weights (w). These weights\n", "# effectily shift and scale the data in x. These weights are the\n", "# coeficient of the linear equation; y = ax+b, we used to simulate the\n", "# data.\n", "w = row_stack((a, b))\n", "\n", "# We can describe the simulated data by plotting the straight line defined\n", "# by the model y = ax+b. This is the model we used to tranform x into y\n", "y_model1 = a * x + b\n", "\n", "# Plot the model on top of the data\n", "plot(x, y_model1, linewidth=3)\n", "\n", "# Alternatively we can describe the data by using the same linear model\n", "# but written in matrix notation.\n", "\n", "# Note that unlike MATLAB, using the \"*\" operator on numpy arrays\n", "# performs element-wise multiplication. To perform real matrix\n", "# multiplication, we could use numpy.matrix objects, which can\n", "# be created with syntax similar to MATLAB\n", "mtx1 = matrix([\"1 2; 3 4\"])\n", "mtx2 = matrix(X)\n", "\n", "# However, it is generally better practice to perform mulitiplication\n", "# using the numpy.dot() function\n", "\n", "# For those of you who are not familiar with linear algebra\n", "# our vector or weights denoted by w must be (1) a column vector and (2)\n", "# have as many entries as there are columns of X. This can be formalized\n", "# in the following line of code where we assert that the number of columns\n", "# in X is equal to the number of rows in w. \n", "assert X.shape[1] == w.shape[0], 'Dimension mismatch between X and w'\n", "\n", "# Because the dimensions match we can perform the following multiplication\n", "y_model2 = dot(X, w)\n", "\n", "# Plot the model\n", "# The two models, 1 and 2, are perfectly on top of eachother. We play here\n", "# with the the line style to make them a bit more visible. You\n", "# should see a continuous green line (model 1) and on top of it a red\n", "# dashed line (model 2). \n", "plot(x, y_model2, \"--\", linewidth=3);" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "display_data", "png": "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\n0tPTNXfuXNPlBMzq1as1duxYpaWleY/V19crNzdXiYmJWrZsmRoaGgxWGBjdrfvJJ59UQkKC0tPT\nlZ6ersLCQoMVBkZlZaUWLFig1NRUzZ8/X/n5+ZLsf86vtm67n/NLly4pMzNTc+bMUVZWljZt2iTJ\n/uf7auv2+XxbIWDOnDlWUVGRVV5ebk2fPt2qra01XVJQJCUlWWfPnjVdRsC999571qFDh6yZM2d6\nj23cuNF69NFHrUuXLllr1661/u3f/s1ghYHR3bqffPJJ6xe/+IXBqgKvurra+uijjyzLsqza2lpr\n8uTJ1oULF2x/zq+2biec84sXL1qWZVmXLl2yUlNTrSNHjtj+fFtW9+v29Xwb74Tr6uokSfPmzdOk\nSZO0aNEiHThwwHBVwWM5YHP6bbfdpmuvvbbTsYMHD+qhhx5SdHS0Vq9ebctz3t26Jfuf83HjxmnO\nnDmSpPj4eKWmpqq4uNj25/xq65bsf85jYmIkSQ0NDfJ4PIqOjrb9+Za6X7fk2/k2HsLFxcVKTk72\nPp8xY4Y++OADgxUFj8vl0sKFC7Vs2TK9/vrrpssJqo7nPTk5WQcPHjRcUfBs2bJFWVlZ2rhxo+rr\n602XE1BHjx5VaWmp5s6d66hz3r7uzMxMSfY/562trZo9e7bGjh2rRx99VImJiY44392tW/LtfBsP\nYSfbv3+/Dh8+rKeeekrr169XTU2N6ZKCxu6dwdWsWbNGX375pfbs2aMvvvhCzz77rOmSAqa+vl4r\nVqzQpk2bNHz4cMec847rHjZsmCPO+aBBg3T48GEdPXpUv/nNb/TRRx854nx3t25fz7fxEM7IyNBn\nn33mfV5aWqqsrCyDFQXP+PHjJUkpKSlaunSp3njjDcMVBU9GRobKysokSWVlZcrIyDBcUXCMGTNG\nLpdLsbGxWrt2rXbt2mW6pIBobm5WXl6eVq1apdzcXEnOOOfdrdsp51xq22yak5OjAwcOOOJ8t+u4\nbl/Pt/EQjo2NldS2Q7q8vFzvvPOO9xKOnTU2NnovU9TW1mrPnj1avHix4aqCJzMzU9u2bVNTU5O2\nbdvmmF+8qqurJUkej0f5+fnKyckxXJH/WZalhx56SDNnztRjjz3mPW73c361ddv9nJ85c0bnz5+X\nJJ09e1Zvv/22cnNzbX++r7Zun8+3nzeL9cu7775rJScnW1OnTrV+9atfmS4nKI4dO2bNnj3bmj17\ntrVw4ULrueeeM11SwKxcudIaP368FRUVZSUkJFjbtm2zLly4YC1dutSaOHGilZuba9XX15su0+/a\n1z148GArISHBeu6556xVq1ZZaWlp1o033mj9/d//vS13x7///vuWy+WyZs+ebc2ZM8eaM2eOtXv3\nbtuf8+7W/fvf/9725/zjjz+20tPTrVmzZlmLFi2ynn/+ecuyLNuf76ut29fzzexoAAAMMX45GgAA\npyKEAQAwhBAGAMAQQhgAAEMIYQAADCGEAQAw5P8DOO/pdjNyAXwAAAAASUVORK5CYII=\n" } ], "prompt_number": 6 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "(7) Linearized models" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These are one type of nonlinear model. Every nonlinear model (a model\n", "that cannot be plotted on two axis and be described by a single line is\n", "a non-linear model).\n", " \n", "Linearized models are non-linear models that can be transformed to linear\n", "models using a single tranformation. Generally, the traformation can be\n", "thought of as an expansion of the input space.\n", "\n", "Hereafter we will simulate a non-linear dataset, with two variables. The\n", "two variables have a non-linear relation bewteen them. We will show how\n", "we can re-write the non-linear model and linearize it so that it can be\n", "described by a linear operation (addition and multiplication)." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# First we create a variable, x\n", "x = arange(-15, 16)\n", "\n", "# We will now need three parameters\n", "a = 1.5 # Scaling, expands y in relaton to the same value of x.\n", "b = 2 # Additive term, shifts y up in relation to the same value of x.\n", "c = 1.5 # This is the term that decribe the influence of the non-linear \n", " # component. The greater this term the strongest the nonlinearity" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The second variable is a non-linear trasformation of the first one. We\n", "double x, we add 4 to each of its elements, we square x and double it and\n", "add random gaussian noise.\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "noise = randn(len(x)) * 6\n", "y = c * x ** 2 + a * x + b + noise" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plotting the data, we can 'see' that a line is not a good model for it" ] }, { "cell_type": "code", "collapsed": false, "input": [ "plot(x, y, \".\")\n", "xlabel(\"variable 1\")\n", "ylabel(\"variable 2\")\n", "axis((-40, 40, -10, 400));" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "display_data", "png": "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\nldaFF15oZWVlWW+++WYEKztzN9xwgzVq1CjL7XZbCxYssL766qvAayb099Of/tRyOp1Wbm6ulZub\na5WUlARei/X+nn32WSstLc0aMGCAlZqaahUUFARei/XeTqipqbEyMzOtCy+80Hr00UcjXc5Zu+mm\nm6xhw4ZZiYmJVlpamlVZWWkdOnTIuu6666wRI0ZYhYWFVnt7e6TLPGNvvfWWZbPZrEsuuSTw39ym\nTZuM6fF//ud/LJfLZY0ePdq6+uqrrSeffNKyLMuY/k6oqakJrH4/k954TCwAAIaI2ul3AADQN4Q6\nAACGINQBADAEoQ4AgCEIdSCOffHFF8rPz+/xfTU1Nae9R/aHXvsh69ev1+jRo9W/f3899thjfT4f\nwKkIdSBO+f1+/fjHP9brr78ekd/vcrn0X//1X7r55pt56h4QJIQ6EIOWLFmiuXPnBn5ubW3V4MGD\ndfToUVVXV+uyyy4LbOFYVVUVeN+ECRN0//33y+PxaOrUqfrss8903nnnBV6/5ZZb5Ha7demll+q+\n++47aavHzs5O3X333crIyFBxcbF2797dbW3vvvuuiouL5fF4NH36dH344Yfdvi8nJ0dZWVmy2+1G\nPOoTiAaEOhCDbrvtNj3zzDPq6uqSJG3YsEGFhYUaOHCgLr30UtXW1mr79u169NFHNX/+/MB5NptN\n77zzjqqqqvTiiy/KsqyTRsmPPvqo6uvrVV9fr8OHD+u5554LvPb+++/ryiuv1EcffaSLLrpIv/71\nr0+p69tvv9WsWbP0yCOPyOv16s477zzp9wMIrYg/+x1A340YMUI5OTl6+eWXNXnyZD355JNauXKl\nJOnQoUP67W9/q7feektdXV369NNPtWPHDuXk5EiSpk2bppSUlG4/9+WXX9azzz6rjz/+WN98841a\nWlo0ffp0SdK5556rm266SZJ011136ac//an8fv9J52/atEm7d+/WVVddFTjW2tqqtra20/5OAMFD\nqAMx6vbbb9eTTz6pkSNHyufz6fLLL5d0fIfDoUOH6u2339aAAQM0bNgwtba2Bs5LS0vr9vP27Nmj\nX//616qtrdUFF1ygxx57TH/5y19Oes/3R/bf19nZqdGjR5+0qU1vcE0dCA6m34EYdf311+vNN9/U\nv//7v+uOO+4IHN+zZ48uuugiDRgwQH/+85/V0tJy0nmnu379xRdfyOFwyOl0qqWlRU8++eRJr7e2\ntmrjxo2yLEt/+MMfdM011ygh4eRxwbXXXquGhgZt3bo18Hvq6+t/sA/LsrimDgQJoQ7EqIEDB6qw\nsFDr16/XrbfeGjj+r//6r1qzZo1Gjx6t7du3a8yYMSed9/1R8YmfPR6Prr76auXk5Oi6667Ttdde\nG3jNZrPJ5XKpurpamZmZamxs1MMPPxx47cT7+vfvr+eee05PP/20cnNzlZ2drXXr1nVb/9NPP60R\nI0boL3/5ixYtWqQRI0aosbExOP9ygDjFhi4AABiCkToAAIYg1AEAMAShDgCAIQh1AAAMQagDAGAI\nQh0AAEP8P7gY4L0AjRHoAAAAAElFTkSuQmCC\n" } ], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We introduced above the matrix notation $y = \\matrix{X}w$. This same notation can\n", "be used to represent this new non-linear dataset.\n", "\n", "To do so we effectively linearize the model that we use to represent the\n", "data set. $x^2$ will be coded as a new entry in $\\matrix{X}$, this new entry is now\n", "a linear function of $x^2$. The coefficient $c$ is the weight to apply to this\n", " new component of the linearized model." ] }, { "cell_type": "code", "collapsed": false, "input": [ "X = column_stack((x ** 2, x, ones_like(x)))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can appreciate the matrix representation of the linearized model by plotting each value in $\\matrix{X}$ as intensity on an image of shape = shape(X).\n", "\n", "We will use the ``matshow()`` function to do so. This is really just a wrapper around the more generic ``imshow()`` function." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Plot the matrix\n", "matshow(X)\n", "\n", "# We will turn off the grid we have been using\n", "grid()\n", "\n", "# Use set the colormap for the whole image to be a shade of grays\n", "gray()\n", "\n", "# Turn on a colorbar to compare the values in the image\n", "colorbar()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 11, "text": [ "" ] }, { "output_type": "display_data", "png": "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\nLYeRSERbt25VV1eXurq6tGrVKknSe++9p507d+r111/Xrl27tHnz5jGtwcWjuUysIosXL1Z/f/9F\nxy+11/b2dq1cuVKFhYUqLCxUEASKx+OaPn36qGswsZExduzYoerqam3fvl3xeFzSF++xLS0tTXxP\ncXHxmN6OSLDNpfudM2N9B00sFtOJEyfU2tqq48ePq6mpKbH//zWWFwkINjLCrFmzFIlENGPGDG3a\ntEn79u2T9MU7tt5+++3E9x09enRMb0ck2MgIp06dkiSdO3dOLS0tWr16tSSpsrJSra2tOnnypA4c\nOKCsrKzL9muJi0d7mXjxuGHDBrW1tWlwcFAFBQV68skndeDAAXV3dys7O1tLlixRLBaTJOXm5ioW\ni2n58uXKzs5OVJTLiQQh/eRz584N47SjOn36dMrXlKTs7OyUr3nmzJkxfd+FX+npdv/996d0PaoI\nLFFFzGViFUkFJjYsMbHNMbEBIwQblqgi5qgigBEmtjkmNmCEYMMSVcQcVQQwQrBhiSpijioCGGFi\nm2NiA0YINiyFVkU+/fTTsE49Ih5KeTGqCGCEYMMSr4qYo4oARpjY5pjYgBGCDUtUEXNUEcAIE9sc\nExswQrBhiSpijioCGCHYsEQVMUcVAYwwsc0xsQEjBBuWqCLmqCKAESa2OSY2YIRgwxJVxBxVBDBC\nsGEptCoyPDwc1qlHxEMpL0YVAYxw8WiOiQ0YIdiwRBUxRxUBjBBsWKKKmKOKAEaY2OaY2IARgo2U\nq6+vV25urhYuXJg49vjjj6u0tFSLFi3Sli1bNDQ0JEnq7+/X9ddfr2g0qmg0qkceeWRMaxBsc0EQ\nZMTHf3vooYe0f//+Lx1bsWKFenp69Oabb+rjjz9WS0tL4mtFRUXq6upSV1eXdu7cOaafm2Aj5RYv\nXqycnJwvHbvnnnuUlZWlrKws3XvvvWpra7uqNQi2uXRP6ktN7Mt5/vnntWbNmsTnJ06cUHl5uTZu\n3Ki33nprTOcg2MgoTz31lKZPn64HHnhAkjRnzhwNDAyou7tbtbW1qqurG9N5CDYyxosvvqjW1lbt\n2bMncSw7OztRW1atWqXJkyerr6/vsufidWxz18rr2Pv379fPf/5zHTx4UNddd13i+ODgoHJycjRp\n0iQdOXJEQ0NDKioquuz5CDZSbsOGDWpra9Pg4KAKCgr05JNP6umnn9Znn32mb3/725KkO+64Qzt3\n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\nRLBhiWDD0v8Dv10Fsd9F33IAAAAASUVORK5CYII=\n" } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Values are high (bright) in the first column at the top and bottom.\n", "This is because we are taking the power of $x$ there and also we are\n", "multiplying by $c$. They are lower (dimmer) in the second\n", "column and even lower in the last column.\n", "\n", "We can show that the linearized model $y = \\matrix{X}w$ describes well the data\n", "with a single linear operation, multiplication.\n", "\n", "These are the new weights for the linearized model." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Make the weight vector\n", "w = row_stack((c, a, b))\n", "\n", "# Check the dimensions of w and X are correct\n", "sw = w.shape\n", "print \"w is %d by %d\" % sw\n", "\n", "sX = X.shape\n", "print \"X is %d by %d\" % sX\n", "\n", "# Formally check to make sure the dimensions match\n", "assert sw[0] == sX[1], \"Dimension mismatch between X and w\"" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "w is 3 by 1\n", "X is 31 by 3\n" ] } ], "prompt_number": 12 }, { "cell_type": "code", "collapsed": false, "input": [ "# Build the model with matrix multiplication\n", "y_model3 = dot(X, w)\n", "\n", "# Plot the data and model\n", "plot(x, y, \".\")\n", "axis((-40, 40, -10, 400))\n", "plot(x, y_model3);" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "display_data", "png": "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\n" } ], "prompt_number": 13 }, { "cell_type": "heading", "level": 3, "metadata": {}, "source": [ "(9) Non parametric nonlinear models; nearest neighbours." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A third type of nonlinear model is a nonparametric nonlinear model.\n", "Nonparametric nonlinear models are essentially very flexible nonlinear\n", "models that can be generically applied to arbitrary datasets. \n", " \n", "- The distinction between nonparametric nonlinear models and the other\n", "types of nonlinear models can be hazy, but we can make some generalities:\n", "\n", "(1) Nonparametric nonlinear models are sometimes nonlinear with respect\n", "to the free parameters; thus, we cannot categorize them as linearized\n", "models.\n", "\n", "(2) Nonparametric nonlinear models make few assumptions on the\n", "form of the nonlinearity of the model, unlike parametric nonlinear\n", "models.\n", "\n", "Examples of nonparametric nonlinear models include nearest-neighbor\n", "methods (predict the output based on the nearest input example), local\n", "(fit a simple model at each point in the input space based on\n", "nearby data points), and neural networks (use generic basis functions\n", "such as sigmoidal or radial basis functions to model the output)." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Suppose we collected some measure of height, weight and the corresponding \"beauty\" \n", "# on a set of individuals. \n", "height = array([1.75, 1.55, 1.82, 1.77, 1.8, 1.65, 1.6]) # in meters\n", "weight = array([75, 70, 72, 65, 68, 70, 68]) # in Kg.\n", "beauty = array([1, 4, 2, 7, 7, 4, 3]) # 1-7, 7 is most beautiful" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We plot here the data in a scatter plot of weight vs. height where the\n", "size of symbols are set by the beauty rating. More beautiful individual\n", "have bigger symbols. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Unlike the matlab code, we can do this in one step\n", "scatter(height, weight, beauty * 20, color=colors[2])\n", "axis((1.5, 2, 60, 80))\n", "xlabel(\"Height (meters)\")\n", "ylabel(\"Weight (Kg)\");" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "display_data", "png": "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\nMkT79+93v2LLS7Zu3Wp9/vnn1oABA2qdvnnzZmvSpEkerqp5cddjl8tlDRgwwProo48sy7KsM2fO\neLK8ZsNdn79rzZo11l133eWBqpoXdz1OSUmxkpOTLcuyrGPHjll9+vSxXC6XJ0s0nrsev/7669ZP\nf/pTy7Isa9u2bdbUqVM9WV6zcPr0aWvnzp2WZV36e9u7d2+rsLDwinkyMzOtESNGWOfOnbNWrFhh\nTZgwwe16vXaL1lGjRql9+/b1zmPZN+rfIrjr8Y4dOxQZGamEhARJ0s033+yp0pqVhnyWL1uxYoWm\nT59uc0XNj7seh4SEqKioSJWVlTp//rxatWolh6Nxl/K0VO56vGnTJk2YMEGSNGzYMB06dMhTpTUb\nnTt31qBBgyRd+nt72223aceOHVfMk5mZqQceeEAdOnTQ9OnTa04Or0+Tvde6w+HQtm3bNGjQIM2Z\nM4dhHBts2LBBDodDo0aN0qRJk7RhwwZvl9SslZaWasOGDbr//vu9XUqzM336dFVXV+vmm2/WyJEj\n9dZbb3m7pGZn7NixWrlypcrKyrR69Wrt3btXR48e9XZZxjp06JC++OILDR069Ir3s7Ky1L9//5rX\noaGhbvOvyV4UOHjwYOXn58vPz0/Lly/X008/rbVr13q7rGalvLxcu3btUnp6ukpLS3X33Xdr3759\nCgoK8nZpzdKaNWs0cuRItWvXztulNDuLFy+W0+nU6dOntXfvXk2YMEHHjx+Xj0+T3VcxzoMPPqgT\nJ05ozJgxuvXWW9W3b18FBAR4uywjFRUV6cEHH9SiRYvUunXrK6ZZlnXVaLS70aUm+ykPDg5Wq1at\n5Ofnp5kzZyo7O1sXL170dlnNyrBhw3TPPfeoc+fO6tOnj6Kjo7V161Zvl9Vsvf322wyr22Tr1q16\n5JFH1KpVK8XGxqpLly46ePCgt8tqVlq1aqX/+I//UFZWllJSUhQUFKQuXbp4uyzjVFZW6v7779dj\njz2mKVOmXDU9NjZWOTk5Na/PnDmjPn361LvOJhvkX3/9dc23kjVr1igyMpJvfzdYXFyctmzZotLS\nUp0/f147d+7UiBEjvF1Ws1RQUKCtW7fW+ouL63fXXXdpzZo1crlcOnLkiM6fP6/w8HBvl9WsFBQU\nqKKiQqWlpXr55Zd19913e7sk41iWpZkzZ2rAgAF65plnap0nNjZW7733ns6dO6cVK1YoIiLC7Xq9\n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\nAAAAAElFTkSuQmCC\n" } ], "prompt_number": 15 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we want to build a model to predict beauty ratings of new individuals\n", "given this data set.\n", " \n", "The model is a nearest-neighbor model where a new individuals\n", "beauty is predicted by other individuals that are near them in euclidean\n", "space. Note that this can be done with infinitely many predictor\n", "variables however it is easier to visualize this model with just 2\n", "variables\n", " \n", "We know the height (1.8 meters) and the weight (68 Kg) of the individual.\n", "The nearest-neighbor model will allow us to predict the beauty\n", "of the individual by using the set of data of the original sample and the\n", "measures of height and weight for the new individual." ] }, { "cell_type": "code", "collapsed": false, "input": [ "height_ind = 1.9\n", "weight_ind = 67" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 16 }, { "cell_type": "markdown", "metadata": {}, "source": [ "The prediction of a nearest-neighbor model for the new\n", "individual is the beauty rating of the individual that has the closet\n", "height and weight.\n", "\n", "To set up the nearest-neighbor model we find the distance of the height\n", "and weight of the new individual from all the rest of the idividual in\n", "our original sample. We sum the distances among weights and heights. In\n", "this way we have a measure of distance between the new individual and the\n", "rest of the group, the distance combines both height and weight. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "distance = (height_ind - height) ** 2 + (weight_ind - weight) ** 2\n", "\n", "# We can also do this with a function from the scipy package\n", "from scipy.spatial.distance import cdist\n", "pop = column_stack((height, weight))\n", "sample = column_stack((height_ind, weight_ind))\n", "distance2 = cdist(pop, sample)\n", "\n", "# By default, cdist computes the euclidian distance, but you can use many others\n", "# It also generalizes to n dimensions\n", "assert all(sqrt(distance) == distance2.ravel())" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 17 }, { "cell_type": "markdown", "metadata": {}, "source": [ "After setting up our distance measure. We can find the individual in the\n", "orginal data set that has smallest distance to the new individual. We can\n", "then use the beauty rating of that individual in the original data set as\n", "the predicted beauty for the new individual." ] }, { "cell_type": "code", "collapsed": false, "input": [ "scatter(height, weight, beauty * 20, color=colors[2])\n", "axis((1.5, 2, 60, 80))\n", "xlabel(\"Height (meters)\")\n", "ylabel(\"Weight (Kg)\")\n", "\n", "# Find the closest individual\n", "idx = argmin(distance)\n", "\n", "# Look up their beauty\n", "predicted_beatuy = beauty[idx]\n", "\n", "# The nearest-neighbor model uses the closest data point to\n", "# predict the expected value of a new data point. In this way the model is\n", "# non parametric, because it uses the actual data (the closest point to the\n", "# new point) as the model (prediction).\n", "\n", "# Here we plot the new individual with the original group.\n", "scatter(height_ind, weight_ind, predicted_beatuy * 20, color=colors[0]);" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "display_data", "png": "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\nG6vMzExJUmZmpmJjY+2KAABAvWfrZ+TdunVTamqqXC6XVq1apcTERMXFxWnevHkqKirSvHnzFB8f\nb2cEAADqNds+I5ekgwcP6sknn1RxcbESExP18ssvy+Vy6fHHH9fOnTvVp08fLVq0SMHBwXZFAACg\nXrN1i7x79+7atm2bdu3apZkzZ6px48YKCQnRsmXLlJiYqK1bt6p///6Vvnbjxo0KDQ1VdHS0oqOj\n9corr9gZtV6aNGmSWrdurV69elW5THp6umJjYxUZGamEhATPhatH3M155syZFd/HvXr1ktPp1KVL\nlzyc0mzuZlxUVKSnnnpK0dHRGjp0qJYtW+bhhOZzN+O8vDxNmzZNvXv3Vv/+/XXo0CEPJzRfdna2\n7rrrLt1xxx1KSEjQ4sWLK13u17/+tbp27aq+fftq//797ldsecnmzZutr776yurZs2elz2/YsMEa\nPXq0h1PVL+5m7HK5rJ49e1qfffaZZVmWdfbsWU/Gqzfczfn7VqxYYd1zzz0eSFW/uJtxSkqKlZyc\nbFmWZR09etTq2rWr5XK5PBnReO5m/NZbb1m//OUvLcuyrC1btljjxo3zZLx64dSpU9bOnTsty7ry\n+7ZLly5Wbm7uNcukpqZaAwcOtM6fP28tXrzYGjlypNv1eu0SrYMHD1azZs2qXcayb69/g+Buxtu3\nb1dUVJQSExMlSS1btvRUtHqlJt/LVy1evFgTJkywOVH9427GoaGhysvLU2lpqS5cuKBGjRrJ4ajd\nqTwNlbsZr1+/XiNHjpQk9e/fX998842notUbbdq0Ue/evSVd+X17xx13aPv27dcsk5qaqoceekjN\nmzfXhAkTKg4Or06dvda6w+HQli1b1Lt3b02dOpXdODZYs2aNHA6HBg8erNGjR2vNmjXejlSvFRYW\nas2aNXrwwQe9HaXemTBhgsrLy9WyZUsNGjRI7777rrcj1TvDhg3TkiVLVFRUpOXLl2vv3r06cuSI\nt2MZ65tvvtHXX3+tfv36XfN4WlqaevToUfF1WFiY2/6rsycF9unTR9nZ2fLz89PChQv13HPPaeXK\nld6OVa8UFxdr165dWrt2rQoLC3Xvvfdq3759CgoK8na0emnFihUaNGiQmjZt6u0o9c6cOXPkdDp1\n6tQp7d27VyNHjtSxY8fk41Nnt1WM8/DDD+v48eMaOnSobr/9dnXr1k0BAQHejmWkvLw8Pfzww5o9\ne7YaN258zXOWZV23N9rd3qU6+10eEhKiRo0ayc/PT5MnT1Z6erouX77s7Vj1Sv/+/XXfffepTZs2\n6tq1q2KfB2jtAAAHKElEQVRiYrR582Zvx6q3li5dym51m2zevFmPPfaYGjVqpLi4OLVt21YHDx70\ndqx6pVGjRvqP//gPpaWlKSUlRUFBQWrbtq23YxmntLRUDz74oJ544gmNHTv2uufj4uKUkZFR8fXZ\ns2fVtWvXatdZZ4v89OnTFX+VrFixQlFRUfz1d4vFx8dr06ZNKiws1IULF7Rz504NHDjQ27HqpZyc\nHG3evLnSH1zcvHvuuUcrVqyQy+XS4cOHdeHCBUVERHg7Vr2Sk5OjkpISFRYW6rXXXtO9997r7UjG\nsSxLkydPVs+ePfX8889XukxcXJw++OADnT9/XosXL1ZkZKTb9Xpt1/qECRO0adMmnTt3Th06dNDL\nL7+s0tJSSdLPfvYz/etf/1JKSoqcTqeioqI0a9Ysb0U1lrsZt2jRQklJSYqJiVFYWJh+//vfc05/\nLbibsyR9/PHHGjZsGB9b1JK7GT/yyCPKyMio+F5+4403vJzYPO5mnJGRoYkTJ8rlcql///7cubIW\nvvzySy1atEhRUVGKjo6WJL366qv69ttvJV2Zc79+/TRo0CDFxMSoefPmWrRokdv12npBGAAAYK86\nu2sdAAC4R5EDAGAwihwAAINR5AAAGIwiBzygc+fO15wbKkkxMTHatGmT29f+5Cc/0Zdfful2uYkT\nJ+pvf/tbpc8tW7ZM6enp1b5+/vz5evnll92+z41YsGCBsrKybuk6T548qQEDBtzSdQImo8gBD6js\nykwOh6NG1wN/++23a3R+f3Xr+uijj5SWllbl8y6XS7Nnz1ZycrLb97kRCxYsqNWFWVwuV5XPtW3b\nVh07dtS6detuJhpQb1DkgIdUd6ZnQUGB3njjDSUmJmrw4MGaOXNmxXMJCQlatWqVJOnMmTOaOnWq\nIiMjNW7cOI0bN+6arfBDhw7p7rvvVo8ePfTb3/5W0pVr6q9YsUL/+Z//qejo6ErPS125cqW6d++u\nVq1aSbpSwCNGjNCjjz6q7t2764EHHtCJEyc0cuRIRUZG6sUXX3Sbff78+dqxY4eeffZZRUdHa/36\n9ZKkf/7znxo3bpz69eunadOm6cKFC5Kkl156SY8//riGDRumqKgoXbp0SS+99JJiYmLUu3dvDRo0\nqOI9n376ac2ePfvG/gcA9VSdvdY6UJ9YlqWHHnpIgYGBFY99f0v1rbfeko+Pj9auXauSkhKNGTNG\nAwYM0IABA67Zcp81a5ZcLpf27dunvXv3Ki4uruLudZZlad26ddqwYYP8/f3Vo0cPJSUladiwYRoz\nZoxiY2M1ZcqUSvOlp6crKirqmsfWrVun3bt3Kzw8XHfffbcSEhK0adMmNWvWTD179lRSUpLCw8Or\nzJ6UlKR33nlH06dP14gRIyRJX331lT744AMtXbpU/v7++sMf/qC5c+fqN7/5jSRp9erVSk1NVXh4\nuI4ePaoFCxbo8OHD8vHxUU5OTkW2nj17VruHAWhIKHLAAxwOhz744INr7moUGxtb8d+LFi1SWVmZ\nFi5cKEkqKirSp59+et1nwcuXL9f7778vX19f9e7dW3Fxcde8x/jx49W8eXNJ0qBBg7RhwwZ16dJF\nUvV7BA4cOHDd5WMHDx5ccZnTQYMG6cyZMxXX1o6Li9OmTZsUHh7uNvv333fRokXavn17Re6ysjK1\nbt26osiHDRum8PBwSVL79u0VGhqqJ598UmPGjNH9999fsZ42bdqouLhY586d4/a7aPAocqAOKC8v\nV0pKitvPwiu7M9L3ff9+0gEBASouLq7R+1e2zh+u64dfX72Jkbvs3//svry8XJMmTdKMGTMqXa5d\nu3YVXzudTu3evVvr1q3Txx9/rOnTp2v//v0Vl7n18fGpdhZAQ8Fn5EAdMHnyZL3xxhs6f/68JOnc\nuXM6evTodcuNHTtW8+bNU1lZmXbv3q3U1NRq13u16Lp27apTp05VuVxERES19zyurDCvPlZd9q5d\nu+rkyZPX/DsXLVpU8bHC5cuXtWfPnkrf49y5c7p48aLuuecezZ49Ww6HQydOnJB05aZKTqdTYWFh\n1f77gYaAIgfqgKefflqDBw/WuHHjFBUVpfvuu++aArxq2rRpsixLvXr10m9/+1sNHDiwYle0dP2R\n61e/Hj9+vLZs2VLlwW4xMTHat2/fNa/7/roqO8L+6tfVZU9KStLChQsrDnaLiorSK6+8ohdeeEFR\nUVGKiYnRli1bKn2P7Oxs3Xvvverdu7cSEhI0ZcqUin/r3r171a9fvxpMFqj/uGkKYJDi4mL5+fnJ\n19dX+/fv19ChQ3XixAk5nTf3KZnL5dKdd96pdevWVRy5Xpc98sgjmjx5MrfSBMQWOWCUrKwsxcTE\nqGfPnpo+fbr+8Y9/3HSJS1c+b546dapSUlJuQUp7nTx5smJrHQBb5AAAGI0tcgAADEaRAwBgMIoc\nAACDUeQAABiMIgcAwGAUOQAABvv/EuTYTE0u+AoAAAAASUVORK5CYII=\n" } ], "prompt_number": 18 } ], "metadata": {} } ] }