はじめに回帰をやろうとしている理由は、本質的には回帰が機械学習における学習と同じと言えるからです。
線形回帰
線形回帰とは、散らばっているデータに関して、散らばり方のルールを直線だと仮定して、その直線がどんな感じなのかを調べることです。
直線のことを「線形」、変数間の関係を関数で表すことを「回帰」と呼びます。
それでは線形回帰の説明に移ります。
線形回帰をビジュアル一発で表すと下図のイメージです。
ちょっとインチキしてますが、成長期では、年齢と握力に直線的な関係があると仮定して、その直線を求めたものです。
fig.1 成長期の男子の平均握力
ちなみに上のグラフでは、21才男子の平均握力のデータがありません。
これを線形回帰を用いて予測すると、この直線の式のxに21を入れたときのy(50.6kg)が予測値となります。
実際に、どのようにして直線の式(関数)をはじき出したのかを見ていきましょう。
fig.1のデータは以下です。
これをトレーニングデータと呼びます
いい感じにこれらの年齢と握力の関係を表す直線の式を求めましょう。
まずはテキトーに式を決めましょう。
$y = 3x + 5$
一番左のカラムの年齢6をxに代入してみると、23になります。
でも6歳の実際のyは9.53で大きく異なります。
xの係数を小さくしてみると良さそうです。
$y = 2x + 5$とし、年齢6をxに代入してみると、17になります。
もう少しxの係数を減らすか、定数項を減らす必要がありそうです。
上記のようなことを繰り返してfig.1のデータすべてをいい感じに説明できる
直線の式にたどり着ければ線形回帰完了です。
ですが、試行錯誤を繰り返すための指標が欲しいところです。
なので新たな概念を入れます。誤差です。
直線と点の距離を誤差といいます。
この直線とそれぞれの点の距離の和(誤差の和)が最小になる直線を導き出す方法を、最小2乗法といいます。
最小2乗法そのものの原理は重要でないので割愛します。興味がある方はこちらを参照して下さい。
最小2乗法を用いてトレーニングデータをうまく説明できる直線の式を求めることを線形回帰と言います。
実は今回扱った線形回帰はとくに「線形単回帰」というものです。線形回帰は本当は直線の式だけを表すわけではないのですが、簡単のため、そう表現しています。
ロジスティック回帰
ロジスティック回帰の説明に移りますが、線形回帰と共通している部分もありますので、線形回帰とロジスティック回帰で共通な点/異なる点という形で示します。
共通な点
- トレーニングデータすべてをいい感じに説明できる式にたどり着くことを目的とする
ロジスティック回帰での、いい感じに説明できる式は例えば以下のようになります。
{y=\frac{1}{1+e^{(2x + 5)}}
}
なんだかよくわからないけど確率を予測するんだなあくらいに理解していただければオッケーです。
異なる点
- 線形回帰は実際の値を予測するのに対して、ロジスティック回帰は発生確率(0~1の値)を予測する
つまり握力の例で言えば、線形回帰は**「年齢から平均握力そのものを予測する」のに対して、ロジスティック回帰は「(例えば)30歳での平均握力が30kgとなる確率」**を予測します。
まとめ
まとめます。回帰とは与えられたデータからあるルールを見つけ出すことです。
線形回帰ではルールを直線だと仮定して、誤差を用いて一番適当な式を求めました。
ロジスティック回帰は散らばりのルールを求めるところまでは線形回帰と同じですが、ルールに対して、あるデータを適用した場合の予測値が確率であるという点が異なります。
実はこの、データの散らばりのルールを見つけるという部分は、機械学習における学習と同じです。
機械学習における学習を理解するための準備として、今回は回帰を扱いました。
次回
次回はニューラルネットワークを扱います。
行列とベクトルの操作が登場しますが、分かりやすく解説するつもりです。
是非お付き合いください。
せーの!サハスラーラ