回帰モデル・クラス分類モデルの検証 (バリデーション) について考えていること

シェアする

分子設計・材料設計・プロセス設計・プロセス制御設計 (ソフトセンサーなど) といった、いろいろな研究をする中で、たくさんの回帰モデルやクラス分類モデルなどを構築したり、構築したモデルを使ったりしています。モデルを扱う中で最も重要なことの一つは、モデルの検証 (バリデーション) です。つまり、モデルを評価して、どのモデルが (一番) よいの??、このモデルは使って大丈夫なの??、ということに適切に答える必要があります。

今日は 2019年3月10日時点で、モデルの検証 (バリデーション) について考えていることのメモ、というか疑問、を 2 つ残しておきます。いつか解決されていることを期待しています。

1. テストデータで何個までのモデルを比較してよいのか?

こちらに書いたとおり、

モデルの推定性能を評価しても、その結果で最適化したら評価にならないので注意ですよ!
データ解析とか機械学習とかの話です。こちらの話と関連があります。 たとえば回帰分析で、最小二乗法による線形重回帰分析 ...

トレーニングデータとテストデータとに分けて、トレーニングデータを用いたクロスバリデーションにより、あるモデルにおいてどのハイパーパラメータの値が優れているかを決めて、テストデータの推定性能でどの手法によって構築されたモデルが優れているのかを決めます。

いくつか候補のモデルがあるときに、テストデータにおける推定性能が最も高いモデルを使おう!、というわけです。では、いくつのモデルがあるときまで、この方法が使えるのでしょうか?

なぜモデルの個数が重要かというと、モデルの推定性能を評価したつもりでも、その結果で最適化してしまったら、評価にならないためです。

モデルの推定性能を評価しても、その結果で最適化したら評価にならないので注意ですよ!
データ解析とか機械学習とかの話です。こちらの話と関連があります。 たとえば回帰分析で、最小二乗法による線形重回帰分析 ...

たとえば、PLS モデル、SVR モデル、、、、と 1000 個のモデルがあったときに、テストデータにおける推定性能が一番高いモデルを選んだとすると、テストデータに(たまたま)オーバーフィットしたモデルが選ばれてしまう危険があります。別の例を出せば、PLS でも SVR でもクロスバリデーションでハイパーパラメータを決めずに、すべてのハイパーパラメータの候補のモデルの中から、テストデータの推定性能の最も高いモデルを選ぶと、どうなるのでしょうか。テストデータにオーバーフィットしたモデルが選ばれてしまいます。

では何個までならモデルの推定性能を比較してよいのでしょうか?

もちろん、一つのモデルを選ぶのではなく、アンサンブル学習的に、すべてのモデルを統合して用いるのがよいとも考えられます。では、統合された “モデル” はどのように評価すればよいのでしょうか?他の統合されたモデルとの比較は行わなくてよいのでしょうか?

サンプル数や記述子 (説明変数) の数などによって変わると思いますし、確率的な表現のほうが適切かと思います。あとモデルの適用範囲も一緒に考えないと、です。

モデルの適用範囲・モデルの適用領域 (Applicability Domain, AD) ~回帰モデル・クラス分類モデルを使うとき必須となる概念~
今回は、モデルの適用範囲・モデルの適用領域 (Applicability Domain, AD) についてです。AD は回帰モデル・クラス分...

2. テストデータを用いたモデルの評価と同様にして、クロスバリデーションでモデルを評価できないか?

特にサンプル数が小さいとき、トレーニングデータとテストデータとにサンプルを分けると、モデルを構築するためのサンプルがより少なくなってしまいます。テストデータのサンプルも少なく、たまたまテストデータの誤差が小さくなった、といったことの起こる可能性が高くなってしまいます。

クロスバリデーションにより、あるモデルにおいてどのハイパーパラメータの値が優れているかを決めて、テストデータの推定性能でどの手法で構築されたモデルが優れているのかを決めます。クロスバリデーションの推定性能で、手法の比較までできないのは、ハイパーパラメータの最適化をしてしまっているからです。ざっくりいうと、ハイパーパラメータの候補の数が多いほど、クロスバリデーションの推定性能が高くなる傾向があり、その推定性能はモデル本来の推定性能を表しているとはいえません。

もちろんダブルクロスバリデーションを用いれば、手法間の比較をすることができます。

ダブルクロスバリデーション(モデルクロスバリデーション)でテストデータいらず~サンプルが少ないときのモデル検証~
回帰モデルやクラス分類モデルを検証するときの話です。 モデルの検証 一般的には、データセットが与えられたとき、サンプルをモデル構築用サン...

ただし、ダブルクロスバリデーションの外側のクロスバリデーションでは、ハイパーパラメータは異なるため、最終的に用いるハイパーパラメータでの推定性能を本当に表現しているの??と疑問も残ります。

クロスバリデーションでも、異なる fold 数や異なる分割の仕方 (異なる乱数のシード) でハイパーパラメータの決定と、手法間の比較ができないか考えています。もしくは、クロスバリデーション以外の方法、たとえば中点を用いたバリデーションでハイパーパラメータを決定して、クロスバリデーションで手法間の比較ができないか、考えています。

モデルの検証 (バリデーション) について以上のようなことを考えています。

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

シェアする

フォローする