keras のSequentialモデルでTarget(目的変数)を6つのカテゴリー(1~6)に分類する
予測モデルを構築しています。
データはエクセルから読み込みPandasのDFに入れて使用しています。
予測モデルの構築までは辿りついたのですが、予測に寄与する特徴量を可視化
することが上手くできません。特徴量を可視化するためにShap値を使おうと
しています。Shap値を取得するために、DeepExplainerでどのようにコード
を記述したら良いかわかりません。説明変数は50個あります。
以下は現在、記述しているコードで、
shap.initjs()
background = x_train[np.random.choice(x_train.shape[0], 50, replace=False)]
explainer = shap.DeepExplainer(model,background)
shap_values = explainer.shap_values(x_test)
shap.summary_plot(shap_values,x_test,plot_type='bar')
実行すると以下のようなエラーが出ています。
raise KeyError(f"None of [{key}] are in the [{axis_name}]")
KeyError: "None of [Int64Index([ 501, 296, 2071, 1589, 1376, 1354, 639, 70, 1976, 1949, 562,\n 1003, 1735, 162, 1109, 1596, 218, 1068, 401, 1413, 709, 483,\n 1524, 770, 1011, 75, 2050, 259, 471, 472, 677, 895, 1570,\n 1372, 478, 1147, 1172, 1502, 791, 535, 754, 1937, 706, 940,\n 1534, 436, 361, 1204, 588, 1282],\n dtype='int64')] are in the [columns]"
Shap値にお詳しい方ご教授ください。よろしくお願い致します。
DeepExplainer以外に良い方法がある場合も教えてください。
あなたの回答
tips
プレビュー