Last active
December 9, 2018 08:59
-
-
Save MatsuuraKentaro/3a46542c6092ef1ac061c387830bae58 to your computer and use it in GitHub Desktop.
statistical modeling with TensorFlow
This file contains hidden or 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
Time | Date | Y | |
---|---|---|---|
0 | 2012-03-01 | 28140 | |
1 | 2012-03-08 | 28850 | |
2 | 2012-03-15 | 34230 | |
3 | 2012-03-22 | 29260 | |
4 | 2012-03-29 | 29200 | |
5 | 2012-04-05 | 33940 | |
7 | 2012-04-19 | 24800 | |
8 | 2012-04-26 | 26060 | |
9 | 2012-05-03 | 26490 | |
10 | 2012-05-10 | 31050 | |
11 | 2012-05-17 | 28250 | |
14 | 2012-06-07 | 25170 | |
15 | 2012-06-14 | 31560 | |
16 | 2012-06-21 | 27520 | |
17 | 2012-06-28 | 21340 | |
18 | 2012-07-05 | 27640 | |
20 | 2012-07-19 | 22790 | |
21 | 2012-07-26 | 24620 | |
23 | 2012-08-09 | 23020 | |
24 | 2012-08-16 | 23080 | |
25 | 2012-08-23 | 20580 | |
26 | 2012-08-30 | 26290 | |
28 | 2012-09-13 | 21230 | |
29 | 2012-09-20 | 26750 | |
30 | 2012-09-27 | 24430 | |
32 | 2012-10-11 | 25200 | |
35 | 2012-11-01 | 24100 | |
41 | 2012-12-13 | 21000 | |
42 | 2012-12-20 | 18740 | |
43 | 2012-12-27 | 26210 | |
44 | 2013-01-03 | 23620 | |
45 | 2013-01-10 | 18560 | |
46 | 2013-01-17 | 19780 | |
47 | 2013-01-24 | 19500 | |
48 | 2013-01-31 | 21920 | |
50 | 2013-02-14 | 20460 | |
53 | 2013-03-07 | 22340 | |
54 | 2013-03-14 | 18890 | |
56 | 2013-03-28 | 16280 | |
58 | 2013-04-11 | 18940 | |
59 | 2013-04-18 | 18970 | |
61 | 2013-05-02 | 17380 | |
63 | 2013-05-16 | 16240 | |
64 | 2013-05-23 | 16020 | |
65 | 2013-05-30 | 18240 | |
68 | 2013-06-20 | 18940 | |
69 | 2013-06-27 | 21040 | |
70 | 2013-07-04 | 16180 | |
71 | 2013-07-11 | 13380 | |
74 | 2013-08-01 | 15370 | |
75 | 2013-08-08 | 18100 | |
78 | 2013-08-29 | 16240 | |
79 | 2013-09-05 | 15600 | |
80 | 2013-09-12 | 15700 | |
83 | 2013-10-03 | 16340 | |
85 | 2013-10-17 | 15580 | |
86 | 2013-10-24 | 16690 | |
87 | 2013-10-31 | 15500 | |
90 | 2013-11-21 | 16000 | |
91 | 2013-11-28 | 15180 | |
92 | 2013-12-05 | 14600 | |
93 | 2013-12-12 | 13280 | |
94 | 2013-12-19 | 16080 | |
97 | 2014-01-09 | 15960 | |
98 | 2014-01-16 | 13270 | |
99 | 2014-01-23 | 12160 | |
100 | 2014-01-30 | 12560 | |
101 | 2014-02-06 | 13830 | |
103 | 2014-02-20 | 13020 | |
105 | 2014-03-06 | 13420 | |
106 | 2014-03-13 | 12460 | |
107 | 2014-03-20 | 11410 | |
108 | 2014-03-27 | 12980 | |
109 | 2014-04-03 | 14780 | |
111 | 2014-04-17 | 14320 | |
113 | 2014-05-01 | 13410 | |
114 | 2014-05-08 | 14200 | |
115 | 2014-05-15 | 13890 | |
116 | 2014-05-22 | 13620 | |
117 | 2014-05-29 | 12640 | |
119 | 2014-06-12 | 12170 | |
120 | 2014-06-19 | 13640 | |
121 | 2014-06-26 | 12260 | |
122 | 2014-07-03 | 12840 | |
123 | 2014-07-10 | 13140 | |
125 | 2014-07-24 | 12630 | |
126 | 2014-07-31 | 13800 | |
127 | 2014-08-07 | 13580 | |
128 | 2014-08-14 | 12240 | |
129 | 2014-08-21 | 13380 | |
133 | 2014-09-18 | 12920 | |
135 | 2014-10-02 | 15090 | |
136 | 2014-10-09 | 11650 | |
138 | 2014-10-23 | 16320 | |
139 | 2014-10-30 | 11670 | |
140 | 2014-11-06 | 14460 | |
142 | 2014-11-20 | 11520 | |
143 | 2014-11-27 | 11580 | |
144 | 2014-12-04 | 11480 | |
145 | 2014-12-11 | 12780 | |
146 | 2014-12-18 | 11640 | |
148 | 2015-01-01 | 16630 | |
150 | 2015-01-15 | 14580 | |
151 | 2015-01-22 | 14560 | |
153 | 2015-02-05 | 12180 | |
155 | 2015-02-19 | 13110 | |
156 | 2015-02-26 | 14260 | |
157 | 2015-03-05 | 12980 | |
158 | 2015-03-12 | 14860 | |
159 | 2015-03-19 | 12980 | |
160 | 2015-03-26 | 14980 | |
161 | 2015-04-02 | 12140 | |
162 | 2015-04-09 | 11880 | |
163 | 2015-04-16 | 18640 | |
164 | 2015-04-23 | 12930 | |
165 | 2015-04-30 | 13890 | |
166 | 2015-05-07 | 14360 | |
167 | 2015-05-14 | 12840 | |
168 | 2015-05-21 | 14190 | |
169 | 2015-05-28 | 13980 | |
170 | 2015-06-04 | 13190 | |
172 | 2015-06-18 | 13440 | |
173 | 2015-06-25 | 16680 | |
174 | 2015-07-02 | 12520 | |
175 | 2015-07-09 | 12080 | |
176 | 2015-07-16 | 13530 | |
177 | 2015-07-23 | 13910 | |
178 | 2015-07-30 | 14080 | |
181 | 2015-08-20 | 15290 | |
182 | 2015-08-27 | 13020 | |
183 | 2015-09-03 | 12360 | |
184 | 2015-09-10 | 13160 | |
186 | 2015-09-24 | 15060 | |
187 | 2015-10-01 | 13590 | |
189 | 2015-10-15 | 12820 | |
190 | 2015-10-22 | 13770 | |
192 | 2015-11-05 | 13610 | |
193 | 2015-11-12 | 12320 | |
194 | 2015-11-19 | 11820 | |
195 | 2015-11-26 | 16460 | |
196 | 2015-12-03 | 14320 | |
197 | 2015-12-10 | 11900 | |
198 | 2015-12-17 | 12680 | |
202 | 2016-01-14 | 12820 | |
204 | 2016-01-28 | 12420 | |
205 | 2016-02-04 | 12250 | |
206 | 2016-02-11 | 11780 | |
208 | 2016-02-25 | 14790 | |
209 | 2016-03-03 | 12380 | |
210 | 2016-03-10 | 12490 | |
214 | 2016-04-07 | 10820 | |
215 | 2016-04-14 | 14020 | |
216 | 2016-04-21 | 11260 | |
217 | 2016-04-28 | 10860 | |
218 | 2016-05-05 | 10240 | |
219 | 2016-05-12 | 10100 | |
220 | 2016-05-19 | 10760 | |
222 | 2016-06-02 | 12530 | |
223 | 2016-06-09 | 11940 | |
224 | 2016-06-16 | 10640 | |
226 | 2016-06-30 | 10120 | |
227 | 2016-07-07 | 10030 | |
229 | 2016-07-21 | 9580 | |
230 | 2016-07-28 | 12790 | |
233 | 2016-08-18 | 9540 | |
236 | 2016-09-08 | 9840 | |
237 | 2016-09-15 | 10370 | |
238 | 2016-09-22 | 10190 | |
239 | 2016-09-29 | 9060 | |
240 | 2016-10-06 | 8980 | |
241 | 2016-10-13 | 9160 | |
242 | 2016-10-20 | 11100 | |
243 | 2016-10-27 | 8460 | |
245 | 2016-11-10 | 11280 | |
246 | 2016-11-17 | 9160 | |
247 | 2016-11-24 | 8020 | |
249 | 2016-12-08 | 9480 | |
250 | 2016-12-15 | 8640 | |
251 | 2016-12-22 | 8400 | |
252 | 2016-12-29 | 8520 | |
253 | 2017-01-05 | 8830 | |
254 | 2017-01-12 | 10180 | |
255 | 2017-01-19 | 8540 | |
256 | 2017-01-26 | 9520 | |
258 | 2017-02-09 | 8320 | |
259 | 2017-02-16 | 7160 | |
260 | 2017-02-23 | 7860 | |
261 | 2017-03-02 | 7820 | |
263 | 2017-03-16 | 9200 | |
264 | 2017-03-23 | 10080 | |
265 | 2017-03-30 | 9280 | |
266 | 2017-04-06 | 7780 | |
267 | 2017-04-13 | 6570 | |
269 | 2017-04-27 | 7770 | |
270 | 2017-05-04 | 8310 | |
271 | 2017-05-11 | 8340 | |
272 | 2017-05-18 | 8050 | |
273 | 2017-05-25 | 6480 | |
274 | 2017-06-01 | 8060 | |
275 | 2017-06-08 | 7020 | |
277 | 2017-06-22 | 7280 | |
279 | 2017-07-06 | 7120 | |
280 | 2017-07-13 | 5970 | |
282 | 2017-07-27 | 7210 | |
283 | 2017-08-03 | 6700 | |
284 | 2017-08-10 | 6910 | |
285 | 2017-08-17 | 6870 | |
286 | 2017-08-24 | 6870 | |
288 | 2017-09-07 | 6470 | |
290 | 2017-09-21 | 7320 | |
291 | 2017-09-28 | 7180 | |
292 | 2017-10-05 | 7180 | |
293 | 2017-10-12 | 6000 | |
294 | 2017-10-19 | 7700 | |
295 | 2017-10-26 | 6300 | |
297 | 2017-11-09 | 5380 | |
298 | 2017-11-16 | 6120 | |
299 | 2017-11-23 | 6870 | |
300 | 2017-11-30 | 5640 | |
301 | 2017-12-07 | 5620 | |
302 | 2017-12-14 | 5520 | |
304 | 2017-12-28 | 5800 | |
305 | 2018-01-04 | 6260 | |
306 | 2018-01-11 | 4950 | |
307 | 2018-01-18 | 6180 | |
309 | 2018-02-01 | 7420 | |
310 | 2018-02-08 | 6900 | |
311 | 2018-02-15 | 6530 | |
313 | 2018-03-01 | 5700 | |
314 | 2018-03-08 | 5840 | |
316 | 2018-03-22 | 6000 | |
317 | 2018-03-29 | 5340 | |
320 | 2018-04-19 | 6200 | |
321 | 2018-04-26 | 6840 | |
323 | 2018-05-10 | 6470 | |
326 | 2018-05-31 | 6020 | |
327 | 2018-06-07 | 6460 | |
329 | 2018-06-21 | 6060 | |
330 | 2018-06-28 | 6700 | |
331 | 2018-07-05 | 5380 | |
332 | 2018-07-12 | 5640 | |
333 | 2018-07-19 | 7050 | |
335 | 2018-08-02 | 4940 | |
336 | 2018-08-09 | 5280 | |
340 | 2018-09-06 | 6440 | |
342 | 2018-09-20 | 7160 | |
343 | 2018-09-27 | 6090 | |
347 | 2018-10-25 | 5720 | |
348 | 2018-11-01 | 5500 | |
349 | 2018-11-08 | 5950 |
This file contains hidden or 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": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import tensorflow as tf\n", | |
"import numpy as np\n", | |
"import matplotlib.pyplot as plt" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### デモデータの生成" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"np.random.seed(123)\n", | |
"n_data = 50\n", | |
"a_true = 100.0\n", | |
"b_true = 1.0\n", | |
"sigma_true = 2.0\n", | |
"d_X = np.arange(n_data)\n", | |
"d_Y = np.random.normal(a_true + b_true*d_X, sigma_true, n_data)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### 可視化" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.collections.PathCollection at 0x25a02e07630>" | |
] | |
}, | |
"execution_count": 3, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.scatter(d_X, d_Y, alpha=0.5)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### モデルの定義" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"tf.reset_default_graph()\n", | |
"\n", | |
"## データの型定義\n", | |
"X = tf.placeholder(tf.float32, shape=[None])\n", | |
"Y = tf.placeholder(tf.float32, shape=[None])\n", | |
"\n", | |
"## 確率変数の型定義および初期化\n", | |
"# 制約のないraw変数\n", | |
"a = tf.Variable(100.0, dtype=tf.float32)\n", | |
"b = tf.Variable(1.0, dtype=tf.float32)\n", | |
"sigma_raw = tf.Variable(0.2, dtype=tf.float32)\n", | |
"\n", | |
"# raw変数から推定に使うparametersを作る\n", | |
"sigma = tf.exp(sigma_raw)\n", | |
"mu = a + b*X\n", | |
"\n", | |
"# 計算しておくと後で便利なparameters\n", | |
"mu_upper = mu + 1.96*sigma\n", | |
"mu_lower = mu - 1.96*sigma\n", | |
"\n", | |
"## Costの定義\n", | |
"cost_func = - tf.reduce_sum(tf.distributions.Normal(loc=mu, scale=sigma)\n", | |
" .log_prob(Y)) " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### 最適化" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"EPOCH: 100, cost: 114.066\n", | |
"EPOCH: 200, cost: 114.062\n", | |
"EPOCH: 300, cost: 114.062\n", | |
"EPOCH: 400, cost: 114.062\n", | |
"EPOCH: 500, cost: 114.062\n", | |
"EPOCH: 600, cost: 114.062\n", | |
"EPOCH: 700, cost: 114.062\n", | |
"EPOCH: 800, cost: 114.062\n", | |
"EPOCH: 900, cost: 114.062\n", | |
"EPOCH: 1000, cost: 114.062\n", | |
"a: 99.644905, b: 1.015577, sigma: 2.368601\n" | |
] | |
} | |
], | |
"source": [ | |
"n_epochs = 1000\n", | |
"n_epochs_report = n_epochs // 10\n", | |
"\n", | |
"train = tf.train.AdamOptimizer(0.03).minimize(cost_func)\n", | |
"sess = tf.Session()\n", | |
"sess.run(tf.global_variables_initializer())\n", | |
"\n", | |
"for epoch in range(n_epochs):\n", | |
" cost_val, _ = sess.run([cost_func, train], feed_dict={X: d_X, Y: d_Y})\n", | |
" if (epoch+1) % n_epochs_report == 0:\n", | |
" print('EPOCH: %d, cost: %.3f' % (epoch+1, cost_val))\n", | |
"\n", | |
"a_est, b_est, sigma_est = sess.run([a, b, sigma])\n", | |
"mu_est, mu_upper_est, mu_lower_est = sess.run([mu, mu_upper, mu_lower], feed_dict={X: d_X})\n", | |
"print('a: %f, b: %f, sigma: %f' % (a_est, b_est, sigma_est))\n", | |
"\n", | |
"sess.close()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### 結果の可視化" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"<matplotlib.collections.PathCollection at 0x25a04022278>" | |
] | |
}, | |
"execution_count": 6, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<Figure size 432x288 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"plt.fill_between(d_X, mu_lower_est, mu_upper_est, color='b', alpha=0.2)\n", | |
"plt.plot(d_X, mu_est)\n", | |
"plt.scatter(d_X, d_Y, alpha=0.5)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"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.7" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment