分享

关于两种统计模型文化的思考

 geoallan 2019-07-19

关于两种统计模型文化的思考

本文作者:Will Koehrsen

编译:camel,杨晓凡

引言:本篇文章重新回顾了Breiman于2001年发表的《Statistical Modeling:The Two Cultures》一文,对数据建模和算法建模两种文化做了详细的反思,并指出要想发展统计学,应当秉持「先有模型准确性,再有模型可解释」的观点。

这是值得深思的一篇文章,一起来看 Koehrsen 的观点。

在 2001 年的论文《Statistical Modeling: The Two Cultures》中,随机森林、袋模型以及提升集成算法的提出者 Leo Breiman 总结了应对统计建模问题的两种截然不同的处理方式:

  • 数据建模:依靠直觉选择一个简单的描述数据生成机制的模型(比如线性模型)。这里的考虑重点在于模型的可解释性以及可验证性,然后在拟合度的反复检验中期待找到理想的建模结果。

  • 算法建模:完全不考虑模型的可解释性,只需要选择具有最高预测验证准确率的模型即可。

当年写这篇论文的时候,Leo Breiman 估计大约有 98% 的统计学学者都习惯用前一种数据建模方法,而使用算法建模方法的只有大概 2%。他自己属于后者,所以他写这篇论文的目的就是希望提醒统计学学者们,不要完全依赖数据建模方法(他认为这会带来有误导性的结论和没有什么学术价值的理论),如今面对越来越大的数据集、越来越新颖也越贴近真实世界的问题,大家应当转向算法建模。

Breiman自己是位学者,他在UC伯克利研究统计学有21年了。不过在此之前他还做过13年的独立顾问,这让他同时也非常了解工业界是如何使用统计学的。

Breiman当时是很沮丧的,因为他知道数据建模没办法解决收集到的大规模数据中产生的新挑战,而且统计学的学术研究由于不断拒绝这些新的工具(高预测表现、低可解释性的复杂算法)而开始走向边缘化。十八年之后,机器学习和统计学都有了许多变化,98%-2%的比例相信现在也有所不同,但他在论文中提出一些观点如今仍然能对机器学习的实践起到帮助,尤其是对于正在考虑从学术界转向工业界的人。其中有这么几点我觉得很有价值:

  • 根据不同的特征建立的模型经常可以达到相似的预测准确率

  • 对于机器学习模型来说,往往需要在模型的可解释性和预测表现之间做出权衡

  • 更多的特征可以提高复杂算法模型的表现

  • 随着我们从世界中获得的信息越来越多,我们的模型也从简单模型逐渐发展为了复杂模型

总的来说,这篇论文想要表达的观点和我自己在工业界的机器学习实践中的感悟是相符的:首先关注模型准确率,然后只有在建立完毕一个具有很好预测表现的模型之后才开始考虑如何解释它。一个高度复杂、高度准确、但难以解释的模型,要比简单、线性、完全理解但是预测准确率低下的模型有价值得多。

下面我谈谈在Breiman这篇论文基础上的一些个人想法。不过我也需要提前说明,我自己只有一年的学术经验和一年的工业界经验,要比Breiman写这篇论文的时候稚嫩太多了。我建议各位首先阅读一下Breiman的原文(以及,可能的话,对这篇论文的批评之声),形成一个自己的基本判断。

虽然机器学习的发展惊人地快,但是较早的论文、专著里仍然有许多很有价值的信息值得我们回看,像Breiman这样对整个领域的发展产生了巨大影响的知名学者的论文尤其值得关注

统计建模的两种路线

在我们讨论一个好的模型需要考虑哪些因素之前,我们需要首先理解,建模的目标同时包含了这两点:

  • 预测:根据一组新的独立变量,估计可能的结果(目标)

  • 信息:对于数据的产生过程有更多的了解

在不同的情境中,这两个目标之间的权衡可以完全不同:如果你想要预测股价涨跌,你大概除了模型准确率之外什么都不关心;而如果是在医学研究中使用,建模的主要目标很可能是为了了解某种疾病的诱因。不过,Breiman也在论文中提出,算法建模的方法其实对于任一个目标都更有优势。

一、数据建模

使用数据建模方法的研究人员首先构建了数据生成方式的合理机制。(Breiman认为数据模型是线性回归或逻辑回归等)也就是说,研究人员想出了一个线性方程,它将自变量(特征)与直觉、经验或领域知识中的因变量(目标)联系起来。

通过将其拟合到数据集来找到模型中的系数(特征权重)。得到的线性方程表示实际的数据生成机制——自然界产生因变量和自变量值的黑匣子。系数用作变量重要性的度量(权重),显示特征对响应的影响。

在数据建模中进行校验是通过R^2或残差分析等拟合优度度量来完成的——两者都是在训练数据集上测量的。这里很少考虑预测准确性;相反,模型的重点在于如何更好地解释研究中的现象。如果系数上的p值足够低,那么它们就是“重要的”,模型就成了“真理”,用Breiman的话来说,从模型中得出的任何结论都是绝对可靠的。

整个过程以直觉和主观决策为指导:研究人员不是让数据说话,而是通过选择来强加自己的个人理论,例如使用哪些特征以及将哪些数据点作为异常值抛出。

Breiman引用了Mosteller和Tukey的教科书来总结他对数据建模的失望:“整个引导回归领域充满了知识、统计、计算和主题的困难。”

换句话说,数据建模采用简单的线性模型和直觉不是从数据中学习的客观方法。然而据Breiman表示,这是98%的学术统计学家采取的方法!

难怪他对自己的领域感到沮丧。

二、算法建模

算法建模方法围绕着这样一个问题:模型在校验数据上的性能是什么?

对于选择模型,不考虑模型是否代表生成数据的基础机制,而只考虑模型是否可以对新(或保持)观察进行可靠估计。

Breiman将算法文化的兴起归功于新算法的发明,例如随机森林(他自己的工作)、支持向量机和神经网络。这些都是——至少在当时——理论上并未得到很好理解的模型,但产生了非凡的预测准确性,特别是在大型数据集上。

算法社区的中心思想是:自然是一个黑盒子,我们的模型也应该是一个黑盒子。

尝试解释一个不准确的模型几乎没有用处,因此在专注于从中学习任何有关自然的知识之前,首先要集中精力构建具有最佳性能的模型。准确的模型,无论多么复杂,对于预测和信息收集都更有用。

算法文化不是来自学术统计,而是来自“年轻的计算机科学家、物理学家和工程师加上一些老化的统计学家”。换句话说,那些不怕采用(甚至发明)新技术来解决新问题的人。这些是从业者而不是理论家,他们使用神经网络和随机森林来解决从医学,到基因组学,到股票市场,到天文学等各个领域的问题。

Breiman在担任企业顾问时,认识到计算机是一种非常宝贵的工具,因为它能够将复杂的技术应用于大量数据。回到学术界后,他对依赖数据模型而忽视预测准确性感到失望。

即使你的主要目标是通过建模提取有关自然的信息,首要任务也应该是准确性。

1、模型的多样性许多具有不同特征集的模型具有几乎相同的预测精度。

我在最初建立的几个模型中,被一个反复出现的模式所困扰。我试图通过测量校验分数来选择“最佳”功能,但每次我尝试不同的子集时,整体校验分数几乎保持相同。这令人很费解,但反复出现:改变特征,甚至尝试不同的超参数值仍然产生类似的性能。

Breiman说,这没什么可担心的,对于大多数问题,当使用复杂模型时,有许多特征和超参数可以提供大致相同的性能。换句话说,单个最佳模型的想法是不存在的,所以我们不应该操心如何找到它。

不过这样的问题确实让那些依赖数据模型的人感到不安,因为简单的线性模型不能很好地处理大量特征,所以它们必须从中选择,通常是用直觉或形式方法的组合。通过选择特征和通过拟合计算系数而创建的从特征到目标的映射被假定为表示基础事实,即数据生成过程。但是,如果实际上有许多特征可以提供相同的性能,那么如何才能成为真理的最终来源呢?实际上,有许多同样好的模型,因此只选择一个并不能准确地表示问题。

是什么导致模型的多样性?我的经验是:特征相关(变量之间的关联)。尽管线性回归假设输入变量是独立的,但在实际数据集中,几乎所有特征都具有一定程度的相关性,而且通常相当高。因此,一个特征可以替代模型中的另一个特征而不会降低精度。

构建一个单一的数据模型并将其称为真理的来源,会错过所有其他可以执行的模型。算法建模者就不用担心选择特征的问题:只需将它们全部交给随机森林,让它找出哪些是重要的;训练之后,要认识到拟合模型只是从特征到目标诸多映射中的一种可能表示。

2、机器学习权衡:简单和准确

这是一个论文显示年龄的时代。Breiman当年提出了一个主张,即:复杂的机器学习模型是完全无法解释的(特别是随机森林和神经网络)。因此在选择模型时,他说我们总是需要在可解释性和提高准确率之间进行权衡。

然而,过去几年在解释负责模型方面取得了重大进展,特别是SHAP值和局部可解释模型-不可知解释(LIME)。这些操作基于构建复杂模型的一般原则,然后使用简单模型(如线性回归)解释其中的一部分(局部)。

(有关可解释机器学习的课程,请参阅Kaggle的机器学习解释性)。

这些模型解释技术可以适用于从随机森林到神经网络的任何模型,并提供对各个模型预测的合理解释。

不过,Breiman对缺乏可解释性的担忧仍然是有效的。算法开发的速度比解释快得多。这可以理解——我们需要在尝试解释它们之前确保算法是准确的。解释不准确模型的预测没有用处。现在,模型解释技术已经赶上了算法,我们可以同时具有预测背后的推理和高预测准确性。

虽然我们人类能够对自己的行为进行解释,但要注意,人类对他们决定的解释是很糟糕的。一个人做出选择确实可以给出理由,但这事实上包含了影响决策的环境、遗传、情境、情绪、神经递质等各种因素。当我们问某人为什么上班迟到,他会告诉我们“因为我采取了不同的地铁路线”,我们可能会接受这一点并不再提问。我们没有深入研究推理或提出详细的后续行动,因为这会导致更多后续行动(我们需要知道这个人整个人生历史,甚至完全解释他们做出的每一个选择)。

我发现人们总想对任何事情得到一个解释,不管这个解释多么站不住脚;即使它是一个重言式(男孩将是男孩)或循环推理(因为我的拼写很差,我犯了许多拼写错误),人们都有可能接受。

与人类的原因相反,机器学习模型输出的SHAP值则更加全面,它能够显示分配给每个变量的确切权重。从这一点来看,我更喜欢这些模型解释技术中的数字,而不是人类给出的误导性理由。相比于担心模型可解释性,也许我们更应该处理人类决策的问题!

我们在解释机器学习输出方面取得了比弄清个人行为背后的复杂影响网络方面取得了更多的进展。

3、使用算法模型,更多特征可以提高性能

在我读研究生时上的数据科学建模课中,教授花了大量的时间使用方差膨胀因子(variance inflation factor)或互信息(mutual information)等技术进行特征选择。在实验室中,我也见到了许多特征选择几乎都是由直觉而不是标准化程序选择的。原因听起来也很合理:线性模型往往不能很好地处理许多特征,因为它们没有足够的能力对特征中的所有信息进行建模。但这里所使用的方法通常是主观的,这导致模型更多的是人类驱动,而不是数据驱动。

相比之下,算法模型可以从大量特征中获益。Breiman指出,更多的变量意味着更多的信息,而更有效的模型应该能够从噪声中挑选出信号。像随机森林这样的模型可以用大量特征得到准确预测,即使变量的数量远超数据点的数量。我们可以为算法模型提供所有特征,并让它找出于任务最相关的特征,而不是花大量时间用直觉去选择特征。此外,我们还可以根据现有变量生成辅助特征,以便提取更多信息。

直觉在算法建模文化中没有地位,这与在数据模型不同。如果我们真的想从数据中学习,那么我们就必须信任数据本身,而不是我们主观的观点。算法建模不需要我们选择任何的特征;相反,我们保留所有特征,甚至添加更多新的特征,并以更少的工作量来获得更好的性能。

4、科学:简单到复杂

随着我们对世界的了解,我们需要更复杂的预测和学习信息的模型。

宇宙的早期模型是将中心置于地球,然后是移到太阳,而现在我们知道即使更大的银河系也不过是数十亿个星系中渺小的一个。在每一步改进中,模型都变得越来越复杂,因为我们收集了更多不适合现有模型的信息。牛顿万有引力定律在几百年中一直运作良好,直到我们观察到它的局限性。现在我们需要爱因斯坦的相对论才能确保GPS系统的准确性。

类似其他领域不断开发出更复杂的模型来解决新的困难(例如为了解决微观物理问题,人们开发除了量子力学),统计学也应该抛弃在实用性方面已经过时的线性模型,去拥抱更复杂的非线性模型。数据模型适用于一小部分问题,但我们现在在数据科学中面临的挑战要大得多。用于解决这些问题的技术也应当扩展。

科学的其他部分正朝着更大的复杂性发展,为什么统计学要仍然坚持最简单的模型呢?

目前,在统计领域仍然存在大量令人兴奋的问题等待探索,去设计最合适的工具,或发明新的技术。所以这仍然是一个让有学术抱负的人可以驰骋的学科。

批评

Breiman在其论文的附录中贴出了4位统计学家的批评及对他们的回应。我认为这种传统对于科学来说是非常好的传统,科学可以通过公开讨论来推进,因为没有任何一个人能够有正确的答案,提出一个想法,接受批评,对之改进,形成闭环的迭代过程,由此在科学创新上才能取得巨大的成功。

1、简单模型仍然有用

这是Breiman承认的一点:在某些情况下,线性模型是合适的。例如,如果我们将距离建模为速率的函数,则这是线性关系:距离=速率×时间。然而,自然界中很少有现象遵循这样一个好机制(即使上面的例子几乎从未在现实世界中存在过。)线性模型可以在非常小的数据集(特征很少)中使用,但在处理新问题时很快就会过时,在诸如天文学、气候、股票市场预测、自然语言处理等领域,其数据集很大并且包含数千或更多变量。

算法文化不是放弃数据模型。其强调的重点是:在任何情况下都使用最合适的模型。如果线性模型在数据集上能够获得最高的预测准确度,那就选择它。Breiman的观点准确来说应该是,我们不应该提前假设正确模型。

2、过度拟合校验数据

过度拟合是机器学习中的一个基本问题:在部分数据集上学习到的参数,并不能代表问题面向的所有数据。通过选择具有最佳分数的模型,我们可能无意中选择了对未来数据概括并不那么好的模型。

但这不是算法模型所特有的问题,尽管使用更复杂的模型可能更容易过度拟合(因为有更多的自由参数来训练)。

解决方案不是追溯到更简单的模型,而应该是使用更鲁棒的校验。我个人更喜欢交叉验证,使用多个训练/测试子集,这样性能就不会受到随机选择的偏差。模型可能仍然会过度拟合(这应该被称为Kaggle效应),但鲁棒的校验设置应该能够在新数据上提供一个良好的性能指标。

监控模型在生产中的持续性能也至关重要。定期检查模型精度是否降低,可以让你捕获模型或数据的漂移。一旦发生这种情况,你就需要构建新的模型,收集更多其他数据或重新解决问题。

过度拟合是一个严重的问题,但可以用正确的方法解决。

3、特征重要性

Breiman 关于从复杂模型中提取信息的大部分论点都依赖于「特征重要性」的概念。他在论文中没有定义,而是在对批评的回应中给了定义。他的定义取决于准确率。特征的重要性通过以下问题来衡量:模型中的特征是否会提高性能?

传统上,变量重要性是从线性模型的权重系数确定的。但我们已经看到多个特征可以产生相同的性能,因此使用学习的权重作为重要性的度量并不能捕获任何单一的基本事实。

事实上,变量重要性领域的问题仍未得到完全解决。当变量共线(高度相关)时,由于特征重要性可能在特征之间分开,所以问题依然存在。目前,还没有一种令人满意的方法来确定哪些变量是最重要的,但基于准确率的方法比基于权重的方法更不主观。SHAP 值提供了变量重要性的每个预测度量,可以让我们看到每个特征值对输出的确切影响。预测到的特征重要性可能并不代表特征本质上的“真实”相关性,但它可以给我们变量之间的相对比较。

4、建模目标

一些统计学家认为建模的目标是预测,因此主张重视信息收集。我的回答是,没有预测准确性的模型无法提供有关问题的任何有用信息。它可能提供模型权重,但如果不能导致准确预测,我们为什么要尝试从中学习呢?相反,我们应该首先关注准确性 —— 也因此,我们知道我们的模型已经学到了一些有用的东西 —— 然后再试着弄清楚模型是如何运作的。

模型必须准确,才能提供有用信息!

试图去理解一个连简单的非机器学习极限都比不过的线性模型,这本身其实没有意义。目标集中在准确性上,然后才是花费你的时间来解释模型。拥有一个还没有解释的精确模型,比提供了清晰解释却只能产生无意义信息的模型要好得多。

结论

Breiman 的这篇论文对我从学术转向工业非常重要。一开始,我花费了大量时间试图理解各种模型背后的理论,或者通过直觉来解决问题,而不是针对准确性并让数据来决定模型。

通过这篇论文,让我明白了至关重要的一点:先准确,再解释。一个模型值得用于知识提取的前提是它有很高的预测能力;否则就没有意义。

这在实践中意味着什么(特别是对于那些在工业中的人)?很简单:专注于建立一个强大的校验方案并找到表现最佳的模型。在你知道模型有效之前,不要花太多时间担心模型背后的理论。此外,经验表明,许多模型可以使用不同的特征集生成相同的精度,附加特征可以提高复杂算法的性能,并且模型可解释性和准确性之间存在平衡,尽管新技术在很大程度上缩小了差距。

当我们看到预测或决定时,我们都想要解释。但是,我们必须承认,当我们的知识和大脑限制我们时:我们根本无法处理现在面临的数据量,我们必须依靠机器为我们做大部分推理。机器学习是用于解决数据问题的工具,我们应该使用最好的工具。统计学是一个古老的领域,但这并不意味着它必须一直停留在过去:通过采用最新的算法,统计学家可以解决建模中出现的挑战性的新问题。

End

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多