$30 off During Our Annual Pro Sale. View Details »

tidymodels+DALEXによる解釈可能な機械学習 / Tokyo.R83

tidymodels+DALEXによる解釈可能な機械学習 / Tokyo.R83

2020年1月25日に行われた第83回Tokyo.Rでの発表資料です
https://tokyor.connpass.com/event/161709/

資料で使われたコードは以下になります
https://github.com/dropout009/tokyoR83

森下光之助

January 25, 2020
Tweet

More Decks by 森下光之助

Other Decks in Science

Transcript

  1. tidymodels+DALEXによる
    解釈可能な機械学習
    2020/1/25
    第83回R勉強会@東京(#TokyoR)
    森下光之助(@dropout009)

    View Slide

  2. 1. 機械学習の解釈⼿法
    2. tidymodelsとDALEX
    3. 特徴量の重要度が知りたい
    PFI (Permutation Feature Importance)
    4. 特徴量と予測値の関係が知りたい
    PD (Partial Dependence)
    5. インスタンス毎の異質性を捉えたい
    ICE (Individual Conditional Expectation)
    6. なぜこの予測値が出たか理由が知りたい
    SHAP (SHapley Additive exPlanations)

    View Slide

  3. 機械学習の解釈⼿法

    View Slide

  4. モチベーション︓なぜ機械学習の解釈⼿法が必要なのか
    線形回帰は解釈性が極めて⾼い⼀⽅で、予測精度は必ずしも⾼くない
    予測精度が求められるタスクにはRF/GBDT/NNなどの
    複雑なブラックボックスモデルを使いたいが、今度は解釈性が低い
    「ブラックボックスモデル+機械学習の解釈⼿法」で
    予測精度と解釈性を両⽴したい

    View Slide

  5. 解釈⼿法をグローバル/ローカルの視点でマッピング
    PFI
    PD
    ICE SHAP
    SHAP
    SHAP
    グローバルな
    解釈⼿法
    ローカルな
    解釈⼿法

    View Slide

  6. 解釈⼿法をどう使うか︖ どこまでのことがわかるのか︖
    モデルのデバッグ
    事前知識と整合的か、想定外の挙動はないか
    → ⽐較的安全な使い⽅
    モデルの振る舞いを解釈
    モデルは特徴量Aを重視している、特徴量Aが⼤きくなると予測
    値が⼤きくなる
    → モデルの⼀側⾯を捉えているだけなので間違った解釈をする
    可能性
    因果関係の探索
    モデルの振る舞いを因果関係として解釈
    → 実験やより厳密な因果推論の⼿法をあわせて使うべき
    「弱い」使い⽅
    ⽐較的安全
    「強い」使い⽅
    注意が必要

    View Slide

  7. tidymodels + DALEX

    View Slide

  8. tidymodelsでモデルを作成、DALEXで解釈
    https://github.com/tidymodels/tidymodels
    データの分割、前処理、モデルの作成、
    学習、精度評価からハイパーパラメー
    タのチューニングに⾄るまで、機械学
    習の⼀連の作業を効率よく統⼀的に⾏
    うことを可能にするパッケージ群。
    tidyverseとの親和性も⾼い。
    https://modeloriented.github.io/DALEX/
    PFI、PD、ICE、SHAPなど、機械学習
    モデルの解釈⼿法を簡潔で統⼀的なシ
    ンタックスで⾏うことを可能にする
    パッケージ群。
    tidymodelsのparsnipで作成したモデ
    ルをシームレスに受け取ることが可能。

    View Slide

  9. diamondデータセットをtidymodelsとDALEXで分析する
    df = diamonds %>%
    mutate(log_price = log(price)) %>%
    select(log_price, carat, cut, color, clarity, depth, table)
    > df
    # A tibble: 53,940 x 7
    log_price carat cut color clarity depth table

    1 5.79 0.23 Ideal E SI2 61.5 55
    2 5.79 0.21 Premium E SI1 59.8 61
    3 5.79 0.23 Good E VS1 56.9 65
    4 5.81 0.290 Premium I VS2 62.4 58
    5 5.81 0.31 Good J SI2 63.3 58
    ⽬的変数の対数をとっておく

    View Slide

  10. parsnipでモデルを作成と学習を⾏う
    model = parsnip::rand_forest(mode = "regression",
    trees = 500,
    min_n = 5) %>%
    parsnip::set_engine(engine = "ranger",
    num.threads =
    parallel::detectCores(),
    seed = 42)
    model_trained = model %>%
    parsnip::fit(log_price ~ ., data = df)
    ※データ分割、前処理、ハイパーパラメータのチューニングなど、
    tidymodelsの詳細な使い⽅は「tidymodelsによるtidyな機械学習」をご確認下さい
    https://speakerdeck.com/dropout009/tidymodelsniyorutidynaji-jie-xue-xi
    モデルを作成
    ハイパーパラメータは
    決め打ち
    学習

    View Slide

  11. DALEXでexplainerを作成する
    explainer = model_trained %>%
    DALEX::explain(data = df %>% select(-log_price),
    y = df %>% pull(log_price),
    label = "Random Forest")
    Preparation of a new explainer is initiated
    -> model label : Random Forest
    -> data : 53940 rows 6 cols
    -> data : tibbble converted into a data.frame
    -> target variable : 53940 values
    -> predict function : yhat.model_fit will be used ( default )
    -> predicted values : numerical, min = 5.945424 , mean = 7.786629 , max
    = 9.784551
    -> residual function : difference between y and yhat ( default )
    -> residuals : numerical, min = -0.3707432 , mean =
    0.0001399497 , max = 0.718558
    -> model_info : package parsnip , ver. 0.0.5 , task regression
    ( default )
    A new explainer has been created!
    解釈⼿法を使うための準備

    View Slide

  12. 特徴量の重要度が知りたい
    Permutation Feature Importance

    View Slide

  13. モチベーション︓特徴量の重要度が知りたい
    モデルのデバッグ
    • 特徴量の重要度がドメイン知識に沿っているか
    • 予期せぬ特徴量の重要度が⾼くなっていないか
    因果関係の探索
    • 例︓マーケティング
    操作可能な変数の中で重要度の⾼いものを優先的に動かす

    View Slide

  14. 重要度をどう定義する︖PFIのアイデア
    • 各特徴量をシャッフルして予測精度の減少率を計算する
    • 予測精度が⼤きく落ちる → モデルとって重要な特徴量︕
    予測精度を計算 予測精度を計算
    予測精度を⽐較
    シャッフル
    特徴量の重要度の求め⽅(caratの場合)
    元データ シャッフル後データ
    carat cut color clarity
    1.04 Ideal G VS2
    0.59 Very Good E SI2
    0.53 Ideal G VVS1
    1.51 Premium H VS2
    carat cut color clarity
    0.59 Ideal G VS2
    1.51 Very Good E SI2
    1.04 Ideal G VVS1
    0.53 Premium H VS2

    View Slide

  15. 特徴量ごとに誤差の増加率を可視化して、重要な変数を調べる
    各特徴量の重要度
    pfi = explainer %>%
    ingredients::feature_importance(type = "ratio", B = 1)
    plot(pfi)
    ダイヤの価格には
    ⼤きさが極めて強く影響
    ※Dropout Lossはシャッフルで
    何%精度が落ちるかを⽤いて定義

    View Slide

  16. PFIの注意点と対処
    • 相関する特徴量をモデルに投⼊すると重要度の「⾷い合い」が⽣じる
    → グループ化して同時にシャッフル︕
    • 緯度経度など、同グループの変数を個別にシャッフルする意味は︖
    → グループ化して同時にシャッフル︕
    • ⽋落変数による「疑似相関」の問題
    → そもそも因果的解釈は危険だが、必要な変数を全て含めるなどで対処。
    ドメイン知識が必要。
    • PFIをtrainとtestのどっちで計算するべきか︖
    → trainならモデルが重視しているか、testなら予測に効くか
    • 特徴量の重要度はわかるが特徴量と予測値の関係はわからない
    → PDを使う︕

    View Slide

  17. 特徴量と予測値の関係が知りたい
    Partial Dependence

    View Slide

  18. モチベーション︓特徴量と予測値の関係が知りたい
    モデルのデバッグ
    • 特徴量と予測値の関係に違和感はないか
    因果関係の探索
    • 例︓マーケティング
    KPIにプラスに働く変数を突き⽌め、施策を打つ

    View Slide

  19. どうやって関係を単純化する︖ PDのアイデア
    ブラックボックスモデルは⼊出⼒の関係が複雑
    → ターゲットの特徴量以外の影響を消して単純化したい
    → 他の特徴量の影響を周辺化して消してしまう︕
    𝑓!
    𝑥!
    = 𝐸𝑿!
    𝑓 𝑥!
    , 𝑿#
    = ' 𝑓 𝑥!
    , 𝒙#
    𝑝(𝒙#
    )𝑑𝒙#
    • 𝑓(⋅)は学習済みモデル
    • 𝑋!
    はターゲットになる特徴量
    • 𝑿#
    はその他の特徴量

    View Slide

  20. carat cut color clarity ICE
    0.5 Ideal G VS2 𝑓!"#"$,&
    (0.5)
    0.5 Very Good E SI2 𝑓!"#"$,'
    (0.5)
    0.5 Ideal G VVS1 𝑓!"#"$,(
    (0.5)
    0.5 Premium H VS2 𝑓!"#"$,)
    (0.5)
    𝐸𝑿!
    𝑓 𝑥"
    , 𝑿#
    を推定するには︖ 具体例で確認。
    予測結果を平均
    ̅
    𝑓!"#"$
    (0.5)
    元データ
    carat cut color clarity
    1.04 Ideal G VS2
    0.59 Very Good E SI2
    0.53 Ideal G VVS1
    1.51 Premium H VS2
    carat cut color clarity ICE
    1 Ideal G VS2 𝑓!"#"$,&
    (1.0)
    1 Very Good E SI2 𝑓!"#"$,'
    (1.0)
    1 Ideal G VVS1 𝑓!"#"$,(
    (1.0)
    1 Premium H VS2 𝑓!"#"$,)
    (1.0)
    carat cut color clarity ICE
    1.5 Ideal G VS2 𝑓!"#"$,&
    (1.5)
    1.5 Very Good E SI2 𝑓!"#"$,'
    (1.5)
    1.5 Ideal G VVS1 𝑓!"#"$,(
    (1.5)
    1.5 Premium H VS2 𝑓!"#"$,)
    (1.5)
    予測結果を平均
    ̅
    𝑓!"#"$
    (1.0)
    予測結果を平均
    ̅
    𝑓!"#"$
    (1.5)
    ̅
    𝑓!
    𝑥!
    =
    1
    𝑁
    2
    ,-.
    /
    𝑓(𝑥!
    , 𝑿#,
    )
    PDの推定式

    View Slide

  21. 特徴量と予測値の関係を可視化(連続値の場合)
    各特徴量と予測値の関係(連続値)
    pd_num = explainer %>%
    ingredients::partial_dependency(variable_type =
    "numerical")
    plot(pd_num)

    View Slide

  22. 特徴量と予測値の関係を可視化(離散値の場合)
    各特徴量と予測値の関係(離散値)
    pd_cat = explainer %>%
    ingredients::partial_dependency(variable_type =
    "categorical")
    plot(pd_cat)

    View Slide

  23. 単変数同⼠の可視化とPDの違いは︖
    箱ひげ図による可視化 PDによる可視化
    • 箱ひげ図による可視化では、透明度が⾼くなるほどダイヤが安くなる傾向
    • ⼀⽅で、PDでは透明度が⾼くなるほど価格は⾼くなる傾向

    View Slide

  24. 単変数同⼠の可視化では相関する他の特徴量の影響を除外できない
    ダイヤが⼤きいほど
    価格は⾼くなる
    透明度の⾼いダイヤは
    サイズが⼩さい傾向
    透明度と価格に負の関係が
    あるように⾒えてしまう

    View Slide

  25. PDを因果関係の「探索」に使うことができる
    箱ひげ図による可視化 PDによる可視化
    • 変数同⼠の関係がモデルに組み込まているので、PDでは単変数同⼠の可視
    化では⾒えなかった関係を⾒ることができる
    • あくまで因果関係の探索に⽤い、改めてより厳密な⼿法で確認するべき
    ※「ブラックボックスモデルとPartial Dependence Plotで因果関係を探索する」でも議論しています
    https://speakerdeck.com/dropout009/buratukubotukusumoderutopartial-dependence-plotdeyin-guo-guan-xi-wotan-suo-suru

    View Slide

  26. PDの注意点と対処
    • PDは因果関係として解釈できるか︖
    → 因果関係の仮説を⽴てるための探索⼿法として利⽤するのが安全。仮説はよ
    くデザインされたABテストやより厳密な因果推論の⼿法を併⽤し、信頼性を⾼
    めていく必要。
    • ⼊出⼒の関係を単純化していることに注意。⼊出⼒の平均的な関係はわかるが、
    グループごとに異質性がある場合は間違った解釈をする可能性
    → ICEやConditional PDを使う
    • あるインスタンスに対して「もし〜だったら︖」を知りたい
    → ICEを使う

    View Slide

  27. インスタンス毎の異質性を捉えたい
    Individual Conditional Expectation

    View Slide

  28. モチベーション︓各インスタンスで変数が動いたときの効果が知りたい
    モデルの振る舞いを解釈
    • 平均的な振る舞いではなく、インスタンスごとの予測値と変数の関係を
    ⾒たい
    因果関係の探索
    • 例︓マーケティング
    施策が特に有効な個⼈/グループを突き⽌め、ターゲティングを⾏う

    View Slide

  29. インスタンスレベルの解釈をするには︖ ICEのアイデア
    PDは全データで平均をとるため
    インスタンス/グループごとの異質性をキャプチャーできなかった
    各インスタンスに対する「もしある特徴量が〜だったら︖」という
    What if?として解釈︕
    ̅
    𝑓! 𝑥! =
    1
    𝑁
    2
    ,-.
    /
    𝑓(𝑥!, 𝑿#,)
    平均前のインスタンスごとの予測値は
    他の変数を固定してターゲットの特徴量だけを動かした場合の予測値
    PDの推定式︓

    View Slide

  30. carat cut color clarity ICE
    0.5 Ideal G VS2 𝑓!"#"$,&
    (0.5)
    0.5 Very Good E SI2 𝑓!"#"$,'
    (0.5)
    0.5 Ideal G VVS1 𝑓!"#"$,(
    (0.5)
    0.5 Premium H VS2 𝑓!"#"$,)
    (0.5)
    ICEの計算⽅法は︖ PDの推定に使った予測値を平均せずに使⽤
    元データ
    carat cut color clarity
    1.04 Ideal G VS2
    0.59 Very Good E SI2
    0.53 Ideal G VVS1
    1.51 Premium H VS2
    carat cut color clarity ICE
    1 Ideal G VS2 𝑓!"#"$,&
    (1.0)
    1 Very Good E SI2 𝑓!"#"$,'
    (1.0)
    1 Ideal G VVS1 𝑓!"#"$,(
    (1.0)
    1 Premium H VS2 𝑓!"#"$,)
    (1.0)
    carat cut color clarity ICE
    1.5 Ideal G VS2 𝑓!"#"$,&
    (1.5)
    1.5 Very Good E SI2 𝑓!"#"$,'
    (1.5)
    1.5 Ideal G VVS1 𝑓!"#"$,(
    (1.5)
    1.5 Premium H VS2 𝑓!"#"$,)
    (1.5)
    𝑓!,, 𝑥! = 𝑓(𝑥!, 𝑿#,)
    ICEの推定式

    View Slide

  31. あるインスタンスで「もしダイヤのサイズが変わったら」を可視化
    あるインスタンスのcaratに関するICE
    ice = explainer %>%
    ingredients::ceteris_paribus(new_observation =
    df_instance)
    plot(ice, variables = "carat") +
    show_observations(ice, variables = "carat")
    > df_instance
    log_price carat cut color clarity depth
    table
    1 8.178358 1.01 Very Good F SI2 63.4
    60
    ダイヤのサイズが1.01から
    変化した場合の予測値を可視化
    実際の値

    View Slide

  32. PDと複数のICEを同時に描くことでより情報量の多い可視化が可能
    PDとICEを同時に可視化
    ices = explainer %>%
    ingredients::ceteris_paribus(new_observation = df_subset, variables =
    "carat")
    pd_carat = explainer %>%
    ingredients::partial_dependency(variables = "carat")
    plot(ices) + show_aggregated_profiles(pd_carat)
    ⼀部に例外あり
    特徴量を確認してみる
    ほとんどのインスタンス
    では似た影響

    View Slide

  33. PDでは捉えられない交互作⽤をICEやConditional PDで浮き彫りに
    PDによる可視化 ICEによる可視化 C-PDによる可視化
    𝑌 = 𝑋. − 5𝑋1 + 10𝑋1𝑋2 + 𝜖,
    𝑋., 𝑋1 ∼ 𝑈 −1, 1 , 𝑋2 ∼ 𝐵𝑒𝑟𝑛𝑜𝑢𝑙𝑖 0.5 , 𝜖 ~ 𝒩(0, 0.11)
    シミュレーション設定

    View Slide

  34. ICEの注意点と対処
    • 特に強く相関する変数がモデルに含まれている場合、特徴量を⼤きく動かすと
    現実でありえないデータでの予測値となる危険性が⾼まる
    → What if?の解釈は特定インスタンスの元の特徴量からあまり⼤きく動かさな
    い範囲で⾏うほうが安全
    例︓ 夏に気温が0℃になったらアイスの売上はどうなる︖
    • ICEはインスタンスレベルの解釈なので値の信頼性はPDより低い
    → 同質なグループごとにPDを計算するConditional PDを使う
    • 特定インスタンスに対して、「もし〜だったら︖」という解釈は可能だが、「な
    ぜモデルがこの予測値を出したのか︖」はわからない
    → SHAPを使う

    View Slide

  35. なぜこの予測値が出たか理由が知りたい
    Shapley Additive exPlanations

    View Slide

  36. モチベーション︓予測値の「理由付け」
    モデルの振る舞いを解釈
    例︓ローン審査
    ローンの審査を機械学習モデルを⽤いて⾏っているとする
    モデルは申込者がきちんとローンを返しそうかどうかを予測する
    → モデルはAさんはローンの返済確率が低いと予測
    → なぜ「返済確率が低い」と予測したか、理由が知りたい

    View Slide

  37. どうやって予測値の理由付けを⾏う︖ SHAPのアイデア
    𝑿 = 𝑋., … , 𝑋3
    4を特徴量とした機械学習モデル𝑓 𝑿 について考える
    → あるインスタンスの予測値𝑓 𝒙 に対して、なぜモデルはそんな予測をした
    かを知りたい
    → モデルの平均的な予測結果𝔼[𝑓 𝑿 ]と、あるインスタンスに対する予測𝑓 𝒙
    の差分を各特徴量の貢献度𝝓𝒋
    に分解するといいのでは︖
    𝑓 𝒙 − 𝔼 𝑓 𝑿 = 2
    6-.
    3
    𝜙6
    𝑓 𝒙 = 𝜙7
    + 2
    6-.
    3
    𝜙6
    𝜙! ≔ 𝔼[𝑓(𝑿)]
    Additive Feature Attribution Method

    View Slide

  38. 専⾨︓CS
    貢献度による分解の具体例
    モデルの平均的な予測結果𝔼[𝑓 𝑿 ]と、あるインスタンスに対する予測𝑓 𝒙 の
    差分を各特徴量の貢献度で分解する
    例︓年収予測
    予測の平均値は年収500万なのにこの個⼈は年収1000万と予測された
    → 500万の差分はどこから⽣まれている︖
    0 500 1000
    学歴︓修⼠
    役職︓課⻑
    英語︓話せない
    +200
    +200
    +300
    -200

    View Slide

  39. モデルに投⼊した特徴量𝑿 = 𝑋., … , 𝑋3
    4をゲームのプレイヤーと⾒⽴てて、
    あるインスタンスの予測値への特徴量𝑗の貢献度𝜙6
    をShapley Valueで測る
    貢献度をどうやって求める︖ 協⼒ゲーム理論のShapley Valueを応⽤
    ※SHAPの詳細は「SHapley Additive exPlanationsで機械学習モデルを解釈する」をご確認下さい
    https://speakerdeck.com/dropout009/shapley-additive-explanationsdeji-jie-xue-xi-moderuwojie-shi-suru
    𝜙,
    = (
    𝒮⊆ℳ∖{,}
    |𝒮|! |ℳ| − |𝒮| − 1 !
    |ℳ|!
    𝑣 𝒮 ∪ 𝑗 − 𝑣(𝒮)
    組み合わせの出現しやすさ 特徴量𝑗のありなしでの予測値の差分
    予測値の差分を全ての組み合わせで平均 = Shapley Value

    View Slide

  40. インスタンスの予測値を貢献度で分解
    あるインスタンスに対する各特徴量の貢献度
    shap = explainer %>%
    iBreakDown::shap(new_observation = df_instance, B =
    5)
    plot(shap)

    View Slide

  41. SHAPの注意点と対処
    • 特定インスタンスに対して、「なぜモデルがこの予測値を出したのか」はわかる
    が「特徴量を動かしたときに予測値がどう変化するか」はわからない
    → ICEを使う
    • 計算コストが⾮常に⾼い
    → データセットの⼀部をサンプリングして計算する
    • 理論⾯が相対的にややこしく、クライアントへの説明が困難
    → SHAPは適切な粒度で集計・可視化することで変数重要度やPDとしても使え
    るが、⾮専⾨家への説明が求められる場合はより直感的なPFIやPDを使う

    View Slide

  42. まとめ

    View Slide

  43. まとめ
    • 機械学習の解釈⼿法は様々で、それぞれ異なる側⾯から解釈を⾏っている。
    求められる解釈性に応じて適切に使い分けることが重要。
    • 解釈⼿法をには⽐較的安全な使い⽅と注意が必要な使い⽅がある。特に因
    果関係としての解釈は、因果推論の知⾒を併⽤することが望ましい。
    • PFI/PD/ICEは⽐較的直感的だが、SHAPの理解は難しい。誰かに説明する
    必要がある場合はより直感的な⼿法を使うことも考えるべき。
    • ブラックボックスモデル+解釈⼿法は強⼒だが、線形回帰で事⾜りる問題は
    線形回帰を使った⽅が実践的。ブラックボックスモデル+解釈⼿法をEDA
    として⽤いて、最後に線形モデルに落とし込むという使い⽅もある。

    View Slide

  44. 機械学習の解釈⼿法を
    もっと学びたい⼈へ

    View Slide

  45. 参考⽂献︓機械学習の解釈性全般
    https://pbiecek.github.io/ema/
    https://compstat-
    lmu.github.io/iml_metho
    ds_limitations/
    https://christophm.github.
    io/interpretable-ml-book/

    View Slide

  46. 参考⽂献︓機械学習の解釈性全般
    • Exploratory data analysis using xgboost package in R
    https://www.slideshare.net/kato_kohaku/exploratory-data-analysis-using-xgboost-
    package-in-r-146048320
    • How to use in R model-agnostic data explanation with DALEX & iml
    https://www.slideshare.net/kato_kohaku/how-to-use-in-r-modelagnostic-data-
    explanation-with-dalex-iml
    • 機械学習と解釈可能性 / Machine Learning and Interpretability
    https://speakerdeck.com/line_developers/machine-learning-and-interpretability
    • 機械学習モデルの判断根拠の説明
    https://www.slideshare.net/SatoshiHara3/ss-126157179
    • BlackBox モデルの説明性・解釈性技術の実装
    https://www.slideshare.net/DeepLearningLab/blackbox-198324328

    View Slide

  47. 参考⽂献︓PFI
    • Fisher, Aaron, Cynthia Rudin, and Francesca Dominici. "All models are wrong, but many
    are useful: Learning a variable's importance by studying an entire class of prediction
    models simultaneously." arXiv preprint arXiv:1801.01489 (2018).
    • Hooker, Giles, and Lucas Mentch. "Please Stop Permuting Features: An Explanation and
    Alternatives." arXiv preprint arXiv:1905.03151 (2019).
    • Beware Default Random Forest Importances
    https://explained.ai/rf-importance/index.html
    • 特徴量重要度にバイアスが⽣じる状況ご存知ですか︖
    https://aotamasaki.hatenablog.com/entry/bias_in_feature_importances

    View Slide

  48. 参考⽂献︓PD/ICE
    • Friedman, Jerome H. "Greedy function approximation: a gradient boosting
    machine." Annals of statistics (2001): 1189-1232.
    • Goldstein, Alex, et al. "Peeking inside the black box: Visualizing statistical learning with
    plots of individual conditional expectation." Journal of Computational and Graphical
    Statistics 24.1 (2015): 44-65.
    • Hastie, Trevor, et al. "The elements of statistical learning: data mining, inference and
    prediction." The Mathematical Intelligencer 27.2 (2005): 83-85.
    • Zhao, Qingyuan, and Trevor Hastie. "Causal interpretations of black-box
    models." Journal of Business & Economic Statistics just-accepted (2019): 1-19.
    • Zhao, Xilei, Xiang Yan, and Pascal Van Hentenryck. "Modeling heterogeneity in mode-
    switching behavior under a mobility-on-demand transit system: An interpretable
    machine learning approach." arXiv preprint arXiv:1902.02904 (2019).

    View Slide

  49. 参考⽂献︓SHAP
    • Lundberg, Scott M., and Su-In Lee. "A unified approach to interpreting model
    predictions." Advances in Neural Information Processing Systems. 2017.
    • Lundberg, Scott M., Gabriel G. Erion, and Su-In Lee. "Consistent individualized feature
    attribution for tree ensembles." arXiv preprint arXiv:1802.03888 (2018).
    • Lundberg, Scott M., et al. "Explainable AI for Trees: From Local Explanations to Global
    Understanding." arXiv preprint arXiv:1905.04610 (2019).
    • Sundararajan, Mukund, and Amir Najmi. "The many Shapley values for model
    explanation." arXiv preprint arXiv:1908.08474 (2019).
    • Janzing, Dominik, Lenon Minorics, and Patrick Blöbaum. "Feature relevance
    quantification in explainable AI: A causality problem." arXiv preprint
    arXiv:1910.13413 (2019).
    • GitHub - slundberg/shap: A game theoretic approach to explain the output of any
    machine learning model. https://github.com/slundberg/shap.
    • 岡⽥ 卓. "ゲーム理論 新版. " 有斐閣. (2011).

    View Slide