How to use Shapley function for an already fitted regression model?
조회 수: 9 (최근 30일)
이전 댓글 표시
Say, I have a regression model:
Y = 1.5 * (V1)^3 * (V2)^-5 * (V2)^10.3
where, V1, V2 and V3 are the model features/predictors and Y is the dependant variable.
I also have the data used to fit/train that model, say "Data" which is a 100x3 matrix
How can I use the Shapley function in that case? since as I understand this function can only be used on model objects generated by the Statistics and Machine Learning Toolbox.
댓글 수: 0
답변 (2개)
Drew
2023년 4월 18일
편집: Drew
2023년 4월 18일
You can calculate Shapley values for an arbitrary model by specifying the model prediction function with a function handle, and passing that function handle to the MATLAB shapley function. See the example "Specify Blackbox Model Using Function Handle" on the shapley doc page
댓글 수: 0
the cyclist
2022년 12월 1일
To my knowledge, there is no way to use MATLAB's shapley function other than with a blackbox model object as the input. The possible input types are in the documentation here.
It is unclear to me how you have the pre-existing regression fit, without the MATLAB object. It seems to me that the simplest thing to do would be to simply replicate the fit in MATLAB. That seems straightforward, but perhaps you have reasons not to do that. [I'm guessing that you don't have the ML & Stats Toolbox for doing the fitting, but then you also don't have access to the shapley() function.]
A second possiblity would be for you to search the File Exchange for user-contributed functions that calculate Shapley values.
A third -- and admittedly annoying -- possibility would be for you to code the Shapley value from scratch. The formula is in the documentation here, and of course elsewhere.
참고 항목
카테고리
Help Center 및 File Exchange에서 Gaussian Process Regression에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!