【问题标题】:SHAP waterfall plot error regarding numpy.ndarray关于 numpy.ndarray 的 SHAP 瀑布图错误
【发布时间】:2022-11-10 12:04:23
【问题描述】:

我一直致力于使用 SHAP 解释一个简单的神经网络。而且由于我在CS方面的经验还很初级,所以我想请教一些建议。

长话短说,我运行了代码,出现了错误消息,说

“numpy.ndarray”对象没有属性“base_values”

代码相当简单;这是一个非常简单的回归神经网络。下面是NN代码+ SHAP

import numpy as np
import shap.plots
import tensorflow as tf
import pandas as pd
from sklearn.model_selection import train_test_split
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, BatchNormalization

np.random.seed(5)
tf.random.set_seed(11)
shap.initjs()

cbc = pd.read_excel('data location')
    
target_vars = ['variables']
X = pd.DataFrame()
for i in target_vars:
    X[i]=cbc[i]
    y = cbc['dependent variable, which is a dummy']

X_tn, X_te, y_tn, y_te = train_test_split(X, y, test_size=0.3, stratify=y, shuffle=True)

n_feat = X_tn.shape[1]
epo = 10

    model = Sequential()
model.add(BatchNormalization())
model.add(Dense(6, input_dim=n_feat, activation='tanh'))
model.add(Dense(6, input_dim=n_feat, activation='tanh'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss = 'mean_squared_error',
              optimizer = 'adam',
              metrics = ['accuracy'])

hist = model.fit(X_tn, y_tn, validation_data=(X_te, y_te), epochs=epo)

predictions = model.predict(X_te)
predicted_class = np.argmax(predictions, axis=1)

explainer = shap.KernelExplainer(model,X_tn,link='logit')
shap_values=explainer.shap_values(X_te,nsamples=100)
shap.plots.waterfall(shap_values[0])

为什么我会收到错误消息?另外,如果有的话,我很乐意听到一些关于代码的建议。

先感谢您!

【问题讨论】:

    标签: neural-network tensorflow2.0 shap


    【解决方案1】:

    我有完全相同的问题,目前无法解决......也许有人有想法?

    【讨论】:

    猜你喜欢
    • 2020-01-14
    • 2012-06-27
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多