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


    成功解决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问题,

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

    2、测试bug

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

    1. model_C: RandomForestClassifier()
    2. RFC 'list'> 2
    3. [array([[[ 1.00892288e-01, -1.68401619e-02, -5.94680958e-03, ...,
    4. -1.32470081e-02, 3.55464100e-02, 5.80109769e-03],
    5. [-1.68401619e-02, -5.12440004e-02, -3.74259978e-02, ...,
    6. -2.28063353e-02, 4.59434195e-02, -3.04559773e-03],
    7. [-5.94680958e-03, -3.74259978e-02, -1.85461859e-02, ...,
    8. -6.63725042e-03, 1.92107791e-02, -2.68634910e-03],
    9. ...,
    10. [-1.32470081e-02, -2.28063353e-02, -6.63725042e-03, ...,
    11. -1.38762590e-02, 4.56568837e-02, -7.74597253e-03],
    12. [ 3.55464100e-02, 4.59434195e-02, 1.92107791e-02, ...,
    13. 4.56568837e-02, -3.10902626e-01, 1.16618553e-02],
    14. [ 5.80109769e-03, -3.04559773e-03, -2.68634910e-03, ...,
    15. -7.74597253e-03, 1.16618553e-02, 2.75534972e-02]],
    16. [[ 8.19124603e-02, 1.07770267e-02, -2.73940856e-03, ...,
    17. -5.42286117e-03, -1.43148441e-02, -9.38927405e-03],
    18. [ 1.07770267e-02, 1.34434798e-02, 8.07094323e-03, ...,
    19. 4.91124351e-03, 5.50744405e-03, 6.47903095e-03],
    20. [-2.73940856e-03, 8.07094323e-03, -1.43633784e-02, ...,
    21. 3.11791569e-03, 3.20759035e-03, 3.83808653e-03],
    22. ...,
    23. [-5.42286117e-03, 4.91124351e-03, 3.11791569e-03, ...,
    24. 7.87596527e-02, 1.74101730e-02, -1.64075188e-02],
    25. [-1.43148441e-02, 5.50744405e-03, 3.20759035e-03, ...,
    26. 1.74101730e-02, 1.33626522e-01, 2.42559627e-02],
    27. [-9.38927405e-03, 6.47903095e-03, 3.83808653e-03, ...,
    28. -1.64075188e-02, 2.42559627e-02, -5.97394271e-02]],
    29. [[-1.38735034e-01, -2.42364407e-02, 1.14693608e-02, ...,
    30. -6.99696322e-03, 1.72904490e-02, -7.51722121e-03],
    31. [-2.42364407e-02, 2.39629923e-02, -6.97181439e-03, ...,
    32. -2.22822148e-02, -1.36613812e-02, -3.50808091e-02],
    33. [ 1.14693608e-02, -6.97181439e-03, -3.59474202e-03, ...,
    34. -6.09146988e-03, 5.59217986e-04, -3.53721479e-03],
    35. ...,
    36. [-6.99696322e-03, -2.22822148e-02, -6.09146988e-03, ...,
    37. -1.87555406e-02, -5.20973244e-03, 8.26104068e-03],
    38. [ 1.72904490e-02, -1.36613812e-02, 5.59217986e-04, ...,
    39. -5.20973244e-03, 1.75241348e-01, -3.04973301e-03],
    40. [-7.51722121e-03, -3.50808091e-02, -3.53721479e-03, ...,
    41. 8.26104068e-03, -3.04973301e-03, -1.46418256e-02]],
    42. ...,
    43. [[-3.56423927e-02, 5.54317507e-02, 3.91146242e-03, ...,
    44. -1.75050321e-02, 1.85085775e-02, -7.70937834e-03],
    45. [ 5.54317507e-02, -1.39482944e-02, 6.70113175e-03, ...,
    46. 6.15454045e-02, -9.39428826e-03, 1.47123014e-02],
    47. [ 3.91146242e-03, 6.70113175e-03, -1.26818812e-02, ...,
    48. 5.26829692e-03, -2.15772294e-03, -2.47514340e-04],
    49. ...,
    50. [-1.75050321e-02, 6.15454045e-02, 5.26829692e-03, ...,
    51. 5.55692076e-04, -2.84333320e-02, -3.75207918e-03],
    52. [ 1.85085775e-02, -9.39428826e-03, -2.15772294e-03, ...,
    53. -2.84333320e-02, 1.87019548e-01, -8.06957153e-03],
    54. [-7.70937834e-03, 1.47123014e-02, -2.47514340e-04, ...,
    55. -3.75207918e-03, -8.06957153e-03, 2.07337395e-02]],
    56. [[ 8.84126066e-02, 1.82736920e-02, -5.65054043e-03, ...,
    57. 2.64967036e-02, 4.50916773e-02, -2.10122413e-02],
    58. [ 1.82736920e-02, 7.86941550e-02, 2.28788104e-03, ...,
    59. -2.58770389e-03, 4.72064392e-03, -1.03766811e-02],
    60. [-5.65054043e-03, 2.28788104e-03, -1.35146704e-02, ...,
    61. -4.56388283e-03, -8.82118001e-04, 7.42603680e-03],
    62. ...,
    63. [ 2.64967036e-02, -2.58770389e-03, -4.56388283e-03, ...,
    64. -2.79773016e-02, 3.87947909e-03, -9.58019047e-03],
    65. [ 4.50916773e-02, 4.72064392e-03, -8.82118001e-04, ...,
    66. 3.87947909e-03, -2.77131303e-01, -1.79673439e-03],
    67. [-2.10122413e-02, -1.03766811e-02, 7.42603680e-03, ...,
    68. -9.58019047e-03, -1.79673439e-03, -2.83423819e-02]],
    69. [[-1.28237432e-01, -4.30365174e-02, -2.66452665e-02, ...,
    70. 2.37250928e-02, 1.16385374e-02, 2.30255891e-03],
    71. [-4.30365174e-02, -7.58918083e-03, 1.13716355e-02, ...,
    72. -1.11100667e-02, -1.67378386e-02, -1.29576697e-02],
    73. [-2.66452665e-02, 1.13716355e-02, 5.76768628e-03, ...,
    74. -1.05677681e-02, -6.82289674e-03, -8.07668275e-03],
    75. ...,
    76. [ 2.37250928e-02, -1.11100667e-02, -1.05677681e-02, ...,
    77. -1.14539347e-01, -7.11114704e-03, -2.89130556e-02],
    78. [ 1.16385374e-02, -1.67378386e-02, -6.82289674e-03, ...,
    79. -7.11114704e-03, 1.88275364e-01, -1.17071760e-02],
    80. [ 2.30255891e-03, -1.29576697e-02, -8.07668275e-03, ...,
    81. -2.89130556e-02, -1.17071760e-02, -1.77655951e-02]]]), array([[[-1.00892288e-01, 1.68401619e-02, 5.94680958e-03, ...,
    82. 1.32470081e-02, -3.55464100e-02, -5.80109769e-03],
    83. [ 1.68401619e-02, 5.12440004e-02, 3.74259978e-02, ...,
    84. 2.28063353e-02, -4.59434195e-02, 3.04559773e-03],
    85. [ 5.94680958e-03, 3.74259978e-02, 1.85461859e-02, ...,
    86. 6.63725042e-03, -1.92107791e-02, 2.68634910e-03],
    87. ...,
    88. [ 1.32470081e-02, 2.28063353e-02, 6.63725042e-03, ...,
    89. 1.38762590e-02, -4.56568837e-02, 7.74597253e-03],
    90. [-3.55464100e-02, -4.59434195e-02, -1.92107791e-02, ...,
    91. -4.56568837e-02, 3.10902626e-01, -1.16618553e-02],
    92. [-5.80109769e-03, 3.04559773e-03, 2.68634910e-03, ...,
    93. 7.74597253e-03, -1.16618553e-02, -2.75534972e-02]],
    94. [[-8.19124603e-02, -1.07770267e-02, 2.73940856e-03, ...,
    95. 5.42286117e-03, 1.43148441e-02, 9.38927405e-03],
    96. [-1.07770267e-02, -1.34434798e-02, -8.07094323e-03, ...,
    97. -4.91124351e-03, -5.50744405e-03, -6.47903095e-03],
    98. [ 2.73940856e-03, -8.07094323e-03, 1.43633784e-02, ...,
    99. -3.11791569e-03, -3.20759035e-03, -3.83808653e-03],
    100. ...,
    101. [ 5.42286117e-03, -4.91124351e-03, -3.11791569e-03, ...,
    102. -7.87596527e-02, -1.74101730e-02, 1.64075188e-02],
    103. [ 1.43148441e-02, -5.50744405e-03, -3.20759035e-03, ...,
    104. -1.74101730e-02, -1.33626522e-01, -2.42559627e-02],
    105. [ 9.38927405e-03, -6.47903095e-03, -3.83808653e-03, ...,
    106. 1.64075188e-02, -2.42559627e-02, 5.97394271e-02]],
    107. [[ 1.38735034e-01, 2.42364407e-02, -1.14693608e-02, ...,
    108. 6.99696322e-03, -1.72904490e-02, 7.51722121e-03],
    109. [ 2.42364407e-02, -2.39629923e-02, 6.97181439e-03, ...,
    110. 2.22822148e-02, 1.36613812e-02, 3.50808091e-02],
    111. [-1.14693608e-02, 6.97181439e-03, 3.59474202e-03, ...,
    112. 6.09146988e-03, -5.59217986e-04, 3.53721479e-03],
    113. ...,
    114. [ 6.99696322e-03, 2.22822148e-02, 6.09146988e-03, ...,
    115. 1.87555406e-02, 5.20973244e-03, -8.26104068e-03],
    116. [-1.72904490e-02, 1.36613812e-02, -5.59217986e-04, ...,
    117. 5.20973244e-03, -1.75241348e-01, 3.04973301e-03],
    118. [ 7.51722121e-03, 3.50808091e-02, 3.53721479e-03, ...,
    119. -8.26104068e-03, 3.04973301e-03, 1.46418256e-02]],
    120. ...,
    121. [[ 3.56423927e-02, -5.54317507e-02, -3.91146242e-03, ...,
    122. 1.75050321e-02, -1.85085775e-02, 7.70937834e-03],
    123. [-5.54317507e-02, 1.39482944e-02, -6.70113175e-03, ...,
    124. -6.15454045e-02, 9.39428826e-03, -1.47123014e-02],
    125. [-3.91146242e-03, -6.70113175e-03, 1.26818812e-02, ...,
    126. -5.26829692e-03, 2.15772294e-03, 2.47514340e-04],
    127. ...,
    128. [ 1.75050321e-02, -6.15454045e-02, -5.26829692e-03, ...,
    129. -5.55692076e-04, 2.84333320e-02, 3.75207918e-03],
    130. [-1.85085775e-02, 9.39428826e-03, 2.15772294e-03, ...,
    131. 2.84333320e-02, -1.87019548e-01, 8.06957153e-03],
    132. [ 7.70937834e-03, -1.47123014e-02, 2.47514340e-04, ...,
    133. 3.75207918e-03, 8.06957153e-03, -2.07337395e-02]],
    134. [[-8.84126066e-02, -1.82736920e-02, 5.65054043e-03, ...,
    135. -2.64967036e-02, -4.50916773e-02, 2.10122413e-02],
    136. [-1.82736920e-02, -7.86941550e-02, -2.28788104e-03, ...,
    137. 2.58770389e-03, -4.72064392e-03, 1.03766811e-02],
    138. [ 5.65054043e-03, -2.28788104e-03, 1.35146704e-02, ...,
    139. 4.56388283e-03, 8.82118001e-04, -7.42603680e-03],
    140. ...,
    141. [-2.64967036e-02, 2.58770389e-03, 4.56388283e-03, ...,
    142. 2.79773016e-02, -3.87947909e-03, 9.58019047e-03],
    143. [-4.50916773e-02, -4.72064392e-03, 8.82118001e-04, ...,
    144. -3.87947909e-03, 2.77131303e-01, 1.79673439e-03],
    145. [ 2.10122413e-02, 1.03766811e-02, -7.42603680e-03, ...,
    146. 9.58019047e-03, 1.79673439e-03, 2.83423819e-02]],
    147. [[ 1.28237432e-01, 4.30365174e-02, 2.66452665e-02, ...,
    148. -2.37250928e-02, -1.16385374e-02, -2.30255891e-03],
    149. [ 4.30365174e-02, 7.58918083e-03, -1.13716355e-02, ...,
    150. 1.11100667e-02, 1.67378386e-02, 1.29576697e-02],
    151. [ 2.66452665e-02, -1.13716355e-02, -5.76768628e-03, ...,
    152. 1.05677681e-02, 6.82289674e-03, 8.07668275e-03],
    153. ...,
    154. [-2.37250928e-02, 1.11100667e-02, 1.05677681e-02, ...,
    155. 1.14539347e-01, 7.11114704e-03, 2.89130556e-02],
    156. [-1.16385374e-02, 1.67378386e-02, 6.82289674e-03, ...,
    157. 7.11114704e-03, -1.88275364e-01, 1.17071760e-02],
    158. [-2.30255891e-03, 1.29576697e-02, 8.07668275e-03, ...,
    159. 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()改为,经过测试,输出以下,运行成功!

    1. model_C: 0x00000269F30A5860>
    2. LGBMC 'numpy.ndarray'> (295, 7, 7)
    3. [[[-2.03212277e-01 8.38473368e-02 9.27494035e-03 ... 3.76043663e-02
    4. -1.12195878e-01 -7.51591770e-03]
    5. [ 8.38473368e-02 8.67422668e-04 2.27826062e-02 ... 1.51550190e-02
    6. -1.28015053e-01 1.73530157e-04]
    7. [ 9.27494035e-03 2.27826062e-02 9.83802075e-02 ... 0.00000000e+00
    8. -1.22171674e-01 0.00000000e+00]
    9. ...
    10. [ 3.76043663e-02 1.51550190e-02 0.00000000e+00 ... -7.48850883e-02
    11. -6.75088971e-04 -7.39881971e-04]
    12. [-1.12195878e-01 -1.28015053e-01 -1.22171674e-01 ... -6.75088971e-04
    13. 8.18119865e-01 -7.07531214e-03]
    14. [-7.51591770e-03 1.73530157e-04 0.00000000e+00 ... -7.39881971e-04
    15. -7.07531214e-03 -5.30181847e-03]]
    16. [[-2.03905009e-01 1.76970856e-02 3.60372896e-03 ... 6.59590565e-02
    17. 3.25192369e-02 2.85055286e-03]
    18. [ 1.76970856e-02 7.42271902e-03 9.11656209e-03 ... -2.63576934e-02
    19. -1.41990904e-02 -4.81719902e-03]
    20. [ 3.60372896e-03 9.11656209e-03 4.88673814e-02 ... 0.00000000e+00
    21. 6.82874328e-03 0.00000000e+00]
    22. ...
    23. [ 6.59590565e-02 -2.63576934e-02 0.00000000e+00 ... -8.03527385e-02
    24. -2.39716159e-02 -1.06731256e-03]
    25. [ 3.25192369e-02 -1.41990904e-02 6.82874328e-03 ... -2.39716159e-02
    26. -3.32003213e-01 -8.00174419e-03]
    27. [ 2.85055286e-03 -4.81719902e-03 0.00000000e+00 ... -1.06731256e-03
    28. -8.00174419e-03 2.47351615e-02]]
    29. [[ 3.65524524e-01 1.23282110e-01 -6.94995088e-03 ... 1.08536810e-01
    30. -1.80451184e-02 -5.55932748e-03]
    31. [ 1.23282110e-01 -5.94745798e-02 -6.94995088e-03 ... 3.15618035e-02
    32. 3.78288199e-02 -1.76019586e-03]
    33. [-6.94995088e-03 -6.94995088e-03 2.85466167e-02 ... 0.00000000e+00
    34. 2.48014752e-03 0.00000000e+00]
    35. ...
    36. [ 1.08536810e-01 3.15618035e-02 0.00000000e+00 ... -1.29775694e-01
    37. 4.39073931e-02 1.56505599e-03]
    38. [-1.80451184e-02 3.78288199e-02 2.48014752e-03 ... 4.39073931e-02
    39. -3.65634236e-01 -7.31780875e-04]
    40. [-5.55932748e-03 -1.76019586e-03 0.00000000e+00 ... 1.56505599e-03
    41. -7.31780875e-04 2.39037391e-02]]
    42. ...
    43. [[ 4.63957818e-02 -1.58713899e-02 1.81106212e-03 ... 2.55113122e-02
    44. -5.77921525e-02 3.08940168e-04]
    45. [-1.58713899e-02 -1.35632524e-02 -1.18515307e-02 ... -3.50505266e-02
    46. 1.52571779e-02 -3.73236510e-04]
    47. [ 1.81106212e-03 -1.18515307e-02 3.32397672e-02 ... 0.00000000e+00
    48. 3.52229420e-03 0.00000000e+00]
    49. ...
    50. [ 2.55113122e-02 -3.50505266e-02 0.00000000e+00 ... -9.64323297e-02
    51. 3.35029039e-02 1.61635537e-03]
    52. [-5.77921525e-02 1.52571779e-02 3.52229420e-03 ... 3.35029039e-02
    53. -3.98187413e-01 -3.02662989e-04]
    54. [ 3.08940168e-04 -3.73236510e-04 0.00000000e+00 ... 1.61635537e-03
    55. -3.02662989e-04 -9.08739780e-03]]
    56. [[-1.71996993e-01 -1.47872120e-02 3.85899956e-03 ... -1.50209005e-01
    57. -2.18026430e-01 1.39766423e-02]
    58. [-1.47872120e-02 -3.28965975e-01 -2.96173881e-02 ... 1.32839906e-01
    59. 7.62613499e-02 1.98508032e-02]
    60. [ 3.85899956e-03 -2.96173881e-02 5.05960370e-02 ... 0.00000000e+00
    61. -2.96173881e-02 0.00000000e+00]
    62. ...
    63. [-1.50209005e-01 1.32839906e-01 0.00000000e+00 ... -1.54809945e-01
    64. -1.33767766e-01 1.49019359e-02]
    65. [-2.18026430e-01 7.62613499e-02 -2.96173881e-02 ... -1.33767766e-01
    66. 6.61193249e-01 -3.50387426e-02]
    67. [ 1.39766423e-02 1.98508032e-02 0.00000000e+00 ... 1.49019359e-02
    68. -3.50387426e-02 3.15684010e-02]]
    69. [[ 3.71525973e-01 1.15451908e-01 -6.94995088e-03 ... 9.02379792e-02
    70. -2.25047248e-02 -5.55932748e-03]
    71. [ 1.15451908e-01 -5.05320365e-02 -6.94995088e-03 ... 1.02980057e-02
    72. 3.28772676e-02 -1.76019586e-03]
    73. [-6.94995088e-03 -6.94995088e-03 2.85466167e-02 ... 0.00000000e+00
    74. 2.48014752e-03 0.00000000e+00]
    75. ...
    76. [ 9.02379792e-02 1.02980057e-02 0.00000000e+00 ... -1.94072290e-01
    77. 1.63458574e-02 1.56505599e-03]
    78. [-2.25047248e-02 3.28772676e-02 2.48014752e-03 ... 1.63458574e-02
    79. -3.58855532e-01 -7.31780875e-04]
    80. [-5.55932748e-03 -1.76019586e-03 0.00000000e+00 ... 1.56505599e-03
    81. -7.31780875e-04 2.39037391e-02]]]

  • 相关阅读:
    Android Binder通信机制学习(二)
    基于微信小程序的学生购电系统设计与实现-计算机毕业设计源码+LW文档
    OS操作系统——文件管理(测试习题)
    如何理解P2P网络?
    CVE-2023-36845:Juniper Networks Junos OS EX远程命令执行漏洞
    单机运行多个独立浏览器
    合约广告平台架构演进实践
    大数据必学Java基础(六十):集合补充
    Flutter中的多线程如何使用
    ES6知识点总结——学习网站及环境搭建
  • 原文地址:https://blog.csdn.net/qq_41185868/article/details/126106520