1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ベイズフィッティング

Last updated at Posted at 2016-12-18

ベイズ線形回帰の精度の検証

はじめに

PRMLでベイズ線形回帰の勉強をした。

普通の線形回帰だと複雑なパラメータを選ぶと過学習する

正則化項を入れるとパラメータの調整が大変・・・

そこでベイズ線形回帰!!

モデルを複雑にしても過学習しないらしい・・・

本当か??

そこで実験!!

実験条件

理想曲線(緑):sin関数、ノイズを加えてサンプリング

ベイズ線形回帰(赤):alpha=0.005、beta=10.0

線形回帰(青)

線形回帰+L2正則化:λ=0.001

基底関数は[1, x, x^2, x^3]と[1, x, x^2, …, x^20]の2パターン(M=3とM=20)

コードは下記にあげています。
https://github.com/kenchin110100/machine_learning/blob/master/sampleBAYES.py

結果

基底関数M=3

まずは基底関数M=3、データサンプル数10で
m3sample10.png

次にサンプル数100で
m3sample100.png

基底関数M=3だとどれもあまり違いは・・・

基底関数M=20

基底関数M=20にしてモデルを複雑にすると・・・

まずはサンプル数10
m20sample10.png

次にサンプル数100
m20sample100.png

おお〜〜(正則化もなかなか・・・)

結論

確かに複雑なモデルに適用すると違いが瞭然!!

L2正則化だとパラメータを工夫しなければいけないことを考えれば、

ベイズさまさまですね。

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?