SHAP 解释器值错误:输入包含 NaN、无穷大或对于 dtype('float64') 来说太大的值



在Linux上运行正常,但在Windows 10上运行时出现错误。请帮助它在Windows 10中成功运行。

代码:

import shap
# print the JS visualization code to the notebook
shap.initjs()
def prob(data):
return model.forward(Variable(torch.from_numpy(data)).float()).detach().numpy().reshape(-1, 1)
shap_explainer = shap.KernelExplainer(prob, 
X_train.numpy(), 
link="logit")
shap_values = shap_explainer.shap_values(X_test.numpy(), nsamples=100)

错误:

ValueError回溯(最近的调用)最后一个)2 X_train.numpy (),3 链接="logit"——比;4 shap_values = shap_explainer.shap_values(X_test.numpy(), nsamples=100)

D: Software anaconda3 lib 网站 explainers_kernel.py穿刺法shap_values(self, X, **kwargs)188 if self.keep_index:189 data = convert_to_instance_with_index(data, column_name, index_value[i:i + . i]1), index_name)——比;190年 explanations.append(自我。解释(数据,* * kwargs))191 if kwargs.get("gc_collect", False):192年 gc.collect ()

D: Software anaconda3 lib 网站 explainers_kernel.py穿刺法解释(self, incoming_instance, **kwargs)386 phi_var = np.zero ((self.data. data.)groups_size, self.D))387为d在范围(self.D):——比;388 vphi, vphi_var = self.solve(self. solve)Nsamples/self。max_samples, d)389年 φ(自我。varyingInds, d] = vphi390年 phi_var[自我。varyingindds, d] = vvphi_var

D: Software anaconda3 lib 网站 explainers_kernel.py穿刺法求解(self, fraction_evaluate, dim)精灵自我。L1_reg == "auto"或自我。L1_reg == "bic"或自我。L1_reg == "aic";564 c = "aic"如果自我。L1_reg == "auto"其他self.l1_reg——比;565 nonzero_indds = np.nonzero(LassoLarsIC(criterion=c). nonzero)。适合(mask_aug eyAdj_aug) .coef_) [0]566567 #使用固定正则化系数

D: anaconda3 lib 软件网站 sklearn linear_model_least_angle.pyin fit(self, X, y, copy_X) 1862如果copy_X为None: 1863copy_X = self.copy_X→1864 X, y =自我。_validate_data(X, y, y_numeric=True) 1865 1866 X, y, Xmean, ymean, Xstd =LinearModel._preprocess_data (

D: Software anaconda3 lib 网站 sklearn base.py_validate_data(self, X, y, reset, validate_separate, **check_params)431 y = check_array(y, **check_y_params)432年 其他:——比;X, y = check_X_y(X, y, ** check_参数)434 out = X, y435

D: anaconda3 lib 软件网站 sklearn 跑龙套 validation.py* * kwargs inner_f (* args)61 extra_args = len(args) - len(all_args)62 if extra_args <= 0:——比;63返回f(*args, **kwargs)6465 # extra_args>0

D: anaconda3 lib 软件网站 sklearn 跑龙套 validation.pycheck_X_y(X, y, accept_sparse, accept_large_sparse, dtype, order,Copy, force_all_finite, ensure_2d, allow_nd, multi_output,Ensure_min_samples, ensure_min_features, y_numeric, estimator)825年:826 y = column_or_1d(y, warn=True)——比;827年 _ assert_all_finite (y)if y_numeric and y.dtype.kind == ' 0 ':829 y = .astype(np.float64)

D: anaconda3 lib 软件网站 sklearn 跑龙套 validation.py_assert_all_finite(X, allow_nan, msg_dtype)101 not allow_nan and not np.isfinite(X).all()):102 type_err = 'infinity' if allow_nan else 'NaN, infinity'——比;103抛出ValueError(104年 msg_err.format105年 ( type_err,

ValueError:输入包含NaN,无穷大或太大的值dtype (float64)。

产生此错误的原因与模型的训练有关,我们需要防止过拟合

相关内容

最新更新