100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 神经网络模型的数据处理方法及装置 存储介质 终端与流程

神经网络模型的数据处理方法及装置 存储介质 终端与流程

时间:2022-10-17 12:47:47

相关推荐

神经网络模型的数据处理方法及装置 存储介质 终端与流程

本发明涉及数据处理技术领域,尤其涉及一种神经网络模型的数据处理方法及装置、存储介质、终端。

背景技术:

在应用模型时,通常需要对模型进行解释。对模型解释应该是这样的:可以清楚地指出是哪些特征(features)对模型的输出结果做出了贡献,每个特征的贡献是多少,从而得出为何模型是这样预测的。对于线性模型(如线性回归,逻辑回归等),通过将特征与其对应的学习到的权重相乘,进行线性组合,从而通过其学习得到的权重的大小,推断出不同的特征的权重信息,从而完成对模型的解释。树模型(如决策树,随机森林,梯度提升树(gradientboostingdecisiontree,gbdt)等)通过特征的信息增益以及被分裂的次数,来决定不同的特征的重要性,完成对模型的解读。

但是,深度神经网络模型与其他机器学习模型相比较,特征与特征之间是自动通过网络的非线性高维组合,因此独立分析各个特征对于模型的解释是不可靠的。

技术实现要素:

本发明解决的技术问题是如何实现对神经网络模型的更准确的解释。

为解决上述技术问题,本发明实施例提供一种神经网络模型的数据处理方法,神经网络模型的数据处理方法包括:获取训练完成的神经网络模型以及测试集数据,所述测试集数据与所述神经网络模型的训练数据来源相同,且所述测试集数据不同于所述训练数据,所述测试集数据包括多个特征的特征值;将所述测试集数据的多个样本输入至所述神经网络模型,以得到针对所述测试集数据中多个样本的输出数据,所述输出数据为数值型数据;按照所述输出数据的大小对所述测试集数据中的多个样本进行排序,并将排序后的多个样本划分为至少两部分,每部分样本对应的输出数据的大小是连续的;统计各个特征在所述多个样本的各部分样本中的分布,每一样本包括多个特征;根据每个特征在各部分样本中的分布的距离确定所述特征对所述神经网络模型是否具有贡献。

可选的,所述数据处理方法还包括:所述特征对所述神经网络模型不具有贡献,则在后续训练数据中剔除所述特征。

可选的,所述统计各个特征在所述多个样本的各部分样本中的分布包括:统计各个特征在各部分样本总的取值范围以及各部分样本中具备各个取值的样本数量;根据各个特征的取值范围以及样本数量确定各个特征在所述多个样本的各部分样本中的分布直方图。

可选的,所述数据处理方法还包括:利用核密度估计确定各个分布直方图对应的密度曲线,所述密度曲线为连续的平滑曲线。

可选的,所述数据处理方法还包括:所述根据每个特征在各部分样本中的分布的距离确定所述特征对所述神经网络模型是否具有贡献包括:计算各个特征在每部分样本的分布直方图的波峰之间的距离;如果所述距离小于预设阈值,则确定所述特征对所述神经网络模型不具有贡献。

可选的,所述根据每个特征在各部分样本中的分布的距离确定所述特征对所述神经网络模型是否具有贡献包括:计算每个特征在各部分样本中的分布的距离;如果所述距离小于预设阈值,则确定所述特征对所述神经网络模型不具有贡献。

可选的,所述按照所述输出数据的大小对所述测试集数据中的多个样本进行排序,并将排序后的多个样本划分为至少两部分包括:按照所述输出数据的大小对所述测试集数据中的多个样本进行排序;按照排序后的顺序将所述测试集数据中的多个样本划分为前部分样本和后部分样本。

可选的,所述前部分样本和所述后部分样本的数量相等。

为解决上述技术问题,本发明实施例还公开了一种神经网络模型的数据处理装置,神经网络模型的数据处理装置包括:数据及模型获取模块,用以获取训练完成的神经网络模型以及测试集数据,所述测试集数据与所述神经网络模型的训练数据来源相同,且所述测试集数据不同于所述训练数据,所述测试集数据包括多个特征的特征值;计算模块,用以将所述测试集数据的多个样本输入至所述神经网络模型,以得到针对所述测试集数据中多个样本的输出数据,所述输出数据为数值型数据;划分模块,用以按照所述输出数据的大小对所述测试集数据中的多个样本进行排序,并将排序后的多个样本划分为至少两部分,每部分样本对应的输出数据的大小是连续的;分布统计模块,用以统计各个特征在所述多个样本的各部分样本中的分布,每一样本包括多个特征;贡献确定模块,用以根据每个特征在各部分样本中的分布的距离确定所述特征对所述神经网络模型是否具有贡献。

本发明实施例还公开了一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行所述神经网络模型的数据处理方法的步骤。

本发明实施例还公开了一种终端,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行所述神经网络模型的数据处理方法的步骤。

与现有技术相比,本发明实施例的技术方案具有以下有益效果:

本发明技术方案利用训练完成的神经网络模型的模型输出结果,也即对测试集的输出数据,通过对输出数据进行排序,可以得到按照输出数据排序的测试集中的各个特征的特征值;按照排序将特征值划分为至少两部分,统计至少两部分特征值的分布,并根据至少两部分特征值的分布的距离确定特征对神经网络模型的贡献,也即通过排名靠前的样本的特征范围分布和排名靠后的样本的特征范围分布差异,来确定神经网络模型对于各个特征的敏感程度以及各个特征对神经网络模型的输出结果的贡献,为更准确地解释深度网络模型提供决策。

附图说明

图1是本发明实施例一种神经网络模型的数据处理方法的流程图;

图2是图1所示步骤s104的一种具体实施方式的流程图;

图3是图1所示步骤s103的一种具体实施方式的流程图;

图4是发明实施例一种具体应用场景的示意图;

图5是本发明实施例一种神经网络模型的数据处理装置的结构示意图。

具体实施方式

如背景技术中所述,深度神经网络模型与其他机器学习模型相比较,特征与特征之间是自动通过网络的非线性高维组合,因此独立分析各个特征对于模型的解释是不可靠的。

本发明技术方案利用训练完成的神经网络模型的模型输出结果,也即对测试集的输出数据,通过对输出数据进行排序,可以得到按照输出数据排序的测试集中的各个特征的特征值;按照排序将特征值划分为至少两部分,统计至少两部分特征值的分布,并根据至少两部分特征值的分布的距离确定特征对神经网络模型的贡献,也即通过排名靠前的样本的特征范围分布和排名靠后的样本的特征范围分布差异,来确定神经网络模型对于各个特征的敏感程度以及各个特征对神经网络模型的输出结果的贡献,为更准确地解释深度网络模型提供决策。

为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

图1是本发明实施例一种神经网络模型的数据处理方法。

所述神经网络模型的数据处理方法具体可以包括以下步骤:

步骤s101:获取训练完成的神经网络模型以及测试集数据,所述测试集数据与所述神经网络模型的训练数据来源相同,且所述测试集数据不同于所述训练数据,所述测试集数据包括多个特征的特征值;

步骤s102:将所述测试集数据的多个样本输入至所述神经网络模型,以得到针对所述测试集数据中多个样本的输出数据,所述输出数据为数值型数据;

步骤s103:按照所述输出数据的大小对所述测试集数据中的多个样本进行排序,并将排序后的多个样本划分为至少两部分,每部分样本对应的输出数据的大小是连续的;

步骤s104:统计各个特征在所述多个样本的各部分样本中的分布;

步骤s105:根据每个特征在各部分样本中的分布的距离确定所述特征对所述神经网络模型是否具有贡献。

需要指出的是,本实施例中各个步骤的序号并不代表对各个步骤的执行顺序的限定。

本发明实施例中的神经网络模型可以是深度神经网络模型。

具体实施中,在步骤s101中获取的神经网络模型是预先训练完成的。进一步地,在对神经网络模型训练完成后,还可以对神经网络模型进行验证并且验证通过。具体地,可以从数据源获取结构化的样本数据,并将获取的样本数据划分为训练集数据和验证集数据,利用训练集数据训练神经网络模型,利用验证集数据对神经网络模型的输出结果进行验证。

进一步而言,还可以将获取的样本数据划分训练集、验证集和测试集数据。所述测试集数据包括多个特征的特征值。例如,测试集数据可以包括多个样本,每个样本包含n个特征;样本1记为:x1=[x11,x12,x13,…,x1n],样本2记为x2=[x21,x22,x23,…,x2n],…,样本m记为xm=[xm1,xm2,xm3,…,xmn]。

在步骤s102中的具体实施中,可以将测试集数据作为输入,以输入至神经网络模型。神经网络模型可以输出针对测试集数据中多个特征值的输出数据。神经网络模型的输出数据为数值型数据。

例如,神经网络模型的输出为针对每一样本数据生成[0,1]之间的概率值。

需要说明的是,神经网络模型除了输出概率值之外,也可以输出其他任意可实施的数值型结果,本发明实施例对此不作限制。

由于神经网络模型的输出数据为数值型数据,因此在步骤s103中,可以按照输出数据的大小对所述测试集数据中的多个样本进行排序。也就是说,各个样本与模型的输出数据之间具备一一对应的映射关系,在对输出数据按照其大小进行排序时,可以确定输出数据对应的各个样本的顺序。

例如,按照从小到大的顺序对输出数据进行排序,那么排序靠前的输出数据对应的样本排序也靠前;同理,排序靠后的输出数据对应的样本排序也靠后。

在步骤s103的具体实施中,还可以将排序后的多个样本划分为至少两部分。例如,可以将排序后的多个样本划分为前半部分和后半部分。

由于每个样本中包括多个特征,因此在步骤s104的具体实施中,可以统计得到各个特征在划分后的各部分样本中的分布。

具体地,可以统计每个特征在各部分样本中的取值,以及每个特征在各部分样本中数值为每个取值的样本数量。例如,特征p在前半部分样本中的取值有18、20、21和22,特征p在前半部分样本中取值为18的样本数量为10,特征p在前半部分样本中取值为20的样本数量为4,特征p在前半部分样本中取值为21的样本数量为5,特征p在前半部分样本中取值为22的样本数量为4;特征p在后半部分样本中的取值有18、20、21和22,特征p在后半部分样本中取值为18、20、21和22样本数量分别为3、4、12和4。

进而在步骤s105的具体实施中,可以根据每个特征在各部分样本中的分布的距离确定该特征对神经网络模型的贡献。具体而言,如果特征在各部分样本中的分布的距离较大,换言之,特征在各部分样本中的分布具有确分度,也即具有差异,能够明显区分,则表示该特征对于模型的输出结果是具有贡献的,反之则表示该特征对于模型的输出结果是不具有贡献的。

在一个具体实施例中,图1所示步骤s105可以包括以下步骤:计算每个特征在各部分样本中的分布的距离;如果所述距离小于预设阈值,则确定所述特征对所述神经网络模型不具有贡献。

本领域技术人员应当理解的是,可以利用js散度(jensen-shannondivergence)、wasserstein距离、相对熵(relativeentropy,又被称为kullback-leibler散度)等任意可实施的已有算法来计算两个分布之间的距离,本发明实施例对此不作限制。

本发明实施例利用训练完成的神经网络模型的模型输出结果,也即对测试集的输出数据,通过对输出数据进行排序,可以得到按照输出数据排序的测试集中的各个特征的特征值;按照排序将特征值划分为至少两部分,统计至少两部分特征值的分布,并根据至少两部分特征值的分布的距离确定特征对神经网络模型的贡献,也即通过排名靠前的样本的特征范围分布和排名靠后的样本的特征范围分布差异,来确定神经网络模型对于各个特征的敏感程度以及各个特征对神经网络模型的输出结果的贡献,为更准确地解释深度网络模型提供决策。

本发明一个非限制性的实施例中,图1所示方法还可以包括以下步骤:如果所述特征所述神经网络模型不具有贡献,则在后续训练数据中剔除所述特征。

本实施例中,对于对所述神经网络模型不具有贡献的特征,在后续的训练数据中可以将其剔除。也就是说,对所述神经网络模型不具有贡献的特征对模型的输出结果影响不大,在后续选取训练数据对神经网络模型进行训练时,可以将其剔除,以减小工作量。

本发明一个具体实施例中,请参照图2,图1所示步骤s104可以包括以下步骤:

步骤s201:统计各个特征在各部分样本总的取值范围以及各部分样本中具备各个取值的样本数量;

步骤s202:根据各个特征的取值范围以及样本数量确定各个特征在所述多个样本的各部分样本中的分布直方图。

本实施例中,由于特征在各部分样本总的取值是离散的,因此在统计特征的分布时,得到的是可以是分布直方图。

具体实施中,特征的分布直方图的横坐标可以是特征的取值,纵坐标为样本数量;或者,特征的分布直方图的横坐标可以是样本数量,纵坐标为特征的取值。

在另一个具体实施例中,步骤s201也可以替换为以下步骤:统计各个特征在各部分样本总的取值范围以及各部分样本中在取值范围内的多个子范围内的样本数量。

例如,特征p在部分样本1的取值范围为0-20,该取值范围的子范围分别为0-5,5-10,10-15以及15-20;统计部分样本1中特征p的取值位于上述子范围的样本数量,并以横坐标为部分样本1,纵坐标为样本数量确定特征p在部分样本1中的分布直方图。

进一步而言,继续参照图2,图1所示步骤s104还可以包括以下步骤:

步骤s203:利用核密度估计确定各个分布直方图对应的密度曲线,所述密度曲线为连续的平滑曲线。

如前所述,特征在各部分样本中的分布直方图是离散的,为了在后续步骤中便于计算分布之间的距离,可以将分布直方图转换为连续的平滑曲线。具体可以采用核密度估计方法将特征的分布直方图转换为密度曲线。

进一步而言,图1所示步骤s105可以包括以下步骤:计算各个特征在每部分样本的分布直方图的波峰之间的距离;如果所述距离小于预设阈值,则确定所述特征对所述神经网络模型不具有贡献。

本实施例中,在计算特征的分布的距离时,具体可以是计算分布直方图的波峰之间的距离。分布直方图的波峰可以是指具备最大纵坐标取值的位置。

本发明一个具体实施例中,请参照图3,图1所示步骤s103可以包括以下步骤:

步骤s301:按照所述输出数据的大小对所述测试集数据中的多个样本进行排序;

步骤s302:按照排序后的顺序将所述测试集数据中的多个样本划分为前部分样本和后部分样本。

本实施例中,可以仅将多个样本划分为前部分样本和后部分样本这两个样本,既能够实现对特征在不同部分样本中的分布的差异分析,又减小了计算量。

进一步而言,所述前部分样本和所述后部分样本的数量相等。

本发明实施例可以将多个样本划分为均匀的两部分样本,以保证对特征在不同部分样本中的分布的差异分析的准确性。

需要说明的是,在实际的应用中,也可以按照其他任意可实施的比例对多个样本进行划分,具体的比例可以根据实际的应用需求进行设置,本发明实施例对此不作限制。

在本发明一个具体应用场景中,请参照图4,图4示出了某个特征p在两个部分样本中的分布,也即分布1和分布2。其中,坐标系的横坐标为特征p的特征取值,纵坐标为样本数量。

分布1和分布2为连续的平滑曲线。分布1和分布2的波峰如图4中虚线所示,分布1的波峰位置处的纵坐标取值相较于分布1的其他位置处的纵坐标取值大,同理,分布2的波峰位置处的纵坐标取值相较于分布2的其他位置处的纵坐标取值大。

具体可以通过计算分布1的波峰和分布2的波峰之间的距离确定分布1和分布2之间的距离,以用于衡量分布1和分布2之间是否具备差异。如果是,则可以确定特征p对所述神经网络模型具有贡献。

进而,在后续步骤中选取对神经网络模型的训练样本时,可以保留训练样本中该特征p的特征值。

请参照图5,图5还公开了一种神经网络模型的数据处理装置50,经网络模型的数据处理装置50可以包括数据及模型获取模块501、计算模块502、划分模块503、分布统计模块504和贡献确定模块505。

其中,数据及模型获取模块501用以获取训练完成的神经网络模型以及测试集数据,所述测试集数据与所述神经网络模型的训练数据来源相同,且所述测试集数据不同于所述训练数据,所述测试集数据包括多个特征的特征值;计算模块502用以将所述测试集数据的多个样本输入至所述神经网络模型,以得到针对所述测试集数据中多个样本的输出数据,所述输出数据为数值型数据;划分模块503用以按照所述输出数据的大小对所述测试集数据中的多个样本进行排序,并将排序后的多个样本划分为至少两部分,每部分样本对应的输出数据的大小是连续的;分布统计模块504用以统计各个特征在所述多个样本的各部分样本中的分布,每一样本包括多个特征;贡献确定模块505用以根据每个特征在各部分样本中的分布的距离确定所述特征对所述神经网络模型是否具有贡献。

本发明实施例利用训练完成的神经网络模型的模型输出结果,也即对测试集的输出数据,通过对输出数据进行排序,可以得到按照输出数据排序的测试集中的各个特征的特征值;按照排序将特征值划分为至少两部分,统计至少两部分特征值的分布,并根据至少两部分特征值的分布的距离确定特征对神经网络模型的贡献,也即通过排名靠前的样本的特征范围分布和排名靠后的样本的特征范围分布差异,来确定神经网络模型对于各个特征的敏感程度以及各个特征对神经网络模型的输出结果的贡献,为更准确地解释深度网络模型提供决策。

关于所述神经网络模型的数据处理装置50的工作原理、工作方式的更多内容,可以参照图1至图4中的相关描述,这里不再赘述。

本发明实施例还公开了一种存储介质,其上存储有计算机指令,所述计算机指令运行时可以执行图1至图3中所示方法的步骤。所述存储介质可以包括rom、ram、磁盘或光盘等。所述存储介质还可以包括非挥发性存储器(non-volatile)或者非瞬态(non-transitory)存储器等。

本发明实施例还公开了一种终端,所述终端可以包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令。所述处理器运行所述计算机指令时可以执行图1至图3中所示方法的步骤。所述终端包括但不限于手机、计算机、平板电脑等终端设备。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

技术特征:

1.一种神经网络模型的数据处理方法,其特征在于,包括:

获取训练完成的神经网络模型以及测试集数据,所述测试集数据与所述神经网络模型的训练数据来源相同,且所述测试集数据不同于所述训练数据,所述测试集数据包括多个特征的特征值;

将所述测试集数据的多个样本输入至所述神经网络模型,以得到针对所述测试集数据中多个样本的输出数据,所述输出数据为数值型数据;

按照所述输出数据的大小对所述测试集数据中的多个样本进行排序,并将排序后的多个样本划分为至少两部分,每部分样本对应的输出数据的大小是连续的;

统计各个特征在所述多个样本的各部分样本中的分布,每一样本包括多个特征;

根据每个特征在各部分样本中的分布的距离确定所述特征对所述神经网络模型是否具有贡献。

2.根据权利要求1所述的数据处理方法,其特征在于,还包括:

如果所述特征对所述神经网络模型不具有贡献,则在后续训练数据中剔除所述特征。

3.根据权利要求1所述的数据处理方法,其特征在于,所述统计各个特征在所述多个样本的各部分样本中的分布包括:

统计各个特征在各部分样本总的取值范围以及各部分样本中具备各个取值的样本数量;

根据各个特征的取值范围以及样本数量确定各个特征在所述多个样本的各部分样本中的分布直方图。

4.根据权利要求3所述的数据处理方法,其特征在于,还包括:

利用核密度估计确定各个分布直方图对应的密度曲线,所述密度曲线为连续的平滑曲线。

5.根据权利要求3所述的数据处理方法,其特征在于,所述根据每个特征在各部分样本中的分布的距离确定所述特征对所述神经网络模型是否具有贡献包括:

计算各个特征在每部分样本的分布直方图的波峰之间的距离;

如果所述距离小于预设阈值,则确定所述特征对所述神经网络模型不具有贡献。

6.根据权利要求1所述的数据处理方法,其特征在于,所述根据每个特征在各部分样本中的分布的距离确定所述特征对所述神经网络模型是否具有贡献包括:

计算每个特征在各部分样本中的分布的距离;

如果所述距离小于预设阈值,则确定所述特征对所述神经网络模型不具有贡献。

7.根据权利要求1所述的数据处理方法,其特征在于,所述按照所述输出数据的大小对所述测试集数据中的多个样本进行排序,并将排序后的多个样本划分为至少两部分包括:

按照所述输出数据的大小对所述测试集数据中的多个样本进行排序;

按照排序后的顺序将所述测试集数据中的多个样本划分为前部分样本和后部分样本。

8.根据权利要求7所述的数据处理方法,其特征在于,所述前部分样本和所述后部分样本的数量相等。

9.一种神经网络模型的数据处理装置,其特征在于,包括:

数据及模型获取模块,用以获取训练完成的神经网络模型以及测试集数据,所述测试集数据与所述神经网络模型的训练数据来源相同,且所述测试集数据不同于所述训练数据,所述测试集数据包括多个特征的特征值;

计算模块,用以将所述测试集数据的多个样本输入至所述神经网络模型,以得到针对所述测试集数据中多个样本的输出数据,所述输出数据为数值型数据;

划分模块,用以按照所述输出数据的大小对所述测试集数据中的多个样本进行排序,并将排序后的多个样本划分为至少两部分,每部分样本对应的输出数据的大小是连续的;

分布统计模块,用以统计各个特征在所述多个样本的各部分样本中的分布,每一样本包括多个特征;

贡献确定模块,用以根据每个特征在各部分样本中的分布的距离确定所述特征对所述神经网络模型是否具有贡献。

10.一种存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行权利要求1至8中任一项所述神经网络模型的数据处理方法的步骤。

11.一种终端,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,其特征在于,所述处理器运行所述计算机指令时执行权利要求1至8中任一项所述神经网络模型的数据处理方法的步骤。

技术总结

一种神经网络模型的数据处理方法及装置、存储介质、终端,神经网络模型的数据处理方法包括:获取训练完成的神经网络模型以及测试集数据;将所述测试集数据的多个样本输入至所述神经网络模型,以得到针对所述测试集数据中多个样本的输出数据,所述输出数据为数值型数据;按照所述输出数据的大小对所述测试集数据中的多个样本进行排序,并将排序后的多个样本划分为至少两部分,每部分样本对应的输出数据的大小是连续的;统计各个特征在所述多个样本的各部分样本中的分布,每一样本包括多个特征;根据每个特征在各部分样本中的分布的距离确定所述特征对所述神经网络模型是否具有贡献。

技术研发人员:李君浩;张俊

受保护的技术使用者:上海上湖信息技术有限公司

技术研发日:.10.12

技术公布日:.02.28

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。