「クレジットカードの不履行データセットのバイアスの検証と検出」
「クレジットカードの不履行データセットのバイアス検証と検出:美容とファッションの専門家の視点から」
機械学習には多くのバイアスが存在します。機械学習において、データが表す事実に根ざしたバイアスもあります。例えば、システム的なバイアスや構造的なバイアスは、データに偏見のバイアスをもたらすものです。また、サンプルや除外、関連性、測定に関するバイアスもあります。最後に、データやモデルから得られる洞察にもバイアスがあります。保守的なバイアス、顕著性のバイアス、基本的な帰属性エラーなどに注意が必要です。
このセクションは、私の最新の書籍『Interpretable Machine Learning with Python, Second Edition』からの抜粋です。このセクションのコードはこちらにあります。
この例では、これほど多くのバイアスレベルを適切に分析するために、データを国勢調査データ(2005年の台湾)および人口統計によって分割された歴史的な貸出データに接続する必要があります。そして、これらの外部データセットを使用して、クレジットカードの契約条件や性別、収入などの人口統計データを制御し、特に若者が資格を持つべきでない高金利のクレジットカードの標的になっていたかどうかを確認する必要があります。また、データセットを執筆者と協議し、ドメインエキスパートと共にバイアスに関連するデータ品質の問題を調査する必要もあります。理想的には、これらのステップを実行して仮説を検証することが必要ですが、それには数章にわたる説明が必要な大変な作業です。
このため、迅速さを優先する観点から、この章の前提を受け入れることにします。つまり、過剰融資の実践により、特定の年齢層は自らの過失ではなく、クレジットカードの債務不履行により脆弱な状況にあるということです。また、データセットの品質をそのまま受け入れることにします。これらの注意があるため、このデータまたはこのデータから派生したモデルにおいて年齢層間に不均衡が見られる場合、それは過剰融資の実践によるものだけとされます。
ここでは、次の2つの公平さのタイプが存在します:
- 手続き上の公正さ: これは公正なまたは平等な処遇についてのことです。法的にはこの用語を定義するのは困難であり、文脈に大きく依存するためです。
- 結果上の公正さ: これは単に公正な結果を計測することです。
これら2つの概念は互いに排他的ではありません。手続きが公正であっても結果が公正でない場合、またはその逆の場合があります。この例では、公平でない手続きは資格を持たない顧客に高金利クレジットカードを提供することでした。しかし、この章では結果の公正に焦点を当てます。
機械学習のバイアスについて議論すると、保護されたグループに影響を与え、このグループ内には特権を持つグループと非特権を持つグループがあります。後者はバイアスの影響を受けるグループです。バイアスが現れる方法も多岐にわたり、以下のように対応する必要があります:
- 表現: 非特権グループの表現が不足しているか、逆に過剰になっている場合があります。モデルは、このグループに関して他のグループと比べて学習する量が少なすぎるか、あるいは多すぎるかもしれません。
- 分布: グループ間の特徴の分布の違いにより、モデルがバイアスのある関連性を作り出し、それが直接または間接的にモデルの結果に影響を与えることがあります。
- 確率: 分類問題の場合、グループ間のクラスのバランスの違いにより、モデルはあるグループがあるクラスまたは別のクラスに所属する確率が高いと学習することがあります。これは、混同行列を用いて容易に観察することができます。また、偽陰性率や偽陽性率などの分類メトリクスを比較することでも確認できます。
- ハイブリッド: 上記のいずれかの現れの組み合わせ。
どのバイアス表現に対しても戦略は第11章で議論されていますが、このセクションで取り組むものは、主要な保護属性(_AGE
)に関する確率の不均衡と関連しています。視覚化を通じて、保護された特徴のデータにおける不均衡を観察します。
さあ、ではこのセクションの実践的な部分に進みましょう。
データセットのバイアスの可視化
データ自体は、あるグループが他のグループよりも陽性クラスに所属する確率がどれくらい高いかを物語っています。カテゴリカルな特徴の場合、これらの確率は陽性クラスのvalue_counts()
関数を全クラスで割ったもので得ることができます。例えば、性別の場合、次のようにできます:
前のスニペットは以下の出力を生成し、男性が平均してクレジットカードの不履行リスクが高いことを示しています:
連続変数の場合、これを行うためのコードは少し複雑です。まず、pandas
のqcut
を使用して特徴を四分位数に分割し、次にカテゴリカルな特徴と同じ方法を使用します。幸運なことに、plot_prob_progression
関数がこれを代わりに行い、各四分位ごとの確率の推移をプロットしてくれます。最初の属性は、保護された特徴(_AGE
)を持つpandasシリーズ、配列、またはリストであり、2番目はターゲット特徴(IS_DEFAULT
)と同じものです。次に、四分位数として設定される区間(x_intervals
)を選択します(use_quartiles=True
)。ラベル、タイトル、およびmean_line
のような他の属性は、見栄えのためのものです。コードは以下のスニペットで確認できます:
前のコードは、次の出力を生成し、最年少者(21-25
)と最年長者(47-79
)が最も不履行になりやすいことがわかります。他のすべてのグループは、平均から標準偏差を超える程度の確率を示しています:
図1:_AGEによるCCデフォルトの確率
最年少と最年長の四分位数を非特権グループとし、他のすべてを特権グループと呼ぶことができます。不公平さを検出し、軽減するためには、それらを2値の特徴としてコード化することが最善です。これは、AGE_GROUP
で行われています。この場合も、AGE
の代わりにAGE_GROUP
を使用して、より理解しやすいラベルで数値をreplace
します。コードは以下のスニペットで確認できます:
前のスニペットは、以下の出力を生成し、両グループ間の不均衡が非常に明白です:
図2:AGE_GROUPによるCCデフォルトの確率
次に、GENDER
を再び取り上げましょう。plot_prob_contour_map
を使用することができます。これはplot_prob_progression
と似ていますが、確率を色で表示する instead of drawing a line(線を描く代わりに)で二次元で行います。したがって、最初の2つの属性は、x軸に配置したい特徴(GENDER
)とy軸に配置したい特徴(AGE_GROUP
)であり、3つ目はターゲット(IS_DEFAULT
)です。特徴がバイナリであるため、等高線ではなくplot_type='grid'
を使用することが最適です。コードは以下のスニペットで確認できます:
前のスニペットは以下の出力を生成します。最も特権を持つグループが26-47歳の女性であり、その男性と約3-4%の差があります。同様の状況が非特権的な年齢グループでも発生しています:
図3:GENDERとAGE_GROUPによるCCデフォルトの確率グリッド
性別の違いは興味深い観察ですが、なぜ女性の方がデフォルト率が低いのかという問いについて、いくつかの仮説を提示することができます。彼女たちは単純に債務管理が上手いのでしょうか?結婚状況や教育と関係があるのでしょうか?これらの質問については詳しく掘り下げません。私たちは年齢に基づく差別のみを知っているため、特権グループではAGE_GROUP
を使用し、GENDER
を保護された属性のままにします。
結論
この分析では、若者や年配のクレジットカード保有者に対する明確なバイアスの証拠が明らかになりました。彼らはクレジットカードのデフォルトのリスクが高くなる傾向がありました。これは、高利子のクレジットを提供することでこれらのグループを標的とする貸し手の悪質な貸し付け慣行に起因するものである可能性があります。バイアスを確率プロットと公平性指標を使用して可視化した後、修正策を採用してより公平な機械学習モデルを作成することができます。モデル。ただし、根本原因を解決し、このようなバイアスのあるデータセットが最初に作成されないようにするためには、さらなる作業が必要です。このトピックについては、書籍「Pythonによる解釈可能な機械学習、第2版」でさらに詳しく探求してください。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles