模型生成方法及装置、数据处理方法及装置与流程

文档序号:16507214发布日期:2019-01-05 09:06阅读:191来源:国知局
模型生成方法及装置、数据处理方法及装置与流程
本申请涉及人工智能
技术领域
,尤其涉及一种模型生成方法及装置、数据处理方法及装置。
背景技术
:机器学习是人工智能的一个分支,是实现人工智能的一个途径,即以机器学习为手段解决人工智能中的问题。其中,集成学习方法是使用一系列“个体学习器”(individuallearner)进行学习,并使用某种规则把各个“个体学习器”的结果进行整合从而获得比单个个体学习器更好的学习效果的一种机器学习方法。图1示出了一种集成学习模型的基本结构,先产生一组个体学习器(也可称为子模型),再通过结合模块采用某种结合的策略将多个个体学习器的预测输出结合起来得到最终的输出。目前,集成学习方法可大致分为两大类:一是,个体学习器间存在强依赖关系、必须串行生成的序列化方法,代表是boosting方式;二是,个体学习器间不存在强依赖关系、可同时生成的并行化方法,代表是bagging方式。在对多个个体学习器的预测输出进行结合时,bagging方式的集成学习结果通常是通过对多个个体学习器的预测输出采用简单投票法(即“少数服从多数”)产生,若多数个体学习器的预测输出错误,则会导致集成学习结果出错,导致现有的bagging方法存在集成学习结果正确率不高的问题。技术实现要素:有鉴于此,本申请实施例提供了一种模型生成方法及装置、数据处理方法及装置,能够解决现有技术中个体学习器的正确率低严重影响集成学习结果的正确率,导致集成学习结果正确率不高的问题。本申请实施例提供的一种模型生成方法,包括:获得多个初始构建的子模型,对于每个所述初始构建的子模型均利用与其对应的训练数据集进行模型的训练,并使用每个训练后的子模型,对与其对应的训练数据集中输入数据进行输出结果的预测;所述训练数据集包括多个实例,每个实例包括输入数据和输出结果;生成的模型包括每个训练后的子模型;根据目标子模型的预测正确率确定所述目标子模型的输出权重;所述目标子模型是所述每个训练后的子模型中的任意一个;所述预测正确率根据所述目标子模型的预测输出和与其对应的训练数据集中的输出结果得到;所述输出权重用于整合所述每个训练后的子模型的输出结果作为所述模型的输出。可选的,所述获得多个初始构建的子模型,对于每个所述初始构建的子模型均利用与其对应的训练数据集进行模型的训练,并使用每个训练后的子模型,对与其对应的训练数据集中输入数据进行输出结果的预测,具体包括:获得初始构建的第一子模型和对应的第一训练数据集,并使用所述第一训练数据集训练所述初始构建的第一子模型;将所述第一训练数据集中的输入数据输入训练后的第一子模型进行输出结果的预测,得到第一预测输出;根据所述第一预测输出和所述第一训练数据集中的输出结果,统计所述第一训练数据集中预测错误的实例作为第二训练数据集;获得初始构建的第二子模型,并使用所述第二训练数据集训练所述初始构建的第二子模型;其中,所述初始构建的第一子模型和所述初始构建的第二子模型是所述多个初始构建的子模型中的任意两个,所述多个初始构建的子模型使用相同的模型算法和参数。可选的,所述统计所述第一训练数据集中预测错误的实例作为第二训练数据集,之后还包括:判断所述第二训练数据集包括的实例数量与所述第一训练数据集包括的实例数量之间的比值是否小于第一阈值;若否,则执行所述获得初始构建的第二子模型,并使用所述第二训练数据集训练所述初始构建的第二子模型;若是,则执行所述根据所述每个训练后的子模型的预测正确率确定所述每个训练后的子模型的输出权重。可选的,所述根据目标子模型的预测正确率确定所述目标子模型的输出权重,具体包括:计算目标训练数据集中实例数量与总训练数据集中实例数量的比值,得到修正参数;所述目标训练数据集是与所述目标子模型对应的训练数据集;所述总训练数据集至少包括所述目标训练数据集;根据所述目标子模型的预测正确率和所述修正参数,得到所述目标子模型的输出权重。可选的,所述方法还包括:判断所述目标子模型的预测正确率是否小于第二阈值;若是,则删除所述目标子模型。本申请实施例提供的一种数据处理方法,包括:获取待处理数据;将所述待处理数据输入多个训练后的子模型,得到每个所述训练后的子模型的输出;根据所述每个训练后的子模型的输出和输出权重,得到所述待处理数据的处理结果;所述多个训练后的子模型及其输出权重根据权利要求1-5任意一项所述的模型生成方法得到。可选的,所述根据所述每个训练后的子模型的输出和输出权重,得到所述待处理数据的处理结果,具体包括:按照公式得到所述待处理数据的处理结果其中,为第i个训练后的子模型mi对所述模型的第q个结果的预测输出,若所述第i个训练后的子模型mi对所述第q个结果的预测输出为是,则为1;若所述第i个训练后的子模型mi对所述第q个结果的预测输出为否,则为0;wi为所述第i个训练后的子模型mi的输出权重;n为所述模型包括的训练后的子模型的数量;k为所述模型输出结果的数量。本申请实施例提供的一种模型生成装置,包括:模型训练单元、输出预测单元和权重确定单元;所述模型训练单元,用于获得多个初始构建的子模型,对于每个所述初始构建的子模型均利用与其对应的训练数据集进行模型的训练;所述训练数据集包括多个实例,每个实例包括输入数据和输出结果;生成的模型包括每个训练后的子模型;所述输出预测单元,用于使用每个训练后的子模型,对与其对应的训练数据集中输入数据进行输出结果的预测;所述权重确定单元,用于根据目标子模型的预测正确率确定所述目标子模型的输出权重;所述目标子模型是所述每个训练后的子模型中的任意一个;所述预测正确率根据所述目标子模型的预测输出和与其对应的训练数据集中的输出结果得到;所述输出权重用于整合所述每个训练后的子模型的输出结果作为所述模型的输出。可选的,所述装置还包括:集合构建单元;所述模型训练单元,具体用于获得初始构建的第一子模型和对应的第一训练数据集,并使用所述第一训练数据集训练所述初始构建的第一子模型;还用于获得初始构建的第二子模型,并使用第二训练数据集训练所述初始构建的第二子模型;所述输出预测单元,具体用于将与所述第一训练数据集中的输入数据输入训练后的第一子模型进行输出结果的预测,得到所述第一预测输出;所述集合构建单元,用于根据所述第一预测输出和所述第一训练数据集中的输出结果,统计所述第一训练数据集中预测错误的实例作为所述第二训练数据集;其中,所述初始构建的第一子模型和所述初始构建的第二子模型是所述多个初始构建的子模型中的任意两个,所述多个初始构建的子模型使用相同的模型算法和参数。可选的,所述装置还包括:第一判断单元;所述第一判断单元,用于判断所述第二训练数据集包括的实例数量与所述第一训练数据集包括的实例数量之间的比值是否小于第一阈值;所述模型训练单元,具体用于在所述第一判断单元的判断结果为否时,获得初始构建的第二子模型,并使用所述第二训练数据集训练所述初始构建的第二子模型;所述权重确定单元,具体用于在所述第一判断单元的判断结果为是时,根据所述目标子模型的预测正确率确定所述目标子模型的输出权重。可选的,所述权重确定单元,具体包括:计算子单元和确定子单元;所述计算子单元,用于计算目标训练数据集中实例数量与总训练数据集中实例数量的比值,得到修正参数;所述目标训练数据集是与所述目标子模型对应的训练数据集;所述总训练数据集至少包括所述目标训练数据集;所述确定子单元,用于根据所述目标子模型的预测正确率和所述修正参数,得到所述目标子模型的输出权重。本申请实施例提供的一种数据处理装置包括:获取模块、输入模块和结合模块;所述获取模块,用于获取待处理数据;所述输入模块,用于将所述待处理数据输入多个训练后的子模型,得到每个所述训练后的子模型的输出;所述结合模块,用于根据所述每个训练后的子模型的输出和输出权重,得到所述待处理数据的处理结果。本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当该计算机程序被处理器执行时,实现如上述实施例提供的模型生成方法中的任意一种,或者,实现如上述实施例提供的数据处理方法的任意一种。本申请实施例还提供了一种数据处理设备,包括处理器以及存储器:所述存储器,用于存储程序代码,并将所述程序代码传输给所述处理器;所述处理器,用于根据所述程序代码中的指令,执行如上述实施例提供的模型生成方法的任意一种,或者,执行如上述实施例提供的数据处理方法的任意一种。与现有技术相比,本申请至少具有以下优点:在本申请实施例中,先获得多个初始构建的子模型并利用与其对应的训练数据集对每个初始构建的子模型进行模型的训练,得到模型所包括的多个训练后的子模型。然后,使用每个训练后的子模型,对与其对应的训练数据集中输入数据进行输出结果的预测,根据训练数据集中已知的输出结果和预测出的输出结果可得知每个训练后的子模型的预测正确率。之后,再根据预测正确率对每个训练后的子模型赋予权重,得到每个训练后的子模型的输出权重。在得到模型的输出时,利用每个训练后的子模型的输出权重将多个子模型的输出整合为模型的输出,提高正确率高的训练后的子模型的输出对模型输出结果的影响,并降低正确率低的训练后的子模型的输出对模型输出结果的影响,从而提高了集成学习结果的正确率。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为一种集成学习模型的结构示意图;图2为本申请实施例提供的一种模型生成方法的流程示意图;图3为本申请实施例提供的另一种模型生成方法的流程示意图;图4为本申请实施例提供的又一种模型生成方法的流程示意图;图5为本申请实施例提供的一种数据处理方法的流程示意图;图6为本申请实施例提供的一种模型生成装置的结构示意图;图7为本申请实施例提供的另一种模型生成装置的结构示意图;图8为本申请实施例提供的又一种模型生成装置的结构示意图;图9为本申请实施例提供的一种数据处理装置的结构示意图。具体实施方式为了使本
技术领域
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。集成学习,顾名思义,通过将多个个体学习器集成或组合在一起,使用规则将各个个体学习器的学习结果整合得到学习结果,使它们共同完成学习任务。其中,个体学习器指的是机器学习算法训练得到的假设,是集成学习模型中的一个子模型。集成学习模型中的每个子模型(即个体学习器)通常是用一个现有的学习算法从训练数据产生,例如决策树算法、神经网络算法等。集成学习模型可以只包括同种类型的子模型,例如子模型全是利用决策树算法得到的(“决策树集成”),又例如子模型全是利用神经网络算法得到的(“神经网络集成”)。当然,集成学习模型还可以包括不同类型的子模型,例如集成学习模型同时包含利用决策树算法得到的子模型和利用神经网络算法得到的子模型等。目前,在整合每个子模型的输出得到集成学习模型的输出时,通常采用简单的投票法,即“少数服从多数”原则。在一个例子中,假设一个二分类的集成学习模型包括3个子模型:h1、h2和h3,整合后的集成学习模型的输出如下表:测试例1测试例2测试例3h1110h2101h3011集成111由于在模型训练时,会根据训练数据集中多组实例的训练情况调整子模型的全局权值进行使子模型收敛,这使得收敛后的子模型对实例中输入数据的预测输出和其在实例中对应的输出结果存在不相符的情况,导致该子模型存在一定的预测误差,即训练后的子模型的预测正确率不可能是100%。因此,在集成学习中,一旦预测错误的子模型数量大于预测正确的子模型,则会导致集成学习模型的输出结果出错。为此,本申请实施例提供了一种模型生成方法及装置,利用集成学习模型中每个子模型训练所用的训练数据集统计其预测正确率,再根据预测正确率确定每个子模型的输出权重,从而在整合子模型的输出得到集成学习模型的输出时,利用其输出权重对多个子模型的输出进行调整,充分考虑每个子模型的预测正确率,提高预测正确率高的子模型的输出在整合结果中的占比,降低预测正确率低的子模型的输出在整合结果中的占比,从而提高了集成学习模型输出的正确率。需要说明的是,利用本申请实施例提供的模型生成方法所生成的模型,可以应用于任意利用模型进行数据处理的场景,例如图像的处理和识别等,这里不进行限定。基于上述思想,为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请的具体实施方式做详细的说明。参见图2,该图为本申请实施例提供的一种模型生成方法的流程示意图。本申请实施例提供的模型生成方法,具体包括如下步骤s201-s202。s201:获得多个初始构建的子模型,对于每个初始构建的子模型均利用与其对应的训练数据集进行模型的训练,并使用每个训练后的子模型,对与其对应的训练数据集中输入数据进行输出结果的预测。在本申请实施例中,获得的多个初始构建的子模型可以是利用相同的算法和参数生成的,也可以是利用不同的算法或参数生成的。每个初始构建的子模型均有一个对应的训练数据集,多个初始构建的子模型可以对应相同的训练数据集,也可以对应不同的训练数据集,本申请实施例不进行限定。另外,对任意一个初始构建的子模型而言,可以采用目前任意一种模型训练的方法进行模型的训练,利用本申请实施例提供的模型生成方法所生成的模型(即集成学习模型)包括每个训练后的子模型。需要说明的是,训练数据集包括多个实例,每个实例包括一组输入数据和与其对应的输出结果,具体可以根据实际需要对每个子模型对应的训练数据集进行设定,这里不一一列举。在模型训练完毕之后,可以将对应的训练数据集中的输入数据再次对应的输入训练后的子模型,使训练后的子模型输出对每个输入数据所对应的预测输出进行输出结果的预测,以便结合训练数据集中已知的输出结果确定每个训练后的子模型的预测正确率。在实际应用中,可以在每一次训练得到一个训练后的子模型后,直接将与其对应的训练数据集中输入数据输入训练后的子模型进行输出结果的预测;也可以在得到多个训练后的子模型之后,再将与其对应的训练数据集中输入数据输入每个训练后的子模型进行输出结果的预测,本申请实施例对输出结果预测的执行顺序不进行限定。作为一个示例,以多个训练后的子模型中任意一个(以下称为目标子模型)为例,假设目标子模型对应的训练数据集为目标数据集,目标子模型可以是先利用目标训练数据集中随机选出80%的实例训练得到,在预测时,再将目标训练数据集中剩余20%的实例输入训练后的目标子模型进行输出结果的预测,以保证预测的通用性和随机性。为了便于理解,下面均以多个训练后的子模型中任意一个,即目标子模型为例进行说明。s202:根据目标子模型的预测正确率确定目标子模型的输出权重。在本申请实施例中,预测正确率根据目标子模型的预测输出和目标训练数据集中的输出结果得到。将目标训练数据集中的输出数据输入训练后的目标子模型后,训练后的目标子模型给出的结果即其预测的输出数据所对应的输出结果。再利用目标训练数据集中已知的输出结果,即可判断出目标子模型预测的输出结果是否正确,从而统计得到目标子模型的预测正确率。在本申请实施例中,预测正确率用于调整每个子模型的输出权重,达到提高模型整体输出正确率的目的。需要说明的是,目标子模型的预测正确率与其输出权重成正相关关系。即,若目标子模型的预测正确率高,则确定出的目标子模型的输出权重高;反之,若目标子模型的预测正确率低,则确定出的目标子模型的输出权重低。在一个例子中,可以直接将每个子模型的预测正确率确定为其输出权重。还需要说明的是,当逐一训练每个预先构建的子模型时,可以在训练得到一个训练后的子模型后,根据训练得到的子模型的预测正确率确定其输出权重,也可以在将每个子模型均训练完毕后,统一根据训练得到的子模型的预测正确率确定其输出权重,本申请对此不进行限定。在模型的具体应用中,输出权重用于整合每个训练后的子模型的输出结果作为模型的输出,下面结合一个具体应用的例子详细说明:假设模型共有k个输出结果,当目标子模型预测结果为第q个输出结果时对第q个输出结果输出1,当目标子模型预测结果不是第q个输出结果时对第q个输出结果输出0。在整合每个子模型的输出时,可以先统计每个子模型对k个输出结果的输出,将每个子模型的输出乘以该子模型的输出权重,以对子模型的输出进行校正,然后统计每个输出结果对应的每个子模型的输出之和,得到每个输出结果的参考值,最后将最大的参考值所对应的输出结果作为模型的输出。在本申请实施例中,先获得多个初始构建的子模型并利用与其对应的训练数据集对每个初始构建的子模型进行模型的训练,得到模型所包括的多个训练后的子模型。然后,使用每个训练后的子模型,对与其对应的训练数据集中输入数据进行输出结果的预测,根据训练数据集中已知的输出结果和预测出的输出结果可得知每个训练后的子模型的预测正确率。之后,再根据预测正确率对每个训练后的子模型赋予权重,得到每个训练后的子模型的输出权重。在得到模型的输出时,利用每个训练后的子模型的输出权重将多个子模型的输出整合为模型的输出,提高正确率高的训练后的子模型的输出对模型输出结果的影响,并降低正确率低的训练后的子模型的输出对模型输出结果的影响,从而提高了集成学习结果的正确率。上述内容对具体如何为每个子模型设定输出权重,在整合过程中提高模型输出的正确率进行了整体的说明。发明人在后续研究中发现还可以在子模型的训练过程中提高模型输出的正确率,而现有的技术方案中集成学习模型的每个子模型均是利用对应的训练数据集单独训练得到,并未考虑到对训练数据集中子模型预测错误的实例进行补充,子模型预测准确率的提高需要花费较大的时间和工作,无法在短时间内提高模型输出的正确率。为此,在本申请实施例一些可能的实现方式中,还可以在子模型训练时,针对训练数据集中训练后的子模型预测错误的实例训练专门的子模型对其进行预测,提高多个子模型构成的集成学习模型整体对训练数据集的预测正确率,从而提高了模型输出结果的正确率。具体的,请参见图3,该图为本申请实施例提供的另一种模型生成方法的流程示意图。在本申请实施例一些可能的实现方式中,上述步骤s201具体可以包括如下步骤s2011-s2014。s2011:获得初始构建的第一子模型和对应的第一训练集合,并使用第一训练数据集训练初始构建的第一子模型。s2012:将第一训练数据集中的输入数据输入训练后的第一子模型进行输出结果的预测,得到第一预测输出。s2013:根据第一预测输出和第一训练数据集中的输出结果,统计第一训练数据集中预测错误的实例作为第二训练数据集。s2014:获得初始构建的第二子模型,并使用第二训练数据集训练初始构建的第二子模型。其中,初始构建的第一子模型和初始构建的第二子模型是多个初始构建的子模型中的任意两个,多个初始构建的子模型使用相同的模型算法和参数。在本申请实施例中,使用训练数据集(即第一训练数据集)中前一个训练后的子模型(即第一子模型)预测错误的实例作为下一个子模型(即第二子模型)的训练数据集(即第二训练数据集)进行训练。由于第一子模型和第二子模型采用相同的算法和参数,训练后的第二子模型相当于是对训练后的第一子模型预测的弥补,更有针对性的对训练后的第一子模型的预测进行校准,校正训练后的第一子模型的预测错误,能够很快的提高模型输出的正确率。基于此,因为训练后的第一子模型对第一训练数据集中的部分实例具有较高的预测正确率,而训练后的第二子模型又弥补了训练后的第一子模型预测正确率低的部分实例,弥补了第一子模型预测的预测正确率,所以在整合得到第一子模型和第二子模型输出结果后,提高了子模型整体的预测正确率,也就提高了模型输出的正确率。下面以多个子模型的整体训练过程对上述步骤s2011-s2014进行详细的举例说明,为了与上文区分便于理解和说明,在下面具体的举例中将每个子模型均称为一个学习器,每个学习器所用的算法和参数均相同。在一个具体的例子中,多个学习器的生成方法可以包括:第一步,利用总训练数据集训练预先构建的第一学习器;第二步,将总训练数据集中的输入数据输入训练后的第一学习器进行输出结果的预测,根据第一学习器的输出和总训练数据集中的输出结果,得到第一学习器的预测输出;第三步,根据第一学习器的预测输出和总训练数据集中的输出结果,统计第一学习器预测错误的实例作为第一子集;第四步,利用第一子集训练预先构建的第二学习器;第五步,将第一子集中的输入数据输入训练后的第二学习器,进行输出结果的预测,根据第二学习器的输出和第一子集中的输出结果,得到第二学习器的预测输出;第六步,根据第二学习器的预测输出和第一子集中的输出结果,统计第二学习器预测错误的实例作为第二子集;第七步,利用第二子集训练预先构建的第三学习器;第八步,将第二子集中的输入数据输入训练后的第三学习器进行输出结果的预测,根据第三学习器的输出和第二子集中的输出结果,得到第三学习器的预测输出;第九步,根据第三学习器的预测输出和第二子集中的输出结果,统计第三学习器预测错误的实例作为第三子集;第十步,以此类推,直到将每个学习器训练完毕结束。从上述步骤中可看出,在实际应用中,由于模型的正确率不可能是100%,若对子模型(即学习器)的数量不进行限定,则会导致模型的训练一直进行下去,得到数量庞大的子模型,模型应用时计算量过大,不利用模型的存储和应用。为了避免过多的子模型和过大的计算量,可以对模型中子模型的数量进行限制,例如设定模型中子模型的数量,但是在一些可能的情况下,由于仅仅是对子模型的数量进行了硬性的限制,模型输出的正确率又无法保证。有鉴于此,在本申请实施例一些可能的实现方式中,还提供了一种可以在保证模型输出正确率的基础上,对子模型的数量进行限制的子模型训练方法。具体的,请参见图4所示,该图示出了本申请实施例提供的又一种模型生成方法的流程示意图。在本申请实施例一些可能的实现方式中,步骤s2013之后还可以包括如下步骤s2015。s2015:判断第二训练数据集中包括的实例数量与第一训练数据集包括实例数量之间的比值是否小于第一阈值;若否,则执行步骤s2014;若是,则执行步骤s202。在本申请实施例中,第一阈值可以根据模型的实际应用需要具体设定,例如当训练后的子模型预测错误的实例数量与整个训练数据集中实例数量小于5%(即第一阈值为5%)时,结束子模型的训练,整合每个已经训练好的子模型得到集成学习模型。通过上述步骤,可以在保证模型输出的正确率需求的基础上,避免子模型训练的无限循环,减少子模型的数量和计算量。可选的,由于设置了每个子模型的输出权重,使得预测正确率低的子模型对整合后模型输出的影响较低,因此,还可以通过将正确率较低的子模型从集成学习模型中删除,在保证模型输出正确率的基础上减少子模型的数量和应用时所需的计算量。具体的,可以在统计出训练后的子模型的预测正确率之后,判断统计的预测正确率是否小于第二阈值;若是,则将预测正确率小于第二阈值的训练后的子模型删除。与第一阈值类似,在本申请实施例中,第二阈值的设置也可根据实际应用的需要具体设定,不再一一列举。需要说明的是,本申请实施例对子模型删除步骤的执行顺序不进行限定,可以在每统计出一个子模型的预测正确率后直接判断统计出的预测正确率是否小于第二阈值来进行子模型的删除,也可以在统计出全部子模型的预测正确率后集中判断每个子模型的预测正确率是否小于第二阈值来进行子模型的删除,这里不再一一赘述。在本申请实施例中,还可以针对第一子模型预测错误的实例训练出专门处理这部分数据预测的专用的第二子模型,弥补第一子模型的预测误差,从而提高了整合第一子模型和第二子模型后得到的模型输出的正确率。此外,还可以在子模型训练过程中通过对子模型预测正确率设置阈值限定,在保证了模型输出正确率需求的基础上避免了子模型训练的无限执行,还可以将预测正确率小于一定阈值的子模型删除,从而减少了集成学习模型中子模型的数量和应用时所需的计算量。在上面的内容中,详细说明了本申请一些可能的实现方式如何在子模型的训练过程中提高模型输出的正确率。在采用上面图3和图4所对应的实施例进行子模型的训练时,每个子模型所使用的实例占总训练数据集的比例不同。也就是说,第一子模型的训练利用了第一训练数据集中的全部实例,而第二子模型的训练仅仅利用了第一训练数据集中的一部分实例,即第一训练数据集中第一子模型预测错误的实例。这又导致了每个子模型的适用范围不同,第一子模型的训练考虑到了第一训练数据集中全部的实例,更加通用;而第二子模型针对第一训练数据集预测错误部分的实例,更加专用。若不考虑到子模型的适用范围来设定子模型的输出权重,则可能会导致适用范围小的子模型的权重过高,从而对模型输出的正确率产生负面影响。举例而言,假设第一子模型对第一训练数据集中80%的实例预测正确,而第二子模型则可以对第一训练数据集中剩余20%实例(即第二训练数据集)中90%的实例预测正确,但第二子模型对第一子模型预测正确的80%实例的预测正确率仅有10%。则从整体来看,第一子模型对整体的预测正确率可以到达80%,而第二子模型对整体的预测正确率不到30%。若不考虑第一子模型和第二子模型的适用范围,直接根据第一子模型和第二子模型对与其对应的训练数据集的预测正确率确定其输出权重,则可能会由于第二子模型的输出权重过高与其实际的预测能力不符而导致模型输出错误。针对上述问题,在本申请实施例一些可能的实现方式中,还可以针对子模型的适用范围(例如对应训练数据集的数据范围)对每个子模型的输出权重进行修正,以进一步提高模型输出的正确率。在一个例子中,可以根据目标子模型对应的目标训练数据集中实例数量与总训练数据集中实例数量的比值,对目标子模型的输出权重进行修正。这里需要说明的是,目标子模型与上文相同,指的是集成学习模型中的任意一个子模型,目标训练数据集是与目标子模型对应的训练数据集,总训练数据集至少包括第一子模型对应的第一训练数据集。具体的,步骤s202可以包括:计算目标训练数据集中实例数量与总训练数据集中实例数量的比值,得到修正参数;根据目标子模型的预测正确率和修正参数,得到目标子模型的输出权重。例如,将目标子模型的预测正确率乘以修正参数得到其输出权重,本申请实施例对具体的修正方法不进行限定。这里需要说明的是,在具体实施时,可以在每得到一个子模型的预测正确率之后,根据得到的修正参数进行修正;也可以在得到多个子模型(或全部子模型)的预测正确率之后,统一进行修正,得到输出权重,本申请实施例不进行限定。在本申请实施例中,还可以针对每个子模型的适用范围对其输出权重进行调整,避免了所用训练数据集的范围限制对输出权重和模型输出正确率的影响,提高了整合后模型输出的正确率。基于上述实施例提供的模型生成方法,本申请实施例还提供了一种数据处理方法,可以应用于任意一种进行数据处理的设备中,包括终端设备(如电脑、手机等智能设备)和服务器,本申请实施例对此不进行限定。参见图5,该图为本申请实施例提供的一种数据处理方法的流程示意图。本申请实施例提供的数据处理方法,包括如下步骤s501-s503。s501:获取待处理数据。在本申请实施例中,待处理数据可以直接存储在进行数据处理的设备中,也可以进行数据处理的设备通过数据传输方法接收得到,本申请实施例对待处理数据的内容和格式也不做任何限定,这里不再一一列举。s502:将待处理数据输入多个训练后的子模型,得到每个子模型的输出。s503:根据每个训练后的子模型的输出和输出权重,得到待处理数据的处理结果。在本申请实施例中,多个训练后的子模型和其输出权重是根据上述实施例提供的模型生成方法中的任意一种得到的,具体实施方式参见上面相关说明即可,这里不再赘述。在本申请实施例中,得到每个训练后的子模型的输出后,由于对不同预测正确率的子模型设置了不同的输出权重,并在整合多个子模型的输出时充分考虑到子模型的预测正确率,降低了低预测正确率的子模型的输出对整合后的模型输出的影响,并提高了高预测正确率的子模型的输出对整合后的模型输出的影响,从而提高了模型输出的数据处理的正确率。下面举例说明具体如何根据多个子模型的输出和输出权重整合出模型的输出。在本申请实施例一些可能的实现方式中,步骤s503具体可以包括:按照式(1),得到待处理数据的处理结果;其中,为待处理数据的处理结果,为第i个训练后的子模型mi对模型的第q个结果的预测输出,若第i个训练后的子模型mi对模型的第q个结果的预测输出为是,则为1;若第i个训练后的子模型mi对模型的第q个结果的预测输出为否,则为0;wi为第i个训练后的子模型的输出权重;n为模型包括的训练后的子模型的数量;k为模型输出结果的数量。即,统计每个训练后的子模型对模型各个输出结果的预测,并将预测输出与子模型对应的输出权重的乘积作为修正后的预测,再对各个输出结果所对应的修正后的预测求和,得到整合后对各个输出结果的预测值,最大的预测值所对应的输出结果就是模型的输出,即待处理数据的处理结果。基于上述实施例提供的模型生成方法,本申请实施例还提供了一种模型生成装置。参见图6,该图为本申请实施例提供的一种模型生成装置的结构示意图。本申请实施例提供的模型生成装置,可以配置于任意终端设备或服务器上,包括:模型训练单元100、输出预测单元200和权重确定单元300;模型训练单元100,用于获得多个初始构建的子模型,对于每个初始构建的子模型均利用与其对应的训练数据集进行模型的训练。其中,训练数据集包括多个实例,每个实例包括输入数据和输出结果;生成的模型包括每个训练后的子模型。输出预测单元200,用于使用每个训练后的子模型,对与其对应的训练数据集中输入数据进行输出结果的预测。权重确定单元300,用于根据目标子模型的预测正确率确定目标子模型的输出权重。其中,目标子模型是每个训练后的子模型中的任意一个;预测正确率根据目标子模型的预测输出和与其对应的训练数据集中的输出结果得到;输出权重用于整合每个训练后的子模型的输出结果作为模型的输出。在一些可能的实现方式中,如图7所示,本申请实施例提供的模型生成装置还可以包括:集合构建单元400;模型训练单元100,具体用于获得初始构建的第一子模型和对应的第一训练数据集,并使用第一训练数据集训练初始构建的第一子模型;还用于获得初始构建的第二子模型,并使用第二训练数据集训练初始构建的第二子模型。输出预测单元200,具体用于将与第一训练数据集中的输入数据输入训练后的第一子模型进行输出结果的预测,得到第一预测输出。集合构建单元400,用于根据第一预测输出和第一训练数据集中的输出结果,统计第一训练数据集中预测错误的实例作为第二训练数据集。其中,初始构建的第一子模型和初始构建的第二子模型是多个初始构建的子模型中的任意两个,多个初始构建的子模型使用相同的模型算法和参数。参见图8,可选的,本申请实施例提供的模型生成装置还可以包括:第一判断单元500;第一判断单元500,用于判断第二训练数据集包括的实例数量与第一训练数据集包括的实例数量之间的比值是否小于第一阈值。模型训练单元100,具体用于在第一判断单元500的判断结果为否时,获得初始构建的第二子模型,并使用第二训练数据集训练初始构建的第二子模型。权重确定单元300,具体用于在第一判断单元500的判断结果为是时,根据目标子模型的预测正确率确定目标子模型的输出权重。可选的,权重确定单元300,具体包括:计算子单元和确定子单元(均未在图中示出);计算子单元,用于计算目标训练数据集中实例数量与总训练数据集中实例数量的比值,得到修正参数。其中,目标训练数据集是与目标子模型对应的训练数据集;总训练数据集至少包括目标训练数据集。确定子单元,用于根据目标子模型的预测正确率和修正参数,得到目标子模型的输出权重。继续参见图8,可选的,本申请实施例提供的模型生成装置还可以包括:第二判断单元600和模型删除单元700;第二判断单元600,用于判断目标子模型的预测正确率是否小于第二阈值;模型删除单元700,用于当第二判断单元600的判断结果为是时,删除目标子模型。在本申请实施例中,先获得多个子模型并利用与其对应的训练数据集对每个子模型进行模型的训练,得到模型所包括的多个子模型。然后,使用每个训练后的子模型,对与其对应的训练数据集中输入数据的输出结果进行预测,根据训练数据集中已知的输出结果和预测出的输出结果统计每个训练后的子模型的预测正确率。再使用预测正确率对每个训练后的子模型赋予权重,得到每个训练后的子模型的输出权重。在得到模型的输出时,利用每个训练后的子模型的输出权重将多个子模型的输出整合为模型的输出,提高正确率高的子模型的输出对模型输出结果的影响,并降低正确率低的子模型的除数对模型输出结果的影响,从而提高了集成学习结果的正确率。基于上述实施例提供的模型生成方法和装置以及数据处理方法,本申请实施例还提供了一种数据处理装置。参见图9,该图为本申请实施例提供的数据处理装置的结构示意图。本申请实施例提供的数据处理装置,可以配置于任意终端设备或服务器上,包括:获取模块10、输入模块20和结合模块30;获取模块10,用于获取待处理数据;输入模块20,用于将待处理数据输入多个训练后的子模型,得到每个训练后的子模型的输出;结合模块30,用于根据每个训练后的子模型的输出和输出权重,得到待处理数据的处理结果。在本申请实施例一些可能的实现方式中,结合模块30,具体用于:按照公式得到待处理数据的处理结果其中,为第i个训练后的子模型mi对模型的第q个结果的预测输出,若第i个训练后的子模型mi对第q个结果的预测输出为是,则为1;若第i个训练后的子模型mi对第q个结果的预测输出为否,则为0;wi为第i个训练后的子模型mi的输出权重;n为模型包括的训练后的子模型的数量;k为模型输出结果的数量在本申请实施例中,利用每个训练后的子模型的输出权重将多个子模型的输出整合为模型的输出,提高正确率高的子模型的输出对模型输出结果的影响,并降低正确率低的子模型的除数对模型输出结果的影响,从而提高了集成学习结果的正确率。基于上述实施例提供的模型生成方法及装置、数据处理方法及装置,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当该计算机程序被处理器执行时,实现如上述实施例提供的模型生成方法中的任意一种,或者,实现如上述实施例提供的数据处理方法中的任意一种。基于上述实施例提供的模型生成方法及装置、数据处理方法及装置,本申请实施例还提供了一种数据处理设备,该数据处理设备包括处理器以及存储器:存储器,用于存储程序代码,并将程序代码传输给处理器;处理器,用于根据程序代码中的指令,执行如上述实施例提供的模型生成方法中的任意一种,或者,执行如上述实施例提供的数据处理方法中的任意一种。需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置或相关设备而言,由于其与实施例公开的方法相对应,所以描述比较简单,相关之处参见方法部分说明即可。还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或
技术领域
内所公知的任意其它形式的存储介质中。以上所述,仅是本申请的较佳实施例而已,并非对本申请作任何形式上的限制。虽然本申请已以较佳实施例揭露如上,然而并非用以限定本申请。任何熟悉本领域的技术人员,在不脱离本申请技术方案范围情况下,都可利用上述揭示的方法和技术内容对本申请技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本申请技术方案的内容,依据本申请的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本申请技术方案保护的范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1