SHAP値とは?機械学習モデルの解釈を初心者向けに解説

SHAP値とは?機械学習モデルの判断理由を読み解く方法

AIの初心者

「SHAP」ってなんですか?AIの説明でよく見ますが、何を表しているのか分かりません。

AI専門家

SHAPは、AIや機械学習モデルが出した予測について、どの特徴量がどれくらい影響したのかを説明するための方法だよ。

AIの初心者

予測の理由を数値で見られる、ということですか?

AI専門家

その通り。例えば購買予測なら、年齢、購入回数、閲覧履歴などが予測を上げたのか下げたのかを、特徴量ごとの貢献度として確認できるんだ。

SHAPとは。

SHAPは「SHapley Additive exPlanations」の略で、機械学習モデルの予測結果を説明するための代表的な手法です。中身が見えにくいモデルに対して、どの特徴量が予測にどれだけ貢献したのかを数値で示します。背景には、協力ゲーム理論の「シャープレイ値」という考え方があります。

ブラックボックス化した機械学習モデルをSHAP値で説明する概念図

機械学習モデルは、画像分類、文章生成、需要予測、不正検知など多くの場面で使われています。一方で、モデルが複雑になるほど「なぜその結果になったのか」を人間が追いにくくなります。SHAP値は、このブラックボックス問題に対して、予測の根拠を特徴量単位で確認する手がかりを与える方法です。

説明可能なAIが必要とされる理由

深層学習をはじめとする高度な機械学習モデルは、非常に多くのパラメータや非線形な関係を扱います。そのため、精度が高くても、判断の過程を人間が直感的に理解できないことがあります。このような状態は、一般にブラックボックス問題と呼ばれます。

ブラックボックス問題が特に重要になるのは、予測結果が人の判断や業務上の意思決定に影響する場面です。医療診断支援であれば、なぜ病気の可能性が高いと判定されたのかを医師が確認できなければ、診断の補助として使いにくくなります。金融の融資審査でも、どの情報が審査結果に影響したのかが分からなければ、説明責任や改善の検討が難しくなります。

そこで注目されるのが、説明可能なAI、つまりXAIです。XAIは、AIの判断根拠を人間が理解しやすい形に変換する考え方や技術の総称です。画像認識なら注目した領域を可視化し、テキスト分類なら重要な単語を示すように、モデルの出力だけでなく「判断に使われた情報」を見えるようにします。

SHAP値は、この説明可能なAIの中でも、表形式データや分類・回帰モデルの説明でよく使われます。単に「この特徴量が重要です」と示すだけでなく、個別の予測に対して、各特徴量がどの方向にどれくらい影響したかを確認できる点が特徴です。

観点 内容
課題 高性能なモデルほど判断過程が見えにくくなる
必要性 医療、金融、自動運転などでは予測根拠の確認が重要
SHAP値の役割 特徴量ごとの寄与度を数値化し、予測の説明に使う

SHAP値の基本:特徴量の貢献度をどう読むか

複数の特徴量が予測値を押し上げたり押し下げたりするSHAP値の説明図

SHAP値では、モデルに入力される年齢、購入回数、検査値、取引金額のような項目を「特徴量」と考えます。そして、それぞれの特徴量が予測結果をどれくらい変化させたかを評価します。

読み方の基本はシンプルです。SHAP値が正の値であれば、その特徴量は予測値を上げる方向に働いています。負の値であれば、予測値を下げる方向に働いています。また、絶対値が大きいほど、その予測に対する影響が大きいと解釈します。

例えば、ある顧客が商品を購入する確率を予測するモデルを考えます。「過去の購入回数」のSHAP値が大きな正の値であれば、その顧客の購入履歴が購買確率を押し上げたと読めます。一方で、「最終購入からの日数」が負の値であれば、しばらく購入していないことが購買確率を下げる方向に働いたと考えられます。

ここで重要なのは、SHAP値がモデル内部での予測への貢献度を表すという点です。現実世界で本当にその特徴量が原因だったと断定するものではありません。あくまで、そのモデルが与えられたデータをもとにどう判断したかを読み解くための指標です。

SHAP値の計算方法とシャープレイ値の考え方

特徴量の組み合わせを比較してSHAP値を計算する流れ

SHAP値の土台には、協力ゲーム理論で使われるシャープレイ値があります。協力ゲーム理論では、複数の参加者が協力して成果を出したとき、それぞれの参加者にどれだけ公平に報酬を分けるかを考えます。SHAPでは、この「参加者」を特徴量、「成果」を予測結果に置き換えて考えます。

直感的には、ある特徴量を加えたときに予測値がどれくらい変わるかを、さまざまな特徴量の組み合わせで確認し、その平均的な貢献を求めます。例えば、年齢、購入回数、閲覧履歴という3つの特徴量がある場合、年齢だけを入れた場合、年齢と購入回数を入れた場合、閲覧履歴と組み合わせた場合などを比べ、年齢が追加されたことで予測がどれだけ変わったかを集計します。

数式で表すと、特徴量 \(i\) のSHAP値 \(phi_i\) は、特徴量集合 \(S\) に \(i\) を加えたときの予測値の差を、組み合わせの重み付き平均として計算します。

\(phi_i = sum_{S subseteq F setminus {i}} rac{|S|!(|F|-|S|-1)!}{|F|!}left[f(S cup {i}) – f(S)
ight]\)

ただし、実際にすべての組み合わせを計算しようとすると、特徴量の数が増えるほど計算量が急激に増えます。そのため実務では、近似計算を使ったり、木系モデルに特化したTreeSHAPのような効率的なアルゴリズムを使ったりします。モデルの種類、データ量、必要な説明精度に応じて計算方法を選ぶことが大切です。

方法 特徴 注意点
厳密計算 すべての組み合わせを考慮して理論に近い値を求める 特徴量が多いと計算が重い
近似計算 サンプリングなどで計算時間を抑える 近似誤差を確認する必要がある
モデル別アルゴリズム 木系モデルなどの構造を利用して高速化する 対応するモデルや前提を確認する

SHAP値を可視化すると何が分かるか

SHAP値の棒グラフと散布図と個別予測説明を並べた可視化画面

SHAP値は数値のままでも確認できますが、実務では可視化して読むことが多くあります。可視化することで、モデル全体の傾向と、特定の1件の予測理由を分けて確認できます。

全体傾向を見るときは、特徴量ごとの平均的な影響度を棒グラフで示す方法がよく使われます。棒が長い特徴量ほど、モデル全体で予測に強く影響していると考えられます。例えば、購買予測モデルで「過去の購入回数」が最も大きければ、購買履歴が全体的に重要な判断材料になっていると読めます。

散布図を使うと、特徴量の値とSHAP値の関係を確認できます。年齢が高いほどSHAP値が正に寄るなら、そのモデルでは年齢が高いデータほど予測値を上げやすい傾向があると分かります。さらに色で別の特徴量を重ねると、特徴量同士の相互作用を見つける手がかりにもなります。

個別予測の説明では、ある1人の顧客、ある1件の取引、ある1人の患者について、予測値がどの要因で上がり、どの要因で下がったかを確認します。これは、現場担当者に説明するときや、予測が妥当かを点検するときに役立ちます。ただし、可視化結果はモデルとデータに基づく説明であるため、業務知識と合わせて読む必要があります。

SHAP値の応用例:医療・金融・マーケティング

医療分野では、診断支援やリスク予測の説明にSHAP値を使えます。例えば、検査値、年齢、既往歴、症状などを入力して病気のリスクを予測するモデルで、どの検査値が予測を押し上げたのかを確認できます。医師がモデルの出力を検討するとき、単なる確率だけでなく、根拠となった特徴量を確認できることは重要です。

金融分野では、融資審査、不正検知、与信リスクの分析に使われます。融資審査であれば、収入、返済履歴、借入状況などの特徴量が審査結果にどう影響したかを確認できます。不正検知では、取引金額、利用場所、時間帯、過去の利用パターンとの差などが、異常判定にどれだけ寄与したかを見ることができます。

マーケティング分野では、購買予測、解約予測、商品推薦の説明に役立ちます。ある顧客に特定の商品を推薦した理由や、解約リスクが高いと判定された理由を特徴量ごとに確認できれば、施策の改善や顧客対応に使いやすくなります。

これらの応用例に共通するのは、SHAP値が予測結果を人間の意思決定につなげるための説明材料になるという点です。モデルの精度だけでなく、なぜそう判断したのかを確認することで、改善点の発見や関係者への説明がしやすくなります。

分野 活用例 SHAP値で確認すること
医療 診断支援、リスク予測 どの症状や検査値が予測に影響したか
金融 融資審査、不正検知 どの属性や取引情報が判定を動かしたか
マーケティング 購買予測、解約予測、商品推薦 どの行動履歴や属性が施策判断に関係したか

SHAP値を使うときの注意点と限界

SHAP値の応用分野と注意点を俯瞰する説明図

SHAP値は便利な説明手法ですが、万能ではありません。まず注意したいのは計算負荷です。特徴量が多い場合やデータ量が大きい場合、厳密な計算には時間がかかります。解析の目的に応じて、特徴量を絞る、サンプル数を調整する、モデルに合った計算方法を選ぶといった工夫が必要です。

次に、SHAP値は因果関係を示すものではありません。SHAP値が大きい特徴量は、そのモデルの予測に強く関係していたと読めますが、その特徴量が現実の原因だと断定することはできません。相関の強い別の特徴量、データ収集時の偏り、モデルの学習方法が影響している可能性もあります。

また、入力データや前処理に問題があると、SHAP値の説明もその影響を受けます。欠損値の扱い、カテゴリ変数の変換、外れ値、学習データの偏りなどは、モデルの予測だけでなく説明結果にも反映されます。SHAP値を読むときは、モデルの性能指標やデータ品質の確認とセットで見ることが重要です。

実務では、SHAP値を単独で結論にするのではなく、業務知識、統計的な検証、必要に応じた因果推論の考え方と組み合わせます。特に医療や金融のように説明責任が重い領域では、「モデルがそう説明している」ことと「現実にそう判断してよい」ことを分けて扱う必要があります。

SHAP値を学ぶときに押さえたいポイント

SHAP値を理解するうえで最初に押さえるべきことは、特徴量ごとの貢献度を、正負の方向と大きさで読むという点です。正の値は予測を上げる方向、負の値は予測を下げる方向、絶対値の大きさは影響の強さを表します。

次に、SHAP値は個別予測の説明とモデル全体の傾向把握の両方に使えることを理解しておくと便利です。個別予測では1件ごとの理由を確認し、全体分析ではどの特徴量が広く効いているかを見ます。この2つを混同しないことが、解釈の精度を高めます。

最後に、SHAP値は説明可能AIの有力な手法ですが、モデルの判断を完全に正当化するものではありません。説明結果を出発点として、データ、モデル、業務上の妥当性を確認することで、機械学習モデルをより安全に活用できます。

更新履歴

日付 内容
2025年2月1日 初回公開
2026年5月31日 SHAP値の読み方、計算背景、可視化時の注意を追記

Weeybleの最新イベント

イベント一覧

イベント情報を読み込んでいます。

この記事の内容に興味を持った方へ

コワーキングスペース秋葉原Weeybleでは、AI、Web開発、クラウド、セキュリティなど、エンジニア向けの勉強会やもくもく会を開催しています。

もくもく作業したい方、技術について話したい方、これから学びたい方も歓迎です。

「もくもく会って何?」「初めて参加しても大丈夫?」という方は、もくもく会とは?意味や参加方法をわかりやすく解説の記事もあわせてご覧ください。

生成AI・AIエージェント開発のご相談

AWS Bedrockを活用したAI開発支援

業務システム自動化・エージェント開発に対応

PoC・技術検証・研究開発フェーズからご相談いただけます

アルゴリズム