一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

不确定性的确定的制作方法

2022-12-07 03:23:39 来源:中国专利 TAG:


1.本公开总体涉及数据处理,并且具体地,涉及确定由机器学习模型生成的预测中的稀有值和/或缺失值的不确定性。


背景技术:

2.机器学习(ml)模型生成预测,即使观察到的变量具有稀有值或缺失值也如此。变量值的稀有性或缺失可能有各种原因,包括根本原因。例如,在用于训练目标为学生贷款的违约风险的模型的数据集的输入变量中,有时可能缺失测试的分数。缺失测试分数的常见原因可能是,一些得到低分的个体可能不愿意透露。如果低的测试分数与较高的风险有关,那么从这样的数据集中训练的ml模型可能会为缺失的测试分数分配高的贡献。类似地,定类变量中的稀有类别可能与常见原因有关,并且导致ml模型从类别的稀有性中进行归纳。
3.然而,缺失值和/或稀有值也可能随机出现,与目标没有任何因果关系,例如,在贷款申请人在回答关于分数的问题时不能想起确切的分数,或者在他/她声明了稀有的职业或原籍国等的情形中。在这种情况下,典型的ml模型可能从很少(例如,稀有类别)和/或没有(例如,缺失值)的证据中进行归纳。因此,对训练群体中可能随机出现的稀有值和/或缺失值的不确定性进行量化可以有助于生成关于包括这样的值作为输入的ml预测的警报。


技术实现要素:

4.在一些实施方式中,当前主题涉及一种用于确定由机器学习模型生成的预测中的稀有值和/或缺失值的不确定性的计算机实现的方法。该方法可以包括由至少一个处理器接收用于训练预测模型的数据集。数据集可以包括与一个或多个值相关联的多个变量。预测模型可以被配置用于根据多个变量中的一个或多个变量确定目标值。该方法还可以包括由处理器使用接收到的数据集训练预测模型,将预测模型应用于接收到的数据集中的一个或多个变量以生成预测。该方法可以进一步包括基于应用生成对应于一个或多个缺失值的一个或多个贡献的一个或多个不确定性区间,该一个或多个缺失值对应于多个变量中的一个或多个变量;以及基于应用生成与一个或多个稀有值的一个或多个贡献相对应的一个或多个不确定性区间,该一个或多个稀有值对应于多个变量中的一个或多个变量。可以基于一个或多个生成的不确定性区间生成指示预测的警报。
5.还描述了非暂时性计算机程序产品(即物理体现的计算机程序产品),其存储由指令,当由一个或多个计算系统的一个或多个数据处理器执行时,这些指令使至少一个数据处理器执行本文的操作。类似地,也描述了计算机系统,其可以包括一个或多个数据处理器以及耦合到一个或多个数据处理器的存储器。存储器可以暂时地或永久地存储指令,这些指令使至少一个处理器执行本文描述的操作中的一个或多个。此外,可以由单个计算系统内或在两个或更多个计算系统当中分布的一个或多个数据处理器来实施方法。这样的计算系统可以经由一个或多个连接(包括但不限于通过网络(例如,因特网、无线广域网、局域网、广域网、有线网络等)的连接)、经由多个计算系统中的一个或多个之间的直接连接等进
行连接,并且可以交换数据和/或命令或者其它指令等,。
6.本文所述主题的一个或多个变体的细节在附图和下面的描述中阐述。本文所述主题的其它特征和优点将从描述和附图以及权利要求中显而易见。
附图说明
7.并入本说明书并构成本说明书的一部分的附图展示了本文公开的主题的某些方面,并且与描述一起,有助于解释与公开的实施方式相关联的原理中的一些。在附图中,
8.图1示出了根据当前主题的一些实施方式的示例性系统,该示例性系统用于执行对稀有值和/或缺失值的贡献的不确定性级别的确定并且生成针对这样的不确定性可能如何影响应用于数据集的机器学习模型的输出的指示;
9.图2示出了根据当前主题的一些实施方式的示例性过程,该示例性过程用于确定分配给输入数据集中包含的变量的贡献的不确定性级别,该变量的值是缺失或稀有的;
10.图3是分配给单个变量的贡献关于预测输出的分布的示例性点线图;
11.图4是根据当前主题的一些实施方式的示例性实验点线图,该示例性实验点线图针对分配给稀有类别的给定贡献值示出这样的类别的潜在实际贡献的分布;
12.图5是根据当前主题的一些实施方式的示出包括数据存储应用的示例性系统的示意图;
13.图6是示出图5的系统的细节的示意图;
14.图7示出了根据当前主题的一些实施方式的示例性系统;以及
15.图8示出了根据当前主题的一些实施方式的示例性方法。
具体实施方式
16.为了解决当前可用解决方案的缺陷,当前主题的一个或多个实施方式提供了分析与使用稀有值和/或缺失值作为输入以生成预测输出相关联的不确定性并且生成关于这样的预测的警报的能力。
17.现有的人工智能(ai)框架(例如,explainable ai(xai)框架)不提供稀有值或缺失值的贡献的不确定性区间。当这样的现有预测模型针对预测生成不确定性区间时,它们无法指示不确定性的来源或关于与稀有值和/或缺失值相关联的具体不确定性的警报。例如,预测模型在验证数据集上可能95%准确,然而,所有误差可能是使用稀有值/缺失值的结果。在这种情况下,由该模型作出的任何预测可以被描述为95%准确,而系统应该特别警报终端用户关于从稀有值/缺失值中生成的预测的有限准确度。在由预测模型生成的输出被用于作出影响人类、至关重要的计算系统和/或医疗、经济等其它方面的决策的情况下,这一差别可能变得至关重要。
18.在一些实施方式中,当前主题可以被配置为查明与可以被机器学习模型用于预测的生成中的缺失值/稀有值相关联的不确定性。在一些示例性的非限制的实施方式中,当前主题可以使用xai框架(例如,集成在sap hana自动预测库(apl)中的shap框架,可从德国沃尔多夫的sap ag获得)以从应用于一组观测的预测模型中提取个体变量贡献。可以理解的是,可以使用提取局部贡献的任何解释框架。
19.为了确定与缺失值/稀有值相关联的不确定性的目的,当前主题系统可以假设x可
以是预测模型的输入变量,而o可以是观测。如果x的值对于o来说是缺失的,则当前主题可以生成该值可能是随机缺失的假设。因此,缺失值的贡献的分布可能与样本群体中x的贡献的分布匹配。从该分布中,可以确定随机缺失值的贡献的不确定性区间。
20.如果x具有稀有值v(例如,如果x是定类的,则为稀有类别),则可以使用xai框架提取其对模型的贡献c。稀有值可以随机出现以及机器学习过程可以从少数训练出现中进行归纳的假设可以用于解释不确定性区间的确定。使用数据集中的值可能由于偶然而稀有的假设,可以通过执行对数据集中可用的常见类别的模拟来估计本应分配给该值的类别的贡献。该估计可以包括生成另一版本的数据集,其中一个变量的常见类别中的一个或多个被伪稀有类别替换。例如,如果x是国家,一些原来的国家(例如,“美国”)可以用伪稀有类别(例如,“美国_2”,其用于出现至少两次的稀有类别)替换。可以使用改变后的数据集训练预测模型,以及可以使用xai框架提取针对数据集的原始版本和改变后的版本两者生成的贡献。首先,可以确定针对实际x值生成的贡献(即实际贡献),然后可以确定针对伪稀有值生成的贡献(即模拟贡献)。对于分配给从源类别v衍生出的伪类别v'的模拟贡献c,分配给类别v的所有实际贡献c可以在确定其分布时考虑。可以获取针对分配给稀有值的任何给定贡献的潜在实际贡献的分布(即,如果类别不是稀有的,本应分配给该类别的贡献)。这可以以提取的贡献和该值的频率为条件针对稀有值的任何贡献提供不确定性区间。
21.图1示出了根据当前主题的一些实施方式的示例性系统100,该示例性系统100用于执行与使用稀有值和/或缺失值作为输入来生成预测输出相关联的不确定性的确定,并且用于指示这样的不确定性可能如何影响由机器学习模型在应用于数据集时生成的输出。系统100可以包括分析引擎和/或计算平台102(其可以包括机器学习组件108)、一个或多个用户设备104以及存储/数据库组件106。可以使用一个或多个通信网络通信地耦接组件102-108。通信网络可以包括以下的至少一个:有线网络、无线网络、城域网(“man”)、局域网(“lan”)、广域网(“wan”)、虚拟局域网(“vlan”)、互联网、外联网、内联网、和/或任何其它类型的网络和/或它们的任何组合。
22.组件102-108可以包括硬件和/或软件的任何组合。在一些实施方式中,组件102-108可以设置在一个或多个计算设备上,诸如服务器、数据库、个人计算机、膝上型计算机、蜂窝式电话、智能电话、平板计算机、和/或任何其它计算设备和/或它们的任何组合。在一些实施方式中,组件102-108可以设置在单个计算设备上和/或可以是单个通信网络的部分。替代地,各组件可以彼此分开放置。
23.用户可以经由用户设备104访问系统100。用户设备104可以用于执行有关于与稀有值/缺失值相关联的不确定性及其对由机器学习模型在将其应用于特定数据集之后生成的输出的影响的确定的各种过程。设备104可以包括能够允许各种数据的录入的一个或多个数据输入组件。在一些实施方式中,数据可以由用户设备104从一个或多个第三方数据库中查询。用户设备104可以用于生成查询并将其发送到引擎102,引擎102可以确定哪个数据库可能包含所需要的信息,然后与该数据库连接以执行查询并检索适当的信息。在一些实施方式中,引擎102可以包括各种机器学习能力(例如,可以使用xai框架)、应用编程接口(api)和/或可以允许用户设备104、数据库和/或任何其它组件之间的接合的通信接口。
24.使用设备104的一个或多个用户可以访问系统100。用户可以是个体用户、计算设备、软件应用、对象、功能、和/或任何其它类型的用户和/或它们的任何组合。在获取用于分
析的数据集后,可以指令引擎102处理所获取的数据和/或从一个或多个数据库组件106中提取任何附加数据,并且执行对接收到的数据的分析。到引擎102的指令/命令可以是以查询、函数调用和/或任何其它类型的指令/命令的形式。在一些实施方式中,可以使用麦克风(单独的麦克风或嵌入在用户计算设备中的麦克风)、扬声器、屏幕(例如,使用触摸屏、触控笔和/或以任何其它方式)、键盘、鼠标、相机、便携式摄像机、电话、智能电话、平板计算机、个人计算机、膝上型计算机,和/或使用任何其它设备来提供指令/命令。用户设备104还可以指令引擎102执行对可能存在在系统100中(例如,存储在数据库106中)和/或经由数据设备104输入的数据的分析。分析可以实施各种机器学习技术,如下进一步讨论的。
25.可以使用任何手段来获取数据用于由引擎102执行的分析的目的,其中手段可以包括以下的一个或多个:麦克风(单独的麦克风或嵌入在用户计算设备中的麦克风)、扬声器、屏幕(例如,使用触摸屏、触控笔和/或以任何其它方式)、键盘、鼠标、相机、便携式摄像机、电话、智能电话、平板计算机、个人计算机、膝上型计算机,和/或使用任何其它设备。引擎102还可以从各种第三方来源获取数据。在一些实施方式中,引擎102可以通信地耦接到可以存储各种信息的各种公共和/或私有数据库。
26.引擎102可以处理从用户设备104接收到的输入(例如,查询)和/或数据,并访问数据库106以获取可能存储在数据库106中的相关数据。数据库106可以以各种格式存储信息,例如,表格式、列-行格式、键-值(key-value)格式等(例如,每个键可以指示各种属性,而每个相应的值可以指示属性的值)。
27.在一些实施方式中,数据库106可以存储可以通过由引擎102生成的查询访问的多个表。这些表可以存储不同类型的信息,其中表可以因为对其它表的更新而被更新。
28.引擎102可以执行对所获取的数据(包括过去的数据、连续提供的数据和/或任何其它数据)的分析(例如,统计分析、机器学习分析等),并且可以生成对分配给用于预测作为由引擎102执行的机器学习过程的结果的输出的一个或多个稀有值/缺失值的贡献的不确定性的指示。引擎102可以一次性和/或连续地执行这样的分析/评估,例如,当更新的数据被供应给引擎102时,引擎102可以执行对先前不确定性指示的分析及重新评估。在执行其分析时,引擎102还可以生成附加查询以获取进一步的信息。在完成其分析后,引擎102可以被配置为生成警报,例如,声音警报、视觉警报(显示在用户界面上)和/或任何其它警报。
29.下面是对由引擎102执行的机器学习过程,用于执行对可能包括稀有值/缺失值的数据的不确定性分析的详细讨论。
30.如上所述,各种机器学习模型生成预测,即使当来自类别变量的证据很缺乏也如此。典型的类别变量可以由具有异质频率的类别来表示。定类变量的类别可以遵循帕累托分布(pareto distribution,用于描述例如社会、质量控制、科学、地球物理、精算和其它可观察现象的幂律概率分布),即少数类别可能在训练数据中具有高频率并提供强的证据来训练模型,而其它类别在模型应用于新数据时可能是稀有的或甚至是缺失的。在帕累托分布中,大约80%的类别可以在大约20%的观测中找到。在一些情况下,类别变量可能具有缺失值。对于机器学习算法来说,缺失或稀有的类别是被考虑的数据。类别的稀有性或类别变量是否缺失可以传达语义。例如,如果模型的目的是预测完全偿还贷款的倾向,并且如果变量描述了申请人的职业,则缺失的职业可能意味着申请人没有当前收入来源。还可能发生的是,大多数不常见的职业可能与不稳定的工作有关。典型的机器学习模型可以从缺失的
变量和/或稀有的类别中进行归纳。这样的值可能是由于例如完全随机的原因、偶然等而缺失和/或稀有。然而,值由于这样的原因而缺失/稀有的可能性不可以被排除。类似地,在现实生活中,一个稀有类别r可能不会遵循与其它稀有类别相同的模式。如果训练数据集是任意大,机器学习算法可以有足够的关于类别r的观测以确定其具体模式,但是在大多数应用中,机器学习模型可能是从稀有类别的有限实例中训练的。
31.为了训练分类模型,数据集可以被划分成训练集和验证集。训练数据集可以用于训练模型,而验证集可以用于在训练模型时控制偏差/方差权衡。模型输入可以包括类别变量x和任何其它变量。
32.在一些实施方式中,可以提取由预测模型分配给每个变量的贡献。作为非限制性示例,如上所述的shap xai框架可以用于确定贡献。然而,也可以使用任何其它框架。
33.在常见类别的情况下,预测模型中来自x的贡献也可以接近实际影响。然而,这些贡献对于稀有类别可能是不准确的,例如,它们可能显著偏离对目标的实际影响。
34.在一些实施方式中,为了确定由预测模型分配给稀有和/或缺失的类别/值的贡献的不确定性以生成预测输出,当前主题可以假设值是由于随机原因、偶然等而稀有和/或缺失。如果类别是缺失的(或未知的)和/或稀有的,当前主题可被配置为避免将一般模式应用于它们,这些模式可能适用于已知/常见类别。相反,在缺失值的情况下,当前的主题系统可以被配置为使用针对类别变量生成的所有贡献来确定不确定性区间。在稀有值的情况下,当前的主题可以被配置为基于针对常见类别及其衍生的伪稀有类别生成的贡献执行模拟来确定不确定性区间。
35.图2示出了根据当前主题的一些实施方式的示例性过程200,该示例性过程200用于确定关于由预测模型生成的预测而分配给变量的贡献的不确定性级别。变量可以具有的值可能是缺失和/或未知的和/或以其他方式是稀有值(例如,在稀有类别中)。过程200可以由计算处理器执行,诸如图1中所示的不确定性分析引擎102。数据集可以从数据库106获取和/或由用户104提供。数据集可以以表格式和/或以任何期望的方式结构化。
36.参照图2,在202处,具有一个或多个输入变量的输入数据集可以由不确定性分析引擎102(在图1中示出)接收(例如,发送到不确定性分析引擎102)。输入数据集可以用于训练预测模型。模型可以用于分析和/或预测特定输出(例如,生成目标值或结果)。输入数据集中的一个或多个变量可以具有用于观测的值,其可以在204处确定。
37.在206处,不确定性分析引擎102可以被配置为确定特定观测的特定输入变量的值是否可能缺失。例如,值可能没有被录入(有意或无意地)、确定、和/或可能不存在。替代地,或除此之外,值可能不被预测模型所知,例如,在训练集中不存在的值。
38.如果值被确定是缺失的,过程200继续进行至226,其中引擎102可以确定和/或假设值是随机缺失的。替代地,或除此之外,引擎102可以被配置为假设可能没有在接收到的训练输入数据集中遇到这样的未知值和/或类别。此外,缺失值可以被视为未知类别的特殊情况,其中如果特定变量的值是缺失的,则可能意味着关于该变量几乎没有或者没有数据可用。另外,缺失值可能是未知类别的特殊情况,因为这样的值可能具有特定值,即预测模型没有在其上训练。
39.在228处,引擎102可以被配置为基于变量的所有值的贡献的分布来确定不确定性区间。在一些实施方式中,可以针对所有缺失值/未知值估计不确定性区间。不确定性区间
可以基于变量的所有值的贡献的分布来确定。当将预测模型应用于具有缺失类别/未知类别的观测时,预测模型可以将贡献归于它们(例如,可以分配贡献给变量的值,即使是缺失或稀有的也如此)。任何未知类别,即从未在输入训练数据集中遇到的类别,可以被分配对于预测模型来说是显著的贡献。使用预测模型,引擎102可以使用它从未遇到的类别作出预测。例如,两个未知且又不同的类别可能无法区分,从而由预测模型分配类似的贡献,即使它们的实际贡献可能显著不同也如此。以下代码和下面的示例性实验表1针对输入数据集(这里,使用了示例性样本数据集)中的输入变量x示出了这一点:
40.train[np.isin(train['x'],unknown_categories['x'])]
[0041]
empty dataframe
[0042]
columns:[x,effect,other_variables,target]
[0043]
index:[]
[0044]
predicted[np.isin(predicted['x'],unknown_categories['x'])]
[0045]
表1.缺失值/未知值的实验值
[0046][0047][0048]
表1(继续)
[0049] 其它贡献预测实际x频率频率999920.8222680.4962420.72571211999880.2061440.3631070.45240711
[0050]
上述表1指示了针对输入变量x、x的贡献(即它可能如何影响目标值)以及数据集中其它变量的贡献(预测和实际)的各种示例性影响的值。这里,引擎102可以被配置为假设未知/缺失和/或稀有的类别可能具有与任何其它类别相同的现实生活贡献。缺失值/未知值的分布可以遵循输入变量的任何值的贡献的分布。
[0051]
在230处,可以确定与由数据集中的输入变量(例如,x)的缺失值/未知值对目标的贡献相关联的不确定性区间。可以使用任何分布(例如,使用高斯分布)作出这样的确定。变量x的值的贡献的示例性实际分布由图3中所示的点线图300示出。
[0052]
如果在206处,输入变量的值不是缺失或未知的,引擎102(在图1中示出)可以被配置为在208处执行与确定输入变量的值是否是稀有的和/或对应于稀有类别相关联的过程。在210处,引擎102可以被配置为提取稀有值对于预测模型的局部贡献,并且在212处假设特定的稀有值可能是随机稀有的。以下示例性代码可以用于确定类别是否在训练数据集中很少见(结果在下面所示的表2中):
[0053]
rare_categories=validation_categories[(validation_categories['validation_freq']》0)
[0054]
&(validation_categories['train_freq']》0)
[0055]
&(validation_categories['train_freq']《5)]
[0056]
predicted[np.isin(predicted['x'],rare_categories['x'])]
[0057]
表2.稀有值的实验结果
[0058] xx实际影响其它目标x贡献99990x55-0.595784-0.3548610-0.61611999946x52-0.756773-0.13314501.87701899989x55-0.5957840.2529090-0.72736295426x49-0.7679481.41060000.09527399975x630.971850-1.0190481-0.63987395431x49-0.7679483.5273731-0.10082499954x51-0.3469951.5527371-1.37376299950x52-0.756773-1.02505801.81504199951x51-0.3469952.6661101-1.42408399959x610.0049800.8942320-0.79395895427x49-0.7679481.10907710.075711
[0059]
表2(继续)
[0060] 其它贡献预测实际x频率频率99990-0.2539770.2865850.27875522999460.0622850.8695940.29112722999890.2073860.3631070.41511122954261.1577210.7704870.6553533399975-0.8794100.1734730.48820311954313.7209470.9728330.94044333999541.3583670.4856730.7695452299950-0.9374740.6975450.14407722999512.3295710.7034030.91044822999590.8208550.4962420.71078811954270.8815760.7140950.58446533
[0061]
因此,稀有类别(例如,那些在训练集中仅发现一定次数的类别)可以具有对于预测的实质贡献。为了分析由引擎102执行的机器学习过程如何分配非常稀有的类别的贡献,引擎102可以被配置为创建训练数据集的另一版本以生成经修改的观测,其中综合类别可以从常见源类别中创建。为了生成综合类别,引擎102可以被配置为在214处替换这样的类别的名称(即用伪稀有类别值替换常见类别值)并给它们分配固定的出现频率(例如,为10或任何其它值的频率)。这可以使用以下示例性代码来完成。
[0062]
df1=df.sample(frac=1)
[0063]
features=df1.columns.values
[0064]
df1=df1.assign(frequency=df1.groupby('x')['x'].transform('count'))
[0065]
freq=10
[0066]
very_rare=df1[df1['frequency']《freq 1]
[0067]
remaining=df1[df1['frequency']》=freq 1]
[0068]
#enough samples with rare categories
[0069]
samples=1000
[0070]
#the samples may be picked from available data,when actual category frequency is above the frequency of interest
[0071]
sample=remaining[:samples]
[0072]
sample_source=sample.copy()
[0073]
data=remaining[samples:]
[0074]
sample=sample.assign(x_uid=sample.groupby('x')['x'].transform('cumcount'))
[0075]
sample['x_modified']=sample['x'].astype('str') '__' sample['x_uid'].astype('str')
[0076]
sample['fold']='sample'
[0077]
data=data.assign(x_ordinal=data.groupby('x')['x'].transform('cumcount'))
[0078]
data['x_uid']=data['x_ordinal']//freq
[0079]
data=data.assign(x_uid_freq=data.groupby(['x','x_uid'])['x_uid'].transform('count'))
[0080]
data=pd.merge(data,sample[['x','x_uid','x_modified']],on=['x','x_uid'],how='left')
[0081]
data['modified']=-data['x_modified'].isnull()&(data['x_uid_freq']==freq)
[0082]
data['x']=np.where(data['modified'],data['x_modified'],data['x'])
[0083]
data['fold']='other'
[0084]
sample['x']=sample['x_modified']
[0085]
unmodified=pd.concat([data[-data['modified']],very_rare])
[0086]
train=unmodified[:int(len(unmodified)*0.8)]
[0087]
validation=unmodified[int(len(unmodified)*0.8):]
[0088]
modified=data[data['modified']]
[0089]
train=pd.concat([train[features],modified[features]])
[0090]
validation=pd.concat([validation[features],sample[features]])
[0091]
引擎102可以验证每个综合类别在训练数据集中具有预期频率。针对综合类别或伪类别的命名惯例可以是《source》_《uid》,其中《source》是从其中衍生出综合类别或伪类别的真实类别的名称,而《uid》对于类别(即,源类别、综合类别/伪类别)对是唯一的。
[0092]
引擎102然后可以在216处执行使用生成的训练集对新预测模型的训练。经修改的训练数据集现在由实际观测和包含综合类别/伪类别的观测组成。目标值可以保持不变,因此,综合稀有类别的实际影响可以与创建它们的实际源类别的影响相同。这里,引擎102可以被配置为在218处确定伪类别的影响/贡献。
[0093]
过程200然后可以继续进行以在220处确定在给定模拟贡献值的情况下每个类别的实际贡献的分布,并且类似于未知值/缺失值的情况,在222处生成针对稀有值的贡献的不确定性区间。例如,引擎102可被配置为在给定由预测模型分配给其的贡献的情况下执行可以允许它为稀有类别确定其潜在的真实贡献的分布的模拟。潜在的真实贡献的分布可以
基于分配给人为使之稀有的常见类别的贡献来确定。例如,如上所述,针对每个分配给给定的低频率类别的预测贡献,引擎102可以从在使用给定的低频率来人为使之稀有之后得到接近预测贡献的贡献的类别中得出实际贡献的分布。图4示出了根据当前主题的一些实施方式的这样的分布的示例性实验点线图400。
[0094]
作为非限制性示例,如图4所示,大约90%的得到等于1的对数几率贡献的类别,当人为使之稀有(即频率=10)时,在它们没有改变时具有宽的贡献分布。引擎102可以被配置为使用标准统计工具分析这样的分布以得出针对稀有类别的实际贡献的不确定性区间。在上述示例中,假设贡献上的误差遵循高斯分布,每当xai框架针对遇到了10次的类别提取等于1的贡献时,贡献及其不确定性可以表示为:
[0095]
*1 /-0.66
[0096]
*从0.33至1.66
[0097]
*“正向(positive)”或“高度正向(highly positive)”[0098]
关于来自稀有类别、未知类别和/或缺失类别的贡献的不确定性可以是关于预测本身的不确定性的来源。此外,可以分析来自几个变量中的多个稀有类别的不确定性,以得出它们对于关于预测的不确定性的组合贡献。在上述分析之后,引擎102可以被配置为生成(和/或发送)适当的通知、警报和/或触发,以指示预测的可行性。
[0099]
在一些实施方式中,当前主题可以在各种内存数据库系统中实施,诸如德国沃尔多夫的sap se开发的高性能分析应用(“hana”)系统。各种系统,诸如企业资源规划(“erp”)系统、供应链管理(“scm”)系统、供应商关系管理(“srm”)系统、客户关系管理(“crm”)系统和/或其它系统,可以例如为了访问数据的目的而与内存系统交互。其它系统和/或系统的组合也可以用于当前主题的实施方式。以下是对示例性内存系统的讨论。
[0100]
图5示出了根据当前主题的一些实施方式的示例性系统500,其中计算系统502执行数据存储应用504的一个或多个模块、软件组件等,计算系统502可以包括能够并置、通过一个或多个网络链接等的一个或多个可编程的处理器。数据存储应用504可以包括数据库、企业资源程序、分布式存储系统(例如,可从加利福尼亚州桑尼维尔的netapp获得的netapp filer)等中的一个或多个。
[0101]
该一个或多个模块、软件组件等可以被计算系统502的本地用户以及从一个或多个客户端机器506通过网络连接510访问计算系统502的远程用户访问。由一个或多个第一模块产生的一个或多个用户界面屏幕可以经由本地显示器或经由与客户端机器506中的一个相关联的显示器向用户显示。数据存储应用504的数据单元可以瞬时存储在持久层512(例如,页面缓冲区或其它类型的临时持久层)中,其可以例如经由输入/输出组件516将数据以存储页面的形式写入一个或多个存储装置514。一个或多个存储装置514可以包括被配置为写入数据用于较长期存储的一个或多个物理存储介质或设备(例如,硬盘驱动器、持久性闪速存储器、随机存取存储器、光学介质、磁性介质等)。应当注意的是,存储装置514和输入/输出组件516可以包括在计算系统502中,尽管在图5中它们被显示为在计算系统502的外部。
[0102]
保留在较长期存储装置514的数据可以组织在页面中,它们中的每个都向其分配限定的存储空间量。在一些实施方式中,分配给每个页面的存储空间量可以是恒定且固定的。然而,其它实施方式(其中分配给每个页面的存储空间量可以变化)也在当前主题的范
围内。
[0103]
图6示出了根据当前主题的一些实施方式的示例性软件架构600。数据存储应用504(可以在硬件和软件的一个或多个中实施)可以包括数据库应用、网络附属存储系统等中的一个或多个。根据当前主题的至少一些实施方式,这样的数据存储应用504可以包括持久层512或其它类型的存储缓冲区,或者以其它方式(例如,经由持久性接口602)与持久层512或其它类型的存储缓冲区接合。持久层512内的页面缓冲区604可以存储一个或多个逻辑页面606,并且可选地可以包括影子页面、活动页面等。保留在持久层512中的逻辑页面606可以经由输入/输出组件516写入到存储装置514(例如,长期存储装置等),其可以是软件模块,在软件和硬件的一个或多个中实施的子系统等。存储装置514可以包括一个或多个数据卷(data volume)610,其中所存储的页面612被分配在物理内存块中。
[0104]
在一些实施方式中,数据存储应用504可以包括页面管理器614和/或保存点管理器616,或者以其它方式与页面管理器614和/或保存点管理器616进行通信。页面管理器614可以与在持久层512处的页面管理模块620进行通信,页面管理模块620可以包括监控页面状态信息624(例如,存储装置514内的物理页面和持久层512中(以及可选地在页面缓冲区604中)的逻辑页面的状态)的空闲块管理器622。保存点管理器616可以与在持久层512处的保存点协调器626进行通信以处理保存点,保存点被用于创建一致的、持久的数据库状态,用于在可能的崩溃之后的重新启动。
[0105]
在数据存储应用504的一些实施方式中,持久层512的页面管理模块可以实施影子分页。页面管理模块620内的空闲块管理器622可以维持物理页面的状态。页面缓冲区604可以包括如本文所讨论的那样操作的固定页面状态缓冲区。转换器组件640(可以是页面管理模块620的部分或与页面管理模块620通信)可以负责写入存储装置514的物理页面与逻辑页面之间的映射。转换器640可以维持转换器表642中的逻辑页面到相应物理页面的当前映射。转换器640可以维持一个或多个转换器表642中的逻辑页面606到相应物理页面的当前映射。当逻辑页面606从存储装置514中读出时,可以使用转换器640从一个或多个转换器表642中查找要加载的存储页面。当逻辑页面在保存点之后第一次被写入存储装置514时,新的空闲物理页面被分配给该逻辑页面。空闲块管理器622将新的物理页面标记为“已使用”,并且新的映射被存储在一个或多个转换器表642中。
[0106]
持久层512可以确保在数据存储应用504中作出的更改是持续的,并且数据存储应用504可以在重新启动之后恢复到最近提交的状态。写入数据到存储装置514不需要与写入事务的结束同步。因此,未提交的更改可以被写入盘,而已提交的更改在写入事务完成时可能还没有被写入盘。在系统崩溃之后,由未完成的事务作出的更改可以被回滚。已经提交的事务出现的更改不应该在这个过程中丢失。还可以包括日志记录器组件644用于将对数据存储应用的数据作出的更改存储在线性日志中。日志记录器组件644可以在恢复期间用于重放自上个保存点以来的操作,以确保所有操作都被应用于数据,并且带有日志记录的“提交”记录的事务在对恢复过程结束时仍然开放的事务进行回滚之前提交。
[0107]
对于一些数据存储应用,写入数据到盘不必要与写入事务的结束同步。可能出现以下情况,其中未提交的更改被写入盘,并且同时,已提交的更改在写入事务完成时还没有被写入盘。在系统崩溃之后,由未完成的事务作出的更改必须回滚,而由已提交的事务作出的更改一定不能丢失。
[0108]
为了确保已提交的更改没有丢失,每当作出更改时,可以由日志记录器组件644写入重做日志信息。该信息最晚可以在事务结束时写入盘。在正常数据被写入数据卷时,日志条目可以维持在单独的日志卷中。使用重做日志,即使相应的数据页面没有被写入盘,也可以恢复已提交的更改。对于撤销未提交的更改,持久层512可以使用撤销日志条目(来自一个或多个日志)和影子分页的组合。
[0109]
持久性接口602可以处理存储(例如,内存存储等)的读取和写入请求。持久性接口602还可以提供带有日志记录和没有日志记录地写入数据的写入方法。如果使用日志记录的写入操作,持久性接口602调用日志记录器644。此外,日志记录器644提供了允许存储(例如,内存存储等)直接将日志条目添加到日志队列中的接口。日志记录器接口还提供了请求将内存日志队列中的日志条目刷新到磁盘的方法。
[0110]
日志条目包含日志序列号、日志条目的类型和事务的标识符。取决于操作类型,由日志记录器644对附加信息进行日志记录。例如,对于“更新”类型的条目,这会是受影响的记录的标识和经修改的数据的残留图像。
[0111]
当数据应用504被重新启动时,需要处理日志条目。为了加速该过程,重做日志不总是从开始进行处理。相反,如上所述,可以周期性地执行保存点,以将自上个保存点以来作出(例如,在存储器中等)的所有更改写入盘。当启动系统时,只需要处理上个保存点之后创建的日志。在下次备份操作之后,保存点位置之前的旧日志条目可以被移除。
[0112]
当日志记录器644被调用用于写入日志条目时,它不会立即将日志条目写入盘。而是,它可以将日志条目放入存储器中的日志队列。日志队列中的条目最晚可以在相应的事务完成(已提交或已中止)时被写入盘。为了保证已提交的更改不丢失,在相应的日志条目被刷新到盘之前,提交操作不会成功完成。将日志队列条目写入盘还可以由其它事件触发,例如,当日志队列页面已满或当保存点被执行。
[0113]
通过目前的主题,日志记录器644可以以自然顺序(例如,相继顺序等)将数据库日志(或在本文简单地称为“日志”)相继写入存储缓冲区。如果使用几个物理硬盘/存储设备来存储日志数据,则可以定义几个日志分区。此后,日志记录器644(如上所述,其作用为生成和组织日志数据)可以在所有可用日志分区上对日志缓冲区进行负载平衡写入。在一些情况下,负载平衡是根据轮循调度分配方案进行的,其中各种写入操作是以相继和连续的方式指向日志缓冲区。在这样的安排下,写入多分区日志的特定分区的单个日志片段的日志缓冲区不是连续的。然而,日志缓冲区可以在恢复期间从所有分区的日志片段中重新排序至恰当的顺序。
[0114]
如上所述,数据存储应用504可以使用影子分页,使得保存点管理器616可以写入在事务上一致的保存点。在这样的安排下,数据备份包括包含在特定保存点中的所有数据页面的副本,这是作为数据备份过程的第一步进行的。当前主题还可以应用于其它类型的数据页面存储。
[0115]
在一些实施方式中,当前主题可以被配置为在系统700中实施,如图7所示。系统700可以包括处理器710、存储器720、存储设备730和输入/输出设备740。组件710、720、730和740中的每个可以使用系统总线750互连。处理器710可以被配置为处理指令,用于系统700内的执行。在一些实施方式中,处理器710可以是单线程处理器。在替代实施方式中,处理器710可以是多线程处理器。处理器710可以被进一步配置为处理存储在存储器720中或
在存储设备730上的指令,包括通过输入/输出设备740接收或发送信息。存储器720可以将信息存储在系统700内。在一些实施方式中,存储器720可以是计算机可读介质。在替代实施方式中,存储器720可以是易失性存储器单元。在又一些实施方式中,存储器720可以是非易失性存储器单元。存储设备730可以能够为系统700提供大容量存储。在一些实施方式中,存储设备730可以是计算机可读介质。在替代实施方式中,存储设备730可以是软盘设备、硬盘设备、光盘设备、磁带设备、非易失性固态存储器,或任何其它类型的存储设备。输入/输出设备740可以被配置为为系统700提供输入/输出操作。在一些实施方式中,输入/输出设备740可以包括键盘和/或指向设备。在替代实施方式中,输入/输出设备740可以包括用于显示图形用户界面的显示单元。
[0116]
图8示出了根据当前主题的一些实施方式的用于确定与由计算系统执行的预测建模环境相关联的不确定性的示例性方法800。方法800可以由如图1所示的系统100(特别是处理引擎102)执行。方法800可以实现上面联系图2-图5讨论的技术。
[0117]
在802处,引擎102处理器可以被配置为接收用于训练预测模型的数据集。数据集可以包括与一个或多个值相关联的多个变量。预测模型可以被配置为用于根据多个变量中的一个或多个变量确定目标值。在804处,可以训练预测模型。预测模型的训练可以包括使用接收到的数据集训练模型。在一些实施方式中,可以使用具有一个或多个改变的变量(例如,具有伪类别中的值的变量,如上文所讨论的)的接收到的数据集单独训练该模型,如在810处所执行的。在806处,预测模型可被应用于所接收的数据集中的一个或多个变量和/或记录,以生成预测。在808处,可以生成与一个或多个缺失值的一个或多个贡献相对应的一个或多个不确定性区间,该一个或多个缺失值对应于所述多个变量中的一个或多个变量。在810处,可以生成与一个或多个稀有值的一个或多个贡献相对应的一个或多个不确定性区间,该一个或多个稀有值对应于所述多个变量中的一个或多个变量。在812处,引擎102可以基于一个或多个生成的不确定性区间生成指示预测的警报。
[0118]
在一些实施方式中,当前主题可以包括以下可选的特征中的一个或多个。数据集中的至少一个变量可以具有未知值或缺失值。未知值或缺失值可以是随机未知值或随机缺失值。在一些实施方式中,不确定性区间的生成可以包括基于分配给接收到的数据集中的变量的所有值的贡献的分布生成一个或多个不确定性区间。接收到的数据集中的至少一个变量可以具有分配给稀有类别的值。分配给稀有类别的值可以是分配给稀有类别的随机出现的值。在一些实施方式中,不确定性区间的生成可以包括基于由预测模型分配的贡献值,生成关于稀有值的实际贡献的一个或多个不确定性区间。
[0119]
本文公开的系统和方法可以以各种形式体现,包括例如数据处理器(诸如也包括数据库的计算机)、数字电子电路、固件、软件,或它们的组合。此外,本发明公开的实施方式的上述特征以及其它方面和原则可以在各种环境中实施。这样的环境和相关应用可以是专门为执行根据所公开的实施方式的各种过程和操作而构建的,或者它们可以包括由代码选择性地激活或重新配置的通用计算机或计算平台,以提供必要的功能。本文公开的过程不与任何特定的计算机、网络、架构、环境或其它装置内在关联,并且可以由硬件、软件和/或固件的适当的组合来实施。例如,各种通用机器可以根据所公开的实施方式的教导与写入的程序一起使用,或者可能更方便是,构建专门的装置或系统来执行所需的方法和技术。
[0120]
本文所公开的系统和方法可以实施为计算机程序产品,即有形地体现在信息载体
中(例如,在机器可读存储设备中或在传播的信号中)的计算机程序,用于由数据处理装置(例如,可编程处理器、计算机或多个计算机)执行或控制其操作。计算机程序可以以任何形式的编程语言(包括编译或解释语言)编写,并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其它单元。计算机程序可以被部署为在一个计算机上、或在一个站点处的多个计算机上、或在横跨多个站点分布并由通信网络互联的多个计算机上执行。
[0121]
如本文所使用的,术语“用户”可以指包括人或计算机的任何实体。
[0122]
尽管诸如第一、第二等的序数在一些情况下可以与顺序有关;如在本文中所使用的,序数不必然暗示顺序。例如,序号可以仅用于区分一个项目和另一个项目。例如,用于区分第一事件和第二事件,但不需要暗示任何时间上顺序或固定的参考系统(使得描述的一个段落中的第一事件可以不同于描述的另一段落中的第一事件)。
[0123]
前面的描述旨在说明而不是限制本发明的范围,本发明的范围由所附权利要求书的范围限定。其它实施方式也在所附权利要求的范围内。
[0124]
这些计算机程序(也可以被称为程序、软件、软件应用、应用、组件或代码)包括用于可编程处理器的机器指令,并且可以在高级程序和/或面向对象的编程语言中,和/或在汇编/机器语言中实施。如本文所使用的,术语“机器可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备,例如,磁盘、光盘、存储器和可编程逻辑器件(pld),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。机器可读介质可以非暂时性地存储这样的机器指令,例如,像非瞬时固态存储器或磁性硬盘驱动器或者任何等同的存储介质那样。机器可读介质可以替代地或附加地以瞬时方式存储这样的机器指令,例如,像与一个或多个物理处理器核心相关联的处理器缓存或其它随机存取存储器那样。
[0125]
为了提供与用户的交互,本文描述的主题可以在具有用于向用户显示信息的显示设备(例如,阴极射线管(crt)或液晶显示(lcd)监控器)以及用户可以通过其向计算机提供输入的键盘和指向设备(例如,鼠标或轨迹球)的计算机上实施。其它类型的设备也可以用于提供与用户的交互。例如,提供给用户的反馈可以是任何形式的感官反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且来自用户的输入可以以任何形式接收,包括但不限于声音、语音或触觉输入。
[0126]
本文描述的主题可以在包括后端组件(例如,一个或多个数据服务器)的计算系统中,或在包括中间件组件(例如,一个或多个应用服务器)的计算系统中,或在包括前端组件(例如,具有图形用户界面或web浏览器的一个或多个客户端计算机,用户可以通过其与本文描述的主题的实施方式交互)或者这样的后端、中间件或前端组件的任何组合的计算系统中实施。系统的组件可以由数字数据通信的任何形式或媒介进行互连,例如,通信网络。通信网络的示例包括但不限于局域网(“lan”)、广域网(“wan”)和互联网。
[0127]
计算系统可以包括客户端和服务器。客户端和服务器一般但不完全彼此远离,并且通常通过通信网络交互。客户端和服务器的关系由在各自的计算机上运行并且具有对于彼此的客户端-服务器关系的计算机程序产生。
[0128]
前面的描述中阐述的实施方式并不代表与本文描述的主题一致的所有实施方式。
相反,它们仅是与所描述的主题有关的方面一致的一些示例。尽管上面已经详细描述了几个变化,但是其它的修改或添加也是可能的。特别地,除了本文阐述的那些,还可以提供进一步的特征和/或变化。例如,上面描述的实施方式可以指向所公开的特征的各种组合和子组合和/或上面公开的几个进一步特征的组合和子组合。此外,在附图中描绘的和/或本文描述的逻辑流不必然需要所示的特定顺序或相继顺序来实现期望的结果。其它实施方式可以在所附权利要求的范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献