mean isn't calculated over variable but path orders (pd.concat uses integer index to join, not variable)
|
if path is not None: |
|
if isinstance(path, str) and path == 'average': |
|
# let's calculate an average attribution |
|
extracted_contributions = [None] * B |
|
for i in range(B): |
|
extracted_contributions[i] = result[i].sort_values(['label', 'variable']).loc[:, 'contribution'] |
|
|
|
extracted_contributions = pd.concat(extracted_contributions, axis=1) |
|
result_average = deepcopy(result[0]) |
|
result_average = result_average.sort_values(['label', 'variable']) |
|
result_average['contribution'] = extracted_contributions.mean(axis=1) |
|
result_average['B'] = 0 |
|
result_average['sign'] = np.sign(result_average['contribution']) |
|
|
|
result.append(result_average) |
meanisn't calculated overvariablebut path orders (pd.concatuses integer index to join, notvariable)DALEX/python/dalex/dalex/instance_level/_shap/utils.py
Lines 36 to 50 in b0ca23c