{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Sveučilište u Zagrebu
\n", "Fakultet elektrotehnike i računarstva\n", "\n", "# Strojno učenje\n", "\n", "http://www.fer.unizg.hr/predmet/su\n", "\n", "Ak. god. 2015./2016.\n", "\n", "# Bilježnica 4: Bayesov klasifikator\n", "\n", "(c) 2015 Jan Šnajder\n", "\n", "Verzija: 0.7 (2015-10-31)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "import scipy as sp\n", "import scipy.stats as stats\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "%pylab inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Sadržaj:\n", "\n", "* Bayesovska klasifikacija\n", "\n", "* Naivan Bayesov klasifikator\n", "\n", "* Primjer: 101 Questions\n", "\n", "* Polunaivan Bayesov klasifikator*\n", "\n", "* Bayesov klasifikator za kontinuirane značajke\n", "\n", "* Bayesov klasifikator: komponente algoritma\n", "\n", "* Sažetak" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Bayesovska klasfikacija\n", "\n", "### Bayesovo pravilo \n", "\n", "$$\n", "P(\\mathcal{C}_j|\\mathbf{x}) = \n", "\\frac{P(\\mathbf{x},\\mathcal{C}_j)}{P(\\mathbf{x})} = \n", "\\frac{p(\\mathbf{x}|\\mathcal{C}_j) P(\\mathcal{C}_j)}{p(\\mathbf{x})} =\n", "\\frac{p(\\mathbf{x}|\\mathcal{C}_j)P(\\mathcal{C}_j)}{\\sum_{k=1}^K p(\\mathbf{x}|\\mathcal{C}_k)P(\\mathcal{C}_k)}\n", "$$\n", "\n", "\n", "* **Apriorna vjerojatnost klase** $\\mathcal{C}_j$:\n", " * Binarna ($K=2)$ klasifikacija: Bernoullijeva razdioba\n", " * Višeklasna ($K>2$) klasifikacija: kategorička razdioba\n", "\n", "\n", "* **Izglednost klase** $p(\\mathbf{x}|\\mathcal{C}_j)$:\n", " * Diskretne značajke: Bernoullijeva/kategorička razdioba\n", " * Kontinuirane značajke: Gaussova razdioba\n", "\n", "\n", "* Ovo je **parametarski** i **generativni** model\n", " * Q: Zašto?\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Klasifikacijska odluka\n", "\n", "* MAP-hipoteza:\n", "\\begin{align*}\n", "h : \\mathcal{X} &\\to \\{\\mathcal{C}_1, \\mathcal{C}_2,\\dots, \\mathcal{C}_K\\}\\\\\n", "h(\\mathbf{x})&=\\displaystyle\\mathrm{argmax}_{\\mathcal{C}_k}\\ p(\\mathbf{x}|\\mathcal{C}_k) P(\\mathcal{C}_k)\n", "\\end{align*}\n", "\n", "* Pouzdanost klasifikacije u $\\mathcal{C}_j$:\n", "\\begin{align*}\n", "h_j : \\mathcal{X} &\\to [0,\\infty)\\\\\n", "h_j(\\mathbf{x})&=p(\\mathbf{x}|\\mathcal{C}_k) P(\\mathcal{C}_k)\n", "\\end{align*}\n", "\n", "* Vjerojatnost klasifikacije u $\\mathcal{C}_j$:\n", "\\begin{align*}\n", "h_j : \\mathcal{X} &\\to [0,1]\\\\\n", "h_j(\\mathbf{x})&=P(\\mathcal{C}_k|\\mathbf{x})\n", "\\end{align*}\n", "\n", "### Primjer\n", "\n", "* $P(\\mathcal{C}_1) = P(\\mathcal{C}_2)=0.3$, $P(\\mathcal{C}_3)=0.4$\n", "* Za neki primjer $\\mathbf{x}$ imamo: $p(\\mathbf{x}|\\mathcal{C}_1)=0.9$, $p(\\mathbf{x}|\\mathcal{C}_2)=p(\\mathbf{x}|\\mathcal{C}_3)=0.4$\n", "* U koju klasu klasificiramo $\\mathbf{x}$?\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Minimizacija pogreške klasifikacije*\n", "\n", "* Pretpostavimo da primjeri u stvarnosti dolaze iz dva područja: \n", " * $\\mathcal{R}_1=\\{\\mathbf{x}\\in\\mathcal{X}\\mid h_1(\\mathbf{x})=1\\}$\n", " * $\\mathcal{R}_2=\\mathcal{X}\\setminus\\mathcal{R}_1$\n", "\n", "* Vjerojatnost pogrešne klasifikacije:\n", "\n", "\\begin{align*}\n", "P(\\mathbf{x}\\in\\mathcal{R}_1,\\mathcal{C}_2) &+ P(\\mathcal{x}\\in\\mathcal{R}_2,\\mathcal{C}_1)\\\\ \n", "\\int_{\\mathbf{x}\\in\\mathcal{R}_1} p(\\mathbf{x},\\mathcal{C}_2)\\,\\mathrm{d}\\mathbf{x} &+ \n", "\\int_{\\mathbf{x}\\in\\mathcal{R}_2} p(\\mathbf{x},\\mathcal{C}_1)\\,\\mathrm{d}\\mathbf{x}\n", "\\end{align*}\n", "\n", "\n", "* [Skica]\n", "\n", "\n", "* Pogreška je minimizirana kada $\\mathcal{C}_j = \\mathrm{argmax}_{\\mathcal{C}\\in\\{\\mathcal{C_1},\\mathcal{C_2}\\}} P(\\mathbf{x},\\mathcal{C}_j) $\n", "\n", "\n", "### Alternativa: Minimizacija rizika*\n", "\n", "* $L_{kj}$ - gubitak uslijed pogrešne klasifikacije primjera iz klase $\\mathcal{C}_k$ u klasu $\\mathcal{C}_j$\n", "\n", "\n", "* Očekivani gubitak (funkcija rizika):\n", " \n", "$$\n", "\\mathbb{E}[L] = \\sum_{k=1}^K\\sum_{j=1}^K \\int_{\\mathbf{x}\\in\\mathcal{R}_j}\n", "L_{kj}\\,p(\\mathbf{x},\\mathcal{C}_k)\\,\\mathrm{d}\\mathbf{x}\n", "$$\n", "\n", "\n", "* Očekivani rizik pri klasifikaciji $\\mathbf{x}$ u $\\mathcal{C}_j$:\n", "\n", "$$\n", "R(\\mathcal{C}_j|\\mathbf{x}) = \\sum_{k=1}^K L_{kj}P(\\mathcal{C}_k|\\mathbf{x})\n", "$$\n", "\n", "\n", "* Optimalna klasifikacijska odluka:\n", "$$\n", "h(\\mathbf{x}) = \\mathrm{argmin}_{\\mathcal{C}_k} R(\\mathcal{C}_k|\\mathbf{x})\n", "$$\n", "\n", "### Primjer\n", "\n", "* $P(\\mathcal{C}_1|\\mathbf{x}) = 0.25$, $P(\\mathcal{C}_2|\\mathbf{x}) = 0.6$, $P(\\mathcal{C}_3|\\mathbf{x}) =\n", "0.15$\n", "\n", "$$\n", "L = {\\small\n", "\\begin{pmatrix}\n", "0 & 1 & 5 \\\\\n", "1 & 0 & 5 \\\\\n", "10 & 100 & 0\n", "\\end{pmatrix}}\n", "$$\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Naivan Bayesov klasifikator\n", "\n", "\n", "* $\\mathcal{D}=\\{(\\mathbf{x}^{(i)},y^{(i)})\\}_{i=1}^N$\n", "* $y^{(i)}\\in\\{\\mathcal{C}_1,\\dots,\\mathcal{C}_K\\}$\n", "\n", "\n", "* Model:\n", "\\begin{align*}\n", " P(\\mathcal{C}_j|x_1,\\dots,x_n)\\ &\\propto\\ P(x_1,\\dots,x_n|\\mathcal{C}_j)P(\\mathcal{C}_j)\\\\\n", " h(\\mathbf{x}=x_1,\\dots,x_n) &= \\mathrm{argmax}_{j}\\ P(\\mathbf{x}=x_1,\\dots,x_n|y=\\mathcal{C}_j)P(y = \\mathcal{C}_j)\n", "\\end{align*}\n", "\n", "\n", "* ML-procjena za $P(y)$ (kategorička razdioba):\n", "\n", "$$\n", "\\hat{P}(\\mathcal{C}_j)=\\frac{1}{N}\\sum_{i=1}^N\\mathbf{1}\\{y^{(i)}=\\mathcal{C}_j\\} = \\frac{N_j}{N}\n", "$$\n", "\n", "\n", "* Q: Broj parametara za $\\hat{P}(\\mathcal{C}_j)$, $j=1,\\dots,K$ ?\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Procjena parametara za $P(x_1,\\dots,x_n|\\mathcal{C}_j)$?\n", "\n", "\n", "* Tretirati $\\mathbf{x} = (x_1,\\dots,x_n)$ kao kategoričku varijablu (njezine vrijednosti su sve kombinacije vrijednosti $x_i$) ?\n", " * Broj parametara?\n", " * Generalizacija?\n", " \n", " \n", "* Pravilo lanca (uz uvjetnu varijablu $\\mathcal{C}_j$):\n", "\n", "\\begin{equation*}\n", "P(x_1,\\dots,x_n|\\mathcal{C}_j)\n", "= \\prod_{k=1}^n P(x_k|x_1,\\dots,x_{k-1},\\mathcal{C}_j)\n", "\\end{equation*}\n", "\n", "* Pretpostavka: $\\color{red}{x_i\\bot x_k|\\mathcal{C}_j\\ (i\\neq k)} \\ \\Leftrightarrow \\ \\color{red}{P(x_i|x_k,\\mathcal{C}_j) = P(x_i|\\mathcal{C}_j)}$\n", "\n", "\\begin{equation*}\n", "P(x_1,\\dots,x_n|\\mathcal{C}_j) = \n", "\\prod_{k=1}^n P(x_k|x_1,\\dots,x_{k-1},\\mathcal{C}_j) =\n", "\\prod_{k=1}^n P(x_k|\\mathcal{C}_j)\n", "\\end{equation*}\n", "\n", "* Naivan Bayesov klasifikator:\n", "$$\n", "h(x_1,\\dots,x_n) = \\mathrm{argmax}_j\\ P(\\mathcal{C}_j)\\prod_{k=1}^n P(x_k|\\mathcal{C}_j)\n", "$$\n", "\n", "* ML-procjena:\n", "$$\n", "\\hat{P}(x_k|\\mathcal{C}_j)=\\frac{\\sum_{i=1}^N\\mathbf{1}\\big\\{x^{(i)}_k=x_k \\land y^{(i)}=\\mathcal{C}_j\\big\\}}\n", "{\\sum_{i=1}^N \\mathbf{1}\\{y^{(i)} = \\mathcal{C}_j\\}}\n", "= \\frac{N_{kj}}{N_j}\n", "$$\n", "\n", "* Laplaceov procjenitelj:\n", "$$\n", "\\hat{P}(x_k|\\mathcal{C}_j)=\\frac{\\sum_{i=1}^N\\mathbf{1}\\big\\{x^{(i)}_k=x_k \\land y^{(i)}=\\mathcal{C}_j\\big\\} + \\lambda}\n", "{\\sum_{i=1}^N \\mathbf{1}\\{y^{(i)} = \\mathcal{C}_j\\} + \\lambda K_k}\n", "= \\frac{N_{kj}+\\lambda}{N_j+\\lambda K_k}\n", "$$\n", "\n", "\n", "* Broj parametara: $\\sum_{k=1}^n(K_k-1)K$\n", "\n", "\n", "* Binarne značajke: $nK$\n", "\n", "\n", "### Uvjetna nezavisnost?\n", "\n", "\n", "* Vrijedi li općenito nezavisnost $x_i\\bot x_k|\\mathcal{C}_j\\ (i\\neq k)$?\n", "\n", "* Primjer: Klasifikacija teksta\n", " * Kategorija $\\mathcal{C} = \\text{Sport}$\n", " * $D$: tekstni dokument\n", " * Značajke: $x_1=\\mathbf{1}\\{\\text{Zagreb}\\in D\\}$, $x_2 = \\mathbf{1}\\{\\text{lopta}\\in D\\}$, $x_3=\\mathbf{1}\\{\\text{gol}\\in D\\}$\n", " * Q: $x_1 \\bot x_2 | \\mathcal{C}$ ?\n", " * Q: $x_2 \\bot x_3 | \\mathcal{C}$ ?\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Primjer: Dobar SF-film\n", "\n", "$$\n", "\\begin{array}{r c c c c c } \n", "\\hline \n", "& x_1 & x_2 & x_3 & x_4 & y\\\\\n", "i & \\text{Mjesto radnje} & \\text{Glavni lik} & \\text{Vrijeme radnje} & \\text{Vanzemaljci} & \\text{Dobar film}\\\\ \n", "\\hline \n", "1 & \\text{svemir} & \\text{znanstvenica} & \\text{sadašnjost} & \\text{da} & \\text{ne} \\\\ \n", "2 & \\text{Zemlja} & \\text{kriminalac} & \\text{budućnost} & \\text{ne} & \\text{ne} \\\\ \n", "3 & \\text{drugdje} & \\text{dijete} & \\text{prošlost} & \\text{da} & \\text{ne} \\\\ \n", "4 & \\text{svemir} & \\text{znanstvenica} & \\text{sadašnjost} & \\text{ne} & \\text{da} \\\\ \n", "5 & \\text{svemir} & \\text{kriminalac} & \\text{prošlost} & \\text{ne} & \\text{ne} \\\\ \n", "6 & \\text{Zemlja} & \\text{dijete} & \\text{prošlost} & \\text{da} & \\text{da} \\\\ \n", "7 & \\text{Zemlja} & \\text{policajac} & \\text{budućnost} & \\text{da} & \\text{ne} \\\\ \n", "8 & \\text{svemir} & \\text{policajac} & \\text{budućnost} & \\text{ne} & \\text{da} \\\\ \n", "\\hline \\end{array}\n", "$$\n", "\n", "* Q: Koja je klasifikacija novog primjera $\\mathbf{x} = (\\text{svemir}, \\text{dijete}, \\text{sadašnjost}, \\text{da})$ ?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Primjer: 101 Questions" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "q101 = pd.read_csv(\"http://www.fer.unizg.hr/_download/repository/questions101-2014.csv\", comment='#')" ] }, { "cell_type": "code", "execution_count": 38, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Q1Q2Q3Q4Q5Q6Q7Q8Q9Q10...Q92Q93Q94Q95Q96Q97Q98Q99Q100Q101
0MoreZagrebSokPsiEuropaTelevizijaMessiGibonniFERFriends...Elektronska glazbaVirusKubaSmartphoneFinskaTenisiceGospodar prstenovaČokoladaBurek s mesomBatman
1MoreZagrebVodaPsiEuropaTelevizijaMessiGibonniFERBig Bang Theory...RockVirusUSASmartphoneItalijaTenisiceGospodar prstenovaČokoladaBurek s mesomBatman
2MoreZagrebVodaPsiEuropaTelevizijaMessiGibonniFERFriends...RockVirusUSASmartphoneItalijaTenisiceGospodar prstenovaVanilijaBurek s mesomBatman
3MoreSplitVodaPsiEuropaTelevizijaRonaldoOliverFERFriends...Elektronska glazbaBakterijaUSASmartphoneFinskaTenisiceHarry PotterČokoladaBurek s mesomBatman
4MoreZagrebVodaPsiEuropaTelevizijaRonaldoOliverFERFriends...RockVirusKubaSmartphoneItalijaCipeleGospodar prstenovaČokoladaBurek s mesomBatman
5MoreZagrebSokPsiUSATelevizijaRonaldoGibonniFERFriends...RockBakterijaUSASmartphoneItalijaTenisiceHarry PotterVanilijaBurek sa siromSuperman
6MoreZagrebVodaPsiEuropaTelevizijaRonaldoGibonniFERFriends...RockVirusKubaSmartphoneFinskaTenisiceGospodar prstenovaVanilijaBurek s mesomSuperman
7MoreZagrebVodaPsiEuropaTelevizijaMessiOliverFERBig Bang Theory...RockBakterijaKubaObični mobitelFinskaTenisiceGospodar prstenovaČokoladaBurek sa siromSuperman
8PlaninaZagrebVodaPsiEuropaTelevizijaRonaldoOliverFERBig Bang Theory...RockVirusKubaSmartphoneFinskaTenisiceGospodar prstenovaČokoladaBurek s mesomSuperman
9MoreZagrebSokPsiEuropaTelevizijaRonaldoGibonniFERFriends...Elektronska glazbaVirusKubaSmartphoneFinskaTenisiceGospodar prstenovaČokoladaBurek s mesomBatman
10MoreZagrebVodaPsiEuropaTelevizijaMessiGibonniFERBig Bang Theory...RockVirusUSASmartphoneFinskaTenisiceHarry PotterČokoladaBurek s mesomSuperman
11MoreZagrebVodaPsiEuropaTelevizijaRonaldoGibonniFERFriends...RockBakterijaUSAObični mobitelFinskaTenisiceHarry PotterČokoladaBurek s mesomBatman
12MoreZagrebVodaMačkeUSATelevizijaRonaldoGibonniFERBig Bang Theory...RockVirusUSASmartphoneFinskaTenisiceGospodar prstenovaČokoladaBurek sa siromBatman
13MoreZagrebVodaPsiEuropaRadioRonaldoOliverFERFriends...Elektronska glazbaVirusUSASmartphoneItalijaTenisiceGospodar prstenovaVanilijaBurek sa siromBatman
14MoreZagrebVodaPsiUSATelevizijaMessiGibonniFERBig Bang Theory...RockVirusKubaSmartphoneFinskaTenisiceHarry PotterČokoladaBurek s mesomBatman
15MoreZagrebVodaPsiEuropaRadioMessiGibonniFERFriends...RockBakterijaUSASmartphoneFinskaCipeleGospodar prstenovaČokoladaBurek s mesomBatman
16PlaninaZagrebVodaMačkeEuropaTelevizijaMessiOliverFERFriends...RockBakterijaKubaObični mobitelFinskaTenisiceGospodar prstenovaVanilijaBurek s mesomBatman
17MoreZagrebSokPsiEuropaTelevizijaMessiOliverFERFriends...RockVirusUSASmartphoneFinskaTenisiceHarry PotterVanilijaBurek sa siromBatman
18MoreZagrebVodaPsiEuropaRadioMessiGibonniFERBig Bang Theory...RockBakterijaUSASmartphoneFinskaTenisiceHarry PotterČokoladaBurek sa siromBatman
19MoreZagrebSokPsiEuropaTelevizijaMessiOliverFERFriends...Elektronska glazbaBakterijaUSASmartphoneFinskaTenisiceGospodar prstenovaČokoladaBurek s mesomBatman
\n", "

20 rows × 101 columns

\n", "
" ], "text/plain": [ " Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 \\\n", "0 More Zagreb Sok Psi Europa Televizija Messi Gibonni FER \n", "1 More Zagreb Voda Psi Europa Televizija Messi Gibonni FER \n", "2 More Zagreb Voda Psi Europa Televizija Messi Gibonni FER \n", "3 More Split Voda Psi Europa Televizija Ronaldo Oliver FER \n", "4 More Zagreb Voda Psi Europa Televizija Ronaldo Oliver FER \n", "5 More Zagreb Sok Psi USA Televizija Ronaldo Gibonni FER \n", "6 More Zagreb Voda Psi Europa Televizija Ronaldo Gibonni FER \n", "7 More Zagreb Voda Psi Europa Televizija Messi Oliver FER \n", "8 Planina Zagreb Voda Psi Europa Televizija Ronaldo Oliver FER \n", "9 More Zagreb Sok Psi Europa Televizija Ronaldo Gibonni FER \n", "10 More Zagreb Voda Psi Europa Televizija Messi Gibonni FER \n", "11 More Zagreb Voda Psi Europa Televizija Ronaldo Gibonni FER \n", "12 More Zagreb Voda Mačke USA Televizija Ronaldo Gibonni FER \n", "13 More Zagreb Voda Psi Europa Radio Ronaldo Oliver FER \n", "14 More Zagreb Voda Psi USA Televizija Messi Gibonni FER \n", "15 More Zagreb Voda Psi Europa Radio Messi Gibonni FER \n", "16 Planina Zagreb Voda Mačke Europa Televizija Messi Oliver FER \n", "17 More Zagreb Sok Psi Europa Televizija Messi Oliver FER \n", "18 More Zagreb Voda Psi Europa Radio Messi Gibonni FER \n", "19 More Zagreb Sok Psi Europa Televizija Messi Oliver FER \n", "\n", " Q10 ... Q92 Q93 Q94 \\\n", "0 Friends ... Elektronska glazba Virus Kuba \n", "1 Big Bang Theory ... Rock Virus USA \n", "2 Friends ... Rock Virus USA \n", "3 Friends ... Elektronska glazba Bakterija USA \n", "4 Friends ... Rock Virus Kuba \n", "5 Friends ... Rock Bakterija USA \n", "6 Friends ... Rock Virus Kuba \n", "7 Big Bang Theory ... Rock Bakterija Kuba \n", "8 Big Bang Theory ... Rock Virus Kuba \n", "9 Friends ... Elektronska glazba Virus Kuba \n", "10 Big Bang Theory ... Rock Virus USA \n", "11 Friends ... Rock Bakterija USA \n", "12 Big Bang Theory ... Rock Virus USA \n", "13 Friends ... Elektronska glazba Virus USA \n", "14 Big Bang Theory ... Rock Virus Kuba \n", "15 Friends ... Rock Bakterija USA \n", "16 Friends ... Rock Bakterija Kuba \n", "17 Friends ... Rock Virus USA \n", "18 Big Bang Theory ... Rock Bakterija USA \n", "19 Friends ... Elektronska glazba Bakterija USA \n", "\n", " Q95 Q96 Q97 Q98 Q99 \\\n", "0 Smartphone Finska Tenisice Gospodar prstenova Čokolada \n", "1 Smartphone Italija Tenisice Gospodar prstenova Čokolada \n", "2 Smartphone Italija Tenisice Gospodar prstenova Vanilija \n", "3 Smartphone Finska Tenisice Harry Potter Čokolada \n", "4 Smartphone Italija Cipele Gospodar prstenova Čokolada \n", "5 Smartphone Italija Tenisice Harry Potter Vanilija \n", "6 Smartphone Finska Tenisice Gospodar prstenova Vanilija \n", "7 Obični mobitel Finska Tenisice Gospodar prstenova Čokolada \n", "8 Smartphone Finska Tenisice Gospodar prstenova Čokolada \n", "9 Smartphone Finska Tenisice Gospodar prstenova Čokolada \n", "10 Smartphone Finska Tenisice Harry Potter Čokolada \n", "11 Obični mobitel Finska Tenisice Harry Potter Čokolada \n", "12 Smartphone Finska Tenisice Gospodar prstenova Čokolada \n", "13 Smartphone Italija Tenisice Gospodar prstenova Vanilija \n", "14 Smartphone Finska Tenisice Harry Potter Čokolada \n", "15 Smartphone Finska Cipele Gospodar prstenova Čokolada \n", "16 Obični mobitel Finska Tenisice Gospodar prstenova Vanilija \n", "17 Smartphone Finska Tenisice Harry Potter Vanilija \n", "18 Smartphone Finska Tenisice Harry Potter Čokolada \n", "19 Smartphone Finska Tenisice Gospodar prstenova Čokolada \n", "\n", " Q100 Q101 \n", "0 Burek s mesom Batman \n", "1 Burek s mesom Batman \n", "2 Burek s mesom Batman \n", "3 Burek s mesom Batman \n", "4 Burek s mesom Batman \n", "5 Burek sa sirom Superman \n", "6 Burek s mesom Superman \n", "7 Burek sa sirom Superman \n", "8 Burek s mesom Superman \n", "9 Burek s mesom Batman \n", "10 Burek s mesom Superman \n", "11 Burek s mesom Batman \n", "12 Burek sa sirom Batman \n", "13 Burek sa sirom Batman \n", "14 Burek s mesom Batman \n", "15 Burek s mesom Batman \n", "16 Burek s mesom Batman \n", "17 Burek sa sirom Batman \n", "18 Burek sa sirom Batman \n", "19 Burek s mesom Batman \n", "\n", "[20 rows x 101 columns]" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "q101[:20]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Q: Voli li onaj tko preferira Messija, Batmana i Tenisice više pse ili mačke?" ] }, { "cell_type": "code", "execution_count": 41, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Q7Q101Q97Q4
0MessiBatmanTenisicePsi
1MessiBatmanTenisicePsi
2MessiBatmanTenisicePsi
3RonaldoBatmanTenisicePsi
4RonaldoBatmanCipelePsi
5RonaldoSupermanTenisicePsi
6RonaldoSupermanTenisicePsi
7MessiSupermanTenisicePsi
8RonaldoSupermanTenisicePsi
9RonaldoBatmanTenisicePsi
10MessiSupermanTenisicePsi
11RonaldoBatmanTenisicePsi
12RonaldoBatmanTenisiceMačke
13RonaldoBatmanTenisicePsi
14MessiBatmanTenisicePsi
15MessiBatmanCipelePsi
16MessiBatmanTenisiceMačke
17MessiBatmanTenisicePsi
18MessiBatmanTenisicePsi
19MessiBatmanTenisicePsi
\n", "
" ], "text/plain": [ " Q7 Q101 Q97 Q4\n", "0 Messi Batman Tenisice Psi\n", "1 Messi Batman Tenisice Psi\n", "2 Messi Batman Tenisice Psi\n", "3 Ronaldo Batman Tenisice Psi\n", "4 Ronaldo Batman Cipele Psi\n", "5 Ronaldo Superman Tenisice Psi\n", "6 Ronaldo Superman Tenisice Psi\n", "7 Messi Superman Tenisice Psi\n", "8 Ronaldo Superman Tenisice Psi\n", "9 Ronaldo Batman Tenisice Psi\n", "10 Messi Superman Tenisice Psi\n", "11 Ronaldo Batman Tenisice Psi\n", "12 Ronaldo Batman Tenisice Mačke\n", "13 Ronaldo Batman Tenisice Psi\n", "14 Messi Batman Tenisice Psi\n", "15 Messi Batman Cipele Psi\n", "16 Messi Batman Tenisice Mačke\n", "17 Messi Batman Tenisice Psi\n", "18 Messi Batman Tenisice Psi\n", "19 Messi Batman Tenisice Psi" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "q101[['Q7','Q101','Q97','Q4']][:20]" ] }, { "cell_type": "code", "execution_count": 42, "metadata": { "collapsed": true }, "outputs": [], "source": [ "X = q101[['Q7','Q101','Q97']][:20].as_matrix()\n", "y = q101['Q4'][:20].as_matrix()" ] }, { "cell_type": "code", "execution_count": 43, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Apriorna vjerojatnost klase: P(C_j)\n", "def class_prior(y, label): \n", " N = len(y)\n", " return len(y[y==label]) / float(len(y))\n", "\n", "# Izglednost klase: P(x_i|C_j)\n", "def class_likelihood(X, y, feature_ix, value, label):\n", " N = len(X)\n", " y_ix = y==label\n", " Nj = len(y[y_ix])\n", " Nkj = len(X[sp.logical_and(y_ix, X[:,feature_ix]==value)])\n", " return (Nkj + 1) / (float(Nj) + 2) # Laplace smoothed" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.9" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p_Psi = class_prior(y, 'Psi')\n", "p_Psi" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.1" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p_Macke = class_prior(y, 'Mačke')\n", "p_Macke" ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.55" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p_Messi_Psi = class_likelihood(X, y, 0, 'Messi', 'Psi')\n", "p_Messi_Psi" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.45" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p_Ronaldo_Psi = class_likelihood(X, y, 0, 'Ronaldo', 'Psi')\n", "p_Ronaldo_Psi" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Q: Klasifikacija za $\\mathbf{x} = (\\text{Messi}, \\text{Batman}, \\text{Tenisice})$" ] }, { "cell_type": "code", "execution_count": 48, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.29452500000000004" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "class_prior(y, 'Psi') \\\n", " * class_likelihood(X, y, 0, 'Messi', 'Psi') \\\n", " * class_likelihood(X, y, 1, 'Batman', 'Psi') \\\n", " * class_likelihood(X, y, 2, 'Tenisice', 'Psi') \\" ] }, { "cell_type": "code", "execution_count": 49, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.028125000000000004" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "class_prior(y, 'Mačke') \\\n", " * class_likelihood(X, y, 0, 'Messi', 'Mačke') \\\n", " * class_likelihood(X, y, 1, 'Batman', 'Mačke') \\\n", " * class_likelihood(X, y, 2, 'Tenisice', 'Mačke') \\" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Polunaivan klasifikator*\n", "\n", "### Ideja\n", "\n", "* Ako, na primjer, **ne vrijedi** $x_2\\bot x_3|\\mathcal{C}_j$, onda je bolje umjesto:\n", "$$\n", "P(\\mathcal{C}_j|x_1,x_2,x_3)\\ \\propto\\ P(x_1|\\mathcal{C}_j)P(\\color{red}{x_2}|\\mathcal{C}_j)P(\\color{red}{x_3}|\\mathcal{C}_j)P(\\mathcal{C}_j)\n", "$$\n", "faktorizirati kao:\n", "$$\n", " P(\\mathcal{C}_j|x_1,x_2,x_3)\\ \\propto\\ P(x_1|\\mathcal{C}_j)P(\\color{red}{x_2,x_3}|\\mathcal{C}_j)P(\\mathcal{C}_j)\n", "$$\n", "što je jednako:\n", "$$\n", " P(\\mathcal{C}_j|x_1,x_2,x_3)\\ \\propto\\ P(x_1|\\mathcal{C}_j)P(x_2|\\mathcal{C}_j)P(\\color{red}{x_3|x_2},\\mathcal{C}_j)P(\\mathcal{C}_j)\n", "$$\n", "\n", "\n", "* Q: Prednosti? \n", "\n", "\n", "* Q: Broj parametara?\n", "\n", "\n", "\n", "### Koje varijable združiti?\n", "\n", "\n", "* Problem pretraživanja prostora stanja:\n", "$$\n", " \\begin{align*}\n", " &\\{ \\{a\\}, \\{b\\}, \\{c\\} \\}\\\\\n", " &\\{ \\{a\\}, \\{b, c\\} \\}\\\\\n", " &\\{ \\{b\\}, \\{a, c\\} \\}\\\\\n", " &\\{ \\{c\\}, \\{a, b\\} \\}\\\\\n", " &\\{ \\{a, b, c\\} \\}\n", " \\end{align*}\n", "$$\n", "Bellov broj: $B_3=5, B_{4} = 15, B_{5} = 52, \\dots, B_{10} = 115975, \\dots$\n", "\n", "\n", "* Treba nam **heurističko pretraživanje** koje će naći optimalno združivanje (broj stanja = broj particija)\n", "\n", "\n", "* Kriterij združivanja varijabli? Dvije mogućnosti:\n", " * Mjerimo **zavisnost** varijabli i združujemo one varijable koje su **najviše zavisne**\n", " * Algoritmi TAN i $k$-DB\n", " * Unakrsna provjera: Isprobavamo **točnost** modela na skupu za provjeru i združujemo one varijable koje **povećavaju točnost**\n", " * Algoritam FSSJ\n", "\n", "\n", "* Q: Veza s odabirom modela?\n", "\n", "\n", "### Mjerenje zavisnosti varijabli: Uzajamna informacija\n", "\n", "* Mjera **uzajamne informacije** (uzajamnog sadržaja informacije) (engl. *mutual information*)\n", "\n", "\n", "* Entropija\n", "$$\n", "H(P) = -\\sum_x P(x) \\ln P(x)\n", "$$\n", "\n", "* Unakrsna entropija:\n", "$$\n", "H(P,Q) = -\\sum_x P(x) \\ln Q(x)\n", "$$\n", "\n", "* Relativa entropija $P(x)$ u odnosu na $Q(x)$:\n", "$$\n", "\\begin{align*}\n", "H(P,Q) - H(P) =& \n", "-\\sum_x P(x)\\ln Q(x) - \\big(-\\sum_x P(x)\\ln P(x) \\big) =\\\\\n", "&-\\sum_x P(x)\\ln Q(x) + \\sum_x P(x)\\ln P(x) =\\\\\n", "&-\\sum_x P(x)\\ln \\frac{P(x)}{Q(x)} = \\color{red}{D_{\\mathrm{KL}}(P||Q)}\\\\\n", "\\end{align*}\n", "$$\n", "$\\Rightarrow$ **Kullback-Leiblerova divergencija**\n", "\n", "\n", "* **Uzajamna informacija** ili **uzajamni sadržaj informacije** (engl. *mutual information*):\n", "$$\n", "I(x,y) = D_\\mathrm{KL}\\big(P(x,y) || P(x) P(y)\\big) = \\sum_{x,y} P(x,y) \\ln\\frac{P(x,y)}{P(x)P(y)}\n", "$$\n", "\n", "* $I(x, y) = 0$ akko su $x$ i $y$ nezavisne varijable, inače $I(x,y) > 0$" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from sklearn.metrics import mutual_info_score" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [], "source": [ "X = stats.bernoulli.rvs(0.5, size=100)\n", "Y = stats.bernoulli.rvs(0.2, size=100)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.0015583988584468855" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mutual_info_score(X, Y)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.69134609900173971" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mutual_info_score(X, X)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [], "source": [ "X = stats.bernoulli.rvs(0.5, size=100)\n", "Y = [(sp.random.randint(2) if x==1 else 0) for x in X ]" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "0.23063664054386707" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mutual_info_score(X, Y)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Uzajamnu informaciju lako možemo proširiti na **uvjetnu uzajamnu informaciju** (engl. *conditional mutual information*):\n", "\n", "$$\n", "I(x,y\\color{red}{|z}) = \\sum_z P(z_k) I(x,y|z) = \\color{red}{\\sum_z}\\sum_x\\sum_y P(x,y,\\color{red}{z}) \\ln\\frac{P(x,y\\color{red}{|z})}{P(x\\color{red}{|z})P(y\\color{red}{|z})}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Bayesov klasifikator za kontinuirane značajke" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Jednodimenzijski slučaj\n", "\n", "* Izglednost klase $p(\\mathbf{x}|\\mathcal{C}_j)$ modeliramo Gaussovom razdiobom:\n", "\n", "$$\n", "\\mathbf{x}|\\mathcal{C}_j \\sim \\mathcal{N}(\\mu_j,\\sigma^2_j)\n", "$$\n", "\n", "\\begin{equation*}\n", "p(x|\\mathcal{C}_j) = \n", "\\frac{1}{\\sqrt{2\\pi}\\sigma_j}\\exp\\Big\\{-\\frac{(x-\\mu_j)^2}{2\\sigma^2_j}\\Big\\}\n", "\\end{equation*}" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "likelihood_c1 = stats.norm(110, 5)\n", "likelihood_c2 = stats.norm(150, 20)\n", "likelihood_c3 = stats.norm(180, 10)\n", "xs = linspace(70, 200, 200)\n", "plt.plot(xs, likelihood_c1.pdf(xs), label='p(x|C_1)')\n", "plt.plot(xs, likelihood_c2.pdf(xs), label='p(x|C_2)')\n", "plt.plot(xs, likelihood_c3.pdf(xs), label='p(x|C_3)')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "* **NB:** Pretpostavljamo da je razdioba primjera unutar svake klase unimodalna (modelirana jednom Gaussovom razdiobom)\n", " * Inače nam treba mješavina Gaussovih razdiobi (GMM)\n", " \n", " \n", "* Model:\n", "$$\n", " h_j(x) = p(x,\\mathcal{C}_j) = p(x|\\mathcal{C}_j)P(\\mathcal{C}_j)\n", "$$\n", "\n", "* Radi matematičke jednostavnosti, prelazimo u logaritamsku domenu:\n", "\\begin{align*}\n", " h_j(x) & = \\ln p(x|\\mathcal{C}_j) + \\ln P(\\mathcal{C}_j)\\\\\n", " &= \n", " \\color{gray}{-\\frac{1}{2}\\ln 2\\pi}\n", " - \\ln\\sigma_j\n", " - \\frac{(x-\\mu_j)^2}{2\\sigma^2_j} + \\ln P(\\mathcal{C}_j)\\\\\n", "\\end{align*}\n", "\n", "* Uklanajnje konstante (ne utječe na maksimizaciju):\n", "$$\n", " h_j(x|\\boldsymbol{\\theta}_j) = - \\ln\\hat{\\sigma}_j\n", " - \\frac{(x-\\hat{\\mu}_j)^2}{2\\hat{\\sigma}^2_j} + \\ln\\hat{P}(\\mathcal{C}_j)\n", "$$\n", "gdje je vektor parametara jednak\n", "$$\n", "\\boldsymbol{\\theta}_j=(\\mu_j, \\sigma_j, P(\\mathcal{C}_j))\n", "$$\n", "\n", "* ML-procjene parametara:\n", "\n", "\\begin{align*}\n", "\\hat{\\mu}_j &= \\frac{1}{N_j}\\sum_{i=1}^N \\mathbf{1}\\{y^{(i)} = \\mathcal{C}_j\\} x^{(i)}\\\\\n", "\\hat{\\sigma}^2_j &= \\frac{1}{N_j}\\sum_{i=1}^N\\mathbf{1}\\{y^{(i)} = \\mathcal{C}_j\\}(x^{(i)}-\\hat{\\mu}_j)^2 \\\\\n", "\\hat{P}(\\mathcal{C}_j) &= \\frac{N_j}{N}\\\\\n", "\\end{align*}\n" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "likelihood_c1 = stats.norm(100, 5)\n", "likelihood_c2 = stats.norm(150, 20)\n", "\n", "plt.plot(xs, likelihood_c1.pdf(xs), label='p(x|C_1)')\n", "plt.plot(xs, likelihood_c2.pdf(xs), label='p(x|C_2)')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "p_c1 = 0.3\n", "p_c2 = 0.7\n", "\n", "def joint_x_c1(x) : return likelihood_c1.pdf(x) * p_c1\n", "def joint_x_c2(x) : return likelihood_c2.pdf(x) * p_c2\n", "\n", "plt.plot(xs, joint_x_c1(xs), label='p(x, C_1)')\n", "plt.plot(xs, joint_x_c2(xs), label='p(x, C_2)')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEACAYAAABcXmojAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XeY1OW5//H3zQIqQkQU6QQEDIgNo0h+RtkYNIgFNQUx\nBtREUQMaPbFwNAEVcyTGEuRAMIBBVNRjiw0VyxorlggiRYogfZVmEAUWeH5/PDPrsO7sbJmZb5nP\n67rmYuZb5nvPMjP3PN2cc4iIiADUCzoAEREJDyUFEREpp6QgIiLllBRERKSckoKIiJRTUhARkXIZ\nk4KZ9TWzBWa2yMyuSXPMmMT+2WbWI7GtnZm9YmZzzewjM7ss5fiRZrbSzD5I3Ppm7yWJiEht1a9q\np5kVAWOBPsAq4F0ze9I5Nz/lmH5AZ+dcFzM7BhgP9ALKgCucc7PMrDHwvpm94JxbADjgdufc7bl5\nWSIiUhuZSgo9gcXOuWXOuTLgQaB/hWNOB6YAOOdmAk3NrIVzbq1zblZi+5fAfKBNynmWjRcgIiLZ\nkykptAFWpDxeye5f7OmOaZt6gJl1AHoAM1M2D0tUN00ys6Y1iFlERHIkU1Ko7hwYFX/1l5+XqDp6\nBLg8UWIAX8XUETgCWAPcVs3riIhIDlXZpoBvR2iX8rgdviRQ1TFtE9swswbAo8B9zrknkgc45z5L\n3jezicBTlV3czDQxk4hIDTnnal09n6mk8B7Qxcw6mFlDYADwZIVjngQGAZhZL2CTc67UzAyYBMxz\nzt2ZeoKZtUp5eCYwJ10AzrlI3kaMGBF4DIo/+DgUfzRvUY6/rqosKTjndpjZUOB5oAiY5Jybb2ZD\nEvsnOOeeNbN+ZrYY2AKcnzj9WOBc4EMz+yCxbbhz7jlgtJkdga9mWgoMqfMrERGROstUfYRzbjow\nvcK2CRUeD63kvNdJUxJxzg2qWZiST6+/DpMnw0UXQevWQUcjIvmkEc05UlxcHHQItbJqFQwYAN/7\nXjF9+sDnnwcdUe1E9e+fpPiDFfX468KyUQeVK2bmwhxfHJ15Jhx5JPzhD76ksP/+8Kc/BR2ViFSX\nmeHq0NCspCDlvv4aDjgAVqyApk3h7bfhwgthTtpuACLB8P1YpLLvx7omhYxtClI4SkqgRw+fEAB6\n9vTVR598AgceGGhoIt9S6D8Yc5UY1aYg5Z57Dk4++ZvH9erBqafCU5WOIhGROFJSkHLTp0PfCvPV\nnn46PFlxZIqIxJbaFASAJUvghz+E1ashtVT61Ve+sXnDBthzz+DiE0mVqDcPOoxApfsb1LVNQSUF\nAeDNN+H443dPCACNGkGXLjB3bjBxicTJtm3b6N69O6WlpRmPHTt2LNdee20eotqdkoIAvofR4YdX\nvu+II2DWrPzGIxJHd999N71796ZFixYZj73wwgu5//77+TzPg4WUFASADz+EQw+tfJ+Sgkh2TJgw\ngV/96lfVOnaPPfbg5JNP5t57781xVLtTUhDAlxQOO6zyfUoKItXXoUMHbrnlFrp3706zZs244IIL\n2LZtG8uXL+eTTz7hmGOOAWD79u306NGDsWPHArBz506OPfZYRo0aVf5cxcXFPPPMM3mNX+MUhPXr\n4csvoX37yvcffjjMng27dvluqiJStQceeIAXXniBRo0acdpppzFq1Ch69erFgQceSL3Eh6hhw4bc\nd999HHfccfTp04dHH30U5xzXXXdd+fN07dqV2bNn5zV2JQVhzhxfdZRuLEyzZrDvvrB0KXTqlN/Y\nRGorG2O7atPBycwYOnQobdr4RSqvu+46hg0bRrdu3WjSpMlux3bv3p3rr7+e/v37s27dOt55553d\nBqU1adKEL774ok6voab0u0/48MP0VUdJqkKSqHGu7rfaatfum3XH2rdvz+rVq9l3333ZvHnzt44d\nNGgQy5cvp1+/fnSq8Ktr8+bN7LPPPrUPpBaUFKTKRuakww9XUhCpruXLl+92v02bNhx22GEsXbqU\nXbt27XbspZdeyqmnnspzzz3HG2+8sdu++fPnc8QRR+Ql5iQlBSmvPqpK166waFF+4hGJMucc48aN\nY9WqVWzYsIGbb76ZAQMG0KZNGzp37szMmTPLj506dSoffPABU6ZMYcyYMQwePJgtW7aU73/11Vc5\nOXXumTxQUhAWLfJf+lXp3BkWL85PPCJRZmacc845nHTSSXTq1IkuXbpw/fXXAzBkyBCmTp0K+BLE\nFVdcwb333kujRo0YOHAgRx11FFdeeSUAW7duZfr06QwePDi/8Yd5qLimuci9jRvhu9+FL76oumFu\nwwY/U+rGjdlpwBOpizBPc9GxY0cmTZrECSec8K19yW6oL7/8csYBbGPHjmXlypXccsstle7P1TQX\n6n1U4JLTYmf6om/WzHdHXb/ez4UkIjXXsGFD5lZzzpihQ7+1ynFeqPqowC1ZUv1upqpCEok/lRQK\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def p_x(x) : return joint_x_c1(x) + joint_x_c2(x)\n", "\n", "plt.plot(xs, p_x(xs), label='p(x)')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def posterior_c1(x) : return joint_x_c1(x) / p_x(x)\n", "def posterior_c2(x) : return joint_x_c2(x) / p_x(x)\n", "\n", "plt.plot(xs, posterior_c1(xs), label='p(C_1|x)')\n", "plt.plot(xs, posterior_c2(xs), label='p(C_2|x)')\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Višedimenzijski slučaj\n", "\n", "* Izglednost klase:\n", "\n", "\\begin{equation*}\n", "p(\\mathbf{x}|\\mathcal{C}_j) = \n", "\\frac{1}{(2\\pi)^{n/2}|\\boldsymbol{\\Sigma}_j|^{1/2}}\n", "\\exp\\Big\\{-\\frac{1}{2}(\\mathbf{x}^{(i)}-\\boldsymbol{\\mu}_j)^{\\mathrm{T}}\\boldsymbol{\\Sigma}_j^{-1}(\\mathbf{x}^{(i)}-\\boldsymbol{\\mu}_j)\\Big\\}\n", "\\end{equation*}\n", "\n", "* Model:\n", "$$\n", "\\begin{align*}\n", " h_j(\\mathbf{x}) &= \\ln p(\\mathbf{x}|\\mathcal{C}_j) + \\ln P(\\mathcal{C}_j)\\\\\n", "&= \n", "\\color{gray}{-\\frac{n}{2}\\ln 2\\pi}\n", " - \\frac{1}{2}\\ln|\\boldsymbol{\\Sigma}_j|\n", " - \\frac{1}{2}(\\mathbf{x}-\\boldsymbol{\\mu}_j)^\\mathrm{T}\\boldsymbol{\\Sigma}_j^{-1}(\\mathbf{x}-\\boldsymbol{\\mu}_j) + \\ln P(\\mathcal{C}_j)\\\\\n", " &\\Rightarrow \n", " - \\frac{1}{2}\\ln|\\boldsymbol{\\Sigma}_j|\n", " - \\frac{1}{2}(\\mathbf{x}-\\boldsymbol{\\mu}_j)^\\mathrm{T}\\boldsymbol{\\Sigma}_j^{-1}(\\mathbf{x}-\\boldsymbol{\\mu}_j) + \\ln P(\\mathcal{C}_j)\\\\\n", "\\end{align*}\n", "$$\n", "\n", "\n", "* Interpretacija za $\\boldsymbol{\\mu}$ i $\\boldsymbol{\\Sigma}$:\n", " * $\\boldsymbol{\\mu}_j$ - prototipna vrijednost primjera u klasi $\\mathcal{C}_j$\n", " * $\\boldsymbol{\\Sigma}_j$ - količina šuma i korelacija između izvora šuma unutar $\\mathcal{C}_j$\n", " \n", "\n", "* Q: Broj parametara?\n", "\n", "\n", "* ML-procjene parametara:\n", "\n", "\\begin{align*}\n", "\\hat{\\boldsymbol{\\mu}}_j &= \\frac{1}{N_j}\\sum_{i=1}^N\\mathbf{1}\\{y^{(i)}=\\mathcal{C}_j\\}\\mathbf{x}^{(i)}\\\\\n", "\\hat{\\boldsymbol{\\Sigma}}_j &= \\frac{1}{N_j}\\sum_{i=1}^N\n", "\\mathbf{1}\\{y^{(i)}=\\mathcal{C}_j\\}(\\mathbf{x}^{(i)}-\\hat{\\boldsymbol{\\mu}}_j)(\\mathbf{x}^{(i)}-\\hat{\\boldsymbol{\\mu}}_j)^\\mathrm{T}\\\\\n", "\\hat{P}(\\mathcal{C}_j) &= \\frac{N_j}{N}\n", "\\end{align*}\n", "\n", "\n", "### O kovarijacijskoj matrici\n", "\n", "\\begin{equation*}\n", "\\boldsymbol{\\Sigma} = \\begin{pmatrix}\n", "\\mathrm{Var}(x_1) & \\mathrm{Cov}(x_1, x_2) & \\dots & \\mathrm{Cov}(x_1,x_n)\\\\\n", "\\mathrm{Cov}(x_2, x_1) & \\mathrm{Var}(x_2) & \\dots & \\mathrm{Cov}(x_2,x_n)\\\\\n", "\\vdots & \\vdots & \\ddots & \\vdots \\\\\n", "\\mathrm{Cov}(x_n,x_1) & \\mathrm{Cov}(x_n,x_2) & \\dots & \\mathrm{Var}(x_n)\\\\\n", "\\end{pmatrix}\n", "\\end{equation*}\n", "\n", "\n", "\n", "* $\\boldsymbol{\\Sigma}$ je simetrična\n", " \n", " \n", "* $\\boldsymbol{\\Sigma}$ uvijek **pozitivno semidefinitna**\n", " * $\\Delta^2 = \\mathbf{x}^{\\mathrm{T}}\\boldsymbol{\\Sigma}\\mathbf{x}\\geq 0$\n", " * za Mahalanobisovu udaljenost vrijedi $\\Delta\\geq 0$\n", "\n", "\n", "* Ali, da bi PDF bila dobro definirana, $\\boldsymbol{\\Sigma}$ mora biti **pozitivno definitna**: \n", " * $\\Delta^2 = \\mathbf{x}^\\mathrm{T}\\boldsymbol{\\Sigma}\\mathbf{x} > 0$ za ne-nul vektor $\\mathbf{x}$\n", "\n", "\n", "* $\\boldsymbol{\\Sigma}$ je pozitivno definitna $\\Rightarrow$ $\\boldsymbol{\\Sigma}$ je **nesingularna**: $|\\boldsymbol{\\Sigma}|>0$ i postoji $\\boldsymbol{\\Sigma}^{-1}$ (obrat ne vrijedi!)\n", "\n", "\n", "* Ako $\\boldsymbol{\\Sigma}$ nije pozitivno definitna, najčešći uzroci su\n", " * $\\mathrm{Var}(x_i)=0$ (beskorisna značajka)\n", " * $\\mathrm{Cov}(x_i,x_j)=1$ (redundantan par značajki)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [], "source": [ "mu_1 = [-2, 1]\n", "mu_2 = [2, 0]\n", "covm_1 = sp.array([[1, 1], [1, 3]])\n", "covm_2 = sp.array([[2, -0.5], [-0.5, 1]])\n", "p_c1 = 0.4\n", "p_c2 = 0.6\n", "\n", "likelihood_c1 = stats.multivariate_normal(mu_1, covm_1)\n", "likelihood_c2 = stats.multivariate_normal(mu_2, covm_2)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [], "source": [ "x = np.linspace(-5, 5)\n", "y = np.linspace(-5, 5)\n", "X, Y = np.meshgrid(x, y)\n", "XY = np.dstack((X,Y))" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nfwd9tmD2Y2+zwPxM+LkA/hkCU5qV/TOeLS8fnloAKzeZFdz6XuZe+4uKbNx22woaNvTn1VevLb/4\nw0rTIRkAACAASURBVFn8/OpQWOh+8WV/X7C4MDDJDwML9nJ6/CmtD2lQQj4+OOhr928AeekQ4Lwb\nC6BekyYk7txJ7ylTXDoPzojdTsTSpe71mWcnQ13Hzw8EoYRcDAc3IcXYsSFOiysUFLlXAf60oiIb\nvr7eUxCsUoFbRGyGYTwMfI85wmSRiNT4B5Nlef75IdSt68uAAYtYs+Y2unVzEH3PEdgUflgM/3kH\neo6HN56BCdc6fs2gBrCzA6zOgxfS4Z/pZhfC3xpDg3J+fwwMmpf+G8ggiinmBPEkkkg88exlL5lk\nYMVKIEEEEUQDGuDzp3++1KEOBRSQRy655JJHLnnkYcFCAAG0pBVtactwRtCaNi7f2VsFvswxA3au\nHR4Pgs/alP8znW3jDvMu+6q+sP9rcwimO3Jzixg3bhlNm9Zj2bKb8PFx7Q+xS5dg5szZ4d6bAT06\nwK8x0MNJncvLCGAvebQup9q6gS8N6UsOP9IMB784fW6FbW/DhAUute/KmTNZNGAAOxcupN/UqS69\npjxFubl8M2kSeSkp3PK14+F9f7DpVRhwr8NdLETgQ2P8HTwb+Q0LF1GPek5GMEcch0vcrOYGEBNz\nirCwYPdf6CnlDTepqoUaOhywPEuX7pfmzefKli2xFXr9zv0inUeLjHlQ5IiLh7DbRb7LFbnmuEjT\nSJE7E8z/OxsiVx6LWCRBTsh+2Sc75WfZIT/Jj7JNtsgm+UE2yHpZJ9/JGtksm+QX2S1REimJkiDZ\nki02F5L5lCXFKjIn3cxPPjRWZFWOORnJFVk5Ivc+J9JumMg6N2e9nZaeni99+rwr99+/Umw295Iu\nWSzFUq/ei1JU5N7P/voqs+qNM0skVZ4TB9kURSRdvpRj8pjjA2UlmbmvXUidetqp2FiZ16qVrH3k\nEclNSXH5dX9oW1SUvBEWJqseeEBsRW5kIcxOMdub7XjizAmZLUniOJPbG5Ikc53NKhWRN9eI3OMk\nKVxZrrrqwz9VQ/I0dOakezZujJGQkDmybJnzyjNlKSwSmfO+SFB/kSfmmIHJVSlWkYWZIv2OiYRE\nmbMwf6rgJMfzyW4X2WMR+VeaSJ+YMxecPW7UILDbz0xff/Bf7mX5O1tcXJZ07vy6zJy5scLVTMLC\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.contour(X, Y, likelihood_c1.pdf(XY) * p_c1)\n", "plt.contour(X, Y, likelihood_c2.pdf(XY) * p_c2);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Granica između klasa $\\mathcal{C}_1$ i $\\mathcal{C}_2$ je:\n", "$$\n", "h_1(\\mathbf{x}) = h_2(\\mathbf{x})\n", "$$\n", "tj.\n", "$$\n", "h_1(\\mathbf{x}) - h_2(\\mathbf{x}) = 0\n", "$$" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.contour(X, Y, likelihood_c1.pdf(XY) * p_c1, cmap='gray_r')\n", "plt.contour(X, Y, likelihood_c2.pdf(XY) * p_c2, cmap='gray_r')\n", "plt.contour(X, Y, likelihood_c1.pdf(XY) * p_c1 - likelihood_c2.pdf(XY) * p_c2, levels=[0], colors='r', linewidths=2);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Granca je nelinearna jer postoji član koji kvadratno ovisi o $\\mathbf{x}$ (i taj član ne iščezava kada računamo razliku $h_1(x)-h_2(x)$):" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\\begin{align*}\n", " h_j(\\mathbf{x}) &= \n", "\\color{gray}{-\\frac{n}{2}\\ln 2\\pi}\n", " - \\frac{1}{2}\\ln|\\boldsymbol{\\Sigma}_j|\n", " - \\frac{1}{2}(\\mathbf{x}-\\boldsymbol{\\mu}_j)^\\mathrm{T}\\boldsymbol{\\Sigma}_j^{-1}(\\mathbf{x}-\\mathbf{\\mu}_j) + \\ln P(\\mathcal{C}_j)\\\\\n", " &\\Rightarrow\n", " - \\frac{1}{2}\\ln|\\boldsymbol{\\Sigma}_j|\n", " - \\frac{1}{2}\\big(\\color{red}{\\mathbf{x}^\\mathrm{T}\\boldsymbol{\\Sigma}_j^{-1}\\mathbf{x}} -2\\mathbf{x}^\\mathrm{T}\\boldsymbol{\\Sigma}_j^{-1}\\boldsymbol{\\mu}_j +\\boldsymbol{\\mu}_j^\\mathrm{T}\\boldsymbol{\\Sigma}_j^{-1}\\boldsymbol{\\mu}_j\\big) + \\ln P(\\mathcal{C}_j)\n", "\\end{align*}\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "* Kvadratni model ima previše parametara: $\\mathcal{O}(n^2)$\n", "\n", "\n", "* Pojednostavljenja $\\Rightarrow$ dodatne induktivne pretpostavke?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1. pojednostavljenje: dijeljena kovarijacijska matrica" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\n", "\\hat{\\boldsymbol{\\Sigma}} = \\sum_j \\hat{P}(\\mathcal{C}_j)\\hat{\\boldsymbol{\\Sigma}}_j\n", "$$\n", "\n", "\\begin{align*}\n", "h_j(\\mathbf{x}) &= \n", " \\color{gray}{- \\frac{1}{2}\\ln|\\boldsymbol{\\Sigma}|}\n", " - \\frac{1}{2}(\\color{gray}{\\mathbf{x}^\\mathrm{T}\\boldsymbol{\\Sigma}^{-1}\\mathbf{x}} -2\\mathbf{x}^\\mathrm{T}\\boldsymbol{\\Sigma}^{-1}\\boldsymbol{\\mu}_j\n", " +\\boldsymbol{\\mu}_j^\\mathrm{T}\\boldsymbol{\\Sigma}^{-1}\\boldsymbol{\\mu}_j) + \\ln P(\\mathcal{C}_j)\\\\\n", " &\\Rightarrow\n", " \\mathbf{x}^\\mathrm{T}\\boldsymbol{\\Sigma}^{-1}\\boldsymbol{\\mu}_j -\\frac{1}{2}\\boldsymbol{\\mu}_j^\\mathrm{T}\\boldsymbol{\\Sigma}^{-1}\\boldsymbol{\\mu}_j + \\ln P(\\mathcal{C}_j)\n", "\\end{align*}\n", "\n", "\n", "* Član $\\mathbf{x}^\\mathrm{T}\\boldsymbol{\\Sigma}^{-1}\\mathbf{x}$ isti je za svaki $h_j$, pa iščezava kada računamo granicu između klasa\n", "\n", "\n", "* Dakle, dobivamo **linearan model**!\n", "\n", "\n", "* Broj parametara?" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [], "source": [ "mu_1 = [-2, 1]\n", "mu_2 = [2, 0]\n", "covm_1 = sp.array([[1, 1], [1, 3]])\n", "covm_2 = sp.array([[2, -0.5], [-0.5, 1]])\n", "p_c1 = 0.4\n", "p_c2 = 0.6\n", "\n", "covm_shared = (p_c1 * covm_1 + p_c2 * covm_2) / 2\n", "\n", "likelihood_c1 = stats.multivariate_normal(mu_1, covm_shared)\n", "likelihood_c2 = stats.multivariate_normal(mu_2, covm_shared)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nTCbs2LEDFy9exOrVq1m3uRadTodLly7hwoULuHDhAoqKihAdHQ1PT8/rUrs6Zk82NTXB09MTd999\nN+655x6MHz++Tb+yxWLBf/7zH5SXl+Pll19mHecwmUzYvn07EhMTOd1mpaWlkMlkSEtL47x+arXa\nGYXUF61uvtJl1OLuIEqlkkgkEt5tjh8/zrlNeXk52bx5M6u1YbFYyKuvvkqOHj3Kue+amhqSnp7O\nuY/OpqGhgSxbtow88cQTpK6ujnUbq9VK1q1bR/71r3+x9kkqlZJ169ZxWlDZ2dmksLCQsw82m42U\nlJR0TuKhl16yW9tLltz6vjjQarWktLSUtyBEQ0MD+fnnnzktxpKSEvLhhx+SiooK1vby8nLy/PPP\nk08++YTXMm1oaCAbNmwgjz76KBkzZgxZvHgx+eSTT8iZM2d4v0eI3aotLy8n27ZtIytWrCCpqank\niSeeIJs2bSIlJSW83zt8+DBZvnw5uXjxIus2Wq2WfPrpp+TcuXOc+zh+/DjnG5pjm6qqKs631Nsd\n0Ao4nUdbGQIJsWfGO3PmDGsbwzDkyy+/JJcuXWJtr6urI0uXLuW9YeVyOZk/fz557bXXOlS5piOY\nTCaya9cuMnnyZLJ582ZOETIYDGTDhg3kvffeY3Vj6PV6snnzZk73kUKhIPv37+cVucbGxg65ADgx\nGOwZAAFCcnJufX8s2Gw2UlZWxvsKr9PpyM8//8xZnu7q1avko48+4izxdvDgQbJ8+XLOKkuOY3zw\nwQdkwoQJ5P333yd5eXm3XDLMaDSSrKwssm7dOpKWlkZef/113kpQxcXFZMWKFZzuPZVKRdavX0+u\nXr3K2q7RaNp0meh0OlJaWnrbVQNqD1S4O5mamhrS2NjI2W6xWMivv/5KpBx1C2UyGfnoo4+ISCRi\nbb9w4QJZtmwZb3pTjUZDPvjgA3LPPfeQd999l5w9e7bdvmouGIYhIpGI7Nixg0yfPp2sWLGCXLly\nhXP7yspK8txzz5FNmzaxWsNarZZs2bKFHDlyhPWHpdfryS+//MIpUIT870HZKdb2zp32W37kSEK6\n6IeuVCo5/64Ozp07x/mG0djYSD788EPON7aDBw+SNWvWcNYzJcR+/8yZM4e89tprvPfpraDVasmr\nr75KHn30Ud6+1NfXk+XLl7OOexBCSHV1NdmwYQPng9vhf+ejsrKSaDSa9nf+NoEKdyej1+tJaWkp\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.contour(X, Y, likelihood_c1.pdf(XY) * p_c1, cmap='gray_r')\n", "plt.contour(X, Y, likelihood_c2.pdf(XY) * p_c2, cmap='gray_r')\n", "plt.contour(X, Y, likelihood_c1.pdf(XY) * p_c1 - likelihood_c2.pdf(XY) * p_c2, levels=[0], colors='r', linewidths=2);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2. pojednostavljenje: dijagonalna kovarijacijska matrica" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$\n", "\\boldsymbol{\\Sigma} = \\mathrm{diag}(\\sigma_i^2) \\quad \\Rightarrow \\quad \n", "|\\boldsymbol{\\Sigma}|=\\prod_i\\sigma_i,\\quad \n", "\\boldsymbol{\\Sigma}^{-1}=\\mathrm{diag}(1/\\sigma_i^2) \n", "$$\n", "\n", "* Izglednost klase:\n", "\\begin{align*}\n", "p(\\mathbf{x}|\\mathcal{C}_j) &= \n", "\\frac{1}{(2\\pi)^{n/2}|\\boldsymbol{\\Sigma}|^{1/2}}\n", "\\exp\\Big\\{-\\frac{1}{2}(\\mathbf{x}-\\boldsymbol{\\mu}_j)^\\mathrm{T}\\boldsymbol{\\Sigma}^{-1}(\\mathbf{x}-\\boldsymbol{\\mu}_j)\\Big\\}\\\\\n", "&=\n", "\\frac{1}{(2\\pi)^{n/2}\\color{red}{\\prod_{i=1}^n\\sigma_i}}\n", "\\exp\\Big\\{-\\frac{1}{2}\\sum_{i=1}^n\\Big(\\frac{x_i-\\mu_{ij}}{\\color{red}{\\sigma_i}}\\Big)^2\\Big\\}\\\\\n", "&= \\prod_{i=1}^n\n", "\\frac{1}{\\sqrt{2\\pi}\\sigma_i}\n", "\\exp\\Big\\{-\\frac{1}{2}(\\frac{x_i-\\mu_{ij}}{\\sigma_i}\\Big)^2\\Big\\}\n", "= \\prod_{i=1}^n\\mathcal{N}(\\mu_{ij},\\sigma_i^2)\n", "\\end{align*}\n", "\n", "\n", "* Dobili smo umnožak univarijatnih Gaussovih distribucija\n", "\n", "\n", "* **NB:** Ovo je **naivan Bayesov klasifikator** (za kontinuirane značajke)!\n", " * $x_i\\bot x_k|\\mathcal{C}_j\\ \\Rightarrow\\ \\mathrm{Cov}(x_i|\\mathcal{C}_j, x_k|\\mathcal{C}_j)=0$\n", " * $p(x|\\mathcal{C}_j) = \\prod_i p(x_i|\\mathcal{C}_j)$\n", " \n", "\n", "* Model:\n", "\\begin{align*}\n", " h_j(\\mathbf{x}) &= \\ln p(\\mathbf{x}|\\mathcal{C}_j) + \\ln P(\\mathcal{C}_j)\\\\\n", " &\\Rightarrow\n", " -\\frac{1}{2}\\sum_{i=1}^n\\Big(\\frac{x_i-\\mu_{ij}}{\\sigma_i}\\Big)^2 + \\ln \\Pr{\\mathcal{C}_j}\n", "\\end{align*}\n", "\n", "\n", "* **NB:** Računamo normirane euklidske udaljenosti (normirane sa $\\sigma_i$)\n", "\n", "\n", "* Q: Broj parametara?" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [], "source": [ "mu_1 = [-2, 1]\n", "mu_2 = [2, 0]\n", "p_c1 = 0.4\n", "p_c2 = 0.6\n", "\n", "covm_shared_diagonal = [[2,0],[0,1]]\n", "\n", "likelihood_c1 = stats.multivariate_normal(mu_1, covm_shared_diagonal)\n", "likelihood_c2 = stats.multivariate_normal(mu_2, covm_shared_diagonal)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nOwm1l5eXtHU8l+77tOOrw+EA6ORS6q6U5Ovri5+fX6eZnHt2pwj92XNJCLfdbqesrIz09HSPfIxr\na2spLCxkypQpso6rqKhg1apVzJ07l+Tk5C7bHz9+nL/+9a9MnTqVG2+8Ubb3QmtrK++++y6fffYZ\nM2bM4Prrryc3N7dHq8x0FyEEhw8f5ttvv2X16tVcdtll3H333YwdO1a298zu3bt55513mDFjBrNn\nz+7yQabX6/n444/p378/U6ZMkfUZe/bswcvLi9GjR3v0v504cYK4uDjX9fDYY/Dqq5CSAvv3Q1yc\n7PfqCYQQ2O12KdujOxGYexNCSNkdTzaJddzvKNTdiR9wB2+5A7jcCcpOLpdns9lwOBz4+flJ5e5O\n3hRRl8clIdx1dXV4eXmRkJAg+xij0cjGjRu54oorZJk6Ghsbef/997n11lvJzMzssv2OHTt49913\n+c1vfsOoUaNk9amtrY13332XTz/9lBkzZnDfffd5FGV4vjGZTHz55ZcsW7aMgIAAFixYQF5enqxj\nW1tbefXVV4mOjubBBx/scpZkMBhYunQp48aNY8yYMV2+v81mY8OGDeTl5ZGSkiKrT/C/fCnh27bh\ndeONLs+RHTtcmf/OIe5iFAaDQaolajKZEEJIWR8DAgI6peJ1mzL6Ek6nUyp9d3IJPLvdLmWvdG+B\ngYF97n/oC1z0wm00GqmpqSErK0u2XVsIwZYtW4iPjyc7O7vL9hqNhqVLlzJt2jQuu+yyM7Z1Op18\n+umnbNmyhfnz58syJRgMBt566y1WrlzJjBkzuPfee0lKSpL1v/QFhBCsXbuWV155hauuuopHH32U\nCBnRhFarlddeew2TycS8efO6DJByz0Rmzpwpy8yiVqvZsWMH06ZN88juX79vH/HXXINXa+s5qxvp\ndDoxGo2dCiT7+PgQEhLSSajdqXkvBjrmj3dH6tpsNgIDAwkJCZHqt/a5knS9wEUt3EIIKioqiI6O\n9sjzoaSkhMbGRiZNmtTlTWE2m3nnnXcYOnQoV3QRJWe323njjTdQq9XMmzdPlnjt2rWLp59+mlGj\nRvH73//+rAVbq9VSUFBAfn4+TU1N0ujNPYJzj34SEhLIzMyUMvn169fP4yROp/vs119/nfXr1/PI\nI49w0003dXkTOp1O3n77bcrKynjiiSe6PGf19fUsW7aMOXPmyPLbPnz4MC0tLUycOFHe/+Zw4Jw6\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.contour(X, Y, likelihood_c1.pdf(XY) * p_c1, cmap='gray_r')\n", "plt.contour(X, Y, likelihood_c2.pdf(XY) * p_c2, cmap='gray_r')\n", "plt.contour(X, Y, likelihood_c1.pdf(XY) * p_c1 - likelihood_c2.pdf(XY) * p_c2, levels=[0], colors='r', linewidths=2);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3. pojednostavljenje: izotropna kovarijacijska matrica\n", "\n", "$$\n", "\\boldsymbol{\\Sigma}=\\sigma^2\\mathbf{I}\n", "$$\n", "\n", "\\begin{equation*}\n", "h_j(\\mathbf{x}) = -\\frac{1}{2\\sigma^2}\\sum_{i=1}^n(x_i-\\mu_{ij})^2 + \\ln P(\\mathcal{C}_j)\n", "\\end{equation*}\n", "\n", "* Broj parametara?\n", "\n" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [], "source": [ "mu_1 = [-2, 1]\n", "mu_2 = [2, 0]\n", "p_c1 = 0.4\n", "p_c2 = 0.6\n", "\n", "covm_shared_diagonal = [[1,0],[0,1]]\n", "\n", "likelihood_c1 = stats.multivariate_normal(mu_1, covm_shared_diagonal)\n", "likelihood_c2 = stats.multivariate_normal(mu_2, covm_shared_diagonal)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nlLhFRHLM/wMn0UfNPR4IbwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.contour(X, Y, likelihood_c1.pdf(XY) * p_c1, cmap='gray_r')\n", "plt.contour(X, Y, likelihood_c2.pdf(XY) * p_c2, cmap='gray_r')\n", "plt.contour(X, Y, likelihood_c1.pdf(XY) * p_c1 - likelihood_c2.pdf(XY) * p_c2, levels=[0], colors='r', linewidths=2);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4. pojednostavljenje: jednake apriorne vjerojatnosti\n", "\n", "\\begin{align*}\n", " h_j(\\mathbf{x}) &= \\color{gray}{-\\frac{1}{2\\sigma^2}}\\sum_{i=1}^n(x_i-\\mu_{ij})^2 + \\color{gray}{\\ln\n", " P(\\mathcal{C}_j)}\\\\\n", " &\\Rightarrow - \\|\\mathbf{x}-\\boldsymbol{\\mu}_j\\|^2\\\\\n", " &= -(\\mathbf{x}-\\boldsymbol{\\mu}_j)^\\mathrm{T}(\\mathbf{x}-\\boldsymbol{\\mu}_j) =\n", "- (\\mathbf{x}^\\mathrm{T}\\mathbf{x} - 2\\mathbf{x}^\\mathrm{T}\\boldsymbol{\\mu}_j + \\boldsymbol{\\mu}_j^\\mathrm{T}\\boldsymbol{\\mu}_j)\\\\\n", "&\\Rightarrow \\mathbf{w}_j^\\mathrm{T}\\mathbf{x} + w_{j0}\n", "\\end{align*}\n", "\n", "\n", "* Možemo staviti $\\mathbf{w}_j=\\boldsymbol{\\mu}_j$\n", " * Dakle, model klasificira primjer $\\mathbf{x}$ u klasu $\\mathcal{C}_j$ s najbližim centroidom $\\boldsymbol{\\mu}_j$\n", "\n", "\n", "* Broj parametara?\n", "\n", "\n", "* Q: Koji model od navedenih pet odabrati? Model s punom kovarijacijskom matricom ili jedno od četiri pojednostavljenja?\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Bayesov klasifikator: komponente algoritma\n", "\n", "* **(1) Model $\\mathcal{H}$:**\n", "$$\n", " \\begin{align*}\n", " \\mathcal{H} &= \\big\\{h(\\mathbf{x}|\\boldsymbol{\\theta})\\big\\}_{\\boldsymbol{\\theta}}\\\\\n", " h(\\mathbf{x}|\\boldsymbol{\\theta})\n", " &=\\big(h_1(\\mathbf{x}|\\boldsymbol{\\theta}_1),\\dots,h_K(\\mathbf{x}|\\boldsymbol{\\theta}_K)\\big)\\\\ \n", " \\boldsymbol{\\theta} &= (\\boldsymbol{\\theta}_1,\\dots,\\boldsymbol{\\theta}_K)\\\\\n", " h_j(\\mathbf{x}|\\boldsymbol{\\theta}_j) &= \\ln p(\\mathbf{x}|\\boldsymbol{\\mu}_j,\\boldsymbol{\\Sigma}_j) + \\ln P(\\mathcal{C}_j)\\\\\n", " \\boldsymbol{\\theta}_j & = (\\boldsymbol{\\mu}_j,\\boldsymbol{\\Sigma}_j,P(\\mathcal{C}_j))\\\\\n", " \\end{align*}\n", "$$\n", " \n", "\n", "* generativan - diskriminativan ?\n", "\n", "* parametarski - neparametarski ?\n", "\n", "* linearan - nelinearan ?\n", "\n", "* pristanost jezika - pristranost pretraživanja ?\n", "\n", "\n", "* **(3) Optimizacijski postupak**\n", " * MLE: \n", "\\begin{align*}\n", " \\boldsymbol{\\theta}^* &= \n", "\\mathrm{argmax}_{\\boldsymbol{\\theta}}\\ \\mathcal{L}(\\boldsymbol{\\theta}|\\mathcal{D}) = \n", "\\mathrm{argmin}_{\\boldsymbol{\\theta}}\\ \\big(-\\mathcal{L}(\\boldsymbol{\\theta}|\\mathcal{D})\\big) \\\\\n", "\\end{align*}\n", "\n", "* **(2) Funkcija gubitka $L$**\n", " * Možemo je izvesti iz gornjeg izraza (uvažavajući činjenicu da je ono što optimizacijski postupak minimizira funkcija pogreške, a da je funkcija pogreške jednaka očekivanju gubitka)\n", " * Dobivamo:\n", " $$\n", " L\\big(y^{(i)},h(\\mathbf{x}^{(i)}|\\boldsymbol{\\theta})\\big) = - N \\ln p(x^{(i)},y^{(i)} | \\boldsymbol{\\theta})\n", " $$\n", " tj. gubitak (za neku određenu klasu) proporcionalan je s negativnom logaritmom zajedničke vjerojatnosti za tu klasu i dotičan primjer (što je veća vjerojatnost da primjer pripada u tu klasu, to je manji gubitak)\n", " \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Sažetak\n", "\n", "\n", "* Bayesov klasifikator je **generativan parametarski** model koji primjere klasificira na temelju **MAP-hipoteze**\n", "\n", "\n", "* Učenje Bayesovog klasifikatora za kontinuirane ulaze svodi se na **procjenu parametara** (MLE, MAP)\n", "\n", "\n", "* Naivan Bayesov klasifikator koristi pretpostavku o **nezavisnosti značajki za zadanu klasu**, koja omogućuje **generalizaciju** i **pojednostavljuje** model (broj parametara je linearan s $n$)\n", "\n", "\n", "* Kod diskretnog Bayesovog klasifikatora izglednosti klasa modeliramo **Bernoullijevom/kategoričkom** razdiobom, a kod kontinuiranog **Gaussovom razdiobom** (modelira šum)\n", "\n", "\n", "* Naivan Bayesov klasifikator (diskretan ili kontinuiran) je **linearan model**\n", "\n", "\n", "* **Polunaivan klasifikator** modelira zavisnost između odabranih varijabli, čime dobivamo **složeniji model**\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" } }, "nbformat": 4, "nbformat_minor": 0 }