Upload
zuqqhi-2
View
1.161
Download
2
Embed Size (px)
Citation preview
Least Square Method zuqqhi2
目的
1 2
下図のようなデータが得られたら、そのデータが発生するメカニズムを見つける(右の図の緑色の線を推測する)
0x
y
0x
y
モデル化
3 4
以下の様な多項式でデータを表すことを考える(モデル化)
ここでは一旦 nを 2として考えてみる。
0x
y
データ N点分合計すること部分を式に表すと以下の式になる( 1/2は後の計算を楽にするため)。
最小= (偏 )微分が 0微分:接線の傾き
最小二乗法の考え方
5 6
各データ点について以下の値を計算して合計を取ればいい
上の式の値は赤のデータについてはプラス、水色のデータについてはマイナスになってしまうため、以下のようにして常にプラスにする
0x
y
0x
y
この関数の場合、接線の傾きが 0になるのはこの点=> yが最小値
これを行列を元に連立方程式を行列の形にすると以下のようになる(正規方程式)
これを行基本変形で解いて、多項式を作れば以下の緑線が得られる
最小二乗法の考え方
7 8
(偏 )微分すると各係数はそれぞれ以下のようになる
0x
y
-1/2 2☓ 行目
3 – 行目 2 2☓ 行目
-1/2 3☓ 行目
アルゴリズム
9 10
Gauss-Jordan法で正規方程式を解く
http://www.yamamo10.jp/yamamoto/lecture/2006/5E/Linear_eauations/gaussj_html/node2.html
Gauss-Jordan法の例
2行目 - 2 1☓ 行目
3行目 - 2 1☓ 行目
アルゴリズム
11 12
Gauss-Jordan法の例
計算結果を連立方程式にすると以下のようになる
これを元に各変数の値を求める
結果の評価
13 14
訓練誤差最小二乗法の計算に使用したデータとの差分を見る
汎化誤差最小二乗法の計算に使用していない観測されたデータとの差分を見る
プログラムと実行結果
15 16
以下に具体的な実装がある
https://github.com/zuqqhi2/programming-tips/blob/master/least-squares-method/lsm-polynomial.go
実行結果汎化誤差が一番少ない nが一番使い勝手がいいから、この場合 n=10が一番良い
n=1 n=2
n=5 n=7
n=11 n=30