リッジ回帰と正則化

こんにちは!

今日は正則化について扱っていきます。

前回FXデータに対して重回帰分析を行いましたが、重みはさほど大きくなりませんでした。これはもともとのデータが直線的だったからです。

 

しかし一般的にデータが直線的であるとは限らず、すると重みがとても大きい値になることがあります。これを過学習と呼びます。

 

過学習してしまうと、学習データにはよく当てはまるのですが、未知のデータに対する予測精度は下がってしまいます。

 

そこで過学習を防ぐために重みが大きくならないようにするのが正則化です。

正則化された回帰分析はラッソ回帰リッジ回帰が有名ですが、ここでは実装が簡単なリッジ回帰を行うこととします。

 

まずはこちらの画像、

f:id:ois-blog:20191205094929p:plain

観測されたデータと真の分布

青い点が観測された10個のデータ

赤いラインは本来観測されるべき真の値です。

このようにデータを観測すると誤差がでます

 

誤差のあるデータから本来の分布を探し出すのが回帰分析です。

 

まずは普通に多項式回帰をしてみます。

あえて過学習しやすいように9次の多項式回帰です。

結果がこちら

f:id:ois-blog:20191205103244p:plain

正則化なしの回帰分析

赤い線が正解、緑が回帰分析で予測した曲線です

青い点(観測データ)は全て通っているものの、赤い線をうまく捉えているとは言いづらいです。

 

そこで正則化をして重みの絶対値を小さい値に抑えてみました。

するとこちら

f:id:ois-blog:20191205103519p:plain

正則化した回帰分析

多少のズレはあるものの赤い線の特徴をだいぶ捉えているのがわかります。

観測データの外れ値は無視されていますね。