質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

統計

統計は、集団現象を数量で把握することです。また、調査で得られた性質や傾向を数量的に表したデータのことをいいます。

Q&A

受付中

pymcでベイズ線形回帰

okmaru
okmaru

総合スコア14

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

統計

統計は、集団現象を数量で把握することです。また、調査で得られた性質や傾向を数量的に表したデータのことをいいます。

1回答

0グッド

0クリップ

2191閲覧

投稿2020/08/20 08:49

pymc3でベイズ線形回帰を行いたいのですが、ベイズモデルにおいても通常の機械学習と同様にトレーニングデータでモデリングを行い、テストデータで検証するという手順で良いのでしょうか。

多くのサイトにモデリングの方法は書いているのですが、予測の方法が分かりません。
pymc3のsample_posterior_predictiveというのがあるようなのですが、これを用いるのでしょうか。

私が想定している流れとしては
1.トレーニングデータを用いてモデルのパラメータの事後分布を推定
2.事後分布からサンプリングを行い、パラメータの平均値を算出
3.2で求めたパラメータの平均値をモデルのパラメータとし、テストデータで予測可能か検証を行う。
だと考えているのですが、これは正しいでしょうか。

以下のリンクではトレーニング・テストに分割し、行っているようです。
リンク内容

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答1

0

ベイズモデルにおいても通常の機械学習と同様にトレーニングデータでモデリングを行い、テストデータで検証するという手順で良いのでしょうか。

モデルの検証方法の1つとしては良いですが計算量はそれなりに必要です。モデルの検証には情報量基準としてDICを計算するpm.dic()があります。

多くのサイトにモデリングの方法は書いているのですが、予測の方法が分かりません。

pymc3のsample_posterior_predictiveというのがあるようなのですが、これを用いるのでしょうか。

例えばy=ax+bと言うモデルがあり観測データ(x_i, y_i)からa,bを推定したいとします。ベイズ線形回帰ではこのモデルはy ~ N(mu=ax+b, sigma=err)のように分布として与えられ、推定結果であるa,bも分布になります。

質問にある「予測値」とは分布になります。sample_posterior_predictive()はこの分布からサンプルを抽出するための関数です。別の言い方をすると、仮にテストケースとしてxに1つの値を入れたとしても、yは分布として得られることになります。したがって分布から1点だけ代表値として選びたい(点推定)となればpm.find_MAP()により最大事後確率を求めることになります。

投稿2020/08/20 13:16

yymmt

総合スコア1615

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

統計

統計は、集団現象を数量で把握することです。また、調査で得られた性質や傾向を数量的に表したデータのことをいいます。