モデルの推定性能を評価しても、その結果で最適化したら評価にならないので注意ですよ!

データ解析とか機械学習とかの話です。こちらの話と関連があります。

バリデーション結果は、少数の比較には使ってよいが最適化に使ってはいけない!~外部バリデーションや(ダブル)クロスバリデーションでは何を評価しているのか?評価するときのジレンマとは?~
回帰モデルやクラス分類モデルを評価するときの話です。評価のときに、クロスバリデーションやダブルクロスバリデーションが使われることもありますが、それぞれ何のために、何を評価しているのか?についてお話します。そもそも、どうしてモデルを評価したい...

 

たとえば回帰分析で、最小二乗法による線形重回帰分析 (Ordinary Least Squares, OLS) をしたとします。

最小二乗法による線形重回帰分析~人工知能・機械学習・統計の基礎の基礎~
最小二乗法による線形重回帰分析について、pdfとパワーポイントの資料を作成しました。目的変数と説明変数とのデータセットが与えられたときに、どのように回帰係数を計算するかが説明されています。最後には回帰モデルを比較するための指標3つをまとめて...

 

クロスバリデーションで外部データに対する OLS モデルの推定性能を評価するでしょう。そのときの推定値を用いて、r2, RMSE (Root Mean Squared Error), MAE (Mean Absolute Error) を計算して保存しておきます。

次に、部分的最小二乗回帰 (Partial Least Squares Regression, PLS) をして、OLS とどちらが推定性能の高いモデルを構築できるか、比較します。

部分的最小二乗回帰(Partial Least Squares Regression, PLS)~回帰分析は最初にこれ!~
部分的最小二乗回帰 (Partial Least Squares Regression, PLS) について、pdfとパワーポイントの資料を作成しました。データセットが与えられたときに、PLSで何ができるか、どのようにPLSを計算するかが説...

 

PLS では、成分数を 1, 2, 3, … と変えて、それぞれクロスバリデーションで外部データに対する PLS モデルの推定性能を評価します。クロスバリデーションの fold 数などの設定は OLS のときと同じです。それぞれの成分数でクロスバリデーション後の r2 を計算して、最も r2 が大きな成分数を選び、その成分数で PLS モデルを構築します。

OLS におけるクロスバリデーション後の r2 と、PLS におけるクロスバリデーション後の r2 を比べたとき、PLS の r2 のほうが大きかったとしたら、OLS モデルより PLS モデルのほうが推定性能が高いといえるでしょうか?

残念ながらいえません。PLS では、クロスバリデーションの評価結果を用いて、成分数の最適化をしているからです。PLS で成分数を 1, 2, 3, …, 9, 10 と 10 通りで変えているとすると、PLS では r2 の値が 10 個ある中で、最も高い値を選んでいます。一方、OLS では 1 個しかありません。クロスバリデーションの結果で比較しようとすると、PLS のほうが有利なわけですね。言い方を変えると、PLS ではモデルがクロスバリデーションにおけるバリデーションデータにオーバーフィットしている危険があります。

大事なことは、クロスバリデーションという、推定性能の評価方法が悪いわけではないということです。たとえ、最初にデータセットをトレーニングデータとテストデータに分け、PLS の成分数をテストデータの r2 が最大になるように選んだとしても、同じことがいえます。PLS モデルにおけるテストデータの r2 の値が、OLS モデルの r2 の値と比べて大きかったとしても、PLS モデルの推定性能が高いとはいえないわけです。PLS ではモデルがテストデータにオーバーフィットしている危険があります。

クロスバリデーションでもテストデータを用いた方法でも、ある方法でモデルの推定性能を評価したとしても、その結果で何かを最適化したら、他と比較するための評価にはならないのです。

なので、何か最適化をしたときには、最適化後に、別の方法で再び推定性能を評価する必要があります。たとえば、クロスバリデーションで PLS も成分数を選んだあとに、事前に準備しておいたテストデータで推定性能を評価したり、サンプル数が小さいときには、ダブルクロスバリデーションで評価したりします。

モデルのハイパーパラメータですと、最適化の結果を評価に使わないということは分かりやすいです。しかし他にも変数選択、サンプル選択、外れ値処理平滑化といったデータの前処理などなど、いろいろなところに最適化は潜んでいて、最適化の結果を評価に使ってはいけないのは見落としがちです。気づかないところで、モデルが何かにオーバーフィットしているかもしれません。注意しましょう!

結局、chance correlation (偶然の相関) の話ということもできます。

y-randomizationで過学習(オーバーフィッティング), Chance Correlation(偶然の相関)の危険度を評価!
回帰モデル・クラス分類モデルの評価のなかで、yランダマイゼーション (y-randomization) についてです。y-scrambling と呼んだりもします。やることは簡単で、目的変数 y の値をサンプル間でシャッフルして、回帰モデル...

 

モデルの評価しているつもりであっても、これって chance correlation で評価結果がよくなっているだけでは? と感じたら、別の評価方法を考えてみましょう。

 

以上です。

質問やコメントなどありましたら、twitter, facebook, メールなどでご連絡いただけるとうれしいです。

タイトルとURLをコピーしました