Shapley Value for Feature Selection in Matlab

13 views (last 30 days)
Hi everyone,
I would like to ask you all if someone knows how to implement in Matlab the Shapley value algorithm to EMG features, just to see the weights of each feature.
I found some Add-ons about Shapley but all of them are focus on game theory obviosuly. So, someone know how to implement it for a EMG dataset from different subjects to get an outcome of one shapley value for each feature (something similar to NCA: https://es.mathworks.com/help/stats/neighborhood-component-analysis.html)?
Thanks in advance,
David
  2 Comments
Ali Asghar
Ali Asghar on 21 Apr 2021
I am looking for solution of same problem. Please let me know if any know it.
Thanks

Sign in to comment.

Answers (1)

Drew
Drew on 11 Jan 2024
This can be done in 21a or higher using the shapley function https://www.mathworks.com/help/stats/shapley.html by looping over the query points to calculate shapley values and then creating the appropriate plot from the shapley values.
In 24a, this got easier with the addition of multi-query-point shapley and the "mean(abs(shap))" bar plot (also known as "Shapley Importance plot") for multi-query-point shapley objects. With these changes, a single call to shapley can be used to calculate the shapley values for many query points, and the object function "plot" can be used to create the mean(abs(shap)) Shapley Importance bar plot. See the release notes https://www.mathworks.com/help/releases/R2024a/stats/release-notes.html.
There is an example of creating a shapley importance bar plot on the fisher iris dataset using R2024a in the answer at https://www.mathworks.com/matlabcentral/answers/1578665-how-can-i-get-a-shapley-summary-plot
If this answer helps you, please remember to accept the answer.

Products


Release

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!