1
为什么需要解释
机器学习模型的可解释性(Interpretability)最近说得越来越多,这也是个有趣的话题。可解释性不是个新概念,很多书在介绍机器学习模型时,都会顺带提一笔这款模型的可解释性如何,譬如我写的《机器学习算法的数学解析与Python》在介绍线性模型的优点时,就提了一嘴“可解释性强”。
不过,过去可解释性给我们的感觉,似乎总是“顺带提一嘴”,很少专门去讲,早前我对这个问题很感兴趣,想找本专著看看,结果半天没找到。这就要从另一个问题说起了。机器学习和数据分析是当下很热的两个概念,交叉的地方又不少,数据挖掘的教材里面有不少机器学习的内容,于是有同学免不了有点疑惑:这俩到底有啥区别呢?
有人说,机器学习看重预测效果,而数据挖掘更看重解释。我认可这个看法。形象一点说,机器学习只要给出预测结果就好,有时是一串数值(回归),有时是各种类别(分类或聚类),而数据挖掘则要交出一份分析报告,不但要回答是什么,还要回答为什么。
回忆一下,数据挖掘有个人尽皆知的成功案例叫“啤酒和纸尿片”,特别适合用来理解数据分析的目标和流程。
这个案例包含了三部分内容:首先是挖掘——分析师对购物数据进行分析挖掘,发现了顾客经常会同时购买啤酒和纸尿片,在数据挖掘里面这叫“关联模式挖掘”。
完成这步就有了结果,如果是机器学习就可以交差了,但数据挖掘才只是刚刚开始。
接着是解释,解释为什么啤酒和纸尿片两个看似没啥关系的商品,会出现这种奇妙的关联关系呢?分析师研究了半天,发现有许多年轻的父亲去买啤酒或者纸尿裤的时候,如果看到另一样就会顺便买了回来,这就是背后的因果关系。最近机器学习领域也在讨论因果关系,说模型并没有学到因果关系,这也是为什么需要耗费大量数据才能完成训练的重要原因。这个话题以后有机会再展开。
最后是决策,超市管理层拿到分析报告,认同了里面的分析,然后拍板将啤酒和纸尿片放在一起,最终证实二者销量果然明显上升。这一步必不可少,但学习数据挖掘时很容易被忽略。数据挖掘不应该是为挖掘而挖掘,最重要的是挖掘的成果能够转化成有效决策。这个案例很好地说明了为什么数据挖掘看重解释,因为数据挖掘的结果往往不是直接输出,而是要说服别人做出某种决策,所以自然就要首先解释清楚。
解释越清楚,决策才能越理性。我们身边也有很多同样的例子,譬如说股评,不管我们有没有买卖股票,肯定都听过股评。股评是不是直接预测结果,譬如说报出一串股票代码就完事了呢?不是&#