# 予測中に SHAP データセットを生成する

SHAP Importance データセットは、予測を実行するときに生成できます。これらのデータセットの SHAP 計算を使用すると、どの特徴量が予測値にもっとも重要な影響を及ぼしているかを理解できます。

SHAP データセットには、モデルのトレーニングに使用される特徴量の行レベルの SHAP 計算が含まれています。これらの値は、その行の他のすべての特徴量を考慮した場合に、各特徴量がターゲットの予測値にどの程度寄与するかを表します。

たとえば、SHAP Importance により、ある特徴量が顧客チャーンの可能性を増やしているまたは減らしているか、およびその結果にどの程度影響しているかを知ることができます。

予測を実行してデータセットを生成したら、SHAP 値を Qlik Sense アプリケーションにロードし、予測値とともに視覚化できます。詳細については、「[Qlik Sense アプリケーションでの SHAP 値のビジュアライゼーション](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/shap-values.htm)」および「[実際のアプリケーションでの SHAP 値の使用](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/shap-applications.htm)」を参照してください

このヘルプ トピックは、ML 展開による予測中の SHAP データセットの生成に焦点を当てています。実験トレーニング中に表示される SHAP Importance チャートの詳細については、「[実験トレーニングにおける SHAP Importance を理解する](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/shap-importance.htm)」を参照してください。

情報メモ時系列モデルによる予測中は、SHAP データセットを生成できません。

## SHAP データセットの生成に使用できるオプション

予測を構成するとき、2 つの異なる形式から選択して SHAP データセットを生成できます。どちらのオプションも同じ情報が提供されますが、構造が異なります。

### SHAP

これは、SHAP 値が特徴量ごとに 1 つの列に分割されたデータセットです。このオプションは、多項分類モデルでは使用できません。

### 座標 SHAP

これは、すべての SHAP 値が 2 つの列 (「特徴量」列と「値」列) のみに含まれるように構造化されているデータセットです。このオプションは、すべてのモデル タイプで使用できます。

多項モデルのデータセットは、二項モデルのデータセットと比べて動作が若干異なります。予測するレコードごとに、モデルによって予測可能な各クラスの SHAP 値を含む新しい行が作成されます。データセットには、SHAP 値が表すクラスを識別するための追加の列も作成されます。

予測値と SHAP 値を Qlik Sense アプリケーションに読み込んでデータ モデルを作成する場合、SHAP データセットよりも座標 SHAP データセットの方が扱いやすい場合があります。

### 例

次の表には、5 つの特徴量でトレーニングされた回帰モデルから生成された、SHAP および座標 SHAP データセットのサンプルが含まれています。サンプルには、適用データセットの 2 つのレコード (2 つのアカウント ID に対応) の SHAP 値が含まれています。

これらの例では、データの構造の違いが示されています。

SHAP dataset sample

| AccountID | AdditionalFeatureSpend\_SHAP | Churned\_SHAP | CurrentPeriodUsage\_SHAP | HasRenewed\_SHAP | NumberOfPenalties\_SHAP |
| --- | --- | --- | --- | --- | --- |
| aa16889 | 1.76830971241 | -0.58154511451721 | -1.106874704361 | -0.36080026626587 | 3.6597540378571 |
| aa33396 | 0.80359643697739 | -0.64805734157562 | 0.076582334935665 | 0.38967734575272 | -0.31007811427116 |

Coordinate SHAP dataset sample

| AccountID | automl\_feature | SHAP\_value |
| --- | --- | --- |
| aa16889 | AdditionalFeatureSpend | 1.76830971241 |
| aa16889 | Churned | -0.58154511451721 |
| aa16889 | CurrentPeriodUsage | -1.106874704361 |
| aa16889 | HasRenewed | -0.36080026626587 |
| aa16889 | NumberOfPenalties | 3.6597540378571 |
| aa33396 | AdditionalFeatureSpend | 0.80359643697739 |
| aa33396 | Churned | -0.64805734157562 |
| aa33396 | CurrentPeriodUsage | 0.076582334935665 |
| aa33396 | HasRenewed | 0.38967734575272 |
| aa33396 | NumberOfPenalties | -0.31007811427116 |

## SHAP 予測値の解釈

実験トレーニング中に表示される SHAP Importance チャートの値とは異なり、SHAP データセットには方向を持つ行レベルの SHAP 計算が含まれています。つまり、それらは絶対値ではなく、正または負の値になる可能性があります。アプリケーション内の値を視覚化する場合、ユースケースに応じて、絶対値として集計することを選択できます。

レコードの SHAP 値は、そのレコードと対応する予測値に関して分析する必要があります。モデル タイプ (二項分類、多項分類、または回帰) に応じて、SHAP 値の方向は若干異なって解釈される必要があります。

### 分類モデル

二項分類モデルでは、SHAP の正の値が大きいと、2 つの可能性のある結果のうちの 1 つに大きな影響があることを示し、負の値が大きいと、もう 1 つの結果に大きな影響があることを示しています。アプリケーションでデータを使用する場合、SHAP 値の方向によって必要な分析ができない場合があります。これを解決するには、SHAP 値の方向を逆にします (例: 列全体に -1 を乗算する)。SHAP 方向チェックの詳細については、「[準備](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/shap-values.htm#Preparat)」を参照してください。

多項モデルの SHAP データセットは、異なる構造になっています。予測する各レコードには、考えられるクラスごとに個別の行とそのクラスに対応する SHAP 値が含まれます。クラスは「Predicted\_class」列で指定されます。

座標 SHAP データセットで、多項モデル予測からの SHAP 値を次のように解釈します。

* SHAP の正の値が高いということは、その特徴量が、指定された「Predicted\_class」という結果に対してより大きな影響力を持っていることを示します。

* SHAP の負の値が高いということは、その特徴量が、指定された「Predicted\_class」ではない結果に対してより大きな影響力を持っていることを示します。

#### 例

次の例は、二項分類モデルの出力と多項分類モデルの出力におけるデータセット構造の違いを示しています。

アカウント ID ごとに 1 行を含む適用データセットから始めるとしましょう。モデルがトレーニングされる各特徴量は、個別の列として表されます。

単一のアカウント ID レコードは次のようになります。

Single record from a dataset on which predictions will be generated

| AccountID | AdditionalFeatureSpend | BaseFee | CurrentPeriodUsage | HasRenewed | NumberOfPenalties |
| --- | --- | --- | --- | --- | --- |
| aa16889 | 18 | 33.52 | 210.1 | yes | 4 |

Churned 項目の結果を予測するために二項分類モデルをトレーニングする場合、「はい」または「いいえ」の 2 つの結果が考えられます。上記の単一アカウント ID レコードに基づいて、このレコードの座標 SHAP データセットは次のようになります。

Sample from coordinate SHAP dataset for binary classification model prediction

| AccountID | automl\_feature | SHAP\_value |
| --- | --- | --- |
| aa16889 | AdditionalFeatureSpend | -0.049129267835076 |
| aa16889 | BaseFee | -1.5363064624041 |
| aa16889 | CurrentPeriodUsage | 0.10787960191299 |
| aa16889 | HasRenewed | 1.2441783315923 |
| aa16889 | NumberOfPenalties | 2.3803616183224 |

上の表では、単一のアカウント ID の SHAP 値が特徴量ごとに分類されて表示されています。特徴量ごとに新しい行が作成され、各特徴量に SHAP 値が割り当てられます。これらの SHAP 値の方向と大きさは、考えられる 2 つの結果に関連して評価する必要があります。理想的には、SHAP 値が高くなるほど、特徴量が肯定的な解釈 (この場合は「はい」) を伴う結果に与える影響は大きくなります。この表現が逆の場合は、SHAP 値の方向を逆にして (-1 を乗算)、分析をより簡単に解釈できます。

比較のために、カテゴリ別 PlanType 項目 (考えられる 4 つの結果 - 「Blue Plan」、「Green Plan」、「Purple Plan」、「Red Plan」) を予測するために多項分類モデルをトレーニングしたとします。最初の表の単一アカウント ID レコードに基づいて、このレコードの座標 SHAP データセットは次のようになります。

Sample from coordinate SHAP dataset for multiclass classification model prediction

| AccountID | automl\_feature | Predicted\_class | SHAP\_value |
| --- | --- | --- | --- |
| aa16889 | AdditionalFeatureSpend | Blue Plan | 0.004155414339679 |
| aa16889 | AdditionalFeatureSpend | Green Plan | 0.0066376343942741 |
| aa16889 | AdditionalFeatureSpend | Purple Plan | -0.014411468558894 |
| aa16889 | AdditionalFeatureSpend | Red Plan | 0.003618419824941 |
| aa16889 | BaseFee | Blue Plan | 0.089301017079318 |
| aa16889 | BaseFee | Green Plan | 0.28876498452748 |
| aa16889 | BaseFee | Purple Plan | 0.055689421438434 |
| aa16889 | BaseFee | Red Plan | -0.43375542304524 |
| aa16889 | CurrentPeriodUsage | Blue Plan | -0.0040098954629816 |
| aa16889 | CurrentPeriodUsage | Green Plan | -0.27902537442842 |
| aa16889 | CurrentPeriodUsage | Purple Plan | -0.21871561841248 |
| aa16889 | CurrentPeriodUsage | Red Plan | 0.50175088830388 |
| aa16889 | HasRenewed | Blue Plan | -0.011878031228962 |
| aa16889 | HasRenewed | Green Plan | 0.036835618725654 |
| aa16889 | HasRenewed | Purple Plan | 0.13798314881109 |
| aa16889 | HasRenewed | Red Plan | -0.16294073630778 |
| aa16889 | NumberOfPenalties | Blue Plan | 0.20519095034486 |
| aa16889 | NumberOfPenalties | Green Plan | 0.0015682625647107 |
| aa16889 | NumberOfPenalties | Purple Plan | -0.084355421853302 |
| aa16889 | NumberOfPenalties | Red Plan | -0.12240379105627 |

上の表では、単一アカウント ID が 20 個の行で表されています。特徴量ごとに 1 つの行があり、ターゲットで考えられる各結果に対応する SHAP 値の行があります。Predicted\_class 列は、予測可能な結果 (クラス) を表します。必ずしも、予測データセットに表示される実際の予測結果を表すわけではありません。最終的に、SHAP 値がもっとも高いクラスがレコードの予測値になります。

この表の SHAP 値は、指定された特徴量 (automl\_feature) が、指定されたクラス (Predicted\_class) である可能性のある結果に及ぼす影響の測定値です。正の値が大きい場合、その特徴量が指定されたクラスになるという予測結果に強い影響を与えていることを示し、負の値が大きい場合は、その特徴量が指定されたクラスにならないという予測結果に強い影響を与えていることを示します。

### 回帰モデル

回帰モデルから生成された SHAP データセットでは、SHAP 値の方向がより簡単に解釈できます。

* SHAP 値が正であれば、その行の予測値は増加します。

* SHAP 値が負であれば、その行の予測値は減少します。

## SHAP 値の計算

SHAP 値はさまざまなアルゴリズムで計算されます。SHAP importance は、2 つの異なる方法を使用して計算されます。

* Tree SHAP: ツリー モデルの SHAP 値を高速かつ正確に推定する手法

* Linear SHAP: 線形モデルの SHAP 値を計算する手法

モデル タイプおよび SHAP 計算の手法で利用できるアルゴリズム

| アルゴリズム | サポートされているモデル タイプ | SHAP 計算の手法 |
| --- | --- | --- |
| ランダム フォレスト分類 | 二項分類、多項分類 | Tree SHAP |
| XGBoost 分類 | 二項分類、多項分類 | Tree SHAP |
| LightGBM 分類 | 二項分類、多項分類 | Tree SHAP |
| CatBoost 分類 | 二項分類、多項分類 | Tree SHAP |
| ロジスティック回帰 | 二項分類、多項分類 | Linear SHAP |
| ラッソ回帰 | 二項分類、多項分類 | Linear SHAP |
| エラスティック ネット回帰 | 二項分類、多項分類 | Linear SHAP |
| ガウス ナイーブ ベイズ | 二項分類、多項分類 | SHAP は計算されない |
| CatBoost 回帰 | 回帰 | Tree SHAP |
| LightGBM 回帰 | 回帰 | Tree SHAP |
| 線形回帰 | 回帰 | Linear SHAP |
| ランダム フォレスト回帰 | 回帰 | Tree SHAP |
| SGD 回帰 | 回帰 | Linear SHAP |
| XGBoost 回帰 | 回帰 | Tree SHAP |