{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "

Neural Networks Demystified

\n", "

Part 7: Overfitting, Testing, and Regularization

\n", "\n", "\n", "

@stephencwelch

" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", " \n", " " ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import YouTubeVideo\n", "YouTubeVideo('S4ZUwgesjS8')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Last time, we trained our Neural Network, and it made suspiciously good predictions of your test score based on how many hours you slept, and how many hours you studied the night before. Before we celebrate and begin changing our sleep and study habits, we need some way to ensure that our model reflects the real world. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To do this, let’s first spend some time thinking about data. Like a lot of data, our input and output values come from real world observations. The assumption here is that there is some underlying process, and our observations give us insight into the process - BUT our observations are not the same thing as the process, they are just a sample." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Our observation says that when we sleep for 3 hours and study for 5 hours, the grade we earned was a 75. But does this mean that every time you sleep for 3 hours and study for 5 hours you will earn a 75? Of course not, because there are other variables that matter here, such as the difficulty of test, or whether you’ve been paying attention in lectures – we could quantify these variables to build a better model, but even if we did, there would still an element of uncertainty that we could never explicitly model – for example, maybe the test was multiple choice, and you guessed on a few problems. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "One way to think about this problem is that observations are composed of signal and noise. Nate Silver, the guy who correctly predicted the US election results for 50 out of 50 US states in 2012, wrote a great book on exactly this. The idea is that we’re interested in an underlying process, the signal, but in real data, our signal will always be obscured by some level of noise. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "An interesting example of this shows up when comparing the SAT scores of students who take the SAT both Junior and Senior year. Right on the college board’s website it says: “The higher a student's scores as a junior, the more likely that student's subsequent scores will drop”. Why would this be? It seems like students who did well junior year would also do well senior year. We can make sense of this by considering that SAT scores are composed of a signal and a noise component – the signal being the underlying aptitude of the student, and the noise being other factors that effect test scores, basically if the student had a good day or not. Of the students who did well the first time, we expect a disproportionate number to have had a good day – and since having a good day is random, when these students have a regular or bad test day on their next test, their scores will go down. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So if we can convince our model to fit the signal and not the noise, we should be able to avoid overfitting. First, we’ll work on diagnosing overfitting, then we’ll work on fixing it. Last time we showed our model predictions across the input space for various combinations of hours sleeping and hours studying. We’ll add a couple more data points to make overfitting a bit more obvious and retrain our model on the new dataset. If we re-examine our predictions across our sample space, we begin to see some strange behavior. Neural networks are really powerful learning models, and we see here that all that power has been used to fit our data really closely – which creates a problem - our model is no longer reflective of the real world. According to our model, in some cases, studying more will actually push our score down, this seems unlikely - hopefully studying more will not decrease your score. " ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%pylab inline\n", "from partSix import *" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [], "source": [ "NN = Neural_Network()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# X = (hours sleeping, hours studying), y = Score on test\n", "X = np.array(([3,5], [5,1], [10,2], [6,1.5]), dtype=float)\n", "y = np.array(([75], [82], [93], [70]), dtype=float)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Plot projections of our new data:\n", "fig = figure(0,(8,3))\n", "\n", "subplot(1,2,1)\n", "scatter(X[:,0], y)\n", "grid(1)\n", "xlabel('Hours Sleeping')\n", "ylabel('Test Score')\n", "\n", "subplot(1,2,2)\n", "scatter(X[:,1], y)\n", "grid(1)\n", "xlabel('Hours Studying')\n", "ylabel('Test Score')" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#Normalize\n", "X = X/np.amax(X, axis=0)\n", "y = y/100 #Max test score is 100" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Optimization terminated successfully.\n", " Current function value: 0.000000\n", " Iterations: 150\n", " Function evaluations: 172\n", " Gradient evaluations: 172\n" ] } ], "source": [ "#Train network with new data:\n", "T = trainer(NN)\n", "T.train(X,y)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Plot cost during training:\n", "plot(T.J)\n", "grid(1)\n", "xlabel('Iterations')\n", "ylabel('Cost')" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#Test network for various combinations of sleep/study:\n", "hoursSleep = linspace(0, 10, 100)\n", "hoursStudy = linspace(0, 5, 100)\n", "\n", "#Normalize data (same way training data way normalized)\n", "hoursSleepNorm = hoursSleep/10.\n", "hoursStudyNorm = hoursStudy/5.\n", "\n", "#Create 2-d versions of input for plotting\n", "a, b = meshgrid(hoursSleepNorm, hoursStudyNorm)\n", "\n", "#Join into a single input matrix:\n", "allInputs = np.zeros((a.size, 2))\n", "allInputs[:, 0] = a.ravel()\n", "allInputs[:, 1] = b.ravel()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [], "source": [ "allOutputs = NN.forward(allInputs)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Contour Plot:\n", "yy = np.dot(hoursStudy.reshape(100,1), np.ones((1,100)))\n", "xx = np.dot(hoursSleep.reshape(100,1), np.ones((1,100))).T\n", "\n", "CS = contour(xx,yy,100*allOutputs.reshape(100, 100))\n", "clabel(CS, inline=1, fontsize=10)\n", "xlabel('Hours Sleep')\n", "ylabel('Hours Study')" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#3D plot:\n", "#Uncomment to plot out-of-notebook (you'll be able to rotate)\n", "#%matplotlib qt\n", "\n", "from mpl_toolkits.mplot3d import Axes3D\n", "fig = plt.figure()\n", "ax = fig.gca(projection='3d')\n", "\n", "#Scatter training examples:\n", "ax.scatter(10*X[:,0], 5*X[:,1], 100*y, c='k', alpha = 1, s=30)\n", "\n", "\n", "surf = ax.plot_surface(xx, yy, 100*allOutputs.reshape(100, 100), \\\n", " cmap=cm.jet, alpha = 0.5)\n", "\n", "\n", "ax.set_xlabel('Hours Sleep')\n", "ax.set_ylabel('Hours Study')\n", "ax.set_zlabel('Test Score')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So it appears our model is overfitting, but how do we know for sure? A widely accepted method is to split our data into 2 portions: training and testing. We won’t touch our testing data while training the model, and only use it to see how we’re doing – our testing data is a simulation of the real world. We can plot the error on our training and testing sets as we train our model and identify the exact point at which overfitting begins. We can also plot testing and training error as a function of model complexity a see similar behavior. " ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#Training Data:\n", "trainX = np.array(([3,5], [5,1], [10,2], [6,1.5]), dtype=float)\n", "trainY = np.array(([75], [82], [93], [70]), dtype=float)\n", "\n", "#Testing Data:\n", "testX = np.array(([4, 5.5], [4.5,1], [9,2.5], [6, 2]), dtype=float)\n", "testY = np.array(([70], [89], [85], [75]), dtype=float)\n", "\n", "#Normalize:\n", "trainX = trainX/np.amax(trainX, axis=0)\n", "trainY = trainY/100 #Max test score is 100\n", "\n", "#Normalize by max of training data:\n", "testX = testX/np.amax(trainX, axis=0)\n", "testY = testY/100 #Max test score is 100" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [], "source": [ "##Need to modify trainer class a bit to check testing error during training:\n", "class trainer(object):\n", " def __init__(self, N):\n", " #Make Local reference to network:\n", " self.N = N\n", " \n", " def callbackF(self, params):\n", " self.N.setParams(params)\n", " self.J.append(self.N.costFunction(self.X, self.y))\n", " self.testJ.append(self.N.costFunction(self.testX, self.testY))\n", " \n", " def costFunctionWrapper(self, params, X, y):\n", " self.N.setParams(params)\n", " cost = self.N.costFunction(X, y)\n", " grad = self.N.computeGradients(X,y)\n", " \n", " return cost, grad\n", " \n", " def train(self, trainX, trainY, testX, testY):\n", " #Make an internal variable for the callback function:\n", " self.X = trainX\n", " self.y = trainY\n", " \n", " self.testX = testX\n", " self.testY = testY\n", "\n", " #Make empty list to store training costs:\n", " self.J = []\n", " self.testJ = []\n", " \n", " params0 = self.N.getParams()\n", "\n", " options = {'maxiter': 200, 'disp' : True}\n", " _res = optimize.minimize(self.costFunctionWrapper, params0, jac=True, method='BFGS', \\\n", " args=(trainX, trainY), options=options, callback=self.callbackF)\n", "\n", " self.N.setParams(_res.x)\n", " self.optimizationResults = _res\n" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Optimization terminated successfully.\n", " Current function value: 0.000000\n", " Iterations: 155\n", " Function evaluations: 173\n", " Gradient evaluations: 173\n" ] } ], "source": [ "#Train network with new data:\n", "NN = Neural_Network()\n", "\n", "T = trainer(NN)\n", "T.train(trainX, trainY, testX, testY)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#Plot cost during training:\n", "plot(T.J)\n", "plot(T.testJ)\n", "grid(1)\n", "xlabel('Iterations')\n", "ylabel('Cost')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So now that we know overfitting is a problem, but how do we fix it? One way is to throw more data at the problem. A simple rule of thumb as presented by Yaser Abu-Mostaf is his excellent machine learning course available from Caltech, is that you should have at least 10 times as many examples as the degrees for freedom in your model. For us, since we have 9 weights that can change, we would need 90 observations, which we certainly don’t have.\n", "\n", "Link to course: https://work.caltech.edu/telecourse.html" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Another popular and effective way to mitigate overfitting is to use a technique called regularization. One way to implement regularization is to add a term to our cost function that penalizes overly complex models. A simple, but effective way to do this is to add together the square of our weights to our cost function, this way, models with larger magnitudes of weights, cost more. We’ll need to normalize the other part of our cost function to ensure that our ratio of the two error terms does not change with respect to the number of examples. We’ll introduce a regularization hyper parameter, lambda, that will allow us to tune the relative cost – higher values of lambda will impose bigger penalties for high model complexity." ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#Regularization Parameter:\n", "Lambda = 0.0001 " ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#Need to make changes to costFunction and costFunctionPrim:\n", "def costFunction(self, X, y):\n", " #Compute cost for given X,y, use weights already stored in class.\n", " self.yHat = self.forward(X)\n", " J = 0.5*sum((y-self.yHat)**2)/X.shape[0] + (self.lambd/2)*(sum(self.W1**2)+sum(self.W2**2))\n", " return J\n", "\n", "def costFunctionPrime(self, X, y):\n", " #Compute derivative with respect to W and W2 for a given X and y:\n", " self.yHat = self.forward(X)\n", "\n", " delta3 = np.multiply(-(y-self.yHat), self.sigmoidPrime(self.z3))\n", " #Add gradient of regularization term:\n", " dJdW2 = np.dot(self.a2.T, delta3)/X.shape[0] + self.lambd*self.W2\n", "\n", " delta2 = np.dot(delta3, self.W2.T)*self.sigmoidPrime(self.z2)\n", " #Add gradient of regularization term:\n", " dJdW1 = np.dot(X.T, delta2)/X.shape[0] + self.lambd*self.W1\n", "\n", " return dJdW1, dJdW2" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#New complete class, with changes:\n", "class Neural_Network(object):\n", " def __init__(self, Lambda=0): \n", " #Define Hyperparameters\n", " self.inputLayerSize = 2\n", " self.outputLayerSize = 1\n", " self.hiddenLayerSize = 3\n", " \n", " #Weights (parameters)\n", " self.W1 = np.random.randn(self.inputLayerSize,self.hiddenLayerSize)\n", " self.W2 = np.random.randn(self.hiddenLayerSize,self.outputLayerSize)\n", " \n", " #Regularization Parameter:\n", " self.Lambda = Lambda\n", " \n", " def forward(self, X):\n", " #Propogate inputs though network\n", " self.z2 = np.dot(X, self.W1)\n", " self.a2 = self.sigmoid(self.z2)\n", " self.z3 = np.dot(self.a2, self.W2)\n", " yHat = self.sigmoid(self.z3) \n", " return yHat\n", " \n", " def sigmoid(self, z):\n", " #Apply sigmoid activation function to scalar, vector, or matrix\n", " return 1/(1+np.exp(-z))\n", " \n", " def sigmoidPrime(self,z):\n", " #Gradient of sigmoid\n", " return np.exp(-z)/((1+np.exp(-z))**2)\n", " \n", " def costFunction(self, X, y):\n", " #Compute cost for given X,y, use weights already stored in class.\n", " self.yHat = self.forward(X)\n", " J = 0.5*sum((y-self.yHat)**2)/X.shape[0] + (self.Lambda/2)*(sum(self.W1**2)+sum(self.W2**2))\n", " return J\n", " \n", " def costFunctionPrime(self, X, y):\n", " #Compute derivative with respect to W and W2 for a given X and y:\n", " self.yHat = self.forward(X)\n", " \n", " delta3 = np.multiply(-(y-self.yHat), self.sigmoidPrime(self.z3))\n", " #Add gradient of regularization term:\n", " dJdW2 = np.dot(self.a2.T, delta3)/X.shape[0] + self.Lambda*self.W2\n", " \n", " delta2 = np.dot(delta3, self.W2.T)*self.sigmoidPrime(self.z2)\n", " #Add gradient of regularization term:\n", " dJdW1 = np.dot(X.T, delta2)/X.shape[0] + self.Lambda*self.W1\n", " \n", " return dJdW1, dJdW2\n", " \n", " #Helper functions for interacting with other methods/classes\n", " def getParams(self):\n", " #Get W1 and W2 Rolled into vector:\n", " params = np.concatenate((self.W1.ravel(), self.W2.ravel()))\n", " return params\n", " \n", " def setParams(self, params):\n", " #Set W1 and W2 using single parameter vector:\n", " W1_start = 0\n", " W1_end = self.hiddenLayerSize*self.inputLayerSize\n", " self.W1 = np.reshape(params[W1_start:W1_end], \\\n", " (self.inputLayerSize, self.hiddenLayerSize))\n", " W2_end = W1_end + self.hiddenLayerSize*self.outputLayerSize\n", " self.W2 = np.reshape(params[W1_end:W2_end], \\\n", " (self.hiddenLayerSize, self.outputLayerSize))\n", " \n", " def computeGradients(self, X, y):\n", " dJdW1, dJdW2 = self.costFunctionPrime(X, y)\n", " return np.concatenate((dJdW1.ravel(), dJdW2.ravel()))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we train our model now, we see that the fit is still good, but our model is no longer interested in “exactly” fitting our data. Further, our training and testing errors are much closer, and we’ve successfully reduced overfitting on this dataset. To further reduce overfitting, we could increase lambda." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [], "source": [ "NN = Neural_Network(Lambda=0.0001)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [], "source": [ "#Make sure our gradients our correct after making changes:\n", "numgrad = computeNumericalGradient(NN, X, y)\n", "grad = NN.computeGradients(X,y)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "2.6262919862120976e-09" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Should be less than 1e-8:\n", "norm(grad-numgrad)/norm(grad+numgrad)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [], "source": [ "T = trainer(NN)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Optimization terminated successfully.\n", " Current function value: 0.002863\n", " Iterations: 77\n", " Function evaluations: 81\n", " Gradient evaluations: 81\n" ] } ], "source": [ "T.train(X,y,testX,testY)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nYQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plot(T.J)\n", "plot(T.testJ)\n", "grid(1)\n", "xlabel('Iterations')\n", "ylabel('Cost')" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nS6CPiGi4PwHe0TJVYXGwcQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "allOutputs = NN.forward(allInputs)\n", "\n", "#Contour Plot:\n", "yy = np.dot(hoursStudy.reshape(100,1), np.ones((1,100)))\n", "xx = np.dot(hoursSleep.reshape(100,1), np.ones((1,100))).T\n", "\n", "CS = contour(xx,yy,100*allOutputs.reshape(100, 100))\n", "clabel(CS, inline=1, fontsize=10)\n", "xlabel('Hours Sleep')\n", "ylabel('Hours Study')" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\ngaxatYrJkydz6623AvDTTz/RuHFjt8MjHsDVZXTvvPNOhg0bxv3331/dp+JRKHUl0tLSrOpKHD16\nlIiICLkjq6e9LQFlgk6LRJk9toQwwoKZAN715tUxVEfGVYYlXC1rVrfP0ev1bNu2jWeeeYbHHnuM\nESNGeD2jP3v2bEJCQmxq3p45c4YjR47QtWtXAH7++WfefvttRo0axW233YZer2fw4MEEBgaycuVK\nvvnmGz799FOKi4t54403aN68uTen4ypqhtHt27cv2dnZlX4/Z84c7rzzTgBefvllfv/9d/773/96\n+/SqHUpdiXXr1rF8+XL8/Pzo06cP7du3Jzk5mfj4eKu6Eu5ybZXnoKZjebIdkTX9AmUcWcuyWVvn\noFVRh7NlzWolMqPRyNy5c/nrr7947733aNq0qcaztY5z586h1+upXbs2JSUl3HrrrTz77LP069ev\nwueEFvG5c+dYvnw5Z8+e5Y8//uDDDz9k1apV5OXl8cADD9CxY0dycnKIjo7mo48+Yvjw4RQVFREa\nGgogl+FfRkwFa6gZRtcePvroIxYvXsxPP/1UoYjBWWzYsIFJkyZhNpsZM2YMzzzzjIZn6XlYLBYS\nEhIYPHgwkydPJjs726quREJCAl27diU6OrrCy+5KUqu6RHGgMu1NbbigsmCRFufminfrLGwVPghV\nucOHDxMVFcX58+eZPHkyw4cP59FHH/Wqd7tnzx5Gjhwpn9vQoUN5/vnnK3zms88+49133+WJJ57g\n7rvvpl+/fuzYsYMZM2YwYcIEcnJymDp1Kh07duThhx+mrKyM++67Dz8/P9avXy/HxM1ms9d2L26i\n5hvdDRs28NRTT/HLL7+4RR0xm83ExcWRkpJCo0aNSEpKYtWqVbRt21bDs/U8ysvLreoWqHUl0tLS\nyMzMpH79+nJI4rrrriMwMNDhJF11JawckZp0VzTd1rieKlm2B+HdCu935syZrFy5kpKSEm688UZ6\n9+7NkCFDZN3o6oYkSTz66KPs3buXuXPnkpiYSFBQED/++CM//fQT11xzDffccw+NGjXi559/ZvXq\n1WRlZfHPP/8wb9487rrrruqegquo+Ua3VatWGI1GmQ5z/fXX88477zh9nK1btzJr1iw2bNgAXGJA\nCEZETYQkSZw+fVo2wjt27KC4uJg2bdrISTqhKyG28UJsBi4aAoPB4HXvVmytnRWNt1c2a69EW6m6\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#3D plot:\n", "\n", "##Uncomment to plot out-of-notebook (you'll be able to rotate)\n", "#%matplotlib qt\n", "\n", "from mpl_toolkits.mplot3d import Axes3D\n", "fig = plt.figure()\n", "ax = fig.gca(projection='3d')\n", "\n", "ax.scatter(10*X[:,0], 5*X[:,1], 100*y, c='k', alpha = 1, s=30)\n", "\n", "\n", "surf = ax.plot_surface(xx, yy, 100*allOutputs.reshape(100, 100), \\\n", " cmap=cm.jet, alpha = 0.5)\n", "\n", "ax.set_xlabel('Hours Sleep')\n", "ax.set_ylabel('Hours Study')\n", "ax.set_zlabel('Test Score')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And that’s it, we’ve trained and evaluated an Artificial Neural Network to predict your score on a test based on how many hours you’ve slept and studied the night before. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

The End

" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I’ve really enjoyed making these videos, and wanted to say a big thank you to everyone who’s watched and commented. I want to point out that supporting iPython notebooks are linked below and available at welchlabs.com/blog. To be kept up to date on future videos, follow @stephencwelch on twitter, thanks!" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.10" } }, "nbformat": 4, "nbformat_minor": 0 }