How to calculate Shapley values of the constructed classification model from the whole dataset, not a query point ?
5 views (last 30 days)
Show older comments
I have created a ensemble machine learning model using the AdaBoost and Tree method. And I want to calculate the average shapley value of the most important features of the whole dataset, not a query point. Here's my code:
blackbox=fitensemble(P_train_smote,P_train_label,'AdaBoostM1',100,'Tree')
queryPoint=P_train_smote(1:end,:)
explainer = shapley(blackbox,P_train_smote,"QueryPoint",queryPoint,'Method','conditional-kernel');
explainer.ShapleyValues
ShapleyValues=table(explainer.ShapleyValues)
plot(explainer)
I got the wrong code like:
Error using shapley
'QueryPoint' value is invalid. The input should be row vector.
Is there a way to obtain the whole Shapley values from the whole dataset? Please help me!
0 Comments
Answers (1)
Drew
on 19 Apr 2023
The short answer is to loop over the query points, then take the mean(abs(shapley_value)) along the appropriate dimension.
You can see examples of this in other answers:
0 Comments
See Also
Categories
Find more on Classification in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!