PythonSDKは、ロギングデータベースを設定し、機械学習エンジンをバインドし、デプロイメントを選択して監視するために使用できるPythonライブラリです。
Python SDK を使用して、ノートブックのランタイム環境でメトリクスやアルゴリズムを計算したり、IBM Analytics Engine に対して Spark ジョブとしてオフロードして、プロンプト テンプレートや従来のモデル評価を行うことができます。
PythonSDKバージョン3.0.14から、以下のフェアネスメトリクスと説明アルゴリズムの計算がサポートされました:
FairScore 変換器
FairScore 変換プログラムをポストプロセッシング・バイアス緩和手法として使用できます。 この手法は、公平性目標に関する確率推定値または確率的二項分類モデルのスコアを変換します。 FairScoreを使用するには、フェアスコアトランスフォーマーをトレーニングする必要があります。
個別の公平性ポストプロセッサー
個々の公平性ポストプロセッサーは、個々のスコアを変換して個々の公平性を実現するポストプロセッシング・トランスフォーマー・アルゴリズムです。 これを Python SDK で使用して、マルチクラス・テキスト分類をサポートできます。 このアルゴリズムを使用してモデル出力を変換する前に、このアルゴリズムをトレーニングする必要があります。
入力削減
入力縮小アルゴリズムを使用して、モデル予測の一貫性を維持するために指定する必要がある特徴量の最小セットを計算できます。 このアルゴリズムは、モデル予測に影響しない特徴量を除外します。
可能性の高い報酬
尤度補正 (LC) は、グランド・トゥルースからブラック・ボックス・モデルの予測の偏差を説明するためのフレームワークです。 テスト・データとブラック・ボックス・モデルの予測関数を使用して、LC はテスト・データ内の異常を識別し、サンプルが異常になった原因を説明できます。 LC の説明は差分として提供されます。差分は、元のテスト・データまたは異常に追加されると、モデルの予測をグランド・トゥルースに収束させます。 LC はローカル説明を提供し、回帰モデルの場合にのみサポートされます。
ローカル解釈可能モデル-不可知論的説明 (LIME)
LIME は、最大 5000 の他のクローズバイ・データ・ポイントを分析することにより、特定のデータ・ポイントにとって最も重要な特徴量を識別します。 理想的な設定では、LIME で重要度の高い特徴量は、その特定のデータ・ポイントで一番重要な特徴量ということになります。 構造化データと非構造化データを持つフィーチャーを含むマルチモーダル・データを持つモデルの LIME 説明を生成できます。 構造化データには、数値データとカテゴリー・データを含めることができます。 非構造化データには、1 つのテキスト列を含めることができます。
平均個人差
個々の平均差を使用して、モデルが類似のサンプルに対して類似の予測またはスコアを生成するかどうかを検証できます。 このメトリックは、類似サンプルの多項分類モデルの確率推定値の差を計算します。
多次元サブセットのスキャン
多次元サブセット・スキャン・アルゴリズムを一般的なバイアス・スキャン方式として使用できます。 この方法は、確率的 2 分類子に対して統計的に有意な予測バイアスを持つ特徴量のサブグループを検出して識別します。 このアルゴリズムは、どの機能が保護属性であるか、およびこれらの機能のどの値がモニター評価の特権グループであるかを決定するのに役立ちます。
パフォーマンスの測定
以下のパフォーマンス測定メトリックを使用して、サンプル・データからグランド・トゥルース・データおよびモデル予測を使用して計算されたコンフュージョン・マトリックスを持つモデルを評価できます。
- 平均オッズ差 (average_odds_difference)
- 平均不在 _odds_difference
- エラー率の差
- エラー率 (error_rate_ratio)
- false_negative_rate_difference
- false_negative_rate_ratio
- false_positive_rate_difference
- false_positive_rate_ratio
- 偽のディスカバー率の差
- 検出率の検出が失敗しました
- false_omission_rate_difference
- false_omission_rate_ratio
保護属性の抽出
保護属性抽出アルゴリズムは、テキスト・データ・セットを構造化データ・セットに変換します。 このアルゴリズムは、テキスト・データをトークン化し、指定されたパターンとデータを比較し、テキストから保護属性を抽出して構造化データを作成します。 この構造化データを使用して、バイアス検出アルゴリズムで保護属性に対するバイアスを検出することができます。 保護属性抽出アルゴリズムは、保護属性として性別のみをサポートします。
保護属性の摂動
保護属性摂動アルゴリズムは、テキスト・データ・セット内の保護属性パターンを識別することにより、反証ステートメントを生成します。 また、テキストをトークン化し、テキスト・データ内のキーワードを摂動してステートメントを生成します。 元のデータセットと摂動されたデータセットを使用して、バイアス検出アルゴリズムで保護属性に対するバイアスを検出することができます。 保護属性摂動アルゴリズムは、保護属性として性別のみをサポートします。
プロトダッシュ・エクスプローラー
プロトダッシュ・エクスプローラーは、説明が必要なリファレンス・セットからの入力データを識別します。 この方法により、参照データ・ポイントと、トレーニング・データから選択されるインスタンスの数との間の最大平均矛盾 (MMD) が最小化されます。 モデル予測の理解を深めるために、トレーニング・データ・インスタンスは、参照データ・ポイントと類似した分布を模倣します。
Shapley Additive Explainer (SHAP)
SHAP は、機械学習モデルの出力を説明するゲーム理論的アプローチです。 これは、Shapley の値とそれに関連する拡張機能を使用して、最適なクレジット割り当てをローカルの説明に結び付けます。
SHAP は、各モデル特徴量に特定の予測の重要度値を割り当てます。これは Shapley 値と呼ばれます。 Shapley 値は、すべての可能な特徴量グループにおける、特徴量値の平均周辺寄与率です。 入力特徴量の SHAP 値は、ベースラインまたは期待されるモデル出力と、説明されている予測の現在のモデル出力との差の合計です。 ベースライン・モデル出力は、トレーニング・データの要約、または説明を生成する必要があるデータのサブセットに基づくことができます。
トランザクションのセットの Shapley 値を組み合わせて、モデルのどの機能が最も重要であるかの概要を示すグローバル説明を得ることができます。 非構造化テキスト・モデルの SHAP 説明を生成して、結果がどのように予測されるかを理解することができます。
平滑化された経験的微分 (SED)
SED は、モデル予測の公平性を記述するために使用できる公平性指標です。 SED は、フィーチャーによって分割された交差グループ間の好ましい結果と好ましくない結果の確率の差を定量化します。 交差するグループはすべて等しいため、非特権グループや特権グループはありません。 この計算では、データ・セット内の交差するグループ間の好ましい結果と好ましくない結果に対するディリクレ平滑化確率の最小比率である SED 値が生成されます。 値は 0 から 1 の範囲で、0 と 1 は除外されます。値が大きいほど、より良い結果が得られます。
統計パリティーの差異
統計的パリティーの差異は、モデル予測の公平性を記述するために使用できる公平性指標です。 これは、非特権グループと特権グループの好ましい結果の比率の差です。 このメトリックは、入力データ・セットから計算することも、分類子または予測データ・セットからのデータ・セットの出力から計算することもできます。 値 0 は、両方のグループが等しい利点を持つことを意味します。 0 より小さい値は、特権グループの利点が高いことを意味します。 0 より大きい値は、非特権グループの利点が大きいことを意味します。