前提
AIの分類機を作っていますが、解釈をするためSHAPを出そうとしています。
練習用にshap.datasets.adult()を使って、他人の成功したコードのコピペで進めています。
ところが
1waterfall
2dependence_plot で心あたりのないエラーが出てしまいます。
発生している問題・エラーメッセージ
Waterfall
TypeError Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_7752/3313443298.py in <module>
4 shap_values=shap_values[1][index,:],
5 features=X_train.iloc[index,:],
----> 6 show=True
7 )
TypeError: waterfall() got an unexpected keyword argument 'expected_value'
dependence_plot
ValueError: Passing parameters norm and vmin/vmax simultaneously is not supported. Please pass vmin/vmax directly to the norm when creating it.
### 該当のソースコード import numpy as np import pandas as pd import matplotlib.pyplot as plt import shap from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score import lightgbm as lgb %matplotlib inline #データセットの読込 X,y = shap.datasets.adult() X_display,y_display = shap.datasets.adult(display=True) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=7) X_test_display = X_display.iloc[X_test.index,:] #ご参考 X_displayの中身 X_display.head()  #モデル構築 lgb_train = lgb.Dataset(X_train, label=y_train) lgb_test = lgb.Dataset(X_test, label=y_test) params = { "objective": "binary", "metric": "binary_logloss", } lgb_model = lgb.train(params, lgb_train, 10000, valid_sets=lgb_test, early_stopping_rounds=50, verbose_eval=1000) pred = lgb_model.predict(X_test) print(accuracy_score(np.round(pred),y_test)) #SHAP shap.initjs() explainer = shap.TreeExplainer(model=lgb_model) shap_values = explainer.shap_values(X=X_test) #個々のデータを評価した理由を示す →問題なく描画される shap.force_plot(explainer.expected_value[1], shap_values[1][0,:], X_test_display.iloc[0,:],link="logit") #分布→ →問題なく描画される shap.force_plot(explainer.expected_value[1], shap_values[1][0:1000,:], X_test_display.iloc[0:1000,:],link="logit") #waterfall →エラー index = 1 shap.waterfall_plot( expected_value=explainer.expected_value[1], shap_values=shap_values[1][index,:], features=X_train.iloc[index,:], show=True ) #dependence plot →エラー shap.dependence_plot("Age", shap_values[1], X_test,display_features=X_test_display) ### 補足情報(FW/ツールのバージョンなど) jupyter を使っています

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。