最近看的很多论文中都用到了Shap解释去分析机器学习模型,用来评估变量的重要性等等,于是产生了用Shap分析刚训练好的Transformer模型的想法,找了半天居然没有这方面的论文,最后认真研究了Shap库的官方文档,发现思路可行,思路分享如下
用Transformer模型对从nhanes数据库中下载的数据进行多分类,用了4层encoder和1层全连接层,之后对模型进行评估,计算测试集准确率、召回率、f1分数等指标,最后用shap解释模型,并绘制自变量重要性汇总图、单变量依赖图等8类图片。
数据说明:
源数据在“mydata.xlsx“文件中,如下所示,A列到O列是自变量(共15个自变量),第一行是变量名称,数据是从nhanes数据库中下载的,不知道含义的可以在网站中搜索(NHANES Variables (clinicalscientists.cn))。P列是结局变量,0或1或2,三分类。从网站下载的数据只有二分类,这里把一部分的1直接改成了2,强行变为多分类,所以训练集的准确率不高,替换为自己的数据集就好了。
源代码使用说明:
代码文件是“transformer做卒中分类.py“,建议用pycharm打开,运行结束后可以看到所有的图片和变量。建模流程说明如下:
第一步 导入python第三方库
首先保证你安装了下图中的库&#