キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
DataRobot コミュニティ

【MLOps】信頼性ルールの閾値計算について

Y_kzm
イメージセンサー

【MLOps】信頼性ルールの閾値計算について

MLOpsの信頼性ルールについてのご質問です。


信頼性タブから予測値に対する信頼性ルールを作成できるかと思いますが、
「不確かな予測」での、DataRobotで自動計算される上限・下限の閾値とは具体的にどのようなロジックで算出しているのものなのでしょうか?

 

※マニュアルでは「連続値モデルの場合、トリガーは設定されたしきい値の範囲外の値を検出します。二値分類モデルの場合、トリガーは、しきい値の内側にある予測の確率値を検出します。」と、しきい値としか表記されておりませんでしたのでご質問いたしました。
https://docs.datarobot.com/ja/docs/mlops/governance/humble.html#uncertain-prediction

 

よろしくお願いいたします。

0 件の賞賛
2件の返信2
Hiroki Hamagami
データサイエンティスト
データサイエンティスト

@Y_kzm さん
MLOpsの信頼性ルールについて、ご質問いただきありがとうございます!

信頼性ルールではモデルが不確かな予測を行なったり、これまで見たことがないデータを受信したりしたときに、リアルタイムでモニタリングすることができます。

ご質問の件ですが、「不確かな予測」では「しきい値」を設定することで「不確かな予測」を検出しますが、そのロジックは回帰モデルと2値分類モデルで異なります。

回帰モデルの場合は、「しきい値」の上限または下限の範囲外の予測値が出力されたときに、「不確かな予測」として検出します。「しきい値」の自動計算には、外れ値の検出方法であるUeda's algorithmが使用されています。つまり、回帰モデルの場合には、外れ値を「不確かな予測」として検出しているということになります。

Ueda's algorithmについて詳しくはこちらの文献もご参照ください。

https://jsdajournal.springeropen.com/articles/10.1186/s40488-015-0031-y

 

一方で、2値分類モデルの場合では、「しきい値」の上限または下限の範囲内の予測値が出力されたときに、「不確かな予測」として検出します。ここで、「しきい値」は、予測に対して「PositiveクラスとNegativeクラスを分けるしきい値」に応じて設定します(紛らわしいですが前者のしきい値と後者のしきい値は異なりますので、前者を「信頼性ルールのしきい値」と後者を「PositiveクラスとNegativeクラスを分けるしきい値」として以後使い分けます)。

例えば、「PositiveクラスとNegativeクラスを分けるしきい値」を0.5に設定してデプロイしたとします。そのとき、予測値が0.1や0.9ならば確度が高い予測ですが、予測値が0.5付近ならばロバスト性が低く、不確かな予測と言えます。そのため、このケースでは「信頼性ルールのしきい値」は0.5付近の範囲で設定するのが適切です。実際に、自動計算を実行すると「信頼性ルールのしきい値」は[0.41-0.59]というように「PositiveクラスとNegativeクラスと分けるしきい値」に応じて機械的に設定されます。なお、自動計算で出力される「信頼性ルールのしきい値」の幅は、「PositiveクラスとNegativeクラスを分けるしきい値」が0または1に近づくにつれて狭くなります(例:[0.17-0.23])。

以上、「不確かな予測」の検出と「信頼性ルールのしきい値」の自動計算について回答しました。

ご不明点などありましたらコメントお願いいたします。

Y_kzm
イメージセンサー

@Hiroki Hamagami さん

詳細、ご丁寧にありがとうございます。

 

回帰の場合は、データ品質評価の外れ値と同様のアルゴリズムが使われていること、

分類問題においては、正例・負例の閾値近傍に「信頼性ルールの閾値」が設定されると理解いたしました。

 

参考にさせていただきます。

0 件の賞賛