公正な評価を算出するための概念を理解する
バイアスの計算方法
フェアネスモニタのアルゴリズムは、ペイロードロギングテーブルに存在する最後のN
レコードを使用し、フェアネスモニタを設定する際にN
の値を指定することで、1時間単位でバイアスを計算する。 このアルゴリズムは、摂動と呼ばれる方法を適用して、データ内の期待される結果の差異を評価します。
摂動により、特徴量の値が参照グループからモニター対象グループに (またはその逆に) 変更されます。 摂動されたデータはモデルに送られ、その動作が評価されます。 このアルゴリズムは、ペイロード・テーブル内の最後の N
レコード、および摂動されたデータに対するモデルの動作を調べて、モデルの結果がバイアスの存在を示しているかどうかを判別します。
公平性モニターの構成時に指定したしきい値によって、モニター対象グループの好ましい結果の割合が参照グループの好ましい結果の割合より小さい場合、モデルはバイアスになります。
公平性の値は 100% を超える可能性があることに注意してください。 この計算は、モニター対象グループが、参照グループよりも多くの好ましい結果を受け取ったことを意味します。 さらに、新しい評価要求が送信されない場合、公平性の値は一定のままになります。
均衡データと完全平等性
平衡型データ・セットの場合は、以下の概念が適用されます。
- 完全平等性値を決定するために、すべてのモニター対象グループ・トランザクションのモニター対象特徴量値をすべての参照グループ値に変更することで、参照グループ・トランザクションが合成されます。 これらの新しい合成トランザクションは、参照グループ・トランザクションのセットに追加され、モデルによって評価されます。
例えば、モニター対象の特徴量が SEX
で、モニター対象グループが FEMALE
の場合、すべての FEMALE
トランザクションが MALE
トランザクションとして複製されます。 その他の特徴量値は変更されないままです。 これらの新しい合成MALE
トランザクションは、元のMALE
参照グループ・トランザクションのセットに追加されます。
- 好ましい結果のパーセンテージは、新しい参照グループから決定されます。 このパーセンテージは、モニター対象グループの完全な公平性を表します。
- また、各参照グループ・トランザクションの参照特徴量値をモニター対象グループ値に変更することにより、モニター対象グループ・トランザクションも合成されます。 これらの新しい合成トランザクションは、モニター対象グループ・トランザクションのセットに追加され、モデルによって評価されます。
モニター対象機能がSEX
であり、モニター対象グループがFEMALE
である場合、すべてのMALE
トランザクションがFEMALE
トランザクションとして複製されます。 その他の特徴量値は変更されないままです。 これらの新しい合成FEMALE
トランザクションは、元のFEMALE
モニター対象グループ・トランザクションのセットに追加されます。
完全等価性の計算
完全平等性の計算には次の数式が使用されます。
Perfect equality = Percentage of favorable outcomes for all reference transactions,
including the synthesized transactions from the monitored group
例えば、モニター対象の特徴量がSEX
でありあり、モニター対象グループがFEMALE
である場合、次の式は完全平等性を示します。
Perfect equality for `SEX` = Percentage of favorable outcomes for `MALE` transactions,
including the synthesized transactions that were initially `FEMALE` but changed to `MALE`
公平性評価を設定すると、モデルの公平性を評価するための一連のメトリクスを生成できます。 公平性メトリックを使用して、モデルがバイアスのある結果を生成するかどうかを判別できます。
予測列のデータ・タイプの変換
公平性モニターでは、予測ラベルがカテゴリカルであっても予測列で使用できるのは整数値のみです。 予測列データ・タイプの変換が可能です。
例えば、トレーニング・データに「Loan Denied」、「Loan Granted」などのクラス・ラベルがあるとします。 IBM watsonx.aiランタイム・スコアリング・エンドポイントが返す予測値には、"0.0"、"1.0" といった値があります。 また、評価エンドポイントには、予測のテキスト表現を含むオプション列もあります。 例えば、予測 = 1.0 の場合、predictionLabel 列に「Loan Granted」という値が含まれる場合があります。 そのような列がある場合、モデルに好ましい結果と好ましくない結果を構成するときに、ストリング値として「Loan Granted」と「Loan Denied」を指定します。 こうした列がない場合には、好ましいクラスと好ましくないクラスに関して整数値と倍精度値の 1.0、0.0 を指定する必要があります。
IBM watsonx.aiRuntime には出力スキーマという概念があり、IBM watsonx.aiRuntime のスコアリング・エンド・ポイントの出力のスキーマと、さまざまなカラムの役割を定義します。 ロールは、どの列に予測値が含まれているか、どの列に予測確率が含まれているか、およびクラス・ラベル値などを識別するために使用されます。 出力スキーマは、モデル・ビルダーを使用して作成されたモデルに対して自動的に設定されます。 IBM watsonx.aiRuntimePythonクライアントを使用して設定することもできます。 ユーザーは、出力スキーマを使用して予測のストリング表現を入れる列を定義できます。 列の modeling_role
を「decoded-target」に設定します。 IBM watsonx.aiRuntimePythonクライアントのドキュメントはhttps://ibm.github.io/watsonx-ai-python-sdk/core_api.html#repository にあります。 「OUTPUT_DATA_SCHEMA」を検索して、出力スキーマを把握してください。 使用する API 呼び出しは、store_model
呼び出しです。これは、OUTPUT_DATA_SCHEMA をパラメーターとして受け入れます。
100% を超える公平性スコアを解釈する
公平性の構成によっては、公平性スコアが 100% を超える場合があります。 これは、参照グループと比べてモニター対象グループでより「公平な」結果が得られていることを意味します。 厳密に言うと、これは反対方向に不公平なモデルということになります。
詳細情報
親トピック: 公平性モニターの構成