SlideShare a Scribd company logo
1 of 21
Download to read offline
pythonでカスタム状態空間モデル
2020-10-27
濱川 普紀
自己紹介
大阪在住
職業:某繊維メーカーで工場のスマート化に従事しています
Python歴:2年
趣味:電子音楽制作、ライブ活動
Name : 濱川普紀 Hamakawa Hirotoshi 
@hamage9
経歴
2000年8月
某産業機械メーカーに就職
電気設計を従事
2016年7月
某産業機械メーカーで IoT開発に従事
2020年3月
某繊維メーカーに就職
工場のスマート化に従事
1997年4月
大学を卒業して電子部品を扱う某商社に
就職。
その後転々と転職。。。
1.状態空間モデルとは
2.観測方程式と状態方程式
3.カスタムモデルの意義
4.今回使用するモデル
5.実装開始
6.データをDataFrameに格納
7.モデルの定義
8.学習、サマリー確認
9.推定と予測
Agenda
状態空間モデルとは
・元々は物理モデルやシステム同定、制御分野などで使用されており、ロケットの軌道の推定
と修正制御に使用されていたことが有名です。
・時系列解析にベイズ統計の要素を加えたものという解釈もできると思います。
・一番の特徴は見えない「状態」を推定できることです。センサなどで観測したデータにはノイ
ズ(主にセンシング誤差など)が含まれていると考え、そのデータの真の状態を推定します。
(本当の真の状態は神のみぞ知る。)
観測方程式と状態方程式
モデルの構造は、観測方程式(観測モデルという記述の文献もあり)と状態方程式(システム
モデルという記述の文献もあり)から成っています。
カスタムモデルの意義
状態空間モデルの中でもカスタムモデルの意義は下記のようなことにあります。
・状態空間モデルの真の力は、カスタムモデルの作成と推定を可能にすることです。
(statsmodelsのカスタムモデルの説明ページ の引用(Google翻訳))
・状態空間モデルとは、「たくさんの統計モデルを統一的に表すことができる統計モデ
ル」なのです。だから状態空間モデルが注目を浴びてきているのです。( 馬場さんの
サイトlogics of blueの引用)
・私は時系列解析に物理的な変数を組み込むことにより解釈可能なモデルを構築す
ることができることだと思っています。
今回使用するモデル
・A:定数
・B:定数
・z : 外生変数(exogenous variable)
実装開始
さてここからPythonコードです。まずはライブラリのインポートなど。
import numpy as np
import pandas as pd
import datetime
import statsmodels.api as sm
import matplotlib.pyplot as plt
%matplotlib inline
plt.rc("figure", figsize=(16,8))
plt.rc("font", size=15)
実装開始
テスト用のデータを生成。
def gen_data_for_model1():
nobs = 1000
rs = np.random.RandomState(seed=93572)
Ht = 5
Tt = 1.001
A = 0.1
B = -0.007
Qt = 0.01
var_z = 0.1
et = rs.normal(scale=Ht**0.5, size=nobs)
z = np.cumsum(rs.normal(size=nobs, scale=var_z**0.05))
Et = rs.normal(scale=Qt**0.5, size=nobs)
xt_1 = 50
x = []
for i in range(nobs):
xt = Tt * xt_1
x.append(xt)
xt_1 = xt
xt = np.array(x)
xt = xt + A * np.exp(B/z) + Et
yt = xt + et
return yt, xt, z
yt, xt, z = gen_data_for_model1()
_ = plt.plot(yt,color = "r")
_ = plt.plot(xt, color="b")
実装開始
テスト用のデータを生成。観測されたデータと、観測できない真の状態。
ー:観測データ
ー:状態プロセス
データをDataFrameに格納
データをDataFrameに格納。
df = pd.DataFrame ()
df['y'] = yt
df['x'] = xt
df['z'] = z
df
データをDataFrameに格納
予測をするためにindexをdatetimeにする。
st = datetime.datetime.strptime("2001/1/1 0:00", '%Y/%m/%d %H:%M')
date = []
for i in range(1000):
if i == 0:
d = st
dt = d.strftime('%Y/%m/%d %H:%M')
date.append(dt)
d += datetime.timedelta(days=1)
df['date'] = date
df['date'] = pd.to_datetime(df['date'] )
df = df.set_index("date")
df
モデルの定義
class custom(sm.tsa.statespace.MLEModel):
param_names = ['T', 'A', 'B', 'Ht', 'Qt']
start_params = [1., 1., 0., 1., 1]
def __init__(self, endog, exog):
exog = np.squeeze(exog) # 外生変数は1つのため次元削減
# endog:観測データ(y)、exog:外生変数(z)、k_state=1:状態プロセスの次元
super().__init__(endog, exog=exog, k_states=1, initialization='diffuse')
self.k_exog = 1 # 外生変数の次元は1である
# Z(design matrix)は単位行列である
self['design', 0, 0] = 1.
# R(selection matrix)は単位行列である
self['selection', 0, 0] = 1.
# c_t(state_intercept)は時変数であると定義
self['state_intercept'] = np.zeros((1, self.nobs))
def clone(self, endog, exog, **kwargs):
# 時変状態空間行列を含むカスタムモデルであることを定義
return self._clone_from_init_kwds(endog, exog=exog, **kwargs)
モデルの定義
def transform_params(self, params):
# 分散は正数である必要があるので一旦2乗する
params[3:] = params[3:]**2
return params
def untransform_params(self, params):
# R2乗したものを1/2乗して元の大きさに戻す(平方根)
params[3:] = params[3:]**0.5
return params
def update(self, params, **kwargs):
# 更新するための定義
params = super().update(params, **kwargs)
# T = T:0番目のパラメータをtransition matrixに代入
self['transition', 0, 0] = params[0]
# c_t = A * exp(B / z_t):1,2番目のパラメータをstate_interceprに代入
self['state_intercept', 0, :] = params[1] * np.exp(params[2] / self.exog)
# Ht:3番目のパラメータを観測ノイズの分散に代入
self['obs_cov', 0, 0] = params[3]
# Qt:4番目のパラメータを状態ノイズの分散に代入
self['state_cov', 0, 0] = params[4]
参考文献
・statsmodelsのMLEModelの説明ページ
・statsmodelsのカスタムモデルの説明ページ
学習、サマリー確認
推定用データと予測用データに分ける
df_test = df.iloc[:800,:]
df_train = df.iloc[800:,:]
学習、サマリー確認
mod = custom(df_test['y'], df_test['z'])
res = mod.fit()
print(res.summary())
# 初めに生成したダミーデータ
Tt = 1.001
A = 0.1
B = -0.007
Ht = 5
Qt = 0.01
学習、サマリー確認
推定結果をDataFrameに格納
ss = pd.DataFrame(res.smoothed_state.T, columns=['x'], index=df_test.index)
ss
推定と予測
推定と予測
predict = res.get_prediction()
forecast = res.get_forecast(df.index[-1], exog = df_train['z'].values)
・予測する場合は、どの時点まで予測するかを指定する必要があります。(今回は
df.index[-1]で指定)
・外生変数をモデルに使用する場合は、予測の時に「 exog=」の引数でデータを指定
する必要があります。今回は全てがダミーデータですが、実際に予測で使用する場合
は、過去のデータなどからダミーデータを作成する必要があります。
・データの間隔が不均一なデータは予測に使えません。
(同じく外生変数を使った SARIMAXなども同じことが言えます)
推定と予測
可視化
fig, ax = plt.subplots()
y = df['y']
# Plot the results
y.plot(ax=ax,label='y')
predict.predicted_mean.plot(label='x')
predict_ci = predict.conf_int(alpha=0.05)
predict_index = predict_ci.index
ax.fill_between(predict_index[2:], predict_ci.iloc[2:, 0], predict_ci.iloc[2:, 1], alpha=0.1)
forecast.predicted_mean.plot(ax=ax, style='r', label='forecast')
forecast_ci = forecast.conf_int()
forecast_index = forecast_ci.index
ax.fill_between(forecast_index, forecast_ci.iloc[:, 0], forecast_ci.iloc[:, 1], alpha=0.1)
# Cleanup the image
legend = ax.legend(loc='best');
fig.savefig('custom_statespace.png')
推定と予測
可視化
ご静聴ありがとうございました
濱川 普紀
21

More Related Content

What's hot

機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)Kota Matsui
 
社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森Masashi Komori
 
アンサンブル木モデル解釈のためのモデル簡略化法
アンサンブル木モデル解釈のためのモデル簡略化法アンサンブル木モデル解釈のためのモデル簡略化法
アンサンブル木モデル解釈のためのモデル簡略化法Satoshi Hara
 
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章Shushi Namba
 
数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理Taiji Suzuki
 
5分でわかるかもしれないglmnet
5分でわかるかもしれないglmnet5分でわかるかもしれないglmnet
5分でわかるかもしれないglmnetNagi Teramo
 
【DL輪読会】Representational Continuity for Unsupervised Continual Learning ( ICLR...
【DL輪読会】Representational Continuity for Unsupervised Continual Learning ( ICLR...【DL輪読会】Representational Continuity for Unsupervised Continual Learning ( ICLR...
【DL輪読会】Representational Continuity for Unsupervised Continual Learning ( ICLR...Deep Learning JP
 
ベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learning
ベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learningベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learning
ベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learningssuserca2822
 
ノンパラメトリックベイズを用いた逆強化学習
ノンパラメトリックベイズを用いた逆強化学習ノンパラメトリックベイズを用いた逆強化学習
ノンパラメトリックベイズを用いた逆強化学習Shota Ishikawa
 
ベイズ推定の概要@広島ベイズ塾
ベイズ推定の概要@広島ベイズ塾ベイズ推定の概要@広島ベイズ塾
ベイズ推定の概要@広島ベイズ塾Yoshitake Takebayashi
 
FDRの使い方 (Kashiwa.R #3)
FDRの使い方 (Kashiwa.R #3)FDRの使い方 (Kashiwa.R #3)
FDRの使い方 (Kashiwa.R #3)Haruka Ozaki
 
ベイズファクターとモデル選択
ベイズファクターとモデル選択ベイズファクターとモデル選択
ベイズファクターとモデル選択kazutantan
 
機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化gree_tech
 
Rパッケージ“KFAS”を使った時系列データの解析方法
Rパッケージ“KFAS”を使った時系列データの解析方法Rパッケージ“KFAS”を使った時系列データの解析方法
Rパッケージ“KFAS”を使った時系列データの解析方法Hiroki Itô
 
状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38horihorio
 
道具としての機械学習:直感的概要とその実際
道具としての機械学習:直感的概要とその実際道具としての機械学習:直感的概要とその実際
道具としての機械学習:直感的概要とその実際Ichigaku Takigawa
 
グラフィカル Lasso を用いた異常検知
グラフィカル Lasso を用いた異常検知グラフィカル Lasso を用いた異常検知
グラフィカル Lasso を用いた異常検知Yuya Takashina
 
Deep State Space Models for Time Series Forecasting の紹介
Deep State Space Models for Time Series Forecasting の紹介Deep State Space Models for Time Series Forecasting の紹介
Deep State Space Models for Time Series Forecasting の紹介Chihiro Kusunoki
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類Shintaro Fukushima
 

What's hot (20)

機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)
 
社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森
 
アンサンブル木モデル解釈のためのモデル簡略化法
アンサンブル木モデル解釈のためのモデル簡略化法アンサンブル木モデル解釈のためのモデル簡略化法
アンサンブル木モデル解釈のためのモデル簡略化法
 
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
 
数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理数学で解き明かす深層学習の原理
数学で解き明かす深層学習の原理
 
5分でわかるかもしれないglmnet
5分でわかるかもしれないglmnet5分でわかるかもしれないglmnet
5分でわかるかもしれないglmnet
 
【DL輪読会】Representational Continuity for Unsupervised Continual Learning ( ICLR...
【DL輪読会】Representational Continuity for Unsupervised Continual Learning ( ICLR...【DL輪読会】Representational Continuity for Unsupervised Continual Learning ( ICLR...
【DL輪読会】Representational Continuity for Unsupervised Continual Learning ( ICLR...
 
ベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learning
ベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learningベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learning
ベイズ深層学習5章 ニューラルネットワークのベイズ推論 Bayesian deep learning
 
ノンパラメトリックベイズを用いた逆強化学習
ノンパラメトリックベイズを用いた逆強化学習ノンパラメトリックベイズを用いた逆強化学習
ノンパラメトリックベイズを用いた逆強化学習
 
Rの高速化
Rの高速化Rの高速化
Rの高速化
 
ベイズ推定の概要@広島ベイズ塾
ベイズ推定の概要@広島ベイズ塾ベイズ推定の概要@広島ベイズ塾
ベイズ推定の概要@広島ベイズ塾
 
FDRの使い方 (Kashiwa.R #3)
FDRの使い方 (Kashiwa.R #3)FDRの使い方 (Kashiwa.R #3)
FDRの使い方 (Kashiwa.R #3)
 
ベイズファクターとモデル選択
ベイズファクターとモデル選択ベイズファクターとモデル選択
ベイズファクターとモデル選択
 
機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化機械学習モデルのハイパパラメータ最適化
機械学習モデルのハイパパラメータ最適化
 
Rパッケージ“KFAS”を使った時系列データの解析方法
Rパッケージ“KFAS”を使った時系列データの解析方法Rパッケージ“KFAS”を使った時系列データの解析方法
Rパッケージ“KFAS”を使った時系列データの解析方法
 
状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38
 
道具としての機械学習:直感的概要とその実際
道具としての機械学習:直感的概要とその実際道具としての機械学習:直感的概要とその実際
道具としての機械学習:直感的概要とその実際
 
グラフィカル Lasso を用いた異常検知
グラフィカル Lasso を用いた異常検知グラフィカル Lasso を用いた異常検知
グラフィカル Lasso を用いた異常検知
 
Deep State Space Models for Time Series Forecasting の紹介
Deep State Space Models for Time Series Forecasting の紹介Deep State Space Models for Time Series Forecasting の紹介
Deep State Space Models for Time Series Forecasting の紹介
 
不均衡データのクラス分類
不均衡データのクラス分類不均衡データのクラス分類
不均衡データのクラス分類
 

Similar to Pythonでカスタム状態空間モデル

[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用de:code 2017
 
後期第五回ネットワークチーム講座資料
後期第五回ネットワークチーム講座資料後期第五回ネットワークチーム講座資料
後期第五回ネットワークチーム講座資料densan_teacher
 
C++0x 言語の未来を語る
C++0x 言語の未来を語るC++0x 言語の未来を語る
C++0x 言語の未来を語るAkira Takahashi
 
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~Yasutomo Kawanishi
 
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.124時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1聡 中川
 
東京工業大学「ロボット技術」 ロボットミドルウェア
東京工業大学「ロボット技術」 ロボットミドルウェア東京工業大学「ロボット技術」 ロボットミドルウェア
東京工業大学「ロボット技術」 ロボットミドルウェアopenrtm
 
AOZORAYOMITE and Intent
AOZORAYOMITE and IntentAOZORAYOMITE and Intent
AOZORAYOMITE and IntentYuki Higuchi
 
GoF デザインパターン 2009
GoF デザインパターン 2009GoF デザインパターン 2009
GoF デザインパターン 2009miwarin
 
170420 東工大授業「ロボット技術」資料
170420 東工大授業「ロボット技術」資料170420 東工大授業「ロボット技術」資料
170420 東工大授業「ロボット技術」資料openrtm
 
「深層学習」勉強会LT資料 "Chainer使ってみた"
「深層学習」勉強会LT資料 "Chainer使ってみた"「深層学習」勉強会LT資料 "Chainer使ってみた"
「深層学習」勉強会LT資料 "Chainer使ってみた"Ken'ichi Matsui
 
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門Daiyu Hatakeyama
 
2018/06/23 Sony"s deep learning software and the latest information
2018/06/23 Sony"s deep learning software and the latest information2018/06/23 Sony"s deep learning software and the latest information
2018/06/23 Sony"s deep learning software and the latest informationSony Network Communications Inc.
 
実践コンピュータビジョン 3章 画像間の写像
実践コンピュータビジョン 3章 画像間の写像実践コンピュータビジョン 3章 画像間の写像
実践コンピュータビジョン 3章 画像間の写像yaju88
 
ソフトウェア自動チューニング研究紹介
ソフトウェア自動チューニング研究紹介ソフトウェア自動チューニング研究紹介
ソフトウェア自動チューニング研究紹介Takahiro Katagiri
 
世界をすこしだけ前に進めるということ
世界をすこしだけ前に進めるということ世界をすこしだけ前に進めるということ
世界をすこしだけ前に進めるということYukei Wachi
 
[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章Haruki Eguchi
 

Similar to Pythonでカスタム状態空間モデル (20)

[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
 
後期第五回ネットワークチーム講座資料
後期第五回ネットワークチーム講座資料後期第五回ネットワークチーム講座資料
後期第五回ネットワークチーム講座資料
 
mishimasyk#4
mishimasyk#4mishimasyk#4
mishimasyk#4
 
C++0x 言語の未来を語る
C++0x 言語の未来を語るC++0x 言語の未来を語る
C++0x 言語の未来を語る
 
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
 
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.124時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
24時間でiOSアプリ-Twitterクライアント-の作成にチャレンジ ver1.1
 
東京工業大学「ロボット技術」 ロボットミドルウェア
東京工業大学「ロボット技術」 ロボットミドルウェア東京工業大学「ロボット技術」 ロボットミドルウェア
東京工業大学「ロボット技術」 ロボットミドルウェア
 
AOZORAYOMITE and Intent
AOZORAYOMITE and IntentAOZORAYOMITE and Intent
AOZORAYOMITE and Intent
 
GoF デザインパターン 2009
GoF デザインパターン 2009GoF デザインパターン 2009
GoF デザインパターン 2009
 
170420 東工大授業「ロボット技術」資料
170420 東工大授業「ロボット技術」資料170420 東工大授業「ロボット技術」資料
170420 東工大授業「ロボット技術」資料
 
「深層学習」勉強会LT資料 "Chainer使ってみた"
「深層学習」勉強会LT資料 "Chainer使ってみた"「深層学習」勉強会LT資料 "Chainer使ってみた"
「深層学習」勉強会LT資料 "Chainer使ってみた"
 
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
 
2018/06/23 Sony"s deep learning software and the latest information
2018/06/23 Sony"s deep learning software and the latest information2018/06/23 Sony"s deep learning software and the latest information
2018/06/23 Sony"s deep learning software and the latest information
 
Gurobi python
Gurobi pythonGurobi python
Gurobi python
 
2023_freshman
2023_freshman2023_freshman
2023_freshman
 
実践コンピュータビジョン 3章 画像間の写像
実践コンピュータビジョン 3章 画像間の写像実践コンピュータビジョン 3章 画像間の写像
実践コンピュータビジョン 3章 画像間の写像
 
Spock's world
Spock's worldSpock's world
Spock's world
 
ソフトウェア自動チューニング研究紹介
ソフトウェア自動チューニング研究紹介ソフトウェア自動チューニング研究紹介
ソフトウェア自動チューニング研究紹介
 
世界をすこしだけ前に進めるということ
世界をすこしだけ前に進めるということ世界をすこしだけ前に進めるということ
世界をすこしだけ前に進めるということ
 
[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章[第2版]Python機械学習プログラミング 第8章
[第2版]Python機械学習プログラミング 第8章
 

Pythonでカスタム状態空間モデル