{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\tHiroshi TAKEMOTO\n", "\t(take.pwave@gmail.com)\n", "\t\n", "\t

入門機械学習による異常検出

\n", "\t

\n", "\t\t井出 剛著の「入門機械学習による異常検出」(以降、井出本と記す)の例題をSageを使ってお復習いします。\n", "\t

\n", "\n", "\n", "\n", "\t

3章 非正規データからの異常検知

\n", "\t

\n", "\t\t井出本の基本は、データに対するモデルを使って負の対数尤度を求め、それを異常検出関数として使うことです。\n", "\t

\n", "\n", "\n", "\n", "\t

分布が左右対称でない場合

\n", "\t

\n", "\t\tDavisの体重(weight)のヒストグラムを見ると、分布が左右対称ではないことに気づきます。\n", "\t\t井出本では、ガンマ分布を使ってこの非対称な分布の異常度を検出しています。\n", "\t

\n", "\t

準備

\n", "\t

\n", "\t\tいつものように必要なパッケージを読込ます。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%%HTML\n", "" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# RとPandasのデータフレームを相互に変換する関数を読み込む\n", "# Rの必要なライブラリ\n", "r('library(ggplot2)')\n", "r('library(jsonlite)')\n", "\n", "# python用のパッケージ\n", "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt \n", "import seaborn as sns\n", "%matplotlib inline\n", "\n", "# jupyter用のdisplayメソッド\n", "from IPython.display import display, Latex, HTML, Math, JSON\n", "# sageユーティリティ\n", "load('script/sage_util.py')\n", "# Rユーティリティ\n", "load('script/RUtil.py')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ " [1] \"MASS\" \"car\" \"jsonlite\" \"ggplot2\" \"stats\" \"graphics\" \"grDevices\" \"utils\" \n", " [9] \"datasets\" \"methods\" \"base\" " ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 2.2 carパッケージのDavisを使って例題を試す\n", "r('library(car)')\n", "r('library(MASS)') " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

体重のヒストグラム

\n", "\t

\n", "\t\tDavisの体重のヒストグラムを再度プロットしてみます。\n", "\t\t1個だけ160のところにありますが、2章ではこれが体重と身長を入れ間違えたものと結論づけています。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEDCAYAAADOc0QpAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAEmNJREFUeJzt3X+Q3HV9x/Hn5WJjLxdjwlwwjZWUCG9lrH9YO7bRmkgp\n1oqgBlsHzKCxyjg4Q4tDR50iNWp1oGFEqKODgDEDU2x1kJQRJSNi64+q7Yw/qr5R0iSVRO7infHO\nhJjeXf/4LnqBC7e79927vU+ej3+y+9397vc138u+vt/9fL/73Z7JyUkkSWVZNN8BJEn1s9wlqUCW\nuyQVyHKXpAJZ7pJUIMtdkgq0uJknRcTFwJXAMeBdwHeAHVQbhwPA5sw81qmQkqTWzLjnHhErqQp9\nPXAe8EpgK3BDZm4AHgS2dDKkJKk1zQzLnAPcm5mHM/PhzLwU2AjsbDy+s/EcSVKXaGZYZi2wNCI+\nAzwVeDfQN2UYZhBY3Zl4kqR2NFPuPcBK4FVURX9fY9rUxyVJXaSZcn8Y+EpmTgC7I2IUOBYRSzLz\nKLAG2P9ELzA5OTnZ0+M2QJJa1HZxNlPunwdujYhrqPbg+4F7gAuB24BNjfsnTtfTw9DQaLsZ58zA\nwDJz1sic9TJnfRZCRqhytmvGA6qZuR/4F+BrwN3AZcDVwCURcT+wAtjedgJJUu2aOs89M28CbnrM\n5HPrjyNJqoPfUJWkAlnuklQgy12SCmS5S1KBLHdJKpDlLkkFstwlqUCWuyQVyHKXpAJZ7pJUIMtd\nkgpkuUtSgSx3SSqQ5S5JBbLcJalAlrskFchyl6QCWe6SVCDLXZIKZLlLUoEsd0kqkOUuSQWy3CWp\nQJa7JBXIcpekAlnuklQgy12SCmS5S1KBFs/0hIjYAPwz8F2gB/g2cC2wg2rjcADYnJnHOpizCOPj\n4+zZs7vl+dauPZ3e3t4OJJJUqhnLveGLmfnnj96JiFuAGzLz0xHxPmAL8NFOBCzJnj27ufzau+hb\nvqrpeQ4fGuT6K89n3bozOphMUmmaLfeex9zfCFzauL0TeBuWe1P6lq+if8Wa+Y4hqXDNlvtZEXEn\nsBLYCvRNGYYZBFZ3IpwkqT3NHFD9IfB3mflK4PXAzRy/UXjsXr0kaZ7NuOeemfupDqiSmbsj4ifA\n8yNiSWYeBdYA+2d6nYGBZbPNOic6mXNkpL+t+Vau7H9cLtdnvcxZr4WQcyFknI1mzpa5CFidmdsi\n4mnAqcCtwIXAbcAm4J6ZXmdoaHSWUTtvYGBZR3MOD4+1Pd/UXJ3OWRdz1suc9VkIGWF2G6Bmxtzv\nAm6PiAuAJ1EdSP0W8ImIeDOwF9jedgJJUu2aGZYZA86f5qFz648jSaqD31CVpAJZ7pJUIMtdkgpk\nuUtSgSx3SSqQ5S5JBbLcJalAlrskFchyl6QCWe6SVCDLXZIKZLlLUoEsd0kqkOUuSQWy3CWpQJa7\nJBXIcpekAlnuklQgy12SCmS5S1KBLHdJKpDlLkkFstwlqUCWuyQVyHKXpAJZ7pJUIMtdkgpkuUtS\ngSx3SSrQ4maeFBFPBr4LbAW+AOyg2jAcADZn5rGOJZQktazZPfergJ82bm8FbsjMDcCDwJZOBJMk\ntW/Gco+IAJ4F3A30ABuAnY2HdwLndCydJKktzey5bwOuoCp2gKVThmEGgdWdCCZJat8TjrlHxGbg\nK5m5t9qBf5ye6SZOZ2BgWYvR5kcnc46M9Lc138qV/Y/L5fqslznrtRByLoSMszHTAdWXA78TEa8A\n1gC/BMYiYklmHm1M29/MgoaGRmcVdC4MDCzraM7h4bG255uaq9M562LOepmzPgshI8xuA/SE5Z6Z\nr330dkS8C9gDrAcuBG4DNgH3tL10SVJHNHUqZMOjQzBXAzsi4s3AXmB77an0K5MTE+zbt/e4aSMj\n/TN+Cli79nR6e3s7GU1SF2u63DPz3VPuntuBLJrGkdEhtt1xkL7lB5qe5/ChQa6/8nzWrTujg8kk\ndbNW9tw1T/qWr6J/xZr5jiFpAfHyA5JUIMtdkgpkuUtSgSx3SSqQ5S5JBbLcJalAlrskFchyl6QC\nWe6SVCDLXZIKZLlLUoEsd0kqkOUuSQWy3CWpQJa7JBXIcpekAlnuklQgy12SCmS5S1KBLHdJKpDl\nLkkFstwlqUCWuyQVyHKXpAJZ7pJUIMtdkgq0eL4DqH6TExPs27e3rXnXrj2d3t7emhNJmmszlntE\n/CbwceBUYAnwXuBbwA6qPf8DwObMPNa5mGrFkdEhtt1xkL7lB1qa7/ChQa6/8nzWrTujQ8kkzZVm\n9txfAXwjM/8hIp4B3At8GbgxMz8VEe8DtgAf7WBOtahv+Sr6V6yZ7xiS5smM5Z6Zn5xy9xnA/wIb\ngEsb03YCb8Nyl6Su0fSYe0R8GVhDtSd/75RhmEFgdQeySZLa1HS5Z+YLI+K5wG1Az5SHek4wy3EG\nBpa1GG1+dDLnyEh/x167LitX9te6Dvy718uc9VkIGWejmQOqzwMGM/PHmfntiOgFRiNiSWYepdqb\n3z/T6wwNjc4+bYcNDCzraM7h4bGOvXZdhofHalsHnV6fdTFnvRZCzoWQEWa3AWrmPPcXU42pExGn\nAv3ALuDCxuObgHvaTiBJql0zwzIfAW6OiC8BTwbeAvwnsCMi3gzsBbZ3LqIkqVXNnC3zCHDxNA+d\nW38cSVIdvPyAJBXIcpekAlnuklQgy12SCmS5S1KBLHdJKpDlLkkFstwlqUCWuyQVyHKXpAJZ7pJU\nIMtdkgpkuUtSgSx3SSqQ5S5JBbLcJalAlrskFchyl6QCWe6SVCDLXZIKZLlLUoEsd0kqkOUuSQWy\n3CWpQJa7JBXIcpekAlnuklQgy12SCrS4mSdFxDXAi4Be4APAN4AdVBuHA8DmzDzWqZCSpNbMuOce\nERuBszJzPfAy4IPAVuDGzNwAPAhs6WRISVJrmhmWuR94TeP2z4ClwAbgrsa0ncA59UeTJLVrxmGZ\nzJwEjjTuvhG4G3jplGGYQWB1Z+JpLk1OTLBv396W51u79nR6e3s7kEhSu5oacweIiAuohl/OBX40\n5aGeZuYfGFjWWrJ50smcIyP9HXvtOhwZHWLbHQfpW36g6XkOHxpkx/sv4swzz5z2cf/u9TJnfRZC\nxtlo9oDqS4F3UO2xj0bEaEQsycyjwBpg/0yvMTQ0Orukc2BgYFlHcw4Pj3XstevSt3wV/SvWtDTP\n8PDYtOut0+uzLuas10LIuRAywuw2QM0cUH0KcA1wXmYeakzeBWxq3N4E3NN2AklS7ZrZc/8L4BTg\nkxHRA0wClwA3R8SlwF5ge+ciSpJa1cwB1ZuAm6Z56Nz640iS6uA3VCWpQJa7JBXIcpekAlnuklQg\ny12SCmS5S1KBmr78gDSdJ7oezchI/wm/lev1aKTOstw1K+1ej+b6K89n3bozOphMOrlZ7pq1dq5H\nI6mzLPc2jI+Ps2fP7pbna+dyupLUDsu9DXv27Obya++ib/mqlub76Y+/zylPf3aHUknSr1nubWpn\nKOLwoYc7lEaSjuepkJJUIMtdkgpkuUtSgSx3SSqQ5S5JBbLcJalAlrskFchyl6QCWe6SVCDLXZIK\nZLlLUoEsd0kqkOUuSQWy3CWpQJa7JBXIcpekAjX1Yx0R8RzgTuC6zPxwRDwd2EG1cTgAbM7MY52L\nKUlqxYx77hHRB3wI2DVl8lbghszcADwIbOlMPElSO5oZlnkEeBnVHvqjNgI7G7d3AufUG0uSNBsz\nlntmTmTm0cdMXjplGGYQWF17MklS2+r4geyeGl5DJ5HJiQn27dvb1rxr155Ob29vzYmk8rRb7qMR\nsaSxR78G2D/TDAMDy9pc1NxqJufISP8cJCnXkdEhtt1xkL7lB2Z+8hSHDw2y4/0XceaZZ9aeqaT/\nn91gIeRcCBlno91y3wVsAm5v/HvPTDMMDY22uai5MzCwrKmcw8Njc5CmbH3LV9G/Yk3L8w0Pj9X+\nf6nZv/t8M2d9FkJGmN0GaMZyj4jnAduA04BjEXEhcDGwPSIuBfYC29tOIEmq3Yzlnpn/BbxkmofO\nrT+OJKkOfkNVkgpkuUtSgSx3SSqQ5S5JBbLcJalAlrskFchyl6QCWe6SVCDLXZIKZLlLUoEsd0kq\nkOUuSQWy3CWpQHX8EpM0J9r9BSd/vUknI8sdeN1b3s7i/tX0Ll7E+P9NzPj8sUMHWbSi/l8D0hNr\n5xecDh8a5Porz2fdujM6mEzqPpY78KRlq+lZ+btM0tw41aJFD3U6kk6g3V9wkk42jrlLUoEsd0kq\nkOUuSQWy3CWpQJa7JBXIs2VUtGbOjR8Z6Wd4eOy4aZ4br4XOclfRPDdeJyvLXcXz3HidjBxzl6QC\nWe6SVCDLXZIKZLlLUoHaPqAaEdcBfwBMAH+Vmd+sLZU0j+by0sLj4+Ps2bO7qedOPWXTUzXbNz4+\nzgMPPPC4019nstDWeVvlHhEvBp6Zmesj4lnALcD6WpNJ82QuT5/cs2c3l197F33LV3V8WaqcLOu8\n3T33PwbuBMjMH0TEUyOiPzNb2xRKXWouT5/0VM25dzKs83bH3J8GDE25f7AxTZLUBer6ElNPTa8z\nL46NHmDxJE3/EtPEoYM8suipLS/nyOgwra6quZpnLpdVYr7DhwbbGqfft28vhw8Nzsmy5sp0l3Po\nJu2u84WmZ3JysuWZIuJqYH9m3tS4/yDw3Mz8Rc35JEltaHdY5vPAhQAR8TzgIYtdkrpHW3vuABHx\n98AGYBy4LDO/U2cwSVL72i53SVL38huqklQgy12SCmS5S1KBOvJjHRFxDfAioBf4APANYAfVxuQA\nsDkzj3Vi2a2KiCcD3wW2Al+gC3NGxMXAlcAx4F3Ad+iynBGxFPgEsAL4Dar1+T26JGdEPIfqW9XX\nZeaHI+Lp02VrrOvLqU4UuCkzb5nnnL9NdXmPJwG/BF6XmYPdlnPK9JcCn83MRY37XZUzIhYD24Fn\nAj8HLszMQ12Y88XA+6je82NU/z9byln7nntEbATOysz1wMuAD1K90W/MzA3Ag8CWupc7C1cBP23c\n3grc0E05I2IlVaGvB84DXkkX5gReD/wgM88GXgNcT5f83SOiD/gQsGvK5Metw8bzrgLOBl4C/HVE\ntP5ttXpzvgf4SGZupHrzX9GlOYmIJcDbgf1TntdtOd8EDGbmC4A7gD/q0pzbgDc03k9fBS5tNWcn\nhmXup3pzA/wMWEp1yuRdjWk7gXM6sNyWRUQAzwLupvpK4gaqfNA9Oc8B7s3Mw5n5cGZeCmyk+3Ie\nBE5p3F5JdXmKbvm7P0K1ozH1SmAbOX4d/gnwAuDrmTmWmY8A/w68cJ5zvgX4dOP2ENU67sacAO8E\nbqT6hAHdmfMVwG0AmfmxzPzXLs05BAw0bq+gen+1lLP2cs/Mycw80rj7RqriXDrl4/ggsLru5bZp\nG3AFv/6ueTfmXAssjYjPRMT9EXE20NdtOTPzDuC0iPgh8EWqYaSuWJ+ZOZGZRx8zebpsp3L8NZOG\nmMPM0+XMzCOZORkRi4DLgNt5/LWd5j1nRJxJ9S31T02Z3HU5qd5PfxYR90XE7RGxgu7MeQVwZ0R8\nn2qI++O0mLNjB1Qj4gKqj+Fv5fgLdXTFdWgiYjPwlcw80UU6uiInVY6VwKuANwC30p3r82Jgb2ae\nQfWx8R8f85SuyHkCJ8rWFZkbxb4D2JWZ903zlG7IeR1VIUF3r88e4PuZ+RLgv4F3nOA58+0G4ILM\nfDbVHvpl0zznCXN2pNwbB1XeAfxpZo4Co43xOIA1NMbk5tnLgQsi4qtUnzCuAsa6MOfDVBuhiczc\nDXTr+nwh8DmAxreVVwO/6MKcj3rsOnyIKt/UPaFuyXwrkJn53sb9rsoZEb8FBHBb4/20OiLuo1qn\nXZOz4SfAlxq3PwecRXfmfG5mfq1xexfwe7SYsxMHVJ8CXAOcl5mHpoTb1Li9Cbin7uW2KjNfm5kv\nyMw/BD5GdYBtF41r5tAlOamu43N2RPRExClAP92Z80dUv8xFRJxGtRG6l+7L+ajp/k9+HXh+RDwl\nIvqpDmL/2zzlA371iehoZm6dMvk/6J6cPZm5PzPPyMz1jffTgcaecdetT+CzVOPbUBVm0p05DzR+\nCAng94Ef0mLO2i8/EBFvAq4GHqD62DAJXALcDCwB9lIdBR6vdcGz0LjK5f9Qbcl30GU5G+v0L6nW\n5XuAb9JlORunQt5CNW7dC/wt1RvnE8xzzsbF7bYBp1GdWvYQcDHVKXHHZYuIVwN/Q/XzkR/KzH+a\n55yrqA64jVL9/b+XmW/twpyvzsyfNR7fnZmnN253W86LqM5MWU21Ti/JzKEuzPlO4B+oDk4PA1sy\n8+et5PTaMpJUIL+hKkkFstwlqUCWuyQVyHKXpAJZ7pJUIMtdkgpkuUtSgSx3SSrQ/wOvCzbZE05m\nJwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Rのデータをpandaのデータフレームに変換する\n", "davis = RDf2PandaDf(\"Davis\")\n", "# weightの分布をみる\n", "# 1個だけ、160以上の値を示している\n", "davis.weight.hist(bins=20)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

ガンマ分布の対数尤度

\n", "\t

\n", "\t\t2章と同様にガンマ分布の対数尤度を求めてみます。\n", "\t

\n", "\t

\n", "\t\t井出本では、ガンマ分布を以下の様に定義しています。\n", "$$\n", "\t\\mathcal{G} (x | k, s) = \\frac{1}{s \\Gamma(k)}(\\frac{x}{s})^{k-1} exp(- \\frac{x}{s})\t\n", "$$\t\t\n", "\t

\n", "\t

\n", "\t\tこれから対数尤度Lは、以下の様になります。\n", "$$\n", "\tL(k, s | \\mathcal{D}) = \\sum_{n=1}^N \\left [ -ln\\{s \\Gamma(k) \\} + (k-1) ln\\frac{x^{(n)}}{s} - \\frac{x^{(n)}}{s} \\right ]\n", "$$\n", "\t

\n", "\t

\n", "\t\tこの式をパラメータkとsで微分し、0と等しいとします。\n", "\t

\n", "\t

\n", "$-ln\\{s \\Gamma(k) \\}$が$-ln(s) - ln(\\Gamma(k))$となりますから、sの偏微分は以下の様になります。\n", "\n", "$$\n", "\\begin{eqnarray}\n", "\t\\frac{\\partial L}{\\partial s} & = & \\sum_{n=1}^N \\left [ -\\frac{1}{s} + (k-1)\\frac{\\partial}{\\partial s} ln \\frac{x^{(n)}}{s} + \\frac{x^{(n)}}{s^2} \\right ] \\\\\n", "\t& = & \\sum_{n=1}^N \\left [ -\\frac{1}{s} - \\frac{(k-1)}{s} + \\frac{x^{(n)}}{s^2} \\right ] \\\\\n", "\t& = & \\sum_{n=1}^N \\left [ -\\frac{k}{s} + \\frac{x^{(n)}}{s^2} \\right ] \n", "\\end{eqnarray}\n", "$$\t\t\n", "\t\tこの式が0となることから、\n", "$$\n", "\t\\hat{s} = \\frac{1}{\\hat{k} N} \\sum_{n=1}^N x^{(n)} = \\frac{\\hat{\\mu}}{\\hat{k}}\n", "$$\t\t\n", "\t

\n", "\t

\n", "\t\t同様にkの偏微分は以下の様になります。\n", "$$\n", "\t\\frac{\\partial L}{\\partial k} = \\sum_{n=1}^N \\left [ -\\frac{1}{\\Gamma(k)}\\frac{\\partial \\Gamma(k)}{\\partial k} + ln \\frac{x^{(n)}}{s}\\right ] \n", "$$\t\t\n", "\t\tしかし、kがガンマ関数が入っているので、簡単には$\\hat{k}$は求まりません。\n", "\t

\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

モーメント法を使ったk, sの推定

\n", "\t

\n", "\t\t井出本では、最尤推定でk, sを求める代わりにモーメント法を使ってkとsを推定しています。\n", "\n", "\t\t1次のモーメントは以下の様に計算されます。$\\Gamma(k+1) = k \\Gamma(k)$を関係を使っています。(以下の式は未フォロー)\n", "\t\t\n", "$$\n", "\t\\lt x \\gt = \\int_0^{\\infty} dx \\, x \\, \\mathcal{G}(x | k,s) = s\\frac{\\Gamma(k+1)}{\\Gamma(k)} \\int_0^{\\infty} dx \\, x \\, \\mathcal{G}(x | k+1,s) = ks\n", "$$\t\t\t\n", "\t\t同様に2次のモーメントは、以下の様になります。\n", "\t\t\n", "$$\n", "\t\\lt x^2 \\gt = k(k+1)s^2\n", "$$\t\t\t\n", "\t

\n", "\t

\n", "\t\tこれとデータから求められる1次の2次モーメントの関係\n", "\t\t\n", "$$\n", "\t\\lt x \\gt = \\frac{1}{N} \\sum_{n=1}^N x^{(n)} \n", "$$\t\n", "\n", "$$\n", "\t\\lt x^2 \\gt = \\frac{1}{N} \\sum_{n=1}^N {x^{(n)}}^2\n", "$$\t\n", "\t

\n", "\t

\n", "\t\tこの関係から\n", "$$\n", "\t\\hat{k}_{mo} = \\frac{\\hat{\\mu}^2}{\\hat{\\sigma}^2}, \\hat{s}_{mo} = \\frac{\\hat{\\sigma}^2}{\\hat{\\mu}}\n", "$$\t\t\n", "\t

\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

davisの体重を使って計算してみる

\n", "\t

\n", "\t\tdavisのweight(体重)でモーメント法を使ってk, sを求めてみます。\n", "\t

\n", "\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "19.1928236809 3.42836474164\n" ] } ], "source": [ "# ガンマ分布の異常検出\n", "N = len(davis.weight)\n", "mu = davis.mean()['weight']\n", "si = davis.std()['weight']*(N-1)/N\n", "kmo = (mu/si)^2\n", "smo = si^2/mu\n", "print kmo, smo" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

Rのfitdistrを使ってガンマ分布を推定

\n", "\t

\n", "\t\tRのfitdistrを使ってdavisのweight(体重)のガンマ分布を推定してみます。\n", "\t\tshapeがkの値、rateが1/sの値として返されます。\n", "\t

\n", "\t

\n", "\t\tモーメント法とfitdistrの結果は、そこそこ近い結果となっています。\n", "\t

\n", "\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ " shape rate \n", " 22.4854793 0.3417247 \n", " ( 2.2317648) ( 0.0342978)" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "r('ml <- fitdistr(Davis$weight, \"gamma\")')" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " shape \n", "22.48548 \n", " rate \n", "2.926333 \n" ] } ], "source": [ "kml = r('ml$estimate[\"shape\"]')\n", "sml = 1/r('ml$estimate[\"rate\"]')\n", "print kml\n", "print sml" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

scipyのstatsを使ってガンマ分布を推定

\n", "\t

\n", "\t\tこのノートの特徴は、Sageとpythonを使って井出本と同じ結果を求めることにあります。\n", "\t

\n", "\t

\n", "\t\tscipyのstatsのgamma.fitを使って、kとsを求めてみます。\n", "\t\tgamma.fitでは、floc=0を指定しないとfitdistrと同じ結果になりません。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(22.48530359200564, 0, 2.9263558630978119)\n" ] } ], "source": [ "# SciPyのstatsを使ってガンマ分布の最尤推定値を求める、floc=0を指定するとfitdistrと同じ結果になる\n", "from scipy import stats\n", "fit_alpha, fit_loc, fit_beta = stats.gamma.fit(np.array(davis.weight), floc=0)\n", "print(fit_alpha, fit_loc, fit_beta)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

結果の可視化

\n", "\t

\n", "\t\tSage6.7からヒストグラムがサポートされました。\n", "\t

\n", "\t

\n", "\t\t通常のヒストグラムと正規化(normed=True)したヒストグラムが表示でき、\n", "\t\t他のプロットデータと重ね合わせることができます。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Pandasのデータフレームからweightを取り出す\n", "weight = list(davis.weight.values)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAgDA+l/Yfq23jRvKAQAAAABJRU5ErkJggg==\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Sage6.7で導入されたhistogramを使用、binsのデフォルトは10\n", "histogram(weight, figsize=4, bins=24)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n9edL3eTm5uLq1asAIpOdpTCNI0eOYGBgAPPnz4fJZMLSpUshhEBWVhYKCwtx5syZgPHt7e345je/\nGaW0U919993Q6/U4e/asPO2jjz7CnDlzsHLlypjO7/P54Pf75X2oADA+Pg5JkvDYY4/FdPYvs1gs\ncDgcAdP+Mu+X5/v9fjidzph5Pnv27MEvf/lLnDx5Evfff3/AvFjOfuTIEfzud7+DyWSCyWTCP/3T\nP+G9995DVlYW+vr6Yjp7QUEBhoeH0dvbK0/76KOPsGDBAgAR2u6qHbL+Gvn0009FX1+f/N/JkyeF\nJEni8uXLwuVyibS0NPHGG2+I8fFxcfToUZGcnCz+9Kc/RTt2gOrqavGNb3xDfPjhh6K/v188/PDD\nYv369WJgYCCm83s8HmEymcSLL74oxsbGhNvtFk8++aR49NFHxbVr12I2+3SfJAm2rf/7v/9bGAwG\ncfLkSTE2NiZ27NghFixYIMbHx6Oe/cKFCyI1NVWcO3du2sfEcvb+/v6Af7979+4VDz30kLh8+bLw\n+/0xnV0IIUpKSsSTTz4pPv30U/H++++LrKws0djYKISIzHZnKYSgt7dX/kiqEEK8++67oqioSCQm\nJor8/PxpP/oZbTdu3BDPPvusMBqNQq/Xi6efflqMjo4KIWI/v9PpFI8++qgwGo1i7ty5YvXq1eLK\nlStCiNjLnpiYKHQ6nZg1a5aYNWuWfP+mYHlff/11MX/+fKHT6URZWdmMv4Qjnf1f/uVfREJCgtDp\ndPJ/N59DrGf/ssOHDwd8JFWI2M5+6dIlsWrVKpGcnCyys7NFfX19RLPzegpERCTjMQUiIpKxFIiI\nSMZSICIiGUuBiIhkLAUiIpKxFIiISMZSICIiGUuBiIhkLAUiIpKxFIiISMZSICIi2f8HVe1Mh2gl\nMRAAAAAASUVORK5CYII=\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 正規化したグラフも可能\n", "hg = histogram(weight, figsize=4, bins=24, normed=True)\n", "hg.show()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def _gamma(x, k, s):\n", " return 1/(s*gamma(k))*(x/s)^(k-1)*exp(-x/s)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 2 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "gp = plot(_gamma(x, 22.48548, 2.926333), [x, 0, 180], rgbcolor='red')\n", "(gp+hg).show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

2章の正規分布との重ね合わせ

\n", "\t

\n", "\t\t以下の様に正規分布関数_gaussを定義して、ヒストグラム、正規分布、ガンマ分布の推定結果を\n", "\t\t重ね合わせてみます。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def _gauss(x, mu, sig2):\n", " return 1/sqrt(2*pi*sig2)*exp(-1/(2*sig2)*(x - mu)^2)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 4 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 正規分布として推定した結果(2章の結果を利用)\n", "sig2 = 226.7\n", "mu = 65.8\n", "ga = plot(_gauss(x, mu, sig2), [x, 0, 180], rgbcolor='green')\n", "(hg+gp+ga).show(figsize=4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

stats.gamma.fitの精度

\n", "\t

\n", "\t\t最初、flocを指定しないでフィッティングをしたため、fitdistrと結果が異なり\n", "\t\t悩んでいました。しかしfloc=0とすることで、fitdistrと同じ結果が得られることが\n", "\t\t分かり、floc制約をしない場合、どのような推定結果がでるのか調べて見ました。\n", "\t

\n", "\t

\n", "\t\t今回、可視化はmatplotを使いました。floc=0の設定をしない方がより良くフィット\n", "\t\tしていることが分かります。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "4.37071423219 36.4315013948 6.7193811274\n" ] }, { "data": { "image/png": "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\n5RJyX3gOGhu9TmrMXtmRQg8VfLSFkmWvsvOwo4mNGO11HOM1n4+m6cdQO/0Ywls2U/DgfeQ/cC8F\njzxEwSMPES8ro+GU06k//Uwajj/Brnw3GceOFHpon4fvBuCjk8/yOInJNPHRY4h849vseu1Ndj39\nHNFLv0QiGKLggXspvejTDN1vLKVnnU5o4a/JWfY6NNlV78Z7dqTQA/k7t7PPw3dRP3wUW0+xojDQ\ntZyp1K79D6T6Bz+Bq39M3jtvE3rmaQpfXUrua6+Q9+pSCn95LfGiYpqOOJLGw6fRdOg0mg47nPjw\nET3OEAr5CYfD7bYPhUJ2YWUX7fXv3I5se41TKgoishCYDsSBq1R1edK62cB1QBOwWFWv7WgbERkD\n3I1zhLIVuFBVs7aTdfL9dxCoj/Hhl79OPN8uWBvo9nam0h6Kx1J/xkUc+Z3/oaihntyl/yTvny+R\n+/JL5L30AnkvvdDatHnUaJoOnkrzflNo2k9olik0Td4Piora3XUkEmHZqs17TPldWhmhuibabl67\nV0TXtfcadyQbX+NOi4KIzAQmq+oMEZkC3M6e92S+EZiD8ya/REQeAoZ1sM1Pgd+r6iMich1wCXBL\nWp9RH8l543XGPfUw0ZFj2H72BRBp9jqSyQAdnanUkcSgwTScOZ+GM+cD4Nu5g5x/v0XuWyvI+feb\n5L65gvx/LIZ/LN5ju+aRo4jvM5bmfcbSPHYs8THOzzlDywklcslLytBylpRJn/yCYJf+ztkklSOF\nk4BFAKq6VkTKRKRIVetEZAKwQ1UrAETkKWA2UN7ONsXALODL7n6fAL5FFhYF/wfvU/qFT0NznNXf\nvo5Ebh7wyU9ixnRVYvAQGk+cTeOJs1uX+bZvJ2fdWgK61vm+Tgl88D45y98g941/7bF9GTAGaC4I\nUj94KA1lQ0gMH064eBANZYNpKi6lqaiExuJiIrl55NXtQ2DEcOIlZSRKSiAvr2+fsMk4qRSFEcDy\npN+3u8s2uN8rk9ZVApOAIW22qXTbhpK6i7YBI/f6yLW1+HbsSCFiJ9Ix3XE8TmDrFvJefJ7g73+H\nv7aGd776PXYe/V/YGeimNyWGDqVx6HE0zjhuzxWNjfi3VhDY/B/8H24isPk/xN9/j8imLQSrd5G3\nczsl61bhX/1vBqX6WLm5JIIhEsEgFBSQCDk/J4IhEgUF4K5L5OdDTg6JvDzIyYXcXBK5Ld/zIDeH\n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\nYBv1FlMwAoQAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# locも含めた分布のフィッティング結果\n", "samp = np.array(davis.weight)\n", "fit_alpha, fit_loc, fit_beta = stats.gamma.fit(samp)\n", "print fit_alpha, fit_loc, fit_beta\n", "x = np.linspace(20,180,200)\n", "\n", "plt.figure()\n", "# fitted distribution\n", "pdf_fitted = stats.gamma.pdf(x, fit_alpha, loc=fit_loc, scale=fit_beta)\n", "plt.title('Gamma distribution')\n", "plt.plot(x,pdf_fitted,'r-')\n", "plt.hist(samp,bins=24, normed=1,alpha=.3)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# fitdistrによるフィッティング結果\n", "fit_alpha = 22.48548\n", "fit_loc = 0\n", "fit_beta = 2.926333 \n", "x = np.linspace(20,180,200)\n", "\n", "plt.figure()\n", "# fitted distribution\n", "pdf_fitted = stats.gamma.pdf(x, fit_alpha, loc=fit_loc, scale=fit_beta)\n", "plt.title('Gamma distribution')\n", "plt.plot(x,pdf_fitted,'r-')\n", "plt.hist(samp,bins=24, normed=1,alpha=.3)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

訓練データに異常データがまざっている場合

\n", "\t

\n", "\t\tデータに異常データが混ざっている場合の例として、以下の様に2種類の正規分布が混ざっている場合に\n", "\t\tついて考えてみます。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nw/8HAg0P2Njz90cAAAAASUVORK5CYII=\n", "text/plain": [ "Graphics object consisting of 3 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 訓練データに異常データがまざっている場合(2個の正規分布の混合分布を考える)\n", "x = var('x')\n", "N = 1000\n", "mu0 = 3\n", "mu1 = 0\n", "sig0 = 0.5\n", "sig1 = 3\n", "pi0 = 0.6\n", "pi1 = 0.4\n", "# 分布を表示\n", "g0 = plot(_gauss(x, mu0, sig0^2), [x, -5, 6], rgbcolor='green')\n", "g1 = plot(_gauss(x, mu1, sig1^2), [x, -5, 6], rgbcolor='blue')\n", "g01 = plot(_gauss(x, mu0, sig0^2)+ _gauss(x, mu1, sig1^2), [x, -5, 6], rgbcolor='red')\n", "(g0 + g1 + g01).show(figsize=4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

\n", "\t\t分布は以下の様な混合正規分布として表されます。\n", "$$\n", "\tp(x) = \\pi_0 \\mathcal{N}(x | \\mu_0, \\sigma_0^2) + \\pi_1 \\mathcal{N}(x | \\mu_1, \\sigma_1^2) \n", "$$\t\t\n", "\t

\n", "\t

\n", "\t\tパラメータを$ \\theta = (\\pi_0, \\mu_0, \\sigma_0^2, \\pi_1, \\mu_1, \\sigma_1^2)$にまとめると、\n", "\t\t対数尤度は、以下の様になります。\n", "$$\n", "\tL(\\theta, \\mathcal{D}) = \\sum_{n=1}^N ln \\left \\{ \\pi_0 \\mathcal{N}(x | \\mu_0, \\sigma_0^2) + \\pi_1 \\mathcal{N}(x | \\mu_1, \\sigma_1^2) \\right \\}\n", "$$\t\t\n", "\t

\n", "\t

\n", "\t\tこれを$\\mu_0$で偏微分すると、以下の様になります。\n", "$$\n", "\t0 = \\frac{\\partial L}{\\partial \\mu_0} = \\sum_{n=1}^N \\frac{\\pi_0 \\mathcal{N}(x | \\mu_0, \\sigma_0^2) }{\\pi_0 \\mathcal{N}(x | \\mu_0, \\sigma_0^2) + \\pi_1 \\mathcal{N}(x | \\mu_1, \\sigma_1^2)} \\frac{(x^{(n)} - \\mu_0)}{\\sigma_0^2}\n", "$$\t\t\n", "\t\t同様に$\\sigma_0^2$で偏微分すると、以下の様になります。\n", "$$\n", "\t0 = \\frac{\\partial L}{\\partial \\sigma_0^2} = \\sum_{n=1}^N \\frac{\\pi_0 \\mathcal{N}(x | \\mu_0, \\sigma_0^2) }{\\pi_0 \\mathcal{N}(x | \\mu_0, \\sigma_0^2) + \\pi_1 \\mathcal{N}(x | \\mu_1, \\sigma_1^2)} \\frac{ \\{-(x^{(n)} - \\mu_0)^2 + \\sigma_0^2 \\}}{2}\n", "$$\n", "\t\tここで、データが$\\pi_i$のどちらの集合に属するかその期待値を帰属度として以下の様に定義します。\n", "$$\n", "\tq_i^{(n)} = \\frac{\\pi_i \\mathcal{N}(x | \\mu_i, \\sigma_i^2) }{\\pi_0 \\mathcal{N}(x | \\mu_0, \\sigma_0^2) + \\pi_1 \\mathcal{N}(x | \\mu_1, \\sigma_1^2)}\n", "$$\t\t\n", "\t

\n", "\t

\n", "\t\t$\\mu_i, \\sigma_i^2$の推定値は、以下の様に求まります。\n", "$$\n", "\t\\hat{\\mu}_i = \\frac{\\sum_{n=1}^N q_i^{(n)} x^{(n)}}{\\sum_{n'=1}^N q_i^{(n')}}\n", "$$\t\t\n", "$$\n", "\t\\hat{\\sigma}_i^2 = \\frac{\\sum_{n=1}^N q_i^{(n)} (x^{(n)} - \\mu_i)^2}{\\sum_{n'=1}^N q_i^{(n')}}\n", "$$\n", "\t

\n", "\t

\n", "\t\tまた、$\\pi_i$は、以下の様になります。\n", "$$\n", "\t\\hat{\\pi}_i = \\frac{1}{N} \\sum_{n=1}^N q_i^{(n)}\n", "$$\t\t\n", "\t

\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

EMアルゴリズム

\n", "\t

\n", "\t\t混合正規分布をEMアルゴリズムを使って求めます。\n", "\t

\n", "\t

\n", "\t\tEMアルゴリズムでは、以下の手順でパラメータの値を求めます。\n", "\t\t

    \n", "\t\t\t
  1. パラメータ$\\theta$の初期値をセット
  2. \n", "\t\t\t
  3. 潜在変数(ここではどの正規分布に属するか)の期待値$q_i^{(n)}$が最大になるようなパラメータを求める
  4. \n", "\t\t\t
  5. 求まった潜在変数からパラメータの値を再設定する
  6. \n", "\t\t\t
  7. 値が収束するまで2)に戻る
  8. \n", "\t\t
\n", "\t

\n", "\n", "\n", "\t

テストデータの生成

\n", "\t

\n", "\t\t以下の2つの正規分布をもつテストデータ1000個を生成します。\n", "$$\n", "\t(\\pi_0, \\pi_1) = (0.6, 0.4), (\\mu_0, \\sigma_0) = (3, 0.5), (\\mu_1, \\sigma_1) = (0, 3)\n", "$$\t\t\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nL/8/41GilZcreRoAAAAASUVORK5CYII=\n", "text/plain": [ "Graphics object consisting of 5 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# テストデータの生成\n", "T0 = RealDistribution('gaussian', sig0, seed=1)\n", "d0 = [T0.get_random_element()+mu0 for i in range(pi0*N)]\n", "h0 = histogram(d0, bins=20, normed=True, color='green')\n", "\n", "T1 = RealDistribution('gaussian', sig1, seed=1)\n", "d1 = [T1.get_random_element()+mu1 for i in range(pi1*N)]\n", "h1 = histogram(d1, bins=20, normed=True, color='blue')\n", "# プロットして確認\n", "(h0+h1+g0+g1+g01).show(figsize=4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

初期値のセット

\n", "\t

\n", "\t\t各パラメータの初期値を以下の様に設定します。\n", "$$\n", "\t(\\pi_0, \\pi_1) = (0.5, 0.5), (\\mu_0, \\sigma_0) = (5, 1.0), (\\mu_1, \\sigma_1) = (-5, 5.0)\n", "$$\t\t\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# データを結合\n", "d = d0 + d1\n", "# pi, sig, muの初期値\n", "pi0 = 0.5\n", "pi1 = 0.5\n", "mu0 = 5.0\n", "mu1 = -5.0\n", "sig0 = 1.0\n", "sig1 = 5.0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

EMアルゴリズムの実行

\n", "\t

\n", "\t\tEMアルゴリズムを10回繰り返します。\n", "\t

\n", "\t

\n", "\t\t高々10回の繰り返しで、とても精度良くパラメータが推定されています。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# EMアルゴリズムを10回繰り返す\n", "x = np.array(d)\n", "for i in range(10):\n", " piN0 = pi0*stats.norm.pdf(x, mu0, sig0); piN1 = pi1*stats.norm.pdf(x, mu1, sig1)\n", " qn0 = piN0/(piN0 + piN1); qn1 = piN1/(piN0 + piN1)\n", " pi0 = sum(qn0)/N; pi1 = sum(qn1)/N\n", " mu0 = sum(qn0*x)/(N*pi0); mu1 = sum(qn1*x)/(N*pi1)\n", " sig0 = sqrt(sum(qn0*(x - mu0)*(x - mu0))/(N*pi0))\n", " sig1 = sqrt(sum(qn1*(x - mu1)*(x - mu1))/(N*pi1))" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.602760455466 0.397239544534\n", "2.98730105891 -0.292164057442\n", "0.512590277559 2.85810740491\n" ] } ], "source": [ "# 結果出力\n", "print pi0, pi1\n", "print mu0, mu1\n", "print sig0, sig1" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAElFTkSuQmCC\n", "text/plain": [ "Graphics object consisting of 2 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x = var('x')\n", "g01 = plot((_gauss(x, mu0, sig0^2)+ _gauss(x, mu1, sig1^2))/2, [x, -9, 9], rgbcolor='red')\n", "hd = histogram(d, bins=50, normed=True)\n", "(hd + g01).show(figsize=4)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 2 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 帰属度qn0, qn1の分布\n", "q0 = list_plot(list(qn0), rgbcolor='red')\n", "q1 = list_plot(list(qn1))\n", "(q0 + q1).show(figsize=4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

パッケージを使って混合正規分布(GMM)を求める

\n", "\t

\n", "\t\t最後にScikit-learnの混合正規分布パッケージsklearn.mixtureを使って、\n", "\t\tdavisの体重・身長のデータに対して、混合正規分布を求めてみます。\n", "\t

\n", "\t

\n", "\t\tGMMは、異常なデータに影響を受けるため、12番目のデータを除いた集合で、\n", "\t\t混合正規分布を求めます。\n", "\t

\n", "\t

\n", "\t\tGMMの引数のn_componentsが求める分布の数です。RのMclustを使うとベストな分布数も計算できますが、\n", "\t\tここでは2として計算します。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# 混合正規分布\n", "# SageでのGMMは、http://www15191ue.sakura.ne.jp:8000/home/pub/57/ を参照してください。\n", "from sklearn import mixture\n", "# 分類器の生成\n", "classifier = mixture.GMM(n_components=2, covariance_type='full')" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "GMM(covariance_type='full', init_params='wmc', min_covar=0.001,\n", " n_components=2, n_init=1, n_iter=100, params='wmc', random_state=None,\n", " thresh=None, tol=0.001, verbose=0)" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# GMMを求める\n", "# 12番目のデータを除く(体重と身長を間違えたデータ)\n", "davis_e11 = davis[davis.index != 11]\n", "data = davis_e11[['weight', 'height']]\n", "# 混合正規分布を求める\n", "classifier.fit(data)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

分類結果のプロット

\n", "\t

\n", "\t\t大切なのは、GMMによる分類ではなく、その結果を可視化して特徴を把握することです。\n", "\t

\n", "\t

\n", "\t\tGMMによってデータがどのグループに属するか分類した結果は、predict関数で取得し、\n", "\t\tdavis_e11のpredにセットします。\n", "\t

\n", "\t

\n", "\t\t次にseabornでpredで色を変えて分布をプロットします。\n", "\t\tたったこれだけで、GMMの結果を確認することができます。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# 分類結果をpredにセット\n", "# davis_e11['pred']= classifier.predict(data)で、Try using .loc[row_indexer,col_indexer] = value insteadのエラー\n", "# 以下のように変更してもエラーがでます。\n", "davis_e11.loc[:, 'pred'] = classifier.predict(data)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nkUj/H+qjdft1bO9OAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 分類結果の表示\n", "# 身長(height)と体重(weight)の関係をみる\n", "sns.lmplot('weight', 'height', data=davis_e11, hue='pred', fit_reg=False )\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "\n", "\t

正規分布の形もプロット

\n", "\t

\n", "\t\tGMMの結果は、$\\mu$がmeans_、$\\sigma$がcovars_、$\\pi$がweights_変数にセットされています。\n", "\t

\n", "\t

\n", "\t\tSageのcontour_plot関数を使って正規分布をプロットしてみます。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 30, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# クラス分けされたデータ\n", "cls0 = davis_e11[davis_e11.pred == 0][['weight', 'height']].values\n", "cls1 = davis_e11[davis_e11.pred == 1][['weight', 'height']].values" ] }, { "cell_type": "code", "execution_count": 31, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(57.81913146628779, 166.05287757398474)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "(76.24968505812853, 177.23112855273868)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "[48.941998128269816 32.602459007078245]\n", "[32.602459007078245 45.28480054167933]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "[163.09260007590242 55.50952750063395]\n", "[ 55.50952750063395 55.805714575835765]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# 正規分布の推定値\n", "mu0 = vector(classifier.means_[0])\n", "mu1 = vector(classifier.means_[1])\n", "sig0 = matrix(classifier._get_covars()[0])\n", "sig1 = matrix(classifier._get_covars()[1])\n", "show(mu0); show(mu1)\n", "show(sig0); show(sig1)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# ベクトルのガウス分布を定義\n", "def _gauss(v, mu, sigma):\n", " d = len(v);\n", " sigma_inv = sigma.inverse();\n", " sigma_abs_sqrt = sigma.det().sqrt();\n", " val = -(v - mu) * sigma_inv * (v - mu).column()/2;\n", " a = (2*pi)**(-d/2) * sigma_abs_sqrt**-0.5\n", " return a * e**val[0]; " ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nExL21gAAAABJRU5ErkJggg==\n", "text/plain": [ "Graphics object consisting of 201 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x, y = var('x y')\n", "# データのプロット\n", "pt_plt = Graphics()\n", "for pt in cls1:\n", " pt_plt += point(pt, rgbcolor='red', zorder=2)\n", "for pt in cls0:\n", " pt_plt += point(pt, rgbcolor='blue', zorder=2)\n", "# 正規分布を表示\n", "r_cnt_plt = contour_plot(lambda x, y : _gauss(vector([x, y]), mu1, sig1), [x, 20, 130], [y, 140, 200], contours = 1, cmap=['red'], fill=False)\n", "b_cnt_plt = contour_plot(lambda x, y : _gauss(vector([x, y]), mu0, sig0), [x, 20, 130], [y, 140, 200], contours = 1, cmap=['blue'], fill=False)\n", "(pt_plt + r_cnt_plt + b_cnt_plt).show(figsize=4) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

混合正規分布データの異常度

\n", "\t

\n", "\t\t混合正規分布の異常度は、以下の様になります。\n", "$$\n", "\ta(x') = -ln \\left \\{ \\sum_{k=1}^K \\hat{\\pi}_k \\mathcal{N}(x' | \\hat{\\mu}_k, \\hat{\\Sigma}_k) \\right \\}\n", "$$\t\t\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "(0.5942959114867427, 0.40570408851325784)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#異常度の計算\n", "# pi_nを求める\n", "pi_vec = vector(classifier.weights_); show(pi_vec)\n", "# davis全データに対する事後分布を求める\n", "a = [- log(pi_vec[0]*_gauss(vector(x), mu0, sig0)+pi_vec[0]*_gauss(vector(x), mu1, sig1)).n() for x in davis[['weight', 'height']].values ]" ] }, { "cell_type": "code", "execution_count": 35, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list_plot(a, figsize=4)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "SageMath 7.2", "language": "", "name": "sagemath" }, "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.10" } }, "nbformat": 4, "nbformat_minor": 0 }