機械学習アルゴリズムの予測間隔


13

以下に説明するプロセスが有効/許容可能であり、正当な理由があるかどうかを知りたい。

考え方:教師あり学習アルゴリズムは、データの基礎となる構造/分布を想定していません。一日の終わりに、彼らはポイント推定値を出力します。推定の不確実性を何らかの形で定量化したいと考えています。現在、MLモデルの構築プロセスは本質的にランダムです(たとえば、ハイパーパラメーターチューニングの相互検証のサンプリングや、確率論的GBMのサブサンプリングなど)。したがって、モデリングパイプラインは、異なる予測子ごとに異なるシードの異なる出力を生成します。私の(素朴な)アイデアは、このプロセスを何度も繰り返して予測の分布を考え出すことであり、予測の不確実性について声明を出すことができれば幸いです。

問題があれば、私が扱うデータセットは通常非常に小さい(〜200行)。

これは理にかなっていますか?

明確にするために、私は実際には伝統的な意味でデータをブートストラップしていません(つまり、データを再サンプリングしていません)。すべての反復で同じデータセットが使用されます。xvalと確率的GBMのランダム性を利用しています。


2
実際に(信頼区間ではなく)予測区間が必要な場合は、モデル予測の変動だけでなく、モデルに関する観測値の変動を考慮する必要があります
Glen_b -Reinstate Monica

@Glen_bは、OPで概説されているアプローチか、ブーストされたバージョンのどちらかで信頼区間を取得しますか?データの基礎となる分布を指定せずに予測間隔を設定することはできないと考え始めているため、次回質問を言い換える必要があるかもしれません。
ケビニクオ

あなただけではない、あなたがQ.で説明何やっによって...予測区間をブートストラップすることができます
Glen_b -Reinstateモニカ

@Glen_b回答でこれを行う方法を説明できますか?
ケビニクオ

1
ここで十分な答えを出すことができませんでした。しかし、必要とされるかもしれない種類の感覚を与える重回帰とGLMに関する章のDavison&Hinkley(1997)を参照してください。たとえば、重回帰の場合、予測不確実性(パラメーターの不確実性による予測の変動)のブートストラップ推定を得るために残差がリサンプリングされ、プロセス変動に対処するために再度リサンプリングされます。適した方式では、あなたはおそらくも、その最初のステップでモデル仕様の不確実性に対処することができるかもしれませんが、あなたは、プロセス変動のための第二ステップを省略することはできません
Glen_b -Reinstateモニカ

回答:


5

私には、予測の不確実性を定量化することは、他の方法と同じくらい良いアプローチのようです。ブートストラップのリサンプルごとに、すべてのモデリングステップを(パラメーターチューニングとなるGBMについて)ゼロから繰り返すようにしてください。重要度ランキングをブートストラップして、ランキングの不確実性を定量化することも価値があります。

特に確率を推定する場合、間隔に実際の予測が含まれないことがあることがわかりました。通常、各ターミナルノードでの観測の最小数を増やすことで、少なくとも作業したデータでそれを解決します。

等角予測は、新しいデータの予測の信頼性を定量化するための有用なアプローチのようです。私はこれまで表面に傷を付けただけで、他の人はおそらくそれについての意見を述べるのにより適しています。

GBMの予測間隔を見つけることに関するこの投稿への返信には、いくつかの粗雑なRコードがあります。

お役に立てれば!


2

予測に関する不確実性を「バイアス」と「分散」の項に分割できます。バイアス用語は、モデルの仕様の誤りを指します。非線形関数に線形モデルを適合させると、常に何らかのエラーが発生します。「分散」という用語は、モデルパラメーター推定の誤差を指します。不確実性の分散部分を考慮してアプローチしますが、バイアスを推定することはできません。

@ErikLによって示唆されているように、共形予測は、ブートストラップに非常によく似たアイデアを採用する理論的に正当化されたアプローチです。新しい点を使用したモデルの再構成を使用した共形予測では、バイアスと分散の両方が考慮されますが、回帰の場合は重要な計算リソースが必要です。非準拠ライブラリを使用してPythonで試すことができます


1

いいえ、それは悪い考えのようです。まず、アレクセイが指摘したように、バイアスと分散があります。最適なパラメーターを選択しても、分散を避けることはできません。あなたの方法はそれに対処しようとさえしません。別の非常に重要な問題があります。モデルのエラーの一部、そしておそらくほとんどは、モデルに固有のランダム性ではなくデータにあります。(言うまでもなく、単純な線形回帰のような一部のモデルはまったくランダムではなく、ランダムモデルの場合、ランダム性の度合いはモデルごとに異なります)

いくつかの単純なシミュレートされたデータと、知っているモデルでアプローチをテストすることをお勧めします。説明した理由により、推定誤差は実際の誤差よりもはるかに小さくなります(または分布がより狭くなります)。

エラー分布を推定するために、古き良き相互検証を使用できます。


0

今、この問題について考えています。私の発見は次のとおりです。

(1)デルタ法
(2)ブートストラップリサンプリング
(3)ベイジアン法
(4)平均分散推定(MVE)

アイデアは、予測の変動性の2つの原因、モデルパラメーター推定値からの不確実性、および既約誤差を推定しようとしています。

以下にいくつかのリファレンスを示します。

モデル出力の予測区間を推定するための機械学習アプローチ、Durga L. Shrestha、Dimitri P. Solomatine、2006
ニューラルネットワークモデルのいくつかのエラー推定値の比較、Robert Tibshirani、1995
ニューラルネットワークベースの予測区間の包括的レビューAdvances、アッバス・ホスラヴィ、ダグ・クレイトン、2011

上記のいずれかが不適切であり、これが私を助け、修正することを願っています。他の人からもっと聞きたいです。


1
この投稿が元の質問にどのように対応しているか説明できますか?
whuber

タイトルは「MLアルゴリズムのPI」で、@ kevinykuoは彼の「ブートストラップ」方法が機能するかどうかを尋ねています。私は、ニューラルネットワークのPIで使用されるいくつかの方法に関するいくつかの参照を指しています。
デモ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.