Я предполагаю, что вы уже знакомы с теоретическими аспектами работы ценностей SHAPely. Я нашел эту и эту ссылку полезной для этой цели.
Приходя к выводу:
array([[-40.0032057 , -23.7588602 , 33.24345503],
[-22.61050757, -15.27355298, 21.37079252],
[ 3.47853963, -6.78824577, 15.43446126],
[-13.9141585 , 18.66767587, -2.3745325 ],
[ 73.04933215, 27.15298308, -67.67417631]])
Чтобы правильно его интерпретировать, позвольте мне сначала сгенерировать прогнозы, используя вашу модель как:
predictions = model.predict(X)
print (predictions)
>>>
[26.28138914 40.28673197 68.92475512 59.17898486 89.32813891]
У нас есть 3 особенности в данных x1,x2,x3
. Для каждой точки данных мы получаем набор из 3 фигурных значений. Эти значения показывают, как каждая из 3 функций влияет на прогноз линейно. Теперь рассмотрим первое значение прогнозирования, т.е. 26,28. Соответствующие значения SHApely: [-40.0032057 , -23.7588602 , 33.24345503]
Эти значения показывают, какое влияние x1 оказывает на прогноз (-40,003), какое влияние оказывает x2 (-23,758) и x3 (33,243). Таким образом, мы можем сделать вывод, что x1 и x2 отрицательно влияют на прогноз, x3 оказывает положительное влияние.
Для дальнейшей проверки этого получим ожидаемое значение как:
print (explainer.expected_value)
>>> 56.8
Это ожидаемое значение - не что иное, как среднее из предсказаний
print (np.mean(predictions))
>>> 56.8
Это указывает на то, что без знания значений x1, x2, x3 мы бы угадали 56.8. Значения SHAPely [-40.0032057 , -23.7588602 , 33.24345503]
pu sh это предположение как: 56.8 + (-40.0032057) + (-23.7588602) + 33.24345503 = 26.28138914
, что наш окончательный прогноз. Таким образом, для повторения итераций значения SHAPely представляют , насколько каждая из функций линейно влияет на прогноз вдали от среднего значения (предположение)
. Далее вы можете проверить:
print (shap_values.sum(1) + explainer.expected_value)
>>> [26.28138914 40.28673197 68.92475512 59.17898486 89.32813891]
Здесь я беру значения формы для каждой строки и добавляю их к среднему значению, что приводит к прогнозу для этой строки. Это так же, как наши прогнозы. Я надеюсь, что это помогло вам получить интуитивное понимание того, как интерпретировать значения SHAPely