多変量線形回帰

前回までに「線形回帰」について学びましたが、そのときは特徴が一つに対して考えてみました。これはあくまで理論を分かりやすくするためであり、本来、特徴は複数あります。今回は複数の特徴がある場合(多変量線形回帰)について説明します。

 

多変量線形回帰(Multivariate Linear Regression)

特徴数をn、訓練セットをmとします。
訓練セットが5で、特徴数が4の場合の家の価格について考える場合、下記のような表になります。(データは適当です)

 

大きさ (x1) 築年数 (x2) 部屋数 (x3) 何階 (x4) 価格 (y)
30 30 3 3 18
15 6 1 5 11
20 15 1 4 12
20 20 1 4 13
25 13 2 8 17

 

訓練セットのj番目、特徴数のi番目を表すとき、下記のようになります。

$$x_{j}^{(i)}$$

$$x_{1}^{(5)} = 25$$

 

前回までの式では複数の特徴があるときを表せないので、複数の特徴がある多変量線形回帰の式は下記になります。この式が全ての入力値に対して最も近い線になるようにする必要があります。

$$h_θ(x)= θ_0+θ_1x_1+θ_2x_2+θ_3x_3+・・・θ_nx_n  (x_0^{(i)}=1)$$

また、上記式を下記のように考えると、

$$x = \left(\begin{array}{ccc}
x_{0}\\
x_{1}\\
・・・ \\
x_{n}
\end{array}\right) = \boldsymbol{ R ^{n + 1} }、 θ = \left(\begin{array}{ccc}
θ_0 \\
θ_1 \\
・・・ \\
θ_n
\end{array}\right) = \boldsymbol{ R ^{n + 1} }$$

$$θ^{T} = \left(\begin{array}{ccc}
θ_0 & θ_1 & ・・・ & θ_n\\
\end{array}\right)$$

 

$$h_θ(x)=θ^{T}x$$ と表すことができます。

 

複数特徴の最小二乗法

最小二乗法を使用して線形回帰の式を求める必要があります。前回とは違いパラメータ(θ)も複数となりましたので、その場合の求め方も複数として考える必要があります。

$$J(θ_0, θ_1 ・・・θ_n) = \frac { 1 }{ 2m } \sum _{ i=1 }^{ m } (h_θ(x)^{(i)} – y^{(i)} )^2$$

複数のθを一括りにし、線形回帰の式を代入すると下記のように表すこともできます。

$$J(θ) = \frac { 1 }{ 2m } \sum _{ i=1 }^{ m } (θ^{T}x^{(i)} – y^{(i)} )^2$$

もしくは、

$$J(θ) = \frac { 1 }{ 2m } \sum _{ i=1 }^{ m } (\sum _{j=0 }^{ n }( θ_jx_j^{(i)}) – y^{(i)} )^2$$

 

 

複数特徴の最急降下法

次に最急降下法で最小二乗法の最小値を求める必要があります。このときも複数であることを考慮します。

$$θ_j := θ_j – α\frac { δ }{ δθ_j } J(θ) (for j:= 0・・・n)$$

微分した式を記載すると下記のようになります。これは前回も記載しましたが、順々に計算するのではなく、同時に計算する必要があります。

{

$$θ_0 := θ_0 – α\frac { 1 }{ m } \sum _{ i=1 }^{ m } (h_θ(x)^{(i)} – y^{(i)} )^2  (x_0^{(i)}=1)$$

$$θ_1 := θ_1 – α\frac { 1 }{ m } \sum _{ i=1 }^{ m } (h_θ(x)^{(i)} – y^{(i)} )^2・x_1^{(i)}$$

$$・・・$$

$$θ_n := θ_n – α\frac { 1 }{ m } \sum _{ i=1 }^{ m } (h_θ(x)^{(i)} – y^{(i)} )^2・x_n^{(i)}$$

}

これらの値が収束するまで計算を行っていきます。ここでは前回までに説明した部分は割愛させていただいています。
これによって実践的な多変量線形回帰を使用することができます。しかし今のままでは、収束させるための計算処理に時間がかかってしまう可能性があります。
次回は処理時間を改善するための「feature scaling(フィーチャースケーリング)」について説明をします。