科学の箱

科学・IT・登山の話題

機械学習

線形回帰と最急降下法

投稿日:

線形回帰

世の中の様々な出来事(y)はある事象(x)に対して比例することが多い。もちろん厳密に比例するわけではなくずれは生じる。しかしこのxとyが比例すると仮定した場合、中学校で習った一次式でこの関係をとらえることができる。

$$ y = a \times x + b $$

この時xを説明変数、yを目的変数という。線形回帰では説明変数をもとにして目的変数を計算する一次式を明らかにする。これを線形回帰と呼ぶ。

線形回帰の際には(x, y)の組み合わせのデータが用意される。このデータを基にしてaおよびbを算出することができる。

実データと線形回帰

いま気温とアイスクリームの売り上げを考える。10日の気温と売り上げを記録したところ以下のようになったとする。

ずれはあるものの気温と売り上げデータには比例関係があり以下のように直線が引ける。

これを一次式であらわすと以下のようになる。

$$ アイスクリームの売り上げ = Θ_1\times 気温 + Θ_0 $$

この時アイスクリームの売り上げが目的変数となり、気温が説明変数となる。

Θ1は気温に対する重みである。重みとは気温がどの程度アイスクリームの売り上げに影響を及ぼすかの指標である。Θ1が小さければ、気温は売り上げに影響しない。それに対してΘ1が大きくなるほど売り上げは気温により左右されることになる。

このΘ1およびΘ0を明らかにできれば、アイスクリームの売り上げと気温の関係を導き出すことができる。これを線形回帰と呼ぶ。

最小二乗法

ではどのようにしてΘ1およびΘ0を明らかにできるのか。この手法を最小二乗法と呼ぶ。得られたデータを見るとどのような直線を描いたとしてずれが生じる。

この時ずれをε(i) = ε(1),ε(2),ε(3),,,,,ε(n)とする。 これはデータの組み合わせ(x(i), y(i))に対してそれぞれのデータについて引いた直線のずれを表す。

このずれは直線の式を用いると以下のようにあらわすことができる。

$$ ε_i = y_i – Θ_1 \times x_i – Θ_0 $$

データに対してフィットした直線とはこのずれの合計が最も小さくなる直線を探す。ずれの合計は以下のようにあらわすことができる。

$$ E_Θ = \sum_{i=1}^{n}( ε_i )^2$$

よって一次式であらわすと以下のようになる。

$$ E_Θ = \sum_{i=1}^{n} (y_i – Θ_1 \times x_i – Θ_0)^2 $$

この式を2乗誤差の損失関数と呼ぶ。この関数は他の損失関数と比べて外れ値に大きく左右される。

 

最急降下法

さて最小二乗法を利用すれば、Θ0およびΘ1を求めることができるようである。またそのカギは以下の式である。しかしどのようにしてΘ0およびΘ1を求めればよいのか。ここで利用するのが最急降下法という技である。

いま下記のようなグラフを考える。

 

これは以下の方程式をグラフにしたものである。

$$ y = (x-1)^2 $$

このグラフの最小値を求めたいとき、どのようにすればよいか。最小値があらかじめわかっていれば、yに最小値を代入して、方程式を解くことができる。しかしそもそも最小値がわからないために代入できない(今回の場合には例が単純であるが)。では最小値の左と右で値の増減がグラフから見てみる。

yの増減
最小値の左側 減っている↓
最小値 0
最小値の右側 増えている↑

上記のことがわかっている。ここでyの増減を数式であらわすためには微分を用いることになる。微分を用いると以下のようにあらわされる。

yの増減 微分 ( $$ \frac{dy}{dx} $$ )
最小値の左側 減っている↓
最小値 0 0
最小値の右側 増えている↑

いまあるx=-3から最小値を探すとする。この時傾きは-であるから、次は新しいxは今のxよりも大きい値、つまり+の方向に進むことになる。いま進みすぎて傾きが+になったとする。この場合には次のxは今のxよりも小さい値となる。これを図解すると以下のようになる。

これを式に表すと以下のようになる

$$ x := x –  η \times \frac{d}{dx} \times y $$

 

これを先ほどの損失関数に当てはめることで最急降下法により最小値を求めるのが線形回帰である。

メタ情報

inarticle



メタ情報

inarticle



-機械学習

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

クラスタリング

Rによるクラスタ分析の実行 県別の持家率と自家用車普及率からクラスタ分析を実行し似た県を探してみる。。 データソース 持家と自家用車普及率のデータは下記から取得する 持家普及率のデータはこちらから取得 …

no image

SVMでグリッドサーチ

IrisデータについてSVMで分類をしてみた。さて、今回はSVMモデルのパラメータをいじってみてより精度が高いモデルを作ってみる。 すべての学習モデルはハイパーパラメータと呼ばれる学習モデルに影響を与 …

no image

Excelによる単回帰分析

エクセルでの単回帰分析をについて手順をまとめる。エクセルの使い方にあわせて分析結果の解釈の仕方も書いておく。 データは勉強時間に対する点数とする。これは作ったデータであるが、線形回帰にフィットするよう …

no image

UCI datasets

データ分析の勉強をするときに便利なUCI datasets https://archive.ics.uci.edu/ml/datasets.html Related posts:dataanalysi …

no image

ジニ係数(再掲)

ジニ係数について修正した。とりあえずコード。 revenue<-read.csv(file=”data.csv”, head=TRUE) revenue$TotalRevenues_n < …

2019年10月
« 9月   11月 »
 123456
78910111213
14151617181920
21222324252627
28293031  

side bar top



アーカイブ

カテゴリー