{ "metadata": { "name": "", "signature": "sha256:8788eac2fe8ac25c0e103ebdcb3e16cb34ba5818542acd15df6259b836ec6503" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "*Sebastian Raschka* \n", "last modified: 03/31/2014" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "I am really looking forward to your comments and suggestions to improve and extend this tutorial! Just send me a quick note \n", "via Twitter: [@rasbt](https://twitter.com/rasbt) \n", "or Email: [bluewoodtree@gmail.com](mailto:bluewoodtree@gmail.com)\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Problem Category\n", "- Statistical Pattern Recognition \n", "- Supervised Learning \n", "- Parametric Learning \n", "- Bayes Decision Theory \n", "- Univariate data \n", "- 2-class problem\n", "- equal variances\n", "- different priors\n", "- Gaussian model (2 parameters)\n", "- No Risk function\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\n", "

\n", "\n", "# Sections\n", "\n", "\n", "

Given information
\n", "• Deriving the decision boundary
\n", "• Plotting the class conditional densities, posterior probabilities, and decision boundary
\n", "• Classifying some random example data
\n", "• Calculating the empirical error rate
\n", "\n", " \n", "\n", " \n", " \n", "\n", "\n", "\n", "


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

\n", "

\n", "\n", "## Given information:\n", "\n", "[back to top]
\n", "\n", "\n", "####model: continuous univariate normal (Gaussian) model for the class-conditional densities\n", " \n", "$ p(x | \\omega_j) \\sim N(\\mu|\\sigma^2) $\n", "\n", "$ p(x | \\omega_j) \\sim \\frac{1}{\\sqrt{2\\pi\\sigma^2}} \\exp{ \\bigg[-\\frac{1}{2}\\bigg( \\frac{x-\\mu}{\\sigma}\\bigg)^2 \\bigg] } $\n", "\n", "####Prior probabilities:\n", "\n", "$ P(\\omega_1) = \\frac{2}{3}, \\quad P(\\omega_2) = \\frac{1}{3} $\n", "\n", "#### Variances of the sample distributions\n", "\n", "$ \\sigma_1^2 = \\sigma_2^2 = 1 $\n", "\n", "#### Means of the sample distributions\n", "\n", "$ \\mu_1 = 4, \\quad \\mu_2 = 10 $\n", "\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\n", "

\n", "\n", "## Deriving the decision boundary\n", "[back to top]
\n", "\n", "### Bayes' Rule:\n", "\n", "\n", "$ P(\\omega_j|x) = \\frac{p(x|\\omega_j) * P(\\omega_j)}{p(x)} $\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "###Bayes' Decision Rule:\n", "\n", "Decide $ \\omega_1 $ if $ P(\\omega_1|x) > P(\\omega_2|x) $ else decide $ \\omega_2 $.\n", "
\n", "\n", "\n", "\n", "$ \\Rightarrow \\frac{p(x|\\omega_1) * P(\\omega_1)}{p(x)} > \\frac{p(x|\\omega_2) * P(\\omega_2)}{p(x)} $\n", "\n", "\n", "We can drop $ p(x) $ since it is just a scale factor.\n", "\n", "\n", "$ \\Rightarrow P(x|\\omega_1) * P(\\omega_1) > p(x|\\omega_2) * P(\\omega_2) $ \n", "\n", "$ \\Rightarrow \\frac{p(x|\\omega_1)}{p(x|\\omega_2)} > \\frac{P(\\omega_2)}{P(\\omega_1)} $\n", "\n", "$ \\Rightarrow \\frac{p(x|\\omega_1)}{p(x|\\omega_2)} > \\Bigg(\\frac{\\frac{1}{3}}{\\frac{2}{3}}\\Bigg) $\n", "\n", "$ \\Rightarrow \\frac{p(x|\\omega_1)\\cdot\\frac{2}{3}}{p(x|\\omega_2)\\cdot\\frac{1}{3}} > 1 $\n", "\n", "$ \\Rightarrow \\frac{2}{3}\\cdot\\frac{1}{\\sqrt{2\\pi\\sigma_1^2}} \\exp{ \\bigg[-\\frac{1}{2}\\bigg( \\frac{x-\\mu_1}{\\sigma_1}\\bigg)^2 \\bigg] } > \\frac{1}{3}\\cdot\\frac{1}{\\sqrt{2\\pi\\sigma_2^2}} \\exp{ \\bigg[-\\frac{1}{2}\\bigg( \\frac{x-\\mu_2}{\\sigma_2}\\bigg)^2 \\bigg] } $\n", "\n", "Since we have equal variances, we can drop the first term completely.\n", "\n", "\n", "\n", "\n", "$ \\Rightarrow \\frac{2}{3}\\cdot\\exp{ \\bigg[-\\frac{1}{2}\\bigg( \\frac{x-\\mu_1}{\\sigma_1}\\bigg)^2 \\bigg] } > \\frac{1}{3}\\cdot\\exp{ \\bigg[-\\frac{1}{2}\\bigg( \\frac{x-\\mu_2}{\\sigma_2}\\bigg)^2 \\bigg] } \\quad\\quad \\bigg| \\;ln, \\quad \\mu_1 = 4, \\quad \\mu_2 = 10, \\quad \\sigma=1 $\n", "\n", "$ \\Rightarrow ln(2) - ln(3) -\\frac{1}{2} (x-4)^2 > ln(1) - ln(3) -\\frac{1}{2} (x-10)^2 \\quad \\bigg| \\; + ln(3), \\; \\cdot \\; (-2) $ \n", "$ \\Rightarrow -2ln(2) + (x-4)^2 < (x-10)^2 $\n", "\n", "$ \\Rightarrow x^2 - 8x + 14.6137 < x^2 - 20x + 100 $\n", "\n", "$ \\Rightarrow 12x < 85.3863 $\n", "\n", "$ \\Rightarrow x < 7.1155 $" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\n", "

\n", "\n", "## Plotting the class conditional densities, posterior probabilities, and decision boundary\n", "\n", "[back to top]
" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%pylab inline\n", "\n", "import numpy as np\n", "from matplotlib import pyplot as plt\n", "\n", "def pdf(x, mu, sigma):\n", " \"\"\"\n", " Calculates the normal distribution's probability density \n", " function (PDF). \n", " \n", " \"\"\"\n", " term1 = 1.0 / ( math.sqrt(2*np.pi) * sigma )\n", " term2 = np.exp( -0.5 * ( (x-mu)/sigma )**2 )\n", " return term1 * term2\n", "\n", "# generating some sample data\n", "x = np.arange(0, 100, 0.05)\n", "\n", "# probability density functions\n", "pdf1 = pdf(x, mu=4, sigma=1)\n", "pdf2 = pdf(x, mu=10, sigma=1)\n", "\n", "# Class conditional densities (likelihoods)\n", "plt.plot(x, pdf1)\n", "plt.plot(x, pdf2)\n", "plt.title('Class conditional densities (likelihoods)')\n", "plt.ylabel('p(x)')\n", "plt.xlabel('random variable x')\n", "plt.legend(['p(x|w_1) ~ N(4,1)', 'p(x|w_2) ~ N(10,1)'], loc='upper right')\n", "plt.ylim([0,0.5])\n", "plt.xlim([0,20])\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] }, { "metadata": {}, "output_type": "display_data", "png": "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\nrkJggg==\n", "text": [ "" ] } ], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "def posterior(likelihood, prior):\n", " \"\"\"\n", " Calculates the posterior probability (after Bayes Rule) without\n", " the scale factor p(x) (=evidence). \n", " \n", " \"\"\"\n", " return likelihood * prior\n", "\n", "# probability density functions\n", "posterior1 = posterior(pdf(x, mu=4, sigma=1), 2/3.0)\n", "posterior2 = posterior(pdf(x, mu=10, sigma=1), 1/3.0)\n", "\n", "# Class conditional densities (likelihoods)\n", "plt.plot(x, posterior1)\n", "plt.plot(x, posterior2)\n", "plt.title('Posterior Probabilities w. Decision Boundary')\n", "plt.ylabel('P(w)')\n", "plt.xlabel('random variable x')\n", "plt.legend(['P(w_1|x)', 'p(w_2|X)'], loc='upper right')\n", "plt.ylim([0,0.5])\n", "plt.xlim([0,20])\n", "plt.axvline(7.1155, color='r', alpha=0.8, linestyle=':', linewidth=2)\n", "plt.annotate('R1', xy=(4, 0.3), xytext=(4, 0.3))\n", "plt.annotate('R2', xy=(10, 0.3), xytext=(10, 0.3))\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEZCAYAAACXRVJOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XdcFFfXB/DfUgSpAiJSVCJFEKQogooURbFEEWtQo1ij\nUUyM8dEYGzHG6JMYjcHkIcYSUbHEV1ER7CgaEQvGAooSumiMoEiRstz3jw0bVurCzs4C55uPn+zu\nlHt2dpmzc8/MXAFjjIEQQkirp8R3AIQQQhQDJQRCCCEAKCEQQgj5ByUEQgghACghEEII+QclBEII\nIQAoIbQoe/fuxZAhQ/gOo0ZKSkr4888/G7Wsubk5zp07V+O02NhY2NjYSMx7/vx5AMC6deswe/bs\nWteryNuLK/b29rh06VKd82RkZEBbWxst/Yz0pnwnWyxGGqVLly6sbdu2TEtLixkZGbFp06axgoKC\nRq9v9erV7P3335dhhE0ny/coEAhYSkpKo5Y1Nzdn586da9K8qampTCAQMKFQ2KgY5EkgEDBNTU2m\npaXFDAwMmI+PDztw4ADfYclE1ffWvn17NnHiRPby5UveYmnsd7KloiOERhIIBDhx4gRev36NW7du\n4caNG1i7di1v8QiFwkYvyxir8ddgQ99jeXl5o9uWt5repyK6c+cOXr9+jeTkZEybNg1BQUFYs2YN\n32HJROV7+/PPP5GXl4fg4GC+Q5JKc/q+S4sSggyYmJhg6NChuHfvHgDg2LFjsLOzg56eHgYMGIAH\nDx6I592wYQPMzMygo6MDGxsbnD9/HtHR0fj6669x4MABaGtrw9nZGQDw6tUrzJw5EyYmJjAzM8PK\nlStRUVEBANi1axfc3d2xaNEitG/fHsHBwdi1axc8PDzEbf3+++/o3bs32rVrB1dXV1y9elU8zdvb\nGytWrIC7uzs0NTWRmpraoPd4//59AKLD7R9//BFWVlbo1q0bAGDbtm2wsrKCgYEBRo0ahZycHIl1\nREZGwsLCAoaGhliyZIl455ySkoKBAweiffv2MDQ0xPvvv49Xr15JLBsfHw87Ozvo6+tjxowZKCkp\nAQDExMSgU6dONcYcHByMKVOmAAA8PT0BAO3atYOOjg7i4uKqba8HDx5g8ODBMDAwgI2NDQ4dOiSe\ndvLkSdjZ2UFHRwdmZmbYuHFjjW126dIFt27dAiDqklJSUkJSUhIAYPv27Rg9enSd2/lt+vr6eP/9\n9/HTTz/h66+/Rm5uLoC6vxuA6LPo3r07dHR0YGdnh9u3bwOQ7FKLj4+Hi4sLdHV10bFjR3z66acA\ngLS0NCgpKYnX9+TJE/j5+cHAwABWVlb45ZdfJLbxhAkTEBgYCB0dHdjb2+PmzZsNem/a2toYOXIk\nEhMTxa/V1da0adOwcuVK8fO3P3tzc3Ns3LgRjo6OaNeuHQICAsTfEwD45ptvxNtrx44dErFERkbC\n2dkZurq66Ny5M7744gvxtMrtsWPHDnTp0gU+Pj4YMWIEQkJCJNbh4OCAiIiIBr13hcXvAUrzZW5u\nzs6ePcsYYywjI4PZ2dmxVatWsYcPHzJNTU129uxZVl5ezv773/8yS0tLVlpayh48eMA6derEcnJy\nGGOMpaeniw9Zg4OD2ZQpUyTa8Pf3Z3PnzmVFRUXsr7/+Yq6uriw0NJQxxtjOnTuZiooKCwkJYUKh\nkBUXF7OdO3ey/v37M8YYe/HiBWvXrh3bs2cPEwqFLDw8nOnp6bHc3FzGGGNeXl6sS5cuLDExkQmF\nQlZWVtbg98iY6HDb19eX5eXlsTdv3rBz586x9u3bs4SEBFZSUsIWLFjAPD09xesSCARs4MCBLC8v\nj2VkZDBra2v2yy+/MMYYe/z4MTt79iwrLS1lz58/Z56enmzhwoXiZbt06cJ69OjBsrKyWG5uLnN3\nd2crVqxgjDF24cIFZmZmJhFzZZdRcHCwuBsuLS2tWpdR1e1VUFDAzMzM2K5du5hQKGQJCQmsffv2\nLCkpiTHGWMeOHdnly5cZY4y9fPmS3bp1q8bvxdSpU9nGjRsZY4zNnj2bWVpasp9++okxxtiUKVPY\n5s2ba1yuqpq6MkpLS5mKigqLjo5mjNX93Th48CAzNTVlN27cEG/f9PT0atunT58+bM+ePYwxxgoL\nC1lcXBxjrHr3moeHB5s/fz4rKSlht2/fZoaGhuz8+fOMMVFXp7q6OouKimIVFRVs2bJlrE+fPnW+\nt8ePHzPGGMvNzWWDBw9mq1evFk+vq61p06axlStXiuet6bN3c3NjOTk5LDc3l9na2rL//e9/jDHG\noqKimJGREbt//z4rLCxkEydOlNjOMTEx7N69e4wxxu7cucOMjIzY0aNHJbZHYGAgKyoqYsXFxezg\nwYPMzc1N3Pbt27eZgYFBjX9HzQklhEbq0qUL09LSYu3atWNdunRh8+fPZ8XFxWzNmjXsvffeE89X\n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\n", "text": [ "" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\n", "

\n", "\n", "## Classifying some random example data\n", "\n", "[back to top]
" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Parameters\n", "mu_1 = 4\n", "mu_2 = 10\n", "sigma_1_sqr = 1\n", "sigma_2_sqr = 1\n", "\n", "# Generating 10 random samples drawn from a Normal Distribution for class 1 & 2\n", "x1_samples = sigma_1_sqr**0.5 * np.random.randn(10) + mu_1\n", "x2_samples = sigma_1_sqr**0.5 * np.random.randn(10) + mu_2\n", "y = [0 for i in range(10)]\n", "\n", "# Plotting sample data with a decision boundary\n", "\n", "plt.scatter(x1_samples, y, marker='o', color='green', s=40, alpha=0.5)\n", "plt.scatter(x2_samples, y, marker='^', color='blue', s=40, alpha=0.5)\n", "plt.title('Classifying random example data from 2 classes')\n", "plt.ylabel('P(x)')\n", "plt.xlabel('random variable x')\n", "plt.legend(['w_1', 'w_2'], loc='upper right')\n", "plt.ylim([-0.1,0.1])\n", "plt.xlim([0,20])\n", "plt.axvline(7.115, color='r', alpha=0.8, linestyle=':', linewidth=2)\n", "plt.annotate('R1', xy=(4, 0.05), xytext=(4, 0.05))\n", "plt.annotate('R2', xy=(10, 0.05), xytext=(10, 0.05))\n", "plt.show()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "display_data", "png": "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\nSUVORK5CYII=\n", "text": [ "" ] } ], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\n", "

\n", "\n", "## Calculating the empirical error rate\n", "\n", "[back to top]
" ] }, { "cell_type": "code", "collapsed": false, "input": [ "w1_as_w2, w2_as_w1 = 0, 0\n", "for x1,x2 in zip(x1_samples, x2_samples):\n", " if x1 >= 7.115:\n", " w1_as_w2 += 1\n", " if x2 < 7.115:\n", " w2_as_w1 += 1\n", " \n", "emp_err = (w1_as_w2 + w2_as_w1) / float(len(x1_samples) + len(x2_samples))\n", " \n", "print('Empirical Error: {}%'.format(emp_err * 100))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Empirical Error: 0.0%\n" ] } ], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }