{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# The Sigmoid Function in Logistic Regression\n", "\n", "In learning about logistic regression, I was at first confused as to why a sigmoid function was used to map from the inputs to the predicted output. I mean, sure, it's a nice function that cleanly maps from any real number to a range of $-1$ to $1$, but where did it come from? This notebook hopes to explain.\n", "\n", "## Logistic Regression\n", "\n", "With classification, we have a sample with some attributes (a.k.a features), and based on those attributes, we want to know whether it belongs to a binary class or not. The probability that the output is 1 given its input could be represented as:\n", "\n", "$$P(y=1 \\mid x)$$\n", "\n", "If the data samples have $n$ features, and we think we can represent this probability via some linear combination, we could represent this as:\n", "\n", "$$P(y=1 \\mid x) = w_o + w_1x_1 + w_2x_2 + ... + w_nx_n$$\n", "\n", "The regression algorithm could fit these weights to the data it sees, however, it would seem hard to map an arbitrary linear combination of inputs, each would may range from $-\\infty$ to $\\infty$ to a probability value in the range of $0$ to $1$. \n", "\n", "### The Odds Ratio\n", "\n", "The odds ratio is a related concept to probability that can help us. It is equal to the probability of success divided by the probability of failure, and may be familiar to you if you ever look at betting lines in sports matchups:\n", "\n", "$$odds(p) = \\frac{p}{1-p}$$\n", "\n", "Saying, \"the odds of the output being 1 given an input\" still seems to capture what we're after. However, if we plot the odds function from 0 to 1, there's still a problem:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nN7wh37okdc0xUpIkSTl54om07tOb35xC1OTJaXa+u+4yRElFZ4uUJElSnb38Mnz5y/CDH8DGjWns\n0xe+AJ/6VBoTJan4DFKSJEl1sn49fO978JWvwCuvQL9+8MEPwle/mmblk1QeBilJkqQaixF++Uv4\n7Gdh9ux07Jhj0npQ++2Xb22SescgJUmSVEMPPpimL//979PXU6emAHXccRBCvrVJ6j0nm5AkSaqB\nhQvhrLPgoINSiBozBr7znTSpxNvfboiSys4WKUmSpAytXp1anL7+dVi1CgYOhI99DP71X2H77fOu\nTlJWDFKSJEkZaGuDK6+Ec86B559Px046Cc4/H/bcM9/aJGXPICVJktQHra1w001pJr7770/HXve6\ntKDutGm5liaphgxSkiRJvfDCC3DxxXDRRTBvXjo2YQL8+7/DGWdA//751ieptgxSkiRJ26itDX77\nW7jwwjSdeWtrOr7bbvDhD8M//AMMH55vjZLqwyAlSZLUjcWL4cc/hv/5H5gzJx3r3x9OPTUFqKOP\nTovrSmoeBilJkqROtLWlacsvvBCuuw42bEjHJ0+GD34wTW0+YUK+NUrKj0FKkiSpg5degksuSa1P\ns2enY/36wYknwkc+Am95i+OfJBmkJEmSiBFmzUqtTz//Oaxfn45PnAhnnw0f+EB6LUlVBilJktS0\nli2Dn/wkBajHH0/HQoDjjktjn447Dgb4aUlSJ/zVIEmSmkqMcM89KTz99Kewdm06Pn58ank6+2zY\ndddcS5RUAgYpSZLUFFpa4LLLUoB69NH2429+cxr7dMIJMHBgfvVJKheDlCRJalgxwp/+lMLTlVfC\n6tXp+Nixada9D34Qdt893xollZNBSpIkNZwVK1Jw+u//hgcfbD9+1FFp7NPJJ8OgQfnVJ6n8DFKS\nJKlhPPhgan26/HJYuTIdGzMG3vc++NCHYOrUXMuT1EAMUpIkqdRWrYKrr04B6v77248fcURqfTr1\nVBg8OL/6JDUmg5QkSSqlxx5L4eknP4Hly9Ox0aPhzDNT69M+++Rbn6TGZpCSJEmlsWQJ3HADXHwx\n3H13+/E3vCHNvPd3fwdDh+ZXn6TmYZCSJEmFFWNaKPeXv0wB6p570jGAESPgjDNS97399su3TknN\nxyAlSZIKZcMGmDUrBadf/hKefbb93KBBaea9006D00+H4cPzq1NSczNISZKk3C1bBjfdlILTjTem\nxXOrdtgBjj8+LZj7lreklihJyptBSpIk5eLpp1Or0w03wB/+AK2t7ef23jsFpxNPTOOf+vfPr05J\n6oxBSpIk1UVrK9x7b/t4p8cfbz/Xv3/qsnfCCWnbY4/86pSkbWGQkiRJNbNiBdxySwpOv/41vPRS\n+7lRo+Btb0utTsceC9tvn1+dktRTBilJkpSp+fPbJ4r4/e9h/fr2c7vtloLTCSekBXMHDsyvTknq\nC4OUJEnqk7Y2eOCB9vFODz3Ufi4EOPTQ9vFOe++djklS2RmkJElSj61ZA7fdllqdfvUrWLiw/dyw\nYfDWt6bwdNxxsNNO+dUpSbVikJIkSdtk0aIUmm64AX772xSmqiZObG91mjYNBg/OrUxJqguDlCRJ\n6lSM8Oij7eOd7r9/0/MHHdQ+3umAA+yyJ6m5GKQkSRKQJoX4859h1iy480646y54+eX284MHw9FH\np+B0/PGwyy751SpJeTNISZLUpJYvh3vuaQ9O990Ha9dues3OO6cpyk84AY45Jo1/kiQZpCRJahov\nvJACUzU4PfJImnGvo733hsMPT9sRR8Cuu9plT5I6Y5CSJKkBxQhPPLFpcJozZ9NrBgyA17++PTgd\ndhjsuGM+9UpS2RikJElqANXxTdXgtPn4JoARI9KaTtXg9PrXw9Ch+dQrSWVnkJIkqYSq45vuvLN9\nfFPH6cgBJkxI3fOqwWm//aB//3zqlaRGY5CSJKkEquObqtvDD299fNPhh8OUKY5vkqRaMUhJklQw\nMcKTT7aPbbrzTnj22U2v2Xx806GHwtix+dQrSc3IICVJUs6WL08z6N17b3tw2nx80/DhKSxVu+o5\nvkmS8mWQkiSpTmJMXfQeeqh9e/BBeOaZLa+dMKF9CvLDD4d9902tUJKkYvBXsiRJNbBxIzz11Kah\n6aGHYMmSLa8dNAhe+1o48MD24OT4JkkqNoOUJEl9tGpV6prXMTA98gisXbvltaNHw+teBwcc0L7t\nvTcMHFj/uiVJvWeQkiSpBxYt2rKV6amnUre9ze2666aB6YADYNIkW5okqREYpCRJ6kRrKzz99Jah\nadGiLa8dMABe85pNW5r23x+2377+dUuS6sMgJUlqemvWwKOPbtk1b9WqLa8dOXLLVqbXvAa2267+\ndUuS8mOQkiQ1jbY2WLAAHn88LWhbDU1PPLHl4rYAEyemoNSxpWnXXaFfv7qXLkkqGIOUJKnhrFqV\nxi09+WTannii/fXq1Vte378/7LPPpqFp//1hxx3rX7skqRwMUpKkUooxtS5VQ1LH/fz5XX/f2LEw\ndSrst197cNpnHxgypH61S5LKzyAlSSq01avbW5c6tiw9+WTnY5ggTSW+xx4pMO2116Z7J4CQJGXB\nICVJyl21dWnzsPTEEzBvXtffV21d2jwsTZmSZtKTJKlW/GtGklQ3q1fD7NlbdsV76ilYubLz7xkw\nILUuVUNSx8A0Zkx965ckqcogJUnK1KpVMGdO+/bMM5u2LnW2cC2kiR26al0aOLC+P4MkSd0xSEmS\nemTduhSIOoalOXPguefSfsmSrr93wADYffctw9LUqbDDDnX7ESRJ6jODlCRpE62tabzS5kGpur3w\nQtetSgCDBqW1lqZMSdtuu7WHJluXJEmNwiAlSU0mRnjxxa6D0rx5sHFj19/frx9MmtQelDbfxo93\nwVpJUuMzSElSA3rlla6D0nPPwZo1W//+CRM2bVXquE2caKuSJEkGKUkqmTVrUte7BQvg+ec33arj\nlFpatv4eY8akUNRZWJo82cVpJUnqjkFKkgpk+fLOA1LHYy+/3P37DBvWHow2D0u77gqjRtX6J5Ek\nqbEZpCSpDmKEpUu3HpCefx5WrOj+vQYOhF12SV3sqvvq68mTU1jacUcIofY/lyRJzcogJUl91Nqa\nJm/YWkBasADWru3+vYYMaQ9GHbeOgWnsWCdzkCQpbwYpSerCxo0pIC1a1L4tXpz2Cxe2h6SFC7c+\ny13VqFGdB6OO2+jRtiRJklQGBilJTaWtLXWx6xiKOtsWL4aXXtr6ekkdjR3beTjq2AVvxIja/myS\nJKl+DFKSSi/GNLaoq2DU8fjixdvWegSpZWinndK6SNVt3Lj219WwtPPOMHhwbX9GSZJULAYpSYUU\nI6xaBUuWbNq9rquw1N26SB2NHt11OOq47bgjDPC3pCRJ6oQfESTVRbVL3ZIlqcvckiXdv96WyRmq\nhgxJi8h2F4522snWI0mS1HcGKUm9sm7dtoWh6uulS1OY6onBg9PYo82713XWmjR8uJM0SJKk+jFI\nSaK1FVpaetZitHJlz++z/fapu9zYsWnr7vWwYdn/rJIkSVkwSEkNZONGWLYsBaKebMuWbfvsdFUD\nB7YHnm0JR2PGpO+RJElqBAYpqYDWr+95GHr5ZVi+vPf3HD06tRhtHoK6CkYjR9qVTpIkNS+DlFQj\n69bBK6+kLnOvvLLl1lXL0csvp9nqeqNfvxSGxozZtm2HHdJ+9Gjo3z/bn1+SJKmRGaSkLlSDUG+3\nnsw4t7n+/TcNOtu6jRqVwpQkSZJqqymCVAhhIvAV4FhgDLAQuA74cozxlTxrU21U1yBavjxt3YWe\nzlqN+hKEIK0/NHr01reugtKIEXabkyRJKrIQezrCvGRCCLsDdwNjSeHpCeBg4CjgSeCwGOPSrXx/\nBGj0P6eiaGvbNAAtX55CTsevt+X4ihU9n2p7cwMHdh+EtrYNGWIYkiRJqodQ+dAVY6zbp69maJH6\nPilEfTzG+L3qwRDCN4F/BP4N+PucamsYra1pOuwVK/oegLLKrEOHpgkRRo7ctuAzapRBSJIkSdum\noVukKq1Rs4E5McbdNzs3HFgERGBcjHF1F+/RkC1SGza0B58VKzZ9vfnX23LdmjXZ1TZsWHsAqm6j\nRm3bserxESNS17oimzlzJjNnzsy7DDUYnyvVgs+VsuYzpazl0SLV6EHqbOB/gAtjjFu0OoUQbgbe\nDBwTY/xdF++Re5Bqa4PVq1NoWbVq031Pwk7H1+vWZV/n8OEpwGxr6OnsWBkCUFZCCA0X0JU/nyvV\ngs+VsuYzpazZtS97Uyv7p7o4P5sUpPYEOg1SPbF+/aZBZ/PQ09Wx7q5f3WlbWd/065dCy4gR7QGo\nL6+HDnW2OEmSJDWPRg9Soyr7li7OV4+P7u6N3v/+7sPPhg2Z1NypYcPat+HD2/e9DUCDBzv+R5Ik\nSeq1GGPDbqRufW3AWV2c/7fK+c9t5T1i99sbIxBDODeOHh3jLrvE+OpXx3jggTEecUSMe+xxbgTi\n/vufGz/60Rj/+Z9j/MpXYvzmN2O88MIYTz45nT/jjHPj3XfH+MgjMT7zTIyLFsW4cmWMX/pSOn/u\nuefGzpx7rufLeD7971fc+jxfzvPV56qo9Xm+nOc3f66KVp/ny3e+eryo9Xm+mOerx7a2xRpkiq62\nRh8j9R/AZ4DPxBgv6OT8d4F/AP4+xnhhF+8RAS6+OG7SEtRZ69CgQbX8adRo7B+uWvC5Ui34XClr\nPlPKmmOksvdEZT+1i/N7VvZdjaH6q7POyqQeSZIkSQ2g0VukdgOeBuYAe8QOP2wIYQSwkNQMuFOM\nsdMJvKstUpIkSZKKrZ4tUg09z1qM8VngFmAK8NHNTn8ZGApc2lWIkiRJkqTONHSLFPy1VepuYCfg\nelJ3v4OBacCTwKExxmW5FShJkiSpdBo+SAGEECYCXwGOBXYAXgCuBb4cY+xqanRJkiRJ6lRTBClJ\nkiRJylJDj5GSJEmSpFowSEmSJElSDxmkJEmSJKmHDFKSJEmS1EMGKUmSJEnqoaYMUiGEiSGEH4UQ\nXgghrA0hzAkhXBBCGJ3H+6gx9PV5CCGMCSGcHUK4NoTwdAhhdQjhlRDCrBDCWSGEuq3UrWKoxe+Y\nEMJ7Qghtle0DWdarcsjyuQohHF35nbWo8l4LQgg3hRDeVovaVVxZPFcheVcI4feVZ2l1COGZEMJP\nQwhvqGX9KpYQwmkhhO9UPgMtr/yddWkv36tmn9ebbvrzEMLupAV6xwLX0b5A71GkBXoPizEurdf7\nqDFk8TyEED4CfJ+0ztnvgXnAeOAUYBRwTYzx72r1M6hYavE7JoTwKuBR0j+iDQfOjjH+KMu6VWxZ\nPlchhPOBfwLmAzcCLwE7AQcCt8YYz8n8B1AhZfjZ6iLgLNKzdF1lvydwIjAAODPGeHktfgYVSwjh\nIWA/YAWwANgLuCzGeGYP36e2n9djjE21ATcDbcBHNzv+zcrxH9TzfdwaY8vieaj8T/32To6PA+ZW\n3ueUvH9Wt/psWf+OAQJwKzAbOL/yHmfl/XO61XfL8O/AD1au/xEwoJPzWxxza9wto78DJ1eufQHY\ncbNz0yrnnsn7Z3Wrz1b5b7575fUbK//9f9KL96np5/WmapGqpNLZwJwY4+6bnRsOLAIiMC7GuLrW\n76PGUI/nIYTweeDfgO/EGD/Zx5JVcLV4pkIInwT+k/QX0jHAl7BFqqlk+HfgdqRWqFXAnjHGjbWr\nWkWX4XP1N8D9wPUxxpM7Ob8ciDHGUVnWr+ILIUwDfkcPW6Tq8fms2cZIHVXZ37L5iRjjSuAuYBjQ\nXT/crN5HjaEez8PGzfZqbJk+UyGEvYHzgG/FGO/MqkiVTlbP1ZuBHYFfADGE8PYQwudCCJ90HEtT\nyuq5eoz0wfbgEMIOHU+EEI4kdUe+tc/VqpnU/PNZswWpqZX9U12cn13Z71mn91FjqOnzEEIYAFT/\nBeam3ryHSiezZ6ry/FwKPAd8oc+Vqcyyeq7+trJfBzwE3AB8DbgAuDuEcHsIYce+FKpSyeS5ijGu\nBU4CVgJ/CSH8TwjhayGEn5K6Z90CfDiDetU8av55vdmCVLU5uKWL89Xj3c3ikdX7qDHU+nk4D9gH\n+HWM8be9fA+VS5bP1JeAA4D3xRjX9bUwlVpWz9VOlf1ngVbgcFJrwX6kD7tHAj/rfZkqmSx/Xz0C\nXAIMBs4GPgecRupK+r8xxpd6X6aaUM0/rzdbkJJKJYTwCeDTwOPAGTmXo5IJIRwMfB74jxjjfXnX\no4ZR/eywATgxxnh3jHF1jPEx4GTgeeCNdvNTT1Raz28D/h/wQ2A3YChwEPAscHkI4ev5VShtqdmC\nVDV5djVQsXr8lTq9jxpDTZ6HEMLHgG8B/wccFWP0eWoefX6mKh9KfkKa3vXcri7rVXUqq6x+V1XP\nPxhjnNfxRIxxDakbFrR3AVRjy+q5eg9wCPCLGOM/xRifizGujTE+SAroC4DPhBCm9LliNYuaf15v\ntiD1RGU/tYvz1T6SXfWlzPp91Bgyfx5CCJ8C/ou05s9RMcYXe1+eSiiLZ2p45brXAGs7LMLbRuru\nB/DDyrEL+lyxyiDrvwO7+vBRPT5kG+tSuWX1XP1NZf/7zU9UAvofSZ9bD+hpgWpaNf+8PqC331hS\n1f853xxCCLHD3O8hhBHAYaTpXO+t0/uoMWT6PIQQPkcauP0g8Obows7NKItnai1wMWlq180dBLwO\nmEVqsbo7i6JVeFn9rrqN9Fy9ZvP3qXhtZT8ng5pVfFk9V+sr+526OD92s+uk7tT883pTtUjFGJ8l\nDYSdAnx0s9NfJvXFvbTyLx+EEAaEEPYKIezWl/dRY8vquaqc+1dSiPoTcLQhqjll8UxVusR8MMb4\noc030ixrkAZvfyjG6MQATSDDvwPnkZ6hycAm69qFEN4CvBVYhrOMNoUM/w6sTm3+oRDCzh1PhBDe\nRvrQuwb/4UebyfPzelMtyAtQ+UO+m/QvHteTmv0OJq2g/CRwaIxxWeXaXUkDHOfGGKf09n3U+LJ4\nrsL/b+9+Qi0d4ziAf59SUjQpRRmazSws1BBqihXNSholWShlw4ZsLDXKQkmiWUnRpJTFuJOVFGUh\nsmA22LmykD8rbPyp87N4jppuM+rpnnvfee/7+dSv2z3v6T2/p57Oeb8975/WHkvyVvpdsE4n+f0i\nH7VdVWf2ahxcPjb1XXWJfT8fD+RdpA3+Bt643s9N6StU59MPVk6mf4c9UlVbez4gLgsbnFfvpc+h\nP5JsJfk5yS1J7k9fBX2mqk7v+YCYXGvtZPpcSJIbkpxInzf/PQvx16p6dv3eI5nqeL2qFldJDid5\nM8mP6c/B2E7ySpJDO953JMkqyXe72Y9aRu12XqXfEGCVfhCyukR9PPU41Xzm1P/s99R6nj0+9RjV\n/tcGfwOvS7+W8/v1fn5JcjbJHVOPUe1/bWJepZ8p9WT6g1J/S78z5E9J3k9y39RjVPs6ny48Jrqw\nVjvnz5TH64tbkQIAANitRV0jBQAAsAmCFAAAwCBBCgAAYJAgBQAAMEiQAgAAGCRIAQAADBKkAAAA\nBglSAAAAgwQpAACAQYIUAADAIEEKAABgkCAFAAAwSJACAAAYJEgBAAAMEqQAAAAGCVIAAACDBCkA\nAIBBghQAB15r7VxrbdVae+oi215Yb3tjit4AmKdWVVP3AAB7qrV2bZKvklyf5HhVnV+/fm+SD5N8\nk+TOqvpzui4BmBNBCoBFaK0dT/JJku0ktye5Osn5JNekh6hvJ2wPgJlxah8Ai1BVnyV5LsnRJK8n\neTt9heppIQqAUVakAFiU1toHSU6s/32nqh6dsh8A5smKFABLs7X+W0lem7IRAObLihQAi9FaO5rk\nyyR/JzmU5Oskd1XVX5M2BsDsWJECYBFaa1cmeTfJVUkeTvJikluTvDplXwDMkyAFwFK8nORYkpeq\n6qMkp5J8muSJ1tpDk3YGwOw4tQ+AA6+19mCSs0k+T3J3Va3Wrx9OvwX6FUluq6rt6boEYE4EKQAO\ntNbazekP421JjlXVDzu2P5DkXJIvktxTVf/sf5cAzI0gBQAAMMg1UgAAAIMEKQAAgEGCFAAAwCBB\nCgAAYJAgBQAAMEiQAgAAGCRIAQAADBKkAAAABglSAAAAgwQpAACAQYIUAADAIEEKAABgkCAFAAAw\nSJACAAAYJEgBAAAMEqQAAAAGCVIAAACD/gUQkSZ3klGzwAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "height": 281, "width": 425 } }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "%matplotlib inline\n", "%config InlineBackend.figure_format = 'retina'\n", "\n", "def odds(p):\n", " return p / (1 - p)\n", "\n", "x = np.arange(0, 1, 0.05)\n", "odds_x = odds(x)\n", "\n", "plt.plot(x, odds_x)\n", "plt.axvline(0.0, color='k')\n", "plt.ylim(-0.1, 15)\n", "plt.xlabel('x')\n", "plt.ylabel('odds(x)')\n", "\n", "# y axis ticks and gridline\n", "plt.yticks([0.0, 5, 10])\n", "ax = plt.gca()\n", "ax.yaxis.grid(True)\n", "\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Log Odds\n", "\n", "An arbitrary linear combination of the input features may still be less than zero. However, if we take the log of the odds ratio, we now get something that ranges from $-\\infty$ to $\\infty$" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "height": 281, "width": 424 } }, "output_type": "display_data" } ], "source": [ "def log_odds(p):\n", " return np.log(p / (1 - p))\n", "\n", "x = np.arange(0.005, 1, 0.005)\n", "log_odds_x = log_odds(x)\n", "\n", "plt.plot(x, log_odds_x)\n", "plt.axvline(0.0, color='k')\n", "plt.ylim(-8, 8)\n", "plt.xlabel('x')\n", "plt.ylabel('log_odds(x)')\n", "\n", "# y axis ticks and gridline\n", "plt.yticks([-7, 0, 7])\n", "ax = plt.gca()\n", "ax.yaxis.grid(True)\n", "\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Having a linear combination of arbitary features map to the `log_odds` function allows for any possible input values for each $x_i$ and still represents conceptually what we are trying to represent: that a linear combination of inputs is related to the liklihood that a sample belongs to a certain class. \n", "\n", "Note: the log of the odds function is often called \"the logistic\" function.\n", "\n", "So now we have:\n", "\n", "$$\\text{log_odds}(P(y=1 \\mid x)) = w_o + w_1x_1 + w_2x_2 + ... + w_nx_n$$\n", "\n", "If we still want to get plain old $P(y=1 \\mid x)$ we can by taking the inverse of the `log_odds` function." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The Sigmoid\n", "\n", "Let's find the inverse of the `log_odds` function:\n", "\n", "Starting with:\n", "\n", "$y = log(\\frac{x}{1-x})$\n", "\n", "and swapping $y$ and $x$ and solving for $y$ \n", "\n", "$x = log(\\frac{y}{1-y})$\n", "
$e^x = \\frac{y}{1-y}$\n", "
$y = (1-y)*e^x$\n", "
$y = e^x - y*e^x$\n", "
$y + ye^x = e^x$\n", "
$y*(1 + e^x) = e^x$\n", "
$y = \\frac{e^x}{1+e^x}$\n", "
$y = \\frac{1}{\\frac{1}{e^x} + 1}$\n", "
$y = \\frac{1}{1 + e^{-x}}$\n", "\n", "Let's use $\\phi$ to represent this function and plot it to get a sense of what it looks like:\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": { "image/png": { "height": 281, "width": 422 } }, "output_type": "display_data" } ], "source": [ "def inverse_log_odds(z):\n", " return 1.0 / (1.0 + np.exp(-z))\n", "\n", "z = np.arange(-7, 7, 0.1)\n", "phi_z = inverse_log_odds(z)\n", "\n", "plt.plot(z, phi_z)\n", "plt.axvline(0.0, color='k')\n", "plt.ylim(-0.1, 1.1)\n", "plt.xlabel('z')\n", "plt.ylabel('$\\phi (z)$')\n", "\n", "# y axis ticks and gridline\n", "plt.yticks([0.0, 0.5, 1.0])\n", "ax = plt.gca()\n", "ax.yaxis.grid(True)\n", "\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The inverse form of the logistic function is looks kind of like an S, which, I've read, is why it's called a Sigmoid function.\n", "\n", "So going back to our:\n", "\n", "$$\\text{log_odds}(P(y=1 \\mid x)) = w_o + w_1x_1 + w_2x_2 + ... + w_nx_n$$\n", "\n", "If we call $w_o + w_1x_1 + w_2x_2 + ... + w_nx_n = w^Tx$ simply $z(x)$:\n", "\n", "$$ \\text{log_odds}(P(y=1 \\mid x)) = z(x) $$\n", "\n", "And taking the inverse:\n", "\n", "$$ P(y=1 \\mid x) = \\phi(z) = \\dfrac{1}{1 + e^{-z}} $$\n", "\n", "and there you have it: Logistic Regression fits weights so that a linear combination of its inputs maps to the log odds the output being equal to 1." ] } ], "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.4.4" } }, "nbformat": 4, "nbformat_minor": 0 }