From d1b3b365670c5f9095dbf8cd7e1b8a77716bfacb Mon Sep 17 00:00:00 2001 From: Jan Chorowski Date: Thu, 31 Oct 2019 22:16:10 +0100 Subject: [PATCH] Created using Colaboratory --- assignment2/Assignment2.ipynb | 1779 +++++++++++++++++++++++++++++++++ 1 file changed, 1779 insertions(+) create mode 100644 assignment2/Assignment2.ipynb diff --git a/assignment2/Assignment2.ipynb b/assignment2/Assignment2.ipynb new file mode 100644 index 0000000..44be2d9 --- /dev/null +++ b/assignment2/Assignment2.ipynb @@ -0,0 +1,1779 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "Assignment2.ipynb", + "provenance": [], + "collapsed_sections": [], + "toc_visible": true, + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"Open" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "6JGmPStV4yiw", + "colab_type": "text" + }, + "source": [ + "# Lab Assignment 2" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "aUenJ9L141My", + "colab_type": "text" + }, + "source": [ + "**Submission deadline:**\n", + "* **Regular problems: last lab session before or on Monday, 18.11.19**\n", + "* **Bonus problems: deadline for Lab Assignment 3**\n", + "\n", + "**Points: 12 + 7 bonus points**\n", + "\n", + "Please note: some of the assignments are tedious or boring if you are already a NumPy ninja. The bonus problems were designed to give you a more satisfying alternative.\n", + "\n", + "The assignment is in the form of a Jupyter notebook. We will be using [Google Colab](https://colab.research.google.com) to solve it. Below you will find a \"Setup\" section. Follow instructions from this paragraph to download the notebook and open it using [Google Colab](https://colab.research.google.com). \n", + "\n", + "Your goal is to solve problems posted below. Whenever possible, add your solutions to the notebook.\n", + "\n", + "Please email us about any problems with it - we will try to correct them quickly. Also, please do not hesitate to use GitHub’s pull requests to send us corrections!" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "NsnbuW1uzVcC", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# Please note that this code needs only to be run in a fresh runtime.\n", + "# However, it can be rerun afterwards too.\n", + "!pip install -q gdown httpimport" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "a4TIgG0bwlpS", + "colab_type": "code", + "colab": {} + }, + "source": [ + "# Standard IPython notebook imports\n", + "%matplotlib inline\n", + "\n", + "import os\n", + "\n", + "from io import StringIO\n", + "import httpimport\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import pandas as pd\n", + "from tqdm import tqdm_notebook\n", + "import scipy.stats as sstats\n", + "\n", + "import seaborn as sns\n", + "import sklearn.tree\n", + "import sklearn.ensemble\n", + "\n", + "import graphviz\n", + "\n", + "\n", + "# In this way we can import functions straight from github\n", + "with httpimport.github_repo('janchorowski', 'nn_assignments', \n", + " module='common', branch='nn18'):\n", + " from common.plotting import plot_mat\n", + "\n", + "sns.set_style('whitegrid')" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "a7qCaa3LRuzJ", + "colab_type": "text" + }, + "source": [ + "# Problem 1 [2p] Naive Bayes Classifier\n", + "\n", + "The Bayes' theorem allows us to construct a classifier in which we\n", + "model how the data is generated. Here we will describe a\n", + "simple and popular example of such a classifier called the naive\n", + "Bayes classifier. Despite its simplicity It is quite effective for\n", + "classification of text documents (e.g. as spam and non-spam).\n", + "\n", + "Let a document be a sequence of words $D=W_1,W_2,\\ldots,W_n$ \n", + "We will model generation of text documents as a two-stage process.\n", + "First, document category $C_j$ is drawn at random with probability\n", + "$p(C_j)$, also called the *a priori* probability.\n", + "To define the class-conditional probability\n", + "$p(D|C_j)$, we will make a simplifying (naive)\n", + "assumption, that every word in the document is drawn independently at\n", + "random with probability $p(W_i|C)$:\n", + "\n", + "\\begin{equation*}\n", + " p(D|C_j) = p(W_1,W_2,\\ldots,W_n | C_j) \\approx p(W_1|C_j)p(W_2|C_j)\\ldots p(W_n|C_j).\n", + "\\end{equation*}\n", + "\n", + "To infer the class of a document we apply the Bayes theorem:\n", + "\\begin{equation*} p(C_j|D) = \\frac{p(D|C_j)p(C_j)}{p(D)} = \\frac{p(C_j)p(W_1|C_j)p(W_2|C_j)\\ldots p(W_n|C_j)}{p(D)}.\n", + "\\end{equation*}\n", + "Please note that since we assumed only a finite number of classes,\n", + "we can compute the term $p(D)$ by making sure that the *a\n", + "posteriori probabilities* $p(C_j|D)$ sum to $1$ over all classes.\n", + "\n", + "In this exercise we will try to mimic the language-guessing feature\n", + "of [Google Translate](https://translate.google.com/), although\n", + "on a much smaller scale. We are given an input which is a\n", + "lower-case sequence of characters (such as *\"some people like\n", + "pineapple on their pizza\"*), and we determine whether the\n", + "sequence's language is English, Polish or Spanish.\n", + "We will treat each character as a separate observation.\n", + "The numbers are taken from [Wikipedia article on letter frequency](https://en.wikipedia.org/wiki/Letter_frequency#Relative_frequencies_of_letters_in_other_languages). We display the first few rows:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "N-8g1QuNbIfs", + "colab_type": "code", + "outputId": "62e46485-55ae-4bdb-a2ee-154e49f802c9", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + } + }, + "source": [ + "wiki_table = u\"\"\"English|French|German|Spanish|Portuguese|Esperanto|Italian|Turkish|Swedish|Polish|Dutch|Danish|Icelandic|Finnish|Czech\n", + "a|8.167|7.636|6.516|11.525|14.634|12.117|11.745|12.920|9.383|10.503|7.486|6.025|10.110|12.217|8.421\n", + "b|1.492|0.901|1.886|2.215|1.043|0.980|0.927|2.844|1.535|1.740|1.584|2.000|1.043|0.281|0.822\n", + "c|2.782|3.260|2.732|4.019|3.882|0.776|4.501|1.463|1.486|3.895|1.242|0.565|0|0.281|0.740\n", + "d|4.253|3.669|5.076|5.010|4.992|3.044|3.736|5.206|4.702|3.725|5.933|5.858|1.575|1.043|3.475\n", + "e|12.702|14.715|16.396|12.181|12.570|8.995|11.792|9.912|10.149|7.352|18.91|15.453|6.418|7.968|7.562\n", + "f|2.228|1.066|1.656|0.692|1.023|1.037|1.153|0.461|2.027|0.143|0.805|2.406|3.013|0.194|0.084\n", + "g|2.015|0.866|3.009|1.768|1.303|1.171|1.644|1.253|2.862|1.731|3.403|4.077|4.241|0.392|0.092\n", + "h|6.094|0.737|4.577|0.703|0.781|0.384|0.636|1.212|2.090|1.015|2.380|1.621|1.871|1.851|1.356\n", + "i|6.966|7.529|6.550|6.247|6.186|10.012|10.143|9.600|5.817|8.328|6.499|6.000|7.578|10.817|6.073\n", + "j|0.153|0.613|0.268|0.493|0.397|3.501|0.011|0.034|0.614|1.836|1.46|0.730|1.144|2.042|1.433\n", + "k|0.772|0.049|1.417|0.011|0.015|4.163|0.009|5.683|3.140|2.753|2.248|3.395|3.314|4.973|2.894\n", + "l|4.025|5.456|3.437|4.967|2.779|6.104|6.510|5.922|5.275|2.564|3.568|5.229|4.532|5.761|3.802\n", + "m|2.406|2.968|2.534|3.157|4.738|2.994|2.512|3.752|3.471|2.515|2.213|3.237|4.041|3.202|2.446\n", + "n|6.749|7.095|9.776|6.712|4.446|7.955|6.883|7.987|8.542|6.237|10.032|7.240|7.711|8.826|6.468\n", + "o|7.507|5.796|2.594|8.683|9.735|8.779|9.832|2.976|4.482|6.667|6.063|4.636|2.166|5.614|6.695\n", + "p|1.929|2.521|0.670|2.510|2.523|2.755|3.056|0.886|1.839|2.445|1.57|1.756|0.789|1.842|1.906\n", + "q|0.095|1.362|0.018|0.877|1.204|0|0.505|0|0.020|0|0.009|0.007|0|0.013|0.001\n", + "r|5.987|6.693|7.003|6.871|6.530|5.914|6.367|7.722|8.431|5.243|6.411|8.956|8.581|2.872|4.799\n", + "s|6.327|7.948|7.270|7.977|6.805|6.092|4.981|3.014|6.590|5.224|3.73|5.805|5.630|7.862|5.212\n", + "t|9.056|7.244|6.154|4.632|4.336|5.276|5.623|3.314|7.691|2.475|6.79|6.862|4.953|8.750|5.727\n", + "u|2.758|6.311|4.166|2.927|3.639|3.183|3.011|3.235|1.919|2.062|1.99|1.979|4.562|5.008|2.160\n", + "v|0.978|1.838|0.846|1.138|1.575|1.904|2.097|0.959|2.415|0.012|2.85|2.332|2.437|2.250|5.344\n", + "w|2.360|0.074|1.921|0.017|0.037|0|0.033|0|0.142|5.813|1.52|0.069|0|0.094|0.016\n", + "x|0.150|0.427|0.034|0.215|0.253|0|0.003|0|0.159|0.004|0.036|0.028|0.046|0.031|0.027\n", + "y|1.974|0.128|0.039|1.008|0.006|0|0.020|3.336|0.708|3.206|0.035|0.698|0.900|1.745|1.043\n", + "z|0.074|0.326|1.134|0.467|0.470|0.494|1.181|1.500|0.070|4.852|1.39|0.034|0|0.051|1.503\n", + "à|0|0.486|0|0|0.072|0|0.635|0|0|0|0|0|0|0|0\n", + "â|0|0.051|0|0|0.562|0|0|0|0|0|0|0|0|0|0\n", + "á|0|0|0|0.502|0.118|0|0|0|0|0|0|0|1.799|0|0.867\n", + "å|0|0|0|0|0|0|0|0|1.338|0|0|1.190|0|0.003|0\n", + "ä|0|0|0.578|0|0|0|0|0|1.797|0|0|0|0|3.577|0\n", + "ã|0|0|0|0|0.733|0|0|0|0|0|0|0|0|0|0\n", + "ą|0|0|0|0|0|0|0|0|0|0.699|0|0|0|0|0\n", + "æ|0|0|0|0|0|0|0|0|0|0|0|0.872|0.867|0|0\n", + "œ|0|0.018|0|0|0|0|0|0|0|0|0|0|0|0|0\n", + "ç|0|0.085|0|0|0.530|0|0|1.156|0|0|0|0|0|0|0\n", + "ĉ|0|0|0|0|0|0.657|0|0|0|0|0|0|0|0|0\n", + "ć|0|0|0|0|0|0|0|0|0|0.743|0|0|0|0|0\n", + "č|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0.462\n", + "ď|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0.015\n", + "ð|0|0|0|0|0|0|0|0|0|0|0|0|4.393|0|0\n", + "è|0|0.271|0|0|0|0|0.263|0|0|0|0|0|0|0|0\n", + "é|0|1.504|0|0.433|0.337|0|0|0|0|0|0|0|0.647|0|0.633\n", + "ê|0|0.218|0|0|0.450|0|0|0|0|0|0|0|0|0|0\n", + "ë|0|0.008|0|0|0|0|0|0|0|0|0|0|0|0|0\n", + "ę|0|0|0|0|0|0|0|0|0|1.035|0|0|0|0|0\n", + "ě|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1.222\n", + "ĝ|0|0|0|0|0|0.691|0|0|0|0|0|0|0|0|0\n", + "ğ|0|0|0|0|0|0|0|1.125|0|0|0|0|0|0|0\n", + "ĥ|0|0|0|0|0|0.022|0|0|0|0|0|0|0|0|0\n", + "î|0|0.045|0|0|0|0|0|0|0|0|0|0|0|0|0\n", + "ì|0|0|0|0|0|0|0.030|0|0|0|0|0|0|0|0\n", + "í|0|0|0|0.725|0.132|0|0|0|0|0|0|0|1.570|0|1.643\n", + "ï|0|0.005|0|0|0|0|0|0|0|0|0|0|0|0|0\n", + "ı|0|0|0|0|0|0|0|5.114|0|0|0|0|0|0|0\n", + "ĵ|0|0|0|0|0|0.055|0|0|0|0|0|0|0|0|0\n", + "ł|0|0|0|0|0|0|0|0|0|2.109|0|0|0|0|0\n", + "ñ|0|0|0|0.311|0|0|0|0|0|0|0|0|0|0|0\n", + "ń|0|0|0|0|0|0|0|0|0|0.362|0|0|0|0|0\n", + "ň|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0.007\n", + "ò|0|0|0|0|0|0|0.002|0|0|0|0|0|0|0|0\n", + "ö|0|0|0.443|0|0|0|0|0.777|1.305|0|0|0|0.777|0.444|0\n", + "ô|0|0.023|0|0|0.635|0|0|0|0|0|0|0|0|0|0\n", + "ó|0|0|0|0.827|0.296|0|0|0|0|1.141|0|0|0.994|0|0.024\n", + "õ|0|0|0|0|0.040|0|0|0|0|0|0|0|0|0|0\n", + "ø|0|0|0|0|0|0|0|0|0|0|0|0.939|0|0|0\n", + "ř|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0.380\n", + "ŝ|0|0|0|0|0|0.385|0|0|0|0|0|0|0|0|0\n", + "ş|0|0|0|0|0|0|0|1.780|0|0|0|0|0|0|0\n", + "ś|0|0|0|0|0|0|0|0|0|0.814|0|0|0|0|0\n", + "š|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0.688\n", + "ß|0|0|0.307|0|0|0|0|0|0|0|0|0|0|0|0\n", + "ť|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0.006\n", + "þ|0|0|0|0|0|0|0|0|0|0|0|0|1.455|0|0\n", + "ù|0|0.058|0|0|0|0|0.166|0|0|0|0|0|0|0|0\n", + "ú|0|0|0|0.168|0.207|0|0|0|0|0|0|0|0.613|0|0.045\n", + "û|0|0.060|0|0|0|0|0|0|0|0|0|0|0|0|0\n", + "ŭ|0|0|0|0|0|0.520|0|0|0|0|0|0|0|0|0\n", + "ü|0|0|0.995|0.012|0.026|0|0|1.854|0|0|0|0|0|0|0\n", + "ů|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0.204\n", + "ý|0|0|0|0|0|0|0|0|0|0|0|0|0.228|0|0.995\n", + "ź|0|0|0|0|0|0|0|0|0|0.078|0|0|0|0|0\n", + "ż|0|0|0|0|0|0|0|0|0|0.706|0|0|0|0|0\n", + "ž|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0.721\"\"\"\n", + "df = pd.read_table(StringIO(wiki_table), sep='|', index_col=0)\n", + "df.head()" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
EnglishFrenchGermanSpanishPortugueseEsperantoItalianTurkishSwedishPolishDutchDanishIcelandicFinnishCzech
a8.1677.6366.51611.52514.63412.11711.74512.9209.38310.5037.4866.02510.11012.2178.421
b1.4920.9011.8862.2151.0430.9800.9272.8441.5351.7401.5842.0001.0430.2810.822
c2.7823.2602.7324.0193.8820.7764.5011.4631.4863.8951.2420.5650.0000.2810.740
d4.2533.6695.0765.0104.9923.0443.7365.2064.7023.7255.9335.8581.5751.0433.475
e12.70214.71516.39612.18112.5708.99511.7929.91210.1497.35218.91015.4536.4187.9687.562
\n", + "
" + ], + "text/plain": [ + " English French German Spanish ... Danish Icelandic Finnish Czech\n", + "a 8.167 7.636 6.516 11.525 ... 6.025 10.110 12.217 8.421\n", + "b 1.492 0.901 1.886 2.215 ... 2.000 1.043 0.281 0.822\n", + "c 2.782 3.260 2.732 4.019 ... 0.565 0.000 0.281 0.740\n", + "d 4.253 3.669 5.076 5.010 ... 5.858 1.575 1.043 3.475\n", + "e 12.702 14.715 16.396 12.181 ... 15.453 6.418 7.968 7.562\n", + "\n", + "[5 rows x 15 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 3 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "3Av5tmHDbKOn", + "colab_type": "text" + }, + "source": [ + "Implement the language classifier and answer the following:\n", + "\n", + "1. **[0.5p]** Naive Bayes can be implemented\n", + " either by multiplying probabilities or by adding\n", + " log-probabilities. Which one is better and why?\n", + "\n", + " Please type a short answer below.\n", + "2. **[1.5p]** What is the language of the following phrases, according to the classifier (below in a code cell)? Assume equal prior language probabilities $P(C)$.\n", + "3. **[bonus]** What happens when a Naive Bayes classifier\n", + " is applied to a document with out-of-vocabulary words? Propose\n", + " some solutions. Relate them to the concept of Bayesian\n", + " priors discussed during the lecture. \n", + "\n", + " This question will be discussed during Class Assignment 2." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "6Qpm3aaICM-7", + "colab_type": "text" + }, + "source": [ + "Using log-probabilities is TODO because TODO." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "6qqxHPSF6pQ0", + "colab_type": "code", + "outputId": "b63cf3be-eac1-412e-9b3a-1fbbdd5375ab", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 88 + } + }, + "source": [ + "# We can easiily manipulate the letter frequency table using Pandas\n", + "langs = list(df)\n", + "letters = list(df.index)\n", + "print('Languages:', ','.join(langs))\n", + "print('Letters:', ', '.join(letters))\n", + "print('P(ę|Polish) =', df.loc['ę', 'Polish'])" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Languages: English,French,German,Spanish,Portuguese,Esperanto,Italian,Turkish,Swedish,Polish,Dutch,Danish,Icelandic,Finnish,Czech\n", + "Letters: a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, à, â, á, å, ä, ã, ą, æ, œ, ç, ĉ, ć, č, ď, ð, è, é, ê, ë, ę, ě, ĝ, ğ, ĥ, î, ì, í, ï, ı, ĵ, ł, ñ, ń, ň, ò, ö, ô, ó, õ, ø, ř, ŝ, ş, ś, š, ß, ť, þ, ù, ú, û, ŭ, ü, ů, ý, ź, ż, ž\n", + "P(ę|Polish) = 1.035\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "kW6DtwD48nzD", + "colab_type": "code", + "outputId": "c3f48d57-722f-4f53-d6f6-8bc8690266d5", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 629 + } + }, + "source": [ + "# The values are recentages of letter appearance, but curiously enough they don't\n", + "# sum to 100%.\n", + "print(f'\\nTotal letter count by language:\\n{df.sum(0)}')\n", + "\n", + "# Normalize the data such that the letter frequencies add up to 1 for each language\n", + "df_norm = TODO\n", + "print(f'\\nAfter normalization:\\n{df_norm.sum(0)}')" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "\n", + "Total letter count by language:\n", + "English 99.999\n", + "French 100.060\n", + "German 100.002\n", + "Spanish 100.000\n", + "Portuguese 100.040\n", + "Esperanto 99.960\n", + "Italian 100.007\n", + "Turkish 106.997\n", + "Swedish 99.999\n", + "Polish 100.027\n", + "Dutch 100.157\n", + "Danish 99.999\n", + "Icelandic 99.998\n", + "Finnish 100.004\n", + "Czech 88.013\n", + "dtype: float64\n", + "\n", + "After normalization:\n", + "English 1.0\n", + "French 1.0\n", + "German 1.0\n", + "Spanish 1.0\n", + "Portuguese 1.0\n", + "Esperanto 1.0\n", + "Italian 1.0\n", + "Turkish 1.0\n", + "Swedish 1.0\n", + "Polish 1.0\n", + "Dutch 1.0\n", + "Danish 1.0\n", + "Icelandic 1.0\n", + "Finnish 1.0\n", + "Czech 1.0\n", + "dtype: float64\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "SZI1U6VgcfxL", + "colab_type": "code", + "colab": {} + }, + "source": [ + "def naive_bayes(sent, langs, df):\n", + " \"\"\"Returns the most probable language of a sentence\"\"\"\n", + " \n", + " # Try working with log-probabilities. \n", + " # to prevent taking log(0) you can e.g. add a very small amount (1e-100)\n", + " # to each tabulated frequency.\n", + " df_log = TODO\n", + "\n", + " # normalize the sentence: remove spaces and punctuations, take lower case\n", + " sent = TODO\n", + " \n", + " \n", + " log_probs = {}\n", + " for lang in langs:\n", + " TODO\n", + " # TODO compute language probabilitie and order from most to least probable\n", + " probs = TODO\n", + " return probs" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "H2PK1SnFBZVc", + "colab_type": "code", + "outputId": "1bd607b7-e144-4419-8b12-ed543e761c4d", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 323 + } + }, + "source": [ + "sentences = [\n", + " \"No dejes para mañana lo que puedas hacer hoy.\",\n", + " \"Przed wyruszeniem w drogę należy zebrać drużynę.\",\n", + " \"Żeby zrozumieć rekurencję, należy najpierw zrozumieć rekurencję.\",\n", + " \"Si vale la pena hacerlo vale la pena hacerlo bien.\",\n", + " \"Experience is what you get when you didn't get what you wanted.\",\n", + " \"Należy prowokować intelekt, nie intelektualistów.\"]\n", + "\n", + "for sent in sentences:\n", + " print(f'{sent}:')\n", + " for k, v in naive_bayes(sent, langs, df_norm).items():\n", + " if v<1e-3:\n", + " break\n", + " print(f'{k}: {v:.3f}\\t', end='')\n", + " print('\\n')" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "No dejes para mañana lo que puedas hacer hoy.:\n", + "Spanish: 1.000\t\n", + "\n", + "Przed wyruszeniem w drogę należy zebrać drużynę.:\n", + "Polish: 1.000\t\n", + "\n", + "Żeby zrozumieć rekurencję, należy najpierw zrozumieć rekurencję.:\n", + "Polish: 1.000\t\n", + "\n", + "Si vale la pena hacerlo vale la pena hacerlo bien.:\n", + "Italian: 0.925\tSpanish: 0.047\tEnglish: 0.007\tFrench: 0.006\tDutch: 0.006\tSwedish: 0.004\tPortuguese: 0.003\tEsperanto: 0.001\t\n", + "\n", + "Experience is what you get when you didn't get what you wanted.:\n", + "English: 1.000\t\n", + "\n", + "Należy prowokować intelekt, nie intelektualistów.:\n", + "Polish: 1.000\t\n", + "\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "J1kDmmrYcg2b", + "colab_type": "text" + }, + "source": [ + "# Problem 2: Simple Kalman filtering [2p + 2b]\n", + "\n", + "Oh no, someone has kidnapped you! You feel that you are in the trunk of a moving car. Luckily, you have your phone with GPS. Unfortunately, the GPS is noisy. You want to combine your estimate of your location by combining your prior belief about where you can be with the noisy GPS. You set out to implement a [1D Kalman filter](https://en.wikipedia.org/wiki/Kalman_filter).\n", + "\n", + "Problem setup:\n", + "- your prior belief about the location is a Gaussian with mean 0 and some initial standard deviation $\\mathcal{N}(0, \\sigma_i)$\n", + "- the car moves in a brownian motion - each time step, it changes location by a normally distributed random amound sampled from $\\mathcal{N}(0, \\sigma_m)$\n", + "- each time step, you get a GPS reading which is sampled around your true (and sadly unknown to you ) location from $\\mathcal{N}(\\text{true loc}, \\sigma_g)$\n", + "\n", + "You want to use the following algorithm to track your location:\n", + "\n", + "1. Initially, the PDF of your location is $p(x) = \\mathcal{N}(x; \\mu_l=0, \\sigma_l=\\sigma_i)$\n", + "2. For each time step, you update your belief about your location:\n", + " 1. $p(x)$ is updated due to according to the car movement distribution\n", + " 2. you use the Bayes formula to incorporate the GPS readout:\n", + " $$\n", + " p(x|\\text{GPS readout}) = \\frac{p(\\text{GPS readout}|x)p(x)}\n", + " {p(\\text{GPS readout})}\n", + " $$\n", + " 3. you set $p(x) \\gets p(x|\\text{GPS readout})$ to be your prior belief about your locatin used during the next iteration.\n", + "\n", + "\n", + "NB: the GPS is actually very noisy, and Kalman filters are routinely used to fuse information from the GPS, accelerometers and odometry in practical applications, such as GPS navigation.\n", + "\n", + "Hint: during the class assignments we have computed the pdf of\n", + "$$\n", + "p(x) = \\mathcal{N}(x;\\mu_1, \\sigma_1)\\mathcal{N}(x;\\mu_2, \\sigma_2)\n", + "$$\n", + "What disrtibution will the PDF belong to? Maybe you can simply compute the new mean and standard deviation?\n", + "\n", + "#### Problem [.5p]\n", + "\n", + "Implement below a simulator for your kidnapping, then fill in the code for plotting the true location and GPS readouts over time.\n", + "\n", + "#### Problem [1.5p]\n", + "\n", + "Implement a 1D Kalman filer using the algorithm stated above: maintian a probability distribution over your location, then at each timestep update it to account for car movement and GPS readouts.\n", + "\n", + "Plot the estimated location along with its standard deviation against the true location from the simluator.\n", + "\n", + "Experiemt with different setting for the standard deviations of the car's motion and the GPS. What happens if the simulator and the Kalman filter use different probability distributions?\n", + "\n", + "#### Problem [2p bonus]\n", + "\n", + "Suppose the car has a velocity, which is updated at each time step:\n", + "$$\n", + "\\begin{split}\n", + "v &\\gets v + \\mathcal{N}(0, \\sigma_v) \\\\\n", + "x &\\gets x + v \\\\\n", + "\\text{GPS readout} &= \\mathcal{N}(x, \\sigma_g) \n", + "\\end{split}\n", + "$$\n", + "\n", + "Update the Kalman filter code to track both the car's location and velocity. You can assume that the initial velocity is exactly 0." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "8RXfUadZcl6s", + "colab_type": "code", + "colab": {} + }, + "source": [ + "def simulate(initial_sigma, motion_sigma, gps_sigma, n_steps):\n", + " \"\"\"Simulate a sequence of locations and noisy GPS measurements\n", + "\n", + " Args:\n", + " initial_sigma, motion_sigma, gps_sigma: parameters of the simulation\n", + " n_steps: number of timesteps\n", + "\n", + " Returns:\n", + " a DataFrame with columns 'x' and 'gps' giving the true location and \n", + " gps readouts.\n", + " \"\"\"\n", + " \n", + " # Sample an initial location from the distribution ovetr the initial loc\n", + " x = TODO\n", + " loc_hist = []\n", + " for s in range(n_steps):\n", + " # TODO: sample a new x and gps readout\n", + " x = \n", + " gps_readout =\n", + " loc_hist.append((x, gps_readout))\n", + " loc_df = pd.DataFrame(loc_hist, columns=['x', 'gps'])\n", + " return loc_df\n", + "\n", + "\n", + "def kalman_predict(loc_df, initial_sigma, motion_sigma, gps_sigma):\n", + " # Set our initial belief about our location\n", + " prior_mu = \n", + " prior_sigma = \n", + " predictions = []\n", + " for gps_readout in loc_df.gps:\n", + " # expand the prior by the movement\n", + " prior_sigma = \n", + " # now do the bayes update\n", + " posterior_mu = \n", + " posterior_sigma \n", + " predictions.append((posterior_mu, posterior_sigma))\n", + "\n", + " predictions_df = pd.DataFrame(predictions, columns=['mu', 'sigma'])\n", + " return predictions_df" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "rMdxz44RcxXK", + "colab_type": "code", + "outputId": "a5b5c506-2146-40c2-b42a-60422ed26735", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 295 + } + }, + "source": [ + "#@title Kalman Simulationb\n", + "initial_sigma = 10 #@param\n", + "motion_sigma = 5 #@param\n", + "gps_sigma = 20 #@param\n", + "n_steps = 50 #@param\n", + "\n", + "loc_df = simulate(initial_sigma, motion_sigma, gps_sigma, n_steps)\n", + "predictions_df = kalman_predict(loc_df, initial_sigma, motion_sigma, gps_sigma)\n", + "plt.plot(loc_df.x, 'r', label='true position')\n", + "plt.plot(loc_df.gps, 'go', label='gps readout')\n", + "plt.plot(predictions_df.mu, 'b', label='kalman position')\n", + "plt.fill_between(range(len(predictions_df)),\n", + " predictions_df.mu + predictions_df.sigma,\n", + " predictions_df.mu - predictions_df.sigma, color='b', alpha=0.2)\n", + "plt.fill_between(range(len(predictions_df)),\n", + " predictions_df.mu + 3 * predictions_df.sigma,\n", + " predictions_df.mu - 3 * predictions_df.sigma, color='b', alpha=0.1)\n", + "plt.legend(loc='upper center', ncol=3, bbox_to_anchor=(0.5, 1.0), frameon=True)\n", + "plt.xlabel('time')\n", + "plt.ylabel('position')\n", + "plt.title('Kalman filtering of location data')\n", + "None" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\nCrwAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "nGozxBAeE4v4", + "colab_type": "text" + }, + "source": [ + "TODO: copy the above cell 3 times and run simulations with different parameters. Add a 1-2 sentence note explaining how is the Kalman filter behaivng in each case." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "yQfI6oJHczUa", + "colab_type": "text" + }, + "source": [ + "# Problem 3: Decision Tree Implementation\n", + "\n", + "Currently, there are no good implementations of Decision Trees in Python.\n", + "\n", + "Sadly, the machine leading toolkit [sklearn](https://scikit-learn.org/stable/index.html) doesn't handle categorical attributes. Let's use this as an excuse to implement Decision Tress ourselves.\n", + "\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "VtJg1W1MBjgr", + "colab_type": "code", + "colab": {} + }, + "source": [ + "#@title Data Loading\n", + "# We will load a few commonly used datasets:\n", + "# - mushroom\n", + "# - iris\n", + "# - adult\n", + "# - congressional voting\n", + "# - german credit\n", + "\n", + "\n", + "# 1. Mushroom dataset\n", + "# https://archive.ics.uci.edu/ml/datasets/mushroom\n", + "# only categorical attributes with missing values\n", + "columns = [\n", + " \"target\", \"cap-shape\", \"cap-surface\", \"cap-color\", \"bruises?\", \"odor\", \n", + " \"gill-attachment\", \"gill-spacing\", \"gill-size\", \"gill-color\", \"stalk-shape\", \n", + " \"stalk-root\", \"stalk-surface-above-ring\", \"stalk-surface-below-ring\", \n", + " \"stalk-color-above-ring\", \"stalk-color-below-ring\", \"veil-type\", \"veil-color\", \n", + " \"ring-number\", \"ring-type\", \"spore-print-color\", \"population\", \"habitat\", ]\n", + "\n", + "# Use read_csv to load the data.\n", + "url = 'http://archive.ics.uci.edu/ml/machine-learning-databases/mushroom/agaricus-lepiota.data'\n", + "mushroom_df = pd.read_csv(url, header=None, names=columns)\n", + "mushroom_idx_df = mushroom_df.reset_index()\n", + "\n", + "# 2. Iris\n", + "iris_url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'\n", + "iris_df = pd.read_csv(\n", + " iris_url, header=None, \n", + " names=['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'target'])\n", + "\n", + "# 3. Congressoinal Voting\n", + "# Binary attributes, binary class, missing data\n", + "vote_df = pd.read_csv(\n", + " 'https://pkgstore.datahub.io/machine-learning/vote/vote_csv/data/65f1736301dee4a2ad032abfe2a61acb/vote_csv.csv'\n", + " ).rename({'Class':'target'}, axis=1).fillna('na')\n", + "\n", + "# 4. Adult\n", + "# census records, continuous and categorical attributes (some ordered), missing values\n", + "adult_names = [\n", + " \"Age\", \"Workclass\", \"fnlwgt\", \"Education\", \"Education-Num\", \"Martial Status\",\n", + " \"Occupation\", \"Relationship\", \"Race\", \"Sex\", \"Capital Gain\", \"Capital Loss\",\n", + " \"Hours per week\", \"Country\", \"target\"]\n", + "adult_df = pd.read_csv(\n", + " 'https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data',\n", + " names=adult_names, header=None, na_values=\"?\")\n", + "adult_test_df = pd.read_csv(\n", + " 'https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.test',\n", + " names=adult_names, header=None, na_values=\"?\", skiprows=1)\n", + "\n", + "# 5. German Credit\n", + "\n", + "german_df = pd.read_csv(\n", + " 'https://archive.ics.uci.edu/ml/machine-learning-databases/statlog/german/german.data',\n", + " names=[f'A{d}' for d in range(1,21)] + ['target'], header=None, sep=' ')" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "MHSSMQuWJ3nv", + "colab_type": "text" + }, + "source": [ + "## Decision Tree Task 1: Purity Measures [1p]\n", + "\n", + "Please fill the purity measures below.\n", + "\n", + "Verify the correctness by plotting the purity values if a two-class set with given class probabilities" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "OJyyb5YY9o_H", + "colab_type": "code", + "outputId": "e572c4cd-6748-4798-88f0-08a8fe500a49", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 275 + } + }, + "source": [ + "def entropy(counts):\n", + " raise NotImplementedError\n", + "\n", + "def gini(counts):\n", + " raise NotImplementedError\n", + "\n", + "def mean_err_rate(counts):\n", + " raise NotImplementedError\n", + "\n", + "\n", + "# Make a plot of the purity functions\n" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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\nCAT18v+rwOGi0JJ/5AAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "sYD_oPNBuuWk", + "colab_type": "text" + }, + "source": [ + "## Decision Tree Task 2: Categorical Splits [1p]\n", + "\n", + "### The anatomy of a Decision Tree\n", + "\n", + "\n", + "All internal (non-leaf) nodes of a split training examples according to a test implemented by the node. We capture this behavior using a generic `AbstractSplit` class which implements a split of data contained in the dataframe `df` using the attribute `attr`.\n", + "\n", + "The class features a lightweight constructor, `__init__` which only saves the information required to later split a training dataframe and recursively build the subtrees using the `build_subtrees` method.\n", + "\n", + "Fill in the blanks in the code below." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "IgLVlZhvy5hl", + "colab_type": "code", + "colab": {} + }, + "source": [ + "class AbstractSplit:\n", + " \"\"\"Split the examples in a tree node according to a criterion.\n", + " \"\"\"\n", + " def __init__(self, attr):\n", + " self.attr = attr\n", + "\n", + " def __call__(self, x):\n", + " \"\"\"Return the subtree corresponding to x.\"\"\"\n", + " raise NotImplementedError\n", + "\n", + " def build_subtrees(self, df, subtree_kwargs):\n", + " \"\"\"Recuisively build the subtrees.\"\"\"\n", + " raise NotImplementedError\n", + "\n", + " def iter_subtrees(self):\n", + " \"\"\"Return an iterator over subtrees.\"\"\"\n", + " raise NotImplementedError\n", + "\n", + " def add_to_graphviz(self, dot):\n", + " \"\"\"Add the split to the graphviz vizluzation.\"\"\"\n", + " raise NotImplementedError\n", + "\n", + " def __str__(self):\n", + " return f\"{self.__class__.__name__}: {self.attr}\"" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "IU6lhc_z9cx6", + "colab_type": "text" + }, + "source": [ + "We will first implement a Multivariate Categorical split which has a subtree for each value that an attribute may take." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "CdUeZJTGwwHc", + "colab_type": "code", + "colab": {} + }, + "source": [ + "class CategoricalMultivalueSplit(AbstractSplit):\n", + " def build_subtrees(self, df, subtree_kwargs):\n", + " self.subtrees = {}\n", + " for group_name, group_df in df.groupby(self.attr):\n", + " child = Tree(group_df, **subtree_kwargs)\n", + " self.subtrees[group_name] = child\n", + "\n", + " def __call__(self, x):\n", + " # Return the subtree for the given example\n", + " return TODO\n", + "\n", + " def iter_subtrees(self):\n", + " return self.subtrees.values()\n", + " \n", + " def add_to_graphviz(self, dot, parent, print_info):\n", + " for split_name, child in self.subtrees.items():\n", + " child.add_to_graphviz(dot, print_info)\n", + " dot.edge(f'{id(parent)}', f'{id(child)}',\n", + " label=f'{split_name}')" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "XUWaldXZ96Ha", + "colab_type": "code", + "colab": {} + }, + "source": [ + "def get_categorical_split_and_purity(df, parent_purity, purity_fun, attr,\n", + " normalize_by_split_entropy=False):\n", + " \"\"\"Return a multivariate split and its purity.\n", + " Args:\n", + " df: a dataframe\n", + " parent_purity: purity of the parent node\n", + " purity_fun: function to compute the purity\n", + " attr: attribute over whihc to split the dataframe\n", + " normalize_by_split_entropy: if True, divide the purity gain by the split\n", + " entropy (to compute https://en.wikipedia.org/wiki/Information_gain_ratio)\n", + " \n", + " Returns:\n", + " pair of (split, purity_gain)\n", + " \"\"\"\n", + " split = CategoricalMultivalueSplit(attr)\n", + " # Compute the purity after the split\n", + " purity= TODO\n", + " purity_gain = parent_purity - purity\n", + " if normalize_by_split_entropy:\n", + " purity_gain /= entropy(df[attr].value_counts())\n", + " return split, purity_gain" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "2e_C9VVl6omi", + "colab_type": "code", + "colab": {} + }, + "source": [ + "def get_split(df, criterion='infogain', nattrs=None):\n", + " # Implement termination criteria:\n", + " # 1. Node is pure\n", + " target_value_counts = df['target'].value_counts()\n", + " if len(target_value_counts) == 1:\n", + " return None\n", + " # 2. No split is possible\n", + " # First get alist of attributes that can be split\n", + " possible_splits = TODO\n", + " # Terminate early if none are possivle\n", + " if not possible_splits:\n", + " return None\n", + " \n", + " # Get the base purity measure and the purity function\n", + " if criterion in ['infogain', 'infogain_ratio']:\n", + " purity_fun = entropy\n", + " elif criterion in ['mean_err_rate']: \n", + " purity_fun = mean_err_rate\n", + " elif criterion in ['gini']:\n", + " purity_fun = gini\n", + " else:\n", + " raise Exception(\"Unknown criterion: \" + criterion)\n", + " base_purity = purity_fun(target_value_counts)\n", + "\n", + " best_purity_gain = -1\n", + " best_split = None\n", + "\n", + " # Random Forest support\n", + " # Randomize the split by restricting the number of attributes\n", + " \n", + " for attr in possible_splits:\n", + " if np.issubdtype(df[attr].dtype, np.number):\n", + " # Handling of numerical attributes will be defined later, in a manner \n", + " # similar to categorical ones\n", + " split_sel_fun = get_numrical_split_and_purity\n", + " else:\n", + " split_sel_fun = get_categorical_split_and_purity\n", + " \n", + " split, purity_gain = split_sel_fun(\n", + " df, base_purity, purity_fun, attr,\n", + " normalize_by_split_entropy=criterion.endswith('ratio'))\n", + " \n", + " if purity_gain > best_purity_gain:\n", + " best_purity_gain = purity_gain\n", + " best_split = split\n", + " return best_split" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "latO4p-WAHiG", + "colab_type": "text" + }, + "source": [ + "We can now define a Tree class, which represents both a Decision Tree and its Nodes.\n", + "\n", + "Each node saves its class distribution in the `counts` attribute and debug/visualization information in the `info` field. \n", + "\n", + "Leaf nodes have `split == None`, while internal nodes have a split which points to subtrees.\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "7-CMCry3AK7n", + "colab_type": "code", + "colab": {} + }, + "source": [ + "class Tree:\n", + " def __init__(self, df, **kwargs):\n", + " super().__init__()\n", + " # Assert that threre are no missing values, \n", + " # TODO: remove this for bonus problem #XXX\n", + " assert not df.isnull().values.any()\n", + " \n", + " # We need to let subrees know about all targets to properly color nodes\n", + " if 'all_targets' not in kwargs:\n", + " kwargs['all_targets'] = sorted(df['target'].unique())\n", + " # Save keyword arguments to build subtrees\n", + " kwargs_orig = dict(kwargs)\n", + " \n", + " # Get kwargs we know about, remaning ones are for splitting\n", + " self.all_targets = kwargs.pop('all_targets')\n", + " \n", + " # Save debug info for visualization\n", + " self.counts = df['target'].value_counts()\n", + " self.info = {\n", + " 'num_samples': len(df),\n", + " 'entropy': entropy(self.counts),\n", + " 'gini': gini(self.counts)\n", + " }\n", + " \n", + " self.split = get_split(df, **kwargs)\n", + " if self.split:\n", + " #print('!!S', self.split)\n", + " self.split.build_subtrees(df, kwargs_orig)\n", + " \n", + " def get_target_distribution(self, sample):\n", + " # TODO: descend into subtrees and return the leaf target distribution\n", + " \n", + " def classify(self, sample):\n", + " # TODO: classify the sample by descending into the appropriate subtrees.\n", + " \n", + " def draw(self, print_info=True):\n", + " dot = graphviz.Digraph()\n", + " self.add_to_graphviz(dot, print_info)\n", + " return dot\n", + "\n", + " def add_to_graphviz(self, dot, print_info):\n", + " freqs = self.counts / self.counts.sum()\n", + " freqs = dict(freqs)\n", + " colors = []\n", + " freqs_info = []\n", + " for i, c in enumerate(self.all_targets):\n", + " freq = freqs.get(c, 0.0)\n", + " if freq > 0:\n", + " colors.append(f\"{i%9 + 1};{freq}\")\n", + " freqs_info.append(f'{c}:{freq:.2f}')\n", + " colors = ':'.join(colors)\n", + " labels = [' '.join(freqs_info)]\n", + " if print_info:\n", + " for k,v in self.info.items():\n", + " labels.append(f'{k} = {v}')\n", + " if self.split:\n", + " labels.append(f'split by: {self.split.attr}')\n", + " dot.node(f'{id(self)}',\n", + " label='\\n'.join(labels), \n", + " shape='box',\n", + " style='striped',\n", + " fillcolor=colors,\n", + " colorscheme='set19')\n", + " if self.split:\n", + " self.split.add_to_graphviz(dot, self, print_info)" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "xpNExVwICWJL", + "colab_type": "code", + "outputId": "30e3e1b8-ff9c-4db0-b4af-d6105b7a1e56", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 857 + } + }, + "source": [ + "# TODO: train a Decision Tree on the mushroom data.\n", + "# Plot the tree using the `.draw()` method.\n", + "# How many samples are classified correctly by a tree with only one split?\n", + "# Is the tree different when different purity functions are used?\n" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ], + "image/svg+xml": "\n\n\n\n\n\n%3\n\n\n\n139878543313944\n\n\n\ne:0.52 p:0.48\nnum_samples = 8124\nentropy = 0.9990678965839214\ngini = 0.49935405449893955\nsplit by: odor\n\n\n\n139878549471184\n\n\ne:1.00\nnum_samples = 400\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543313944->139878549471184\n\n\na\n\n\n\n139878549542112\n\n\np:1.00\nnum_samples = 192\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543313944->139878549542112\n\n\nc\n\n\n\n139878543844968\n\n\np:1.00\nnum_samples = 2160\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543313944->139878543844968\n\n\nf\n\n\n\n139878543616432\n\n\ne:1.00\nnum_samples = 400\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543313944->139878543616432\n\n\nl\n\n\n\n139878569260368\n\n\np:1.00\nnum_samples = 36\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543313944->139878569260368\n\n\nm\n\n\n\n139878543743800\n\n\n\ne:0.97 p:0.03\nnum_samples = 3528\nentropy = 0.21413675649271208\ngini = 0.06571336017400164\nsplit by: spore-print-color\n\n\n\n139878543313944->139878543743800\n\n\nn\n\n\n\n139878569262048\n\n\np:1.00\nnum_samples = 256\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543313944->139878569262048\n\n\np\n\n\n\n139878543073064\n\n\np:1.00\nnum_samples = 576\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543313944->139878543073064\n\n\ns\n\n\n\n139878543081424\n\n\np:1.00\nnum_samples = 576\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543313944->139878543081424\n\n\ny\n\n\n\n139878543550112\n\n\ne:1.00\nnum_samples = 48\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543743800->139878543550112\n\n\nb\n\n\n\n139878543550224\n\n\ne:1.00\nnum_samples = 48\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543743800->139878543550224\n\n\nh\n\n\n\n139878543552296\n\n\ne:1.00\nnum_samples = 1296\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543743800->139878543552296\n\n\nk\n\n\n\n139878543552408\n\n\ne:1.00\nnum_samples = 1344\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543743800->139878543552408\n\n\nn\n\n\n\n139878543549944\n\n\ne:1.00\nnum_samples = 48\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543743800->139878543549944\n\n\no\n\n\n\n139878543549664\n\n\np:1.00\nnum_samples = 72\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543743800->139878543549664\n\n\nr\n\n\n\n139878543550000\n\n\n\ne:0.92 p:0.08\nnum_samples = 624\nentropy = 0.39124356334071664\ngini = 0.14201183431952646\nsplit by: habitat\n\n\n\n139878543743800->139878543550000\n\n\nw\n\n\n\n139878543083896\n\n\ne:1.00\nnum_samples = 48\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543743800->139878543083896\n\n\ny\n\n\n\n139878543112120\n\n\n\ne:0.20 p:0.80\nnum_samples = 40\nentropy = 0.7219280945988233\ngini = 0.31999999999999984\nsplit by: gill-size\n\n\n\n139878543550000->139878543112120\n\n\nd\n\n\n\n139878543113968\n\n\ne:1.00\nnum_samples = 288\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543550000->139878543113968\n\n\ng\n\n\n\n139878543113240\n\n\n\ne:0.75 p:0.25\nnum_samples = 64\nentropy = 0.8112781241705938\ngini = 0.375\nsplit by: cap-color\n\n\n\n139878543550000->139878543113240\n\n\nl\n\n\n\n139878543110552\n\n\ne:1.00\nnum_samples = 40\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543550000->139878543110552\n\n\np\n\n\n\n139878543122384\n\n\ne:1.00\nnum_samples = 192\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543550000->139878543122384\n\n\nw\n\n\n\n139878543130576\n\n\ne:1.00\nnum_samples = 8\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543112120->139878543130576\n\n\nb\n\n\n\n139878543129848\n\n\np:1.00\nnum_samples = 32\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543112120->139878543129848\n\n\nn\n\n\n\n139878543167160\n\n\ne:1.00\nnum_samples = 24\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543113240->139878543167160\n\n\nc\n\n\n\n139878543166264\n\n\ne:1.00\nnum_samples = 24\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543113240->139878543166264\n\n\nn\n\n\n\n139878543167216\n\n\np:1.00\nnum_samples = 8\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543113240->139878543167216\n\n\nw\n\n\n\n139878543165312\n\n\np:1.00\nnum_samples = 8\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543113240->139878543165312\n\n\ny\n\n\n\n" + }, + "metadata": { + "tags": [] + }, + "execution_count": 17 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Q0Kv-kB99PkQ", + "colab_type": "code", + "outputId": "9d58a25b-c993-4dac-e1cf-ee85417d3a80", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + } + }, + "source": [ + "mushroom_tree = Tree(mushroom_df, criterion='infogain_ratio')\n", + "mushroom_tree.draw()" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ], + "image/svg+xml": "\n\n\n\n\n\n%3\n\n\n\n139878543314280\n\n\n\ne:0.52 p:0.48\nnum_samples = 8124\nentropy = 0.9990678965839214\ngini = 0.49935405449893955\nsplit by: odor\n\n\n\n139878543174232\n\n\ne:1.00\nnum_samples = 400\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543314280->139878543174232\n\n\na\n\n\n\n139878543173280\n\n\np:1.00\nnum_samples = 192\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543314280->139878543173280\n\n\nc\n\n\n\n139878543174400\n\n\np:1.00\nnum_samples = 2160\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543314280->139878543174400\n\n\nf\n\n\n\n139878543195720\n\n\ne:1.00\nnum_samples = 400\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543314280->139878543195720\n\n\nl\n\n\n\n139878543196000\n\n\np:1.00\nnum_samples = 36\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543314280->139878543196000\n\n\nm\n\n\n\n139878543193648\n\n\n\ne:0.97 p:0.03\nnum_samples = 3528\nentropy = 0.21413675649271208\ngini = 0.06571336017400164\nsplit by: spore-print-color\n\n\n\n139878543314280->139878543193648\n\n\nn\n\n\n\n139878543194432\n\n\np:1.00\nnum_samples = 256\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543314280->139878543194432\n\n\np\n\n\n\n139878542793416\n\n\np:1.00\nnum_samples = 576\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543314280->139878542793416\n\n\ns\n\n\n\n139878543195776\n\n\np:1.00\nnum_samples = 576\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543314280->139878543195776\n\n\ny\n\n\n\n139878543215528\n\n\ne:1.00\nnum_samples = 48\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543193648->139878543215528\n\n\nb\n\n\n\n139878543087936\n\n\ne:1.00\nnum_samples = 48\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543193648->139878543087936\n\n\nh\n\n\n\n139878543089504\n\n\ne:1.00\nnum_samples = 1296\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543193648->139878543089504\n\n\nk\n\n\n\n139878543213848\n\n\ne:1.00\nnum_samples = 1344\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543193648->139878543213848\n\n\nn\n\n\n\n139878543213288\n\n\ne:1.00\nnum_samples = 48\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543193648->139878543213288\n\n\no\n\n\n\n139878543216536\n\n\np:1.00\nnum_samples = 72\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543193648->139878543216536\n\n\nr\n\n\n\n139878543216144\n\n\n\ne:0.92 p:0.08\nnum_samples = 624\nentropy = 0.39124356334071664\ngini = 0.14201183431952646\nsplit by: veil-color\n\n\n\n139878543193648->139878543216144\n\n\nw\n\n\n\n139878543197632\n\n\ne:1.00\nnum_samples = 48\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543193648->139878543197632\n\n\ny\n\n\n\n139878543272760\n\n\n\ne:0.94 p:0.06\nnum_samples = 616\nentropy = 0.34673146796112464\ngini = 0.12143700455388773\nsplit by: gill-size\n\n\n\n139878543216144->139878543272760\n\n\nw\n\n\n\n139878543199424\n\n\np:1.00\nnum_samples = 8\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543216144->139878543199424\n\n\ny\n\n\n\n139878542801440\n\n\ne:1.00\nnum_samples = 528\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543272760->139878542801440\n\n\nb\n\n\n\n139878543276688\n\n\n\ne:0.55 p:0.45\nnum_samples = 88\nentropy = 0.9940302111884174\ngini = 0.49586776859504145\nsplit by: gill-spacing\n\n\n\n139878543272760->139878543276688\n\n\nn\n\n\n\n139878542858784\n\n\np:1.00\nnum_samples = 32\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543276688->139878542858784\n\n\nc\n\n\n\n139878542816592\n\n\n\ne:0.86 p:0.14\nnum_samples = 56\nentropy = 0.5916727782937883\ngini = 0.24489795918367352\nsplit by: bruises?\n\n\n\n139878543276688->139878542816592\n\n\nw\n\n\n\n139878542871464\n\n\ne:1.00\nnum_samples = 48\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878542816592->139878542871464\n\n\nf\n\n\n\n139878542870512\n\n\np:1.00\nnum_samples = 8\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878542816592->139878542870512\n\n\nt\n\n\n\n" + }, + "metadata": { + "tags": [] + }, + "execution_count": 18 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "GABxeo7x2agz", + "colab_type": "text" + }, + "source": [ + "## Decision Tree Task 3: Numerical Splits [1p]\n", + "A numerical split requires to search for the best threshold. Implement the selection of splits for numerical attributes below." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "4dqmM69UE64U", + "colab_type": "code", + "colab": {} + }, + "source": [ + "class NumericalSplit(AbstractSplit):\n", + " def __init__(self, attr, th):\n", + " super(NumericalSplit, self).__init__(attr)\n", + " self.th = th\n", + " \n", + " def build_subtrees(self, df, subtree_kwargs):\n", + " self.subtrees = (\n", + " Tree(df[df[self.attr] <= self.th], **subtree_kwargs),\n", + " Tree(df[df[self.attr] > self.th], **subtree_kwargs))\n", + "\n", + " def __call__(self, x):\n", + " TODO\n", + " return best_split, best_purity_gain" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "id": "bKBwWQiABhID", + "colab_type": "code", + "outputId": "70ca26d9-21e8-4366-bf63-5648f1cd5dd5", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 693 + } + }, + "source": [ + "# TODO: apply the tree to Iris with petal_length and petal_width attributes\n", + "iris2d = iris_df[['petal_length', 'petal_width', 'target']]\n", + "\n", + "TODO: build and draw the tree\n" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ], + "image/svg+xml": "\n\n\n\n\n\n%3\n\n\n\n139878543312320\n\n\n\n\nIris-setosa:0.33 Iris-versicolor:0.33 Iris-virginica:0.33\nsplit by: petal_length\n\n\n\n139878543313216\n\n\nIris-setosa:1.00\n\n\n\n139878543312320->139878543313216\n\n\n<= 2.45\n\n\n\n139878543312432\n\n\n\nIris-versicolor:0.50 Iris-virginica:0.50\nsplit by: petal_width\n\n\n\n139878543312320->139878543312432\n\n\n> 2.45\n\n\n\n139878542911920\n\n\n\nIris-versicolor:0.91 Iris-virginica:0.09\nsplit by: petal_length\n\n\n\n139878543312432->139878542911920\n\n\n<= 1.75\n\n\n\n139878543113016\n\n\n\nIris-versicolor:0.02 Iris-virginica:0.98\nsplit by: petal_length\n\n\n\n139878543312432->139878543113016\n\n\n> 1.75\n\n\n\n139878543742120\n\n\n\nIris-versicolor:0.98 Iris-virginica:0.02\nsplit by: petal_width\n\n\n\n139878542911920->139878543742120\n\n\n<= 4.95\n\n\n\n139878543083448\n\n\n\nIris-versicolor:0.33 Iris-virginica:0.67\nsplit by: petal_width\n\n\n\n139878542911920->139878543083448\n\n\n> 4.95\n\n\n\n139878543019816\n\n\nIris-versicolor:1.00\n\n\n\n139878543742120->139878543019816\n\n\n<= 1.65\n\n\n\n139878543016792\n\n\nIris-virginica:1.00\n\n\n\n139878543742120->139878543016792\n\n\n> 1.65\n\n\n\n139878543017464\n\n\nIris-virginica:1.00\n\n\n\n139878543083448->139878543017464\n\n\n<= 1.55\n\n\n\n139878543017072\n\n\n\nIris-versicolor:0.67 Iris-virginica:0.33\nsplit by: petal_length\n\n\n\n139878543083448->139878543017072\n\n\n> 1.55\n\n\n\n139878543018864\n\n\nIris-versicolor:1.00\n\n\n\n139878543017072->139878543018864\n\n\n<= 5.45\n\n\n\n139878543017296\n\n\nIris-virginica:1.00\n\n\n\n139878543017072->139878543017296\n\n\n> 5.45\n\n\n\n139878543084512\n\n\n\nIris-versicolor:0.33 Iris-virginica:0.67\n\n\n\n139878543113016->139878543084512\n\n\n<= 4.85\n\n\n\n139878543019200\n\n\nIris-virginica:1.00\n\n\n\n139878543113016->139878543019200\n\n\n> 4.85\n\n\n\n" + }, + "metadata": { + "tags": [] + }, + "execution_count": 20 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "LdatEZNFcBdu", + "colab_type": "code", + "outputId": "2b2337a1-4691-41fc-c805-aa977ba12313", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + } + }, + "source": [ + "# TODO: to verify the tree building algorithm draw Iris2D decision boundary \n", + "# for different splitting criteria.\n", + "mesh_x, mesh_y = np.meshgrid(\n", + " np.linspace(iris2d.petal_length.min(), iris2d.petal_length.max(), 100),\n", + " np.linspace(iris2d.petal_width.min(), iris2d.petal_width.max(), 100),\n", + ")\n", + "\n", + "mesh_data = np.hstack([mesh_x.reshape(-1, 1), mesh_y.reshape(-1, 1)])\n", + "mesh_data = pd.DataFrame(mesh_data, columns=iris2d.columns[:-1])\n", + "\n", + "preds = np.empty( (len(mesh_data),))\n", + "\n", + "for criterion in ['infogain', 'infogain_ratio', 'gini', 'mean_err_rate']:\n", + " iris2d_tree = Tree(iris2d, criterion=criterion)\n", + " for i, (_, r) in enumerate(mesh_data.iterrows()):\n", + " preds[i] = iris2d_tree.all_targets.index(iris2d_tree.classify(r))\n", + "\n", + " plt.figure()\n", + " plt.title(f\"Iris2D decision boundary for {criterion}.\")\n", + " plt.contourf(mesh_x, mesh_y, preds.reshape(mesh_x.shape), cmap='Set1', vmin=0, vmax=7)\n", + " sns.scatterplot(x='petal_length', y='petal_width', hue='target', data=iris_df, palette='Set1', )" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYMAAAEXCAYAAABPkyhHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0\ndHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOydZ1RVR9eAn1vovVdFUUFE6YKCvSf2\naJo1PaYZY1REU9QY0zWvfibGmJgYoylqjMYYTSzYsWJBsAFK773cer4fxBuvIKCCIJ5nLdbizpmZ\nvedwOfvMzJ69JYIgCIiIiIiIPNBIm1oBEREREZGmRzQGIiIiIiKiMRAREREREY2BiIiIiAiiMRAR\nERERQTQGIiIiIiKIxuC+Y8uWLTzzzDNNrQYAs2fPZsmSJXfVR33H884777B8+fK7klUTy5YtY8aM\nGQ3e7+2SmpqKt7c3arX6nshbt24d4eHhBAYGUlBQcNf9DR06lJiYmHrVTUxMZOTIkQQGBrJmzZq7\nln0rjh8/zuDBgxut/5aGRDxn0Lzo168fCxcuJDw8/K76WbVqFZs3byYtLQ0bGxvGjRvHc889p7vu\n7e2NiYkJEokEQ0NDOnbsyOOPP87DDz9cbxmzZ8/GycmJN9544650bUqWLVvG1atX+fTTT5tUj9TU\nVPr3709cXBxyubxRZalUKoKDg/nll1/o2LFjo8qqiTlz5mBubs6cOXPuuWyRW9O43zqRBkWtVtf7\nQSEIAh999BHe3t5cu3aNZ599FhcXF4YOHaqr8/vvv+Ph4UF+fj779u1jwYIFJCYm8uqrrzbWEEQa\ngdv5XgDk5eWhUCho3779bcsSBAFBEJBK73xRIT09Xe97KNI8EJeJmjGbNm3iiSeeYNGiRYSFhbFs\n2TI2bdrEk08+CVT9Yy5atIju3bsTFBTE8OHDuXjxIgDPP/88vr6+yOVyPD096d+/PydPnqxRjq2t\nLaNGjWLevHl89dVXt1w2OH/+PKNHjyYwMJBp06ahUCj0ru/Zs4eRI0cSEhLCE088QUJCgu5aRkYG\nr776Kt26dSMsLIwFCxboxlif8dy8JPXLL78wcOBAQkNDmTJlCllZWbpr3t7erF+/nkGDBhESEsL8\n+fOpbQKsVCqZNm0agYGBjB49Wk/vK1euMHHiREJCQhg6dCi7du3SXZs4cSK//vqr7vONY6lLD41G\n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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\nRK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\nPIurIqLUIskAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [] + } + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "b2Q2ltNeSZGn", + "colab_type": "text" + }, + "source": [ + "## Decision Tree Task 4: Pruning [2p + 2bp]\n", + "\n", + "Tree pruning tries to remove splits that don't result in a decrease of the error rate.\n", + "\n", + "There are two possible strategies:\n", + "\n", + "### 1. Reduced Error Rate Pruning\n", + "Build a tree using all the data. Then split the training set into 10 crossvalidation subsets. Then in a loop over the tesintg crossvalidation subset:\n", + "- put the data from the remaining 9 subsets through the tree, remember distributions at each node (leaf and internal nodes)\n", + "- classify the samples in the testing subset, record the error rate for all nodes \n", + "- remove leaf nodes that have a higher error rate than their parents.\n", + "\n", + "### 2. Confidence-interval Pruning\n", + "Build the deicision tree and record the class distribution in each node. For each node, estimate the upper confidence interval on the error rate. Remove nodes that have a higher upper bound on the error rate than their parents.\n", + "\n", + "As you can see, the two strategies are quite similar: both estimate the error rate for all nodes in the tree and remove subtrees that do not improve it. The difference stems from the way in which the error rates are computed.\n", + "\n", + "### Task: \n", + "\n", + "Split the voting dataset into a training and testing set using a 70%-30% ratio.\n", + "\n", + "Train a decision tree and prune it using either method 1. or 2.\n", + "\n", + "Compare the error rates on the test set of the original and pruned tree.\n", + "\n", + "For bonus points: implement the other pruning algorithm.\n", + "\n", + "**Implementation hint**: you can store the information related to pruning in the `Tree.info` field. In this way, it will be printed by `Tree.draw` method." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "x28vJNM1SpHy", + "colab_type": "code", + "outputId": "0456ff12-1b05-4d51-8192-efc80c81195e", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + } + }, + "source": [ + "TODO\n", + "\n", + "# TODO: Build and draw the tree\n" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ], + "image/svg+xml": "\n\n\n\n\n\n%3\n\n\n\n139878543122328\n\n\n\ndemocrat:0.61 republican:0.39\nnum_samples = 304\nentropy = 0.9677884625382287\ngini = 0.4778393351800554\nsplit by: physician-fee-freeze\n\n\n\n139878504860304\n\n\n\ndemocrat:0.99 republican:0.01\nnum_samples = 170\nentropy = 0.09227724745603486\ngini = 0.02325259515570921\nsplit by: adoption-of-the-budget-resolution\n\n\n\n139878543122328->139878504860304\n\n\nn\n\n\n\n139878543432672\n\n\n\ndemocrat:0.67 republican:0.33\nnum_samples = 9\nentropy = 0.9182958337659505\ngini = 0.4444444444444444\nsplit by: synfuels-corporation-cutback\n\n\n\n139878543122328->139878543432672\n\n\nna\n\n\n\n139878544235096\n\n\n\ndemocrat:0.08 republican:0.92\nnum_samples = 125\nentropy = 0.4021791899137338\ngini = 0.1472\nsplit by: synfuels-corporation-cutback\n\n\n\n139878543122328->139878544235096\n\n\ny\n\n\n\n139878504798808\n\n\n\ndemocrat:0.89 republican:0.11\nnum_samples = 19\nentropy = 0.4854607604573744\ngini = 0.18836565096952906\nsplit by: synfuels-corporation-cutback\n\n\n\n139878504860304->139878504798808\n\n\nn\n\n\n\n139878505094952\n\n\ndemocrat:1.00\nnum_samples = 3\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878504860304->139878505094952\n\n\nna\n\n\n\n139878505153368\n\n\ndemocrat:1.00\nnum_samples = 148\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878504860304->139878505153368\n\n\ny\n\n\n\n139878505192080\n\n\n\ndemocrat:0.67 republican:0.33\nnum_samples = 6\nentropy = 0.9182958337659505\ngini = 0.4444444444444444\nsplit by: duty-free-exports\n\n\n\n139878504798808->139878505192080\n\n\nn\n\n\n\n139878505152640\n\n\ndemocrat:1.00\nnum_samples = 13\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878504798808->139878505152640\n\n\ny\n\n\n\n139878504763344\n\n\nrepublican:1.00\nnum_samples = 1\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878505192080->139878504763344\n\n\nn\n\n\n\n139878504761552\n\n\n\ndemocrat:0.80 republican:0.20\nnum_samples = 5\nentropy = 0.7219280945988233\ngini = 0.31999999999999984\nsplit by: education-spending\n\n\n\n139878505192080->139878504761552\n\n\ny\n\n\n\n139878504906824\n\n\ndemocrat:1.00\nnum_samples = 2\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878504761552->139878504906824\n\n\nn\n\n\n\n139878504690800\n\n\nrepublican:1.00\nnum_samples = 1\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878504761552->139878504690800\n\n\nna\n\n\n\n139878504908168\n\n\ndemocrat:1.00\nnum_samples = 2\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878504761552->139878504908168\n\n\ny\n\n\n\n139878505091872\n\n\nrepublican:1.00\nnum_samples = 1\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543432672->139878505091872\n\n\nn\n\n\n\n139878505093272\n\n\n\ndemocrat:0.33 republican:0.67\nnum_samples = 3\nentropy = 0.9182958337659505\ngini = 0.4444444444444444\nsplit by: el-salvador-aid\n\n\n\n139878543432672->139878505093272\n\n\nna\n\n\n\n139878504798360\n\n\ndemocrat:1.00\nnum_samples = 5\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878543432672->139878504798360\n\n\ny\n\n\n\n139878505193312\n\n\ndemocrat:1.00\nnum_samples = 1\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878505093272->139878505193312\n\n\nn\n\n\n\n139878505155832\n\n\nrepublican:1.00\nnum_samples = 2\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878505093272->139878505155832\n\n\nna\n\n\n\n139878505156000\n\n\n\ndemocrat:0.02 republican:0.98\nnum_samples = 96\nentropy = 0.14609424983159727\ngini = 0.04079861111111116\nsplit by: adoption-of-the-budget-resolution\n\n\n\n139878544235096->139878505156000\n\n\nn\n\n\n\n139878504797128\n\n\nrepublican:1.00\nnum_samples = 6\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878544235096->139878504797128\n\n\nna\n\n\n\n139878504799200\n\n\n\ndemocrat:0.35 republican:0.65\nnum_samples = 23\nentropy = 0.9321115673281357\ngini = 0.45368620037807184\nsplit by: adoption-of-the-budget-resolution\n\n\n\n139878544235096->139878504799200\n\n\ny\n\n\n\n139878504761160\n\n\nrepublican:1.00\nnum_samples = 80\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878505156000->139878504761160\n\n\nn\n\n\n\n139878505094392\n\n\nrepublican:1.00\nnum_samples = 1\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878505156000->139878505094392\n\n\nna\n\n\n\n139878504762224\n\n\n\ndemocrat:0.13 republican:0.87\nnum_samples = 15\nentropy = 0.5665095062643662\ngini = 0.23111111111111104\nsplit by: export-administration-act-south-africa\n\n\n\n139878505156000->139878504762224\n\n\ny\n\n\n\n139878504907048\n\n\n\ndemocrat:0.50 republican:0.50\nnum_samples = 4\nentropy = 0.9999999997114609\ngini = 0.5\nsplit by: anti-satellite-test-ban\n\n\n\n139878504762224->139878504907048\n\n\nna\n\n\n\n139878504761776\n\n\nrepublican:1.00\nnum_samples = 11\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878504762224->139878504761776\n\n\ny\n\n\n\n139878504503728\n\n\ndemocrat:1.00\nnum_samples = 2\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878504907048->139878504503728\n\n\nn\n\n\n\n139878504501880\n\n\nrepublican:1.00\nnum_samples = 2\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878504907048->139878504501880\n\n\ny\n\n\n\n139878504760040\n\n\n\ndemocrat:0.22 republican:0.78\nnum_samples = 18\nentropy = 0.7642045062200812\ngini = 0.345679012345679\nsplit by: el-salvador-aid\n\n\n\n139878504799200->139878504760040\n\n\nn\n\n\n\n139878504798192\n\n\ndemocrat:1.00\nnum_samples = 1\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878504799200->139878504798192\n\n\nna\n\n\n\n139878505191912\n\n\n\ndemocrat:0.75 republican:0.25\nnum_samples = 4\nentropy = 0.8112781241705938\ngini = 0.375\nsplit by: el-salvador-aid\n\n\n\n139878504799200->139878505191912\n\n\ny\n\n\n\n139878505093944\n\n\ndemocrat:1.00\nnum_samples = 1\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878504760040->139878505093944\n\n\nn\n\n\n\n139878505093608\n\n\n\ndemocrat:0.18 republican:0.82\nnum_samples = 17\nentropy = 0.6722948167870989\ngini = 0.2906574394463668\nsplit by: immigration\n\n\n\n139878504760040->139878505093608\n\n\ny\n\n\n\n139878504504960\n\n\n\ndemocrat:0.30 republican:0.70\nnum_samples = 10\nentropy = 0.8812908989421537\ngini = 0.42000000000000004\nsplit by: education-spending\n\n\n\n139878505093608->139878504504960\n\n\nn\n\n\n\n139878504763232\n\n\nrepublican:1.00\nnum_samples = 7\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878505093608->139878504763232\n\n\ny\n\n\n\n139878504537056\n\n\ndemocrat:1.00\nnum_samples = 1\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878504504960->139878504537056\n\n\nn\n\n\n\n139878504534872\n\n\n\ndemocrat:0.22 republican:0.78\nnum_samples = 9\nentropy = 0.7642045062200812\ngini = 0.345679012345679\nsplit by: superfund-right-to-sue\n\n\n\n139878504504960->139878504534872\n\n\ny\n\n\n\n139878504582336\n\n\ndemocrat:1.00\nnum_samples = 1\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878504534872->139878504582336\n\n\nn\n\n\n\n139878504579368\n\n\n\ndemocrat:0.12 republican:0.88\nnum_samples = 8\nentropy = 0.5435644429110573\ngini = 0.21875\nsplit by: water-project-cost-sharing\n\n\n\n139878504534872->139878504579368\n\n\ny\n\n\n\n139878504620496\n\n\n\ndemocrat:0.50 republican:0.50\nnum_samples = 2\nentropy = 0.9999999997114609\ngini = 0.5\nsplit by: handicapped-infants\n\n\n\n139878504579368->139878504620496\n\n\nn\n\n\n\n139878504759536\n\n\nrepublican:1.00\nnum_samples = 1\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878504579368->139878504759536\n\n\nna\n\n\n\n139878504537616\n\n\nrepublican:1.00\nnum_samples = 5\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878504579368->139878504537616\n\n\ny\n\n\n\n139878504623464\n\n\ndemocrat:1.00\nnum_samples = 1\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878504620496->139878504623464\n\n\nn\n\n\n\n139878504623968\n\n\nrepublican:1.00\nnum_samples = 1\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878504620496->139878504623968\n\n\ny\n\n\n\n139878504690688\n\n\nrepublican:1.00\nnum_samples = 1\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878505191912->139878504690688\n\n\nn\n\n\n\n139878504691920\n\n\ndemocrat:1.00\nnum_samples = 3\nentropy = -1.4426951601859516e-10\ngini = 0.0\n\n\n\n139878505191912->139878504691920\n\n\ny\n\n\n\n" + }, + "metadata": { + "tags": [] + }, + "execution_count": 22 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "7hi_eo5XToE_", + "colab_type": "code", + "outputId": "4a0d58b3-b698-4ce0-a683-252748f95b98", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 992 + } + }, + "source": [ + "# TODO: implement a pruning method of your choice\n", + "\n" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Unpruned err rate: 0.07633587786259544\n", + "Pruned err rate: 0.04580152671755722\n" + ], + "name": "stdout" + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ], + "image/svg+xml": "\n\n\n\n\n\n%3\n\n\n\n139878543122328\n\n\n\ndemocrat:0.61 republican:0.39\nnum_samples = 304\nentropy = 0.9677884625382287\ngini = 0.4778393351800554\nnode_eval_stats = {'ok': 166, 'err': 96, 'err_rate': 0.366412213740458}\nsubtree_eval_stats = {'ok': 246, 'err': 16, 'err_rate': 0.061068702290076333}\nnode_pessimistic_err_rate = 0.431137636590178\nsubtree_pessmistic_err_rate = 0.09809124659668528\nsplit by: physician-fee-freeze\n\n\n\n139878504860304\n\n\n\ndemocrat:0.99 republican:0.01\nnum_samples = 170\nentropy = 0.09227724745603486\ngini = 0.02325259515570921\nnode_eval_stats = {'ok': 154, 'err': 0, 'err_rate': 0.0}\nsubtree_eval_stats = {'ok': 74, 'err': 3, 'err_rate': 0.03896103896103896}\nnode_pessimistic_err_rate = 0.04187469662834009\npruned = True\n\n\n\n139878543122328->139878504860304\n\n\nn\n\n\n\n139878543432672\n\n\n\ndemocrat:0.67 republican:0.33\nnum_samples = 9\nentropy = 0.9182958337659505\ngini = 0.4444444444444444\nnode_eval_stats = {'ok': 4, 'err': 0, 'err_rate': 0.0}\nsubtree_eval_stats = {'ok': 0, 'err': 4, 'err_rate': 1.0}\nnode_pessimistic_err_rate = 0.6457978644196039\nsubtree_pessmistic_err_rate = 0.5638392489053436\nsplit by: synfuels-corporation-cutback\n\n\n\n139878543122328->139878543432672\n\n\nna\n\n\n\n139878544235096\n\n\n\ndemocrat:0.08 republican:0.92\nnum_samples = 125\nentropy = 0.4021791899137338\ngini = 0.1472\nnode_eval_stats = {'ok': 96, 'err': 8, 'err_rate': 0.07692307692307693}\nsubtree_eval_stats = {'ok': 47, 'err': 5, 'err_rate': 0.09615384615384616}\nnode_pessimistic_err_rate = 0.14101189838741135\npruned = True\n\n\n\n139878543122328->139878544235096\n\n\ny\n\n\n\n139878505091872\n\n\nrepublican:1.00\nnum_samples = 1\nentropy = -1.4426951601859516e-10\ngini = 0.0\nnode_pessimistic_err_rate = 0.7934506856227626\n\n\n\n139878543432672->139878505091872\n\n\nn\n\n\n\n139878505093272\n\n\n\ndemocrat:0.33 republican:0.67\nnum_samples = 3\nentropy = 0.9182958337659505\ngini = 0.4444444444444444\nnode_eval_stats = {'ok': 0, 'err': 4, 'err_rate': 1.0}\nsubtree_eval_stats = {'ok': 0, 'err': 4, 'err_rate': 1.0}\nnode_pessimistic_err_rate = 0.7923403991979523\nsubtree_pessmistic_err_rate = 0.7028967435364856\nsplit by: el-salvador-aid\n\n\n\n139878543432672->139878505093272\n\n\nna\n\n\n\n139878504798360\n\n\ndemocrat:1.00\nnum_samples = 5\nentropy = -1.4426951601859516e-10\ngini = 0.0\nnode_pessimistic_err_rate = 0.43448246478317476\n\n\n\n139878543432672->139878504798360\n\n\ny\n\n\n\n139878505193312\n\n\ndemocrat:1.00\nnum_samples = 1\nentropy = -1.4426951601859516e-10\ngini = 0.0\nnode_pessimistic_err_rate = 0.7934506856227626\n\n\n\n139878505093272->139878505193312\n\n\nn\n\n\n\n139878505155832\n\n\nrepublican:1.00\nnum_samples = 2\nentropy = -1.4426951601859516e-10\ngini = 0.0\nnode_eval_stats = {'ok': 0, 'err': 2, 'err_rate': 1.0}\nnode_pessimistic_err_rate = 0.657619772493347\n\n\n\n139878505093272->139878505155832\n\n\nna\n\n\n\n" + }, + "metadata": { + "tags": [] + }, + "execution_count": 23 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "fm_yL3oJSqJl", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "mBdvPmXKGon3", + "colab_type": "text" + }, + "source": [ + "# Problem 4: Random Forest [3p]\n", + "\n", + "We will use the german credit dataeset. Please split it into a traiing and testing set using a 70%-30% ratio.\n", + "\n", + "Then train and test a regular decision tree on it.\n", + "\n", + "Then:\n", + "1. Implement selecting the split from a small random selection of attriutes.\n", + "2. Build a forest of at least 20 Random Trees, each selecting splits out of 1-3 attributes on the German Credit data. After adding each random tree:\n", + " - Compute its test error rate and its OOB error rate\n", + " - Record the accurracy of the RF after adding the tree to it. \n", + " \n", + " At the end ot training record the forest's OOB error rate.\n", + "\n", + "\n", + "What is the mean accurracy of individual trees in the forest? What is the final forest accurracy? \n", + "\n", + "Define the agreement between two trees to be the fraction of test samples on which the answer of the two trees is identical. What is the mean aggreement of trees in the forest? How does it change with the number of attributes considered for each split? What is the impact of training each tree in the forest on a bootstrap sample, rather than on the train set?" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "f-w0gDDTNhr6", + "colab_type": "code", + "outputId": "fe7758c6-63f1-4043-f949-ca666897eba9", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 236 + } + }, + "source": [ + "" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Unpruned err rate: 0.3466666666666667\n", + "Pruned err rate: 0.32666666666666666\n" + ], + "name": "stdout" + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ], + "image/svg+xml": "\n\n\n\n\n\n%3\n\n\n\n139878504535432\n\n\n\n1:0.71 2:0.29\nnum_samples = 700\nentropy = 0.8668687091355515\ngini = 0.4105959183673469\nnode_eval_stats = {'ok': 404, 'err': 196, 'err_rate': 0.32666666666666666}\nsubtree_eval_stats = {'ok': 196, 'err': 104, 'err_rate': 0.3466666666666667}\nnode_pessimistic_err_rate = 0.31099342885660664\npruned = True\n\n\n\n" + }, + "metadata": { + "tags": [] + }, + "execution_count": 24 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "gcFsBRbONh9B", + "colab_type": "code", + "outputId": "d484a555-2419-4900-9d1e-71ede331767e", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + } + }, + "source": [ + "" + ], + "execution_count": 0, + "outputs": [ + { + "output_type": "stream", + "text": [ + "\n", + "\n", + "\n", + "nattr: 1\n", + "Tree 0: RF Err rate 0.377 Err rate 0.377 OOB err rate 0.301\n", + "Tree 1: RF Err rate 0.330 Err rate 0.333 OOB err rate 0.385\n", + "Tree 2: RF Err rate 0.293 Err rate 0.307 OOB err rate 0.350\n", + "Tree 3: RF Err rate 0.317 Err rate 0.403 OOB err rate 0.346\n", + "Tree 4: RF Err rate 0.313 Err rate 0.423 OOB err rate 0.446\n", + "Tree 5: RF Err rate 0.303 Err rate 0.300 OOB err rate 0.331\n", + "Tree 6: RF Err rate 0.307 Err rate 0.320 OOB err rate 0.314\n", + "Tree 7: RF Err rate 0.297 Err rate 0.390 OOB err rate 0.373\n", + "Tree 8: RF Err rate 0.300 Err rate 0.373 OOB err rate 0.402\n", + "Tree 9: RF Err rate 0.310 Err rate 0.367 OOB err rate 0.342\n", + "Tree 10: RF Err rate 0.297 Err rate 0.343 OOB err rate 0.430\n", + "Tree 11: RF Err rate 0.290 Err rate 0.393 OOB err rate 0.349\n", + "Tree 12: RF Err rate 0.293 Err rate 0.360 OOB err rate 0.314\n", + "Tree 13: RF Err rate 0.293 Err rate 0.327 OOB err rate 0.335\n", + "Tree 14: RF Err rate 0.297 Err rate 0.363 OOB err rate 0.357\n", + "Tree 15: RF Err rate 0.290 Err rate 0.347 OOB err rate 0.366\n", + "Tree 16: RF Err rate 0.293 Err rate 0.337 OOB err rate 0.386\n", + "Tree 17: RF Err rate 0.293 Err rate 0.363 OOB err rate 0.355\n", + "Tree 18: RF Err rate 0.287 Err rate 0.283 OOB err rate 0.319\n", + "Tree 19: RF Err rate 0.280 Err rate 0.357 OOB err rate 0.316\n", + "Tree 20: RF Err rate 0.287 Err rate 0.367 OOB err rate 0.328\n", + "Tree 21: RF Err rate 0.280 Err rate 0.387 OOB err rate 0.363\n", + "Tree 22: RF Err rate 0.287 Err rate 0.353 OOB err rate 0.406\n", + "Tree 23: RF Err rate 0.297 Err rate 0.410 OOB err rate 0.368\n", + "Tree 24: RF Err rate 0.300 Err rate 0.380 OOB err rate 0.376\n", + "Forest OOB Err rate 0.289\n", + "Mean tree er rate: 0.35853333333333337\n", + "Mean tree aggreement: 0.6315777777777778\n", + "\n", + "\n", + "\n", + "nattr: 2\n", + "Tree 0: RF Err rate 0.377 Err rate 0.377 OOB err rate 0.310\n", + "Tree 1: RF Err rate 0.367 Err rate 0.383 OOB err rate 0.355\n", + "Tree 2: RF Err rate 0.330 Err rate 0.363 OOB err rate 0.357\n", + "Tree 3: RF Err rate 0.317 Err rate 0.353 OOB err rate 0.380\n", + "Tree 4: RF Err rate 0.300 Err rate 0.343 OOB err rate 0.319\n", + "Tree 5: RF Err rate 0.310 Err rate 0.383 OOB err rate 0.357\n", + "Tree 6: RF Err rate 0.297 Err rate 0.353 OOB err rate 0.296\n", + "Tree 7: RF Err rate 0.283 Err rate 0.303 OOB err rate 0.328\n", + "Tree 8: RF Err rate 0.287 Err rate 0.340 OOB err rate 0.296\n", + "Tree 9: RF Err rate 0.290 Err rate 0.327 OOB err rate 0.340\n", + "Tree 10: RF Err rate 0.287 Err rate 0.330 OOB err rate 0.367\n", + "Tree 11: RF Err rate 0.287 Err rate 0.317 OOB err rate 0.331\n", + "Tree 12: RF Err rate 0.287 Err rate 0.343 OOB err rate 0.350\n", + "Tree 13: RF Err rate 0.277 Err rate 0.323 OOB err rate 0.364\n", + "Tree 14: RF Err rate 0.280 Err rate 0.370 OOB err rate 0.343\n", + "Tree 15: RF Err rate 0.280 Err rate 0.277 OOB err rate 0.325\n", + "Tree 16: RF Err rate 0.280 Err rate 0.380 OOB err rate 0.378\n", + "Tree 17: RF Err rate 0.283 Err rate 0.357 OOB err rate 0.388\n", + "Tree 18: RF Err rate 0.283 Err rate 0.343 OOB err rate 0.306\n", + "Tree 19: RF Err rate 0.287 Err rate 0.310 OOB err rate 0.325\n", + "Tree 20: RF Err rate 0.290 Err rate 0.377 OOB err rate 0.377\n", + "Tree 21: RF Err rate 0.297 Err rate 0.367 OOB err rate 0.330\n", + "Tree 22: RF Err rate 0.297 Err rate 0.337 OOB err rate 0.375\n", + "Tree 23: RF Err rate 0.290 Err rate 0.343 OOB err rate 0.350\n", + "Tree 24: RF Err rate 0.303 Err rate 0.360 OOB err rate 0.351\n", + "Forest OOB Err rate 0.289\n", + "Mean tree er rate: 0.3464\n", + "Mean tree aggreement: 0.6614222222222222\n", + "\n", + "\n", + "\n", + "nattr: 3\n", + "Tree 0: RF Err rate 0.393 Err rate 0.393 OOB err rate 0.399\n", + "Tree 1: RF Err rate 0.343 Err rate 0.337 OOB err rate 0.367\n", + "Tree 2: RF Err rate 0.310 Err rate 0.300 OOB err rate 0.237\n", + "Tree 3: RF Err rate 0.327 Err rate 0.383 OOB err rate 0.352\n", + "Tree 4: RF Err rate 0.303 Err rate 0.373 OOB err rate 0.385\n", + "Tree 5: RF Err rate 0.303 Err rate 0.367 OOB err rate 0.380\n", + "Tree 6: RF Err rate 0.303 Err rate 0.347 OOB err rate 0.349\n", + "Tree 7: RF Err rate 0.303 Err rate 0.390 OOB err rate 0.322\n", + "Tree 8: RF Err rate 0.317 Err rate 0.323 OOB err rate 0.301\n", + "Tree 9: RF Err rate 0.313 Err rate 0.313 OOB err rate 0.369\n", + "Tree 10: RF Err rate 0.303 Err rate 0.353 OOB err rate 0.300\n", + "Tree 11: RF Err rate 0.303 Err rate 0.360 OOB err rate 0.316\n", + "Tree 12: RF Err rate 0.303 Err rate 0.367 OOB err rate 0.384\n", + "Tree 13: RF Err rate 0.307 Err rate 0.397 OOB err rate 0.406\n", + "Tree 14: RF Err rate 0.300 Err rate 0.337 OOB err rate 0.354\n", + "Tree 15: RF Err rate 0.303 Err rate 0.350 OOB err rate 0.344\n", + "Tree 16: RF Err rate 0.303 Err rate 0.310 OOB err rate 0.330\n", + "Tree 17: RF Err rate 0.300 Err rate 0.340 OOB err rate 0.327\n", + "Tree 18: RF Err rate 0.293 Err rate 0.280 OOB err rate 0.305\n", + "Tree 19: RF Err rate 0.290 Err rate 0.390 OOB err rate 0.366\n", + "Tree 20: RF Err rate 0.287 Err rate 0.353 OOB err rate 0.361\n", + "Tree 21: RF Err rate 0.283 Err rate 0.360 OOB err rate 0.340\n", + "Tree 22: RF Err rate 0.283 Err rate 0.350 OOB err rate 0.366\n", + "Tree 23: RF Err rate 0.290 Err rate 0.397 OOB err rate 0.370\n", + "Tree 24: RF Err rate 0.287 Err rate 0.330 OOB err rate 0.329\n", + "Forest OOB Err rate 0.289\n", + "Mean tree er rate: 0.35200000000000004\n", + "Mean tree aggreement: 0.6496666666666667\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "nHW2hwFqmIdg", + "colab_type": "text" + }, + "source": [ + "# Problem 5 [3bp]\n", + "\n", + "Implement the following extra analysis using a Random Forest:\n", + "- variable importance\n", + "- data clustering\n", + "- data visualizatoin using MultiDimensional Sclaing (https://en.wikipedia.org/wiki/Multidimensional_scaling, https://scikit-learn.org/stable/modules/generated/sklearn.manifold.MDS.html).\n", + "\n", + "For details see https://www.stat.berkeley.edu/~breiman/Using_random_forests_v4.0.pdf." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "34k2lIudjSK2", + "colab_type": "code", + "colab": {} + }, + "source": [ + "" + ], + "execution_count": 0, + "outputs": [] + } + ] +} \ No newline at end of file