成功解决TypeError: only size-1 arrays can be converted to Python scalars

目录

解决问题

解决思路

解决方法

1、分析问题

2、测试bug

3、寻找函数参数正确定义

4、最终解决办法


解决问题

TypeError: only size-1 arrays can be converted to Python scalars

解决思路

类型错误:只有size-1的数组可以转换为 Python 标量

解决方法

1、分析问题

在执行shap.summary_plot(shap_i_values, X_data, max_display=7)函数的时候,遇到了TypeError: only size-1 arrays can be converted to Python scalars问题,

explainer = shap.TreeExplainer(model_C)  # 初始化解释器
shap_i_values = explainer.shap_interaction_values(X_data)   # 返回 估计一组样本的 SHAP交互值
print(model_name,type(shap_i_values),shap_i_values.shape,'\n',shap_i_values)
shap.summary_plot(shap_i_values, X_data, max_display=7)

2、测试bug

经过测试,发现model_C带来的shap_i_values存在问题,输出shap_i_values

model_C: RandomForestClassifier()
RFC <class 'list'> 2 [array([[[ 1.00892288e-01, -1.68401619e-02, -5.94680958e-03, ...,-1.32470081e-02,  3.55464100e-02,  5.80109769e-03],[-1.68401619e-02, -5.12440004e-02, -3.74259978e-02, ...,-2.28063353e-02,  4.59434195e-02, -3.04559773e-03],[-5.94680958e-03, -3.74259978e-02, -1.85461859e-02, ...,-6.63725042e-03,  1.92107791e-02, -2.68634910e-03],...,[-1.32470081e-02, -2.28063353e-02, -6.63725042e-03, ...,-1.38762590e-02,  4.56568837e-02, -7.74597253e-03],[ 3.55464100e-02,  4.59434195e-02,  1.92107791e-02, ...,4.56568837e-02, -3.10902626e-01,  1.16618553e-02],[ 5.80109769e-03, -3.04559773e-03, -2.68634910e-03, ...,-7.74597253e-03,  1.16618553e-02,  2.75534972e-02]],[[ 8.19124603e-02,  1.07770267e-02, -2.73940856e-03, ...,-5.42286117e-03, -1.43148441e-02, -9.38927405e-03],[ 1.07770267e-02,  1.34434798e-02,  8.07094323e-03, ...,4.91124351e-03,  5.50744405e-03,  6.47903095e-03],[-2.73940856e-03,  8.07094323e-03, -1.43633784e-02, ...,3.11791569e-03,  3.20759035e-03,  3.83808653e-03],...,[-5.42286117e-03,  4.91124351e-03,  3.11791569e-03, ...,7.87596527e-02,  1.74101730e-02, -1.64075188e-02],[-1.43148441e-02,  5.50744405e-03,  3.20759035e-03, ...,1.74101730e-02,  1.33626522e-01,  2.42559627e-02],[-9.38927405e-03,  6.47903095e-03,  3.83808653e-03, ...,-1.64075188e-02,  2.42559627e-02, -5.97394271e-02]],[[-1.38735034e-01, -2.42364407e-02,  1.14693608e-02, ...,-6.99696322e-03,  1.72904490e-02, -7.51722121e-03],[-2.42364407e-02,  2.39629923e-02, -6.97181439e-03, ...,-2.22822148e-02, -1.36613812e-02, -3.50808091e-02],[ 1.14693608e-02, -6.97181439e-03, -3.59474202e-03, ...,-6.09146988e-03,  5.59217986e-04, -3.53721479e-03],...,[-6.99696322e-03, -2.22822148e-02, -6.09146988e-03, ...,-1.87555406e-02, -5.20973244e-03,  8.26104068e-03],[ 1.72904490e-02, -1.36613812e-02,  5.59217986e-04, ...,-5.20973244e-03,  1.75241348e-01, -3.04973301e-03],[-7.51722121e-03, -3.50808091e-02, -3.53721479e-03, ...,8.26104068e-03, -3.04973301e-03, -1.46418256e-02]],...,[[-3.56423927e-02,  5.54317507e-02,  3.91146242e-03, ...,-1.75050321e-02,  1.85085775e-02, -7.70937834e-03],[ 5.54317507e-02, -1.39482944e-02,  6.70113175e-03, ...,6.15454045e-02, -9.39428826e-03,  1.47123014e-02],[ 3.91146242e-03,  6.70113175e-03, -1.26818812e-02, ...,5.26829692e-03, -2.15772294e-03, -2.47514340e-04],...,[-1.75050321e-02,  6.15454045e-02,  5.26829692e-03, ...,5.55692076e-04, -2.84333320e-02, -3.75207918e-03],[ 1.85085775e-02, -9.39428826e-03, -2.15772294e-03, ...,-2.84333320e-02,  1.87019548e-01, -8.06957153e-03],[-7.70937834e-03,  1.47123014e-02, -2.47514340e-04, ...,-3.75207918e-03, -8.06957153e-03,  2.07337395e-02]],[[ 8.84126066e-02,  1.82736920e-02, -5.65054043e-03, ...,2.64967036e-02,  4.50916773e-02, -2.10122413e-02],[ 1.82736920e-02,  7.86941550e-02,  2.28788104e-03, ...,-2.58770389e-03,  4.72064392e-03, -1.03766811e-02],[-5.65054043e-03,  2.28788104e-03, -1.35146704e-02, ...,-4.56388283e-03, -8.82118001e-04,  7.42603680e-03],...,[ 2.64967036e-02, -2.58770389e-03, -4.56388283e-03, ...,-2.79773016e-02,  3.87947909e-03, -9.58019047e-03],[ 4.50916773e-02,  4.72064392e-03, -8.82118001e-04, ...,3.87947909e-03, -2.77131303e-01, -1.79673439e-03],[-2.10122413e-02, -1.03766811e-02,  7.42603680e-03, ...,-9.58019047e-03, -1.79673439e-03, -2.83423819e-02]],[[-1.28237432e-01, -4.30365174e-02, -2.66452665e-02, ...,2.37250928e-02,  1.16385374e-02,  2.30255891e-03],[-4.30365174e-02, -7.58918083e-03,  1.13716355e-02, ...,-1.11100667e-02, -1.67378386e-02, -1.29576697e-02],[-2.66452665e-02,  1.13716355e-02,  5.76768628e-03, ...,-1.05677681e-02, -6.82289674e-03, -8.07668275e-03],...,[ 2.37250928e-02, -1.11100667e-02, -1.05677681e-02, ...,-1.14539347e-01, -7.11114704e-03, -2.89130556e-02],[ 1.16385374e-02, -1.67378386e-02, -6.82289674e-03, ...,-7.11114704e-03,  1.88275364e-01, -1.17071760e-02],[ 2.30255891e-03, -1.29576697e-02, -8.07668275e-03, ...,-2.89130556e-02, -1.17071760e-02, -1.77655951e-02]]]), array([[[-1.00892288e-01,  1.68401619e-02,  5.94680958e-03, ...,1.32470081e-02, -3.55464100e-02, -5.80109769e-03],[ 1.68401619e-02,  5.12440004e-02,  3.74259978e-02, ...,2.28063353e-02, -4.59434195e-02,  3.04559773e-03],[ 5.94680958e-03,  3.74259978e-02,  1.85461859e-02, ...,6.63725042e-03, -1.92107791e-02,  2.68634910e-03],...,[ 1.32470081e-02,  2.28063353e-02,  6.63725042e-03, ...,1.38762590e-02, -4.56568837e-02,  7.74597253e-03],[-3.55464100e-02, -4.59434195e-02, -1.92107791e-02, ...,-4.56568837e-02,  3.10902626e-01, -1.16618553e-02],[-5.80109769e-03,  3.04559773e-03,  2.68634910e-03, ...,7.74597253e-03, -1.16618553e-02, -2.75534972e-02]],[[-8.19124603e-02, -1.07770267e-02,  2.73940856e-03, ...,5.42286117e-03,  1.43148441e-02,  9.38927405e-03],[-1.07770267e-02, -1.34434798e-02, -8.07094323e-03, ...,-4.91124351e-03, -5.50744405e-03, -6.47903095e-03],[ 2.73940856e-03, -8.07094323e-03,  1.43633784e-02, ...,-3.11791569e-03, -3.20759035e-03, -3.83808653e-03],...,[ 5.42286117e-03, -4.91124351e-03, -3.11791569e-03, ...,-7.87596527e-02, -1.74101730e-02,  1.64075188e-02],[ 1.43148441e-02, -5.50744405e-03, -3.20759035e-03, ...,-1.74101730e-02, -1.33626522e-01, -2.42559627e-02],[ 9.38927405e-03, -6.47903095e-03, -3.83808653e-03, ...,1.64075188e-02, -2.42559627e-02,  5.97394271e-02]],[[ 1.38735034e-01,  2.42364407e-02, -1.14693608e-02, ...,6.99696322e-03, -1.72904490e-02,  7.51722121e-03],[ 2.42364407e-02, -2.39629923e-02,  6.97181439e-03, ...,2.22822148e-02,  1.36613812e-02,  3.50808091e-02],[-1.14693608e-02,  6.97181439e-03,  3.59474202e-03, ...,6.09146988e-03, -5.59217986e-04,  3.53721479e-03],...,[ 6.99696322e-03,  2.22822148e-02,  6.09146988e-03, ...,1.87555406e-02,  5.20973244e-03, -8.26104068e-03],[-1.72904490e-02,  1.36613812e-02, -5.59217986e-04, ...,5.20973244e-03, -1.75241348e-01,  3.04973301e-03],[ 7.51722121e-03,  3.50808091e-02,  3.53721479e-03, ...,-8.26104068e-03,  3.04973301e-03,  1.46418256e-02]],...,[[ 3.56423927e-02, -5.54317507e-02, -3.91146242e-03, ...,1.75050321e-02, -1.85085775e-02,  7.70937834e-03],[-5.54317507e-02,  1.39482944e-02, -6.70113175e-03, ...,-6.15454045e-02,  9.39428826e-03, -1.47123014e-02],[-3.91146242e-03, -6.70113175e-03,  1.26818812e-02, ...,-5.26829692e-03,  2.15772294e-03,  2.47514340e-04],...,[ 1.75050321e-02, -6.15454045e-02, -5.26829692e-03, ...,-5.55692076e-04,  2.84333320e-02,  3.75207918e-03],[-1.85085775e-02,  9.39428826e-03,  2.15772294e-03, ...,2.84333320e-02, -1.87019548e-01,  8.06957153e-03],[ 7.70937834e-03, -1.47123014e-02,  2.47514340e-04, ...,3.75207918e-03,  8.06957153e-03, -2.07337395e-02]],[[-8.84126066e-02, -1.82736920e-02,  5.65054043e-03, ...,-2.64967036e-02, -4.50916773e-02,  2.10122413e-02],[-1.82736920e-02, -7.86941550e-02, -2.28788104e-03, ...,2.58770389e-03, -4.72064392e-03,  1.03766811e-02],[ 5.65054043e-03, -2.28788104e-03,  1.35146704e-02, ...,4.56388283e-03,  8.82118001e-04, -7.42603680e-03],...,[-2.64967036e-02,  2.58770389e-03,  4.56388283e-03, ...,2.79773016e-02, -3.87947909e-03,  9.58019047e-03],[-4.50916773e-02, -4.72064392e-03,  8.82118001e-04, ...,-3.87947909e-03,  2.77131303e-01,  1.79673439e-03],[ 2.10122413e-02,  1.03766811e-02, -7.42603680e-03, ...,9.58019047e-03,  1.79673439e-03,  2.83423819e-02]],[[ 1.28237432e-01,  4.30365174e-02,  2.66452665e-02, ...,-2.37250928e-02, -1.16385374e-02, -2.30255891e-03],[ 4.30365174e-02,  7.58918083e-03, -1.13716355e-02, ...,1.11100667e-02,  1.67378386e-02,  1.29576697e-02],[ 2.66452665e-02, -1.13716355e-02, -5.76768628e-03, ...,1.05677681e-02,  6.82289674e-03,  8.07668275e-03],...,[-2.37250928e-02,  1.11100667e-02,  1.05677681e-02, ...,1.14539347e-01,  7.11114704e-03,  2.89130556e-02],[-1.16385374e-02,  1.67378386e-02,  6.82289674e-03, ...,7.11114704e-03, -1.88275364e-01,  1.17071760e-02],[-2.30255891e-03,  1.29576697e-02,  8.07668275e-03, ...,2.89130556e-02,  1.17071760e-02,  1.77655951e-02]]])]

3、寻找函数参数正确定义

因为shap_values: numpy.array
对于单个输出解释,这是一个SHAP值的矩阵(# samples x # features)。
对于多输出解释,这是一个SHAP值矩阵的列表。

可知,当前list数据并非size-1的数组,所以,无法转为scalars类型的数据

4、最终解决办法

RandomForestClassifier()改为<lightgbm.basic.Booster object at 0x00000210CCAAF898>,经过测试,输出以下,运行成功!

model_C: <lightgbm.basic.Booster object at 0x00000269F30A5860>
LGBMC <class 'numpy.ndarray'> (295, 7, 7) [[[-2.03212277e-01  8.38473368e-02  9.27494035e-03 ...  3.76043663e-02-1.12195878e-01 -7.51591770e-03][ 8.38473368e-02  8.67422668e-04  2.27826062e-02 ...  1.51550190e-02-1.28015053e-01  1.73530157e-04][ 9.27494035e-03  2.27826062e-02  9.83802075e-02 ...  0.00000000e+00-1.22171674e-01  0.00000000e+00]...[ 3.76043663e-02  1.51550190e-02  0.00000000e+00 ... -7.48850883e-02-6.75088971e-04 -7.39881971e-04][-1.12195878e-01 -1.28015053e-01 -1.22171674e-01 ... -6.75088971e-048.18119865e-01 -7.07531214e-03][-7.51591770e-03  1.73530157e-04  0.00000000e+00 ... -7.39881971e-04-7.07531214e-03 -5.30181847e-03]][[-2.03905009e-01  1.76970856e-02  3.60372896e-03 ...  6.59590565e-023.25192369e-02  2.85055286e-03][ 1.76970856e-02  7.42271902e-03  9.11656209e-03 ... -2.63576934e-02-1.41990904e-02 -4.81719902e-03][ 3.60372896e-03  9.11656209e-03  4.88673814e-02 ...  0.00000000e+006.82874328e-03  0.00000000e+00]...[ 6.59590565e-02 -2.63576934e-02  0.00000000e+00 ... -8.03527385e-02-2.39716159e-02 -1.06731256e-03][ 3.25192369e-02 -1.41990904e-02  6.82874328e-03 ... -2.39716159e-02-3.32003213e-01 -8.00174419e-03][ 2.85055286e-03 -4.81719902e-03  0.00000000e+00 ... -1.06731256e-03-8.00174419e-03  2.47351615e-02]][[ 3.65524524e-01  1.23282110e-01 -6.94995088e-03 ...  1.08536810e-01-1.80451184e-02 -5.55932748e-03][ 1.23282110e-01 -5.94745798e-02 -6.94995088e-03 ...  3.15618035e-023.78288199e-02 -1.76019586e-03][-6.94995088e-03 -6.94995088e-03  2.85466167e-02 ...  0.00000000e+002.48014752e-03  0.00000000e+00]...[ 1.08536810e-01  3.15618035e-02  0.00000000e+00 ... -1.29775694e-014.39073931e-02  1.56505599e-03][-1.80451184e-02  3.78288199e-02  2.48014752e-03 ...  4.39073931e-02-3.65634236e-01 -7.31780875e-04][-5.55932748e-03 -1.76019586e-03  0.00000000e+00 ...  1.56505599e-03-7.31780875e-04  2.39037391e-02]]...[[ 4.63957818e-02 -1.58713899e-02  1.81106212e-03 ...  2.55113122e-02-5.77921525e-02  3.08940168e-04][-1.58713899e-02 -1.35632524e-02 -1.18515307e-02 ... -3.50505266e-021.52571779e-02 -3.73236510e-04][ 1.81106212e-03 -1.18515307e-02  3.32397672e-02 ...  0.00000000e+003.52229420e-03  0.00000000e+00]...[ 2.55113122e-02 -3.50505266e-02  0.00000000e+00 ... -9.64323297e-023.35029039e-02  1.61635537e-03][-5.77921525e-02  1.52571779e-02  3.52229420e-03 ...  3.35029039e-02-3.98187413e-01 -3.02662989e-04][ 3.08940168e-04 -3.73236510e-04  0.00000000e+00 ...  1.61635537e-03-3.02662989e-04 -9.08739780e-03]][[-1.71996993e-01 -1.47872120e-02  3.85899956e-03 ... -1.50209005e-01-2.18026430e-01  1.39766423e-02][-1.47872120e-02 -3.28965975e-01 -2.96173881e-02 ...  1.32839906e-017.62613499e-02  1.98508032e-02][ 3.85899956e-03 -2.96173881e-02  5.05960370e-02 ...  0.00000000e+00-2.96173881e-02  0.00000000e+00]...[-1.50209005e-01  1.32839906e-01  0.00000000e+00 ... -1.54809945e-01-1.33767766e-01  1.49019359e-02][-2.18026430e-01  7.62613499e-02 -2.96173881e-02 ... -1.33767766e-016.61193249e-01 -3.50387426e-02][ 1.39766423e-02  1.98508032e-02  0.00000000e+00 ...  1.49019359e-02-3.50387426e-02  3.15684010e-02]][[ 3.71525973e-01  1.15451908e-01 -6.94995088e-03 ...  9.02379792e-02-2.25047248e-02 -5.55932748e-03][ 1.15451908e-01 -5.05320365e-02 -6.94995088e-03 ...  1.02980057e-023.28772676e-02 -1.76019586e-03][-6.94995088e-03 -6.94995088e-03  2.85466167e-02 ...  0.00000000e+002.48014752e-03  0.00000000e+00]...[ 9.02379792e-02  1.02980057e-02  0.00000000e+00 ... -1.94072290e-011.63458574e-02  1.56505599e-03][-2.25047248e-02  3.28772676e-02  2.48014752e-03 ...  1.63458574e-02-3.58855532e-01 -7.31780875e-04][-5.55932748e-03 -1.76019586e-03  0.00000000e+00 ...  1.56505599e-03-7.31780875e-04  2.39037391e-02]]]

成功解决TypeError: only size-1 arrays can be converted to Python scalars相关推荐

  1. 成功解决TypeError: only integer scalar arrays can be converted to a scalar index

    成功解决TypeError: only integer scalar arrays can be converted to a scalar index 目录 解决问题 解决思路 解决方法 解决问题 ...

  2. TypeError: only size-1 arrays can be converted to Python scalars

    正在愉快写代码的我 ??????????? 源代码也很简单 之后可以解决,比如 再比如: 但是那样究竟为什么不对呢? plt.bar(x = x,height=data,width=0.8,align ...

  3. 自学Python问题记录3:only size-1 arrays can be converted to Python scalars

    报错情况 only size-1 arrays can be converted to Python scalars/仅一维数据可以转换为Python标量 原因及解决方法 ax.bar(theta, ...

  4. TypeError系列之:TypeError: only size-1 arrays can be converted to Python scalars

    这样一个错误是一个类型错误,翻译过来就是, 只有维度是1的数组可以被转换成Python标量. 出现这种问题的原因会很多,非常具体,但根本原因是维度错误!! 所以各位看官要查询出错位置,看看赋值的数据( ...

  5. [python]TypeError: only size-1 arrays can be converted to Python scalars

    当在代码中同时import numpy库和math库时,在进行sin.exp等运算时需要使用 np.exp()或者 np.sin(),否则就会报这个错误. # -*- coding: utf-8 -* ...

  6. 使用math.sin时报错only size-1 arrays can be converted to Python scalar

    代码: import numpy as np x = np.linspace(0,1,6) def f(x):return math.sin(x) y = f(x) 报错: only size-1 a ...

  7. 成功解决TypeError: ‘tuple‘ object is not callable

    成功解决TypeError: 'tuple' object is not callable 目录 解决问题 解决思路 解决方法 解决问题 TypeError: 'tuple' object is no ...

  8. 成功解决TypeError: data type ‘category‘ not understood

    成功解决TypeError: data type 'category' not understood 目录 解决问题 解决思路 解决方法 解决问题 TypeError: data type 'cate ...

  9. 成功解决TypeError: ‘str‘ object is not callable

    成功解决TypeError: 'str' object is not callable 目录 解决问题 解决思路 解决方法 解决问题 TypeError: 'st

  10. 成功解决TypeError: read_excel() got an unexpected keyword argument ‘parse_cols or ‘sheetname‘

    成功解决TypeError: read_excel() got an unexpected keyword argument 'parse_cols' TypeError: read_excel() ...

最新文章

  1. 每日一皮:一个悲伤的事实,元
  2. zip的用法python_Python学习之zip函数的用法
  3. mysql workbench建表时PK,NN,UQ,BIN,UN,ZF,AI
  4. 机器学习模型评估标准选择循环图
  5. 第8章例题 6-4 输入年份和天数,输出对应的年、月、日
  6. TransCenter解读
  7. 硬件?软件?视频会议系统中两者有何区别?
  8. android webview 太大,Android应用开发之Android WebView加载图片显示过大的处理教程(代码教程)...
  9. Python学习总结(4)——运算符
  10. Problem D: 字符构成的图形
  11. python average函数怎么用,Python Numpy MaskedArray.average()用法及代码示例
  12. JavaWeb-简析MVC三层架构
  13. 为此计算机所有用户安装加载项,此网站需要运行以下加载项……如果您信任该网站和该加载项并允许运行该加载项...
  14. mysql表id的数据类型是_MySQL表中的数据类型
  15. Python读取CSV文件画折线图
  16. GoogleEarth--全球卫星地图浏览
  17. Web3.0与数字时尚,该如何落地?
  18. 计算机怎么剪切音乐然后合在一起,电脑上怎么剪切、合并音乐
  19. 熬夜读完这份高分宝典,四面字节之后成功拿下
  20. html图片自动切换代码,急哦~!如何实现网页中的图片自动变换?

热门文章

  1. Java代码计算2019新个税
  2. 路由器和交换机的原理
  3. 5773. 插入后的最大值
  4. stlink固件版本低,但升级失败的解决办法
  5. bzoj 4816: 洛谷 P3704: [SDOI2017]数字表格
  6. 古琴入门-古琴十大名曲-古琴教学——唐畅古琴
  7. python均线斜率_一根20日均线闯天下? ——量化回测“压箱底指标”
  8. 我模仿了一个自助装机的页面,可是有一个功能一直实现不了。请求高手帮我看看。
  9. 论运营型CRM和分析型CRM
  10. 写c语言win7还是win10好,做设计系统用WIN7还是WIN10?