{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "オリジナルの作成: 2011/04/22" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\tHiroshi TAKEMOTO\n", "\t(take.pwave@gmail.com)\n", "\t\n", "\t

第3章-Sageを使って逐次ベイズ学習を試してみる

\n", "\t

\n", "\tパターン認識と機械学習\n", "\tの3章で最も印象深い例題が、ベイズ線形回帰のパラメータ分布を逐次的に計算し、収束する様子を\n", "\t示した図3.7です。\n", "\t

\t\n", "\t

\"\"

\n", "\t

\n", "\t\tここでは、Sageを使って図3.7の逐次ベイズ学習を再現してみます。\n", "\t

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

パラメータの分布

\n", "\t

\n", "\t\t図3.7の例では、モデルパラメータwの事前確率分布を以下のように定義しています。原書式(3.52)\n", "$$\n", "\t\tp(w|\\alpha) = \\mathcal{N}(w|0, \\alpha^{-1} I) \n", "$$\n", "\t\t対応するwの事後分布は、線形回帰のペイズフィッティングと同じ形になります。原書式(3.53)、式(3.54)\n", "$$\n", "\t\tm_N = \\beta S_N \\Phi^T t\n", "$$\n", "$$\n", "\t\tS^{-1}_{N} = \\alpha I + \\beta \\Phi^T \\Phi\n", "$$\n", "\t\tポイントは、事後分布の対数です。\n", "$$\n", "\t\tln p(w|t) = - \\frac{\\beta}{2} \\sum^N_{n=1} \\{ t_n - w^T\\phi(x_n) \\}^2 - \\frac{\\alpha}{2} w^T w + 定数\n", "$$\n", "\t\tこの第1項の指数$e^{- \\frac{\\beta}{2} \\{ t_i - w^T\\phi(x_i) \\}^2}$をその直前の事前分布に掛け合わせることで$t_i$の事後分布が求まるところです。\n", "\t

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

仮定

\n", "\t

\n", "\t\tモデルパラメータwの事前確率分布の変化を見るために、$\\alpha = 2.0$、精度パラメータ$\\beta = (1/0.2)^2 = 25$を固定値としています。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Cholesky分解のためにscipyを使用\n", "from scipy.linalg import *\n", "# 初期設定:平均0,α=2.0固定のガウス分布、β=(1/0.2)^2=25\n", "alpha = 2.0\n", "beta = 25\n", "mu = vector([0, 0])\n", "sigma = matrix(2,2,alpha)\n", "# グラフ表示用の変数\n", "x, y = var('x, y')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

データ

\n", "\t

\n", "\t\tデータとして、図3.7から最初の2点を読み取り(0.9, 0.05), (-0.6, -0.8)とし、残りを、\n", "$$\n", "\t\tf(x, a) = a_0 + a_1 x \n", "$$\n", "\t

\n", "\t

\n", "\t\tここで、$a_0 = -0.3, a_1 = 0.5$とし、一様部分$U(x|-1,1)$から選んだ$x_n$に、目的値$t_n$を以下のように計算し、\n", "\t\t追加しました。\n", "$$\n", "\t\tt_n = f(x_n, a) + \\mathcal{N}(0, 0.2) \n", "$$\n", "\t

\n", "\t\n", "" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# データセット f(x,a) = a0 + a1*x <= a0 = -0.3, a1=0.5 \n", "# 観測値は、tn = f(x,a) + N(0, 0.2)\n", "# xnを一様分布U(x|-1,1)から選択する\n", "# チェックのために、図3.7の最初の2点を(0.9, 0.05), (-0.6, -0.8)を使用する\n", "a0 = -0.3\n", "a1 = 0.5\n", "a_plt = point([a0, a1], rgbcolor='red')\n", "xv = [0.9, -0.6]\n", "tv = [0.05, -0.8]\n", "for xn in range(18):\n", " xn = 2*random() - 1\n", " xv += [xn]\n", " tv += [a0 + a1*xn + gauss(0, 0.2)]\n", "data = zip(xv, tv)\n", "data_plt = list_plot(zip(xv, tv))\n", "data_plt.show(aspect_ratio=1, figsize=5, xmin=-1, xmax=1, ymin=-1, ymax=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

wの事前分布(初期分布)

\n", "\t

\n", "\t\twの事前分布は、ベクトルのガウス分布の式、原著付録式(B.37)から\n", "$$\n", "\t\t\\mathcal{N}(x|\\mu, \\Sigma) = \\frac{1}{(2\\pi)^{D/2}} \\frac{1}{|\\Sigma|^{1/2}} exp \\left\\{ \n", "\t\t\t\\frac{1}{2} (x - \\mu)^T \\Sigma^{-1} (x - \\mu)\n", "\t\t\t\\right\\}\n", "$$\n", "\t\tとなります。\n", "\t

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

データ空間

\n", "\t

\n", "\t\tデータ空間の図は、wの値をランダムに選んだ関数$y(x, w)$と説明されていますが、\n", "\t\t私は、第11章のBox-Muller法からコレスキー分解(Cholesky decomposition)を使って\n", "\t\t分散$\\Sigma = L L^T$となる$L$を求めて\n", "$$\n", "\t\ty = \\mu + L z\n", "$$\n", "\t\tから空間のガウスのサンプリングを生成することにしました。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 1 graphics primitive" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nSEF8dlsAAAAASUVORK5CYII=\n", "text/plain": [ "Graphics object consisting of 6 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# ベクトルのガウス分布を定義\n", "def gauss_v(v, mu, sigma):\n", " d = len(v)\n", " sigma_inv = sigma.inverse()\n", " sigma_abs_sqrt = sigma.det().sqrt()\n", " # sage 4.6.2ではtranspose()の代わりにcolumn()を使用する\n", " val = -(v - mu) * sigma_inv * (v - mu).column()/2\n", " return n((2*pi)^(-d/2)) * sigma_abs_sqrt^-0.5 * e^val[0]\n", "# wの初期分布\n", "cnt_plt = contour_plot(lambda x, y : gauss_v(vector([x,y]), mu, sigma), [x, -1, 1], [y, -1, 1], fill=False)\n", "cnt_plt.show(aspect_ratio=1, figsize=(3))\n", "# 6個のラインを引く\n", "L = matrix(cholesky(sigma.numpy()))\n", "l_plt = plot([])\n", "for i in range(6):\n", " y = mu + L*vector([random(), random()])\n", " l_plt += plot(lambda x : y[0] + y[1]*x, [x, -1, 1])\n", "l_plt.show(aspect_ratio=1, figsize=3, xmin=-1, xmax=1, ymin=-1, ymax=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

基底関数

\n", "\t

\n", "\t\t一番簡単な例として直線を使用するので、基底関数は\n", "$$\n", "\t\t\\phi_j(x) = x^j\n", "$$\n", "\t\tとしました。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Φ関数定義\n", "def _phi(x, j):\n", " return x^j" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

尤度関数

\n", "\t

\n", "\t\t同様に$x_n$の観測値$t_n$対する尤度関数は、\n", "$$\n", "\t\tp(t|w) = e^{- \\frac{1}{2}(t_n - w^T \\phi(x_n))}\n", "$$\n", "\t\tとなります。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# 尤度関数の定義\n", "def _likelihood(w0, w1, v):\n", " xn, tn = v\n", " return n(e^(-beta/2*(tn - w0 - w1*xn)^2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

1点目のプロット

\n", "\t

\n", "\t\t最初の1点目の尤度関数をwの真の値a=(-0.3, 0.5)(赤い点)と一緒にプロットしたのが、最初の図です。\n", "\t

\n", "\t

\n", "\t\t次に原書式(3.53)から求めた事後確率と真の値a=(-0.3, 0.5)(赤い点)と一緒にプロットしました。\n", "\t\t図3.7と同じように事前分布と尤度分布を掛け合わせた形になっています。\n", "\t

\n", "\t

\n", "\t\t3番目は、事後分布からランダムに生成したwを元に引いた直線です。\n", "\t\t第1点に直線が集まっていることがわかります。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 6, "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" }, { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 2 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nLOH/oaDgCYqP54TqxIkT6f777zdEIv3jjz/2eN6uW7du0McIqHnbiNxDv6rbpU4OoSh89VVdLMf+\niJ48wg8/oC+ncvgwj4js6uJITna2c17FYvEetaqtdV5812p1z3eo9xMStEjRaM4Y2t3N/RDXDnx9\nPb8+ZowWDla3GTO0+bVvdQwpnu5u76FfdUWykBAt9KuKIzOTx5PozUT39LB/7uiCqW5TXByX30+d\nyrkCs5kDCI4CcSxEtFjcReFYiDjYlZlHauqpxkZ3kZw5o1UeJya6JxenTDFOHdxoMKri6ejwHvpV\nVyYbO9bZiqhimTTJ90kJm5udrcrRo2xVgoL4ZImNZZFeu8bJN9dCRHXZck8C8Vchor/Fc/2653Cw\nmrQND2fr4WpN/JH9v9UYdvGoGWpPpSiq+QfYVXF1szIz+Srvj5Owtxf45hvOl/z978CJE9pyHsHB\n7IJcv+48MjI+3rkj7igQm21kZhTVKx4innjeVSTnz2vfcfJkd2uSmmqscLCR8Zt4envZr/fUH1En\nLDSbOX7vKA419Ouvpfu6utiFqqgADh3ikZDV1TwJnmvxX3i4VkriKpDk5P4nThwpBiOeq1edw8Hq\nprqRUVHuIpk+PTBXoDYSPoeqf/Mbrr86f17LNUREaAJZvly7P3my71W9PT18RXXslF+4wK7IxYvu\nScWgIHah7rqLO/jz5vFEFP4qRBxJ7Ha+ELiK5MIFfj0oiC8EWVlcV6a6XN7C44Jv+Cye4GCOND36\nqOZyJSToN/3q1LveSknq6pxdq5AQFlRvL58g6nIfCxfyCZSWFpgnTksLu5lHj/Ljn//cOWASG8vJ\nxRUrNGuSmTkyKzcIzKgEDK5e9V5K4lyIyFYjLo5Pips3WVhqdUh0NA8VVkPFd90VGJlpR3p6PIeD\nL13i14OD29HdHYU1a9pw552RfUK5XcLBRmZYxKMWInoTiGMhYmioc6fcamWRNDby4K4TJ9gVM5m0\nokB1mzw5sKxKU5PncLCa/0lIcO+bxMW1IyYmsFZJuF3wWTz79vFgI0eBXLrkXIiojvFwDecmJ3NH\n/uhRLVx89iy/LzraWSh33RU4HdwbN7RRoI6bajHDwjyHgz0ttiTLKhoXn8WTk8NWxtPoQLUQUQ0S\ntLY6C+XoUY4ImUwc/XF0wQKhr0LEiVJXkZw7p/XLUlM9h4MHG+YOxPV5bhd8Fo86BNgVu51PIsds\n/dmzfMKNH89TGqlCmTPHf6Hq4aKzky2sq1DUMHxkpOdwsK/fS8RjXPzW52lrc7cqra1sPaZPd3bB\npk41rlWx2znk7SqSqioWvsnE7XcVCs/q7//2iHiMi8+h6iefBD76iDu+RJw7ycvj51WrYtT/vLWV\nw8GOIjl1SpvRJTqaw8HLl2simTbNGMlTYfTxw9RT3FfZtEmzKkYr7+jp4cidqzVR16cMDuYcSVYW\n8OCDjpEu41pIYfQxZFW1L/zwg+eph9RwcHy8u8uVnu575cNwIW6bcQnY2XNu3OCAhKtQ1GLPsDAe\nazJrFlBSooWDPczLJwi6MLx4iHg4gKdwsDpsISWFxbFhg2ZNJk8emapn4fbFUG5bV5fncLC6LLjF\n4jkcfCt7M5IkNS6jIh67nYcvuIqkslILB0+Z4i6U5OTbrwMvfR7jMuziaW93Dwd/8w36VrweP57D\nwY4imTZt8MOUb3VEPMbFb30eTzPRnzypzYJpNmvhYMcy+kBer/K5557DG2+8gdbWVsybNw+vvfYa\n0tLSvO5fWlrqNktmRkYGzpw5M9xNFYYBn8WzaROP2Dx1ShsMN3EiC+OhhzSRZGQYNxysh0BexkTw\nD35Jks6YAfziF1o4ODbWH00zNtu2bcOzzz6LwsJCAMCf//xnWK1WvPvuu/2uxGA2mxF7O/xAtwE+\ni2fHDn80I7Aw0jImwuhhsEKawMDXZUw+/PBD7NixAzU1NViwYAE61bHVQkAh4hkEZWVlsFgssFgs\niIyMRLe6MIwLNIhlTFatWoXp06djyZIlOHjwIFpaWvDOO+8MV9OFYUR6q4PA38uYqERFRWHq1Kmo\nUqcl7YcpU6ZAURTYbLa+pV0kYTq6iHgGgd5lTAbi6tWruHDhAkpKSgbct7KyUvI8BkPcNp2oy5i8\n9957+Oabb1BSUoKEhASsWLGib59FixZh+/btfY+feuopHDp0CLW1tfj888/xwAMP9JXcCIGHWB6d\nPP300+jq6sLGjRvR2tqKu+++Gx988IFTjqempgbNDlMF1dfX4+GHH8aVK1cQGxuL+fPn48iRI4ge\naAEgwZAYqjBUcEfKc4yLuG2CoBMRjyDoRMQjCDoR8QiCTkQ8AcKaNWtQVFSEPXv2jHZThJ+QaJvB\nkWibcRHLIwg6EfEIgk5EPIKgExGPIOhExCMIOhHxCIJORDyCoBMRT4AgSVLjIUlSgyNJUuMilkcQ\ndCLiEQSdiHgEQSciHkHQiYhHEHQi4hEEnYh4AgTJ8xgPyfMYHMnzGBexPIKgExGPIOhExCMIOhHx\nCIJORDyCoBMRjyDoRMQjCDoR8QQIkiQ1HpIkNTiSJDUuYnkEQScinhHkr3/9K5YuXYrY2FiYTCac\nPHlytJsk+ICIZwTp7OzE/PnzsWXLFiiKMtrNEXxEFvQdQX75y18CAGprayFdzcBHLI8g6ETEIwg6\nEfEME2VlZbBYLLBYLIiMjMRnn3022k0S/Iz0eYaJFStWIC8vr++xzWbz6Xhr1qyB2ez8dxUXF6O4\nuNin4wr6EfEMExEREUhNTfX6+lCjbXv37pUkqcEQ8YwgLS0tqKurw+XLl0FEOHfuHIgIcXFxsFqt\no908YYhIn2cEOXDgALKzs1FYWAhFUVBcXIzZs2fjT3/602g3TdCB1LYZHKltMy4iHoNDROjo6IDF\nYpGqBIMh4hEEnUifRxB0IuIRBJ2IeARBJyIeQdCJiEcQdCLiEQSdiHgEQSciHkHQiYhHEHQi4hEE\nnfw/mBgIelLb1CsAAAAASUVORK5CYII=\n", "text/plain": [ "Graphics object consisting of 7 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# グラフ表示用の変数\n", "x, y = var('x, y')\n", "# 最初の1点の尤度関数をプロット\n", "v = data[0]\n", "lf_plt = contour_plot(lambda x, y : _likelihood(x, y, v), [x, -1, 1], [y, -1, 1], fill=False)\n", "(lf_plt + a_plt).show(aspect_ratio=1, figsize=(3))\n", "# 1個目の事後平均と分散を計算\n", "v = vector(xv[0:1])\n", "t = vector(tv[0:1])\n", "Phi = matrix([[ _phi(x,j) for j in range(2)] for x in v.list()])\n", "Phi_t = Phi.transpose()\n", "S_N_inv = (alpha*matrix((2),(2),1) + beta*Phi_t * Phi)\n", "S_N = S_N_inv.inverse()\n", "m_N = beta*S_N*Phi_t*t\n", "# 1個目の事後分布\n", "cnt_plt = contour_plot(lambda x, y : gauss_v(vector([x,y]), m_N, S_N), [x, -1, 1], [y, -1, 1], fill=False)\n", "(cnt_plt + a_plt).show(aspect_ratio=1, figsize=(3))\n", "# 6個のラインを引く\n", "L = matrix(cholesky(S_N.numpy()))\n", "l_plt = list_plot(zip(xv[0:1], tv[0:1]))\n", "for i in range(6):\n", " y = m_N + L*vector([random(), random()])\n", " l_plt += plot(lambda x : y[0] + y[1]*x, [x, -1, 1])\n", "l_plt.show(aspect_ratio=1, figsize=3, xmin=-1, xmax=1, ymin=-1, ymax=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

2点目のプロット

\n", "\t

\n", "\t\t2点目の尤度関数をwの真の値a=(-0.3, 0.5)(赤い点)と一緒にプロットしたのが、1番目の図です。\n", "\t

\n", "\t

\n", "\t\t2点から式(3.53)を使って求めた事後確率と真の値a=(-0.3, 0.5)(赤い点)と一緒にプロットしました。\n", "\t\t図3.7と同じように事後確率分布がかなり真の値に近くなっています。\n", "\t

\n", "\t

\n", "\t\t3番目は、事後分布からランダムに生成したwを元に引いた直線です。\n", "\t\t2点が求まっているので、直線は2点に近づいています。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nAAAASUVORK5CYII=\n", "text/plain": [ "Graphics object consisting of 2 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nrkJggg==\n", "text/plain": [ "Graphics object consisting of 2 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 7 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# グラフ表示用の変数\n", "x, y = var('x, y')\n", "# 第2点の尤度関数をプロット\n", "v = data[1]\n", "lf_plt = contour_plot(lambda x, y : _likelihood(x, y, v), [x, -1, 1], [y, -1, 1], fill=False)\n", "(lf_plt + a_plt).show(aspect_ratio=1, figsize=3)\n", "# 2点目の事後平均と分散を計算\n", "v = vector(xv[0:2])\n", "t = vector(tv[0:2])\n", "Phi = matrix([[ _phi(x,j) for j in range(2)] for x in v.list()])\n", "Phi_t = Phi.transpose()\n", "S_N_inv = (alpha*matrix((2),(2),1) + beta*Phi_t * Phi)\n", "S_N = S_N_inv.inverse()\n", "m_N = beta*S_N*Phi_t*t\n", "# 2点目の事後分布\n", "cnt_plt = contour_plot(lambda x, y : gauss_v(vector([x,y]), m_N, S_N), [x, -1, 1], [y, -1, 1], fill=False)\n", "(cnt_plt + a_plt).show(aspect_ratio=1, figsize=3)\n", "# 6個のラインを引く\n", "L = matrix(cholesky(S_N.numpy()))\n", "l_plt = list_plot(zip(xv[0:2], tv[0:2]))\n", "for i in range(6):\n", " y = m_N + L*vector([random(), random()])\n", " l_plt += plot(lambda x : y[0] + y[1]*x, [x, -1, 1])\n", "l_plt.show(aspect_ratio=1, figsize=3, xmin=-1, xmax=1, ymin=-1, ymax=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\t

20点目のプロット

\n", "\t

\n", "\t\t20点になると事後確率と真の値a=(-0.3, 0.5)(赤い点)にかなり接近した形になります。\n", "\t

\n", "\t

\n", "\t\tベイズ的なフィッティングがどうやって学習するのかこの例を通じて実感することができました。\n", "\t\tとても貴重な例題だと思います。\n", "\t

\n", "" ] }, { "cell_type": "code", "execution_count": 8, "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" }, { "data": { "image/png": "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\n", "text/plain": [ "Graphics object consisting of 7 graphics primitives" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# グラフ表示用の変数\n", "x, y = var('x, y')\n", "# 20個目の事後平均と分散を計算\n", "v = vector(xv)\n", "t = vector(tv)\n", "Phi = matrix([[ _phi(x,j) for j in range(2)] for x in v.list()])\n", "Phi_t = Phi.transpose()\n", "S_N_inv = (alpha*matrix((2),(2),1) + beta*Phi_t * Phi)\n", "S_N = S_N_inv.inverse()\n", "m_N = beta*S_N*Phi_t*t\n", "# 20個目の事後分布\n", "cnt_plt = contour_plot(lambda x, y : gauss_v(vector([x,y]), m_N, S_N), [x, -1, 1], [y, -1, 1], fill=False)\n", "(cnt_plt + a_plt).show(aspect_ratio=1, figsize=3)\n", "# 6個のラインを引く\n", "L = matrix(cholesky(S_N.numpy()))\n", "y = m_N + L*vector([random(), random()])\n", "l_plt = data_plt\n", "for i in range(6):\n", " y = m_N + L*vector([random(), random()])\n", " l_plt += plot(lambda x : y[0] + y[1]*x, [x, -1, 1])\n", "l_plt.show(aspect_ratio=1, figsize=3, xmin=-1, xmax=1, ymin=-1, ymax=1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "SageMath 7.5.1", "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.13" } }, "nbformat": 4, "nbformat_minor": 0 }