SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ITエンジニアのためのスパースモデリング入門

スパースモデリングのモデルを評価する~LASSO推定値の評価方法

  • X ポスト
  • このエントリーをはてなブックマークに追加

 本連載は「これから機械学習に取り組みたい」「ディープラーニングや機械学習を使った経験がある」といったエンジニアに向けて、データ量が少なくても分析が実現できる「スパースモデリング」という手法を紹介します。今回は、スパースモデリングのモデルの評価方法について解説します。

  • X ポスト
  • このエントリーをはてなブックマークに追加

LASSO推定値に影響を与えるパラメータ

 前回の記事ではスパースモデリングの代表的手法であるLASSOを紹介しました。LASSOとは、以下の式の値を最小化する最適化問題のことを指します。

 \(\frac{1}{2}\|\Phi x - y\|^2_2 + \lambda \|x\|_1\)

 この式における第二項は正則化項、\(\lambda\)が正則化パラメータと呼ばれます。ここで正則化パラメータの大きさというのは、正則化項が及ぼす影響の大きさを表します。前回の記事でLASSOを用いるといくつかの回帰係数がゼロとなり、変数選択を行うことができると説明しましたが、正則化パラメータを変更することで、ゼロと推定される回帰係数の数が変わっていきます。正則化パラメータが大きい時は\(|x\|_1\)を小さくしようとする動きが働きます。つまり、ゼロと推定される回帰係数の数が多くなります。逆に正則化パラメータが小さい時は\(\lambda \|x\|_1\)が誤差関数に与える影響も小さくなるため、ほとんどがゼロであるという制約の力が弱まります。

正則化パラメータの変更が及ぼす影響の可視化

 ここでは、実際に正則化パラメータを変化させていったときに、回帰係数の推定値にどのような影響を与えるのかということを可視化してみましょう。

 同じ内容のコードを載せたJupyter Notebookを以下のリポジトリで公開しているので、興味ある方は実際に触ってみてください。

 ここでは一例として、アメリカ合衆国の各都市における犯罪に関するデータに対してLASSOを適用してみます。このデータは以下のような情報が記載されています。

変数名 変数の意味
1 警察官の年間給与
2 25歳以上の内高校を卒業した人の割合
3 16歳から19歳の内、高校に通っていない、または高校を卒業していない人の割合
4 18歳から24歳の内大学生の割合
5 25歳以上の人の内4年制大学を卒業した人の割合
目的変数 人口100万人あたりの犯罪率

 これらが50都市分含まれています。

 このデータに対して、LASSOを正則化パラメータを変化させながら適用することで、下のような図を描くことができます。

解パス
解パス

 横軸は正則化パラメータの自然対数値、縦軸は正則化パラメータに対応する回帰係数を表しています。左端の数値は説明変数に割り振られた番号になります。このように正則化パラメータを変化させたときの推定値の推移を可視化したものを解パス(solution path)と呼びます。この図を見れば、正則化パラメータが大きくなるほどゼロと推定される回帰係数が多くなっていくことがわかります。

 実際に\(log\lambda=-2\)としてLASSOを適用してみましょう。

model_for_solution = linear_model.Lasso(alpha=math.e**-2)
model_for_solution.fit(X_train,y_train)
print('Coefficients:',model_for_solution.coef_)

 これを実行すると下記の結果を得ます。

Coefficients: [ 0.51031895 -0.14093297  0.  0. -0.]

 解パス上で\(log\lambda=-2\)のパラメータの値を見れば、3、4、5の説明変数の回帰係数が0になっており、実際にLASSOを適用した結果と一致していることがわかります。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
正則化パラメータの選択方法(1)

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
ITエンジニアのためのスパースモデリング入門連載記事一覧

もっと読む

この記事の著者

宇佐見 一平(株式会社ハカルス)(ウサミ イッペイ)

 京都大学情報学科を卒業後、新卒でメーカーに入社しR&D部門に所属。そこで出会った機械学習に魅せられ、より深く広く機械学習やデータ分析を用いた課題解決に取り組みたいと思い,2019年3月にハカルスにジョイン。日本では稀有なアメフト経験者データサイエンティストとして日々修行中。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11593 2019/09/10 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング