magic機械学習に関する備忘録です。この広告は、90日以上更新していないブログに表示しています。回帰モデルでは過学習を防ぐため、誤差関数(二乗誤差関数など)に次の式で表される正則化項を加えて最小化します。この形の正則化項を用いる回帰をブリッジ回帰と呼びます。時をRidge回帰と呼びます。それぞれに用いられている正則加項をL1ノルム、L2ノルムと呼びます。L1ノルムとL2ノルムの特徴を簡単にまとめると次のようになります。Netというモデルも提案されています。NetはRidge回帰とLasso回帰の両方の性質を有しています。いった特徴が実際にはどのような結果として表れるか、多項式回帰を用いて実験してみました。今回は10次の多項式を用いました。この多項式を用いて、3次以下の多項式(+ガウス乱数)に従うデータを学習しました。コード今回はPythonのscikit-learnという機械学習ライブラリを用いて実験しました、コードは次のリンクにあります。Regression実験データの生成に用いた関数は次式になります。従う乱数を加えたデータ20個を用いました。結果は次のようになりました。今回の場合、L2ノルムを用いた場合は若干過学習気味に、L1ノルムを用いた場合は正則化の効果が程よく得られてる印象を受けます。NetはL1とL2の中間くらいのモデリングになっています。パラメータの値は以下のようになっています。-1.14E-10L1ノルムは確かにパラメータの一部が完全に0になっていることが確認されました。Netも一部変数が0になっています。考察L2ノルムが過学習を起こしてる理由としては学習データが非常に少ないからであり、これは各正則化の差を見るために意図的に少なくしています。他のデータも用いて実験してみたのですが、常にどのノルムが一番優れている、ということはほとんどないようです。Netが一番当てはまりがよく、次にL2ノルム、L1ノルムといった感じでした。(あくまで見た目での判断ですが)L1ノルムはパラメータが0になりやすく、正則化の影響が非常に強いと感じられました。対してL2ノルムは過学習になりやすく、正則化の影響が少し弱いと感じられました。Netは当てはまりの良いモデルとなることが多かったと思います。今回は低次元の多項式回帰での実験ですが、L1ノルムの真価は高次元での線形回帰で発揮されると思うので、そちらに関しても今度実験してみようと思います。211-242.http://svr4.terrapub.co.jp/journals/jjssj/pdf/3902/39020211.pdf回帰モデルの正則化について詳しく扱っています。MacでPythonの管理と機械学習環境構築の備忘録です。いうイベントがありました。最近、LDAを(pythonで)実装する機会がありました。»プロフィールid:breakbee機械学習とプログラミングについてちょっとずつ。(13)はてなブログをはじめよう!breakbeeさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。