ガウス過程回帰におけるyの予測値の分散を検証する方法

シェアする

金子研オンラインサロンにおいて、ガウス過程回帰において、予測値の分散が正しく評価されているのか、どのように検証したらよいか?、といった質問があり、回答しました。

プロセス・マテリアルズ・ケモインフォマティクスオンラインサロン (金子研オンラインサロン) をやっています!
金子研の外部の方向けに、金子研主催で無料のオンラインサロンをはじめました。slackでやりまして、オンラインサロンのメンバー登録やサロン内で...

ガウス過程回帰の予測値の分散は、モデルの適用範囲やベイズ最適化にも活用され、

モデルの適用範囲・モデルの適用領域 (Applicability Domain, AD) ~回帰モデル・クラス分類モデルを使うとき必須となる概念~
今回は、モデルの適用範囲・モデルの適用領域 (Applicability Domain, AD) についてです。AD は回帰モデル・クラス分...
ベイズ最適化(Bayesian Optimization, BO)~実験計画法で使ったり、ハイパーパラメータを最適化したり~
ガウス過程による回帰をうまく使って、実験計画法における新しい実験候補を探索したり、回帰モデルやクラス分類モデルのハイパーパラメータ (学習で...

気になる方も多いかと思いますので、ここでも共有します。

ガウス過程回帰における目的変数 y の予測値については、他の回帰分析手法と同様に、例えばテストデータにおける y の実測値 vs. 予測値プロットを見たり、r2, RMSE, MAE を確認したりすることで検証できますが、

回帰分析における目的変数の実測値 vs. 推定値プロットを、解像度を上げて見る
解像度を上げるといっても、画素の密度を上げるわけではなく、より詳細に検討するということです。 回帰分析をしたら、以下のような目的変数の...

予測値の分散は、他の回帰分析手法にはない、ガウス過程回帰で特有の出力結果であり、別に検証する必要があります。

ガウス過程回帰では基本的に y が、予測値を平均値、予測値の分散 (ガウス過程回帰の出力結果) を分散とする正規分布に従うことを仮定しています。y の実測値と予測値の差 (予測誤差) については、平均値を y と仮定してよさそうですので、y の予測誤差が 0 を平均値、予測値の分散を分散とする正規分布に従うかどうかを検証します。例えばテストデータの y の実測値と予測値から予測誤差を計算しまして、それが、平均値が 0 で分散が y の予測値の分散となる正規分布に従えば、y の予測値の分散が正しく評価されている、といえます。

ただ、ガウス過程回帰における y の予測値の分散はサンプルごとに異なります。(テストデータの) サンプルを集めて、それが何らかの分布に従うかどうかを考えるときには、y の予測値の分散を正規化・標準化をする必要があります。そこで、サンプルごとに予測誤差を y の予測値の標準偏差 (y の予測値の分散の平方根) で割ることで、分散を 1 にそろえます。この標準化により、標準化後の予測誤差は平均値が 0、分散が 1 の正規分布に従うと仮定できます。例えばテストデータにおける標準化後の予測誤差が平均値 0、分散 1 の正規分布に従っていれば、ガウス過程回帰によって適切に y の予測値の分散を評価できているといえます。

ちなみに、平均値 0、分散 1 の正規分布に従うかは、ヒストグラムを確認したり、Q-Q (Quantile-Quantile) プロットを確認したり、正規性の検定をしたりします。正規性の検定としては、コルモゴロフ–スミルノフ検定やシャピロ–ウィルク検定やアンダーソン–ダーリング検定などがあります。SciPy にそれぞれ実装されています。

なおここでは例として、テストデータで検証することを想定して説明しましたが、サンプル数が小さい場合は、テストデータにおける予測誤差と予測値の分散の代わりに、ダブルクロスバリデーションにおける予測誤差と予測値の分散を用いるとよいです。

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

ガウス過程回帰における y の予測値の分散が適切に評価されているか検証したい場合は、以上の方法を用いるとよいと思います。

以上です。

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

シェアする

フォローする