计算化学公社

标题: Linux下利用SHAP对机器学习模型进行合理解释 [打印本页]

作者
Author:
冰释之川    时间: 2022-7-4 21:23
标题: Linux下利用SHAP对机器学习模型进行合理解释
本帖最后由 冰释之川 于 2022-12-8 13:54 编辑

前文参见:Linux下Scikit-learn机器学习实例脚本》(http://bbs.keinsci.com/thread-30547-1-1.html

好不容易用Scikit-learn对某个数据集进行机器学习,并且得到了不错的模型,但如果只是看看MSE或者R方等度量指标,抑或是对新样本进行预测,那总感觉缺点啥……
对的,缺的就是对ML模型进行“合理化”分析。

虽然ML在很多人眼里就是个大黑箱,似乎很难对黑箱进行剖析,但是有了SHAP之后,一切都变了,都变了,变了……

本文利用SHAP库编写了一个懒人脚本,对Scikit-learn库中常用ML模型进行了剖析。

不知道SHAP是啥的童鞋,请访问SHAP官网https://shap.readthedocs.io/en/latest/index.html
不知道怎么装SHAP的同学,参见SHAP官网


(, 下载次数 Times of downloads: 196)

以下是基于1502_LYL.csv数据集利用RFR模型预测CUTLOSS(已经“腌制”成CUTLOSS_RFR_best.pkl文件)输出变量的SHAP分析图:
(, 下载次数 Times of downloads: 188)
(, 下载次数 Times of downloads: 190)
(, 下载次数 Times of downloads: 194)
(, 下载次数 Times of downloads: 192)
(, 下载次数 Times of downloads: 197)
(, 下载次数 Times of downloads: 193)
(, 下载次数 Times of downloads: 197)

懒人脚本(Model_explanation.py)下载地址
(, 下载次数 Times of downloads: 107)
(, 下载次数 Times of downloads: 83)
代码什么的没啥好说的吧?女票就对了~






作者
Author:
ABB    时间: 2022-8-9 10:15
冰冰大佬 为什么我读取模型的时候 报错
AttributeError: 'RandomForestRegressor' object has no attribute '_final_estimator'
作者
Author:
冰释之川    时间: 2022-8-9 13:24
ABB 发表于 2022-8-9 10:15
冰冰大佬 为什么我读取模型的时候 报错
AttributeError: 'RandomForestRegressor' object has no attribut ...

我这边*.pkl保存的是使用pipeline流水线给出最佳模型。
前文参见:《Linux下Scikit-learn机器学习实例脚本》(http://bbs.keinsci.com/thread-30547-1-1.html
作者
Author:
sjsjsj25915302    时间: 2022-8-12 16:49
看过交叉的综述,机器学习只会找到对应关系,无法给出因果关系的解释。ML即使有SHAP这种工具还是在解释性上太弱。
作者
Author:
阿甘    时间: 2022-8-15 11:42
sjsjsj25915302 发表于 2022-8-12 16:49
看过交叉的综述,机器学习只会找到对应关系,无法给出因果关系的解释。ML即使有SHAP这种工具还是在解释性上 ...

跪求这个综述的doi~
作者
Author:
杲杲出日    时间: 2022-9-13 21:57
大佬,我想请教一下,使用shap库对模型进行解释时,使用的是整个数据集,还是训练集、测试集?
作者
Author:
冰释之川    时间: 2022-9-14 08:33
杲杲出日 发表于 2022-9-13 21:57
大佬,我想请教一下,使用shap库对模型进行解释时,使用的是整个数据集,还是训练集、测试集?

看你需求,没有硬性规定一定得是训练集、测试集或者整个数据集。如果你只想对测试集里的数据进行解释,那就用测试集的数据,如果你想考察整个数据集,就选择整个数据集
作者
Author:
杲杲出日    时间: 2022-9-14 09:16
冰释之川 发表于 2022-9-14 08:33
看你需求,没有硬性规定一定得是训练集、测试集或者整个数据集。如果你只想对测试集里的数据进行解释,那 ...

明白了,谢谢大佬




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3