Python で始めるベイズ機械学習入門(3章)
ch3
3章の内容は回帰問題についてベイズ的にモデルを作成する話。
を取っている。
3.1~3.5(線形回帰、一般化線形回帰のベイズ推定)
ベイズ的にモデルを決める手順
- 予測モデルを決める。
- 確率変数とするモデルパラメータを決めて、事前分布を与える。
- はハイパーパラメータであるが、ハイパーパラメータも確率変数として扱っているものを階層モデルと呼んでいる。
- 予測モデルから尤度関数を計算する。()
- MCMCなどのサンプリングアルゴリズムを使って事後分布からのサンプリングを行う
- サンプリングアルゴリズムから得られたパラメータを用いてモデルとする。
- 例1: サンプリングしたモデルパラメータの平均値をモデルのパラメータとして設定する。
- 例2: 各サンプリング結果を用いて予測値 を計算したあとで予測の平均値を予測モデルとする。
MCMCを使っている目的は、ベイズモデルではモデルパラメータ事後分布からのサンプリングが回帰モデルを決定するために必要だからである。
コードの手順
これはすべて同じである。
- 真のモデルを決める。
- 真のパラメータを決める。
- 観測したデータを生成する。
- pymc3 でモデルの設定を行う。
- 観測した説明変数のデータを指定。
- モデルパラメータの事前分布を指定。
- 確率モデルを設定して目的変数のデータを指定。
- MCMCを用いて事後分布を作成する。(= 事後分布からのサンプリングを行う)
- サンプリングしたモデルのパラメータと新しい説明変数 を用いて予測確率モデルからのサンプリングを行う。
-
- パラメータのサンプル値を複数回サンプリングして、そのたびにもサンプリングしている
- はモデルのパラメータのサンプル値を変えてサンプルしている
- 複数回サンプリングして得られた の平均値が推定値として利用されている。このプロセスが
-