キャリブレーションの測定に最適なメトリックを選択するにはどうすればよいですか?


10

私はプログラミングし、テスト駆動開発を行います。コードに変更を加えた後、テストを実行します。成功することもあれば失敗することもあります。テストを実行する前に、テストが成功するという私の信任のために、0.01から0.99までの数字を書き留めます。

私のテストが成功するか失敗するかを予測することで、私が改善しているかどうかを知りたいです。また、テストが月曜日と金曜日のどちらで成功するかを予測するのが得意かどうかを追跡できるとよいでしょう。テストの成功を予測する私の能力が、追跡する他のメトリックと相関している場合は、知りたいです。

これにより、適切なメトリックを選択するタスクが残ります。SuperforcastingでPhilip Tetlockは、Brierスコアを使用して、専門家がどれだけうまく校正されているかを測定することを提案しています。文献で提案されているもう1つの指標は、対数スコアリングルールです。他の可能な候補者もいます。

使用するメトリックをどのように決定しますか?スコアリングルールを他のルールよりも優先することについての議論はありますか?


1
予測スキルの変化を測定することの難しさの潜在的な原因は、予測問題の根本的な困難が変わる可能性があることです。スキルの変化は、問題の難易度の変化と区別できない場合があります。
2016

回答:


1

私はあなたがあなたのコードのためにユニットテストをしていると思います。

私が考えることができる1つのアイデアは、おそらくあなたが望むものを正確に実行しないかもしれませんが、線形モデルを使用することです。

これを行う利点は、分析に含めることができる他の変数の束を作成できることです。

テストの結果を含むベクトルと、結果の予測を含む別のベクトルとします。xYx

これで、線形モデルを簡単にフィットできます

yi=a+bxi+ϵ

そして、の値を見つける高い値、あなたの予測が良くなってきていることを示します。bbb

このアプローチを優れたものにするのは、他の変数の束を追加して、より良いモデルが作成されるかどうかを確認できるようになり、それらの変数がより良い予測を行うのに役立つことです。変数は、曜日のインジケータである可能性があります。たとえば、月曜日の場合、変数は常に1になり、他のすべての日はゼロになります。その変数をモデルに含めると、次のようになります。

yi=a+aMonday+bxi+ϵ

また、変数が有意で正の場合、月曜日の予測がより保守的であることを意味している可能性があります。aMonday

また、実行したタスクの難易度を評価するためにスコアを与える新しい変数を作成することもできます。バージョン管理をしている場合、たとえば、コードの行数を難易度として使用できます。つまり、コードを多く書くほど、何かが壊れる可能性が高くなります。

その他の変数としては、その日のコーヒーカップの数、期限が近づいていることを示す指標、つまり、仕上げを行うためのストレスがより多いことなどがあります。

時間変数を使用して、予測が改善されているかどうかを確認することもできます。また、タスクに費やした時間、またはタスクに費やしたセッションの数、クイックフィックスを実行していたかどうか、それがずさんであるかどうかなど。

最後に、成功の可能性を予測することができる予測モデルがあります。これを作成できた場合は、おそらく独自の予測を行う必要さえありません。すべての変数を使用して、うまくいくかどうかをかなり推測できます。

事はあなたが単一の数しか欲しかったということです。その場合は、最初に説明した単純なモデルを使用して、勾配を使用し、各期間の計算をやり直すだけで、そのスコアに一定の傾向があるかどうかを確認できます。

お役に立てれば。


1
私は、より高いスロープ(と主張場合は、ロジスティック回帰を仮定:あなたの単純なモデルでは)常により良い予測に対応していない結果の「真」/観測された確率を=ながら、より、予測確率である 0であるべきであり、任意のより高い1であるべきであるながら、結果のoverprediction示唆 1過小を示唆しているよりも低いです。この方法は、私の回答で指摘している参考文献に実際に記載されています。つまり、この勾配法を使用するのが適切ですが、1に近い勾配が最適です( = 0の場合)。Y x a b b b abYxabbba
IWS 2017年

@IWS入力ありがとうございます。パフォーマンスを推定するために単一の値が必要な範囲で同意します。その場合、インターセプトを省略することをお勧めします。データをさらに解釈したい場合(そして十分なデータがある場合)、切片を追加してモデルを比較することをお勧めします。
Gumeo 2017年

1

これは回答と参照の詳細にはほど遠いですが、Steyerberg E-Epidemiology 2012を確認することをお勧めします。

この記事では、Steyerberg氏と同僚が、バイナリの結果(成功または失敗)を持つモデルの予測モデルのパフォーマンスをチェックするさまざまな方法について説明します。キャリブレーションはこれらの手段の1つにすぎません。正確な確率正確な分類、または正確な再分類のいずれを使用するかに応じて、モデルパフォーマンスのさまざまな測定値を使用できます。この原稿は生物医学研究で使用されるモデルに関するものですが、他の状況(あなたの状況)にも適用できると思います。

状況に応じて具体的に言えば、キャリブレーションメトリックは、可能な予測の全範囲にわたるキャリブレーションを要約(平均)するため、解釈が非常に困難です。その結果、適切なキャリブレーションサマリースコアが得られる一方で、予測が重要な範囲の予測確率でオフになっている可能性があります(たとえば、ブライヤースコアが低い(=良い)可能性がありますが、成功の予測が特定の値より上または下でオフになっている可能性があります)予測確率)またはその逆(概要スコアが低く、予測は重要な領域で十分に調整されている)。したがって、あなたのケースにそのような予測される成功確率の重要な範囲が存在するかどうかについて考えることをお勧めします。その場合は、適切な測定を使用してください(たとえば、再分類インデックス)。そうでない場合(つまり、全体的なキャリブレーションに関心があることを意味します)、brierを使用します。

結論として、いずれかのキャリブレーションサマリーメジャーでは、予測確率と観測確率をプロットする最初のステップが必要です(方法については外れ値の回答を参照してください)。次に、サマリーメジャーを計算できますが、サマリーメジャーの選択は、最初に失敗の成功を予測するという目標を反映する必要があります。


0

スパースデータで予測モデルを実行しましたが、これらのケースでモデルを調整することは大きな課題です。私が何をしたかをお話します。あなたはそれからいくつかの助けを得ることができます。

私は20ビンの予測確率を作成し、平均の予測確率と実際の成功確率をプロットしようとしました。平均予測確率については、ビン範囲の平均を取った。平均の実際の確率については、ビンの実際の成功数と失敗数を計算し、そこからビンの実際の(中央値)成功確率を得ました。外れ値の影響を軽減するために、各ビンの実際の中央確率をとる前に、上位5%と下位5%のデータを削除しました。

これらを取得したら、データを簡単にプロットできました。


これがHosmer-Lemeshow適合度検定の計算の最初のステップであることを指摘しておくとよいでしょう。
jwimberley 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.