diff --git a/Module 1/.ipynb_checkpoints/Getting Familiar with Numpy-checkpoint.ipynb b/Module 1/.ipynb_checkpoints/Getting Familiar with Numpy-checkpoint.ipynb index cb19a1b..3e1dc79 100644 --- a/Module 1/.ipynb_checkpoints/Getting Familiar with Numpy-checkpoint.ipynb +++ b/Module 1/.ipynb_checkpoints/Getting Familiar with Numpy-checkpoint.ipynb @@ -16,10 +16,8 @@ }, { "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": true - }, + "execution_count": 9, + "metadata": {}, "outputs": [], "source": [ "import numpy as np" @@ -34,7 +32,14 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -45,13 +50,13 @@ " [1., 1., 1.]])" ] }, - "execution_count": 5, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "np.matrix(np.ones((3,3)))" + "np.matrix(np.ones([3,3]))" ] }, { @@ -63,16 +68,26 @@ }, { "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": true - }, - "outputs": [], + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "matrix([[1., 0., 0.],\n", + " [0., 1., 0.],\n", + " [0., 0., 1.]])" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# ====================== YOUR CODE HERE ======================\n", "# Instructions: Generate a 3x3 Identity matrix using numpy\n", - " \n", - " \n", + "np.matrix(np.eye(3)) \n", " \n", " \n", " \n", @@ -101,7 +116,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -118,14 +133,25 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "matrix([[20]])" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# ====================== YOUR CODE HERE ======================\n", "# Instructions: Multiply theta transpose by X\n", " \n", - " \n", + "theta.transpose()*X\n", " \n", " \n", " \n", @@ -142,6 +168,34 @@ "matrix([[20]])\n", "```" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -160,7 +214,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.3" + "version": "3.7.0" } }, "nbformat": 4, diff --git a/Module 1/.ipynb_checkpoints/Linear Regression-checkpoint.ipynb b/Module 1/.ipynb_checkpoints/Linear Regression-checkpoint.ipynb index b659194..00a3dee 100644 --- a/Module 1/.ipynb_checkpoints/Linear Regression-checkpoint.ipynb +++ b/Module 1/.ipynb_checkpoints/Linear Regression-checkpoint.ipynb @@ -2,10 +2,8 @@ "cells": [ { "cell_type": "code", - "execution_count": 5, - "metadata": { - "collapsed": true - }, + "execution_count": 1, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", @@ -25,10 +23,8 @@ }, { "cell_type": "code", - "execution_count": 6, - "metadata": { - "collapsed": true - }, + "execution_count": 2, + "metadata": {}, "outputs": [], "source": [ "dataset = make_regression(n_features=1, n_samples=100, noise=5, random_state=42)\n", @@ -45,27 +41,29 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 7, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -75,10 +73,8 @@ }, { "cell_type": "code", - "execution_count": 8, - "metadata": { - "collapsed": true - }, + "execution_count": 4, + "metadata": {}, "outputs": [], "source": [ "alpha = 0.1\n", @@ -87,20 +83,16 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "matrix([[ 1. , 0.93128012],\n", - " [ 1. , 0.08704707],\n", - " [ 1. , -1.05771093],\n", - " [ 1. , 0.31424733],\n", - " [ 1. , -0.47917424]])" + "(100, 1)" ] }, - "execution_count": 9, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -110,7 +102,10 @@ "theta = np.zeros((2,1))\n", "theta = np.matrix(theta)\n", "X = np.matrix(X)\n", - "X[0:5]" + "X[0:5]\n", + "theta.shape\n", + "y = (np.matrix(y_init)).transpose()\n", + "y.shape" ] }, { @@ -122,16 +117,28 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "matrix([[775.33858687]])" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "def computeCost(X, y, theta):\n", " m = len(X)\n", " cost = 0\n", " # ====================== YOUR CODE HERE ======================\n", " # Instructions: Compute the cost of a particular choice of theta\n", - " \n", + " cost = ( np.dot( ( np.dot(X,theta) - y ).transpose() , ( np.dot(X,theta) - y ) ) )/(2*m);\n", + "\n", " \n", " \n", " \n", @@ -150,17 +157,30 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "matrix([[9.7567813]])" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "def gradientDescent(X, y, theta, alpha, iterations):\n", " m = len(X) \n", - " for i in range(len(X)):\n", + " for i in range(iterations):\n", " # ====================== YOUR CODE HERE ======================\n", " # Instructions: Perform a single gradient step on the parameter vector theta. \n", " \n", - " \n", + " theta = theta - np.dot(alpha*(X.transpose()),(np.dot(X,theta) - y))/m;\n", + "\n", + " \n", " \n", " \n", " # ============================================================\n", @@ -179,9 +199,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "plt.scatter(X_init, y_init, color='#003F72')\n", "plt.plot(X_init, X*theta)\n", @@ -197,10 +230,8 @@ }, { "cell_type": "code", - "execution_count": 16, - "metadata": { - "collapsed": true - }, + "execution_count": 9, + "metadata": {}, "outputs": [], "source": [ "from sklearn.linear_model import LinearRegression" @@ -208,7 +239,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -219,17 +250,19 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 11, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAD8CAYAAAB6paOMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3Xl4lOW9//H3NyEGU0AjkuBCErRa\nFKtwiEDb4wKIgrZae4pY0drFX04XW0+rp2Ljaf1ZaK1ie7Webina468/rEs9VStuKFhtj0ES44Ii\nLQqJLAIiGjESILnPH7MwyzOTyfLMM5P5vK6Ly3nuZ5mbuWS+c2/f25xziIhI4SoKugIiIhIsBQIR\nkQKnQCAiUuAUCERECpwCgYhIgVMgEBEpcAoEIiIFToFARKTAKRCIiBS4IUFXIBOHHnqoq6mpCboa\nIiJ5pbm5+S3n3KiersuLQFBTU0NTU1PQ1RARyStm1prJdeoaEhEpcAoEIiIFToFARKTAKRCIiBQ4\nBQIRkQKnQCAiUuAUCERECpwCgYhIDmpu3clFv20kG9sJ58WCMhGRQtHV7fjEDx/jzV37ABg778cs\n/OJM5s2c5Nt7KhCIiOSIJ9Zs5cu378+isPWVFna376Ru0T0AvgUDXwOBmX0EuCum6Cjge8DBwP8B\ntofLv+uce8jPuoiIDIQly5qpX/wwbdt2UlVRzsLLZvf7C3r33i4mL3yc9t2hVsDu9nfY+spz0fMd\nnXupX/xwfgYC59xaYAKAmRUDm4A/AV8EfuqcW+Tn+4uIDKQly5qpW3QPHZ17AWjd2v9f63c3vcF3\n/vhi9HjLS8+y5/1dSde1bdvZp+dnIpuDxTOA15xzGSVBEhHJNfWLH44GgYjIr/XeerdjLzXzl0aD\nwLknHc6GG87hsGElntdXVZT3vsIZymYguBD4Q8zx5Wb2opndZmb+/Q1FRAZIql/lvf21/osV6zjp\n+seix3/599P5+ecmArDwstmUlcYHg7LSEhZeNruXtc1cVgKBmR0AnAvcEy76FXA0oW6jLcDNHvfU\nmVmTmTVt37498bSISNal+lWe6a/1N9/dTc38pdz06FoA6k49ig03nEP1yA9Fr5k3cxINV82hurIc\nM6iuLKfhqjm+zhqybMxRNbPzgK875870OFcDPOicOyHV/bW1tU77EYhI0BLHCAAOGFLM8LJS3n6v\nI+3g8ffuX83/e2Z/z/iq+jMYNbzU1/qaWbNzrran67LVNfQ5YrqFzOywmHPnA6uzVA8RkT5L/LU+\nckQZzjl2tHfgXGjw+OKFd3Douf/BkmXNAKzbtoua+UujQeDac45jww3n+B4EesP3FoGZlQFvAEc5\n594Nl/2eULeQAzYA/+qc25LqGWoRiEguqpm7gNat3uMDZaUlnDLzDF59qzNatvr/nsWw0uwt38q0\nReB7jZxzHcDIhLJL/H5fERG/pRokPmDYCEadUBsNAj+7cALnTTgim1XrFa0sFhHpo6qK8vgWgRnV\nU6ZFD/ft2c3rN57PAUNyO61bbtdORCSHxU71PHzC1LggsHVNC0M2rcn5IABqEYiI9Nm8mZN4Z3cX\nN/0tfop7a+Py0Nz/y+cEVLPeUSAQEemjmvlL4wvat9O25iWqKwcmB1G2KBCIiMRIl1Qucm7bniIq\nPnJS/I3rW0LX/vIL2a90PykQiIiEpUsqB1C36B5GTTyFiph7Ot7ezva/vxQ9D/6li/ZLVlYW95fW\nEYhINqRaF1BdWQ4jj4QRo+LKWxuXJ11bXFREt+sesBTV/ZEz6whERPJFyuRxYyfGHb67uZV32l7z\nvLSruxsYmBTV2ZL785pERLIkMXncERM/TvXU6XFlrY3LUwaBRH1NUZ1tCgQiImGx6wKqp05nSOnQ\n6Ll5Jx7M9pane/1MPzeUGSjqGhIRCZs3cxL1T7yZVL7hhnMAOH7U0LgZRWdPHcdDja/Stm0nRVYU\n7RaK5eeGMgNFgUBEBGjfvZcTr3ssrmzFVacz9tD4vQJS9fd7paj2e0OZgaJAICIFL2lhGPtbAZmK\nBIiB3tg+GxQIRKRgvbz5Xc75+V/jyvqTKjpdiyGXKRCISEEaiFbAYKFAICIF5e5Vb/Cde1+MK1v/\no7Mxs4BqFDwFAhEpGGoFePM9EJjZBuA9oAvY55yrNbNDgLuAGkJbVV7gnMv9ybYikpcuv+M5Hnwx\nfjdcBYD9srWgbJpzbkJMzov5wBPOuWOAJ8LHIiIDrmb+0rgg8KmTDlcQSBBU19B5wOnh17cDTwJX\nB1QXERmE1A2UuWwEAgc8ZmYO+I1zrgGodM5tAXDObTGzisSbzKwOqAOoqqrKQjVFJJel2icgsXzB\nl2dx7fKtcffe+NkTuaB2TEA1z32+p6E2s8Odc5vDX/bLgG8ADzjnDo65ZqdzLuU6bKWhFilsqVbt\nXjqrltsfaYqWJyaIg8JuBeRMGmrn3Obwf7eZ2Z+AycBWMzss3Bo4DNjmdz1EJP9Efu177RHQ0bmX\nhj+vpKu7GysqpmryaXHnH/rmKRx/+IhsVTWv+TpYbGYfMrPhkdfAmcBq4AHg0vBllwL3+1kPEck/\nkVaAVxCI6Orupnrq9KQg0LZyuYJAL/jdIqgE/hReqDEEuMM594iZrQLuNrMvA23AHJ/rISI5KlXf\nf/3ih+O6ghIdMGwEh50Q3+vRtuovuK6u0I5ikjFfA4Fz7nXgJI/yHcAMP99bRHJfuj2C0+Xx9xoL\niGwbmS8ZP3OJNqYRkcB4/eqP7Orllcf/4DFHJQWBBdMrYX0LZqG9hRuumpOXid+CpBQTIhKYVL/6\n27bt5PffvSiuteDVCmB9CxefeS0Xn9njxBhJQ4FARLIqdkyAFLPXqyrK9+f399gxrLVxOWWlJTRc\npeHFgaBAICJZ47UeIFFJcVG0j98rCLStXE51Zf5s+pIPfF9QNhC0oExkcKiZuyDtdFCAkSPKGHb8\n1KTyyMKwVLOMJFnOLCgTEYlINxMoIjEInHPiYfzion8C0s8yUjDoOwUCEcmaqorylC2CTNJDpJpl\ndOmP7gQUDPpK00dFJGsWXjabstKSuLKi4iFJQeCijx7smSMoVYuiq7ubukX3sGRZ88BVtoCoRSAi\nWRHp2+/o3EtxUVE0PUSi1sbl3LG+nPEVQ5PGAtK1KCLrD9Qq6D0NFouI7xL79ocefAiV4ybEXbPx\nub/RtaczelxWWtJjttFEZtC94mYf/gb5KdPBYnUNiYjvYvv2q6dOTwoCrY3L44JAcVGR51jAQ42v\n0nDVHIqLvL+6vFYjS8/UNSQivmvbtpORR41jWMXhceWRhWGxElsCic+JdP147U+gHEN9oxaBiAyo\nJcuaqZm7gKJpV1IzdwFLljVTNWW6ZxCI5AaqriyPyxWUKnto5Bf/vJmTPO/T+EDfqEUgIgMmaeXw\n2IlJq4MTs4TOmznJ8wu8p1/8qe6T3lMgEJEBkzgWkCScJbSnFcHRPENaQZwVCgQiMmDatu30DABt\nK5eHZ/Nkvn+wfvFnj29jBGY2xsxWmNkaM3vZzK4Il19nZpvM7Pnwn7P9qoOIZFfVlPggsLv9HVob\nl2s2T47zs0WwD7jSOfdceN/iZjNbFj73U+fcIh/fW0SyqGb+0qQy7RiWP3wLBM65LcCW8Ov3zGwN\ncIRf7yci2fdOxx4mXL8srmzH+rW8v3UTgNJF54msjBGYWQ0wEVgJfAK43Mw+DzQRajX0nJJQRHzT\nl9TO6VoBEAoCG+66dsDrKgPP93UEZjYMuBf4N+dcO/Ar4GhgAqEWg+d6cDOrM7MmM2vavn2739UU\nKViRKZ+tW3fi3P7UzqkSuD25dltSENjU8kxcEIDMUk5LbvC1RWBmJYSCwBLn3H8DOOe2xpz/LfCg\n173OuQagAUK5hvysp0ghirQCvJK4pUrg5tUKYH0L+zo/SCrWAHH+8HPWkAG3Amuccz+JKT8s5rLz\ngdV+1UFEvMW2AlKJ/UX/r79vSgoCrY0r2N7yNGdPHeeZJkIDxPnDz66hTwCXANMTporeaGYvmdmL\nwDTgWz7WQUQ8eG3wkijyi75m/lIefXlr3LlQN5CLSwSndA/5S2moRQqQnX5l2vMlxUUcfvLpSeWJ\n4wCg1M+5TGmoRSSlVGmcIzINAqCxgMFAKSZEClBXd7dneap9g4umpW5BaCwg/6lFIFKAvFoEiUGg\nvKwkum9wql/9I0eUaSxgEFAgEClAsS2C6qnTk4LArlcaafnemdFjr03nDdjR3hHdc0Dyl7qGRApQ\ndWU5b+zYxZjaU+LK39m4no4trfxu/oVx5bFpoVu37sSAyDSTyAK02Oskv6hFIFKIxk5MCgKtjcsZ\n0r6V382/0PMLfd7MSWy461qqK8tJnGsYWYAm+UktApFBLi6P0NHHwKFj4s6/ubqZzl3vAjDswNIe\nn5cqdYRSSuQvBQKRQSx260ivGUGJU0Iz6eapqij3XJGsaaT5S11DInnMa6P42HOX/uhOysdPTgoC\nrStXpFwX0FM3j9fAsVJK5De1CETy1Nd++kd+ff8znoO2ENr8/cjJpyfdlyoAxErXzaP9hAcfpZgQ\nyTNLljVzxS33saO9w/N8dWU5jJ2YVJ5JAIh9hvYSyH+ZpphQi0Akj8T2+afUzyCgbp7Co0AgkkfS\nZQ3NZDA4HTPUzVOgFAhEclzs9M9UPbleQWB7y9MZv4e6ggqbAoFIDuupK8grALC+hbZtOzlkeBkH\nlpbw9nsdHDK8jPb3d7O3KznZnLqCRIFAJIel6goqGlKStDK48713eXvt8+zZ1wUQHUweOaKMn33j\n09HntW7dSXFREV3d3VRXqitIAgwEZjYL+BlQDCx2zt0QVF1EckXsPsKRL+tEvR0L2NHeQd2ie2i4\nao66f8RTIAvKzKwY+AUwGzge+JyZHR9EXURyReI+wolBYFjlEUlBYNvaFzMaEFYuIEknqBbBZGCd\nc+51ADO7EzgPeCWg+ogEzs8ZQaBcQJJaUIHgCOCNmOONwJSA6iISqNjuoEReAeD7p1dwQHERdS0l\ncYGjpLgIM4uOESRSLiBJJahcQ+ZRFjcxzszqzKzJzJq2b9+epWqJ+CNVTqDE7qBYXkFg4YzRfHHW\nycybOYlLZ9VGdxorLirisk9O4bar5zJyRFnSfZoZJOkE1SLYCMTmwj0S2Bx7gXOuAWiAUIqJ7FVN\nJDNx6Z3TLMRKnALaunUnFy+8gytuuQ8gqTsoXTdQXcv+ZG+3P9IUHUfo6u7m9kea+MQJY3nrgR9k\nXDcRCCjXkJkNAf4OzAA2AauAi5xzL3tdr1xDkmu85veXlZbQcNUcID4h264POlPmBUqUyVhAdWWo\ni8ezFaGFYRIjp3MNOef2mdnlwKOEpo/elioIiOQir4Hdjs69XHHLfXzQuTfu138mvAJA28rlniuJ\n0w36akBY+iKw/Qiccw855451zh3tnFsYVD1E+iLVF+6O9o70CeE8pBoLSDW4W1VRnvacSG9pYxqR\nPhiIL9zqqdOTgsCuVxpZOGM082ZOSrsBjDaHkYGkQCDSB6m+iL1m7AAU2f6JckVDSlKOBQw7sDQ6\nqDtv5iQarppDdWU5ZqH+/4ar5jBv5qS050R6SxvTiPRR4sycs6eO4+4VL6QdGO5pMNgMulfc7Et9\npfDk9GCxSL7zCgK3P9KUcnxg+GFjOKT6mLiyHevXsmvrprgy9fFLEBQIRHrJa11A7N7BiVK1AhJX\nVaqPX4KiQCDSS15TR72CgFcAeGPVU3R37YveU11ZrkVfEjgFApFeymSufqYLw7T4S3KBAoFIL1VV\nlKdcKJbpwrADhhSrG0hyhqaPivRSqqmjqVoBhwwvi5tWOnJEGbddPVfdQJIz1CIQ6aXIF3h01tCU\n9N1AO9o7cE9qSqjkLrUIpKClSg/dk3kzJ7Hhrmt7DAIQyrme6XNFgqBAIAUrdi8A50LTQOsW3RP3\npZ0qUNTMX0rN/KVxzzu78gPPXcMcaJtIyWlaWSwFq2bugrSpnL1STRcVFzPm5NOS7tlwwzkpnxdh\nhqaJSlZpZbFID1JNA42UJ64X8BoM3nDDOT0+LyK21QEoGEjOUNeQFKxU6RwOGV7Goef+R/TX/dCD\nD0kKArs3vxYXBNI9L1FH5151FUlOUSCQguU1DbSkuIh33vsgmjiueup0KsdNiLumtXE5W9takwaA\nvZ6XijaQkVyiQCAFKzGV88gRZXR1O7qc49APj09qBbSteipuMDjxV71XauhUaamVXE5yiS+DxWZ2\nE/ApYA/wGvBF59w7ZlYDrAHWhi9tdM59pafnabBY/BY7MJxJegjILGV0ur2NNUYgfgt6sHgZcE14\nb+IfA9cAV4fPveacm5D6VpHsq1/8MKMmnpJU7hUAIjL5VZ+0+EyzhiQH+RIInHOPxRw2Ap/1431E\nBszYiUlF6YIAkHGuoMiOYiK5KhvTR78E3BVzPNbMWoB24Frn3NNZqIOIp8RFYdBzAIjQl7sMFn0O\nBGb2ODDa41S9c+7+8DX1wD5gSfjcFqDKObfDzCYB95nZeOdcu8fz64A6gKqqqr5WUwa5xJ3CetPt\n0p8gUFykeRYyePQ5EDjnzkh33swuBT4JzHDhEWnnXCfQGX7dbGavAccCSSPBzrkGoAFCg8V9racM\nXl47hWWyWMsrAHilik6n7lNTeldZkRzmy88aM5tFaHD4XOdcR0z5KDMrDr8+CjgGeN2POsjg57VT\nWLrFWrc/2pQUBPa0v01rY/ogMOzAA6ItgOKiIr563sf45bc07CWDh19jBP8JlALLzAz2TxM9Fbje\nzPYBXcBXnHNv+1QHGeR6ShERsWRZM/VPvJl8XePylPsMR5SVlvDrb39W4wEyqPk1a+jDKcrvBe71\n4z2l8KTaKSx2WueP723kV6t2xJ3f+koLu9vTr+xVgjgpJEo6J3lr4WWzPRdrRaZ19nUwWHsJS6FR\nIJC8lWqx1vrOA5OCQNuqv+C6unp8ZmwgESkUCgSS1xIXa/VnSmh1pbqCpDApEMigMPaapckzf9a3\npN0oJpa6g6SQaVWM5L2a+clBYMMN52Sc6lndQVLo1CKQvOXVDRS7WUyqWUUjR5Qx7MBSJYETCVMg\nkMD1JU1ET0EAUs8q+tk3Pq0vfpEY2rxeAuWVr98Ah/fgbSYBIPH5SgEthSrT/QgUCCRQNXMXpB3Q\njWzicsH0iRxTH5864oSKUh78dijllb7wRZIFvTGNSEZ6GtDt6NxL/RNvUv9EfBBobVzO9tISlnw0\ntIq4L8nnRCREgUAClWpAF2DI0DKOmDA1rmzrmufZ/W4oPVVsgrlUyecUCER6pumjEqiFl82mrLQk\nqbx66vSkINDauDwaBCLatu3MOPmciHhTIJBALFnWTM3cBVzywzs4sLSEkSPKABheeUTS5vHXnloB\n61s8n1NVUZ5y7+BM9hQWEXUNSQASZwrtaO+grLQkKQAALJwxmnkzJ3FgSVHaBHPpzolIegoE4ot0\ns3gSN5SpPP6fGDri4Lj7E6eEpkowFzsGoFlDIn2j6aMy4LzWBkSmgc6bOYmiaVdGU0J4tQLSrQsQ\nkcxlOn3UtzECM7vOzDaZ2fPhP2fHnLvGzNaZ2VozO8uvOkgwetpCsqqinOqp05ODwPoWBQGRAPjd\nNfRT59yi2AIzOx64EBgPHA48bmbHOud6ThYveaHHWTxjJyad297yNA1XzfGzWiKSQhCzhs4D7nTO\ndTrn1gPrgMkB1EN8knIWz5TpyRvGrFwO61ui3UYikn1+B4LLzexFM7vNzCLfDkcAb8RcszFcJnkm\nMgW0aNqV1MxdwJJlzYD32oCkbqB33mThjNF0r7iZDXddqyAgEqB+dQ2Z2ePAaI9T9cCvgB8Qyh/2\nA+Bm4EuEcoolShqxNrM6oA6gqqqqP9UUHyQOCHuldahf/LBnN1Bkx7C6Rf+Iu15EgtGvFoFz7gzn\n3Akef+53zm11znU557qB37K/+2cjMCbmMUcCmz2e3eCcq3XO1Y4aNao/1RQf9DQgPHPq+KQgsGV1\nU9y2kbHXi0hwfBssNrPDnHNbwofnA6vDrx8A7jCznxAaLD4GeNaveog/0g0Ie6WKblu5PHkryTTP\nEZHs8XOM4EYze8nMXgSmAd8CcM69DNwNvAI8AnxdM4byj9eA8NCDyqmaEj8W8L3TQukhUi1XURoI\nkeD51iJwzl2S5txCYKFf7y3+S9z9K1V6iMSFZbGUBkIkNyjFhPRJdED43hfg4Mq4c5FFYTVzF6QM\nAl67j4lIMBQIpM/qn3gzZRCA1P3/ZrDhrmt9rZuIZE6BQHrtnJ8/zcub2+PKvFJDpNp0RuMCIrlF\n+xFIj+IWjs1fGhcEpo+rSJkfyGthmcYFRHKPWgSSVmTh2KiJp1A1Nv5cTwniMkkdLSLBUyAQT5H9\nBFq37kyaEbTj9VcZaR8APWcKnTdzkr74RXKcAoEk+dpP/8iv73+GqqnTqU5oBURWBr/vlShERPKS\nAoHEWbKsmd/8+VmqEloBm19oZO8HHdFjDfiKDB4KBBKn/ok3GTP5tLiy2PxAoAFfkcFGgUAA2PDW\n+5y+6Mm4srZnn8R1d8eVGXDprFr1+4sMIgoE4pkkLrEVEOGAhxpf9blGIpJNWkdQwFas3ZYUBBZM\nr2R7y9Np71PGUJHBRS2CApUYAKaPq+C2L5wMgJlFp4560UCxyOCiQDAIROb8Z7Jo65Yn/sHNy/4e\nV5a4MCwy9z9xFzLQQLHIYKRAkOcy2TIyIrEVMH/2OL5y2tEpn62VwSKFwVyqHUNySG1trWtqagq6\nGjmpZu4Czy6c6sryaIbPeYsb+du6HXHne0oPISL5z8yanXO1PV2nFkGeS7dlpHOOsdc8FFf+/788\nhX8+5tBsVE1E8oQvgcDM7gI+Ej48GHjHOTfBzGqANcDa8LlG59xX/KhDoUiZ6nnK9KQgoFaAiHjx\nJRA45+ZGXpvZzcC7Madfc85N8ON9C1HilpFWVETV5NPjrnn6O9MYc0hZALUTkXzga9eQmRlwAZC8\noa0MiNgBXcZOTDq/veVpnmoerQFeEUnJ7wVlpwBbnXP/iCkba2YtZvYXMzvF5/cvCDMmj08KAm3P\nPklr43I6OveGgoSISAp9bhGY2ePAaI9T9c65+8OvPwf8IebcFqDKObfDzCYB95nZeOdce+JDzKwO\nqAOoqqrqazUHvUzSQ2glsIik0+dA4Jw7I915MxsCfAaI9kk45zqBzvDrZjN7DTgWSJob6pxrABog\nNH20r/UcrJ5r28lnfvk/8YXrW7RHsIj0mp9jBGcArzrnNkYKzGwU8LZzrsvMjgKOAV73sQ6DUmIr\n4PMfq+b6805gybLRWgksIr3mZyC4kPhuIYBTgevNbB/QBXzFOfe2j3UYVP7YvJGr7nkhrix2SqhW\nAotIX2hlcQ6LyyE0JX7i1Y3/ciIXnDwmoJqJSD7QyuI8FbtpvAEHjTmaqinxM4K0MExEBpICQY5Y\nsqyZK265jx3tMfsCJ+wb/ObqJkZ/qBhQIBCRgaNAkAMSM4geUnMsw0cfGXdNZEpo2/tZr56IDHIK\nBDmgfvHD4SBgVE+dFnfujaan6d63fxaQpoKKyEBTIMgBbdt2MvSgciqP2z8W8P6Obbz1j9Vx12kq\nqIj4QYEgYHv2dVM16RQYUhIta125AsKzuYzQhvHVlZoKKiL+UCAI0P3Pb+KKO5+PBoEtL61iz/vv\nRc+PHFHGz77xaX35i4ivFAgC8N7uvXz0useix2eNr+SUSrh2/RDaOtBCMBHJKgWCLFv89OssWLom\nerz8ytM4atQwAC4+s8d1HyIiA06BIEu2v9fJyQsfjx5/4eM1XHfu+ABrJCISokCQBT98aA0NT+3P\nrffsd2dQMWJogDUSEdlPgcBHrTve57SbnoweXz1rHF89/ejgKiQi4kGBwAfOOb555/P8+YXN0bIX\nrzuTEUNL0twlIhIMBYIBtnrTu3zylr9GjxfNOYnPTjoyzR0iIsFSIBgg3d2OC37zDE2toR3CystK\neOaaGQwtKQ64ZiIi6SkQDIC//uMtLr51ZfT4d184mWnjKgKskYhI5or6c7OZzTGzl82s28xqE85d\nY2brzGytmZ0VUz4rXLbOzOb35/2DtmdfNx//0RPRIDD+8BG89sOzFQREJK/0t0WwmtAG9b+JLTSz\n4wltVTkeOBx43MyODZ/+BTAT2AisMrMHnHOv9LMeWffAC5v55h9aosd/+trHmVilzKAikn/6FQic\nc2sAzCzx1HnAnc65TmC9ma0DJofPrXPOvR6+787wtXkTCHZ17uOE7z8aPZ55fCUNl0zy+gxERPKC\nX2MERwCNMccbw2UAbySUT/GpDgPu1r+u5wcP7o9Zj3/7ND5cMSzAGomI9F+PgcDMHgdGe5yqd87d\nn+o2jzKH95iES/G+dUAdQFVVVU/V9NVbuzqpXbA/PcTnP1bN9eedEGCNREQGTo+BwDl3Rh+euxEY\nE3N8JBBZXZWqPPF9G4AGgNraWs9gkQ03PPwqv/7La9HjxmtmMPogpYcQkcHDr66hB4A7zOwnhAaL\njwGeJdRSOMbMxgKbCA0oX+RTHfqlbUcHp960Inr872d9hK9P+3CANRIR8Ue/AoGZnQ/cAowClprZ\n8865s5xzL5vZ3YQGgfcBX3fOdYXvuRx4FCgGbnPOvdyvv4EPrrizhfuf399QeeH7Z3LQgUoPISKD\nkzkXWK9Lxmpra11TU5Pv75OYHuLGfzmRC04ek+YOEZHcZWbNzrkeNzrRymJC6SEubGjk2Q1vA3DQ\ngSWs/K7SQ4hIYSj4QPC3dW8xb/H+9BC3XlrLjOMqA6yRiEh2FWwg2NvVzek3Pcmmdz4A4LjDRvDg\nN/6Z4iItDBORwlKQgeDBFzdz+R3700Pc+9WPM6la6SFEpDAVVCB4v3MfJ1z3KJHx8RnjKlh8aa3S\nQ4hIQSuYQPBff1vPdX+OTQ9xKh+uGB5gjUREcsOgDgRLljVTf+ujUHNStOziqVUs+PRHA6yViEhu\n6dd+BLlsybJm6hbdw/Y9+/+KO1av5LgP7QmwViIiuWfQBoL6xQ/T0bmXjp1vsfG5/6G1cTm7dr1P\n/eKHg66aiEhOGbSBoG1baO9gnKNrz+7kchERAQZxIKiq8J4OmqpcRKRQDdpAsPCy2ZSVxieKKyst\nYeFlswOqkYhIbhq0s4bmzZwdMc44AAACw0lEQVQEhMYK2rbtpKqinIWXzY6Wi4hIyKANBBAKBvri\nFxFJb9B2DYmISGYUCERECpwCgYhIgVMgEBEpcAoEIiIFLi/2LDaz7UBr0PXIgkOBt4KuRA7R5xFP\nn0c8fR77pfosqp1zo3q6OS8CQaEws6ZMNpouFPo84unziKfPY7/+fhbqGhIRKXAKBCIiBU6BILc0\nBF2BHKPPI54+j3j6PPbr12ehMQIRkQKnFoGISIFTIMgxZnaTmb1qZi+a2Z/M7OCg6xQkM5tjZi+b\nWbeZFeQMETObZWZrzWydmc0Puj5BM7PbzGybma0Oui5BM7MxZrbCzNaE/51c0ZfnKBDknmXACc65\nE4G/A9cEXJ+grQY+AzwVdEWCYGbFwC+A2cDxwOfM7PhgaxW4/wJmBV2JHLEPuNI5dxwwFfh6X/7/\nUCDIMc65x5xz+8KHjcCRQdYnaM65Nc65tUHXI0CTgXXOudedc3uAO4HzAq5ToJxzTwFvB12PXOCc\n2+Kcey78+j1gDXBEb5+jQJDbvgQ8HHQlJFBHAG/EHG+kD//QZfAzsxpgIrCyt/cO6o1pcpWZPQ6M\n9jhV75y7P3xNPaFm35Js1i0ImXweBcw8yjTVT+KY2TDgXuDfnHPtvb1fgSAAzrkz0p03s0uBTwIz\nXAHM7+3p8yhwG4ExMcdHApsDqovkIDMrIRQEljjn/rsvz1DXUI4xs1nA1cC5zrmOoOsjgVsFHGNm\nY83sAOBC4IGA6yQ5wswMuBVY45z7SV+fo0CQe/4TGA4sM7PnzezXQVcoSGZ2vpltBD4GLDWzR4Ou\nUzaFJw5cDjxKaCDwbufcy8HWKlhm9gfgGeAjZrbRzL4cdJ0C9AngEmB6+PvieTM7u7cP0cpiEZEC\npxaBiEiBUyAQESlwCgQiIgVOgUBEpMApEIiIFDgFAhGRAqdAICJS4BQIREQK3P8COpXoYQkRMlAA\nAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -242,9 +275,35 @@ { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, "outputs": [], "source": [] } @@ -265,7 +324,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.3" + "version": "3.7.0" } }, "nbformat": 4, diff --git a/Module 1/Getting Familiar with Numpy.ipynb b/Module 1/Getting Familiar with Numpy.ipynb index cb19a1b..f94c9aa 100644 --- a/Module 1/Getting Familiar with Numpy.ipynb +++ b/Module 1/Getting Familiar with Numpy.ipynb @@ -17,9 +17,7 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "import numpy as np" @@ -34,7 +32,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -45,13 +43,13 @@ " [1., 1., 1.]])" ] }, - "execution_count": 5, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "np.matrix(np.ones((3,3)))" + "np.matrix(np.ones([3,3]))" ] }, { @@ -63,15 +61,27 @@ }, { "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": true - }, - "outputs": [], + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "matrix([[1., 0., 0.],\n", + " [0., 1., 0.],\n", + " [0., 0., 1.]])" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# ====================== YOUR CODE HERE ======================\n", "# Instructions: Generate a 3x3 Identity matrix using numpy\n", - " \n", + "np.matrix(np.eye(3))\n", + "\n", " \n", " \n", " \n", @@ -101,7 +111,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -118,14 +128,25 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 15, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "matrix([[20]])" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# ====================== YOUR CODE HERE ======================\n", "# Instructions: Multiply theta transpose by X\n", " \n", - " \n", + "theta.transpose()*X\n", " \n", " \n", " \n", @@ -142,6 +163,41 @@ "matrix([[20]])\n", "```" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { @@ -160,7 +216,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.3" + "version": "3.7.0" } }, "nbformat": 4, diff --git a/Module 3/Logistic Regression.ipynb b/Module 3/Logistic Regression.ipynb new file mode 100644 index 0000000..0d0275d --- /dev/null +++ b/Module 3/Logistic Regression.ipynb @@ -0,0 +1,280 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Logistic Regression" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.datasets import make_classification\n", + "\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Generate Dummy Classification Data" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "dataset = make_classification(n_classes=2, n_samples=100, n_features=2, random_state=42, n_informative=2, n_redundant=0, n_repeated=0, n_clusters_per_class=1)\n", + "X_init = dataset[0]\n", + "y_init = dataset[1]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plotting the data" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "matrix([[ 1. , 1.22831184, -0.75717844],\n", + " [ 1. , 0.69840909, -1.38029525],\n", + " [ 1. , 2.54881729, 2.50225822],\n", + " [ 1. , 0.57357881, -1.35297943],\n", + " [ 1. , 0.58590018, -1.33745666]])" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "X_0 = X_init[:,0]\n", + "X_1 = X_init[:,1]\n", + "\n", + "X = np.concatenate((np.ones((100,1)), X_init), axis=1)\n", + "theta = np.zeros((3,1))\n", + "theta = np.matrix(theta)\n", + "X = np.matrix(X)\n", + "X[0:5]" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(x=X_0, y=X_1)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Defining the sigmoid function" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def sigmoid(z):\n", + " g = np.matrix(np.zeros(np.matrix(z).shape))\n", + " \n", + " # ====================== YOUR CODE HERE ======================\n", + " # Instructions: Compute the sigmoid of each value of z (z can be a matrix,\n", + " # vector or scalar).\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " # =============================================================\n", + " return g" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Evalutating sigmoid(0) should give you exactly 0.5" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0.]]\n" + ] + } + ], + "source": [ + "print(sigmoid(0))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Computing the cost J(θ)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def costFunction(theta, X, y):\n", + " m = len(y)\n", + " J = 0;\n", + " grad = np.zeros(theta.shape)\n", + " \n", + " # ====================== YOUR CODE HERE ======================\n", + " # Instructions: Compute the cost of a particular choice of theta.\n", + " # You should set J to the cost.\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " # =============================================================\n", + " return J" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Computing the Gradient" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "def costFunction(theta, X, y):\n", + " m = len(y)\n", + " J = 0;\n", + " grad = np.zeros(theta.shape)\n", + " \n", + " # ====================== YOUR CODE HERE ======================\n", + " # Instructions: Compute the partial derivatives and set grad to the partial\n", + " # derivatives of the cost w.r.t. each parameter in theta\n", + " # \n", + " # Note: grad should have the same dimensions as theta\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " # =============================================================\n", + " return grad.flatten()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Learning parameters using Scipy" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "from scipy.optimize import fmin_bfgs" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}