データサイエンス時代で活躍する人材になるために

データサイエンス時代で活躍できる人材になるために

純粋数学から応用数学までデータサイエンスに関わる様々なことについて取り上げます!

モデルの評価と選択(1)

 昨年,某大学の授業を履修していたのですが,最近そこで勉強したことがかなり役に立ち,復習を兼ねてまとめることにします.

どの説明変数をモデルの中に取り入れたら,現象を有効に予測し,モデルを構築することができるでしょうか?この問に,答えるためにはモデル評価基準について学ぶ必要があります.モデル評価基準は,モデルの良さを測る尺度であり,下記にあるのが有名どころかなと思います.

  • 情報量基準AIC (Akaike 1973,1974)
  • ベイズ型モデル評価基準 BIC(Schwarz,1978)
  • クロス・バリデーション (Stone,1974)

今回はクロス・バリデーションの必要性について述べたいと思います.


多項式回帰モデルなどにおいては,次数の決定が本質的であり,次数選択が重要なりますが,適切な次数を選択するための注意点について述べたいと思います.

多項式回帰モデルと残差平方和

x_i:説明変数,\hat{y}_i:予測値, \hat{\beta_i}:回帰係数
予測値(推定した多項式モデル) 
 \hat{y}_i=\hat{\beta}_0+\hat{\beta}_1x_i+\hat{\beta}_2x_i^2+\cdots+\hat{\beta}_px_i^p
for i=1,\cdots,n
これに対して,残差e_iは,観測データy_i-予測値 \hat{y}_iすなわち,e_i=y_i-\hat{y}_iで求められ,
残差の二乗和(残差平方和)を
{\displaystyle 
\begin{eqnarray}
\sum_{i}^{n}e_i^2=(y_i-\hat{y}_i)^2
\end{eqnarray}
}と表します.
ここで問題です.

  • 多項式モデルの次数を上げていくと,残差平方和はどのようになるでしょうか?
  • 線形回帰モデルの場合に,説明変数の個数を増やしていくと残差平方和はどのようになるでしょうか?

\rightarrow単調に減少し,次第に0に近くが正解です.

残差平方和はモデルのデータへの適合度の良さを測っているように見えるが,最適なモデルを決定する基準としては機能していません.では最適な次数を決めるにはどのようにすればよいか?
構築したモデルの良さは予測の観点から評価しなければなりません.
モデルを推定するために用いた学習データとモデルを評価するために用いるテストデータは分ける必要があります.残差平方和がモデルを決定する基準として適切ではないことを下記の図で示します.

f:id:koki12070930:20190608193122p:plain
多項式の次数
上記の図は,y=\sin(2\pi x)標準偏差0.3を加え,そこからサンプリングしたデータを用い,最小二乗法で得られた多項式y=\sin(2\pi x)との残差平方和の推移を表しています.

過学習

 図から分かるように,次数が上がるにつれて,学習データに基づいたモデルと学習データとの残差平方和の値は小さくなります.しかし,学習データに基づいたモデルとテストデータとの差つまり予測の観点からの残差平方和は次数が4の時が最適で,それ以降は誤差が増加する傾向にあります.テストデータに対する「予測力」は,次数が4以上では高まらないことを示しています.このように学習データのみにチューニングした状況を過学習(オーバフィッティング)と言います.

構築したモデルの良さは予測の観点から評価するべきであることが分かりました.しかし統計的モデリングの過程において,観測測定されたデータに加えて,別個に将来のデータを獲得するのは困難です.今回のように,学習データとテストデータに分けてモデルを評価すればいいのですが,テストデータを増やせば,そのぶん学習データを減らすことになります.
この問題を解決するのがクロス・バリデーションです.次回はこのクロス・バリデーションについて説明します.

今回は下記の本に書いてることにも一部取り上げました.Pythonで実際に動かしながら理解できるので大変勉強になります.

また理論的に丁寧に書いてある良本を紹介します.モデル選択についてかなり丁寧に書いてあり大変分かりやすいです.

ブログ書きながらこれ食べてたんですが美味すぎます.みなさん食べましょう!
全然今回の内容と関係なくてすみません笑


ではまた!