Main Content

report

公平性メトリクス レポートを生成

R2022b 以降

    説明

    metricsTbl = report(evaluator) は、fairnessMetrics オブジェクト evaluatorBiasMetrics プロパティに格納されたバイアス メトリクスを含む table metricsTbl を生成します。

    metricsTbl = report(evaluator,Name=Value) では、1 つ以上の名前と値の引数を使用して追加オプションを指定します。名前と値の引数 BiasMetricsGroupMetrics を使用して、metricsTbl に含めるバイアス メトリクスとグループ メトリクスをそれぞれ指定できます。

    すべて折りたたむ

    fairnessMetrics オブジェクトを作成して、予測ラベルのセンシティブ属性についての公平性メトリクスを計算します。その後、関数 report の名前と値の引数 BiasMetricsGroupMetrics を使用して、指定した公平性メトリクスについてのメトリクスの table を作成します。

    学習データ adultdata およびテスト データ adulttest を含む、標本データ census1994 を読み込みます。このデータ セットは、個人の年収が $50,000 を超えるかどうかを予測するために使用できる、米国国勢調査局の人口統計情報から構成されています。学習データ セットの最初の数行をプレビューします。

    load census1994
    head(adultdata)
        age       workClass          fnlwgt      education    education_num       marital_status           occupation        relationship     race      sex      capital_gain    capital_loss    hours_per_week    native_country    salary
        ___    ________________    __________    _________    _____________    _____________________    _________________    _____________    _____    ______    ____________    ____________    ______________    ______________    ______
    
        39     State-gov                77516    Bachelors         13          Never-married            Adm-clerical         Not-in-family    White    Male          2174             0                40          United-States     <=50K 
        50     Self-emp-not-inc         83311    Bachelors         13          Married-civ-spouse       Exec-managerial      Husband          White    Male             0             0                13          United-States     <=50K 
        38     Private             2.1565e+05    HS-grad            9          Divorced                 Handlers-cleaners    Not-in-family    White    Male             0             0                40          United-States     <=50K 
        53     Private             2.3472e+05    11th               7          Married-civ-spouse       Handlers-cleaners    Husband          Black    Male             0             0                40          United-States     <=50K 
        28     Private             3.3841e+05    Bachelors         13          Married-civ-spouse       Prof-specialty       Wife             Black    Female           0             0                40          Cuba              <=50K 
        37     Private             2.8458e+05    Masters           14          Married-civ-spouse       Exec-managerial      Wife             White    Female           0             0                40          United-States     <=50K 
        49     Private             1.6019e+05    9th                5          Married-spouse-absent    Other-service        Not-in-family    Black    Female           0             0                16          Jamaica           <=50K 
        52     Self-emp-not-inc    2.0964e+05    HS-grad            9          Married-civ-spouse       Exec-managerial      Husband          White    Male             0             0                45          United-States     >50K  
    

    各行には、成人 1 人の人口統計情報が格納されています。agemarital_statusrelationshipracesex などのセンシティブ属性の情報が含まれます。3 列目の flnwgt に観測値の重みが格納されており、最後の列 salary は個人の年収が $50,000 以下 (<=50K) か $50,000 を超える (>50K) かを示します。

    学習データ セット adultdata を使用して分類木に学習させます。table adultdata 内の変数名を使用して、応答変数、予測子変数、および観測値の重みを指定します。

    predictorNames = ["capital_gain","capital_loss","education", ...
        "education_num","hours_per_week","occupation","workClass"];
    Mdl = fitctree(adultdata,"salary", ...
        PredictorNames=predictorNames,Weights="fnlwgt");

    学習させた木 Mdl を使用して、テスト標本のラベルを予測します。

    adulttest.predictions = predict(Mdl,adulttest);

    この例では、予測ラベルの年齢および婚姻区分についての公平性を評価します。変数 age を 4 つのビンにグループ化します。

    ageGroups = ["Age<30","30<=Age<45","45<=Age<60","Age>=60"];
    adulttest.age_group = discretize(adulttest.age, ...
        [min(adulttest.age) 30 45 60 max(adulttest.age)], ...
        categorical=ageGroups);

    fairnessMetrics を使用して、予測の変数 age_group および marital_status についての公平性メトリクスを計算します。

    MdlEvaluator = fairnessMetrics(adulttest,"salary", ...
        SensitiveAttributeNames=["age_group","marital_status"], ...
        Predictions="predictions",ModelNames="Tree",Weights="fnlwgt");

    fairnessMetrics でサポートされているすべてのバイアス メトリクスとグループ メトリクスのメトリクスが計算されます。BiasMetrics プロパティと GroupMetrics プロパティに格納されているメトリクスの名前を表示します。

    MdlEvaluator.BiasMetrics.Properties.VariableNames(4:end)'
    ans = 4x1 cell
        {'StatisticalParityDifference'  }
        {'DisparateImpact'              }
        {'EqualOpportunityDifference'   }
        {'AverageAbsoluteOddsDifference'}
    
    
    MdlEvaluator.GroupMetrics.Properties.VariableNames(4:end)'
    ans = 17x1 cell
        {'GroupCount'               }
        {'GroupSizeRatio'           }
        {'TruePositives'            }
        {'TrueNegatives'            }
        {'FalsePositives'           }
        {'FalseNegatives'           }
        {'TruePositiveRate'         }
        {'TrueNegativeRate'         }
        {'FalsePositiveRate'        }
        {'FalseNegativeRate'        }
        {'FalseDiscoveryRate'       }
        {'FalseOmissionRate'        }
        {'PositivePredictiveValue'  }
        {'NegativePredictiveValue'  }
        {'RateOfPositivePredictions'}
        {'RateOfNegativePredictions'}
        {'Accuracy'                 }
    
    

    関数 report を使用して公平性メトリクスを格納する table を作成します。BiasMetrics["eod","aaod"] と指定して、機会均等差 (EOD) と平均絶対オッズ差 (AAOD) のメトリクスをレポートの table に含めます。fairnessMetrics では、これらの 2 つのメトリクスの計算に真陽性率 (TPR) と偽陽性率 (FPR) を使用します。GroupMetrics["tpr","fpr"] と指定して、TPR と FPR の値を table に含めます。

    metricsTbl = report(MdlEvaluator, ...
        BiasMetrics=["eod","aaod"],GroupMetrics=["tpr","fpr"]);

    センシティブ属性 age_group のみについての公平性メトリクスを表示します。

    metricsTbl(metricsTbl.SensitiveAttributeNames=="age_group",3:end)
    ans=4×5 table
          Groups      EqualOpportunityDifference    AverageAbsoluteOddsDifference    TruePositiveRate    FalsePositiveRate
        __________    __________________________    _____________________________    ________________    _________________
    
        Age<30                -0.041586                        0.044576                  0.41333             0.041053     
        30<=Age<45                    0                               0                  0.45491             0.088618     
        45<=Age<60             0.061227                        0.031446                  0.51614             0.086954     
        Age>=60                0.001949                       0.0099106                  0.45686             0.070746     
    
    

    fairnessMetrics オブジェクトを作成して、真のラベルのセンシティブ属性についての公平性メトリクスを計算します。その後、関数 report を使用して、サポートされるすべての公平性メトリクスを含む table を作成します。

    標本ファイル CreditRating_Historical.dat を table に読み取ります。予測子データは、法人顧客リストの財務比率と業種の情報で構成されます。応答変数は、格付機関が割り当てた格付けから構成されます。

    creditrating = readtable("CreditRating_Historical.dat");

    変数 ID の各値は一意の顧客 ID であるため (つまり、length(unique(creditrating.ID))creditrating に含まれる観測値の数に等しい)、変数 ID は予測子としては適切ではありません。変数 ID を table から削除し、変数 Industrycategorical 変数に変換します。

    creditrating.ID = [];
    creditrating.Industry = categorical(creditrating.Industry);

    応答変数 Rating について、AAAAAA、および BBB の格付けを "good" の格付けのカテゴリに結合し、BBB、および CCC の格付けを "poor" の格付けのカテゴリに結合します。

    Rating = categorical(creditrating.Rating);
    Rating = mergecats(Rating,["AAA","AA","A","BBB"],"good");
    Rating = mergecats(Rating,["BB","B","CCC"],"poor");
    creditrating.Rating = Rating;

    変数 Rating のラベルのセンシティブ属性 Industry についての公平性メトリクスを計算します。

    evaluator = fairnessMetrics(creditrating,"Rating", ...
        SensitiveAttributeNames="Industry");

    関数 report を使用してバイアス メトリクスを表示します。既定では、関数 report はすべてのバイアス メトリクスを含む table を作成します。

    report(evaluator)
    ans=12×4 table
        SensitiveAttributeNames    Groups    StatisticalParityDifference    DisparateImpact
        _______________________    ______    ___________________________    _______________
    
               Industry              1                 0.077242                  1.2632    
               Industry              2                 0.078577                  1.2678    
               Industry              3                        0                       1    
               Industry              4                 0.088718                  1.3023    
               Industry              5                 0.055526                  1.1892    
               Industry              6                -0.015004                 0.94887    
               Industry              7                 0.014489                  1.0494    
               Industry              8                 0.063476                  1.2163    
               Industry              9                  0.13948                  1.4753    
               Industry              10                 0.13865                  1.4725    
               Industry              11                0.009886                  1.0337    
               Industry              12                0.029338                     1.1    
    
    

    サポートされているすべてのバイアス メトリクスとグループ メトリクスを含む table を作成します。GroupMetrics"all" と指定して、すべてのグループ メトリクスを含めます。

    report(evaluator,GroupMetrics="all")
    ans=12×6 table
        SensitiveAttributeNames    Groups    StatisticalParityDifference    DisparateImpact    GroupCount    GroupSizeRatio
        _______________________    ______    ___________________________    _______________    __________    ______________
    
               Industry              1                 0.077242                  1.2632           348           0.088505   
               Industry              2                 0.078577                  1.2678           336           0.085453   
               Industry              3                        0                       1           351           0.089268   
               Industry              4                 0.088718                  1.3023           314           0.079858   
               Industry              5                 0.055526                  1.1892           341           0.086724   
               Industry              6                -0.015004                 0.94887           334           0.084944   
               Industry              7                 0.014489                  1.0494           315           0.080112   
               Industry              8                 0.063476                  1.2163           325           0.082655   
               Industry              9                  0.13948                  1.4753           328           0.083418   
               Industry              10                 0.13865                  1.4725           324           0.082401   
               Industry              11                0.009886                  1.0337           300           0.076297   
               Industry              12                0.029338                     1.1           316           0.080366   
    
    

    2 つの分類モデルに学習させ、公平性メトリクスを使用してモデル予測を比較します。

    標本ファイル CreditRating_Historical.dat を table に読み取ります。予測子データは、法人顧客リストの財務比率と業種の情報で構成されます。応答変数は、格付機関が割り当てた格付けから構成されます。

    creditrating = readtable("CreditRating_Historical.dat");

    変数 ID の各値は一意の顧客 ID であるため (つまり、length(unique(creditrating.ID))creditrating に含まれる観測値の数に等しい)、変数 ID は予測子としては適切ではありません。変数 ID を table から削除し、変数 Industrycategorical 変数に変換します。

    creditrating.ID = [];
    creditrating.Industry = categorical(creditrating.Industry);

    応答変数 Rating について、AAAAAA、および BBB の格付けを "good" の格付けのカテゴリに結合し、BBB、および CCC の格付けを "poor" の格付けのカテゴリに結合します。

    Rating = categorical(creditrating.Rating);
    Rating = mergecats(Rating,["AAA","AA","A","BBB"],"good");
    Rating = mergecats(Rating,["BB","B","CCC"],"poor");
    creditrating.Rating = Rating;

    サポート ベクター マシン (SVM) モデルに creditrating データで学習させます。より良い結果を得るために、モデルを当てはめる前に予測子を標準化します。学習させたモデルを使用してラベルを予測し、学習データ セットの誤分類率を計算します。

    predictorNames = ["WC_TA","RE_TA","EBIT_TA","MVE_BVTD","S_TA"];
    SVMMdl = fitcsvm(creditrating,"Rating", ...
        PredictorNames=predictorNames,Standardize=true);
    SVMPredictions = resubPredict(SVMMdl);
    resubLoss(SVMMdl)
    ans = 0.0872
    

    一般化加法モデル (GAM) に学習させます。

    GAMMdl = fitcgam(creditrating,"Rating", ...
        PredictorNames=predictorNames);
    GAMPredictions = resubPredict(GAMMdl);
    resubLoss(GAMMdl)
    ans = 0.0542
    

    学習データ セットに対する精度は GAMMdl の方が高くなっています。

    両方のモデルのモデル予測を使用して、センシティブ属性 Industry についての公平性メトリクスを計算します。

    predictions = [SVMPredictions,GAMPredictions];
    evaluator = fairnessMetrics(creditrating,"Rating", ...
        SensitiveAttributeNames="Industry",Predictions=predictions, ...
        ModelNames=["SVM","GAM"]);

    関数 report を使用してバイアス メトリクスを表示します。

    report(evaluator)
    ans=48×5 table
                  Metrics              SensitiveAttributeNames    Groups       SVM          GAM    
        ___________________________    _______________________    ______    _________    __________
    
        StatisticalParityDifference           Industry              1       -0.028441     0.0058208
        StatisticalParityDifference           Industry              2        -0.04014     0.0063339
        StatisticalParityDifference           Industry              3               0             0
        StatisticalParityDifference           Industry              4        -0.04905    -0.0043007
        StatisticalParityDifference           Industry              5       -0.015615     0.0041607
        StatisticalParityDifference           Industry              6        -0.03818     -0.024515
        StatisticalParityDifference           Industry              7        -0.01514      0.007326
        StatisticalParityDifference           Industry              8       0.0078632      0.036581
        StatisticalParityDifference           Industry              9       -0.013863      0.042266
        StatisticalParityDifference           Industry              10      0.0090218      0.050095
        StatisticalParityDifference           Industry              11      -0.004188      0.001453
        StatisticalParityDifference           Industry              12      -0.041572     -0.028589
        DisparateImpact                       Industry              1         0.92261         1.017
        DisparateImpact                       Industry              2         0.89078        1.0185
        DisparateImpact                       Industry              3               1             1
        DisparateImpact                       Industry              4         0.86654       0.98742
          ⋮
    
    

    バイアス メトリクスのうち、機会均等差 (EOD) の値を比較します。関数 plot を使用して、EOD の値の棒グラフを作成します。

    b = plot(evaluator,"eod");
    b(1).FaceAlpha = 0.2;
    b(2).FaceAlpha = 0.2;
    legend(Location="southwest")

    Figure contains an axes object. The axes object with title Equal Opportunity Difference, xlabel Fairness Metric Value, ylabel Industry contains 3 objects of type bar, constantline. These objects represent SVM, GAM.

    EOD の値の分布が理解しやすくなるように、箱ひげ図を使用して値をプロットします。

    boxchart(evaluator.BiasMetrics.EqualOpportunityDifference, ...
        GroupByColor=evaluator.BiasMetrics.ModelNames)
    ax = gca;
    ax.XTick = [];
    ylabel("Equal Opportunity Difference")
    legend

    Figure contains an axes object. The axes object with ylabel Equal Opportunity Difference contains 2 objects of type boxchart. These objects represent SVM, GAM.

    EOD の値は、SVM の値に比べて GAM の方が 0 に近くなっています。

    入力引数

    すべて折りたたむ

    公平性評価器。fairnessMetrics オブジェクトとして指定します。

    名前と値の引数

    オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。

    例: BiasMetrics="",GroupMetrics="all" は、すべてのグループ メトリクスを表示するように指定します。

    バイアス メトリクスのリスト。"all"[]、メトリクス名の文字ベクトルか string スカラー、または複数のメトリクス名を含む string 配列か文字ベクトルの cell 配列として指定します。

    • "all" (既定) — 関数 report から返される出力の table metricsTblevaluatorBiasMetrics プロパティのすべてのバイアス メトリクスが含まれます。

    • []metricsTbl にいずれのバイアス メトリクスも含まれません。

    • BiasMetrics プロパティの 1 つ以上のバイアス メトリクスの名前 — evaluatorBiasMetrics プロパティと出力の table metricsTbl では、table 変数名に完全名が使用されます。ただし、名前と値の引数 BiasMetrics の指定には、次の表に示す完全名または省略名のいずれかを使用できます。

    メトリクス名説明評価タイプ
    "StatisticalParityDifference" または "spd"統計的均一性差 (SPD)データレベルまたはモデルレベルの評価
    "DisparateImpact" または "di"差異の影響 (DI)データレベルまたはモデルレベルの評価
    "EqualOpportunityDifference" または "eod"機会均等差 (EOD)モデルレベルの評価
    "AverageAbsoluteOddsDifference" または "aaod"平均絶対オッズ差 (AAOD)モデルレベルの評価

    サポートされるバイアス メトリクスは、fairnessMetrics オブジェクトの作成時に引数 Predictions を使用して予測ラベルを指定するかどうかによって異なります。

    • データレベルの評価 — 真のラベルを指定して予測ラベルを指定しなかった場合、StatisticalParityDifferenceDisparateImpact のみが BiasMetrics プロパティに格納されます。

    • モデルレベルの評価 — 真のラベルと予測ラベルの両方を指定した場合、この表のすべてのメトリクスが BiasMetrics プロパティに格納されます。

    バイアス メトリクスの定義については、バイアス メトリクスを参照してください。

    例: BiasMetrics=["spd","eod"]

    データ型: char | string | cell

    R2023a 以降

    メトリクスを行に表示するフラグ。true または false として指定します。値 true は、metricsTbl の各行に 1 つの公平性メトリクスについての値だけが格納されることを示します。

    • データレベルの評価または 1 つのモデルのモデルレベルの評価を実行する場合、DisplayMetricsInRows の既定値は false です。

    • 2 つ以上のモデルのモデルレベルの評価を実行する場合、DisplayMetricsInRows の既定値は true です。

    例: DisplayMetricsInRows=false

    データ型: logical

    グループ メトリクスのリスト。[]"all"、メトリクス名の文字ベクトルか string スカラー、または複数のメトリクス名を含む string 配列か文字ベクトルの cell 配列として指定します。

    • [] (既定) — 関数 report から返される出力の table metricsTbl にいずれのグループ メトリクスも含まれません。

    • "all"metricsTblevaluatorGroupMetrics プロパティのすべてのグループ メトリクスが含まれます。

    • GroupMetrics プロパティの 1 つ以上のグループ メトリクスの名前 — evaluatorGroupMetrics プロパティと出力の table metricsTbl では、table 変数名に完全名が使用されます。ただし、名前と値の引数 GroupMetrics の指定には、次の表に示す完全名または省略名のいずれかを使用できます。

    メトリクス名説明評価タイプ
    "GroupCount"グループ カウント (グループの標本数)データレベルまたはモデルレベルの評価
    "GroupSizeRatio"グループ カウントを合計標本数で除算した値データレベルまたはモデルレベルの評価
    "TruePositives" または "tp"真陽性の数 (TP)モデルレベルの評価
    "TrueNegatives" または "tn"真陰性の数 (TN)モデルレベルの評価
    "FalsePositives" または "fp"偽陽性の数 (FP)モデルレベルの評価
    "FalseNegatives" または "fn"偽陰性の数 (FN)モデルレベルの評価
    "TruePositiveRate" または "tpr"真陽性率 (TPR) (再現率または感度とも呼ばれる)、TP/(TP+FN)モデルレベルの評価
    "TrueNegativeRate""tnr"、または "spec"真陰性率 (TNR)、特異度、TN/(TN+FP)モデルレベルの評価
    "FalsePositiveRate" または "fpr"偽陽性率 (FPR) (フォールアウトまたは 1 - 特異度とも呼ばれる)、FP/(TN+FP)モデルレベルの評価
    "FalseNegativeRate""fnr"、または "miss"偽陰性率 (FNR)、失敗率、FN/(TP+FN)モデルレベルの評価
    "FalseDiscoveryRate" または "fdr"偽発見率 (FDR)、FP/(TP+FP)モデルレベルの評価
    "FalseOmissionRate" または "for"偽省略率 (FOR)、FN/(TN+FN)モデルレベルの評価
    "PositivePredictiveValue""ppv"、または "prec"陽性予測値 (PPV)、適合率、TP/(TP+FP)モデルレベルの評価
    "NegativePredictiveValue" または "npv"陰性予測値 (NPV)、TN/(TN+FN)モデルレベルの評価
    "RateOfPositivePredictions" または "rpp"陽性予測率 (RPP)、(TP+FP)/(TP+FN+FP+TN)モデルレベルの評価
    "RateOfNegativePredictions" または "rnp"陰性予測率 (RNP)、(TN+FN)/(TP+FN+FP+TN)モデルレベルの評価
    "Accuracy" または "accu"精度、(TP+TN)/(TP+FN+FP+TN)モデルレベルの評価

    サポートされるグループ メトリクスは、fairnessMetrics オブジェクトの作成時に引数 Predictions を使用して予測ラベルを指定するかどうかによって異なります。

    • データレベルの評価 — 真のラベルを指定して予測ラベルを指定しなかった場合、GroupCountGroupSizeRatio のみが GroupMetrics プロパティに格納されます。

    • モデルレベルの評価 — 真のラベルと予測ラベルの両方を指定した場合、この表のすべてのメトリクスが GroupMetrics プロパティに格納されます。

    例: GroupMetrics="all"

    データ型: char | string | cell

    R2023a 以降

    レポート metricsTbl に含めるモデルの名前。"all"、文字ベクトル、string 配列、または文字ベクトルの cell 配列として指定します。ModelNames の値に含める名前は、evaluatorModelNames プロパティに含まれている名前でなければなりません。値 "all" の使用は evaluator.ModelNames を指定することと等価です。

    例: ModelNames="Tree"

    例: ModelNames=["SVM","Ensemble"]

    データ型: char | string | cell

    出力引数

    すべて折りたたむ

    公平性メトリクス。table として返されます。table の形式は、評価のタイプと DisplayMetricsInRows の値によって異なります。

    評価タイプDisplayMetricsInRows の値metricsTbl の形式
    データレベルの評価false
    • table の各行に、1 つのセンシティブ属性のグループについての値が格納されます。

    • table の列は、この順に SensitiveAttributeNamesGroups、および名前と値の引数 BiasMetricsGroupMetrics で指定されたメトリクスの列 (メトリクスごとに 1 列) になります。

    データレベルの評価true
    • table の各行に、1 つのセンシティブ属性のグループと 1 つの公平性メトリクスについての値が格納されます。

    • table の列は、この順に MetricsSensitiveAttributeNamesGroups、および Data になります。

    モデルレベルの評価false
    • table の各行に、1 つのセンシティブ属性のグループと 1 つのモデルについての値が格納されます。

    • table の列は、この順に ModelNamesSensitiveAttributeNamesGroups、および名前と値の引数 BiasMetricsGroupMetrics で指定されたメトリクスの列 (メトリクスごとに 1 列) になります。

    モデルレベルの評価true
    • table の各行に、1 つのセンシティブ属性のグループと 1 つの公平性メトリクスについての値が格納されます。

    • table の列は、この順に MetricsSensitiveAttributeNamesGroups、および名前と値の引数 ModelNames で指定されたモデルの列 (モデルごとに 1 列) になります。

    詳細

    すべて折りたたむ

    バイアス メトリクス

    fairnessMetrics オブジェクトは、統計的均一性差 (SPD)、差異の影響 (DI)、機会均等差 (EOD)、および平均絶対オッズ差 (AAOD) の 4 つのバイアス メトリクスをサポートします。オブジェクトは EOD と AAOD はモデル予測の評価でのみサポートされます。

    fairnessMetrics オブジェクトは、各センシティブ属性の各グループのバイアス メトリクスを属性の参照グループに基づいて計算します。

    • 統計的均一性 (デモグラフィック パリティ) 差 (SPD)

      グループ sij の i 番目のセンシティブ属性 (Si) の参照グループ sir に対する SPD の値は、次のように定義されます。

      SPDij=P(Y=+|Si=sij)P(Y=+|Si=sir).

      SPD の値は、センシティブ属性の値が sij の場合に陽性クラスになる確率とセンシティブ属性の値が sir (参照グループ) の場合に陽性クラスになる確率の差です。このメトリクスでは、ラベルにセンシティブ属性によるバイアスがない場合に 2 つの確率 (統計的パリティ) が等しくなるものと仮定されます。

      引数 Predictions を指定した場合、真のラベル Y の代わりに、モデル予測 Y^ の確率についての SPD が計算されます。

    • 差異の影響 (DI)

      グループ sij の i 番目のセンシティブ属性 (Si) の参照グループ sir に対する DI の値は、次のように定義されます。

      DIij=P(Y=+|Si=sij)P(Y=+|Si=sir).

      DI の値は、センシティブ属性の値が sij の場合に陽性クラスになる確率とセンシティブ属性の値が sir (参照グループ) の場合に陽性クラスになる確率の比です。このメトリクスでは、ラベルにセンシティブ属性によるバイアスがない場合に 2 つの確率が等しくなるものと仮定されます。一般に、DI の値が 0.8 より小さいか 1.25 より大きいと、参照グループに対してバイアスがあることを示します[2]

      引数 Predictions を指定した場合、真のラベル Y の代わりに、モデル予測 Y^ の確率についての DI が計算されます。

    • 機会均等差 (EOD)

      グループ sij の i 番目のセンシティブ属性 (Si) の参照グループ sir に対する EOD の値は、次のように定義されます。

      EODij=TPR(Si=sij)TPR(Si=sir)=P(Y^=+|Y=+,Si=sij)P(Y^=+|Y=+,Si=sir).

      EOD の値は、グループ sij と参照グループ sir の間の真陽性率 (TPR) の差です。このメトリクスでは、予測ラベルにセンシティブ属性によるバイアスがない場合に 2 つの率が等しくなるものと仮定されます。

    • 平均絶対オッズ差 (AAOD)

      グループ sij の i 番目のセンシティブ属性 (Si) の参照グループ sir に対する AAOD の値は、次のように定義されます。

      AAODij=12(|FPR(Si=sij)FPR(Si=sir)|+|TPR(Si=sij)TPR(Si=sir)|).

      AAOD の値は、グループ sij と参照グループ sir の間の真陽性率 (TPR) と偽陽性率 (FPR) の差を表します。このメトリクスでは、予測ラベルにセンシティブ属性によるバイアスがない場合に TPR と FPR の差がないものと仮定されます。

    参照

    [1] Mehrabi, Ninareh, et al. “A Survey on Bias and Fairness in Machine Learning.” ArXiv:1908.09635 [cs.LG], Sept. 2019. arXiv.org.

    [2] Saleiro, Pedro, et al. “Aequitas: A Bias and Fairness Audit Toolkit.” ArXiv:1811.05577 [cs.LG], April 2019. arXiv.org.

    バージョン履歴

    R2022b で導入

    すべて展開する