Shapley Value for Feature Selection in Matlab

17 visualizzazioni (ultimi 30 giorni)
David Jimenez-Grande
David Jimenez-Grande il 13 Apr 2020
Risposto: Drew il 11 Gen 2024
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 Commenti
Ali Asghar
Ali Asghar il 21 Apr 2021
I am looking for solution of same problem. Please let me know if any know it.
Thanks

Accedi per commentare.

Risposte (1)

Drew
Drew il 11 Gen 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.

Prodotti


Release

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by