Created
October 20, 2017 15:06
-
-
Save scapegoat06/90b2d06e8e338ceb68b42ffcecabfa57 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 63, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"from matplotlib import rc\n", | |
"%matplotlib inline\n", | |
"import numpy as np\n", | |
"import daft\n", | |
"rc(\"font\", family=\"DejaVu Sans\", size=15)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 64, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"class PGM:\n", | |
" def __init__(self,node_pos,node_list,edges_list,plate_list):\n", | |
" self.col = node_pos.shape[0]+1\n", | |
" self.line = node_pos.shape[1]+2\n", | |
" self.pgm = daft.PGM(shape=[self.line, self.col])\n", | |
" self.node_pos = node_pos\n", | |
" self.node_list = node_list\n", | |
" self.edge_list = edge_list\n", | |
" self.node_size = 1.0\n", | |
" self.node_info = {}\n", | |
" self.plate_depend = plate_list[\"depend\"]\n", | |
" self.plate_independ = plate_list[\"independ\"]\n", | |
" \n", | |
" def set_node(self):\n", | |
" for k,v in self.node_list.items():\n", | |
" y,x = np.where(self.node_pos==k)\n", | |
" self.pgm.add_node(daft.Node(k,v,x[0]+2,self.col-y[0]-1, scale = self.node_size))\n", | |
" self.node_info[k] = [x[0]+2,self.col-y[0]-1]\n", | |
" \n", | |
" def set_edge(self):\n", | |
" for src,dst in self.edge_list:\n", | |
" self.pgm.add_edge(src,dst)\n", | |
" \n", | |
" #Plateで囲まれるノードの四隅の座標計算\n", | |
" def calc_set_pos(self,sets):\n", | |
" nodes_pos_x = [self.node_info[node][0] for node in sets]\n", | |
" nodes_pos_y = [self.node_info[node][1] for node in sets]\n", | |
" max_x,min_x = max(nodes_pos_x),min(nodes_pos_x)\n", | |
" max_y,min_y = max(nodes_pos_y),min(nodes_pos_y)\n", | |
" \n", | |
" return min_x,min_y,max_x,max_y\n", | |
" \n", | |
" \n", | |
" def set_plate(self):\n", | |
" \"\"\"under-construction\"\"\"\n", | |
" #交わるplate_set\n", | |
" n = len(self.plate_depend )\n", | |
" for i,plate in enumerate(self.plate_depend):\n", | |
" label = plate[0]\n", | |
" nodes_set = plate[1]\n", | |
" min_x,min_y,max_x,max_y = self.calc_set_pos(nodes_set)\n", | |
" \n", | |
" plate = daft.Plate([min_x-self.node_size/2-0.25*(n-i), \n", | |
" min_y-self.node_size/2+0.05*i, \n", | |
" (max_x-min_x)+(self.node_size/2+0.25*(n-i))*2, \n", | |
" (max_y-min_y)+(self.node_size/2-0.05*i)*2], \n", | |
" label=label)\n", | |
" self.pgm.add_plate(plate)\n", | |
"\n", | |
" #独立したplate_set\n", | |
" for plate in self.plate_independ:\n", | |
" label = plate[0]\n", | |
" nodes_set = plate[1]\n", | |
" min_x,min_y,max_x,max_y = self.calc_set_pos(nodes_set)\n", | |
" \n", | |
" plate = daft.Plate([min_x-self.node_size/2-0.1, \n", | |
" min_y-self.node_size/2+0.05, \n", | |
" (self.node_size/2+0.1*1)*2, \n", | |
" (self.node_size/2-0.05*1)*2], \n", | |
" label=label)\n", | |
" self.pgm.add_plate(plate)\n", | |
" \n", | |
" def show(self):\n", | |
" self.pgm.render()\n", | |
" \n", | |
" def save(self):\n", | |
" self.pgm.figure.savefig(\"graph.png\")\n", | |
"\n", | |
"\n", | |
"\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Latent Dirichlet Allocation" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 62, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x11589ae80>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"#ノード定義(文字)\n", | |
"node_list = {\"alpha\":r\"$\\alpha$\",\n", | |
" \"theta\": r\"$\\theta$\",\n", | |
" \"z\":r\"$z$\",\n", | |
" \"w\":r\"$w_i$\",\n", | |
" \"phi\": r\"$\\phi$\",\n", | |
" \"beta\": r\"$\\beta$\"}\n", | |
"\n", | |
"#ノード定義(位置関係)\n", | |
"node_pos = np.array([[\"alpha\",\"\" ],\n", | |
" [\"theta\",\"\"],\n", | |
" [\"z\", \"\"],\n", | |
" [\"w\", \"\"],\n", | |
" [\"phi\" ,\"\"],\n", | |
" [\"\", \"beta\"]])\n", | |
"\n", | |
"\n", | |
"#エッジ定義(始点->終点)\n", | |
"edge_list = [(\"alpha\", \"theta\"),\n", | |
" (\"theta\", \"z\"),\n", | |
" (\"z\", \"w\"),\n", | |
" (\"beta\", \"phi\"),\n", | |
" (\"phi\", \"w\")]\n", | |
"\n", | |
"#プレート定義(囲む変数の集合で定義)\n", | |
"plate_list = {\"depend\":[[r\"$D$\",[\"theta\",\"z\",\"w\"]],[r\"$N$\",[\"z\",\"w\"]]],\n", | |
" \"independ\":[[r\"$K$\",[\"phi\"]]]}\n", | |
"\n", | |
"\n", | |
"\n", | |
"graph = PGM(node_pos,node_list,edge_list,plate_list)\n", | |
"graph.set_node()\n", | |
"graph.set_edge()\n", | |
"graph.set_plate()\n", | |
"graph.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Pachinko Allocation Model" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 66, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"node_list = {\"alpha0\":r\"$\\alpha_0$\",\n", | |
" \"theta\": r\"$\\theta$\",\n", | |
" \"y\":r\"$y$\",\n", | |
" \"alpha\":r\"$\\alpha$\",\n", | |
" \"thetas\": r\"$\\theta_s$\",\n", | |
" \"z\":r\"$z$\",\n", | |
" \"w\":r\"$w_i$\",\n", | |
" \"phi\": r\"$\\phi$\",\n", | |
" \"beta\": r\"$\\beta$\"}\n", | |
"\n", | |
"node_pos = np.array([[\"alpha0\",\"alpha\" ,\"\",\"\",\"\"],\n", | |
" [\"theta\", \"thetas\" ,\"\",\"\",\"\"],\n", | |
" [\"y\", \"z\" ,\"w\",\"\",\"\"],\n", | |
" [\"\", \"\" ,\"phi\",\"\",\"\"],\n", | |
" [\"\", \"\" ,\"beta\",\"\",\"\"]])\n", | |
"\n", | |
"edge_list = [(\"alpha0\", \"theta\"),\n", | |
" (\"theta\", \"y\"),\n", | |
" (\"alpha\", \"thetas\"),\n", | |
" (\"thetas\", \"z\"),\n", | |
" (\"y\", \"z\"),\n", | |
" (\"z\", \"w\"),\n", | |
" (\"beta\", \"phi\"),\n", | |
" (\"phi\", \"w\")]\n", | |
"\n", | |
"plate_list = {\"depend\":[[r\"$D$\",[\"theta\",\"thetas\",\"y\",\"z\",\"w\"]],\n", | |
" [r\"$N$\",[\"y\",\"z\",\"w\"]],\n", | |
" [r\"$S$\",[\"alpha\",\"thetas\"]]],\n", | |
" \"independ\":[[r\"$K$\",[\"phi\"]]]}" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 67, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\nOCb88AAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x115792978>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"graph = PGM(node_pos,node_list,edge_list,plate_list)\n", | |
"graph.set_node()\n", | |
"graph.set_edge()\n", | |
"graph.set_plate()\n", | |
"graph.show()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.6.1" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment