アットウィキロゴ

機械学習 > 線形回帰

二次元の点が与えられるからそれらを通る関数を求める

与えられる点を(x,y)とする。
欲しい関数をf(a)=Σ(w[i]*a^i):[0<=i<n]とする。


きっと全点は通れないので大体近い関数を見つける。
何が『大体近い』かは自分で適当に決める。
Σ( (f(x)-y)*(f(x)-y) )を最小にするのが人気らしい。
なのでここではこれを最小にするw[i]:(0<=i<n)を求める。

各w[i]:(0<=i<n)において微分する。
d(Σ(f(x)-y)*(f(x)-y))/dw[i]=0となる。
これで式がn個得られるので連立方程式を解けばいい。

X[i][j]=(x[i]^j)とする
T(X)をXの転置行列とする
W=((T(X)*X)^-1)*T(X)*Y




最終更新:2012年02月18日 11:11