首页 / 模型解释

模型解释实质审查 发明

技术内容

模型解释 背景技术 [0001] 机器学习是计算机科学的一个领域,它给予计算机在没有进行显式编程的情况下进行学习的能力。可以训练机器学习模型以实现复杂函数,该复杂函数基于一组输入做出一个或多个预测。该组输入由多个条目组成。每个条目与具有对应特征值的一个或多个特征相关联。一旦经训练,机器学习模型就表现得像黑盒子:它接收一组输入,将该组输入应用于复杂函数,并且输出一个或多个预测。 附图说明 [0002] 在以下详细描述和附图中公开了本发明的各种实施例。 [0003] 图1是图示了用于机器学习模型解释的系统的实施例的框图。 [0004] 图2A是图示了输入数据的实施例的示图的示例。 [0005] 图2B是图示了基于预测标签进行排名的输入数据的实施例的示图的示例。 [0006] 图3是图示了线性代理模型的输出的实施例的示图。 [0007] 图4A是图示了用于提供线性代理模型的过程的实施例的流程图。 [0008] 图4B是图示了用于提供预测的过程的实施例的流程图。 [0009] 图5是图示了非线性代理模型的实施例的示图。 [0010] 图6是图示了用于提供非线性代理模型的过程的实施例的流程图。 [0011] 图7是图示了非线性代理模型的实施例的示图。 [0012] 图8是图示了用于提供代理非线性模型的过程的实施例的流程图。 [0013] 图9是图示了非线性代理模型的实施例的示图。 [0014] 图10是图示了用于提供非线性模型的过程的实施例的流程图。 [0015] 图11是图示了仪表板的实施例的示图。 [0016] 图12是图示了用于调试机器学习模型的过程的实施例的流程图。 具体实施方式 [0017] 本发明可以以众多方式实现,这些方式包括作为过程;装置;系统;物质的组成;体现在计算机可读存储介质上的计算机程序产品;和/或处理器,诸如被配置成执行指令的处理器,该指令存储在耦合到处理器的存储器上和/或由其提供。在本说明书中,可以将这些实现方式或本发明可以采取的任何其它形式称为技术。一般而言,可以在本发明的范围内更改所公开过程的步骤的次序。除非另行陈述,否则可以将被描述为被配置成实行任务的诸如处理器或存储器之类的组件实现为暂时地被配置成在给定时间实行任务的通用组件、或被制造成实行所述任务的专用组件。如本文中使用的,术语“处理器”指代被配置成处理数据(诸如计算机程序指令)的一个或多个设备、电路和/或处理核心。 [0018] 下面连同图示了本发明的原理的附图一起提供对本发明的一个或多个实施例的 详细描述。结合这样的实施例对本发明进行描述,但是本发明并不限于任何实施例。本发明的范围仅受权利要求限制,并且本发明涵盖众多替换方案、修改和等同物。在以下描述中阐述了众多具体细节,以便提供对本发明的透彻理解。出于示例的目的提供这些细节,并且可以根据权利要求在没有这些具体细节中的一些或全部的情况下实践本发明。为了清晰起 见,在与本发明相关的技术领域中已知的技术材料并未被详细描述,以免不必要地模糊本发明。 [0019] 公开了一种机器学习模型解释技术。机器学习模型被配置成基于一组输入来提供一个或多个预测,然而,尚不清楚机器学习模型如何得出其决策。机器学习模型通常是公司的专有软件,并且用户必须获得许可证才能使用该软件。结果,用户被迫从公司购买许可证。 [0020] 机器学习模型可能会受到输出到用户的信息类型的限制。机器学习模型可以输出预测,但是可以不提供机器学习模型做出该预测的一个或多个原因。例如,机器学习模型可以不输出影响了机器学习模型的预测的一个或多个输入特征的标识。 [0021] 机器学习模型可以近似为线性代理模型和/或一个或多个非线性代理模型。代理 模型是一种数据挖掘和工程技术,其中通常使用更简单的模型来解释另一个通常更复杂的模型或现象。代理模型可以减少计算的数量和计算机输出预测所需的时间。计算和时间上的减少释放了计算机资源,这允许计算机实行其他任务和/或做出其他预测。线性代理模型可以是K-LIME代理模型。非线性代理模型可以是决策树代理模型、特征重要性代理模型和/或部分依赖代理模型。代理模型不仅可以提供与机器学习模型所做的预测相似的预测,还可以提供一个或多个描述代理模型做出其决策的原因。 [0022] 由于机器学习模型的复杂性,没有一个模型本身可以被信任来准确地近似机器学习模型。然而,线性代理模型和一个或多个非线性代理模型的组合可以提供近似方面的置信度。在一些情况下,线性代理模型的输出可能与机器学习模型的输出紧密匹配,但是线性代理模型的输出可能与至少一个非线性代理模型的输出冲突。在其他情况下,线性代理模型的输出可能与机器学习模型的输出冲突,但是一个或多个非线性代理模型的输出与机器学习模型的输出紧密匹配。在其他情况下,线性代理模型的输出或者一个或多个非线性代理模型的输出都与机器学习模型的输出不紧密匹配。在这些情况下,线性代理模型或者一个或多个非线性代理模型都不能被用来解释机器学习模型。结果,可能需要修改线性代理模型或一个或多个非线性代理模型中的至少一个,或甚至修改机器学习模型本身。 [0023] 然而,在线性代理模型的输出与机器学习模型的输出紧密匹配,并且非线性代理模型的输出与机器学习模型的输出紧密匹配的情况下,线性代理模型和一个或多个非线性代理模型的组合可以被信任来准确地解释关注的机器学习模型。 [0024] 这是对机器学习领域的一种改进,因为可以使用线性代理模型和一个或多个非线性代理模型的组合来准确地近似以下机器学习模型,该机器学习模型实现了复杂函数以基于一组输入做出一个或多个预测。在与实现了机器学习模型以做出预测的计算机所需的计算的数量和时间相比,线性代理模型和一个或多个非线性代理模型的组合可以减少计算机做出预测所需的计算的数量和时间。线性代理模型和一个或多个非线性代理模型的组合为机器学习模型提供了透明度。线性代理模型和一个或多个非线性代理模型允许对基础机器学习模型本身进行调试。 [0025] 图1是图示了用于机器学习模型解释的系统的实施例的框图。在示出的示例中,系统100包括复杂模型服务器102、网络105、代理模型服务器112和客户端设备122。 [0026] 复杂模型服务器102包括:机器学习模型104、训练数据106、模型预测数据107和实际结果数据108。机器学习模型104、训练数据106、模型预测数据107和实际结果数据108可以存储在复杂模型服务器102的存储器和/或存储装置(未示出)中。复杂模型服务器102可以包括一个或多个处理器、一个或多个存储器(例如,随机存取存储器)和一个或多个存储设备(例如,只读存储器)。 [0027] 机器学习模型104被配置成实现一个或多个机器学习算法(例如,决策树、朴素贝叶斯分类、最小二乘回归、逻辑回归、支持向量机、神经网络、深度学习等)。可以使用训练数据(诸如训练数据116)来训练机器学习模型104。一旦经训练,机器学习模型104被配置成基于包括一个或多个特征和对应特征值的输入条目来输出预测标签(诸如模型预测数据 107)。 [0028] 训练数据106包括多个条目。每个条目与具有对应特征值的一个或多个特征相关 联。 [0029] 模型预测数据107包括机器学习模型104做出的预测。模型预测数据107可以包括 机器学习模型已经预测的特定结果的概率。模型预测数据107可以包括:针对特定预测的预测标签(例如,预测值)。 [0030] 实际结果数据108包括真实世界结果数据。例如,机器学习模型104可以被训练成在给定包括多个条目的输入数据的情况下预测特定结果的概率。实际结果数据108包括与多个特征和对应特征值相关联的条目的真实世界结果。 [0031] 网络105可以是局域网、广域网、有线网络、无线网络、互联网、内联网、或任何其它适当的通信网络。 [0032] 代理模型服务器112包括:线性代理模型114、一个或多个代理非线性模型115、训练数据116、模型预测数据117和实际结果数据118。线性代理模型114、一个或多个代理非线性模型115、训练数据116、模型预测数据117和实际结果数据118可以存储在复杂模型服务器112的存储器和/或存储装置(未示出)中。 [0033] 代理模型服务器112被配置成实现一个或多个代理模型。代理模型是一种数据挖 掘和工程技术,其中通常使用更简单的模型来解释另一个通常更复杂的模型或现象。代理模型112可以经由网络105从复杂模型服务器102接收训练数据106、模型预测数据107和实际结果数据108,并且分别存储为训练数据116、模型预测数据117和实际结果数据118。使用训练数据116、模型预测数据117和实际结果数据118,代理模型服务器122可以训练一个或多个代理模型以做出一个或多个预测。一个或多个代理模型是机器学习模型104的代理。给出学习函数g(例如,机器学习模型104)和一组预测(例如,模型预测107), ,代理模型h可以被训练成使得 ,使得 。代理模型h可以是线性模型或非 线性模型。 [0034] 线性模型 线性代理模型114可以是K-LIME代理模型。利用K-LIME,局部广义线性模型(GLM)代理 被用来解释复杂响应函数的预测,并且局部区域由K个簇或用户定义的段来定义,而不是由模拟的、受扰动的观察样本来定义。 [0035] 对于每个簇,训练局部 。可以使用诸如k均值聚类之类的聚类技术将输 入数据分类为多个簇。可以挑选K,使得来自所有局部GLM模型的预测都将使R2最大化。这可以在数学上总结如下: 。 [0036] K-LIME也可以在整个输入训练数据集上训练一个全局代理GLM hglobal,诸如训练数据106和全局模型预测g(X),诸如模型预测数据107。在一些实施例中,如果给定的第k个簇具有少于阈值数目的成员(例如,20个),则hglobal被用作线性代理而不是hGLM,k。在一些实施例中,来自所有代理K-LIME模型(包括全局代理)的截距、系数、R2值、准确性和预测可以被用来调试和提高g中的透明度。 [0037] 可以从K-LIME生成一个或多个原因代码和对应值。原因代码对应于输入特征。原因代码值可以向 提供特征的近似局部线性贡献。原因代码是针对问责制和公平性的 强大工具,因为它们为每个 提供了解释,从而使得用户能够理解针对 的输入 特征的局部贡献的近似量值和方向。在K-LIME中,可以通过确定每个系数特征积来计算原因代码值。原因代码也可以写入自动生成的原因代码中。 [0038] 对于hGLM,k和观察x(i): 通过将K-LIME预测分解成个体系数特征积, ,可以确定特征的局部线性贡献。此 系数特征积被称为原因代码值,并且被用来为每个 创建原因代码。 [0039] K-LIME提供了几种标度的可解释性:(1)全局GLM代理的系数提供有关全局平均趋势的信息,(2)段内GLM代理的系数显示局部区域中的平均趋势,以及(3)当针对特定的段内观察结果进行评估时,K-LIME在每次观察的基础上提供原因代码。K-LIME可以通过揭示输入特征及其线性趋势来增加透明度。K-LIME可以通过为数据集中的每个观察结果创建解释来加强问责制。当重要特征及其围绕特定记录的线性趋势符合领域知识和合理期望时,K-LIME可能会增强信任和公平性。 [0040] 非线性模型 一个或多个代理非线性模型115可以包括特征重要性模型、决策树模型、部分依赖图 和/或任何其他非线性模型。 [0041] 特征重要性模型测量一组输入的特征对模型的预测的影响。特征可以具有全局特征重要性和局部特征重要性。全局特征重要性测量了输入特征对模型预测的总体影响,同时考虑了非线性和相互作用。全局特征重要性值给出了以下指示,该指示是对所有观察结果的模型预测的特征的贡献的量值的指示。局部特征重要性描述了学习到的模型规则或参数与个体观察结果的属性的组合如何影响该观察结果的模型预测,同时使非线性和相互作用生效。 [0042] 特征重要性模型可以包括:随机森林代理模型hRF,其包括B个决策树htree,b。随机森林代理模型是一种全局可解释性度量。例如,hRF可以被表达为: 其中 是每棵树htree,b的拆分规则的集合。在每棵树htree,b的每个拆分处,拆分标准中的改进是被归因于拆分特征的重要性度量。该重要性特征针对每个特征单独地在所有树上累积。聚合的特征重要性值可以在0到1之间缩放,使得最重要的特征的重要性值为1。 [0043] 特征重要性模型可以包括留一协变量法(leave-one-covariate-out,LOCO)。LOCO特征重要性是局部可解释性度量。LOCO提供了一种用于在每次观察的基础上x(i)为任何模型g计算重要性值的机制,该计算通过从模型对该数据的观察结果的预测(没有关注的输入特征Xj)中减去模型对数据的观察结果的预测g(x(i))来进行, 。LOCO是与 模型无关的想法,并且 可以以各种方式进行计算。在一些实施例中, 使用 特定于模型的技术来计算,其中通过使用随机森林代理模型hRF来近似对g(x(i))的贡献Xj。 任何规则的预测贡献 (包含针对树htree,b的Xj)被从原始预测 中减 去。对于随机森林: 其中 是每棵树htree,b的拆分规则的集合,其中去除了涉及Xj的所有规则的贡献。 在一些实施例中,LOCO特征重要性值在0到1之间缩放,使得针对与随机森林特征重要性的直接比较对比局部比较,对于数据的观察结果x(i)而言最重要的特征的重要性值为1。 [0044] 随机森林特征的重要性通过报告有影响的输入特征并对其进行排名来增加透明 度。LOCO特征的重要性通过为每个模型预测创建解释来加强问责制。当报告的值符合领域知识和合理期望时,全局和局部特征两者的重要性都会增强信任和公平性。 [0045] 决策树模型htree可以被生成以近似经学习的函数g(例如,机器学习模型104)。htree被用来通过显示g的决策过程的近似流程图来增加g的透明度。htree还示出了g的很可能的重要特征和最重要的相互作用。htree可以被用于可视化、验证、调试g,这通过将所显示的决策过程、重要特征和重要相互作用与已知标准、领域知识和合理期望进行比较来进行。 [0046] 部分依赖图可以示出经机器学习的响应函数如何基于关注的输入特征的值进行 变化,同时考虑到非线性并且平均所有其他输入特征的影响。 [0047] 对于P维特征空间,考虑单个特征 及其补集 (即, )。函数g 对Xj的一维部分依赖性是边际期望: 回想到, 上的边际期望对X(-j)的值求和。一维部分依赖性可以被表达为: 给定特征Xj的部分依赖性是响应函数g的平均,设置给定特征Xj=xj,并且使用补集的所 有其他现有特征向量 (在它们存在于数据集中时)。部分依赖图将部分依赖性示为特征子集Xi的特定值的函数。部分依赖图使得能够提高g的透明度,并且使得能够实现验证和调试g的能力,该验证和调试通过将特征在其领域上的平均预测与已知的标准和合理期望进行比较来进行。 [0048] 在一些实施例中,部分依赖图包括个体条件期望(ICE)图。ICE是N个响应的分解的部分依赖性 (对于单个特征Xj),代替于对跨训练集的所有观察结果 的响应进行平均。单个观察结果x(i)的ICE图通过绘制 对比 同时固定 来创建。ICE图可以允许预测数据的个体观察结果 以确定数据的个体观察结果是否在距离由部分相关性所表示的平均模型行为的一个 标准偏差之外。ICE图还可以允许预测数据的个体观察结果 以确定与平均模型行为、 已知标准、领域知识和/或合理期望相比,对特定观察结果的处理是否有效。 [0049] 训练数据116包括:被用来训练线性代理模型114和/或一个或多个非线性代理模 型115的数据。训练数据116可以包括训练数据106的至少一部分。训练数据116包括多个条目。每个条目与一个或多个具有对应值和相关联的实际结果的特征相关联。 [0050] 模型预测数据117包括由机器学习模型104做出的预测、由线性代理模型114做出 的预测以及由一个或多个非线性代理模型115做出的预测。模型预测数据117可以包括机器学习模型104已经预测的预测标签(例如,特定结果的概率、预测值、预测值±偏移值等)、线性代理模型114已经预测的预测标签,以及一个或多个非线性代理模型115已经预测的预测标签。 [0051] 实际结果数据118包括真实世界结果数据。例如,机器学习模型104、线性代理模型 114和一个或多个非线性代理模型115可以被训练成在给定一组输入的情况下预测特定结 果的概率。实际结果数据118包括:在给定该组输入的情况下的真实世界结果(例如,特定结果是发生还是不发生)。 [0052] 客户端设备122可以是计算机、膝上型计算机、移动设备、平板设备等。客户端设备 122包括:与代理模型服务器112相关联的应用程序124。应用程序124被配置成经由图形用户界面126显示一个或多个图形,该图形描绘了线性代理模型114和一个或多个非线性代理模型115中的至少一个。 [0053] 在一些实施例中,图形用户界面126被配置成接收线性代理模型中所示的点(例 如,观察结果)的选集。响应于该选集,应用程序124被配置成动态地更新与线性代理模型相关联的一个或多个非线性代理模型,并且动态地更新一个或多个非线性代理模型的显示。 应用程序124还被配置成向代理模型服务器112提供所接收的选集的指示。响应于该指示,线性代理模型可以被配置成向应用程序124提供一个或多个原因代码和对应的原因代码 值。响应于该指示,非线性代理模型可以被配置成给所选点提供一个或多个重要特征。响应于该指示,非线性代理模型可以被配置成突出显示与所选点相关联的决策树路径。 [0054] 图2A是图示了输入数据的实施例的示图的示例。输入数据包括:训练数据、验证数据、模型预测数据和实际结果数据。在所示的示例中,输入数据200可以由诸如复杂模型服务器102或代理模型服务器112之类的系统来实现。 [0055] 在所示的示例中,输入数据200包括条目A1、A2…An。每个条目包括具有对应特征值的一个或多个特征。例如,条目A1包括具有对应特征值X1、Y1...Z1的特征F1、F2…Fn。条目A2包括具有对应特征值X2、Y2...Z2的特征F1、F2…Fn。条目An包括具有对应特征值Xn、Yn...Zn的特征F1、F2...Fn。在一些实施例中,特征值可以对应于特征的实际值(例如,温度=98°)。在其他实施例中,特征值可以对应于值的范围之一(例如,值“2”指示20-40的温度范围)。在其他实施例中,特征值可以对应于可能的非数值之一(例如,“0”=男性,“1”=女性)。在其他实施例中,特征值可以是字符串。 [0056] 诸如机器学习模型104、线性代理模型114或(一个或多个)代理非线性模型115之类的模型可以基于条目、与该条目相关联的特征和对应特征值来实行预测。例如,模型可以基于特征F1、F2...Fn及其对应特征值X1、Y1...Z1来输出A1的预测标签P1。模型可以分别为条目A1、A2…An中的每一个输出预测P1、P2…Pn。预测标签可以是特定结果的概率、预测值、预测值加上偏移范围、预测值加上置信水平等。 [0057] 输入数据200可以包括实际结果数据,例如,是否发生了特定结果、输出变量的实际值等。值为1可以指示发生了特定结果。值为0可以指示没有发生特定结果。在其他实施例中,值为1指示没有发生特定输出,并且值为0指示发生了特定结果。 [0058] 在一些实施例中,诸如机器学习模型104、线性代理模型114或(一个或多个)代理非线性模型115之类的模型可以预测要发生特定结果(例如,大于或等于预测阈值)和实际发生的特定结果(例如,值为1)。在一些实施例中,诸如机器学习模型104、线性代理模型114或(一个或多个)代理非线性模型115之类的模型可以预测要发生特定结果(例如,大于或等于预测阈值)和没有实际发生特定结果(例如,值为0)。在一些实施例中,诸如机器学习模型 104、线性代理模型114或(一个或多个)代理非线性模型115之类的模型可以预测将不发生特定结果(例如,小于预测阈值)和实际发生了特定结果(例如,值为1)。在一些实施例中,诸如机器学习模型104、线性代理模型114或(一个或多个)代理非线性模型115之类的模型可以预测将不发生特定结果(例如,小于预测阈值)和实际没有发生特定结果(例如,值为0)。 [0059] 图2B是图示了基于预测标签进行排名的输入数据的实施例的示图的示例。在所示的示例中,经排序的训练数据250可以由诸如复杂模型服务器102或代理模型服务器112之类的系统来实现。 [0060] 在所示的示例中,输入数据250包括条目A1、A20…A2。输入数据250的条目与输入数据200的条目相同,但是基于预测标签进行排名。预测标签可以是特定结果的概率。在一些实施例中,条目从最低预测标签到最高预测标签进行排名。在一些实施例中,条目从最高预测标签到最低预测标签进行排名。 [0061] 图3是图示了线性代理模型的输出的实施例的示图。线性模型图300可以由诸如代理模型服务器112之类的系统来实现。线性模型图300可以表示线性模型(诸如线性代理模型114)的输出。线性代理模型114是具有更复杂函数的代理模型,诸如是机器学习模型104。 [0062] 线性模型图300绘制了与条目相关联的预测标签对比经排名的预测。线性模型图 300的y轴指示由模型(诸如机器学习模型104或线性代理模型114)得出的分数。线性模型图 300的x轴指示与一组输入相关联的预测等级。基于预测标签对该组条目进行排名,并且进行顺序绘制。例如,图2B描绘了基于对应预测标签进行排名的一组条目。输入数据250中包括的条目将按以下次序绘制:A1、A20…和A2。 [0063] 线性模型图300包括:线301,其表示与一组输入相关联的预测标签,这些输入由机器学习模型(诸如机器学习模型104)确定。例如,线301可以是输入数据250的预测P1、P20…P2的标绘图。可以通过机器学习算法(例如,决策树、朴素贝叶斯分类、最小二乘回归、逻辑回归、支持向量机、神经网络、深度学习等)来确定与线301相关联的预测值。 [0064] 线性模型图300包括:一系列观察结果,例如,白点302、305,它们表示与由线性模型(诸如线性代理模型114)确定的一组条目相关联的预测标签。在一些实施例中,观察结果与全局代理模型相关联。观察结果可以表示特定条目的全局代理模型的预测标签。在其他实施例中,观察结果与局部线性模型相关联。 [0065] 可以由K-LIME模型来确定与每个观察结果相关联的预测标签。线性代理模型114 可以包括多个局部线性模型。可以使用一种或多种技术(例如,k均值聚类)将一组条目分类为一个或多个簇。每个簇表示彼此相似的条目的子集。条目可以基于条目与簇质心之间的距离而与簇相关联。如果条目距簇质心的距离小于或等于阈值距离,则条目与该簇相关联。 如果条目距簇质心的距离大于阈值距离,则条目与不同的簇相关联。可以为每个簇生成局部线性模型。可以使用与特定簇相关联的条目来训练簇局部线性模型。例如,对于被分类为 11个簇的一组条目,这11个簇中的每一个都可以具有对应的局部线性模型。每个局部线性模型都被配置成对簇中包括的条目的子集做出预测。局部线性模型被配置成基于条目的一个或多个特征和对应特征值做出预测。例如,假设白点302是第一簇的一部分,并且白点305是第二簇的一部分。第一局部线性模型可以被配置成基于白点302的一个或多个特征和对应特征值来生成针对白点302的预测,并且第二局部线性模型可以被配置成基于白点305的一个或多个特征和对应特征值来生成针对白点305的预测。 [0066] 在一些实施例中,通过确定最接近条目的簇质心来将该条目添加到簇(例如,生产数据)。条目和簇质心在特征空间中具有特定位置。例如,条目包括多个特征和对应特征值。 特征空间中的条目位置可以被表示为向量,例如,{X1,Y1…Z1}。可以通过计算特征空间中的条目与特征空间中的簇质心之间的距离来确定最接近的簇。最接近的簇对应于具有一个或多个相关联的模型参数的局部线性模型。在确定最接近的质心簇之后,可以通过将与特征相关联的特征值输入到与最接近的质心簇相对应的局部线性模型来确定针对输入的预测 标签。 [0067] 线性模型图300包括一组实际结果数据,例如,黑点303、304。黑点303指示对于具有一组特征和对应特征值的条目实际发生了特定结果。黑点304指示对于具有一组特征和对应特征值的条目没有发生特定结果。 [0068] 在一些实施例中,机器学习模型预测与实际结果数据相关。例如,线301上的点308指示有可能发生特定结果(预测标签≈0.75),并且黑点307指示实际发生了特定结果。 [0069] 在一些实施例中,机器学习模型预测与实际结果数据不相关。例如,线301上的点 309指示特定结果不太可能发生(预测标签≈0.2),并且黑点306指示实际发生了特定结果。 [0070] 每一个观察点(即,白点)具有对应的黑点。例如,白点302具有对应的黑点306。在一些实施例中,全局代理模型与实际结果数据相关。在一些实施例中,全局代理模型与实际结果数据不相关。在一些实施例中,局部线性模型预测与实际结果数据相关。在一些实施例中,局部线性模型预测与实际结果数据不相关。 [0071] 可以选择每一个观察点。响应于被选择,可以显示一个或多个原因代码和对应的原因代码值。原因代码与特征相对应。原因代码值与该特征对针对该观察点(输入点)的本地模型的预测标签的贡献量(例如,权重)相对应。线性代理模型可以确定特定观察点的原因代码和对应的原因代码值。原因代码值的总和可以等于预测标签。在一些实施例中,代替于显示针对特定观察点的所有原因代码和对应的原因代码值,显示最上面的原因代码(例如,最上面的5个原因代码),即,最有影响的特征。例如,白点302具有近似为0.3的预测标签。可以显示最上面的原因代码“F1”、“F18”、“F3”、“F50”、“F34”以及对应的原因代码值。在其他实施例中,选择观察点可以使针对所选观察点的所有原因代码和对应的原因代码值得以显示。 [0072] 图4A是图示了用于提供线性代理模型的过程的实施例的流程图。在所示的示例 中,过程400可以由诸如代理模型服务器112之类的系统来实现。 [0073] 在402处,接收与机器学习模型相关联的数据。该数据可以包括被用来训练机器学习模型的训练数据。该数据可以包括与训练数据的条目相关联的机器学习模型的预测数 据。该数据可以包括与具有一个或多个具有对应特征值的特征的条目相关联的实际结果数据,即,特定结果是否实际发生。 [0074] 在404处,与机器学习模型相关联的数据被分类为多个簇。可以使用一种或多种技术(例如,k均值聚类)将数据分类为多个簇。每个簇表示彼此相似的条目的子集。簇包括多个条目。每个条目包括具有对应特征值的一个或多个特征。每个条目在特征空间中具有对应位置,例如,(F1,F2…Fn)。在一些实施例中,基于距特征空间中的点(例如,簇质心)的阈值距离内的一个或多个条目来确定簇。 [0075] 在406处,创建模型。在一些实施例中,基于输入数据来创建全局代理模型。在其他实施例中,为每个簇创建单独的线性模型。每个线性模型都被配置成输出预测标签。例如,线性模型可以确定预测P1,该预测P1指示在给定条目A1的情况下特定结果是否将会发生的概率,该条目A1包括具有对应特征值X1、Y1…Z1的特征F1、F2…Fn。 [0076] 在408处,基于模型预测对条目进行排名。在一些实施例中,基于由机器学习模型(诸如机器学习模型104)做出的预测来对条目进行排名。在其他实施例中,基于由线性代理模型(诸如线性代理模型114)做出的预测对条目进行排名。在一些实施例中,条目从最低预测标签到最高预测标签进行排名。在一些实施例中,条目从最高预测标签到最低预测标签进行排名。 [0077] 在410处,提供线性模型图,诸如线性模型图300。在一些实施例中,线性模型图经由网络从代理模型服务器提供给客户端设备。客户端设备可以经由在客户端设备上运行的应用程序来显示线性模型图。 [0078] 在412处,接收线性模型图中包括的观察点的选集。例如,客户端设备可以经由GUI接收诸如白点302之类的点的选集。可以基于所选点来更新一个或多个非线性模型图。 [0079] 在414处,提供一个或多个原因代码。该一个或多个原因代码包括:一组特征,其主导地使条目具有对应预测标签。例如,可以提供一系列原因代码以指示为何白点302具有 0.3的预测标签。每个原因代码都具有对应的原因代码值,该值指示对预测标签的贡献。原因代码的累积贡献等于预测标签。 [0080] 图4B是图示了用于提供预测的过程的实施例的流程图。过程450可以由诸如代理 模型服务器112之类的系统来实现。 [0081] 在452处,接收生产数据。生产数据包括一个或多个条目。每个条目与具有对应特征值的一个或多个特征相关联。生产数据的一个或多个条目不包括对应预测标签。 [0082] 在454处,为生产数据的每个条目确定最接近的簇。生产数据的条目包括多个特征值。特征值对应于特征空间中的位置。簇的簇质心在特征空间中具有对应位置。为生产数据的每个条目确定最接近的质心。可以通过计算特征空间中的条目的位置与特征空间中的簇质心的位置之间的距离来确定最接近的质心。 [0083] 在456处,确定生产数据的每个条目的线性代理模型。每个簇都具有对应的线性代理模型。 [0084] 在458处,将生产数据的一个或多个条目应用于对应的线性代理模型。例如,生产数据的第一条目可以应用于与第一簇相对应的第一线性代理模型,并且生产数据的第二条目可以应用于与第二簇相对应的第二线性代理模型。 [0085] 在460处,输出预测标签和一个或多个原因代码。每个线性代理模型输出对应预测标签。预测标签可以是特定结果的概率、预测值、预测值±偏移值等。原因代码提供了有关为何预测标签具有某个输出的解释。 [0086] 图5是图示了非线性代理模型的实施例的示图。非线性模型图500可以由诸如代理模型服务器112之类的系统来实现。非线性模型图500可以表示非线性代理模型(诸如非线性代理模型115之一)的输出。非线性代理模型115是具有更复杂函数的代理模型,诸如是机器学习模型104。 [0087] 非线性模型图500图示了一个或多个特征的特征重要性。特征重要性测量了特征 对模型的预测的影响。非线性模型图500包括:针对特定特征的全局特征重要性和局部特征重要性。在一些实施例中,特征从全局最重要特征到全局最不重要特征以降序排序。 [0088] 全局特征重要性测量了特征对模型预测的总体影响,同时考虑了非线性和相互作用。全局特征重要性值提供了以下指示,该指示是特征对所有观察结果的模型预测的贡献的量值的指示。例如,全局重要性值可以指示特征对于全局代理模型的重要性,即,特征对于所有条目的重要性。在一些实施例中,全局特征重要性值等于在决策树集合(例如,全局决策树代理模型)中特征被选择以拆分决策树集合中的决策树的次数。在一些实施例中,全局特征重要性值被缩放成0到1之间的数字,使得最重要的特征的重要性值为1。在一些实施例中,基于特征在决策树中的位置来对全局特征重要性值进行加权。例如,在用于拆分的决策树的顶部选择的特征的权重比在用于拆分的决策树底部选择的另一个特征的权重更高。 在一些实施例中,权重是0到1之间的值。权重近似为1指示该特征是在决策树的顶部或顶部附近选择的。权重近似为0指示没有为决策树的分支选择该特征,或者没有在决策树的底部或底部附近选择该特征。在一些实施例中,权重是大于1的值。 [0089] 局部特征重要性描述了经学习的模型规则或参数与个体观察结果的属性的组合 如何影响该观察结果的模型预测,同时使非线性和相互作用生效。例如,局部特征重要性可以指示与针对全局代理模型的条目(例如,观察点)相关联的特征的重要性,即,该特征对于该特定条目的重要性。可以通过计算特征的LOCO值来确定局部特征重要性值。条目包括多个特征。使用多个特征来计算第一预测,并且使用减去多个特征之一的多个特征来计算第二预测。从第一预测中减去第二预测来确定特征的重要性。针对多个特征中的每个特征来计算LOCO值。 [0090] 如图5中看到的,特征“F1”、“F18”、“F3”、“F50”、“F34”和“F8”被描述为预测的最重要特征。在一些实施例中,最重要的特征是全局代理模型的最重要的特征。在其他实施例中,最重要的特征是所选观察点的最重要的特征。为每个特征示出全局重要性值和局部重要性值。例如,分别为特征“F1”、“F18”、“F3”、“F50”、“F34”和“F8”示出全局重要性值502a、 504a、506a、508a、510a和512a。分别为特征“F1”、“F18”、“F3”、“F50”、“F34”和“F8”示出局部重要性值502b、504b、506b、508b、510b和512b。 [0091] 在一些实施例中,特征的全局重要性值与特征的局部重要性值相关。例如,如果两个值之间的差小于或等于阈值,则该特征的全局重要性值与该特征的局部重要性值相关。 如果两个值之间的差大于阈值,则该特征的全局重要性值与该特征的局部重要性值不相 关。如果特征的全局重要性值和特征的局部重要性值不相关,则可以标记与预测相关联的条目。在一些实施例中,研究特征重要性模型来确定该模型输出这样的值的原因。如果标记了阈值数目的条目,则可以将非线性模型确定为是不准确的并且进行调整。例如,特征 “F18”的全局重要性值504a与局部重要性值504b不相关。这指示可能需要调整与非线性模型图500相关联的非线性模型,或者应该研究特征重要性模型。在一些实施例中,列出的特征可以指示单个特征主导与预测相关联的预测标签(例如,特征重要性值大于优势分数)。 例如,特征F1的相关联的重要性值可以是(1.00中的)0.98。这可以指示与预测相关联的数据泄漏,并且指示可能需要调整模型或应该研究特征重要性模型。响应于这样的指示,可以调整或研究该模型。 [0092] 图6是图示了用于提供非线性代理模型的过程的实施例的流程图。在所示的示例 中,过程600可以由诸如代理模型服务器112之类的系统来实现。 [0093] 在602处,确定特征的全局重要性值。全局特征重要性值可以等于在决策树集合中特征被选择以拆分决策树集合中的决策树的次数。在一些实施例中,全局特征重要性值被缩放成0到1之间的数字,使得最重要的特征的重要性值为1。在一些实施例中,基于特征在决策树中的位置来对全局特征重要性值进行加权。例如,在用于拆分的决策树的顶部选择的特征的权重比在用于拆分的决策树底部选择的另一个特征的权重更高。 [0094] 在604处,确定特征的局部重要性值。可以通过计算特征的LOCO值来确定局部特征重要性值。条目包括多个特征。使用多个特征来计算第一预测,并且使用减去多个特征之一的多个特征来计算第二预测。从第一预测中减去第二预测来确定特征的重要性。 [0095] 在606处,对一个或多个最重要特征进行排名。在一些实施例中,基于全局重要性值对一个或多个重要特征进行排名。在其他实施例中,基于局部重要性值对一个或多个重要特征进行排名。最高数目(例如,前5个)的特征或最高百分比(前10%)的特征可以被确定为一个或多个最重要的特征。 [0096] 在608处,提供针对多个特征的所确定的全局重要性值与所确定的局部重要性之 间的比较的可视化。在一些实施例中,为一个或多个最重要特征提供该比较。 [0097] 图7是图示了非线性代理模型的实施例的示图。非线性模型图700可以由诸如代理模型服务器112之类的系统来实现。非线性模型图700可以表示诸如非线性代理模型115之一之类的非线性代理模型的输出。非线性代理模型115是具有更复杂函数的代理模型,诸如是机器学习模型104。 [0098] 非线性模型图700图示了决策树代理模型。复杂的决策树集合模型可以包括数百 个具有不同复杂程度(例如,几千个级别)的树。决策树代理模型是复杂决策集合树模型(例如,全局决策树代理模型)的近似,并且包括浅决策树(例如,三个级别)。 [0099] 非线性模型图700可以指示决策树代理模型的最常见的决策路径。最常见的决策 路径的粗细可以大于其他决策路径的粗细。例如,“F1”、“F18”和“F2”之间的路径比其他决策路径更粗。这指示“F1”、“F18”和“F2”之间的路径是非线性模型图700的最常见的决策路径。非线性模型图700可以指示决策树代理模型的最不常见的决策路径。最不常见的决策路径的粗细可以比其他决策路径的粗细更细。例如,“F18”与“F50”之间的路径比其他决策路径更细。这指示“F18”与“F50”之间的路径是非线性模型图700的最不常见的决策路径。决策树代理模型的路径的宽度可以指示决策树代理模型使用该路径的频率。 [0100] 非线性模型图700可以包括:与关联于决策树代理模型的不同路径相关联的预测 标签。例如,为具有特征F1、F18和F2的条目输出预测标签“0.136”。 [0101] 在一些实施例中,当在线性模型图(诸如线性模型图300)上选择观察结果(例如,图3中的白点)时,可以更新非线性模型图700来通过决策树代理模型示出观察结果的路径。 [0102] 图8是图示了用于提供代理非线性模型的过程的实施例的流程图。在所示的示例 中,过程800可以由诸如代理模型服务器112之类的系统来实现。 [0103] 在802处,生成决策树代理模型。复杂的决策树模型可以包括数百个具有不同复杂程度(例如,几千个级别)的树。决策树代理模型是复杂的决策树模型的近似,并且包括浅决策树(例如,三个级别)。 [0104] 在804处,接收对线性代理模型图中的观察点的选集的指示。线性代理模型图可以相对于经排名的预测来绘制线性代理模型和机器学习模型的预测标签。观察点是由线性代理模型做出的预测之一。 [0105] 在806处,基于所选观察点来更新决策树代理模型。决策树代理模型可以被更新以通过决策树代理模型示出所选观察点的路径。 [0106] 图9是图示了非线性代理模型的实施例的示图。非线性模型图900可以由诸如代理模型服务器112之类的系统来实现。非线性模型图900可以表示诸如非线性代理模型115之一之类的非线性代理模型的输出。非线性代理模型115是具有更复杂函数的代理模型,诸如是机器学习模型104。 [0107] 非线性模型图900图示了部分依赖图。部分依赖图确定了预测对特征的部分依赖。 部分依赖图被配置成针对所有条目将与特征相关联的特征值修改为相同的值,并且在给定经修改的特征值的情况下确定预测标签。在一些实施例中,为不同特征值确定平均预测标签。例如,非线性图900图示了白点,该白点的值可以在从“-2”到“8”的范围内。白点描绘了针对具有特征值的输入的平均预测标签。例如,白点904指示对于特征值为“2”的所有输入,特定特征的平均预测标签是“0.6”。 [0108] 非线性模型图900图示了针对具有相同特征值的所有条目的预测标签的范围(例 如,一个标准偏差)。例如,范围902指示当特定特征的特征值为“1”时,模型通常将输出0.1到0.4之间的预测标签。 [0109] 非线性模型图900图示了当特征值被设置为特定值时的条目的预测标签。例如,黑点904指示当针对特定特征和特定条目将特征值设置为“1”时,预测标签为0.2。 [0110] 图10是图示了用于提供非线性模型的过程的实施例的流程图。在所示的示例中,过程1000可以由诸如代理模型服务器122之类的系统来实现。 [0111] 在1002处,接收到将与特征相关联的特征值修改为针对所有条目的特定值的指 示。在1004处,将特征修改为针对所有条目的特定值。条目包括具有对应特征值的一个或多个特征。条目输入数据可以指示特定特征的特征值对于所有条目都变化。可以修改输入数据,以使得特定特征的特征值对于所有条目都是相同的。 [0112] 在1004处,确定针对具有相同特征值的条目的平均预测标签。计算具有以下特定特征的所有条目的预测标签,该特定特征具有相同的特征值,并且对该预测标签进行平均。 在1006处,确定针对具有该特征值的条目的预测标签的范围(例如,一个标准偏差)。 [0113] 在1008处,确定针对具有特定特征值的单个条目的预测标签。单个条目可以对应于线性代理模型图中的所选观察点。 [0114] 在一些实施例中,针对特定特征的所有可能的值重复步骤1002-1008。例如,图9中描绘的特征可能具有的特征值为“-2”至“8”。当特征值是“-2”、“-1”……“8”时,可以为其重复步骤1002-1008。 [0115] 图11是图示了仪表板的实施例的图表。在所示的示例中,仪表板1100可以由诸如代理模型服务器122之类的系统来实现。仪表板1100可以被提供给客户端系统,诸如客户端 122。仪表板1100可以包括线性模型图和一个或多个非线性模型图,或者基于原始机器学习模型的图形。 [0116] 在所示的示例中,仪表板1100包括K-LIME线性模型图、特征重要性图、代理模型决策树和部分依赖图。在一些实施例中,接收诸如白点1102之类的观察结果的用户选集。响应于该选集,可以更新特征重要性图、代理模型决策树和部分依赖图。 [0117] 例如,特征重要性图可以被更新来描绘最重要的特征。该最重要的特征可以是与全局代理模型相关联的最重要的特征。最重要的特征可以是与所选观察点相关联的最重要的特征。代理模型决策树可以被更新来反映代理决策树中观察结果到达预测标签所采取的路径。部分依赖图可以被更新以描绘当特定特征的特征值被修改为特定值时,观察点的预测标签如何改变。 [0118] 图12是图示了用于调试机器学习模型的过程的实施例的流程图。在所示的示例 中,过程1200可以由诸如代理模型服务器122之类的系统来实现。 [0119] 在1202处,提供线性模型图。线性模型图可以描绘线性代理模型的预测。 [0120] 在1204处,接收性代理模型中包括的点的选集。线性代理模型图可以相对于经排名的预测来绘制线性代理模型和机器学习模型的预测标签。观察点是由线性代理模型做出的预测之一。 [0121] 在1206处,基于所选点来更新一个或多个非线性代理模型。例如,特征重要性图可以被更新来描绘最重要的特征。代理模型决策树可以被更新来反映代理决策树中观察结果到达预测标签所采取的路径。部分依赖图可以被更新以描绘当特定特征的特征值被修改为特定值时,观察点的预测标签如何改变。 [0122] 在1208处,确定线性代理模型的输出是否与非线性代理模型的输出相关。例如,线性代理模型的输出可以指示特征“F1”是影响线性代理模型的预测标签的最重要特征之一,而非线性代理模型的输出指示特征“F1”不是影响非线性代理模型的预测的最重要特征之一。 [0123] 响应于确定线性模型与线性模型一致,过程1200进行到1210。响应于确定线性模型与线性模型不一致,过程1200进行到1212。 [0124] 在1210处,线性代理模型和/或非线性代理模型中的至少一个被确定为是准确的。 确定这些模型是准确的,因为解释被认为是准确的。例如,所确定的特征重要性、决策树代理模型输出、和/或随时间保持稳定或在有意干扰训练数据时保持稳定的部分依赖图可以与人类领域专业知识进行匹配,以调试模型。如果该解释与人类领域专业知识匹配,则可以给模型添附更多置信度。通过将所显示的决策过程、重要的特征和重要的相互作用与已知标准、领域知识和合理期望进行比较,可以将这些技术用于可视化、验证和调试机器学习模型。 [0125] 在1212处,(一个或多个)线性和/或非线性模型被重新训练。在一些实施例中,如果标记了阈值数目的条目,则重新训练线性和/或非线性代理模型。如果与线性代理模型相关联的预测标签与关联于非线性代理模型的预测标签不相关,则可以标记条目。 [0126] 虽然出于理解清晰的目的对前述实施例进行了比较详细的描述,但是本发明并不限于所提供的细节。存在实现本发明的许多替换方式。所公开的实施例是说明性的而非限制性的。

相关技术
M·陈发明人的其他相关专利技术