0Pricing
Learn AI with Python · レッスン

LIME:局所的で解釈可能な説明

lime.tabular.LimeTabularExplainer、入力の摂動、局所線形近似について学習します。

「LIME:局所的で解釈可能な説明」はCoddyKit上の無料Learn AI with Pythonレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn AI with Python学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn AI with Pythonコースには全4レッスンが含まれています。

LIMEとは

LIME(Local Interpretable Model-agnostic Explanations)は、1件の予測を説明する手法です。そのインスタンスの周辺にある小さな領域で、複雑なモデルの挙動に単純で解釈しやすいモデル(線形回帰など)を適合させます。

ローカルであり、グローバルではない

ブラックボックスモデルは全体としては非常に非線形でも、ある1点の近くではおおむね線形になります。LIMEはこの性質を利用します。モデル全体を説明するのではなく、対象となるインスタンスの周辺でのローカルな挙動だけを説明します。

LIMEの仕組み

LIMEはインスタンスに摂動を加えて近傍のサンプルを多数作成し、ブラックボックスモデルにそれらを予測させます。次に、元のインスタンスとの近さに応じてサンプルに重みを付け、解釈可能な代理モデルを適合させます。代理モデルの係数が説明になります。

モデル非依存

LIMEはモデルの予測関数を呼び出すだけなので、ニューラルネットワーク、勾配ブースティング、さらには外部APIまで、あらゆる分類器や回帰器で動作します。モデルをブラックボックスとして扱うためです。

LimeTabularExplainer

表形式データの場合は、訓練データと特徴量名からLimeTabularExplainerを構築します。訓練データの分布を使って、現実的な摂動を生成します。

from lime.lime_tabular import LimeTabularExplainer

explainer = LimeTabularExplainer(
    training_data=X_train.values,
    feature_names=X_train.columns.tolist(),
    class_names=["denied", "approved"],
    mode="classification",
)

explain_instance

1行を説明するには、その行とモデルのpredict_proba関数を指定してexplain_instanceを呼び出します。LIMEはその行の周辺に摂動を加え、ローカルな代理モデルを適合させます。

exp = explainer.explain_instance(
    data_row=X_test.values[0],
    predict_fn=model.predict_proba,
    num_features=5,
)

predict_probaであり、predictではない

分類用のLIMEには、確定したラベルではなく確率が必要です。代理モデルは確率の曲面に対して回帰を行うためです。必ずmodel.predict_proba(またはクラス確率を返す任意の関数)を渡してください。

num_featuresパラメーター

num_featuresは、説明に表示する特徴量の数に上限を設定します。数を少なくすると、より単純で理解しやすくなり、ローカルな予測に最も強く影響した要因だけが強調されます。

特徴量の重みの読み方

exp.as_list()は、(特徴量の条件、重み)の組として説明を返します。正の重みは予測を予測クラスの方向に押し、負の重みは予測クラスから遠ざけます。

for feature, weight in exp.as_list():
    print(feature, round(weight, 3))
# income > 50000     0.21
# debt_ratio > 0.4  -0.18

説明の可視化

LIMEは、説明をインタラクティブなグラフやノートブックのビューとして表示できます。寄与を示す棒と予測確率を並べて確認できます。

exp.show_in_notebook(show_table=True)
# or
fig = exp.as_pyplot_figure()

LIMEとSHAPの比較

どちらも個々の予測を説明しますが、違いがあります。

  • SHAPは、加法性や一貫性などの強い理論的保証を持ち、全体的な視点も提供します
  • LIMEは理解しやすく、モデル非依存で直感的ですが、ローカルな代理モデルは近似であり、摂動のランダム性によって結果が変わる可能性があります

理解度チェック

LIMEに関する知識を確認しましょう。

まとめ

LIMEを使ったローカルな説明について学びました。

  • LimeTabularExplainerは訓練データと特徴量名から構築します
  • explain_instanceはmodel.predict_probaを使ってローカルな代理モデルを適合させます
  • num_featuresは説明の大きさを制御します
  • as_list()は符号付きの特徴量の重みを返します
  • LIMEはモデル非依存かつローカルな手法であり、SHAPを補完します

よくある質問

「LIME:局所的で解釈可能な説明」レッスンは無料ですか?

はい。「LIME:局所的で解釈可能な説明」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn AI with Pythonコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn AI with Pythonコースには全4レッスンが含まれています。

「LIME:局所的で解釈可能な説明」で何を学びますか?

lime.tabular.LimeTabularExplainer、入力の摂動、局所線形近似について学習します。 ブラウザで直接実行するハンズオンコードでLearn AI with Pythonを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Learn AI with Pythonを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLearn AI with Pythonは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「LIME:局所的で解釈可能な説明」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLearn AI with Pythonレッスンでコードを書いて実行できますか?

はい。すべてのLearn AI with Pythonレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. MLモデルのバイアス検知
  2. モデル解釈性のためのSHAP値
  3. LIME:局所的で解釈可能な説明
  4. AI倫理とガバナンスのフレームワーク
← Learn AI with Pythonに戻る