Upgrade to Pro — share decks privately, control downloads, hide ads and more …

機械学習における反実仮想説明を生成するライブラリ“DiCE”

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 機械学習における反実仮想説明を生成するライブラリ“DiCE”

Avatar for Daiki Katsuragawa

Daiki Katsuragawa

April 17, 2022
Tweet

More Decks by Daiki Katsuragawa

Other Decks in Research

Transcript

  1. 意思決定/施策設計を支援する機械学習 • 機械学習を活用する動機の一部 ◦ 意思決定(行動を決めること)/施策設計(方針を決めること) ◦ 機械学習による予測に基づいて意思決定者/施策設計者が判断/行動 • 機械学習による予測の解釈が困難 ◦

    精度は高いが根拠が謎(信用していいのか?) ◦ 具体的に「何をどうしたら良いのか」までの検討が困難 ◦ つまり、意思決定/施策設計ができない 2 予測に加えて意思決定者/施策設計者に寄り添った説明の提供が必要
  2. 説明を提供する機械学習 • 説明可能な人工知能(XAI) ◦ 機械学習モデルの予測を人間が理解/信頼できるようにするため手法 • 特徴アトリビューション法 ◦ 予測に対する各説明変数の寄与度を算出(比較が可能) ◦

    例:LIME、SHAP • 「現在の予測結果を覆したい」場合… ◦ 重要な説明変数はわかるかもしれないが 可能であれば具体的な定量指標が欲しい 3 “現在の予測結果を覆す”施策設計のために具体的な定量指標の設定が必要
  3. 施策設計に貢献する反実仮想説明 • 反実仮想説明の基本 ◦ 現在の予測結果を覆すために必要な説明変数の変更例の提供 (どの説明変数をどれだけ変動させたら良いのか) ◦ 可能な限り変更の差分が小さい説明を提供 ◦ ドメイン的に可能な変動を提供

    • 想定する利用シーン ◦ ローン許諾/拒否の判定(金融) ◦ 健康状態/否の予測(医療) 5 反実仮想説明に基づく具体的な定量指標の設定が期待 従来の予測:あなたは健康状態では ないと予測されます。 反実仮想説明:もし、◯◯の数値を X減少させて、△△の数値をY増加さ せたら健康状態と予測できます。
  4. DiCEの利用例〜準備〜 • 実現したいタスク ◦ “望ましい状態ではない”と予測された人に対して反実仮想説明を生成 • データセット ◦ 説明変数:20種 ◦

    目的変数:1/0の二値(※1が望ましい状態) • 二値分類に対して予測する学習済みモデル ◦ ある程度の精度(例:AUCが0.8以上) ◦ ※今回はscikit-learnで実装されているロジスティック回帰を選定 7
  5. DiCEの利用例〜対象データの選定〜 8 from numpy.random import seed seed(123) y_predict = model.predict(test_x)

    test_x["label"] = y_predict pre_counter = test_x.query('label == 0') pre_counter = pre_counter.drop(columns="label")
  6. DiCEの利用例〜DiCEクラスの生成〜 9 import dice_ml d = dice_ml.Data(dataframe = pd.concat([test_x, test_y],

    axis=1), continuous_features=[], outcome_name = "label", random_seed=123 ) m = dice_ml.Model(model=model, backend="sklearn") exp = dice_ml.Dice(d, m)
  7. DiCEの利用例〜反実仮想説明の生成〜 10 dice_exp = exp.generate_counterfactuals( pre_counter.query('index == 203'), total_CFs= 3,

    features_to_vary=pre_counter.columns.to_list(), desired_class = 1, random_seed=123 ) dice_exp.visualize_as_dataframe(show_only_changes=True) • 対象データ: index == 203 • 生成する反実仮想説明の 件数:3件 • 望む状態:“1”
  8. まとめ • 意思決定/施策設計を支援する機械学習 ◦ 予測に加えて意思決定者/施策設計者に寄り添った説明の提供が必要 ◦ 施策設計のために具体的な定量指標の設定が必要 • 反実仮想説明(および反実仮想説明法) ◦

    反実仮想(「もし~だったら… だろうに」)に基づく説明 ◦ 現在の予測結果を覆すために必要な説明変数の変更例の提供 ◦ 具体的な定量指標を設定する点で施策設計への貢献に期待 • DiCE ◦ 反実仮想説明を生成するPythonのライブラリ ◦ 多様な反実仮想を生成 12 元記事:https://daikikatsuragawa.hatenablog.com/entry/2021/12/18/120000