{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 03 - Logistic Regression\n", "\n", "by [Alejandro Correa Bahnsen](albahnsen.com/)\n", "\n", "version 0.4, Feb 2017\n", "\n", "## Part of the Tutorial [Practical Machine Learning](https://github.com/albahnsen/Tutorial_PracticalMachineLearning_Pycon)\n", "\n", "\n", "\n", "This notebook is licensed under a [Creative Commons Attribution-ShareAlike 3.0 Unported License](http://creativecommons.org/licenses/by-sa/3.0/deed.en_US). Special thanks goes to [Kevin Markham](https://github.com/justmarkham)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Review: Predicting a Continuous Response" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
rinamgalsikcabafeglass_type
id
221.5196614.773.750.2972.020.039.000.00.001
1851.5111517.380.000.3475.410.006.650.00.006
401.5221314.213.820.4771.770.119.570.00.001
391.5221314.213.820.4771.770.119.570.00.001
511.5232013.723.720.5171.750.0910.060.00.161
\n", "
" ], "text/plain": [ " ri na mg al si k ca ba fe glass_type\n", "id \n", "22 1.51966 14.77 3.75 0.29 72.02 0.03 9.00 0.0 0.00 1\n", "185 1.51115 17.38 0.00 0.34 75.41 0.00 6.65 0.0 0.00 6\n", "40 1.52213 14.21 3.82 0.47 71.77 0.11 9.57 0.0 0.00 1\n", "39 1.52213 14.21 3.82 0.47 71.77 0.11 9.57 0.0 0.00 1\n", "51 1.52320 13.72 3.72 0.51 71.75 0.09 10.06 0.0 0.16 1" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# glass identification dataset\n", "import pandas as pd\n", "col_names = ['id','ri','na','mg','al','si','k','ca','ba','fe','glass_type']\n", "glass = pd.read_csv('data/glass.data', names=col_names, index_col='id')\n", "glass.sort_values('al', inplace=True)\n", "glass.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Question:** Pretend that we want to predict **ri**, and our only feature is **al**. How could we do it using machine learning?\n", "\n", "**Answer:** We could frame it as a regression problem, and use a linear regression model with **al** as the only feature and **ri** as the response.\n", "\n", "**Question:** How would we **visualize** this model?\n", "\n", "**Answer:** Create a scatter plot with **al** on the x-axis and **ri** on the y-axis, and draw the line of best fit." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "plt.style.use('fivethirtyeight')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nz3frOaIoIjY2FgkJCQ5/Pm7cOGzYsAEAcOjQId8U6gd8EyR3hPsCJyI1UDwsvbV06VJ0dnZi0qRJ\nyMvLw6KnOo4LAAAMo0lEQVRFi5QuyWN8EyQiCg5BF5bDhg3D+vXrkZmZCa1Wiw8//BA5OTnYvn07\nFi9erHR5REQUgoIuLOPi4iQLdjIyMtDS0oKtW7cyLImIyC+CLiwdmTVrFvbu3Tvo89TV1fmgmsAL\n1roB1q4U1q4M1h5YKSkpPjtXSIRlTU0NRo4cOejz+LJhA6Wuri4o6wZYu1JYuzJYe3BTPCxNJhMM\nBgNEUYTFYkFjYyNqa2uh0+mQlJSEoqIiVFVVoby8HABQWlqKyMhIpKWlQaPR4MiRI9i1axeKiook\n562trYUoirh16xa0Wi1qa2sxZMgQTJkyRYmXSUREQUzxsDx9+jQWLlwIQbBekF9cXIzi4mLo9XqU\nlJSgubkZ9fX1kuds2rQJjY2N0Gg0mDx5MkpKSpCdnS055pFHHrGfEwCOHj2K++67D9XV1f5/UURE\nFFIUD8u5c+eipaXF6c/ffvttyfd6vR56vV72vK7OSURE5AnFt7sjIiJSO4YlERGRDIYlERGRDIYl\nERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGR\nDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYl\nERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGR\nDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYl\nERGRDMXDsqKiAnq9HtOnT4dOp0NpaanL4xsaGqDT6ST/4uLicOzYMclxx48fx7x58zBq1CjMnDkT\nu3fv9ufLICKiEBahdAEmkwmpqanQ6/XIy8tz6zmCIKCsrAypqan2x3Q6nf3r+vp6LFmyBEuXLsU7\n77yDyspKrFixAvHx8Vi4cKHPXwMREYU2xcMyKysLWVlZAID8/Hy3niOKImJjY5GQkODw57t27cLo\n0aOxYcMGAEBKSgo+//xzvPXWWwxLIiLymOLDsN5aunQpUlJS8Nhjj6G8vFzys1OnTuGf//mfJY/9\n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\niDGcKpWrFgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# scatter plot using Pandas\n", "glass.plot(kind='scatter', x='al', y='ri')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nz3frOaIoIjY2FgkJCQ5/Pm7cOGzYsAEAcOjQId8U6gd8EyR3hPsCJyI1UDwsvbV06VJ0dnZi0qRJ\nyMvLw6KnOo4LAAAMo0lEQVRFi5QuyWN8EyQiCg5BF5bDhg3D+vXrkZmZCa1Wiw8//BA5OTnYvn07\nFi9erHR5REQUgoIuLOPi4iQLdjIyMtDS0oKtW7cyLImIyC+CLiwdmTVrFvbu3Tvo89TV1fmgmsAL\n1roB1q4U1q4M1h5YKSkpPjtXSIRlTU0NRo4cOejz+LJhA6Wuri4o6wZYu1JYuzJYe3BTPCxNJhMM\nBgNEUYTFYkFjYyNqa2uh0+mQlJSEoqIiVFVVoby8HABQWlqKyMhIpKWlQaPR4MiRI9i1axeKiook\n562trYUoirh16xa0Wi1qa2sxZMgQTJkyRYmXSUREQUzxsDx9+jQWLlwIQbBekF9cXIzi4mLo9XqU\nlJSgubkZ9fX1kuds2rQJjY2N0Gg0mDx5MkpKSpCdnS055pFHHrGfEwCOHj2K++67D9XV1f5/UURE\nFFIUD8u5c+eipaXF6c/ffvttyfd6vR56vV72vK7OSURE5AnFt7sjIiJSO4YlERGRDIYlERGRDIYl\nERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGR\nDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYl\nERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGR\nDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYlERGRDIYl\nERGRDMXDsqKiAnq9HtOnT4dOp0NpaanL4xsaGqDT6ST/4uLicOzYMclxx48fx7x58zBq1CjMnDkT\nu3fv9ufLICKiEBahdAEmkwmpqanQ6/XIy8tz6zmCIKCsrAypqan2x3Q6nf3r+vp6LFmyBEuXLsU7\n77yDyspKrFixAvHx8Vi4cKHPXwMREYU2xcMyKysLWVlZAID8/Hy3niOKImJjY5GQkODw57t27cLo\n0aOxYcMGAEBKSgo+//xzvPXWWwxLIiLymOLDsN5aunQpUlJS8Nhjj6G8vFzys1OnTuGf//mfJY/9\ny7/8C06fPg2z2RzIMomIKAQEXVgOGzYM69evx7vvvov9+/fjkUceQU5ODvbv328/xmg0IjExUfK8\nhIQE3L17Fzdv3gx0yUREFOQUH4b1VFxcHAoKCuzfZ2RkoKWlBVu3bsXixYsVrEwZKSkpSpfgNdau\nDNauDNYe3IKuZ+nIrFmzYDAY7N8nJibCaDRKjrl+/ToiIiIwYsSIQJdHRERBLiTCsqamBiNHjrR/\nP2fOHHz66aeSY44dO4aZM2dCq9UGuDoiIgp2ig/DmkwmGAwGiKIIi8WCxsZG1NbWQqfTISkpCUVF\nRaiqqrIv4iktLUVkZCTS0tKg0Whw5MgR7Nq1C0VFRfZzLlu2DDt27EBhYSGWLVuGkydP4g9/+AN2\n7typ1MskIqIgJrS2topKFnD8+HEsXLgQgiBIHtfr9SgpKUF+fj4qKipw5swZANaw3Lp1KxobG6HR\naDB58mTk5+cjOztb8vyKigqsXr0aX331FUaNGoXly5fjqaeeCtjrIiKi0KF4WBIREaldSMxZytmx\nYwfS09MxatQozJs3D5WVlS6PP3v2LL7//e9j9OjRSE1Nxeuvvx6gSgfypHZ3twIMBE+3MQTU0+7+\n2oLR37Zs2YL58+dj3LhxmDx5Mn7605/i3Llzss9TQ7t7U7ta2n3Hjh14+OGHMW7cOIwbNw6PPvoo\nPv74Y5fPUUObA57XrpY2d2TLli3Q6XR46aWXXB7nbdsrPmfpb2VlZSgsLMSWLVuQmZmJd955B4sX\nL8Znn32GsWPHDjj+1q1b+NGPfoS5c+fi008/xfnz51FQUIDo6GjJJStqrB2Q3wowUDzdxlBN7e6P\nLRgDoaKiAk8//TRmzpwJURTx6quv4oc//CE+++wzxMbGOnyOWtrdm9oBdbT72LFjsXbtWkyaNAkW\niwX79u3DE088gf/7v//D9OnTBxyvljb3pnZAHW3e36lTp7Bnzx488MADLo8bTNuH/DDsv/7rv2LG\njBl488037Y/Nnj0bP/zhD7FmzZoBx+/cuRNFRUW4ePEihgwZAgDYtGkTdu/ejS+//DJgdQOe197Q\n0ID09HT85S9/QUZGRiBLdSkpKQlvvPEG9Hq902PU1O59uVO7WtvdZDJh3Lhx2LdvHxYsWODwGLW2\nuzu1q7XdAWDixIl45ZVXHK6TUGub27iqXY1t3tbWhnnz5mHbtm3YsGEDpk+f7rS3OJi2D+lh2J6e\nHpw5cwbz5s2TPD5//nx89tlnDp9z6tQpfOc737E3JGDdKq+pqQkNDQ3+LFfCm9ptXG0FqFZqaffB\nUFu737p1CxaLxWXPTK3t7k7tNmpqd4vFgoMHD+LOnTuYM2eOw2PU2ubu1G6jpjZ//vnn7b1FOYNp\n+5AOy5s3b8JsNjvc+q7/pgU2zrbKE0XR6XP8wZva3dkKUK3U0u7eUGu7//u//zvS09NdvvGptd3d\nqV1N7X727FkkJSUhMTERK1aswH//939j2rRpDo9VW5t7Urua2hwA9uzZg8uXL+Pll1926/jBtH3I\nz1mGE24FqAw1tvvq1avx17/+FUePHh1wWZbauVu7mtr9/vvvx/Hjx9HW1obDhw8jNzcXf/rTnzB1\n6tSA1uENT2pXU5tfvHgR69atw0cffQSNxv/9vpDuWY4YMQJardbh1nf9P13YONsqTxAEp8/xB29q\nd6T/VoBqpZZ29xUl272wsBDvv/8+PvjgA4wbN87lsWprd09qd0Spdo+IiMCECROQnp6ONWvWYMaM\nGXj77bcdHqu2NvekdkeUavO//vWv+Oabb/Dggw8iPj4e8fHxOHHiBHbs2IGEhAT09PQMeM5g2j6k\nwzIyMhIZGRkDtr77y1/+gszMTIfPmTNnDiorK9Hd3W1/7NixYxg9erRX//N6y5vaHem/FaBaqaXd\nfUWpdl+1apU9bCZNmiR7vJra3dPaHVHLf+8WiwVdXV0Of6amNnfEVe2OKNXmP/jBD1BRUYHjx4/b\n/82cORPZ2dk4fvw4IiMjBzxnMG0f0mEJAAUFBdi3bx9+97vf4cKFC1i1ahWam5uxbNkyAEBRUREW\nLVpkPz47OxtDhw5Ffn4+zp07h8OHD2Pr1q0BX9LtTe2lpaU4cOAALly4gIsXL2Lbtm3YtWsXnnnm\nmYDXbjKZUFtbi5qaGsk2ho2NjQ5rV1O7e1q7Wtr9xRdfRGlpKd555x3ExMTAaDTCaDTCZDLZj1Fr\nu3tTu1ravaioCJWVlWhoaMDZs2dRVFSEEydOYMmSJQ7rVkube1O7WtocAGJiYjB16lTJv6FDhyI2\nNhZTpkxxWP9g2j7k5yx/9KMfoaWlBZs3b0ZzczOmTZuG/fv3269TbG5uRn19vf34mJgYvP/++3jx\nxRcxf/58xMbG4tlnn0V+fr7qawesy6D7bgVYUlIyYCvAQDh9+rRkG8Pi4mIUFxfbtzFUc7t7Wjug\njnbfuXMnBEGQvDkA1h7bqlWrAKj3v3dvagfU0e7Nzc145plnYDQaERMTg9TUVBw8eNC+kl2tbe5N\n7YA62tyZ/nPcvmz7kL/OkoiIaLBCfhiWiIhosBiWREREMhiWREREMhiWREREMhiWREREMhiWRERE\nMhiWREREMhiWRGGuoaEBOp0OpaWlSpdCpFoMSyIiIhkMSyIiIhkMSyIiIhkMS6IQdeXKFbz44ot4\n8MEHMWbMGIwfPx5LlizB2bNnlS6NKOiE/F1HiMJVVVUVKisrsWjRIiQlJeHatWt499138YMf/AAn\nT54MyptqEymFYUkUoh577LEBt7xasmQJHnzwQfz+97/HihUrFKqMKPgwLIlC1D333GP/uqOjA52d\nnRg2bBgmT56MM2fOKFgZUfBhWBKFqK6uLrz66qvYv38/rl27Zn9cEASMGDFCwcqIgg/DkihErVy5\nEvv27cMzzzyDOXPmYPjw4RAEAYWFhbBYLEqXRxRUGJZEIaq8vBx6vR6vvvqq5PHW1lb2LIk8xEtH\niEKUVqsd0IM8cOAAmpqaFKqIKHixZ0kUor73ve/hvffew7BhwzB9+nTU1tairKwMEydOVLo0oqDD\nsCQKURs3bsSQIUNw6NAh7N27FzNnzkRZWRnWrFkDQRAkx/b/noikhNbWVlHpIoiIiNSMc5ZEREQy\nGJZEREQyGJZEREQyGJZEREQyGJZEREQyGJZEREQyGJZEREQyGJZEREQyGJZEREQyGJZEREQy/h+8\niDGcKpWrFgAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# equivalent scatter plot using Matplotlib\n", "plt.scatter(glass.al, glass.ri)\n", "plt.xlabel('al')\n", "plt.ylabel('ri')" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# fit a linear regression model\n", "from sklearn.linear_model import LinearRegression\n", "linreg = LinearRegression()\n", "feature_cols = ['al']\n", "X = glass[feature_cols]\n", "y = glass.ri\n", "linreg.fit(X, y)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "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", " \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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
rinamgalsikcabafeglass_typeri_pred
id
221.5196614.773.750.2972.020.039.000.00.0011.521227
1851.5111517.380.000.3475.410.006.650.00.0061.521103
401.5221314.213.820.4771.770.119.570.00.0011.520781
391.5221314.213.820.4771.770.119.570.00.0011.520781
511.5232013.723.720.5171.750.0910.060.00.1611.520682
\n", "
" ], "text/plain": [ " ri na mg al si k ca ba fe glass_type \\\n", "id \n", "22 1.51966 14.77 3.75 0.29 72.02 0.03 9.00 0.0 0.00 1 \n", "185 1.51115 17.38 0.00 0.34 75.41 0.00 6.65 0.0 0.00 6 \n", "40 1.52213 14.21 3.82 0.47 71.77 0.11 9.57 0.0 0.00 1 \n", "39 1.52213 14.21 3.82 0.47 71.77 0.11 9.57 0.0 0.00 1 \n", "51 1.52320 13.72 3.72 0.51 71.75 0.09 10.06 0.0 0.16 1 \n", "\n", " ri_pred \n", "id \n", "22 1.521227 \n", "185 1.521103 \n", "40 1.520781 \n", "39 1.520781 \n", "51 1.520682 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# make predictions for all values of X\n", "glass['ri_pred'] = linreg.predict(X)\n", "glass.head()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nTCqXy2l/f1/RaFSe58nzPDWbzfY5QZzXv/TV7fNKpVIqlUqqVCoql8tKpVK6vr6Wbdvtz4M2J6nz\nvv53TlxDlbS8vKy3tzft7u6qXq9rYmJC+Xy+vVezXq/r+fm5fX40GtXFxYWSyaRmZ2c1ODiotbU1\nra6u+tXCH3Xal/Tr1vdqtaqenh7FYjFls1mtrKz4Uf4f3d3daXFxsX29KpPJKJPJKJFIKJvNBnZW\nnfYldf+sDg4OZFnWlx8s6dfqbnNzU1Iwv1v/0pfU3fOq1+tyHEee5ykajWpqakrn5+ftXQJBnJPU\neV/S/82JfagAABjAX74AABhAoAIAYACBCgCAAQQqAAAGEKgAABhAoAIAYACBCgCAAQQqgL+qVCoa\nGhpSLpfzuxSgaxGoAAAYQKACAGAAgQoAgAEEKhBiLy8vSiaTisfjGhkZ0djYmGzbVrlc9rs0IHB4\n2gwQYre3tyqVSlpaWtLo6KhqtZqOjo60sLCgm5ubrntYNNDNCFQgxObm5r49hsy2bcXjcR0fH2t9\nfd2nyoDgIVCBEOvv72+/fn9/18fHhyKRiGKxmO7v732sDAgeAhUIsc/PT6XTaeXzedVqtfZxy7I0\nPDzsY2VA8BCoQIhtbGzo9PRUjuNoZmZGAwMDsixLW1tbarVafpcHBAqBCoTY1dWVEomE0un0l+ON\nRoMVKtAhts0AIdbb2/ttJVooFPT6+upTRUBwsUIFQmx+fl5nZ2eKRCKanJyU67oqFosaHx/3uzQg\ncAhUIMR2dnbU19eny8tLnZycaHp6WsViUdvb27Is68u5v78H8JXVaDR++F0EAABBxzVUAAAMIFAB\nADCAQAUAwAACFQAAAwhUAAAMIFABADCAQAUAwAACFQAAAwhUAAAMIFABADDgJ5RsrPKzbbWqAAAA\nAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# plot those predictions connected by a line\n", "plt.plot(glass.al, glass.ri_pred, color='red')\n", "plt.xlabel('al')\n", "plt.ylabel('Predicted ri')" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcsAAAEmCAYAAAAN2LsbAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtYVOehLvB3rTWACCLDzQvIZQRRiYCabWhiE5uWJj2t\nj22DtdPWk2qbJwpNToxJ3ObE7qAmmmuPNSTuHaNJuw07jZpo2mjSbpN2q5iaoEDiDRguolzUcHPk\nOmudP8YZGGZgDcPAzMD7ex6ewKw1az4+zLzzXZfQ1NSkgIiIiPoleroARERE3o5hSUREpIJhSURE\npIJhSUREpIJhSUREpIJhSUREpIJhSUREpIJhSUREpIJh6eNKS0s9XQSXseyewbJ7Bsvu2xiWRERE\nKhiWREREKhiWREREKhiWREREKhiWREREKhiWREREKhiWREREKhiWREREKhiWREREKhiWREREKhiW\nREREKhiWREREKhiWREREKhiWREREKhiWREREKhiWREREKhiWREREKhiWREREKjwelsePH4der8fs\n2bOh1WqRn58/4PnV1dXQarU2X2FhYThy5IjD8wsKChAREYHbb799OIpPRERjgMbTBTAajUhJSYFe\nr8fq1audeo4gCNi/fz9SUlKsj2m1WrvzmpqasHr1aixatAiXL192W5mJiGhs8XhYZmZmIjMzEwCQ\nnZ3t1HMURUFoaCgiIyMHPO+hhx7Cz372M8iyjIMHDw65rERENDZ5vBvWVcuXL0dSUhLuvfdeHDhw\nwO74zp07cfXqVTz++OMeKB0REY0mHm9ZDlZwcDA2b96MjIwMSJKEDz/8ECtXrsSOHTuwdOlSAMBX\nX32FF154AX/7298gCIKHS0xERL7O58IyLCwMOTk51p/T09PR2NiIbdu2YenSpejs7MSvfvUrbNq0\nCdOmTQNg7rZ1Rmlp6bCUebj5arkBlt1TWHbPYNlHVlJSktuu5XNh6ci8efOwZ88eAEBdXR3Onz+P\nnJwc6xioLMtQFAWRkZF49913sWjRIofXcWfFjpTS0lKfLDfAsnsKy+4ZLLtvGxVhWVxcjEmTJgEA\npk6dioKCApvjO3fuxKeffoo9e/ZYW5tERETO8nhYGo1GGAwGKIoCWZZRU1ODkpISaLVaxMTEIDc3\nF4WFhdZJPPn5+fDz80NqaipEUcShQ4ewa9cu5ObmAgA0Gg1mzpxp8xoRERHw9/dHcnLyiP9+RETk\n+zwelqdOncLixYutE3G2bNmCLVu2QK/XIy8vD/X19aiqqrJ5zosvvoiamhqIoojExETk5eUhKyvL\nE8UnIqIxQGhqanJu9gt5JV8eS2DZPYNl9wyW3bf57DpLIiKikcKwJCIiUsGwJCIiUsGwJCIiUsGw\nJCIiUsGwJCIiUsGwJCIiUsGwJCIiUsGwJCIiUsGwJCIiUsGwJCIiUsGwJCIiUsGwJCIiUsGwJCIi\nUsGwJCIiUsGwJCIiUsGwJCIiUsGwJCIiUsGwJCIiUsGwJCIiUsGwJCIiUsGwJCIiUsGwJCIiUsGw\nJCIiUsGwJCIiUqHxdAFo7DGZgKIiCefPJ6K1VUJ6ugkiP7YRkRdjWNKIKyqScM89QejqEuDnp+Dw\nYSPmzzd5ulhERP3i53kacQaDgK4uAQDQ1SWgokLwcImIiAbGsKQRp9Mp8PNTAAB+fgp0OsXDJSIi\nGhi7YWnEpaebcPiwERcudCM5WYP0dHbBEpF3Y1jSiBNFYP58E0JCypCUlOTp4hARqWI3LBERkQqG\nJRERkQqGJRERkQqGJRERkQqGJRERkQqGJRERkQqGJRERkQqGJRERkQpuSkBENix3hTEYBOh0Cu8K\nQwSGJRH1wbvCENnj50UissG7whDZ83hYHj9+HHq9HrNnz4ZWq0V+fv6A51dXV0Or1dp8hYWF4ciR\nI9Zzjh07hnvuuQc6nQ5TpkzBggULsH379uH+VYhGBd4Vhsiex7thjUYjUlJSoNfrsXr1aqeeIwgC\n9u/fj5SUFOtjWq3W+n1QUBBWrVqF2bNnIzAwEJ999hkeeeQRBAUFYeXKlW7/HYhGE8tdYSoqesYs\nicY6j4dlZmYmMjMzAQDZ2dlOPUdRFISGhiIyMtLh8fT0dKSnp1t/jo2NxcGDB1FQUMCwJFJhuSvM\n/PmeLgmR9/B4N6yrli9fjqSkJNx77704cODAgOcWFRXh5MmTWLhw4QiVjoiIRhOPtywHKzg4GJs3\nb0ZGRgYkScKHH36IlStXYseOHVi6dKnNuSkpKbh69SpMJhPWrVuH+++/30OlJiIiXyY0NTV5zeh9\nTEwMXnjhBej1+kE97/HHH0dBQQGOHj1q83h1dTWMRiNOnjyJf/u3f8Nzzz2Hn/zkJ/1ep7S01KVy\nExGR93HnzeV9rmXpyLx587Bnzx67x2NjYwEAs2bNQkNDA7Zu3TpgWLqzYkdKaWmpT5YbYNk9hWX3\n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\niYiIVDAsiYiIVDAsiYiIVDAsiYiIVDAsiYiIVDAsiYiIVDAsiYiIVDAsiYiIVDAsiYiIVDAsiYiI\nVDAsiYiIVDAsiYiIVDAsiYiIVDAsiYiIVDAsiYiIVDAsiYiIVDAsiYiIVDAsiYiIVDAsiYiIVDAs\niYiIVDAsiYiIVDAsiYiIVDAsiYiIVDAsiYiIVDAsiYiIVDAsiYiIVDAsiYiIVDAsiYiIVDAsiYiI\nVDAsiYiIVDAsiYiIVDAsiYiIVDAsiYiIVHg8LI8fPw69Xo/Zs2dDq9UiPz9/wPOrq6uh1WptvsLC\nwnDkyBGb844ePYpFixZh8uTJmDt3Lnbv3j2cvwYREY1iGk8XwGg0IiUlBXq9HqtXr3bqOYIgYP/+\n/UhJSbE+ptVqrd9XVVVh2bJlWL58OV5//XUUFBRg7dq1iIiIwOLFi93+OxAR0ejm8bDMzMxEZmYm\nACA7O9up5yiKgtDQUERGRjo8vmvXLkyZMgVbt24FACQlJeHzzz/HK6+8wrAkIqJB83g3rKuWL1+O\npKQk3HvvvThw4IDNsZMnT+Jb3/qWzWPf/va3cerUKZhMppEsJhERjQI+F5bBwcHYvHkz3nzzTbz7\n7ru48847sXLlSrz77rvWcxoaGhAVFWXzvMjISHR3d+PatWsjXWQiIvJxHu+GHaywsDDk5ORYf05P\nT0djYyO2bduGpUuXerBknpGUlOTpIriMZfcMlt0zWHbf5nMtS0fmzZsHg8Fg/TkqKgoNDQ0251y5\ncgUajQbh4eEjXTwiIvJxoyIsi4uLMWnSJOvPCxYswKeffmpzzpEjRzB37lxIkjTCpSMiIl/n8W5Y\no9EIg8EARVEgyzJqampQUlICrVaLmJgY5ObmorCw0DqJJz8/H35+fkhNTYUoijh06BB27dqF3Nxc\n6zVXrFiBnTt3Yv369VixYgVOnDiB//qv/8Ibb7zhqV+TiIh8mNDU1KR4sgBHjx7F4sWLIQiCzeN6\nvR55eXnIzs7G8ePHcfr0aQDmsNy2bRtqamogiiISExORnZ2NrKwsm+cfP34cTz75JM6dO4fJkydj\nzZo1uP/++0fs9yIiotHD42FJRETk7UbFmKWanTt3Ii0tDZMnT8aiRYtQUFAw4PlnzpzB97//fUyZ\nMgUpKSl4/vnnR6ik9gZTdme3AhwJg93GEPCeeh+uLRiH28svv4y7774bsbGxSExMxE9/+lOcPXtW\n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\nMAAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# put the plots together\n", "plt.scatter(glass.al, glass.ri)\n", "plt.plot(glass.al, glass.ri_pred, color='red')\n", "plt.xlabel('al')\n", "plt.ylabel('ri')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Refresher: interpreting linear regression coefficients" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Linear regression equation: $y = \\beta_0 + \\beta_1x$" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 1.51699012])" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# compute prediction for al=2 using the equation\n", "linreg.intercept_ + linreg.coef_ * 2" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 1.51699012])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# compute prediction for al=2 using the predict method\n", "linreg.predict(2)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['al'] [-0.00247761]\n" ] } ], "source": [ "# examine coefficient for al\n", "print(feature_cols, linreg.coef_)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Interpretation:** A 1 unit increase in 'al' is associated with a 0.0025 unit decrease in 'ri'." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1.5145125136125304" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# increasing al by 1 (so that al=3) decreases ri by 0.0025\n", "1.51699012 - 0.0024776063874696243" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 1.51451251])" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# compute prediction for al=3 using the predict method\n", "linreg.predict(3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Predicting a Categorical Response" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "1 70\n", "2 76\n", "3 17\n", "5 13\n", "6 9\n", "7 29\n", "Name: glass_type, dtype: int64" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# examine glass_type\n", "glass.glass_type.value_counts().sort_index()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "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", " \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", " \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", "
rinamgalsikcabafeglass_typeri_predhousehold
id
221.5196614.773.750.2972.020.039.000.00.0011.5212270
1851.5111517.380.000.3475.410.006.650.00.0061.5211031
401.5221314.213.820.4771.770.119.570.00.0011.5207810
391.5221314.213.820.4771.770.119.570.00.0011.5207810
511.5232013.723.720.5171.750.0910.060.00.1611.5206820
\n", "
" ], "text/plain": [ " ri na mg al si k ca ba fe glass_type \\\n", "id \n", "22 1.51966 14.77 3.75 0.29 72.02 0.03 9.00 0.0 0.00 1 \n", "185 1.51115 17.38 0.00 0.34 75.41 0.00 6.65 0.0 0.00 6 \n", "40 1.52213 14.21 3.82 0.47 71.77 0.11 9.57 0.0 0.00 1 \n", "39 1.52213 14.21 3.82 0.47 71.77 0.11 9.57 0.0 0.00 1 \n", "51 1.52320 13.72 3.72 0.51 71.75 0.09 10.06 0.0 0.16 1 \n", "\n", " ri_pred household \n", "id \n", "22 1.521227 0 \n", "185 1.521103 1 \n", "40 1.520781 0 \n", "39 1.520781 0 \n", "51 1.520682 0 " ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# types 1, 2, 3 are window glass\n", "# types 5, 6, 7 are household glass\n", "glass['household'] = glass.glass_type.map({1:0, 2:0, 3:0, 5:1, 6:1, 7:1})\n", "glass.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's change our task, so that we're predicting **household** using **al**. Let's visualize the relationship to figure out how to do this:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.scatter(glass.al, glass.household)\n", "plt.xlabel('al')\n", "plt.ylabel('household')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's draw a **regression line**, like we did before:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# fit a linear regression model and store the predictions\n", "feature_cols = ['al']\n", "X = glass[feature_cols]\n", "y = glass.household\n", "linreg.fit(X, y)\n", "glass['household_pred'] = linreg.predict(X)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# scatter plot that includes the regression line\n", "plt.scatter(glass.al, glass.household)\n", "plt.plot(glass.al, glass.household_pred, color='red')\n", "plt.xlabel('al')\n", "plt.ylabel('household')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If **al=3**, what class do we predict for household? **1**\n", "\n", "If **al=1.5**, what class do we predict for household? **0**\n", "\n", "We predict the 0 class for **lower** values of al, and the 1 class for **higher** values of al. What's our cutoff value? Around **al=2**, because that's where the linear regression line crosses the midpoint between predicting class 0 and class 1.\n", "\n", "Therefore, we'll say that if **household_pred >= 0.5**, we predict a class of **1**, else we predict a class of **0**.\n", "\n", "## $$h_\\beta(x) = \\beta_0 + \\beta_1x_1 + \\beta_2x_2 + ... + \\beta_nx_n$$\n", "\n", "- $h_\\beta(x)$ is the response\n", "- $\\beta_0$ is the intercept\n", "- $\\beta_1$ is the coefficient for $x_1$ (the first feature)\n", "- $\\beta_n$ is the coefficient for $x_n$ (the nth feature)\n", "\n", "### if $h_\\beta(x)\\le 0.5$ then $\\hat y = 0$ \n", "\n", "### if $h_\\beta(x)> 0.5$ then $\\hat y = 1$ " ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array(['small', 'big', 'small'], \n", " dtype=' 10, 'big', 'small')" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "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", " \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", " \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", "
rinamgalsikcabafeglass_typeri_predhouseholdhousehold_predhousehold_pred_class
id
221.5196614.773.750.2972.020.039.000.00.0011.5212270-0.3404950
1851.5111517.380.000.3475.410.006.650.00.0061.5211031-0.3154360
401.5221314.213.820.4771.770.119.570.00.0011.5207810-0.2502830
391.5221314.213.820.4771.770.119.570.00.0011.5207810-0.2502830
511.5232013.723.720.5171.750.0910.060.00.1611.5206820-0.2302360
\n", "
" ], "text/plain": [ " ri na mg al si k ca ba fe glass_type \\\n", "id \n", "22 1.51966 14.77 3.75 0.29 72.02 0.03 9.00 0.0 0.00 1 \n", "185 1.51115 17.38 0.00 0.34 75.41 0.00 6.65 0.0 0.00 6 \n", "40 1.52213 14.21 3.82 0.47 71.77 0.11 9.57 0.0 0.00 1 \n", "39 1.52213 14.21 3.82 0.47 71.77 0.11 9.57 0.0 0.00 1 \n", "51 1.52320 13.72 3.72 0.51 71.75 0.09 10.06 0.0 0.16 1 \n", "\n", " ri_pred household household_pred household_pred_class \n", "id \n", "22 1.521227 0 -0.340495 0 \n", "185 1.521103 1 -0.315436 0 \n", "40 1.520781 0 -0.250283 0 \n", "39 1.520781 0 -0.250283 0 \n", "51 1.520682 0 -0.230236 0 " ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# transform household_pred to 1 or 0\n", "glass['household_pred_class'] = np.where(glass.household_pred >= 0.5, 1, 0)\n", "glass.head()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAc4AAAEtCAYAAACBNoCcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtcVHXeB/DPYcALKYEIaiBeUREIyBYx3SK0ss1SHrxB\nWklbupI+lnjBzd2wi8au7vqwYiba6pqUKK667po+KyQKYq8HIUo38BKo6QwhKBHqMHOeP4jJGQbh\nzJy5MZ/369UrznU+5+cMX36/cxmhrq5OBBEREXWIi60DEBERORIWTiIiIglYOImIiCRg4SQiIpKA\nhZOIiEgCFk4iIiIJWDiJiIgkcLjCWVBQgPj4eIwcORJeXl7Iysq65/rHjx9HQkICRowYgQceeABj\nx47Fjh07rJSWiIg6G4crnA0NDQgODsaaNWvg7u7e7vqnTp1CcHAwtm/fjsLCQrz88stYtGgR9uzZ\nY4W0RETU2QiO/OQgf39//OEPf0B8fLyk7ebMmQOtVott27ZZKBkREXVWDtfjlEN9fT08PT1tHYOI\niByQq60DWNuhQ4dw7NgxHD582NZRiIjIATlVj/PkyZN49dVXkZaWhvDwcFvHISIiB+Q0hbOwsBDT\np0/Hb3/7W7z00ku2jkNERA7KKQrniRMnMH36dKSkpGDu3Lm2jkNERA7M4QpnQ0MDysrK8OWXX0Kr\n1eLy5csoKyvD5cuXAQCpqamYPHmybv38/HxMnz4diYmJiIuLg0qlgkqlQk1Nja0OwWIqKipsHcFk\nzG4bzG4bzO7YHK5wnj59Go8++iiio6Nx69YtrF69Go899hhWr14NAFAqlaisrNStn5WVhcbGRqSn\np2PEiBG6/2JiYmx1CERE5MAc7qracePGoba2ts3lGRkZraYN5xEREZnK4XqcREREtsTCSUREJAEL\nJxERkQQsnERERBKwcBIREUnAwklERCQBCycREZEELJxEREQSsHASERFJwMJJREQkAQsnERGRBCyc\nREREErBwEhERScDCSUREJAELJxERkQQsnERERBKwcBIREUnAwklERCQBCycREZEELJxEREQSsHAS\nERFJwMJJREQkAQsnERGRBA5XOAsKChAfH4+RI0fCy8sLWVlZ7W5z5swZPPPMM+jXrx+Cg4ORlpZm\nhaRERNQZOVzhbGhoQHBwMNasWQN3d/d216+vr0dsbCz69u2LvLw8rF69Gunp6diwYYMV0hIRUWfj\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# plot the class predictions\n", "plt.scatter(glass.al, glass.household)\n", "plt.plot(glass.al, glass.household_pred_class, color='red')\n", "plt.xlabel('al')\n", "plt.ylabel('household')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$h_\\beta(x)$ can be lower 0 or higher than 1, which is countra intuitive\n", "\n", "## Using Logistic Regression Instead\n", "\n", "Logistic regression can do what we just did:" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# fit a logistic regression model and store the class predictions\n", "from sklearn.linear_model import LogisticRegression\n", "logreg = LogisticRegression(C=1e9)\n", "feature_cols = ['al']\n", "X = glass[feature_cols]\n", "y = glass.household\n", "logreg.fit(X, y)\n", "glass['household_pred_class'] = logreg.predict(X)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAc4AAAEtCAYAAACBNoCcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XtYFOe9B/DvsICKSkAENSBeURENEFOC0ZMQNIlpTJXi\nDaNJ3Fy0Ej024gWrbTAXDa22HirGiKZaI4koVq2t0VOhoiDmOQgx0QS8BNToLkFQRJRld84flI0L\nizCwO7Mj38/z+MjObb/zuuOPmXfmXaGiokIEERERtYiT0gGIiIjUhIWTiIhIAhZOIiIiCVg4iYiI\nJGDhJCIikoCFk4iISAIWTiIiIglUVzizs7MRExODoUOHwtPTE6mpqfdd/tixY5g+fTqGDBmChx9+\nGKNGjcL27dtlSktERA8a1RXOqqoqBAUFYfXq1XBzc2t2+ZMnTyIoKAjbtm1DTk4OXnvtNSxYsAC7\nd++WIS0RET1oBDWPHOTn54ff//73iImJkbTerFmzYDKZsHXrVjslIyKiB5XqzjhtobKyEh4eHkrH\nICIiFXJWOoDcDh48iKNHj+LQoUNKRyEiIhVqV2ecJ06cwJtvvonExESEhIQoHYeIiFSo3RTOnJwc\nTJkyBb/5zW/w6quvKh2HiIhUql0UzuPHj2PKlCmIj4/H7NmzlY5DREQqprrCWVVVhdOnT+Orr76C\nyWTC5cuXcfr0aVy+fBkAkJCQgAkTJpiXz8rKwpQpU6DVahEdHQ29Xg+9Xo+ysjKldsFuioqKlI7Q\nasyuDGZXBrOrm+oK56lTp/Dkk08iIiICd+7cwapVq/DUU09h1apVAACdTofi4mLz8qmpqaiurkZS\nUhKGDBli/hMZGanULhARkYqp7q7a0aNHo7y8vMn5ycnJjV43nEZERNRaqjvjJCIiUhILJxERkQQs\nnERERBKwcBIREUnAwklERCQBCycREZEELJxEREQSsHASERFJwMJJREQkAQsnERGRBCycREREErBw\nEhERScDCSUREJAELJxERkQQsnERERBKwcBIREUnAwklERCQBCycREZEELJxEREQSsHASERFJwMJJ\nREQkAQsnERGRBCycREREEqiucGZnZyMmJgZDhw6Fp6cnUlNTm13nzJkzeOGFF9CrVy8EBQUhMTFR\nhqRERPQgUl3hrKqqQlBQEFavXg03N7dml6+srERUVBR69uyJzMxMrFq1CklJSVi/fr0MaYmI6EHj\n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\nJoj/qb8uLiKcnYHKSicAde/p5mZCba0AZ+e6hbp2BWpqgKoqAaJYtw4A1NYK6Nix7uf69V3uOuHY\njwL69TPCpdIJBR2M6NQJcL2hwfG7Irp1E+HsXJclSy8gIKAW1dVO8PIyoaysbhvOznVnZ+ItASdu\nC+jTxwhBEFFd7QSxUkDZj07QDzfC2yiY/32+vCuig7OA4mInFA82oruLgFPX6uadumn5d/2/ZZcQ\nI0xOQEifun+LTz+twq1bAnbvrrLo42ztZ/Tq1bp/808/rUJpad3nozXbI3qQCBUVFdJOdRzAli1b\nsG7dOuh0OgQGBmLVqlUIDw8HAMydOxfZ2dnIz883L3/27FnExcUhLy8PHh4e0Gq1WLRokVLx7UbN\nvwkyuzKYXRnMrm6qO+MEAK1WC61Wa3WeteczAwMDceDAAXvHIiKidoB31RIREUnAwklERCQBCycR\nEZEELJxEREQSsHASERFJwMJJREQkAQsnERGRBCycREREErBwEhERScDCSUREJAELJxERkQQsnERE\nRBKwcBIREUnAwklERCQBCycREZEELJxEREQSsHASERFJwMJJREQkAQsnERGRBCycREREErBwEhER\nScDCSUREJAELJxERkQSqKpw1NTVYtGgRBgwYAF9fX8TExOCHH3647zrbtm3D888/j759+6JPnz54\n8cUXceLECZkSExHRg0ZVhXPp0qU4cOAAtmzZgn/+85+orKzE1KlTIYpik+scO3YM0dHR2L9/P44c\nOYKAgABER0fj4sWLMiYnIqIHhbPSAVrq5s2b2L59OzZs2ICnnnoKALBx40YMHz4cmZmZePrpp62u\n9/HHH1u8Xrt2LQ4cOID//d//xRtvvGH33ERE9GBRzRlnfn4+amtrLQqkr68vBg8ejNzc3BZv5+7d\nu7hz5w48PDzsEZOIiB5wqimcer0eGo0G3bp1s5ju7e0NvV7f4u2899576Nq1K55//nlbRyQionZA\n8Uu17733HtasWdPkfEEQsH//fpu814YNG7B161bs27cPXbp0sck2HUlAQIDSEVqN2ZXB7MpgdnVT\nvHDGxsZi2rRp913Gz88PJ0+ehNFoxPXr1y3OOktLS/HEE080+z7JyclYvXo1du3ahZCQkDbnJiKi\n9knxwunp6QlPT89mlwsJCYGzszMyMjIQHR0NALhy5Qq+++47hIeH33fdP//5z0hMTMTOnTsRFhZm\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# plot the class predictions\n", "plt.scatter(glass.al, glass.household)\n", "plt.plot(glass.al, glass.household_pred_class, color='red')\n", "plt.xlabel('al')\n", "plt.ylabel('household')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What if we wanted the **predicted probabilities** instead of just the **class predictions**, to understand how confident we are in a given prediction?" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# store the predicted probabilites of class 1\n", "glass['household_pred_prob'] = logreg.predict_proba(X)[:, 1]" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nACgpEeDubvpsnl+tFtGs2b1tK7vudu2MKCkxLdc8Xbt2pm02b7s5n3nbzctydb23neb+M483b1dl\n48r/Wb4/8/OVuH37/tPYkpaWZnOc+TvarJkIQUC1l1efKsvuDJjduQm5ubmVPyXbAe3atQuTJk3C\n8uXL0adPH3z22WfYunUrjh07Bn9/f8TExCA5ORm7d+8GANy+fRthYWHo378/Zs2ahbS0NEydOhVv\nvPEGJk+eLMs2GI3AyZNKXLpU83NQej2QkKDExYsKdOxoRJ8+Bpw4UYqMDA/LMgHTesznycqf8zIa\ngdOnTecSi4sFZGWZzmGFhBhw5owCGo3pXFxIiB7Z2abpfHxE5Oebpu3Z0wClUoRGo8CVKwp06mRE\nWJgBJ08qUFQEuLiIEEUBd+6Ypg8Kqnh+7N52mLI99phpvDmX0Wg6x+npaTrHmZenxO3bQOvWRpif\n765Wm84p5ucrAJjW6eFhhF4vQKUyTdS0qel8akGBAFE0zWNavwA3N9Nn8/wlJQrcuiWgQwcD8vMV\ncHU1nePMy1OipERE8+YiVCpTFq1WQGCgHkVFCvj4GJGVZVqG+RznnTum85zt2pnOcRYVKZCfL+DW\nLVP/GQy2z3F27WqAWi3g5s3qneM0/11qNKZ1VvccZ2W/BM3f0YyMe3/nmZmOdY7TmX+BM7tzc7rC\nCQAbN27EqlWroNFoEBQUhCVLlqBPnz4AgMmTJyMhIQEpKSmW6c+dO4fo6GgkJyfDy8sLUVFRmD17\ntlzx64wzf6GZXR7MLg9md25OdajWLCoqClFRUTbHxcXFVWgLCgrCnj176joWERE1Ag5wwIWIiMh5\nsHASERFJwMJJREQkAQsnERGRBCycREREErBwEhERScDCSUREJAELJxERkQQsnERERBKwcBIREUnA\nwklERCQBCycREZEELJxEREQSsHASERFJwMJJREQkAQsnERGRBCycREREErBwEhERScDCSUREJAEL\nJxERkQQsnERERBKwcBIREUnAwklERCSBUxXO0tJSzJ49G506dYK/vz8iIiJw48aN+86zefNmPPvs\ns2jfvj3atWuH559/HseOHaunxERE1NA4VeF84403sGfPHmzcuBH//ve/kZ+fj9GjR0MUxUrnOXr0\nKIYPH44ffvgBBw8eRGBgIIYPH45Lly7VY3IiImooVHIHqK7bt29jy5YtWLNmDf785z8DANatW4ee\n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\nYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# plot the predicted probabilities\n", "plt.scatter(glass.al, glass.household)\n", "plt.plot(glass.al, glass.household_pred_prob, color='red')\n", "plt.xlabel('al')\n", "plt.ylabel('household')" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[[ 0.97161726 0.02838274]]\n", "[[ 0.34361555 0.65638445]]\n", "[[ 0.00794192 0.99205808]]\n" ] } ], "source": [ "# examine some example predictions\n", "print(logreg.predict_proba(1))\n", "print(logreg.predict_proba(2))\n", "print(logreg.predict_proba(3))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first column indicates the predicted probability of **class 0**, and the second column indicates the predicted probability of **class 1**." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Probability, odds, e, log, log-odds\n", "\n", "$$probability = \\frac {one\\ outcome} {all\\ outcomes}$$\n", "\n", "$$odds = \\frac {one\\ outcome} {all\\ other\\ outcomes}$$\n", "\n", "Examples:\n", "\n", "- Dice roll of 1: probability = 1/6, odds = 1/5\n", "- Even dice roll: probability = 3/6, odds = 3/3 = 1\n", "- Dice roll less than 5: probability = 4/6, odds = 4/2 = 2\n", "\n", "$$odds = \\frac {probability} {1 - probability}$$\n", "\n", "$$probability = \\frac {odds} {1 + odds}$$" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "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", " \n", " \n", " \n", "
probabilityodds
00.100.111111
10.200.250000
20.250.333333
30.501.000000
40.601.500000
50.804.000000
60.909.000000
\n", "
" ], "text/plain": [ " probability odds\n", "0 0.10 0.111111\n", "1 0.20 0.250000\n", "2 0.25 0.333333\n", "3 0.50 1.000000\n", "4 0.60 1.500000\n", "5 0.80 4.000000\n", "6 0.90 9.000000" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# create a table of probability versus odds\n", "table = pd.DataFrame({'probability':[0.1, 0.2, 0.25, 0.5, 0.6, 0.8, 0.9]})\n", "table['odds'] = table.probability/(1 - table.probability)\n", "table" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What is **e**? It is the base rate of growth shared by all continually growing processes:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "2.7182818284590451" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# exponential function: e^1\n", "np.exp(1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What is a **(natural) log**? It gives you the time needed to reach a certain level of growth:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.99989631572895199" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# time needed to grow 1 unit to 2.718 units\n", "np.log(2.718)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "It is also the **inverse** of the exponential function:" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "5.0" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.log(np.exp(5))" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
probabilityoddslogodds
00.100.111111-2.197225
10.200.250000-1.386294
20.250.333333-1.098612
30.501.0000000.000000
40.601.5000000.405465
50.804.0000001.386294
60.909.0000002.197225
\n", "
" ], "text/plain": [ " probability odds logodds\n", "0 0.10 0.111111 -2.197225\n", "1 0.20 0.250000 -1.386294\n", "2 0.25 0.333333 -1.098612\n", "3 0.50 1.000000 0.000000\n", "4 0.60 1.500000 0.405465\n", "5 0.80 4.000000 1.386294\n", "6 0.90 9.000000 2.197225" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# add log-odds to the table\n", "table['logodds'] = np.log(table.odds)\n", "table" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## What is Logistic Regression?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Linear regression:** continuous response is modeled as a linear combination of the features:\n", "\n", "$$y = \\beta_0 + \\beta_1x$$\n", "\n", "**Logistic regression:** log-odds of a categorical response being \"true\" (1) is modeled as a linear combination of the features:\n", "\n", "$$\\log \\left({p\\over 1-p}\\right) = \\beta_0 + \\beta_1x$$\n", "\n", "This is called the **logit function**.\n", "\n", "Probability is sometimes written as pi:\n", "\n", "$$\\log \\left({\\pi\\over 1-\\pi}\\right) = \\beta_0 + \\beta_1x$$\n", "\n", "The equation can be rearranged into the **logistic function**:\n", "\n", "$$\\pi = \\frac{e^{\\beta_0 + \\beta_1x}} {1 + e^{\\beta_0 + \\beta_1x}}$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In other words:\n", "\n", "- Logistic regression outputs the **probabilities of a specific class**\n", "- Those probabilities can be converted into **class predictions**\n", "\n", "The **logistic function** has some nice properties:\n", "\n", "- Takes on an \"s\" shape\n", "- Output is bounded by 0 and 1\n", "\n", "We have covered how this works for **binary classification problems** (two response classes). But what about **multi-class classification problems** (more than two response classes)?\n", "\n", "- Most common solution for classification models is **\"one-vs-all\"** (also known as **\"one-vs-rest\"**): decompose the problem into multiple binary classification problems\n", "- **Multinomial logistic regression** can solve this as a single problem" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Part 6: Interpreting Logistic Regression Coefficients" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nACgpEeDubvpsnl+tFtGs2b1tK7vudu2MKCkxLdc8Xbt2pm02b7s5n3nbzctydb23neb+M483b1dl\n48r/Wb4/8/OVuH37/tPYkpaWZnOc+TvarJkIQUC1l1efKsvuDJjduQm5ubmVPyXbAe3atQuTJk3C\n8uXL0adPH3z22WfYunUrjh07Bn9/f8TExCA5ORm7d+8GANy+fRthYWHo378/Zs2ahbS0NEydOhVv\nvPEGJk+eLMs2GI3AyZNKXLpU83NQej2QkKDExYsKdOxoRJ8+Bpw4UYqMDA/LMgHTesznycqf8zIa\ngdOnTecSi4sFZGWZzmGFhBhw5owCGo3pXFxIiB7Z2abpfHxE5Oebpu3Z0wClUoRGo8CVKwp06mRE\nWJgBJ08qUFQEuLiIEEUBd+6Ypg8Kqnh+7N52mLI99phpvDmX0Wg6x+npaTrHmZenxO3bQOvWRpif\n765Wm84p5ucrAJjW6eFhhF4vQKUyTdS0qel8akGBAFE0zWNavwA3N9Nn8/wlJQrcuiWgQwcD8vMV\ncHU1nePMy1OipERE8+YiVCpTFq1WQGCgHkVFCvj4GJGVZVqG+RznnTum85zt2pnOcRYVKZCfL+DW\nLVP/GQy2z3F27WqAWi3g5s3qneM0/11qNKZ1VvccZ2W/BM3f0YyMe3/nmZmOdY7TmX+BM7tzc7rC\nCQAbN27EqlWroNFoEBQUhCVLlqBPnz4AgMmTJyMhIQEpKSmW6c+dO4fo6GgkJyfDy8sLUVFRmD17\ntlzx64wzf6GZXR7MLg9md25OdajWLCoqClFRUTbHxcXFVWgLCgrCnj176joWERE1Ag5wwIWIiMh5\nsHASERFJwMJJREQkAQsnERGRBCycREREErBwEhERScDCSUREJAELJxERkQQsnERERBKwcBIREUnA\nwklERCQBCycREZEELJxEREQSsHASERFJwMJJREQkAQsnERGRBCycREREErBwEhERScDCSUREJAEL\nJxERkQQsnERERBKwcBIREUnAwklERCSBUxXO0tJSzJ49G506dYK/vz8iIiJw48aN+86zefNmPPvs\ns2jfvj3atWuH559/HseOHaunxERE1NA4VeF84403sGfPHmzcuBH//ve/kZ+fj9GjR0MUxUrnOXr0\nKIYPH44ffvgBBw8eRGBgIIYPH45Lly7VY3IiImooVHIHqK7bt29jy5YtWLNmDf785z8DANatW4ee\n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\nYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# plot the predicted probabilities again\n", "plt.scatter(glass.al, glass.household)\n", "plt.plot(glass.al, glass.household_pred_prob, color='red')\n", "plt.xlabel('al')\n", "plt.ylabel('household')" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 0.64722323])" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# compute predicted log-odds for al=2 using the equation\n", "logodds = logreg.intercept_ + logreg.coef_[0] * 2\n", "logodds" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 1.91022919])" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# convert log-odds to odds\n", "odds = np.exp(logodds)\n", "odds" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 0.65638445])" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# convert odds to probability\n", "prob = odds/(1 + odds)\n", "prob" ] }, { "cell_type": "code", "execution_count": 36, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 0.65638445])" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# compute predicted probability for al=2 using the predict_proba method\n", "logreg.predict_proba(2)[:, 1]" ] }, { "cell_type": "code", "execution_count": 37, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(['al'], array([ 4.18040386]))" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# examine the coefficient for al\n", "feature_cols, logreg.coef_[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Interpretation:** A 1 unit increase in 'al' is associated with a 4.18 unit increase in the log-odds of 'household'." ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.99205808391674566" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# increasing al by 1 (so that al=3) increases the log-odds by 4.18\n", "logodds = 0.64722323 + 4.1804038614510901\n", "odds = np.exp(logodds)\n", "prob = odds/(1 + odds)\n", "prob" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 0.99205808])" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# compute predicted probability for al=3 using the predict_proba method\n", "logreg.predict_proba(3)[:, 1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Bottom line:** Positive coefficients increase the log-odds of the response (and thus increase the probability), and negative coefficients decrease the log-odds of the response (and thus decrease the probability)." ] }, { "cell_type": "code", "execution_count": 40, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([-7.71358449])" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# examine the intercept\n", "logreg.intercept_" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Interpretation:** For an 'al' value of 0, the log-odds of 'household' is -7.71." ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([ 0.00044652])" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# convert log-odds to probability\n", "logodds = logreg.intercept_\n", "odds = np.exp(logodds)\n", "prob = odds/(1 + odds)\n", "prob" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "That makes sense from the plot above, because the probability of household=1 should be very low for such a low 'al' value." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![Logistic regression beta values](https://raw.githubusercontent.com/justmarkham/DAT8/master/notebooks/images/logistic_betas.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Changing the $\\beta_0$ value shifts the curve **horizontally**, whereas changing the $\\beta_1$ value changes the **slope** of the curve." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Comparing Logistic Regression with Other Models\n", "\n", "Advantages of logistic regression:\n", "\n", "- Highly interpretable (if you remember how)\n", "- Model training and prediction are fast\n", "- No tuning is required (excluding regularization)\n", "- Features don't need scaling\n", "- Can perform well with a small number of observations\n", "- Outputs well-calibrated predicted probabilities\n", "\n", "Disadvantages of logistic regression:\n", "\n", "- Presumes a linear relationship between the features and the log-odds of the response\n", "- Performance is (generally) not competitive with the best supervised learning methods\n", "- Can't automatically learn feature interactions" ] } ], "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.5.1" } }, "nbformat": 4, "nbformat_minor": 0 }