## 導入
Xi や Y_{i などのデータセット D = {(X_{1}, Y_{2}), \dots,(X_{N}, Y_{N})} を指定すると、 } は連続です。「線形回帰」の目的は、このデータに適合する最適な直線を見つけることです。
言い換えれば、モデルを作成したいのです。
y^=a∗0+a∗1.x∗1+⋯+a∗p.x_p
ここで、p は変数 X の次元数です。
この記事では、次の 3 つのシナリオでこの問題を解決する方法を説明します。
X は 1 次元 (通常の最小二乗法)
作成したいモデルの形状は次のとおりです。
y^=a∗0+a∗1.x
線形回帰の目的は、データに最もよく適合する直線を見つけることであることに注意してください。言い換えれば、データ点と線の間の距離を最小限に抑える必要があります。
(a∗0^,a∗1^)=(a∗0,a∗1)argmin∑∗i=1N(y∗i−y∗i^)2
=(a∗0,a∗1)argmin∑∗i=1N(y∗i−(a∗0+a∗1.x∗i))2
入れてみましょう:
L=∑∗i=1N(y∗i−(a∗0+a∗1.x_i))2
最小値を見つけるには、次の方程式を解く必要があります。
{∂a0∂L=0∂a1∂L=0
⎩⎨⎧i=1∑N−2(yi−(a0+a1.xi))=0i=1∑N−2xi(yi−(a0+a1.xi))=0
最初の方程式を作成することから始めます。
i=1∑Nyi−i=1∑Na0+i=1∑Na1.xi=0
i=1∑Nyi−Na0+i=1∑Na1.xi=0
a0=Ni=1∑Nyi−Ni=1∑Nxia1
a0=Y−Xa1
2 番目の式に代入します。
i=1∑Nxi(yi−Y+Xa1−a1xi)=0
i=1∑N(yi−Y)+a1(X−xi)=0
i=1∑N(yi−Y)−i=1∑Na1(xi−X)=0
a1=i=1∑N(xi−X)i=1∑N(yi−Y)=i=1∑N(xi−X)2i=1∑N(yi−Y)(xi−X)=VAR(X)COV(X,Y)
a0 に代入します。
{a0=Y−XVAR(X)COV(X,Y)a1=VAR(X)COV(X,Y)
X は多次元 (通常の最小二乗法)
この場合、Xi は実数ではなくなり、サイズ p の ベクトル になります。
X∗i=(X∗i1,X∗i2,…,X∗ip)
したがって、モデルは次のように記述されます。
y^=a∗0+a∗1x∗1+a∗2x∗2+⋯+a∗px_p
または、行列形式で記述することもできます。
Y^=X.W
どこ:
-
Y の形状は (N,1) です。
-
X の形状は (N,p) です。
-
W の形状は (p,1) です。これはパラメーター ベクトル (w1,w2,…,wp) です。
最初のケースと同様に、次の量を最小限に抑えることを目指します。
W^=Wargmin∑∗i=1N(y∗i−y_i^)2
もう一度入れてみましょう:
L=∑∗i=1N(y∗i−y_i^)2
=(Y−XW)T(Y−XW)
=YTY−YTXW−WTXTY+WTXTXW
=YTY−2WTXTY+WTXTXW
W に関して L を最小化したいので、最初の項 "YTY" は W から独立しているため無視でき、次の方程式を解きましょう。
∂W∂(−2WTXTY+WTXTXW)=0
−2XTY+2XTXW^=0
W^=(XTX)−1XTY
勾配降下法の使用
勾配降下法アルゴリズムの定式化は次のとおりです。
w∗n+1=w∗n−lr×∂w_n∂f
あとは、これを 2 つのパラメータ a0 と a1 (1 つの変数 X の場合) に適用するだけです。
{a0(n+1)=a0(n)−lr×∂a0∂La1(n+1)=a1(n)−lr×∂a1∂L
そして私たちは次のことを知っています:
⎩⎨⎧∂a0∂L=i=1∑N−2(yi−(a0+a1.xi))∂a1∂L=i=1∑N−2xi(yi−(a0+a1.xi))
置き換えると:
⎩⎨⎧a0(n+1)=a0(n)+2×lr×i=1∑N(yi−(a0(n)+a1(n).xi))a1(n+1)=a1(n)+2×lr×i=1∑Nxi(yi−(a0(n)+a1(n).xi))
クイズ
-
多次元線形回帰の場合の最適パラメータ ベクトルの式は何ですか:
-
VAR(Y)COV(X,Y)
-
VAR(X)COV(X,Y)
-
(XTX)−1XTY 「正しい」
-
なぜ導関数を 0 にするのでしょうか?
-
極値を見つけるため。 "正しい"
-
導関数を最小化する。
-
導関数の実部のみを保持する。
-
線形回帰の目的は何ですか?
-
すべての点を通る線を見つけます。
-
データを最もよく表す行を見つけるため。「正しい」
-
データを最もよく区切る線を見つけるため。