【3行要約】
- 機械学習モデルの予測を説明するSHAP解析は、どの特徴量が予測に寄与しているかを可視化する強力なツールです。
- ウォーターフォール図・ビースウォームグラフ・棒グラフという3つのグラフを使い分けることで、1件の実験の根拠から全体傾向まで、多角的に理解できます。
- ただし、SHAP値の横軸を確率変化として読んだり、棒グラフの比率を物理的な効果の大きさと解釈したりすると、誤った判断に繋がります。本記事では、SHAP解析結果の正しい読み方を整理します。
データ駆動型の材料開発を進める中で、研究者からよく聞かれる問いがあります。
「このAIは、なぜこの予測をしたのか?」
データを蓄積し、予測モデルを構築した後、そのモデルが信頼できるかどうかを判断する必要があります。数値的な精度指標(R²やRMSE)だけでは不十分です。モデルがどの特徴量に注目しているのか、その判断根拠を理解することが、次の実験設計や探索戦略を決める上で不可欠です。
ランダムフォレストやXGBoostといった高精度なモデルは、内部で数百本の決定木を組み合わせているため、「どの特徴量がどれだけ効いているのか」が見えにくいブラックボックスになりがちです。研究者が納得できる予測、実験計画に活かせる予測を得るためには、この問いに答える必要があります。
その答えを可視化するのが、SHAP(SHapley Additive exPlanations)解析です。SHAPは説明可能なAI(Explainable AI)の代表的な手法として広く使われています。
ただし、SHAPが示すのは「モデルがどう判断したか」であり、「物理的な因果関係」を直接証明するものではありません。相関構造や学習データのバイアスはそのまま反映されるため、ドメイン知識との照らし合わせが不可欠です。
1. SHAP解析を理解するための「3つの値」
SHAP解析を正しく読み解く上で、最も重要なのが以下の3つの「値」の区別です。
① 実測値(Actual Value)
実際に実験して得られた「本当の答え」です。
例:引張強度が2.12 MPaだった
② ベース値(Base Value)
モデルが学習した全データの「予測値の平均」です。
例:このモデルの予測の平均は3.595 MPa
③ 予測値(Predicted Value)
モデルが特定の条件に対して出した「計算上の答え」です。
例:ある配合条件での予測は2.328 MPa
SHAP解析の目的は、「予測値(③)」が「ベース値(②)」とどう違うのか、その差(例:-1.267 MPa)を特徴量ごとに分解して説明することです。
2. 3つのグラフの使い分け
Polymerize Labsでは、この機能を「説明可能なAI」として提供しており、SHAP解析結果を3つのグラフで可視化できます。目的によって使い分けることが重要です。
グラフの種類 | 目的 | 見えるもの |
棒グラフ | 全体の重要度ランキング | どの特徴量が平均的に最も予測に影響しているか |
ビースウォームグラフ | 全体の傾向 | 特徴量の値がどのように(プラス/マイナス)影響しているか |
ウォーターフォール図 | 1件の実験の深掘り | この1件の予測の根拠は何か |
今回は、特にウォーターフォール図とビースウォームグラフの読み方を詳しく解説します。
3. ウォーターフォール図:1件の実験を深掘りする
グラフの目的
「1件の実験」が、どのように予測されたかを可視化します。
例:「なぜ、実験No.10の予測値は2.328 MPaになったのか?」

読み方
ウォーターフォール図は、ベース値(予測の平均)からスタートし、各特徴量の寄与を順番に積み上げていきます。
- 緑のバー(プラス):予測値を押し上げた特徴量
- 赤いバー(マイナス):予測値を押し下げた特徴量
全ての寄与を足し合わせた最終的な着地点が、「予測値」と一致します。
このように、特定の実験で「どの特徴量が」「どれだけ」プラス・マイナスに影響したかが具体的に分かります。
この個々の影響度(SHAP値)が、次に説明するビースウォームグラフの「1つ1つの点」の正体です。
4. ビースウォームグラフ:全実験の傾向を把握する
グラフの目的
AIがなぜその予測をしたのか、データセット全体(個々のデータ)に対する判断根拠(影響度)の傾向を一覧で可視化します。
グラフの正体
ビースウォームグラフは、「全実験分のウォーターフォール図を、特徴量ごとに行を圧縮して重ね合わせたもの」です。
グラフ上の各点は、1つの実験を表します。ある実験のウォーターフォール図における「温度」のSHAP値は、ビースウォームグラフの「温度」の行の1点として必ず表示されています。
注意点
このグラフ自体には「最終的な予測値(530 MPaなど)」は表示されません。予測値を構成する「部品(SHAP値)」の分布だけを示します。
5. ビースウォームグラフの読み解き方
ビースウォームグラフは、以下の3つの要素で構成されます。
① 縦軸:特徴量の名前
上にある特徴量ほど、予測全体への「影響度が大きい」ことを示しています(影響度は|SHAP値|の平均で計算されており、棒グラフのランキングと同じロジックです)。
② 点の「横の位置」:SHAP値(予測への影響度)
- 0(中心):影響が中立
- 右(プラス効果):予測値を(平均より)押し上げた
- 左(マイナス効果):予測値を(平均より)押し下げた
③ 点の「色」:特徴量の「実測値」の大小
- 赤(High):値が高かった
- 青(Low):値が低かった
6. ビースウォームグラフの解釈例
「色(実測値)」と「位置(影響度)」の相関を見ることで、モデルがどのように学習しているかが分かります。
解釈例①:解釈しやすいケース
「温度」の行で、赤い点(高温)が右(プラス)に、青い点(低温)が左(マイナス)に集まっている。
→ 解釈:このモデルは「温度が高いほど、予測値が上がる」と学習している。
解釈例②:交互作用が疑われるケース
「材料A」の行で、赤と青が混在して左右に散らばっている。
→ 解釈:「材料A」単独では影響が決まっていない。他の特徴量との組み合わせで影響が変わる「交互作用」や、非線形な単独効果が起きている可能性が高い。
7. よくある誤解と注意点
SHAP解析は強力なツールですが、読み方を誤ると間違った結論に繋がります。
誤解①:横軸を「確率変化」として読む
ビースウォームグラフやウォーターフォール図の横軸(SHAP値)は、予測への寄与の大きさを示していますが、これを直接「確率が○○%変化した」とは読めません。
特に分類問題(成功/失敗の判定など)では、SHAP値はモデル内部のロジット空間での寄与を示していることが多く、確率の直線的な増減ではありません。
誤解②:棒グラフの比率を物理的な効果の大きさと解釈する
棒グラフは、各特徴量の|SHAP値|の平均を示しており、以下のような比較には使えます。
- ✅ 順序の比較:「AはBより予測への影響度が大きい」
- ✅ 相対的な大きさの比較:「AはBの約1.5倍、モデルへの寄与が大きい」
ただし、次の解釈は誤りです。
- ❌ 物理的・因果的な効果の比較:「AはBより物理的に1.5倍効く」
棒グラフが示すのは、あくまでモデルが学習した寄与の平均値です。特徴量間の相関や学習データの偏りがそのまま反映されるため、物理的なメカニズムや因果関係を直接読み取ることはできません。
8. まとめ:SHAPを実験計画に活かす
2つのグラフの関係
- ウォーターフォール:1件の実験を診断する「ミクロ」な視点
- ビースウォーム:全体の傾向を把握する「マクロ」な視点
この2つを組み合わせることで、個別の予測根拠と全体の学習傾向を同時に理解できます。
活用法
① 予測の根拠説明
「なぜこの予測になったか」を具体的に説明できるため、研究者が納得して次の実験に進めます。
② 実験計画へのフィードバック
ビースウォームグラフで上部にランクされ、左右に広く分布する特徴量(=影響量が大きい)は、操作可能であれば、「結果が変わりやすい有望な探索軸」である可能性が高いです。次にどの特徴量を振って実験すべきか、優先順位づけに役立ちます。
SHAPによる解釈は、モデルの信頼性を確認するだけでなく、「次にどの実験をすべきか」「どの変数を重点的に調整すべきか」という研究の方向性を示す羅針盤にもなります。
SHAP解析は、AIの予測を「見える化」する強力な道具です。ただし、その読み方を誤ると、誤った判断に繋がります。本記事で整理した3つのグラフの使い分けと注意点を押さえ、データ駆動型の材料開発を加速させてください。
Polymerize Labsでは、「説明可能なAI」として、これらのSHAP解析機能を標準搭載しており、予測結果の解釈を強力にサポートします。モデルの信頼性が確認できれば、そのモデルを使った探索へと進むことができます。解析結果の読み方に迷ったときは、ぜひお気軽にご相談ください。
[お問い合わせ・プラットフォームのデモ依頼はこちら]
文責:藤田 雅大(Technical Customer Success)
![[object Object]](https://res.cloudinary.com/drorzl5rx/image/upload/v1775637358/%E6%9D%90%E6%96%99%E9%96%8B%E7%99%BADX%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8BSHAP%E8%A7%A3%E6%9E%90_%E4%BA%88%E6%B8%AC%E3%81%AE%E6%A0%B9%E6%8B%A0%E3%82%92_%E6%AD%A3%E3%81%97%E3%81%8F_%E8%AA%AD%E3%81%BF%E8%A7%A3%E3%81%8F_tt7eyc.png)
![[object Object]](https://res.cloudinary.com/polymerize/image/upload/v1654250568/blog/white-paper-1_f8wj6q.webp)
![[object Object]](https://res.cloudinary.com/polymerize/image/upload/v1644477316/blog/cloud_umc13e.jpg)
![[object Object]](https://res.cloudinary.com/dlunchpm0/image/upload/v1769059496/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92_%E6%9D%90%E6%96%99%E9%96%8B%E7%99%BA_%E3%82%A2%E3%83%AB%E3%82%B3%E3%82%99%E3%83%AA%E3%82%B9%E3%82%99%E3%83%A0_%E3%83%A2%E3%83%86%E3%82%99%E3%83%AB%E8%A7%A3%E8%AA%AC_01_%E6%9D%90%E6%96%99%E9%96%8B%E7%99%BADX%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B_%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%82%A2%E3%83%AB%E3%82%B3%E3%82%99%E3%83%AA%E3%82%B9%E3%82%99%E3%83%A0_%E3%81%AE%E5%88%86%E9%A1%9E%E3%81%A8%E9%81%B8%E3%81%B2%E3%82%99%E6%96%B9_%E6%95%B0%E5%80%A4%E4%BA%88%E6%B8%AC%E7%B7%A8_bbbvgd.jpg)
![[object Object]](https://res.cloudinary.com/dlunchpm0/image/upload/v1769059580/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92_%E6%9D%90%E6%96%99%E9%96%8B%E7%99%BA_%E3%82%A2%E3%83%AB%E3%82%B3%E3%82%99%E3%83%AA%E3%82%B9%E3%82%99%E3%83%A0_%E3%83%A2%E3%83%86%E3%82%99%E3%83%AB%E8%A7%A3%E8%AA%AC_03_%E3%83%98%E3%82%99%E3%82%A4%E3%82%B9%E3%82%99%E6%9C%80%E9%81%A9%E5%8C%96_vs_%E9%81%BA%E4%BC%9D%E7%9A%84%E3%82%A2%E3%83%AB%E3%82%B3%E3%82%99%E3%83%AA%E3%82%B9%E3%82%99%E3%83%A0_%E6%9D%90%E6%96%99%E6%8E%A2%E7%B4%A2%E3%81%A6%E3%82%99%E3%81%AE%E5%AE%9F%E5%8B%99%E7%9A%84%E3%81%AA%E4%BD%BF%E3%81%84%E5%88%86%E3%81%91%E6%8C%87%E9%87%9D_gqgecg.jpg)
![[object Object]](https://res.cloudinary.com/dlunchpm0/image/upload/v1769059531/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92_%E6%9D%90%E6%96%99%E9%96%8B%E7%99%BA_%E3%82%A2%E3%83%AB%E3%82%B3%E3%82%99%E3%83%AA%E3%82%B9%E3%82%99%E3%83%A0_%E3%83%A2%E3%83%86%E3%82%99%E3%83%AB%E8%A7%A3%E8%AA%AC_02__%E4%BA%88%E6%B8%AC%E3%83%A2%E3%83%86%E3%82%99%E3%83%AB%E3%81%AE%E8%A9%95%E4%BE%A1%E6%8C%87%E6%A8%99_%E3%81%AE%E5%9F%BA%E7%A4%8E%E3%81%A8%E5%AE%9F%E8%B7%B5_%E6%95%B0%E5%80%A4%E4%BA%88%E6%B8%AC%E7%B7%A8_%E6%9D%90%E6%96%99%E9%96%8B%E7%99%BADX%E3%81%AE%E7%8F%BE%E5%A0%B4%E3%81%A6%E3%82%99%E9%81%B8%E3%81%B5%E3%82%994%E3%81%A4%E3%81%AE%E8%A9%95%E4%BE%A1%E8%BB%B8_MAE_RMSE_R2..._zf143z.jpg)
![[object Object]](https://res.cloudinary.com/dlunchpm0/image/upload/v1769059660/%E3%83%86%E3%82%99%E3%83%BC%E3%82%BF_AI%E9%A7%86%E5%8B%95%E5%9E%8B%E6%9D%90%E6%96%99%E9%96%8B%E7%99%BA%E3%81%AE%E5%9F%BA%E6%9C%AC%E3%81%A8%E8%80%83%E3%81%88%E6%96%B9_03_%E7%A0%94%E7%A9%B6%E8%80%85%E3%81%AE%E7%9F%A5%E8%A6%8B%E3%82%92%E8%B3%87%E7%94%A3%E3%81%AB%E5%A4%89%E3%81%88%E3%82%8B%E6%9D%90%E6%96%99%E9%96%8B%E7%99%BADX_%E6%88%90%E6%9E%9C%E5%89%B5%E5%87%BA%E3%81%AB%E5%90%91%E3%81%91%E3%81%9F%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9%E3%82%99%E5%88%A5AI%E6%B4%BB%E7%94%A8%E3%81%AE%E6%8C%87%E9%87%9D_ffis3r.jpg)
![[object Object]](https://res.cloudinary.com/dlunchpm0/image/upload/v1769059725/%E3%83%86%E3%82%99%E3%83%BC%E3%82%BF_AI%E6%B4%BB%E7%94%A8%E5%AE%9F%E8%B7%B5%E3%82%AB%E3%82%99%E3%82%A4%E3%83%88%E3%82%99_01_%E6%9D%90%E6%96%99%E9%96%8B%E7%99%BADX%E3%82%92%E5%8A%A0%E9%80%9F%E3%81%95%E3%81%9B%E3%82%8B_%E5%AE%9F%E9%A8%93%E8%A8%88%E7%94%BB%E6%B3%95_DoE_AI_Ready%E3%81%AA%E3%83%86%E3%82%99%E3%83%BC%E3%82%BF%E8%B3%87%E7%94%A3%E3%82%92%E7%94%9F%E3%81%BF%E5%87%BA%E3%81%99%E3%81%9F%E3%82%81%E3%81%AE%E4%BD%9C%E6%B3%95_eyz4sy.jpg)
![[object Object]](https://res.cloudinary.com/drorzl5rx/image/upload/v1775637481/%E6%9D%90%E6%96%99%E9%96%8B%E7%99%BA%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E7%94%BB%E5%83%8F%E3%83%86%E3%82%99%E3%83%BC%E3%82%BF%E6%B4%BB%E7%94%A8_%E7%9C%A0%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E9%9D%9E%E6%A7%8B%E9%80%A0%E5%8C%96%E3%83%86%E3%82%99%E3%83%BC%E3%82%BF%E3%82%92%E8%B3%87%E7%94%A3%E3%81%AB%E5%A4%89%E3%81%88%E3%82%8B_trntzd.png)
![[object Object]](https://res.cloudinary.com/drorzl5rx/image/upload/v1775637440/MI%E6%B4%BB%E7%94%A8%E3%81%A6%E3%82%99%E7%B5%84%E7%B9%94%E8%83%BD%E5%8A%9B%E3%82%92%E9%AB%98%E3%82%81%E3%82%8B_Polymerize%E3%81%8B%E3%82%99_%E3%83%86%E3%82%99%E3%83%BC%E3%82%BF%E8%93%84%E7%A9%8D_%E3%82%92%E8%B5%B7%E7%82%B9%E3%81%A8%E3%81%99%E3%82%8B%E7%90%86%E7%94%B1_bwtwom.png)
![[object Object]](https://res.cloudinary.com/drorzl5rx/image/upload/v1775806391/%E6%9D%90%E6%96%99%E9%96%8B%E7%99%BA%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B_%E3%83%86%E3%82%99%E3%83%BC%E3%82%BF%E5%89%8D%E5%87%A6%E7%90%86_%E3%81%AE%E5%9F%BA%E6%9C%AC_%E7%9B%AE%E7%9A%84%E5%A4%89%E6%95%B0_%E8%AA%AC%E6%98%8E%E5%A4%89%E6%95%B0%E3%81%AE%E8%A6%8B%E7%9B%B4%E3%81%97%E6%96%B9_de0xrd.png)