现代决策树模型及其编程实践:从传统决策树到深度决策树
上QQ阅读APP看书,第一时间看更新

1.4 决策树的可解释性

什么是可解释性?2017年ICML Tutorial将其定义为向人类给出解释的过程(interpretation is the process of giving explanations to human)。从数据中发现知识或解决问题的过程中,只要是能够提供关于数据或模型的可以理解的信息,有助于我们更充分地发现知识、理解问题和解决问题的方法,都可以归类为可解释性方法。如果按照可解释性方法的过程进行划分,可以划分为三个大类。

1. 在建模之前的可解释性方法

这一类方法主要涉及一些数据预处理或数据展示的方法。在建模之前的可解释性方法的关键在于帮助我们迅速而全面地了解数据分布的特征,从而帮助我们考虑在建模过程中可能面临的问题并选择一种最合理的模型来逼近问题所能达到的最优解。数据可视化方法就是一类非常重要的建模前可解释性方法。还有一类比较重要的方法是探索性质的数据分析(比如MMD-critic方法),这可以帮助我们更好地理解数据的分布情况。找到数据中一些具有代表性或者不具代表性的样本。

2. 建立本身具备可解释性的模型

这种模型大概可以分为以下几种:基于规则的(rule-based)方法,基于单个特征的(per-feature-based)方法,基于实例的(case-based)方法,稀疏性(sparsity)方法,单调性(monotonicity)方法。

●基于规则的方法:比如经典的决策树模型,这类模型中的任何一个决策都可以对应到一个逻辑规则表示。但当规则表示过多或者原始的特征本身就不是特别好解释的时候,基于规则的方法有时候也不太适用。

●基于单个特征的方法:主要是一些非常经典的线性模型,比如线性回归、逻辑回归、广义线性回归、广义加性模型等。

●基于实例的方法:主要是通过一些代表性的样本来解释聚类/分类结果的方法,比如贝叶斯实例模型(Bayesian Case Model,BCM)。基于实例的方法的局限在于,可能挑出来的样本不具有代表性,或者可能会有过度泛化的倾向。

●基于稀疏性的方法:主要是利用信息的稀疏性特质,将模型尽可能地简化表示,比如图稀疏性的LDA方法。

●基于单调性的方法:在很多机器学习问题中,有一些输入和输出之间存在正相关/负相关关系,如果在模型训练中可以找出这种单调性的关系,就可以使模型具有更高的可解释性。比如医生对患特定疾病的概率的估计主要由一些与该疾病相关联的高风险因素决定,找出单调性关系就可以帮助我们识别这些高风险因素。

3. 在建模之后使用可解释性方法对模型做出解释

主要是针对具有黑箱性质的深度学习模型而言,分为以下几类:隐层分析方法,模拟/代理模型,敏感性分析方法。

在现代机器学习算法中,可解释性与准确度难以两全其美。深度学习准确度最高,同时可解释性最低。我们虽然知道神经网络在“做什么”,但我们对“怎么做、为何做”几乎一无所知。图1.5展示了常见的机器学习模型的预测准确率与可解释性之间的平衡。其中X轴为可解释性(explain ability),Y轴为预测准确率(prediction accuracy)。从图1.5中可以看出,决策树的可解释性最高,然而预测准确率却最低。但经验告诉我们,如果遇上ImageNet这一级别的数据,其性能还是远远比不上神经网络。“预测准确率”和“可解释性”这对“鱼”和“熊掌”要如何兼得?是把二者结合起来吗?这将是第5章要讨论的深度决策树,到时将回答这一问题。

图1.5 各类机器学习模型的可解释性和预测准确率

决策树易于理解且可解释性强,能够在中等规模数据上以低难度获得较好的模型。决策树可能是最具解释性的预测模型。它们的if-then决策规则结构在语义上类似于自然语言和人类思考的方式,前提是条件是由可理解的特征构建的,条件的长度很短(少量〈特征,值〉对的组合),并且没有太多的规则。编写if-then规则是非常自然的。

例如,如图1.6所示,这个决策树不只是给出输入数据x的预测结果(是“超级汉堡”还是“华夫薯条”),还会输出一系列导致最终预测的中间决策。我们可以对这些中间决策进行验证或质疑。

图1.6 快餐店判定食物类别的决策树

想象一下,使用一种算法来学习预测食物是“汉堡”“超级汉堡”“热狗”“卷卷薯条”还是“华夫薯条”的决策规则。这个模型得出的一个决策规则可能是:如果食物x有小面包,并且有香肠,那么它就是热狗。更正式的说法是:IF 小面包==YES AND 香肠==YES,THEN value=热狗。