shap: systememerror: _internal的初始化失败,没有引发异常



我正在使用SVC来预测目标。我正在尝试使用形状来获得特征的重要性。但是它失败了。

下面是我从官方文档中复制的简单代码:

import shap
svc_linear = SVC(C=1.2, probability=True)
svc_linear.fit(X_train, Y_train)
explainer = shap.KernelExplainer(svc_linear.predict_proba, X_train)
shap_values = explainer.shap_values(X_test)
shap.force_plot(explainer.expected_value[0], shap_values[0], X_test)

但是我得到了这个:

---------------------------------------------------------------------------
SystemError                               Traceback (most recent call last)
~AppDataLocalTempipykernel_110123923049429.py in <module>
----> 1 import shap
2 svc_linear = SVC(C=1.2, probability=True)
3 svc_linear.fit(X_train, Y_train)
4 explainer = shap.KernelExplainer(svc_linear.predict_proba, X_train)
5 shap_values = explainer.shap_values(X_test)
~Anaconda3libsite-packagesshap__init__.py in <module>
10     warnings.warn("As of version 0.29.0 shap only supports Python 3 (not 2)!")
11 
---> 12 from ._explanation import Explanation, Cohorts
13 
14 # explainers
~Anaconda3libsite-packagesshap_explanation.py in <module>
10 from slicer import Slicer, Alias, Obj
11 # from ._order import Order
---> 12 from .utils._general import OpChain
13 from .utils._exceptions import DimensionError
14 
~Anaconda3libsite-packagesshaputils__init__.py in <module>
----> 1 from ._clustering import hclust_ordering, partition_tree, partition_tree_shuffle, delta_minimization_order, hclust
2 from ._general import approximate_interactions, potential_interactions, sample, safe_isinstance, assert_import, record_import_error
3 from ._general import shapley_coefficients, convert_name, format_value, ordinal_str, OpChain, suppress_stderr
4 from ._show_progress import show_progress
5 from ._masked_model import MaskedModel, make_masks
~Anaconda3libsite-packagesshaputils_clustering.py in <module>
2 import scipy as sp
3 from scipy.spatial.distance import pdist
----> 4 from numba import jit
5 import sklearn
6 import warnings
~Anaconda3libsite-packagesnumba__init__.py in <module>
40 
41 # Re-export vectorize decorators and the thread layer querying function
---> 42 from numba.np.ufunc import (vectorize, guvectorize, threading_layer,
43                             get_num_threads, set_num_threads)
44 
~Anaconda3libsite-packagesnumbanpufunc__init__.py in <module>
1 # -*- coding: utf-8 -*-
2 
----> 3 from numba.np.ufunc.decorators import Vectorize, GUVectorize, vectorize, guvectorize
4 from numba.np.ufunc._internal import PyUFunc_None, PyUFunc_Zero, PyUFunc_One
5 from numba.np.ufunc import _internal, array_exprs
~Anaconda3libsite-packagesnumbanpufuncdecorators.py in <module>
1 import inspect
2 
----> 3 from numba.np.ufunc import _internal
4 from numba.np.ufunc.parallel import ParallelUFuncBuilder, ParallelGUFuncBuilder
5 
SystemError: initialization of _internal failed without raising an exception

我不知道为什么?有谁知道为什么吗?

ps:

python版本:3.9.13

shape version: 0.40.0

<代码>
<代码>

根据Hiran在问题中的评论,它也适用于我。

pip uninstall shap

pip install shap

在我的情况下,重新安装sharp没有帮助。

这个问题很可能是由Numba库中的错误引起的。更多详细信息:https://github.com/numba/numba/issues/8718和https://github.com/numba/numba/issues/8615

应该在下一个版本(pip uninstall numba ; pip install numba)中修复。

编辑:当我重新安装CC_4 (CC_5)时,问题消失了。我想这可能与我的系统中更新的软件包有关。

最新更新