diff --git a/Module 1/Getting Familiar with Numpy.ipynb b/Module 1/Getting Familiar with Numpy.ipynb index 136bfb5..5b977f4 100644 --- a/Module 1/Getting Familiar with Numpy.ipynb +++ b/Module 1/Getting Familiar with Numpy.ipynb @@ -16,10 +16,8 @@ }, { "cell_type": "code", - "execution_count": 1, - "metadata": { - "collapsed": true - }, + "execution_count": 2, + "metadata": {}, "outputs": [], "source": [ "import numpy as np" @@ -34,20 +32,17 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 4, "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "matrix([[1., 1., 1.],\n", - " [1., 1., 1.],\n", - " [1., 1., 1.]])" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "[[1. 1. 1.]\n", + " [1. 1. 1.]\n", + " [1. 1. 1.]]\n" + ] } ], "source": [ @@ -63,17 +58,25 @@ }, { "cell_type": "code", - "execution_count": 3, - "metadata": { - "collapsed": true - }, - "outputs": [], + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]]\n" + ] + } + ], "source": [ "# ====================== YOUR CODE HERE ======================\n", "# Instructions: Generate a 3x3 Identity matrix using numpy\n", " \n", - " \n", - " \n", + "a=np.matrix(np.eye(3))\n", + "print(a) \n", " \n", " \n", " \n", @@ -101,14 +104,12 @@ }, { "cell_type": "code", - "execution_count": 25, - "metadata": { - "collapsed": true - }, + "execution_count": 10, + "metadata": {}, "outputs": [], "source": [ "X = np.matrix([5,5]).transpose()\n", - "theta = np.matrix([2,2]).transpose()" + "theta = np.matrix([2,2]).transpose()\n" ] }, { @@ -120,17 +121,23 @@ }, { "cell_type": "code", - "execution_count": 30, - "metadata": { - "collapsed": true - }, - "outputs": [], + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[20]]\n" + ] + } + ], "source": [ "# ====================== YOUR CODE HERE ======================\n", "# Instructions: Multiply theta transpose by X\n", " \n", " \n", - " \n", + "print(np.dot(theta.T,X))\n", " \n", " \n", " \n", @@ -164,7 +171,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.3" + "version": "3.7.0" } }, "nbformat": 4, diff --git a/Module 2/Linear Regression.ipynb b/Module 2/Linear Regression.ipynb index 4652c5d..3f13aa7 100644 --- a/Module 2/Linear Regression.ipynb +++ b/Module 2/Linear Regression.ipynb @@ -9,10 +9,8 @@ }, { "cell_type": "code", - "execution_count": 4, - "metadata": { - "collapsed": true - }, + "execution_count": 143, + "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", @@ -32,7 +30,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 144, "metadata": {}, "outputs": [], "source": [ @@ -50,27 +48,29 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 145, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 6, + "execution_count": 145, "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" } ], @@ -80,10 +80,8 @@ }, { "cell_type": "code", - "execution_count": 7, - "metadata": { - "collapsed": true - }, + "execution_count": 146, + "metadata": {}, "outputs": [], "source": [ "alpha = 0.1\n", @@ -92,9 +90,136 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 147, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[ 1. 0.93128012]\n", + " [ 1. 0.08704707]\n", + " [ 1. -1.05771093]\n", + " [ 1. 0.31424733]\n", + " [ 1. -0.47917424]\n", + " [ 1. 0.64768854]\n", + " [ 1. -0.46341769]\n", + " [ 1. 0.54256004]\n", + " [ 1. 0.61167629]\n", + " [ 1. 1.0035329 ]\n", + " [ 1. 0.8219025 ]\n", + " [ 1. 1.53803657]\n", + " [ 1. 0.73846658]\n", + " [ 1. -0.21967189]\n", + " [ 1. -0.8084936 ]\n", + " [ 1. 0.09176078]\n", + " [ 1. -1.95967012]\n", + " [ 1. 0.51326743]\n", + " [ 1. 1.03099952]\n", + " [ 1. -2.6197451 ]\n", + " [ 1. 0.49671415]\n", + " [ 1. 0.09707755]\n", + " [ 1. -0.46572975]\n", + " [ 1. 0.91540212]\n", + " [ 1. 1.56464366]\n", + " [ 1. 1.46564877]\n", + " [ 1. -0.60063869]\n", + " [ 1. -0.03582604]\n", + " [ 1. -0.60170661]\n", + " [ 1. -1.19620662]\n", + " [ 1. 0.35711257]\n", + " [ 1. 0.37569802]\n", + " [ 1. 0.26105527]\n", + " [ 1. -0.5297602 ]\n", + " [ 1. -0.90802408]\n", + " [ 1. 0.19686124]\n", + " [ 1. -0.29900735]\n", + " [ 1. 0.36163603]\n", + " [ 1. 0.82254491]\n", + " [ 1. -0.29169375]\n", + " [ 1. 0.36139561]\n", + " [ 1. -0.676922 ]\n", + " [ 1. 1.52302986]\n", + " [ 1. -0.51827022]\n", + " [ 1. -0.23415337]\n", + " [ 1. -0.39210815]\n", + " [ 1. -0.3011037 ]\n", + " [ 1. -0.64511975]\n", + " [ 1. 0.32875111]\n", + " [ 1. 0.2088636 ]\n", + " [ 1. -0.32766215]\n", + " [ 1. 0.00511346]\n", + " [ 1. -0.23413696]\n", + " [ 1. 1.47789404]\n", + " [ 1. -0.38508228]\n", + " [ 1. 0.34361829]\n", + " [ 1. 0.33126343]\n", + " [ 1. -0.18565898]\n", + " [ 1. -0.23458713]\n", + " [ 1. -1.98756891]\n", + " [ 1. 0.32408397]\n", + " [ 1. -0.2257763 ]\n", + " [ 1. -1.10633497]\n", + " [ 1. -0.70205309]\n", + " [ 1. -1.46351495]\n", + " [ 1. 0.96864499]\n", + " [ 1. -1.72491783]\n", + " [ 1. -1.91328024]\n", + " [ 1. -0.56228753]\n", + " [ 1. 0.76743473]\n", + " [ 1. 0.81252582]\n", + " [ 1. -1.4123037 ]\n", + " [ 1. -1.47852199]\n", + " [ 1. -1.22084365]\n", + " [ 1. -0.83921752]\n", + " [ 1. 1.57921282]\n", + " [ 1. 0.97554513]\n", + " [ 1. 0.24196227]\n", + " [ 1. 0.29612028]\n", + " [ 1. -0.54438272]\n", + " [ 1. -1.76304016]\n", + " [ 1. 0.11092259]\n", + " [ 1. 0.17136828]\n", + " [ 1. -1.32818605]\n", + " [ 1. 1.05712223]\n", + " [ 1. -0.11564828]\n", + " [ 1. -0.46947439]\n", + " [ 1. -0.01349722]\n", + " [ 1. -1.01283112]\n", + " [ 1. -0.1382643 ]\n", + " [ 1. -1.15099358]\n", + " [ 1. 1.35624003]\n", + " [ 1. 0.0675282 ]\n", + " [ 1. -0.50175704]\n", + " [ 1. -0.46063877]\n", + " [ 1. 1.85227818]\n", + " [ 1. -1.42474819]\n", + " [ 1. -0.71984421]\n", + " [ 1. -0.07201012]\n", + " [ 1. -0.30921238]]\n", + "y\n", + "[[ 44.82629315 -3.21591488 -39.53420495 11.82188621 -18.86981858\n", + " 29.29991387 -24.70622358 14.2795301 24.50270775 37.11608105\n", + " 35.03642415 70.54128622 33.50608776 -3.12243645 -40.77943892\n", + " 8.22356352 -83.62648371 20.73798833 35.83484725 -113.68924864\n", + " 18.75581303 3.43146178 -24.40300326 33.39481349 70.01262572\n", + " 62.87689711 -18.04529328 0.62701293 -29.51910015 -56.01525515\n", + " 17.59607169 22.60212727 8.33190772 -21.90287349 -40.77547006\n", + " 2.10283691 -16.33979956 11.33918848 42.86695446 -5.2139893\n", + " 18.93493702 -29.87792391 62.74263748 -21.16434202 -8.69912535\n", + " -11.13916991 -13.37308645 -32.58014866 18.60833305 8.763918\n", + " -9.79172956 3.76398751 -19.88470887 75.36103437 -3.37794451\n", + " 19.56230855 16.91550435 -3.51260281 -9.32953071 -84.16128599\n", + " 20.3470541 -9.46105196 -45.30547407 -31.56677978 -62.79943283\n", + " 44.13401181 -75.29587979 -82.02546903 -23.45081364 39.05336371\n", + " 39.16245882 -61.05860157 -63.65645671 -46.59141018 -28.53287875\n", + " 61.20279651 46.805681 10.61150986 7.73015309 -26.59981444\n", + " -70.95899518 8.49573522 2.57964596 -52.19451344 46.90605388\n", + " -1.72454548 -19.68913146 -3.03055142 -39.8879149 -7.21698835\n", + " -52.05287759 63.23647939 6.65518576 -21.11653937 -21.01129428\n", + " 77.70060425 -65.21951985 -34.47465118 0.66672362 -17.24259558]]\n" + ] + }, { "data": { "text/plain": [ @@ -105,17 +230,20 @@ " [ 1. , -0.47917424]])" ] }, - "execution_count": 8, + "execution_count": 147, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X = np.concatenate((np.ones((100,1)), X_init), axis=1)\n", + "print(X)\n", "theta = np.zeros((2,1))\n", "theta = np.matrix(theta)\n", "X = np.matrix(X)\n", - "y=y_init\n", + "y=np.matrix(y_init)\n", + "print(\"y\")\n", + "print(y)\n", "X[0:5]" ] }, @@ -128,32 +256,36 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 148, "metadata": {}, "outputs": [ { - "ename": "NameError", - "evalue": "name 'y' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 11\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mcost\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 12\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 13\u001b[0;31m \u001b[0mcomputeCost\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtheta\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;31mNameError\u001b[0m: name 'y' is not defined" - ] + "data": { + "text/plain": [ + "775.33858687336" + ] + }, + "execution_count": 148, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ "def computeCost(X, y, theta):\n", " m = len(X)\n", " cost = 0\n", + "\n", " # ====================== YOUR CODE HERE ======================\n", " # Instructions: Compute the cost of a particular choice of theta\n", + " res=np.dot(X,theta)\n", + " #print(res)\n", + " diff=np.subtract(res,y.T)\n", + " cost=(np.square(diff).mean())/2\n", " \n", + " #print(res)\n", + " #print(y.T)\n", " \n", - " \n", - " \n", - " # ============================================================\n", + " \n", " return cost\n", "\n", "computeCost(X, y, theta)" @@ -168,33 +300,1541 @@ }, { "cell_type": "code", - "execution_count": 10, - "metadata": {}, + "execution_count": 149, + "metadata": { + "scrolled": false + }, "outputs": [ { - "ename": "IndentationError", - "evalue": "expected an indented block (, line 11)", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m11\u001b[0m\n\u001b[0;31m return theta\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mIndentationError\u001b[0m\u001b[0;31m:\u001b[0m expected an indented block\n" + "name": "stdout", + "output_type": "stream", + "text": [ + "652.6356734699986\n", + "549.9115327824619\n", + "463.8551484568827\n", + "391.7148279222097\n", + "331.20181447175133\n", + "280.41084477378274\n", + "237.7546149157965\n", + "201.90967212890845\n", + "171.7717006798362\n", + "146.41853835976346\n", + "125.07956017416954\n", + "107.11031091159752\n", + "91.97146851134187\n", + "79.21138389027315\n", + "68.45157688886013\n", + "59.37467774727747\n", + "51.71439348706629\n", + "45.247152381323076\n", + "39.78514030011739\n", + "35.17049252269766\n", + "31.27044557381165\n", + "27.973287366323447\n", + "25.184971720529735\n", + "22.826286247400695\n", + "20.83048149907776\n", + "19.141284917579384\n", + "17.71123603487977\n", + "16.500290072079657\n", + "15.474645944052043\n", + "14.605762020250655\n", + "13.86952908643274\n", + "13.245575013010926\n", + "12.71667984228561\n", + "12.268283506072633\n", + "11.888071298528427\n", + "11.565624656360962\n", + "11.292126822737139\n", + "11.0601146603537\n", + "10.863269289828416\n", + "10.696239408567179\n", + "10.554492131333461\n", + "10.434187019038307\n", + "10.332069653468022\n", + "10.245381694944081\n", + "10.171784845700044\n", + "10.109296549405647\n", + "10.05623559954418\n", + "10.011176116907025\n", + "9.972908598191161\n", + "9.940406940988487\n", + "9.912800521535322\n", + "9.889350545626007\n", + "9.869430014420107\n", + "9.852506749116188\n", + "9.838129004666023\n", + "9.825913275409746\n", + "9.815533956862442\n", + "9.806714579669483\n", + "9.799220375479765\n", + "9.792851971427702\n", + "9.787440041132134\n", + "9.7828407665086\n", + "9.778931987004588\n", + "9.775609931740187\n", + "9.77278644600447\n", + "9.770386637070908\n", + "9.768346875734277\n", + "9.766613099656896\n", + "9.765139372814671\n", + "9.763886662281973\n", + "9.762821799481179\n", + "9.761916598011995\n", + "9.761147104403921\n", + "9.76049296172015\n", + "9.759936868980585\n", + "9.759464121949046\n", + "9.75906222301601\n", + "9.75872054976241\n", + "9.758430073363508\n", + "9.758183119326423\n", + "9.757973164188023\n", + "9.757794662760901\n", + "9.75764290133148\n", + "9.757513872906703\n", + "9.757404171194027\n", + "9.757310900498572\n", + "9.757231599145292\n", + "9.757164174393992\n", + "9.757106847120768\n", + "9.75705810479912\n", + "9.757016661534406\n", + "9.756981424092873\n", + "9.756951463025336\n", + "9.75692598812101\n", + "9.756904327541768\n", + "9.75688591008457\n", + "9.75687025010288\n", + "9.756856934688253\n", + "9.756845612773123\n", + "9.756835985866678\n", + "9.75682780017906\n", + "9.756820839925627\n", + "9.756814921634504\n", + "9.756809889306954\n", + "9.756805610302798\n", + "9.756801971842217\n", + "9.756798878031542\n", + "9.756796247334591\n", + "9.75679401042269\n", + "9.756792108346747\n", + "9.756790490983066\n", + "9.756789115711912\n", + "9.756787946293995\n", + "9.756786951915146\n", + "9.756786106374115\n", + "9.756785387391915\n", + "9.756784776024636\n", + "9.756784256164137\n", + "9.756783814113547\n", + "9.756783438226256\n", + "9.756783118599023\n", + "9.756782846810967\n", + "9.75678261570169\n", + "9.756782419182581\n", + "9.756782252076384\n", + "9.75678210998076\n", + "9.756781989152321\n", + "9.75678188640797\n", + "9.756781799041047\n", + "9.75678172475002\n", + "9.756781661577817\n", + "9.756781607860304\n", + "9.75678156218242\n", + "9.756781523340893\n", + "9.75678149031255\n", + "9.756781462227348\n", + "9.756781438345472\n", + "9.756781418037827\n", + "9.756781400769482\n", + "9.756781386085557\n", + "9.756781373599258\n", + "9.756781362981682\n", + "9.75678135395315\n", + "9.75678134627584\n", + "9.756781339747524\n", + "9.75678133419624\n", + "9.756781329475766\n", + "9.756781325461764\n", + "9.756781322048496\n", + "9.756781319146059\n", + "9.756781316678\n", + "9.75678131457931\n", + "9.75678131279471\n", + "9.756781311277193\n", + "9.756781309986787\n", + "9.756781308889499\n", + "9.756781307956434\n", + "9.75678130716301\n", + "9.75678130648833\n", + "9.756781305914616\n", + "9.756781305426772\n", + "9.756781305011934\n", + "9.756781304659182\n", + "9.756781304359217\n", + "9.75678130410415\n", + "9.756781303887255\n", + "9.756781303702818\n", + "9.756781303545985\n", + "9.756781303412625\n", + "9.756781303299219\n", + "9.756781303202787\n", + "9.756781303120789\n", + "9.756781303051056\n", + "9.756781302991767\n", + "9.756781302941354\n", + "9.756781302898474\n", + "9.756781302862022\n", + "9.756781302831019\n", + "9.756781302804658\n", + "9.75678130278224\n", + "9.756781302763182\n", + "9.756781302746973\n", + "9.756781302733188\n", + "9.756781302721468\n", + "9.756781302711499\n", + "9.756781302703025\n", + "9.756781302695822\n", + "9.75678130268969\n", + "9.75678130268448\n", + "9.756781302680052\n", + "9.756781302676282\n", + "9.756781302673078\n", + "9.756781302670355\n", + "9.75678130266804\n", + "9.756781302666068\n", + "9.756781302664395\n", + "9.756781302662967\n", + "9.756781302661757\n", + "9.756781302660725\n", + "9.75678130265985\n", + "9.756781302659109\n", + "9.756781302658474\n", + "9.756781302657934\n", + "9.756781302657476\n", + "9.756781302657087\n", + "9.756781302656757\n", + "9.756781302656472\n", + "9.756781302656234\n", + "9.756781302656028\n", + "9.756781302655858\n", + "9.756781302655712\n", + "9.756781302655588\n", + "9.75678130265548\n", + "9.756781302655389\n", + "9.756781302655309\n", + "9.756781302655247\n", + "9.75678130265519\n", + "9.756781302655142\n", + "9.756781302655105\n", + "9.75678130265507\n", + "9.756781302655037\n", + "9.756781302655016\n", + "9.756781302654995\n", + "9.756781302654975\n", + "9.756781302654963\n", + "9.756781302654948\n", + "9.75678130265494\n", + "9.756781302654927\n", + "9.756781302654922\n", + "9.756781302654911\n", + "9.756781302654906\n", + "9.756781302654902\n", + "9.756781302654899\n", + "9.756781302654895\n", + "9.75678130265489\n", + "9.756781302654886\n", + "9.756781302654886\n", + "9.756781302654884\n", + "9.75678130265488\n", + "9.756781302654883\n", + "9.756781302654883\n", + "9.75678130265488\n", + "9.756781302654877\n", + "9.756781302654879\n", + "9.756781302654877\n", + "9.756781302654877\n", + "9.756781302654877\n", + "9.756781302654877\n", + "9.756781302654876\n", + "9.756781302654877\n", + "9.756781302654874\n", + "9.756781302654877\n", + "9.756781302654876\n", + "9.756781302654876\n", + "9.756781302654876\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654872\n", + "9.756781302654876\n", + "9.756781302654874\n", + "9.756781302654872\n", + "9.756781302654877\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654876\n", + "9.756781302654876\n", + "9.756781302654872\n", + "9.756781302654874\n", + "9.756781302654877\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654877\n", + "9.756781302654872\n", + "9.756781302654872\n", + "9.756781302654876\n", + "9.756781302654876\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654877\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654877\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654872\n", + "9.756781302654874\n", + "9.756781302654877\n", + "9.756781302654874\n", + "9.756781302654872\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654872\n", + "9.756781302654874\n", + "9.756781302654872\n", + "9.756781302654872\n", + "9.75678130265487\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654876\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654876\n", + "9.756781302654876\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654877\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654876\n", + "9.756781302654874\n", + "9.756781302654872\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654876\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654877\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654874\n", + "9.756781302654877\n", + "9.756781302654876\n", + "9.756781302654876\n", + "9.756781302654877\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654872\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654874\n", + "9.756781302654877\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654877\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654877\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654877\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654872\n", + "9.756781302654874\n", + "9.75678130265487\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654877\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654876\n", + "9.756781302654876\n", + "9.756781302654877\n", + "9.756781302654877\n", + "9.756781302654877\n", + "9.756781302654877\n", + "9.756781302654877\n", + "9.756781302654876\n", + "9.756781302654874\n", + "9.756781302654876\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654872\n", + "9.756781302654872\n", + "9.756781302654872\n", + "9.756781302654872\n", + "9.756781302654872\n", + "9.756781302654872\n", + "9.756781302654872\n", + "9.756781302654872\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n", + "9.756781302654874\n" ] } ], "source": [ "def gradientDescent(X, y, theta, alpha, iterations):\n", + " \n", " m = len(X) \n", - " for i in range(len(X)):\n", - " # ====================== YOUR CODE HERE ======================\n", - " # Instructions: Perform a single gradient step on the parameter vector theta. \n", - " \n", - " \n", - " \n", - " \n", - " # ============================================================\n", - " return theta\n", + " res=np.dot(X,theta)\n", + " diff=np.subtract(res,y.T)\n", + " #print(np.dot(X_init.T,diff))\n", + " newsum=(np.dot(X_init.T,diff)).sum()\n", + " \n", + " sumofdiff=diff.sum()\n", + " theta[0][0]-=(alpha/m)*sumofdiff\n", + " theta[1][0]-=(alpha/m)*newsum\n", "\n", - "theta = gradientDescent(X, y, theta, alpha, iterations)\n", - "computeCost(X, y, theta)" + " return theta\n", + "for i in range(iterations):\n", + " theta = gradientDescent(X, y, theta, alpha, iterations)\n", + " print(computeCost(X, y, theta))" ] }, { @@ -206,17 +1846,19 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 142, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\nBACQcf8PacIJsPHNxrEAAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -235,10 +1877,8 @@ }, { "cell_type": "code", - "execution_count": 12, - "metadata": { - "collapsed": true - }, + "execution_count": 153, + "metadata": {}, "outputs": [], "source": [ "from sklearn.linear_model import LinearRegression" @@ -246,18 +1886,9 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 154, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/vrishank/anaconda3/lib/python3.6/site-packages/scipy/linalg/basic.py:1226: RuntimeWarning: internal gelsd driver lwork query error, required iwork dimension not returned. This is likely the result of LAPACK bug 0038, fixed in LAPACK 3.2.2 (released July 21, 2010). Falling back to 'gelss' driver.\n", - " warnings.warn(mesg, RuntimeWarning)\n" - ] - } - ], + "outputs": [], "source": [ "model = LinearRegression()\n", "model.fit(X_init, y_init)\n", @@ -266,32 +1897,32 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 155, "metadata": {}, "outputs": [ { "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" } ], "source": [ "plt.scatter(X_init, y_init, color='#003F72')\n", - "plt.plot(X_init, y_preds, color='orange')\n", + "plt.plot(X_init, y_preds, color='red')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [] } @@ -312,7 +1943,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..ee55e66 --- /dev/null +++ b/Module 3/Logistic Regression.ipynb @@ -0,0 +1,426 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Logistic Regression" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "from sklearn.datasets import make_classification\n", + "%matplotlib inline\n", + "\n", + "import os" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Reading Classification Data" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Exam 1Exam 2Admitted
00.5594262.3886940
11.312175-0.7173151
2-1.559849-1.9248740
3-2.281386-0.1368560
41.560704-0.4279581
\n", + "
" + ], + "text/plain": [ + " Exam 1 Exam 2 Admitted\n", + "0 0.559426 2.388694 0\n", + "1 1.312175 -0.717315 1\n", + "2 -1.559849 -1.924874 0\n", + "3 -2.281386 -0.136856 0\n", + "4 1.560704 -0.427958 1" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data=make_classification(n_samples=100, n_features=2, n_informative=2, n_redundant=0, random_state=42)\n", + "d = {'Exam 1': data[0][:,0], 'Exam 2': data[0][:,1], 'Admitted': data[1]}\n", + "data = pd.DataFrame(d)\n", + "data.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Plotting the data" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0,0.5,'Exam 2 Score')" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtMAAAHjCAYAAADhZpMBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3X143HWd7//Xe6BSSQYV7HUWA1KWRtdyY5VwPHhyzCIsYstNGtaNuJd39Leoi6dpi8fW9fzU9XLFxT3G9OdRli03uy5bcoAk4EV3vUGEDct6TNmuAgVTd8vaDS6likyCyM28f3988u1MJjPJzGRmvnPzfFxXrm/m853MfGosfeWT9+f9MXcXAAAAgNIl4p4AAAAA0KgI0wAAAECZCNMAAABAmQjTAAAAQJkI0wAAAECZCNMAAABAmQjTAAAAQJkI0wAAAECZCNMAAABAmY6MewKlePWrX+0rV66MexoAAABocrt3737K3Vcs9ryGCtMrV67UxMRE3NMAAABAkzOzx4t5HmUeAAAAQJkI0wAAAECZCNMAAABAmRqqZjqfF154QQcOHNBzzz0X91Qwa/ny5TrhhBO0bNmyuKcCAABQVQ0fpg8cOKBkMqmVK1fKzOKeTstzdx06dEgHDhzQySefHPd0AAAAqqrhyzyee+45HXfccQTpOmFmOu644/hNAQAAaAkNH6YlEaTrDN8PAADQKpoiTAMAAABxaLkwnUpJO3ZIW7eGaypVmdcdHR2VmenRRx/Ne/8DH/iAbrvttqJfb2pqSr/7u78rSdqzZ4927dp1+N73vvc9/cM//EPJc1y5cqWeeuqpkr8OAAAA+bVUmB4flzo6pE2bpGuuCdeOjjC+VDt37lR3d7duueWWpb+YpNe85jWHw3elwjQAAAAqq2XCdColrV0brjMzYWxmJjM+PV3+a09PT+v+++/X9ddffzhMu7s++tGPavXq1Vq3bp2efPLJw89fuXKl/uiP/khnn322urq69OCDD+od73iHTjnlFF177bWSpP379+u0007T888/r0996lMaHh7WmjVr9Kd/+qe69tprNTg4qDVr1ujv//7vdfDgQV166aU666yzdNZZZ+n++++XJB06dEjnn3++3vSmN+lDH/qQ3L38PyQAAADmafjWeMUaHpbS6fz30ulwf8OG8l57bGxMF1xwgV73utfp2GOP1YMPPqj9+/frscce049+9CP9x3/8h1avXq3LL7/88NeceOKJeuCBB7R582Z94AMf0P3336/nnntOp556qj784Q8fft7LXvYyffazn9XExIS+8pWvSJJ+9atfqb29XR/72MckSe95z3u0efNmdXd369/+7d/0jne8Q3v37tUf//Efq7u7W5/61Kd011136brrrivvDwgAAIC8WiZMT05mVqRzzcxI+/aV/9o7d+7Upk2bJEnvfve7tXPnTr3wwgu67LLLdMQRR+g1r3mN3v72t8/5mosvvliSdPrpp2t6elrJZFLJZFLLly/X008/XdL7f+c739Ejjzxy+PEzzzyjVCql++67TyMjI5KkdevW6VWvelX5f0gAAADM0zJhurNTamvLH6jb2qRVq8p73UOHDum73/2uHnroIZmZXnrpJZmZ1q9fv2CLuKOOOkqSlEgkDn8ePX7xxRdLmkM6ndYDDzygl7/85fPu0aYOAACgelqmZrq/X0oU+NMmEuF+OW677Ta9733v0+OPP679+/frpz/9qU4++WQde+yxuuWWW/TSSy/piSee0D333FP23JPJpFJZbUdyH59//vmHS0CksGFRkt72trfp5ptvliT97d/+rX7xi1+UPQcAAADM1zJhOpmUdu0K17a2MNbWlhlvby/vdXfu3Kn169fPGbv00kv1s5/9TJ2dnTr99NP1kY98RD09PWXP/ZxzztEjjzyiNWvWaHh4WBdddJFGR0cPb0Dcvn27JiYmdMYZZ2j16tWHNzF++tOf1n333ac3v/nN+ta3vqXXvva1Zc8BAAAA81kjdXjo6uryiYmJOWN79+7VG97whqJfY3o6bDbcty+UdvT3lx+kUVip3xcAAIB6Yma73b1rsee1TM10pL29/K4dAIAG4i6NjUm9vVL2/pFC4wBQhpYp8wAAtJixMamvT9q8OQRoKVw3bw7jY2Pxzg9AU2i5lWkAQIvo7ZUGBqShofB4cDAE6aGhMN7bG+/8ADQFwjQAoDmZhQAthQAdheqBgTBOiQeACqDMAwDQvLIDdYQgDaCCCNMAgOYV1Uhny66hBoAlap0w7S6Njs7/D2ih8RKYma666qrDj//sz/5Mn/nMZxb8mrGxsTlHgOfzxje+UZdddlnB+/v379dpp51W0lw/9alP6Tvf+Y4k6ctf/rKeffbZw/c+//nPl/RaknTTTTfpox/9aMlfBwBVFwXpqEY6nc7UUBOoAVRI64TpKu7qPuqoozQyMqKnnnqqhOksHKb37t2rdDqt++67TzP5zkAv02c/+1mdd955kioTpgGgbo2NZYJ0VNoxOJgJ1HTzwBKkUtKOHdLWreGadTAxWkzrbECs4q7uI488UldccYUGBwf1J3/yJ3PuPf7447r88st18OBBrVixQjfeeKMOHDigO++8U/fee68+97nP6fbbb9cpp5wy5+v+5m/+Ru9973u1d+9e3XnnnYdXqHfv3q3LL79cRx99tLq7uw8//6abbtLY2JheeuklPfTQQ7rqqqv0/PPP6+tf/7qOOuoo7dq1S8cee6w+8IEP6MILL9TU1JSmpqZ0zjnn6NWvfrXe8pa36Fe/+pXWrFmjU089VTfffLP++q//Wtu3b9fzzz+vt7zlLfrqV7+qI444QjfeeKOuvvpqHX/88Xrd616no446quz/7QCganp7pZGRuf2ko0Dd00M3D5RtfFxauzb8smNmJpyovGVLOFE5659mtAp3b5iPM88803M98sgj88YKSqfdBwbcw5p0+BgYCONL0NbW5r/85S/9pJNO8qefftq/+MUv+qc//Wl3d7/wwgv9pptucnf366+/3i+55BJ3d3//+9/vt956a8HX7Ozs9P379/s3v/lNv+iiiw6Pn3766f69733P3d0/9rGP+amnnuru7jfeeKOfcsop/swzz/iTTz7pxxxzjH/ta19zd/dNmzb54ODgvPc96aST/ODBg3P+HJFHHnnEL7zwQn/++efd3f0jH/mI/+Vf/qVPTU35iSee6E8++aT/+te/9re+9a1+5ZVXzpt/Sd8XAAAaxDPPuCeTc6NE9JFMuqdScc8QlSJpwovIp61T5iFVdVf3Mccco/e9733avn37nPEHHnhA73nPeyRJ733vezU+Pr7oa/3gBz/QihUrdNJJJ+ncc8/Vgw8+qF/84hf65S9/qaefflo9PT2HXy/bOeeco2QyqRUrVugVr3iFLrroIknS6aefrv3795f057n77ru1e/dunXXWWVqzZo3uvvtu/cu//Iu+//3v67d/+7e1YsUKvexlL1N/f39JrwsAQCMbHg4r0vmk0+F+s6K0Jb/WCtNV3tW9adMmXX/99QvWOFsRwX3nzp169NFHtXLlSp1yyil65plndPvtt8vd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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "positive = data[data['Admitted'].isin([1])]\n", + "negative = data[data['Admitted'].isin([0])]\n", + "\n", + "fig, ax = plt.subplots(figsize=(12,8))\n", + "ax.scatter(positive['Exam 1'], positive['Exam 2'], s=50, c='b', marker='o', label='Admitted')\n", + "ax.scatter(negative['Exam 1'], negative['Exam 2'], s=50, c='r', marker='x', label='Not Admitted')\n", + "ax.legend()\n", + "ax.set_xlabel('Exam 1 Score')\n", + "ax.set_ylabel('Exam 2 Score')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Defining the sigmoid function" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "def sigmoid(z):\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", + " sig=1/(1+np.exp(-z))\n", + "\n", + " \n", + " # =============================================================\n", + " return sig" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Evalutating sigmoid(0) should give you exactly 0.5" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "nums = np.arange(-10, 10, step=1)\n", + "\n", + "fig, ax = plt.subplots(figsize=(12,8))\n", + "ax.plot(nums, sigmoid(nums), 'r')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Computing the cost J(θ)" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [], + "source": [ + "def cost(theta, X, y):\n", + " theta = np.matrix(theta)\n", + " X = np.matrix(X)\n", + " y = np.matrix(y)\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", + " J=-np.mean(y*np.log(sigmoid(np.dot(theta,X.T)))+(1-y)*np.log(1-sigmoid(np.dot(theta,X.T))))\n", + " \n", + " \n", + " \n", + " \n", + " # =============================================================\n", + " return J" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [], + "source": [ + "data.insert(0, 'Ones', 1)\n", + "\n", + "cols = data.shape[1]\n", + "X = data.iloc[:,0:cols-1]\n", + "y = data.iloc[:,cols-1:cols]\n", + "\n", + "X = np.array(X.values)\n", + "y = np.array(y.values)\n", + "theta = np.zeros(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.6931471805599453" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cost(theta, X, y)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Evaluating the cost should return 0.69314718055994529" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Computing the Gradient" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "def gradient(theta, X, y):\n", + " theta = np.matrix(theta)\n", + " X = np.matrix(X)\n", + " y = np.matrix(y)\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", + " grad=np.dot(sigmoid(np.dot(theta,X.T))-y.T,X)\n", + " \n", + " \n", + " \n", + " # =============================================================\n", + " return grad" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Learning parameters using Scipy" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.6931471805599452" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import scipy.optimize as opt\n", + "result = opt.fmin_tnc(cost, x0=theta, fprime=gradient, args=(X, y))\n", + "cost(result[0], X, y)" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "accuracy = 93.000000\n" + ] + } + ], + "source": [ + "def predict(theta, X):\n", + " probability = sigmoid(X * theta.T)\n", + " return [1 if x >= 0.5 else 0 for x in probability]\n", + "\n", + "theta_min = np.matrix(result[0])\n", + "predictions = predict(theta_min, X)\n", + "correct = [1 if ((a == 1 and b == 1) or (a == 0 and b == 0)) else 0 for (a, b) in zip(predictions, y)]\n", + "accuracy = (sum(map(int, correct)) % len(correct))\n", + "print ('accuracy = %f' % (accuracy))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Final accuracy should be 99.00%" + ] + } + ], + "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.7.0" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}