一种基于复合蜕变关系的分类器测试方法及系统与流程

文档序号:17695682发布日期:2019-05-17 21:29阅读:188来源:国知局
一种基于复合蜕变关系的分类器测试方法及系统与流程

本发明实施例涉及智能化软件新技术领域,尤其涉及一种基于复合蜕变关系的分类器测试方法及系统。



背景技术:

机器学习是人工智能技术的重要研究领域,通过机器学习算法构建准确度高的分类、预测或聚类机器学习模型是机器学习的核心目标之一,随着机器学习模型在金融、自动驾驶和工业控制等领域越来越普遍的应用,对机器学习模型的安全性和可靠性提出了更高的要求,因此,必须测试和验证机器学习模型,以保证安全性和可靠性。

机器学习模型的关键功能就是从大量数据中识别有价值的信息,数据敏感性是机器学习的主要特征,给定数据集的细微差别对机器学习模型的计算结果具有很大且不可预测的影响,因此,对机器学习模型的测试方法提出了新的挑战。

针对新的挑战,需要从机器学习模型的机器学习算法本身的特点出发来寻求高效的测试方法。以分类机器学习模型即分类器为例,分类器的分类算法具有元方法不确定性和计算目的不确定性。其中,元方法不确定性指所选取的机器学习算法不确定,例如,分类算法有k-近邻分类算法、决策树、朴素贝叶斯和logistic回归等;计算目的不确定性指所选取的数据集、分类标准和测试用例的结果等不确定。基于此,对分类器不能以准确度高低作为其安全性和可靠性的评价标准,准确度高并不能确保分类器不存在bug。

因此,采用何种方法对分类器进行测试,便是目前急需解决的问题。传统的软件测试技术应用于分类器存在缺少测试规约和测试准确度不够高的问题。蜕变测试技术是解决缺少测试规约问题的有效手段。蜕变测试技术是通过验证多个测试用例执行输出之间是否满足程序必须满足的蜕变关系,从而判断程序运行是否正确。若直接将一元蜕变关系测试技术用于分类器缺陷检测,其中只有个别一元蜕变关系的检错能力可以达到70%以上,绝大多数一元蜕变关系的检错能力极低。因此,简单一元蜕变关系度分类器的缺陷检测能力有限,需要更加高效的测试方法。



技术实现要素:

针对现有技术中存在的技术问题,本发明实施例提供一种基于复合蜕变关系的分类器测试方法及系统。

第一方面,本发明实施例提供一种基于复合蜕变关系的分类器测试方法,包括:

将分类器的多个一元蜕变关系复合为复合蜕变关系;

基于所述复合蜕变关系,生成测试用例;

基于所述复合蜕变关系和所述测试用例,对所述分类器进行测试,并获取测试结果。

第二方面,本发明实施例提供一种基于复合蜕变关系的分类器测试系统,包括:

蜕变关系复合模块,用于将分类器的多个一元蜕变关系复合为复合蜕变关系;

测试用例生成模块,用于基于所述复合蜕变关系,生成测试用例;

测试结果获取模块,用于基于所述复合蜕变关系和所述测试用例,对所述分类器进行测试,并获取测试结果。

第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的方法的步骤。

第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。

本发明实施例提供的一种基于复合蜕变关系的分类器测试方法及系统,通过将分类器的多个一元蜕变关系复合为复合蜕变关系,然后基于复合蜕变关系对分类器进行测试,并获取测试结果。可降低测试成本、提高测试效率。既能有效利用分类器本身所具有的元方法不确定性和计算目的不确定性的特征,还能明显提升分类器的测试效果。有效利用分类器本身所具有的特征、显著提高分类器的测试效率、提高蜕变关系的检错能力、降低测试成本。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种基于复合蜕变关系的分类器测试方法流程图;

图2为本发明实施例提供的一种分类器的训练及应用示意图;

图3为本发明实施例提供的一种基于复合蜕变的测试用例生成流程图;

图4为本发明实施例提供的一种复合蜕变流程图;

图5为本发明实施例提供的一种基于复合蜕变的测试用例生成流程图;

图6为本发明实施例提供的一种蜕变关系检测流程示意图;

图7为本发明实施例提供的一种基于复合蜕变关系的分类器测试系统的结构示意图;

图8为本发明实施例提供的一种电子设备的实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例提供的一种基于复合蜕变关系的分类器测试方法流程图,如图1所示,该方法包括:

步骤101,将分类器的多个一元蜕变关系复合为复合蜕变关系。

首先,对蜕变关系进行说明:假设程序p用来计算函数f,x1,x2,...,xn(n>1)是f的n组变元,且f(x1),f(x2),...,f(xn)是其对应的函数结果。若x1,x2,...,xn间满足关系r时,f(x1),f(x2),...,f(xn)满足关系rf,即则称(r,rf)是p的蜕变关系。其中,若n=1,则称(r,rf)是p的一元蜕变关系;若n=2,则称(r,rf)是p的二元蜕变关系,以此类推。并且,对于n≥2的情况,还可则称(r,rf)是p的复合蜕变关系。

图2为本发明实施例提供的一种分类器的训练及应用示意图,如图2所示,通过训练数据dtran和训练算法对分类器进行训练,训练完成后,将测试数据dtest输入至分类器中,获取分类器的输出,作为预测结果dresult。对于分类器来说,其一元蜕变关系包括“置换类标签”、“置换属性值”、“增加训练样本”等。需要说明的是,分类器的一元蜕变关系可以有任意多个,本发明实施例对其不作具体限定。

将分类器的多个一元蜕变关系进行复合,以生成复合蜕变关系。例如,这多个一元蜕变关系分别为:调整dtran中第i行和第j行数据记录的顺序(简称关系1)和调整dtest中第i行和第j行数据记录的顺序(简称关系2)。那么,将关系1和关系2复合成的复合蜕变关系可以为:先执行关系1,再执行关系2,或者,先执行关系2,再执行关系1。需要说明的是,若将关系1作为复合的第一条一元蜕变关系i,再将关系2与关系1进行复合,那么得到的复合蜕变关系为:先执行关系1,再执行关系2。若将关系2作为复合的第一条一元蜕变关系,再将关系1与关系2进行复合,那么得到的复合蜕变关系为:先执行关系2,再执行关系1。

步骤102,基于所述复合蜕变关系,生成测试用例。

具体地,首先获取原始数据;然后,将原始数据划分为原始用例训练集和原始用例验证集;随后,基于复合蜕变关系,分别将原始用例训练集和原始用例验证集蜕变为衍生用例训练集和衍生用例验证集,此处,将衍生用例训练集和衍生用例验证集统称为测试用例。

步骤103,基于所述复合蜕变关系和所述测试用例,对所述分类器进行测试,并获取测试结果。

需要说明的是,采用何种方法对分类器进行测试是目前急需解决的问题。传统的软件测试技术应用于分类器存在缺少测试规约和测试准确度不够高的问题。蜕变测试技术是解决缺少测试规约问题的有效手段。蜕变测试技术是通过验证多个测试用例执行输出之间是否满足程序必须满足的蜕变关系,从而判断程序运行是否正确。若直接将一元蜕变关系测试技术用于分类器缺陷检测,其中只有个别一元蜕变关系的检错能力可以达到70%以上,绝大多数一元蜕变关系的检错能力极低。因此,简单一元蜕变关系度分类器的缺陷检测能力有限,需要更加高效的测试方法。

针对上述问题,本发明实施例提出了一种基于复合蜕变关系的分类器测试方法,即,基于复合蜕变关系和测试用例,对分类器进行测试,并获取测试结果。

本发明实施例提供的方法,通过将分类器的多个一元蜕变关系复合为复合蜕变关系,然后基于复合蜕变关系对分类器进行测试,并获取测试结果。可降低测试成本、提高测试效率。既能有效利用分类器本身所具有的元方法不确定性和计算目的不确定性的特征,还能明显提升分类器的测试效果。有效利用分类器本身所具有的特征、显著提高分类器的测试效率、提高蜕变关系的检错能力、降低测试成本。

在上述各实施例的基础上,对蜕变关系的复合过程进行说明。即,将分类器的多个一元蜕变关系复合为复合蜕变关系,包括:

确定分类器的一元蜕变关系集合,并在所述一元蜕变关系集合中确定待进行复合的多个一元蜕变关系;

将所述多个一元蜕变关系复合为复合蜕变关系。

具体地,分类器的一元蜕变关系众多,将分类器的所有一元蜕变关系组成一元蜕变关系集合,而对于复合,并不是复合的一元蜕变关系越多越好,因此,需要从一元蜕变关系集合中选取部分或全部进行复合,这就需要根据具体问题具体分析,本发明实施例对选取不作具体限定。

在上述各实施例的基础上,对确定待进行复合的多个一元蜕变关系进行说明。即,在所述一元蜕变关系集合中确定待进行复合的多个一元蜕变关系,包括:

根据时间成本和/或预算效果,在所述一元蜕变关系集合中确定待进行复合的一元蜕变关系的数量;

从所述一元蜕变关系集合中确定所述数量个一元蜕变关系。

具体地,本发明实施例为一种具体的选取标准,即,根据时间成本和/或预测效果,确定从一元蜕变关系集合中选取的一元蜕变关系的数量k,需要说明的是,k值按如下方式确定:依次从一元蜕变关系、二元蜕变关系…开始测试,直至效果好(取决于评价标准)且测试效果不再因为k的增加有提高即可。然后,从一元蜕变关系集合中提取出k条一元蜕变关系来进行复合,需要说明的是,可按如下方式提取:选取当前可进行复合的一元蜕变关系,且首要选取最有效的。并且,每次选取的一元蜕变关系都是从一元蜕变关系集合中选取,且选取的一元蜕变关系可重复。。

在上述各实施例的基础上,获取复合蜕变关系后,基于所述复合蜕变关系,生成测试用例;基于所述复合蜕变关系和所述测试用例,对所述分类器进行测试,并获取测试结果,具体包括:

基于所述复合蜕变关系,分别将原始用例训练集和原始用例验证集蜕变为衍生用例训练集和衍生用例验证集。

具体地,结合图3对本发明实施例进行具体说明,图3为本发明实施例提供的一种基于复合蜕变的测试用例生成流程图,如图3所示:

步骤1-1:起始状态,输入原始数据t;

步骤1-2:对原始数据t采用交叉验证划分为原始测试用例;

步骤1-3:输出为原始用例训练集和原始用例验证集;

步骤1-4:输入为有效的一元蜕变关系集合mr;

步骤1-5:复合蜕变;

步骤1-6:输出为衍生用例训练集和衍生用例验证集。

结合图4对本发明实施例中的步骤1-5进行具体说明,图4为本发明实施例提供的一种复合蜕变流程图,如图4所示,复合蜕变的步骤如下:

步骤1-5-1:起始状态,输入n条有效的一元蜕变关系;

步骤1-5-2:计数器i初始化为0;

步骤1-5-3:在n条有效的一元蜕变关系中选择一条可复合的一元蜕变关系;

步骤1-5-4:复合;

步骤1-5-5:计数器i+1;

步骤1-5-6:判断计数器i是否小于k,若是,执行步骤1-5-3,反之执行步骤1-5-7;

步骤1-5-7:输出k元复合蜕变关系;

步骤1-5-8:输入原始用例训练集和原始用例验证集;

步骤1-5-9:对输入的原始用例训练集和原始用例验证集分别按照复合蜕变关系进行原始用例蜕变;

步骤1-5-10:输出为衍生用例训练集和衍生用例验证集。

分别通过所述原始用例训练集和所述衍生用例训练集对所述分类器进行训练,以生成原始用例分类器和衍生用例分类器。

将所述原始用例验证集输入至所述原始用例分类器,输出原始用例结果集,并将所述衍生用例验证集输入至所述衍生用例分类器,输出衍生用例结果集。

具体地,首先,进行分类器训练,将原始测试用例中的原始用例训练集作为训练输入,通过分类器训练,得到原始用例分类器;将衍生测试用例中的衍生用例训练集作为训练输入,通过分类器训练,得到衍生用例分类器。

其次,进行分类器验证,将原始测试用例中的原始用例验证集作为原始用例分类器的输入,得到原始用例验证结果集;将衍生测试用例中的衍生用例验证集作为衍生用例分类器的输入,得到衍生用例验证结果集。

其中,分类器算法有k-近邻分类算法、决策树、朴素贝叶斯、logistic回归等。结合图5对本发明实施例进行具体说明,图5为本发明实施例提供的一种基于复合蜕变的测试用例生成流程图,如图5所示,分类器训练及验证的步骤如下:

步骤2-1:起始状态,输入经上一步处理的原始用例训练集和衍生用例训练集;

步骤2-2:进行分类器训练;

步骤2-3:输出经上一步训练的原始用例分类器和衍生用例分类器;

步骤2-4:将原始用例验证集作为原始用例分类器的输入,将衍生用例验证集作为衍生用例分类器的输入;

步骤2-5:进行分类器验证;

步骤2-6:输出为原始用例验证结果集和衍生用例验证结果集。

基于所述复合蜕变关系,将所述原始用例结果集和所述衍生用例结果集进行一致性验证,以获取测试结果。

在上述各实施例的基础上,基于所述复合蜕变关系,分别将原始用例训练集和原始用例验证集蜕变为衍生用例训练集和衍生用例验证集,之前还包括:

获取原始数据;

基于交叉验证,将所述原始数据划分为原始用例训练集和原始用例验证集。

具体地,原始数据为用于分类的数据集,记为t。交叉验证是在给定的建分类器样本即原始数据t中,拿出大部分样本进行建分类器,留小部分样本用刚建立的分类器进行预测。交叉验证的常见形式有holdout验证、k折交叉验证、留一验证等。将原始数据经过交叉验证划分为原始测试用例,包括原始用例训练集和原始用例测试集。

在上述各实施例的基础上,基于所述复合蜕变关系,将所述原始用例结果集和所述衍生用例结果集进行一致性验证,以获取测试结果,包括:

若所述原始用例结果集和所述衍生用例结果集的一致性满足所述复合蜕变关系,则判定所述测试结果为所述分类器具备可靠性和安全性;

否则,判定所述测试结果为所述分类器不具备可靠性和安全性。

具体地,验证原始用例验证结果集和衍生用例验证结果集的一致性,若两者与复合蜕变关系不一致,则确认违反此蜕变关系的缺陷。需要说明的是,此处是将所有的原始用例结果集和衍生用例结果集进行一致性验证,验证完毕后,通过评价标准(例如,准确率、查准率、召回率或f值)综合判断此条复合蜕变关系对分类器的测试结果,进而得出此条复合蜕变关系检测能力的高低,对其他分类器也会有极大的参考价值。

图6为本发明实施例提供的一种蜕变关系检测流程示意图,如图6所示,蜕变关系检查的步骤如下:

步骤3-1:起始状态,输入经上一步处理的原始用例验证结果集和衍生用例验证结果集;

步骤3-2:进行蜕变关系一致性验证;

步骤3-3:判断一致性是否满足,若满足,则确认未检测到违反此蜕变关系的缺陷,若不满足,则确认违反此蜕变关系的缺陷;

步骤3-4:输出分类器测试结果。

在上述各实施例的基础上,交叉验证为holdout验证、k折交叉验证或留一验证。

具体地,holdout验证为随机从最初的样本中选出部分,形成交叉验证数据,而剩余的就当做训练数据。一般来说,少于原本样本三分之一的数据被选做验证数据。k折交叉验证是为避免原始数据的有序性,采用随机分割。同时,验证数据testdata的生成应尽量覆盖所有功能区,功能区指所对应生成的模型(分类器)的每一个分支。随机分割成k个子样本,一个单独的子样本被保留作为验证模型的数据,其他k-1个样本用来训练。交叉验证重复k次,每个子样本验证一次,平均k次的结果或者使用其它结合方式,最终得到一个单一估测。这个方法的优势在于,同时重复运用随机产生的子样本进行训练和验证,每次的结果验证一次,10折交叉验证是最常用的留一验证为只使用原本样本中的一项来当做验证资料,而剩余的则留下来当做训练资料。这个步骤一直持续到每个样本都被当做一次验证资料。事实上,这等同于和k折交叉验证是一样的,其中k为原本样本个数。在某些情况下是存在有效率的演算法,如使用kernelregression和tikhonovregularization。

综上所述,本发明实施例提供的一种基于复合蜕变关系的分类器测试方法,与现有技术相比,具有下述优点:

提供了一种有效的分类器缺陷检测方法,即一种基于复合蜕变关系的分类器测试方法;提供的分类器测试技术有效利用了分类器本身所具有的特征,显著提高了分类器的测试效率;复合蜕变关系不局限于二元蜕变关系,可为二元至k元蜕变关系;复合蜕变关系不仅作用于训练集,包括原始用例训练集和衍生用例训练集,还作用于验证集,包括衍生用例验证集和衍生用例验证集;提供的复合蜕变关系测试技术,提高了一元蜕变关系的检错能力,降低测试成本。

图7为本发明实施例提供的一种基于复合蜕变关系的分类器测试系统的结构示意图,如图7所示,该系统包括:

蜕变关系复合模块701,用于将分类器的多个一元蜕变关系复合为复合蜕变关系;

测试用例生成模块702,用于基于所述复合蜕变关系,生成测试用例;

测试结果获取模块703,用于基于所述复合蜕变关系和所述测试用例,对所述分类器进行测试,并获取测试结果。

本发明实施例提供的系统,具体执行上述各方法实施例流程,具体请详见上述各方法实施例的内容,此处不再赘述。本发明实施例提供的系统,通过将分类器的多个一元蜕变关系复合为复合蜕变关系,然后基于复合蜕变关系对分类器进行测试,并获取测试结果。可降低测试成本、提高测试效率。既能有效利用分类器本身所具有的元方法不确定性和计算目的不确定性的特征,还能明显提升分类器的测试效果。有效利用分类器本身所具有的特征、显著提高分类器的测试效率、提高蜕变关系的检错能力、降低测试成本。

图8为本发明实施例提供的一种电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)801、通信接口(communicationsinterface)802、存储器(memory)803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信。处理器801可以调用存储在存储器803上并可在处理器801上运行的计算机程序,以执行上述各实施例提供的方法,例如包括:将分类器的多个一元蜕变关系复合为复合蜕变关系;基于所述复合蜕变关系,生成测试用例;基于所述复合蜕变关系和所述测试用例,对所述分类器进行测试,并获取测试结果。

此外,上述的存储器803中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的传输方法,例如包括:将分类器的多个一元蜕变关系复合为复合蜕变关系;基于所述复合蜕变关系,生成测试用例;基于所述复合蜕变关系和所述测试用例,对所述分类器进行测试,并获取测试结果。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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