我有包含大量x变量的数据,这些变量主要是分类/标称的,而我的目标变量是一个多类标签。我能够围绕几个模型来预测多类变量,并比较每个变量的执行情况。我有训练和测试数据。培训和测试数据都给了我很好的结果。
现在,我试图找出“为什么”该模型预测了某些Y变量?表示是否有天气数据:X变量:城市,州,邮政编码,温度,年份; Y变量:雨,太阳,阴天,雪。我想找出模型为什么要预测的“原因”:分别是降雨,阳光,多云或下雪。我使用了多名词,决策树等分类算法。
这可能是一个广泛的问题,但我需要一个可以开始研究的地方。我可以预测“什么”,但看不到“为什么”被预测为雨,日,多云或下雪标签。基本上,我试图找到导致预测变量的变量之间的链接。
到目前为止,我考虑过使用相关矩阵,主成分分析(在模型构建过程中发生)...至少是要看看哪些是好的预测变量,而哪些不是。有没有办法弄清楚“为什么”因素?
谢谢你!
答案 0 :(得分:5)
模型的可解释性是当前研究的一个活跃而又炙手可热的领域(认为是圣杯之类的东西),最近提出来的原因不仅仅在于(通常是巨大的)深度学习模型在各种任务中的成功,加上算法公平性和问责制的必要性...
除了深入的理论研究外,最近还存在一些实用级别的工具箱和库,既用于神经网络,也用于其他通用ML模型。以下是部分清单,可以说应该使您忙一段时间:
Google提供的假设分析工具,这是开源TensorBoard Web应用程序的一项全新功能(2018年9月),使用户无需编写代码即可分析ML模型(project page,{{ 3}})
用于神经网络(blog post,paper,project page,code)的分层智能关联传播(LRP)工具箱
FairML:Cloudera Fast Forward Labs(TF Slim wrapper,blog post,paper)的审核黑匣子预测模型
R port和Black Box Auditing(作者的Certifying and Removing Disparate Impact)
Geoff Hinton最近发表的论文(2017年11月),Python code,具有独立的Distilling a Neural Network Into a Soft Decision Tree
SHAP:解释模型预测的统一方法(PyTorch implementation,作者的paper,Python code)
Lucid,Google研究神经网络可解释性的基础架构和工具的集合(code;论文:code,Feature Visualization)
设计透明(TbD)网络(The Building Blocks of Interpretability,paper,code)
TCAV:使用概念激活向量(Google blog post,ICML 2018 paper)进行测试
Grad-CAM:通过基于梯度的本地化(Tensorflow code,作者的paper,Torch code,Tensorflow code,Keras {{ 3}})
网络解剖:由MIT CSAIL(PyTorch code,example notebook,project page)量化深度视觉表示的可解释性
GAN解剖:MIT CSAIL(Caffe code,带有论文和代码的链接)的可视化和理解生成的对抗网络
说明要修复:解释和更正DNN对象检测器预测(PyTorch port,project page)的框架
另请参阅:
A Interpretable Machine Learning,链接到R可用的几种解释工具。
由Kaggle,R code和随附的Twitter thread
......和Machine Learning Explainability回购