数据科学的下一个「超能力」:模型可解释性
2019-03-29
很多人重视重视模型的预测能力,却忽略了模型可解释性的重要性,只知其然而不知其所以然。为什么说模型的可解释性这么重要呢?作者就 5 个方面对此进行了阐述。
模型的可解释性能够展示你的模型在学什么,并且观察模型内部比大多数人想的更有用。
在过去的 10 年间,我采访了许多数据科学家,模型的可解释性是我最喜欢的主题,我用它来区分最好的数据科学家和一般的数据科学家。
有些人认为机器学习模型是黑箱,能做出预测但无法理解;可是最好的数据科学家可以通过任何模型洞察真实世界。给出任何模型,这些数据科学家都可以轻松地回答下面的问题:
模型认为数据中最重要的特征是什么
就模型的任何单个预测结果而言,数据中的每个特征是如何影响这一预测结果的
特征之间什么样的相互作用对模型预测产生的影响最大
这些问题的答案比大多数人认为的要有意义。受此启发,我在 Kaggle 上开设了模型可解释性的微课程。无论你是通过 Kaggle 还是其他的综合性资源(比如《统计学习基础(Elements of Statistical Learning)》)进行学习,这些技术都将彻底地改变你构建、验证和部署机器学习模型的方式。
为什么这些洞察结果很有价值?
模型洞察结果的五个最重要应用是:
调试
指导特征工程
指导未来数据的收集方向
指导人类做出决策
建立信任
调试
这个世界中存在很多不可靠的、杂乱无章且具有大量噪声的数据。当你写下预处理代码时,你就添加了潜在的错误源头。加上目标泄漏的可能性,在真实的数据科学项目中,在某个点出现错误是正常的,而非例外。
鉴于错误的频率以及潜在的灾难性后果,调试成为了数据科学中最有价值的技能之一。理解模型正在寻找的模式有助于你确定模型何时与你对现实世界的了解不一致,这一般都是追踪错误的第一步。
指导特征工程
特征工程一般是提高模型准确率的最有效方法。特征工程通常包括转换原始数据或之前创建的特征来反复创建新特征。
有时候你可以仅凭对基本主题的直觉来完成这个过程。但是当原始特征有 100 多个或者你缺乏手头项目的背景知识时,你就需要更多指导了。
Kaggle 竞赛中有道题是关于预测贷款违约的,这就是一个极端的例子。这道题中有 100 多个原始特征。出于隐私原因,这些特征没用常见的英文名字,而是用 f1、f2、f3 这样的代号命名的。这就模拟了一个你不怎么了解原始数据的场景。
一名参赛者发现了 f527~f528 这两个特征之间的差异,从而创建了强大的新特征。将这一差异作为特征的模型比没有这个特征的模型要好得多。但是当变量有数百个时,你怎么能想到创建这个变量呢?
你在这门课程中学到的技巧能让你轻易分辨出 f527 和 f528 是重要特征,而且它们是有紧密关联的。这会指导你考虑转换这两个变量,从而找到 f527-f528 的「黄金特征」。
现在的数据集动辄就有成百上千个原始特征,因此这个方法的重要性与日俱增。
指导未来数据的收集方向
你无法控制在线下载的数据集。但许多使用数据科学的企业和组织都有机会扩大他们收集数据的类型。收集新类型的数据又贵又不方便,所以他们只会收集值得费力气的数据。基于模型的洞察结果可以让你更好地理解当前特征的价值,这将帮助你推断出哪些新价值是最有用的。
指导人类做出决策
有些决策是由模型自动做出的——当你登录亚马逊时,网站没有人在仓促间决定给你展示什么内容。但是有很多重要的决定必须要由人类来做。就这些决策而言,模型的洞察能力比预测能力更有价值。
建立信任
在没有验证基本事实的情况下,人们不会相信你的模型,也就不会根据你的模型做出重要的决策。就数据出错的频率而言,这是明智的预防措施。在实践中,展示符合他们一般认知的洞察结果有助于建立用户对模型的信任,即便这些用户对数据科学知之甚少也没关系。