分类模型评价指标的确定方法、装置、设备及介质与流程

文档序号:21985720发布日期:2020-08-25 19:23阅读:255来源:国知局
分类模型评价指标的确定方法、装置、设备及介质与流程

本申请实施例涉及计算机技术,尤其涉及深度学习技术领域,具体涉及一种分类模型评价指标的确定方法、装置、设备及介质。



背景技术:

分类任务是机器学习任务中最典型、应用面最广的一种任务。而二分类,即只有正样本和负样本两种类别的任务,又是分类任务中最常见的场景。基于此,如何对二分类任务的结果进行评价就显得尤为重要。常用的二分类任务的评价指标有precision、recall、f1-score、auc等。其中,auc(areaundercurve,曲线下面积)是最常用,也是最重要的评价指标。

具体的,auc被定义为roc曲线下与坐标轴围成的面积,auc值越大,也即越接近1的分类器分类效果越好。其中,roc(receiveroperatingcharacteristic,受试者工作特征)曲线是根据一系列不同的二分类方式(分界值或决定阈),以真阳性率为纵坐标,假阳性率为横坐标绘制的曲线。

现有技术中,在使用动态采集的样本对二分类模型进行训练后,对训练结果进行评价时,要么仅利用新采集样本的预测值结果计算分类模型的auc值,要么使用所有样本的预测值结果重新计算分类模型的auc值,这样会导致最终计算得到的模型评价结果并不准确,可信度低。



技术实现要素:

提供了一种分类模型评价指标的确定方法、装置、设备以及介质,以提高模型评价结果的准确性和可信度。

根据第一方面,提供了一种分类模型评价指标的确定方法,包括:

获取分类模型的当前样本集;

将所述当前样本集以及与所述当前样本集连续获取的固定数量个历史样本集,作为当前滑动窗口;

根据所述当前滑动窗口确定所述分类模型的当前评价指标值。

根据第二方面,提供了一种分类模型评价指标的确定装置,包括:

样本集获取单元,用于获取分类模型的当前样本集;

窗口滑动单元,用于将所述当前样本集以及与所述当前样本集连续获取的固定数量个历史样本集,作为当前滑动窗口;

指标值确定单元,用于根据所述当前滑动窗口确定所述分类模型的当前评价指标值。

根据第三方面,提供了一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请实施例中任一项所述的方法。

根据第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行本申请实施例中任一项所述的方法。

本申请实施例通过在获取到分类模型的当前样本集时,将当前样本集以及与当前样本集连续获取的固定数量个历史样本集,作为当前滑动窗口,确定该当前滑动窗口下分类模型的当前评价指标值,利用滑动窗口的方式动态输出评价指标值,解决了现有技术中由于仅对新样本或对所有样本均进行计算,而导致的模型评价结果不准确,可信度低的问题,提高了模型评价结果的准确性和可信度,进而增加了模型训练的稳定性。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本申请的限定。其中:

图1是根据本申请实施例的一种分类模型评价指标的确定方法的流程图;

图2是根据本申请实施例的又一种分类模型评价指标的确定方法的流程图;

图3a是根据本申请实施例的又一种分类模型评价指标的确定方法的流程图

图3b是根据本申请实施例的构建负样本前缀计数数组的过程示意图;

图4是根据本申请实施例的一种分类模型评价指标的确定装置的结构示意图;

图5是用来实现本申请实施例的分类模型评价指标的确定方法的电子设备的框图。

具体实施方式

以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

根据本申请的实施例,本申请提供了一种分类模型评价指标的确定方法。

如图1所示,是根据本申请实施例的一种分类模型评价指标的确定方法的流程图。本实施例可适用于对分类模型进行动态评价的情况,该方法可以由分类模型评价指标的确定装置来执行,该装置可以由软件和/或硬件实现,并一般可以集成在计算机、手机等电子设备中。

具体的,参考图1,该方法具体包括如下步骤:

s110、获取分类模型的当前样本集。

本实施例中,分类模型可以是机器学习技术中对输入样本或待分类信息进行分类的模型,该分类模型包括但不限于二分类模型等。其中,样本集可以包括多个样本,当分类模型为二分类模型时,本实施例中的样本集所包括的多个样本,可分为正样本和负样本。

具体的,本实施例中的样本集可以通过动态采集的方式获取,例如每隔预设时间获取一次样本集,当前样本集可以是,当前系统时间距离上一次获取样本集的时间间隔,到达预设时间间隔时获取的样本集。在一个具体例子中,每十五分钟内采集的样本作为一个batch(也即样本集),将当前十五分钟内获取的一个batch,作为当前batch。

需要指出的是,本实施例中的样本集还可以通过其他方式获取,例如将样本库中保存的多个样本划分为至少两个样本集,每次从样本库中获取一个样本集等方式,在此不作限定。

s120、将当前样本集以及与当前样本集连续获取的固定数量个历史样本集,作为当前滑动窗口。

在利用样本对分类模型进行训练的过程中,经常会需要对分类模型的分类效果进行评价。现有技术中,由于在进行分类模型的评价时,要么仅利用新采集样本的预测值结果来确定分类模型的评价指标,要么使用获取的所有样本的预测值结果来确定分类模型的评价指标,从而使得分类模型的评价指标随着样本集的动态变化而变化时,无法贴合当前实际情况,导致最终计算得到的模型评价结果并不准确,可信度低。

针对现有技术中存在的问题,本实施例以最近获取的多个样本集为单位计算一次评价指标值,通过滑动窗口的方式动态计算分类模型的评价指标值,使得计算得到的分类模型的评价指标值,能够随着当前滑动窗口内包括的样本集的变化而变化。

具体的,当获取到分类模型的当前样本集时,可将当前样本集更新至滑动窗口中,并删除滑动窗口中最早获取的样本集,作为当前滑动窗口。其中,滑动窗口中所包括的样本集可以是连续获取的样本集。

举一个实际例子,用参数slide_step表示多少个batch计算一次评价指标值,在获取第slide_step个batch时,对应的是将第1个到第slide_step个batch作为当前滑动窗口;而获取第slide_step+1个batch时,对应的是将第2个到第slide_step+1个batch作为当前滑动窗口;以此类推,当获取第n个batch时,对应的是将第n-slide_step+1个到第n个batch作为当前滑动窗口。

本实施设置滑动窗口的好处在于,可以在动态确定分类模型的评价指标值的过程中,保证用于确定该评价指标值的样本变化不至于过大的同时,增强样本的实时性,使得对分类模型的评价既具有实时性,也不易受到异常样本的影响,从而使得计算得到的评价结果更贴合当前分类模型分类效果的实际情况,提高了评价结果的准确性和可信度,进而增强了分类模型训练的稳定性。

s130、根据当前滑动窗口确定分类模型的当前评价指标值。

本实施例中,在确定当前滑动窗口后,可根据当前滑动窗口中所包括的样本集来确定分类模型的当前评价指标值。具体的,滑动窗口中所包括的样本集发生变化时,也即滑动窗口更新时,可计算一次评价指标值,具体的评价指标的种类可根据分类模型的种类进行确定,例如,若分类模型为二分类模型时,评价指标可以是precision、recall、f1-score、auc等,在此不作限定。

在根据当前滑动窗口计算当前评价指标值的过程中,例如可以先将当前滑动窗口中包括的样本集输入至分类模型,得到对应的预测值后,根据该预测值以及该评价指标对应的计算公式,计算得到分类模型的当前评价指标值。

根据本实施例的技术方案,通过在获取到分类模型的当前样本集时,将当前样本集以及与当前样本集连续获取的固定数量个历史样本集,作为当前滑动窗口,确定该当前滑动窗口下分类模型的当前评价指标值,利用滑动窗口的方式动态输出评价指标值,解决了现有技术中由于仅对新样本或对所有样本均进行计算,而导致的模型评价结果不准确,可信度低的问题,提高了模型评价结果的准确性和可信度,进而增加了模型训练的稳定性。

根据本申请的实施例,本申请还提供了一种分类模型评价指标的确定方法。

如图2所示,是根据本申请实施例的又一种分类模型评价指标的确定方法的流程图。本实施例对上述任意实施例进行细化,将根据所述当前滑动窗口确定所述分类模型的当前评价指标值,细化为包括:确定所述当前样本集对应的分桶计数信息;根据所述当前样本集对应的分桶计数信息,以及上一滑动窗口的累积分桶计数信息,确定所述当前滑动窗口的累积分桶计数信息;根据所述当前滑动窗口的累积分桶计数信息,确定所述分类模型的当前评价指标值。

具体的,参考图2,本方法具体包括如下步骤:

s210、获取分类模型的当前样本集。

s220、将当前样本集以及与当前样本集连续获取的固定数量个历史样本集,作为当前滑动窗口。

s230、确定当前样本集对应的分桶计数信息。

本实施例在上述实施例的基础上,在计算分类模型评价指标值的过程中,对获取的当前样本集进行分桶近似处理,确定当前样本集对应的分桶计数信息,再结合滑动窗口中其他样本集对应的分桶计数信息,计算分类模型的当前评价指标值。具体的,可采用分桶近似算法确定当前样本集对应的分桶计数信息。

其中,分桶近似算法的原理,就是将正负样本的预测值分别进行分桶累加,也即相当于将样本的预测值离散化到不同的桶里。原本同一个分桶中不同样本的预测值可能有大有小,但是在分桶近似算法中落在同一个分桶中的样本被视为拥有相同的预测值。

具体的,可先将当前样本集中的每个样本输入至分类模型中,得到对应的预测为正样本的概率值,也即预测值,针对不同种类的样本分别设置至少两个分桶,其中,该至少两个分桶分别对应于至少两个预测值取值区间,例如,一共有两个分桶,第一个分桶对应于预测值取值区间为0-0.5,第二个分桶对应于预测值取值区间为0.5-1。落在同一区间内的样本视为预测值相同,对落入各分桶的样本的数量进行统计,进而可得到不同种类样本分别对应的不同分桶样本数,也即分桶计数信息。

示例性的,若当前样本集中只有正样本和负样本两种类型的样本,则正样本对应一个分桶集合,负样本对应一个分桶集合,相应的,分桶计数信息包括正样本分桶集合内的统计信息以及负样本分桶集合内的统计信息。对落入各分桶的样本的数量进行统计的具体过程可以为,如果确定当前样本集中目标样本的实际分类标记为正样本,则根据目标样本对应的预测值所属预测值取值区间,在正样本分桶集合内,该预测值取值区间对应的分桶中的计数加1;如果确定当前样本集中目标样本的实际分类标记为负样本,则根据目标样本对应的预测值所属预测值取值区间,在负样本分桶集合内,该预测值取值区间对应的分桶中的计数加1。

在一个实际例子中,以二分类任务为例,可通过以下两个步骤创建伪代码,获取当前样本集对应的分桶计数信息:

step1:创建两个长度为n_bucket大小的数组,其中一个保存正样本的预测值,记为pos;另一个保存负样本的预测值,记为neg。这两个数组的初始值均为0。

step2:对于每个样本i,设将样本输入二分类模型后得到的预测值为pred(i),那么将[pred(i)*n_bucket]作为其所在数组中的索引位置。其中,此处的运算符[]代表向下取整。并根据该样本的实际正负标记,将其对应数组中的元素进行累加计数。具体的,如果该样本是正样本,则将pos数组的第[pred(i)*n_bucket]个元素中的值加1;如果该样本为负样本,则将neg数组的第[pred(i)*n_bucket]个元素中的值加1,以此类推,直至遍历完当前样本集中的所有样本。需要特别指明的是,该步骤有一个特例,即如果样本的预测值为1.0,则直接在对应数组的最后一个元素中的值加1。

采用分桶近似处理方式进行统计的好处在于,与现有技术中需要保存所有样本的预测值相比,分桶近似处理的过程中不论样本数有多大,即使超出了内存可容纳的范围,由于其仅统计样本落在不同分桶中的数量,而无需保存每一个样本对应的预测值,因此,其所需要的空间也只和桶数有关,从而可以节约存储空间,降低空间复杂度。另外,通过分桶法计算评价指标值,由于分桶的过程实际上相当于已经做了一次桶排序,相对于现有技术中需要对所有n个样本进行排序,进而需要o(n*logn)级别的时间复杂度而言,该分桶近似处理方式只需要o(n)级别的时间复杂度,因此,也降低了时间复杂度。

s240、根据当前样本集对应的分桶计数信息,以及上一滑动窗口的累积分桶计数信息,确定当前滑动窗口的累积分桶计数信息。

本实施例中,每获取一次样本集,就对该样本集进行一次分桶近似处理,得到该样本集对应的分桶计数信息,与此同时,为了避免每次计算评价指标值的时候,都需要遍历所有历史样本集的分桶计数信息,本实施例还设置了一个求和桶,用于保存上一滑动窗口的累积分桶计数信息,当滑动窗口中所包括的样本集发生变动时,也即滑动窗口进行滑动时,只要对求和桶内的信息进行更新,即可得到当前滑动窗口的累积分桶计数信息。其中,累积分桶计数信息可以是滑动窗口中各样本集对应的分桶计数信息的加和,而上一滑动窗口可以是相对于当前滑动窗口而言,上一次计算评价指标值时对应的滑动窗口。

利用求和桶保存滑动窗口的累积分桶计数信息的好处在于,无需在每次计算评价指标值,都去遍历滑动窗口中包括的所有历史样本集的分桶计数信息,只需更新求和桶中保存的累积分桶计数信息即可,从而可以提高计算速度,降低时间复杂度。

可选的,根据当前样本集对应的分桶计数信息,以及上一滑动窗口的累积分桶计数信息,确定当前滑动窗口的累积分桶计数信息,包括:根据上一滑动窗口的累积分桶计数信息、上一滑动窗口中首个样本集对应的分桶计数信息和当前样本集对应的分桶计数信息,确定当前滑动窗口的累积分桶计数信息;其中,首个样本集为上一滑动窗口中获取时间距离当前系统时间最远的样本集。

示例性的,可将求和桶中保存的上一滑动窗口的累积分桶计数信息中的计数值,减去上一滑动窗口中首个样本集对应的分桶计数信息的计数值,再加上当前样本集对应的分桶计数信息的计数值,即可得到当前滑动窗口的累积分桶计数信息对应的计数值。

举一个实际例子,在第n个batch计数完成后,求和桶中保存的是第n-slide_step+1到第n个batch的样本的累积分桶计数信息。在第n+1个batch计数的时候,先将该求和桶中属于第n-slide_step+1个batch(也即首个样本集)的内容剔除,然后将第n+1个batch的样本的分桶计数信息加入求和桶中,从而完成求和桶的更新,得到求和桶保存的当前滑动窗口的累积分桶计数信息。具体的,本实施例中的求和桶可以是一个大小为预设分桶数量n_bucket的一维数组,该数组中每个元素的计数值,为该分桶对应的滑动窗口内,所有落入该分桶的样本的累加计数值。

本实施例中,由于需要更新求和桶中保存的累积分桶计数信息,因此,需要保存滑动窗口中每个样本集对应的累积分桶计数信息,这样,在获取当前样本集对应的分桶计数信息后,就可通过剔除求和桶中上一滑动窗口中的首个样本集的分桶计数信息,并加入当前样本集的分桶计数信息,来更新求和桶中保存的累积分桶计数信息。

可选的,在上述实施方式的基础上,还包括:删除上一滑动窗口中首个样本集对应的分桶计数信息;将用于存储首个样本集对应的分桶计数信息的样本计数空间,作为当前样本集对应的样本计数空间;将当前样本集对应的分桶计数信息存储至样本计数空间中。

示例性的,本实施例在保存滑动窗口中每个样本集的分桶计数信息时,具体可采用滚动数组的方式来复用存储空间,即只需要维护slide_step个大小为n_bucket的数组。当处理第n个batch的数据时,编号为n%slide_step的数组中存放的是需要剔除的第n-slide_step个batch的分桶计数信息,因此,可以通过删除第n-slide_step个batch的分桶计数信息,来复用该存储空间,将第n个batch的分桶计数信息保存在该数组中。

在更新求和桶中保存的累积分桶计数信息的过程中,进行空间复用的好处在于,可以节约存储空间,降低空间复杂度。

在一个实际例子中,以二分类任务为例,可通过以下两个步骤创建伪代码,获取当前滑动窗口的累积分桶计数信息,也即更新求和桶中保存的累积分桶计数信息:

step1:创建两个大小为(slide_step,n_bucket)的二维数组,其中一个保存正样本的预测值,记为pos;另一个保存负样本的预测值,记为neg。这两个桶的初始值均为0。再创建两个大小为n_bucket且初始化为0的一维数组,作为求和桶,其中一个用来保存各样本集中正样本对应分桶的累积值,记为sum_pos;另一个用来保存各样本集中负样本对应分桶的累积值,记为sum_neg。

step2:剔除二维数组中首个batch的数据,并统计当前batch的数据。具体的,在训练过程中,首先剔除当前滑动窗口之外的第n-slide_step个batch(也即上一滑动窗口的首个样本集)的内容,将pos和neg中对应位置的内容清零,然后处理当前batch,根据batch内各样本的预测值进行分桶,并将该batch的分桶结果更新到求和桶中,从而得到当前滑动窗口的累积分桶计数信息。

需要指明的是,由于仅需要开辟空间保存slide_step个batch的分桶计数信息,所以空间复杂度仅为o(slide_step*n_bucket)。另外,由于每个batch的操作只有遍历n_bucket和遍历当前batch的样本这两个遍历,所以时间复杂度仅为o(batch级别样本数+n_bucket),相较于现有技术中需要o(nlogn)级别而言,时间复杂度得到了降低。因此,对每个batch进行一次分桶处理,并采用滑动窗口方式利用求和桶以多个batch为单位计算一次评价指标值,同时进行空间复用的好处在于,可以降低计算时的时间复杂度和空间复杂度。

s250、根据当前滑动窗口的累积分桶计数信息,确定分类模型的当前评价指标值。

本实施例中,当求和桶中保存的累积分桶计数信息更新后,可根据更新后的累积分桶计数信息,也即当前滑动窗口的累积分桶计数信息,确定分类模型的当前评价指标值。具体的,由于不同的评价指标可对应不同的计算公式,因此,可按照具体评价指标对应的计算公式,结合当前滑动窗口的累积分桶计数信息,计算分类模型的当前评价指标值,在此不作限定。

根据本实施例的技术方案,通过确定当前样本集对应的分桶计数信息,并根据当前样本集对应的分桶计数信息,以及上一滑动窗口的累积分桶计数信息,确定当前滑动窗口的累积分桶计数信息,进而根据当前滑动窗口的累积分桶计数信息,确定分类模型的当前评价指标值。利用对每个样本集都进行了分桶近似处理,以及对保存的累积分桶计数信息的维护更新的优点,从而降低了计算过程中所需的时间复杂度和空间复杂度。

根据本申请的实施例,本申请还提供了一种分类模型评价指标的确定方法。

如图3a所示,是根据本申请实施例的又一种分类模型评价指标的确定方法的流程图。本实施例对上述任意实施例进行细化,将当前滑动窗口的累积分桶计数信息,细化为包括:所述当前滑动窗口的正样本累积分桶计数数组以及负样本累积分桶计数数组,相应的,将根据所述当前滑动窗口的累积分桶计数信息,确定所述分类模型的当前评价指标值,细化为包括:根据所述当前滑动窗口的正样本累积分桶计数数组以及负样本累积分桶计数数组,确定所述当前滑动窗口中正样本的预测值大于负样本的预测值时的累加计数信息;根据所述累加计数信息以及正负样本对组合数量,确定所述当前滑动窗口中所述分类模型的auc值。

具体的,参考图3a,本方法具体包括如下步骤:

s310、获取分类模型的当前样本集。

s320、将当前样本集以及与当前样本集连续获取的固定数量个历史样本集,作为当前滑动窗口。

s330、确定当前样本集对应的分桶计数信息。

s340、根据当前样本集对应的分桶计数信息,以及上一滑动窗口的累积分桶计数信息,确定当前滑动窗口的累积分桶计数信息;其中,当前滑动窗口的累积分桶计数信息包括当前滑动窗口的正样本累积分桶计数数组以及负样本累积分桶计数数组。

s350、根据当前滑动窗口的正样本累积分桶计数数组以及负样本累积分桶计数数组,确定当前滑动窗口中正样本的预测值大于负样本的预测值时的累加计数信息。

本实施例在上述实施例的基础上,具体为针对二分类任务确定模型的评价指标auc值,相应的,求和桶中保存的当前滑动窗口的累积分桶计数信息中,可包括正样本对应的累积分桶计数信息,以及负样本对应的累积分桶计数信息。具体的,正样本对应的累积分桶计数信息可以为正样本累积分桶计数数组,负样本对应的累积分桶计数信息可以为负样本累积分桶计数数组。

示例性的,每当获取到新的样本集,即可根据该样本集对应的分桶计数信息更新求和桶中保存的正样本累积分桶计数数组和负样本累积分桶计数数组,再根据该正样本累积分桶计数数组和负样本累积分桶计数数组,按照auc的计算公式,计算auc值。

具体的,除了通过计算roc曲线下面积来计算auc值外,还可通过auc的一个等价计算方法来计算auc值:假设正样本有x个,负样本有y个,在正样本和负样本组成的各正负样本对中,当出现正样本预测为正样本的概率值大于负样本预测为正样本的概率值的情况时,记为1,在遍历各正负样本对的同时进行累加计数。然后将得到的累加计数值除以总共x*y个正负样本对,就是auc的值。

本实施例中,采用等价计算方法,对当前滑动窗口中正样本的预测值大于负样本的预测值的正负样本对的数量进行统计,得到累加计数信息,具体的,可根据求和桶中保存的当前滑动窗口的正样本累积分桶计数数组以及负样本累积分桶计数数组来确定。示例性的,累加计数过程可以是,利用索引值从小到大来遍历正样本累积分桶计数数组,用当前正样本累积分桶计数数组中的元素个数,乘以分桶对应预测值区间小于当前分桶对应预测值区间的负样本累积分桶计数数组中的元素总和。特殊的,对分桶对应预测值区间相同的情况,则累加以正负样本对数的1/2倍,即以一半概率认为正样本的预测值大。其中,累加计数信息包括当前滑动窗口中各个分桶对应正样本的预测值大于负样本的预测值时的累加计数值。

举一个实际例子,假设正样本累积分桶计数数组sum_pos=[6,5,2,4,3,1,8,7],负样本累积分桶计数数组sum_neg=[3,1,4,1,5,9,2,6],则对于sum_pos数组中分桶索引i=2时,计数值为2,由于各分桶对应的预测值是按照从小到大的顺序排列的,也即索引值越大的分桶对应的预测值越大,因此,sum_neg数组中,落在索引值i<2的分桶内的负样本的预测值,均小于落在sum_pos数组中索引值i=2的分桶内的正样本的预测值,而sum_neg数组中,落在索引值i=2的分桶内的负样本的预测值,被认为等于落在sum_pos数组中索引值i=2的分桶内的正样本的预测值,也即对于索引值i=2的分桶,其累加计数值为2*(3+1)+2*4*0.5=12;同理,对于索引值i=3的分桶,其累加计数值为4*(3+1+4)+4*1*0.5=34,以此类推,可得到所有分桶对应的累加计数值,进而可以最终确定当前滑动窗口中正样本的预测值大于负样本的预测值时的累加计数信息。

可选的,根据当前滑动窗口的正样本累积分桶计数数组以及负样本累积分桶计数数组,确定当前滑动窗口中正样本的预测值大于负样本的预测值时的累加计数信息,包括:根据当前滑动窗口的负样本累积分桶计数数组,构建负样本前缀计数数组;根据负样本前缀计数数组,以及正样本累积分桶计数数组,确定当前滑动窗口的累加计数数组;其中,累加计数数组为当前滑动窗口中各个分桶对应正样本的预测值大于负样本的预测值时的累加计数所组成的数组;对累加计数数组中各元素数值进行求和处理,得到累加计数信息。

在一种可选实施方式中,由于针对负样本累积分桶计数数组,在确定累加计数信息时,均需涉及负样本累积分桶计数数组中各元素前缀和的计算问题,因此,本实施例采用首先统一构建负样本前缀计数数组,再通过该负样本前缀计数数组,以及正样本累积分桶计数数组,确定累加计数数组,进而对累加计数数组中的各个元素数值进行求和,得到累加计数信息。其中,负样本前缀计数数组为对负样本累积分桶计数数组经前缀和运算得到的数组。例如,给定长度为n的数组[s1,s2,...sn],经前缀和运算后可得到数组[s1,s1+s2,...,s1+...+sn]。

通过构建负样本前缀计数数组为中间数组,来确定当前滑动窗口的累加计数数组的好处在于,可以不用每次计算各个分桶对应的累加计数值时,都打断当前的计算过程,去针对负样本累积分桶计数数组中某一个分桶进行一次前缀和运算,以便于将累加计数数组中不同分桶对应的计算过程,分配给不同线程进行并行处理,从而进一步提高计算速度,降低时间复杂度。

可选的,根据当前滑动窗口的负样本累积分桶计数数组,构建负样本前缀计数数组,包括:根据第一计算公式:t[i]=a[i-2k+1]+a[i-2k+2]+…+a[i],构建负样本树状数组;其中,a为负样本累积分桶计数数组,t为负样本树状数组,i为数组位数索引值,k为i的二进制表示中从最低位到高位连续零的长度;根据第二计算公式:构建负样本前缀计数数组;其中,f为负样本前缀计数数组,t为负样本树状数组,i为数组位数索引值,k1为i的二进制表示中从低位数出现第1个1的位数,k2为i的二进制表示中从低位数出现第2个1的位数,直到t的索引为2的幂。

示例性的,构建负样本前缀计数数组的过程如图3b所示,以负样本累积分桶计数数组301为[3,1,4,1,5,9,2,6]为例,通过各箭头指向,构建负样本树状数组302,再根据箭头指向,得到负样本前缀计数数组303。其中,一个方格对应该数组中的一个元素(或者分桶),各箭头末端所指向的元素数值为根据各箭头始端所指向的元素数值相加得到。

具体的,可通过上述第一计算公式构建负样本树状数组,再根据第二计算公式构建负样本前缀计数数组。

在一个实际例子中,针对第一计算公式,例如i=1时,其二进制表示为001,则k=0,所以t[1]=a[1]=3;又如i=4时,其二进制表示为100,则k=2,所以t[4]=a[1]+a[2]+a[3]+a[4]=9。针对第二计算公式,例如i=5时,其二进制表示为101,则k1=0;所以f[5]=t[5]+t[5-20]=t[5]+t[4]=14。

通过构建负样本树状数组来构建负样本前缀计数数组的好处在于,方便将负样本前缀计数数组中不同分桶对应的计算过程,分配给不同线程进行并行处理,从而进一步提高计算速度,降低时间复杂度。

可选的,根据负样本前缀计数数组,以及正样本累积分桶计数数组,确定当前滑动窗口的累加计数数组,包括:根据第三计算公式:value[i]=pos[i]*(f[i]+f[i-1])*0.5,确定当前滑动窗口的累加计数数组;其中,value为累加计数数组,f为负样本前缀和数组,pos为正样本累积分桶计数数组,i为数组位数索引值。

举一个实际例子,假设正样本累积分桶计数数组pos=[6,5,2,4,3,1,8,7],负样本前缀和数组f=[3,4,8,9,14,23,25,31],当i=3时,累加计数数组中索引值为3的分桶对应的累加计数值为value[3]=pos[3]*(f[3]+f[2])*0.5=4*(9+8)*0.5=34,以此类推,直至遍历完所有元素,即可得到当前滑动窗口的累加计数数组。

根据该第三计算公式确定累加计数数组的好处在于,可以仅根据负样本前缀计数数组以及正样本累积分桶计数数组,无需调用负样本累积分桶计数数组,即可确定当前滑动窗口的累加计数数组,简化了计算过程。

可选的,还包括:将负样本前缀和数组和/或累加计数数组中不同分桶对应的计算任务,分别分配给不同的线程进行并行处理。

在大规模深度学习领域中,gpu是越来越常用的并行处理硬件。由于采用上述计算方式,不同分桶对应的计算任务并不依赖于其他分桶的计算结果,因此,可将负样本前缀和数组和/或累加计数数组中不同分桶对应的计算任务,分别分配给gpu中不同的线程进行并行处理。

示例性的,可基于cuda(computeunifieddevicearchitecture,统一计算设备架构)来进行gpu的并行运算。具体的,基于cuda编程可以利用gpu的并行计算引擎来更加高效地解决比较复杂的计算难题,因此,本实施例可借助于cuda的并行能力,将auc计算的时间复杂度从串行处理时的o(n_bucket)进一步降低到o(log(n_bucket))。其中,由于求前缀和的时间复杂度为o(log(n_bucket)),计算中间结果value数组的时间复杂度为o(1),对累加计数数组中的各个元素数值进行求和计算的时间复杂度为o(log(n_bucket)),所以总体auc计算的时间复杂度为o(log(n_bucket))。

综上所述,将不同分桶对应的计算任务,分别分配给不同的线程进行并行处理的好处在于,可以进一步提高计算速度,降低时间复杂度。

s360、根据累加计数信息以及正负样本对组合数量,确定当前滑动窗口中分类模型的auc值。

本实施例中,正负样本对组合数量可以是,当前滑动窗口中正样本与当前滑动窗口中负样本进行任意组合,得到的正负样本对的总对数。具体的,可通过将当前滑动窗口中正样本的数量,乘以当前滑动窗口中负样本的数量,计算得到正负样本对组合数量。

示例性的,可根据auc的计算公式:auc=sum/(n_pos*n_neg),确定当前滑动窗口中分类模型的auc值;其中,sum为累加计数信息,n_pos为当前滑动窗口中正样本的数量,n_neg为当前滑动窗口中负样本的数量。

根据本实施例的技术方案,通过根据当前滑动窗口的正样本累积分桶计数数组以及负样本累积分桶计数数组,确定当前滑动窗口中正样本的预测值大于负样本的预测值时的累加计数信息,并根据累加计数信息以及正负样本对组合数量,确定当前滑动窗口中分类模型的auc值,以二分类任务为例,在获取累加计数信息时,进行并行处理的优点,从而进一步提高计算速度,降低时间复杂度。

根据本申请的实施例,本申请还提供了一种分类模型评价指标的确定装置。

如图4所示,是根据本申请实施例的一种分类模型评价指标的确定装置的结构示意图。该装置可以由软件和/或硬件的方式实现,并执行如本申请任意实施例所述的分类模型评价指标的确定方法。具体的,分类模型评价指标的确定装置400包括:样本集获取单元410、窗口滑动单元420和指标值确定单元430。

其中,样本集获取单元410,用于获取分类模型的当前样本集;

窗口滑动单元420,用于将所述当前样本集以及与所述当前样本集连续获取的固定数量个历史样本集,作为当前滑动窗口;

指标值确定单元430,用于根据所述当前滑动窗口确定所述分类模型的当前评价指标值。

可选的,指标值确定单元430,具体可以包括:

分桶信息确定单元,用于确定所述当前样本集对应的分桶计数信息;

累积信息确定单元,用于根据所述当前样本集对应的分桶计数信息,以及上一滑动窗口的累积分桶计数信息,确定所述当前滑动窗口的累积分桶计数信息;

当前指标确定单元,用于根据所述当前滑动窗口的累积分桶计数信息,确定所述分类模型的当前评价指标值。

可选的,累积信息确定单元,具体可以用于:

根据所述上一滑动窗口的累积分桶计数信息、所述上一滑动窗口中首个样本集对应的分桶计数信息和当前样本集对应的分桶计数信息,确定所述当前滑动窗口的累积分桶计数信息;

其中,所述首个样本集为所述上一滑动窗口中获取时间距离当前系统时间最远的样本集。

可选的,所述当前滑动窗口的累积分桶计数信息包括所述当前滑动窗口的正样本累积分桶计数数组以及负样本累积分桶计数数组;

相应地,当前指标确定单元,具体可以包括:

累加计数确定单元,用于根据所述当前滑动窗口的正样本累积分桶计数数组以及负样本累积分桶计数数组,确定所述当前滑动窗口中正样本的预测值大于负样本的预测值时的累加计数信息;

auc值确定单元,用于根据所述累加计数信息以及正负样本对组合数量,确定所述当前滑动窗口中所述分类模型的auc值。

可选的,累加计数确定单元,具体可以包括:

前缀数组构建单元,用于根据所述当前滑动窗口的负样本累积分桶计数数组,构建负样本前缀计数数组;

累加数组确定单元,用于根据所述负样本前缀计数数组,以及所述正样本累积分桶计数数组,确定所述当前滑动窗口的累加计数数组;其中,所述累加计数数组为所述当前滑动窗口中各个分桶对应正样本的预测值大于负样本的预测值时的累加计数所组成的数组;

数组元素求和单元,用于对所述累加计数数组中各元素数值进行求和处理,得到累加计数信息。

可选的,前缀数组构建单元,具体可以包括:

第一公式计算单元,用于根据第一计算公式:t[i]=a[i-2k+1]+a[i-2k+2]+…+a[i],构建负样本树状数组;其中,a为所述负样本累积分桶计数数组,t为所述负样本树状数组,i为数组位数索引值,k为i的二进制表示中从最低位到高位连续零的长度;

第二公式计算单元,用于根据第二计算公式:构建负样本前缀计数数组;其中,f为所述负样本前缀计数数组,t为所述负样本树状数组,i为数组位数索引值,k1为i的二进制表示中从低位数出现第1个1的位数,k2为i的二进制表示中从低位数出现第2个1的位数,直到t的索引为2的幂。

可选的,累加数组确定单元,具体可以包括:

第三公式计算单元,用于根据第三计算公式:value[i]=pos[i]*(f[i]+f[i-1])*0.5,确定所述当前滑动窗口的累加计数数组;

其中,value为所述累加计数数组,f为所述负样本前缀和数组,pos为所述正样本累积分桶计数数组,i为数组位数索引值。

可选的,分类模型评价指标的确定装置400还可以包括:

并行处理单元,用于将所述负样本前缀和数组和/或累加计数数组中不同分桶对应的计算任务,分别分配给不同的线程进行并行处理。

可选的,分类模型评价指标的确定装置400还可以包括:

分桶信息删除单元,用于删除所述上一滑动窗口中首个样本集对应的分桶计数信息;

计数空间获取单元,用于将用于存储所述首个样本集对应的分桶计数信息的样本计数空间,作为所述当前样本集对应的样本计数空间;

分桶信息存储单元,用于将所述当前样本集对应的分桶计数信息存储至所述样本计数空间中。

本申请实施例所提供的分类模型评价指标的确定装置可执行本申请任意实施例所提供的分类模型评价指标的确定方法,具备执行方法相应的功能模块和有益效果。

根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。

如图5所示,是根据本申请实施例的分类模型评价指标的确定方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图5所示,该电子设备包括:一个或多个处理器501、存储器502,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图5中以一个处理器501为例。

存储器502即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的分类模型评价指标的确定方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的分类模型评价指标的确定方法。

存储器502作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的分类模型评价指标的确定方法对应的程序指令/模块(例如,附图4所示的样本集获取单元410、窗口滑动单元420和指标值确定单元430)。处理器501通过运行存储在存储器502中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的分类模型评价指标的确定方法。

存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据分类模型评价指标的确定方法的电子设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至分类模型评价指标的确定方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

分类模型评价指标的确定方法的电子设备还可以包括:输入装置503和输出装置504。处理器501、存储器502、输入装置503和输出装置504可以通过总线或者其他方式连接,图5中以通过总线连接为例。

输入装置503可接收输入的数字或字符信息,以及产生与分类模型评价指标的确定方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置504可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。

此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

根据本申请实施例的技术方案,在获取到分类模型的当前样本集时,将当前样本集以及与当前样本集连续获取的固定数量个历史样本集,作为当前滑动窗口,确定该当前滑动窗口下分类模型的当前评价指标值,利用滑动窗口的方式动态输出评价指标值,解决了现有技术中由于仅对新样本或对所有样本均进行计算,而导致的模型评价结果不准确,可信度低的问题,提高了模型评价结果的准确性和可信度,进而增加了模型训练的稳定性。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1