はじめに
今回は、前回の単回帰分析の応用である重回帰分析について解説していきます。
応用と言っても、ほとんど単回帰分析と変わらないので、あまり気負いせずに目を通してみてください。
そもそも単回帰分析って何?という方は、先にこちらの記事をご覧ください。
はじめに 今回は、機械学習の中でも比較的簡単な、単回帰分析について、図を用いながら解説していきます。 「単回帰分析の勉強をしているけど、何をやっているのかわからない」という方にもわかるように記事を書いているつもりです。 […]
この記事でわかること
- 重回帰分析とはなにか
- 重回帰分析で求めるもの
- 実際のアルゴリズム
重回帰分析とは
この章では、そもそも重回帰分析がどういうものなのかを説明します。
まず、重回帰分析について触れる前に、単回帰分析がどういったものだったかを簡単におさらいしておきます。
単回帰分析は、1種類の説明変数を用いて、目的変数を求める分析でしたよね。
前の例をそのまま用いると、1種類の情報(部屋の広さ)から家賃を予測する分析でした。
そして、実際に求めるものは、プロットしたデータに最も当てはまりの良い直線でしたね。
ここまで確認したところで、重回帰分析の話に移ります。
ずばり、重回帰分析とは、
つまり、重回帰分析では、部屋の広さに加え、築年数や最寄り駅からの距離なども考慮して家賃を予測することになります。
今回は説明の都合上、説明変数が2種類の場合を扱います。
単回帰分析では、直線を求めればよかったわけですが、重回帰分析では一体何を求めるのでしょうか。
実は、本質的には単回帰分析も重回帰分析もほとんど同じなのですが、重回帰分析の場合は可視化することが難しかったり、そもそも不可能だったりするため、イメージしにくいです。
しかし、数式的にみると、重回帰分析の場合も、単回帰分析における傾きに相当する値を求めるという点では全く同じです。
こればっかりは、文字で説明するよりも数式や図を見てもらったほうがわかりやすいので、今はよくわからなくても大丈夫です。
とりあえず、複数の情報から何かを予測するヤツ、とだけ押さえておいてください。
重回帰分析で求めるもの
前の章でも言ったことですが、重回帰分析は可視化に限界があります。
今回は、ギリギリ可視化のできる、説明変数が2種類の場合について、図を用いて解説していきます。
そもそもなぜ、可視化が難しいかと言うと、説明変数の数と目的変数の数の合計と同じ数だけ、軸が必要になるからです。
よくわかりませんね。
具体例を用いて説明します。
単回帰分析では、説明変数の数が1、目的変数の数が1、合計は2だったため、2本の軸、つまり2次元のグラフを用いて図示することができました。
説明変数が2種類になると、プラス1本軸が必要になるわけです。
この場合、2次元のグラフで表現できないため、3次元のグラフに拡張することになります。
つまり、もし説明変数が3種類以上になった場合、4次元以上の空間に図示することになるため、可視化することは不可能だということです。
このような理由から、今回は2種類の説明変数の場合で解説します。
図示することが不可能なだけで、計算自体は説明変数が何種類あったとしても同じなので、安心してください。
では、実際に求めるものを数式で確認していきましょう。
今回は、前回に引き続き、部屋の広さと築年数で家賃が決定するとします。
この場合も、なんとなく、部屋が広ければ家賃は高くなって、築年数が経てば経つほど家賃は安くなりそうですね。
つまり、家賃は、部屋の広さと築年数に対して比例の関係がありそうだと言えます。
式で言うとこんな感じ。
$$家賃=比例手数1\times部屋の広さ+比例定数2\times築年数$$
予測する家賃を\(\hat{y}\)、比例定数をそれぞれ\(w_{1}、w_{2}\)、部屋の広さと築年数をそれぞれ\(x_{1}、x_{2}\)として、数式で表すと、こうなります。
$$\hat{y} = w_{1}x_{1} + w_{2}x_{2}$$
この数式は、上の3次元空間のグラフで言うところの赤色の平面の式に相当します。
つまり、実際のデータに最も当てはまりの良い平面を求めること、言い換えると、適切なパラメータ\(w_{1}\)と\(w_{2}\)を求めることが今回の目標となります。
次の章から、実際に適切なパラメータを求める手順を解説します。
適切なパラメータを求める手順
では、最も当てはまりの良い平面とは、どういう式になるのでしょうか。
勘が鋭い方はお気づきかもしれませんが、この場合も、単回帰分析と同じように、実際の家賃と予測した家賃との誤差が小さければ小さいほどいいですよね。
ということで、1つ1つのデータに対して、実際の値と予測値との誤差を二乗してすべて足し合わせていきます。
誤差関数を\(L\)とするとこうなります。
$$L = (誤差1)^2 + (誤差2)^2 + … + (誤差n)^2 $$
\(\sum\)でまとめると、こんな感じになります。$$L = \sum_{i=1}^n(y_{i}-\hat{y_{i}})^2$$
なんか見覚えのあるかたちですね。
そうなんです。
単回帰分析も重回帰分析も誤差関数のかたち自体はなんら変わりはないわけです。
では、次の章ではこの誤差関数を最小にしていきます。
誤差関数を最小にする手順
先程求めた誤差関数ですが、単回帰分析と同じように、展開してみると誤差関数\(L\)は\(w_{1}、w_{2}\)に関しての二次関数となっています。
図だとこんな感じ。
このような2変数による関数の最小値を求めるにはどうするのでしょうか。
そうです、「偏微分」ですね。
パラメータが2つある場合でも、1つのパラメータの値を固定して見てあげれば、ただの二次関数です。
数式で表すとこのような等式を満たす点で誤差関数が最小になります。
$$\frac{\partial L}{\partial w_{1}} = 0 … ①$$
$$\frac{\partial L}{\partial w_{2}} = 0 … ②$$
数学的に計算すると、こんな感じでパラメータを求めるのですが、実際のアルゴリズムとしては、単回帰分析と同様、勾配降下法を用いて最小値を求めます。
勾配降下法については単回帰分析の記事で説明したことと全く同じ事を行うため割愛します。
勾配降下法について詳しく書いた記事はこちらになります。
はじめに 今回は、機械学習によく使われるアルゴリズムの1つである、勾配降下法について解説していきます。 今回の記事の流れは以下のようになります。 今回の記事の流れ そもそも勾配降下法とは何か 勾配降下法[…]
以上のように誤差関数を最小にするパラメータ\(w_{1}、w_{2}\)を求めることができたら、元の式に代入することによって、もっとも当てはまりの良い平面の式ができます。
ここまでが重回帰分析の一連の流れになります。
おわりに
今回は、単回帰分析の応用として重回帰分析について解説してみました。
今回扱った例では、説明変数が2種類だったのですが、説明変数が3、4と増えたとしても、それと同じ数だけパラメータを求めればいいので、考え方は全く同じになります。
ここでふと、
「本当は直線じゃなくて、曲線の可能性もあるんじゃない?」
と思った方もいると思います。
そうなんですよね。
相関がありそうだと思っても、実際にプロットしてみると、直線よりも曲線の方が当てはまりがいいときがあります。
この場合は、多項式回帰という分析を行うことになります。
これも、簡単な応用なので、機会があれば記事を書くので楽しみにしていてください。
では、今回はここまでとします。
お疲れさまでした。