Skip to content
Snippets Groups Projects
02_classification.ipynb 296 KiB
Newer Older
schmittu's avatar
schmittu committed
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Chapter 2: Classification"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As we have learned in the previous chapter *classification* belongs to the field of *supervised learning*. In such problems the aim is to predict a category. Such categories can be \n",
schmittu's avatar
schmittu committed
    "\n",
    "- ok/not ok\n",
    "- good / bad / dont't know\n",
    "- digit 0 ... / digit 9\n",
    "- etc \n",
    "\n",
    "In this chapter we introduce the core concepts of classification."
schmittu's avatar
schmittu committed
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## How could we  build  a simple classifier  ?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
schmittu's avatar
schmittu committed
    "If we look at the beer example, we can assume that the person who rated tbe beers has preferences like, \"I don't like high alcohol content\", \"I like fruity beer\", etc."
schmittu's avatar
schmittu committed
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This means we could construct a score where high numbers relate to \"favorable beer\". One simple way to implement such a score is to use a weighted sum like\n",
    "\n",
    "\n",
    "     score = -0.1 * alcohol_content + 4 * bitterness + 0.8 * darkness + 1.8 * fruitiness \n",
    "\n",
    "Positive weights contribute to a heigher score and negative weights to a lower.\n",
    "\n",
    "The actual weights here are guessed and serve as an example.\n",
    "\n",
    "The size of the numbers also reflects the numerical ranges of the features: alcohol content is in the range 3 to 5.9, where as bitterness is between 0 and 1.08:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
schmittu's avatar
schmittu committed
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>alcohol_content</th>\n",
       "      <th>bitterness</th>\n",
       "      <th>darkness</th>\n",
       "      <th>fruitiness</th>\n",
       "      <th>is_yummy</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>225.000000</td>\n",
       "      <td>225.000000</td>\n",
       "      <td>225.000000</td>\n",
       "      <td>225.000000</td>\n",
       "      <td>225.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>4.711873</td>\n",
       "      <td>0.463945</td>\n",
       "      <td>2.574963</td>\n",
       "      <td>0.223111</td>\n",
       "      <td>0.528889</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.437040</td>\n",
       "      <td>0.227366</td>\n",
       "      <td>1.725916</td>\n",
       "      <td>0.117272</td>\n",
       "      <td>0.500278</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>3.073993</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>4.429183</td>\n",
       "      <td>0.281291</td>\n",
       "      <td>1.197640</td>\n",
       "      <td>0.135783</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>4.740846</td>\n",
       "      <td>0.488249</td>\n",
       "      <td>2.026548</td>\n",
       "      <td>0.242396</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>5.005170</td>\n",
       "      <td>0.631056</td>\n",
       "      <td>4.043995</td>\n",
       "      <td>0.311874</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>5.955272</td>\n",
       "      <td>1.080170</td>\n",
       "      <td>7.221285</td>\n",
       "      <td>0.535315</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       alcohol_content  bitterness    darkness  fruitiness    is_yummy\n",
       "count       225.000000  225.000000  225.000000  225.000000  225.000000\n",
       "mean          4.711873    0.463945    2.574963    0.223111    0.528889\n",
       "std           0.437040    0.227366    1.725916    0.117272    0.500278\n",
       "min           3.073993    0.000000    0.000000    0.000000    0.000000\n",
       "25%           4.429183    0.281291    1.197640    0.135783    0.000000\n",
       "50%           4.740846    0.488249    2.026548    0.242396    1.000000\n",
       "75%           5.005170    0.631056    4.043995    0.311874    1.000000\n",
       "max           5.955272    1.080170    7.221285    0.535315    1.000000"
      ]
     },
     "execution_count": 9,
schmittu's avatar
schmittu committed
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
schmittu's avatar
schmittu committed
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "# read some data\n",
    "beer_data = pd.read_csv(\"beers.csv\")\n",
    "\n",
schmittu's avatar
schmittu committed
    "beer_data.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
schmittu's avatar
schmittu committed
   "metadata": {},
   "outputs": [],
   "source": [
    "scores =( -0.1 * beer_data[\"alcohol_content\"] + 3 * beer_data[\"bitterness\"] \n",
    "          + 0.8 * beer_data[\"darkness\"] + 1.8 * beer_data[\"fruitiness\"])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we can plot the histogram of the scores by classes:"
   ]
  },
schmittu's avatar
schmittu committed
  {
   "cell_type": "code",
   "execution_count": 12,
schmittu's avatar
schmittu committed
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAD8CAYAAABn919SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAADd9JREFUeJzt3W+MZfVdx/H3pyykhWKp2RGRZdyNaTZpiBEyqVYMbtjSbC2BPugDNoG0FTM+sAjahECNYX1moqltotFsgIIpLip/YtM0FdIywSYUyy4gf5b+ESksQhdCDEVNEPv1wVzidjoz9885M/fOr+9XMtl7zz0757Ozu5/97bnnfCdVhSRp63vbtANIkvphoUtSIyx0SWqEhS5JjbDQJakRFrokNcJCl6RGWOiS1AgLXZIasW0zD7Z9+/bauXPnZh5Skra8w4cPv1JVc8P229RC37lzJw8//PBmHlKStrwk3xtlP0+5SFIjLHRJaoSFLkmNsNAlqREWuiQ1YmihJ7klyfEkT6zy2qeSVJLtGxNPkjSqUVbotwL7Vm5Mcg7wQeC5njNJkiYwtNCr6gHg1VVe+jPgOsDvYSdJM2Cic+hJLgNeqKrHes4jSZrQ2HeKJjkV+DTLp1tG2X8RWASYn58f93DSug4c6Pa61JJJVui/AOwCHkvyLLADOJLkZ1fbuaoOVtVCVS3MzQ0dRSBJmtDYK/Sqehz4mbeeD0p9oape6TGXJGlMo1y2eAh4ENid5FiSqzY+liRpXENX6FW1f8jrO3tLI0mamHeKSlIjLHRJaoSFLkmNsNAlqREWuiQ1wkKXpEZY6JLUCAtdkhphoUtSIyx0SWrE2MO5tEWNMkfWWbPSluYKXZIaYaFLUiMsdElqhIUuSY2w0CWpERa6JDXCQpekRljoktQIC12SGmGhS1IjhhZ6kluSHE/yxAnb/iTJ00n+Jck9Sc7Y2JiSpGFGWaHfCuxbse0+4Nyq+kXg28ANPeeSJI1paKFX1QPAqyu23VtVbw6efgPYsQHZJElj6GPa4m8Cf7vWi0kWgUWA+fn5Hg4nrW/P0oH/f3Jgrb1wuqSa0+lN0SR/ALwJ3L7WPlV1sKoWqmphbm6uy+EkSeuYeIWe5OPAJcDeqqreEkmSJjJRoSfZB1wH/HpV/Ve/kSRJkxjlssVDwIPA7iTHklwF/DlwOnBfkkeT/NUG55QkDTF0hV5V+1fZfPMGZJEkdeCdopLUCAtdkhphoUtSIyx0SWqEhS5JjbDQJakRFrokNcJCl6RGWOiS1Ig+xufqJ82oY2cdTyttKlfoktQIC12SGmGhS1IjLHRJaoSFLkmNsNAlqREWuiQ1wkKXpEZY6JLUCAtdkhoxtNCT3JLkeJInTtj200nuS/KdwY/v3tiYkqRhRlmh3wrsW7HteuCrVfUe4KuD55KkKRpa6FX1APDqis2XAbcNHt8GfKTnXJKkMU16Dv3Mqnpx8Pgl4Mye8kiSJtR5fG5VVZJa6/Uki8AiwPz8fNfDSWNZWlrntQNO+FVbJl2hfz/JWQCDH4+vtWNVHayqhapamJubm/BwkqRhJi30LwIfGzz+GPAP/cSRJE1qlMsWDwEPAruTHEtyFfDHwMVJvgN8YPBckjRFQ8+hV9X+NV7a23MWSVIH3ikqSY2w0CWpERa6JDXCQpekRljoktQIC12SGmGhS1IjLHRJaoSFLkmNsNAlqRGdx+dKaxp1Nq0zbKVeuEKXpEZY6JLUCAtdkhphoUtSIyx0SWqEhS5JjbDQJakRFrokNcJCl6RGWOiS1IhOhZ7k95I8meSJJIeSvL2vYJKk8Uxc6EnOBn4XWKiqc4GTgMv7CiZJGk/XUy7bgHck2QacCvx790iSpElMPG2xql5I8qfAc8B/A/dW1b0r90uyCCwCzM/PT3o4bYYZnHo47UjDjj/tfLA1MmpzdDnl8m7gMmAX8HPAaUmuWLlfVR2sqoWqWpibm5s8qSRpXV1OuXwA+Leqermq/ge4G/jVfmJJksbVpdCfA34lyalJAuwFjvYTS5I0rokLvaoeAu4EjgCPDz7XwZ5ySZLG1Olb0FXVjcCNPWWRJHXgnaKS1AgLXZIaYaFLUiMsdElqhIUuSY2w0CWpERa6JDXCQpekRljoktSITneKSr1YZ77rnqWpHVraclyhS1IjLHRJaoSFLkmNsNAlqREWuiQ1wkKXpEZY6JLUCAtdkhphoUtSIyx0SWpEp0JPckaSO5M8neRokvf3FUySNJ6us1w+B3ylqj6a5BTg1B4ySZImMHGhJ3kXcCHwcYCqegN4o59YkqRxdTnlsgt4Gfh8kkeS3JTktJ5ySZLG1OWUyzbgfODqqnooyeeA64E/PHGnJIvAIsD8/HyHw/2EGXWu6xaf/7q0NO0E3Yzy5R+2T9fXN/r42jq6rNCPAceq6qHB8ztZLvgfUVUHq2qhqhbm5uY6HE6StJ6JC72qXgKeT7J7sGkv8FQvqSRJY+t6lcvVwO2DK1yeAT7RPZIkaRKdCr2qHgUWesoiSerAO0UlqREWuiQ1wkKXpEZY6JLUCAtdkhphoUtSIyx0SWqEhS5JjbDQJakRFrokNaLrLJetq5XxtDOeb6uPx50F0/4tdvzu1uEKXZIaYaFLUiMsdElqhIUuSY2w0CWpERa6JDXCQpekRljoktQIC12SGmGhS1IjOhd6kpOSPJLkS30EkiRNpo8V+jXA0R4+jySpg06FnmQH8GHgpn7iSJIm1XWF/lngOuCHPWSRJHUw8fjcJJcAx6vqcJI96+y3CCwCzM/PT3q46el7zG5js0a38njcPUsHRtpvac9o+62lsd9yzbAuK/QLgEuTPAvcAVyU5Asrd6qqg1W1UFULc3NzHQ4nSVrPxIVeVTdU1Y6q2glcDnytqq7oLZkkaSxehy5JjejlW9BV1RKw1MfnkiRNxhW6JDXCQpekRljoktQIC12SGmGhS1IjLHRJaoSFLkmNsNAlqREWuiQ1opc7RSWNbrOmPG6WUaZJtj5xcla+Bq7QJakRFrokNcJCl6RGWOiS1AgLXZIaYaFLUiMsdElqhIUuSY2w0CWpERa6JDXCQpekRkxc6EnOSXJ/kqeSPJnkmj6DSZLG02U415vAp6rqSJLTgcNJ7quqp3rKJkkaw8Qr9Kp6saqODB7/ADgKnN1XMEnSeHoZn5tkJ3Ae8NAqry0CiwDz8/OTH2TU2ZPTmtPZ+nxQNWsz/uh2PcZGZxz2+bfKX+/Ob4omeSdwF3BtVb228vWqOlhVC1W1MDc31/VwkqQ1dCr0JCezXOa3V9Xd/USSJE2iy1UuAW4GjlbVZ/qLJEmaRJcV+gXAlcBFSR4dfPxGT7kkSWOa+E3Rqvo6kB6zSJI68E5RSWqEhS5JjbDQJakRFrokNcJCl6RGWOiS1AgLXZIaYaFLUiMsdElqRC/jc2fKVplzKQ2xZ+lAb59raU9/n2sco/4ahuXzr/VoXKFLUiMsdElqhIUuSY2w0CWpERa6JDXCQpekRljoktQIC12SGmGhS1IjLHRJakSnQk+yL8m3knw3yfV9hZIkjW/iQk9yEvAXwIeA9wL7k7y3r2CSpPF0WaG/D/huVT1TVW8AdwCX9RNLkjSuLoV+NvD8Cc+PDbZJkqYgVTXZT0w+Cuyrqt8aPL8S+OWq+uSK/RaBxcHT3cC3xjzUduCViUJuLnP2y5z9Mme/Njvnz1fV3LCdusxDfwE454TnOwbbfkRVHQQOTnqQJA9X1cKkP3+zmLNf5uyXOfs1qzm7nHL5JvCeJLuSnAJcDnyxn1iSpHFNvEKvqjeTfBL4R+Ak4JaqerK3ZJKksXT6FnRV9WXgyz1lWcvEp2s2mTn7Zc5+mbNfM5lz4jdFJUmzxVv/JakRM1voW2WsQJJbkhxP8sS0s6wlyTlJ7k/yVJInk1wz7UyrSfL2JP+c5LFBzj+adqb1JDkpySNJvjTtLOtJ8mySx5M8muThaedZS5IzktyZ5OkkR5O8f9qZVkqye/B1fOvjtSTXTjvXW2bylMtgrMC3gYtZvmHpm8D+qnpqqsFWkeRC4HXgr6vq3GnnWU2Ss4CzqupIktOBw8BHZu3rmSTAaVX1epKTga8D11TVN6YcbVVJfh9YAH6qqi6Zdp61JHkWWKiqmb6+O8ltwD9V1U2DK+dOrar/mHautQx66gWW77/53rTzwOyu0LfMWIGqegB4ddo51lNVL1bVkcHjHwBHmcG7emvZ64OnJw8+Zm/FASTZAXwYuGnaWVqQ5F3AhcDNAFX1xiyX+cBe4F9npcxhdgvdsQIbJMlO4DzgoekmWd3gNMajwHHgvqqayZzAZ4HrgB9OO8gICrg3yeHBnduzaBfwMvD5wWmsm5KcNu1QQ1wOHJp2iBPNaqFrAyR5J3AXcG1VvTbtPKupqv+tql9i+c7j9yWZudNYSS4BjlfV4WlnGdGvVdX5LE9G/Z3BacJZsw04H/jLqjoP+E9glt87OwW4FPj7aWc50awW+khjBTS6wTnpu4Dbq+ruaecZZvDf7fuBfdPOsooLgEsH56bvAC5K8oXpRlpbVb0w+PE4cA/LpzRnzTHg2An/I7uT5YKfVR8CjlTV96cd5ESzWuiOFejR4M3Gm4GjVfWZaedZS5K5JGcMHr+D5TfFn55uqh9XVTdU1Y6q2snyn82vVdUVU461qiSnDd4IZ3AK44PAzF2RVVUvAc8n2T3YtBeYqTftV9jPjJ1ugY53im6UrTRWIMkhYA+wPckx4Maqunm6qX7MBcCVwOOD89MAnx7c6TtLzgJuG1w98Dbg76pqpi8J3ALOBO5Z/jedbcDfVNVXphtpTVcDtw8Wcc8An5hynlUN/mG8GPjtaWdZaSYvW5QkjW9WT7lIksZkoUtSIyx0SWqEhS5JjbDQJakRFrokNcJCl6RGWOiS1Ij/A5u1TdGt1ADcAAAAAElFTkSuQmCC\n",
schmittu's avatar
schmittu committed
      "text/plain": [
schmittu's avatar
schmittu committed
       "<Figure size 432x288 with 1 Axes>"
schmittu's avatar
schmittu committed
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "scores_good = scores[beer_data[\"is_yummy\"] == 1]\n",
    "scores_bad = scores[beer_data[\"is_yummy\"] == 0]\n",
    "\n",
schmittu's avatar
schmittu committed
    "plt.hist(scores_good,  bins=25, color=\"blue\", alpha=.5) # alpha makes bars translucent\n",
schmittu's avatar
schmittu committed
    "plt.hist(scores_bad, bins=25, color=\"red\", alpha=.5);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Consequence: A simple classifier could use these scores and use a threshold around 3.5 to assign a class label."
   ]
  },
schmittu's avatar
schmittu committed
  {
   "cell_type": "code",
   "execution_count": 13,
schmittu's avatar
schmittu committed
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "not yummuy\n",
      "yummy\n"
     ]
    }
   ],
   "source": [
    "def classify(beer_feature):\n",
    "    scores =( -0.1 * beer_feature[\"alcohol_content\"] + 3 * beer_feature[\"bitterness\"] \n",
    "             + 0.8 * beer_feature[\"darkness\"] + 1.8 * beer_feature[\"fruitiness\"])\n",
    "    if scores > 3.5:\n",
    "        return \"yummy\"\n",
    "    else:\n",
    "        return \"not yummuy\"\n",
    "    \n",
    "print(classify(beer_data.iloc[0]))\n",
    "print(classify(beer_data.iloc[1]))"
   ]
  },
schmittu's avatar
schmittu committed
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**This is how so called linear classifiers work. The magic is in computing the weights and the final threshold to guarantee good results.**\n",
    "\n",
    "*Comment*: although this seems to be a simple concept, linear classifiers can work very well, especially for higher resp. very high dimensions."
   ]
  },
schmittu's avatar
schmittu committed
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Exercise section 1\n",
    "\n",
    "Modify the weights in the beer classifiers and check if you can improve separation in the histogram.\n",
    "\n",
    "Try weights  `[-0.05837955,  3.69479038,  0.6666397 ,  1.62751838]` in the beer classifier. These are the weights the `LogisticRegression` classifier in the previous script computed.\n"
   ]
  },
schmittu's avatar
schmittu committed
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Geometrical interpretation of feature vectors\n",
    "\n",
    "If you take the values of a input-feature vector you can imagine this as a point in a d-dimensional space.\n",
    "\n",
    "\n",
    "E.g. if a data set consists of  feature vectors of length 2, you can interpret the first feature value as a x-coordinate and the second value as a y-coordinate.\n",
    "\n",
    "Labeled features then group such points to different point clouds.\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Example\n",
    "\n",
    "For sake of simplicity we restrict our beer data set to two features: `alcohol_content` and `bitterness`.\n",
    "\n",
    "The following plot shows how these reduced feature vectors can be interpreted as point clouds. For every feature vector we color points in green or red to indicate the according classes:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
schmittu's avatar
schmittu committed
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
schmittu's avatar
schmittu committed
      "text/plain": [
schmittu's avatar
schmittu committed
       "<Figure size 432x288 with 1 Axes>"
schmittu's avatar
schmittu committed
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "xv = beer_data[\"alcohol_content\"]\n",
    "yv = beer_data[\"bitterness\"]\n",
    "\n",
schmittu's avatar
schmittu committed
    "colors = [\"rb\"[i] for i in beer_data[\"is_yummy\"]]\n",
schmittu's avatar
schmittu committed
    "\n",
    "plt.scatter(xv, yv, color=colors, marker='.');\n",
    "plt.xlabel(\"alcohol_content\")\n",
    "plt.ylabel(\"bitterness\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "What do we see here ?\n",
    "\n",
    "1. Both point clouds overlap, this tells us that the two features lack information for a 100% separation of classes. \n",
    "2. We could draw a line to separate most points of both clouds.\n",
    "3. Later we could use this line to make a guess for classifying a new feature vector.\n",
    "\n",
    "Eventually **classification is about finding a procedure to separate point clouds in an n-dimesional space.**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next we illustrate how more features can support classification. We add the `darkness` feature as third dimension.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
schmittu's avatar
schmittu committed
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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
Loading
Loading full blame...