用于更新分类模型的方法及装置与流程

文档序号:11831713阅读:269来源:国知局
用于更新分类模型的方法及装置与流程

本申请涉及基于决策树的分类模型,具体涉及一种用于更新分类模型的方法。本申请同时涉及一种用于更新分类模型的装置。



背景技术:

随着互联网技术的发展,出现了大量的网络应用,例如:网络社交、网络阅读等,网络应用提供方为了向用户推荐具有针对性的信息、或者进行必要的监控管理,通常需要根据用户在网络应用中的操作行为,针对预先设定的目标进行分类预测,例如:欺诈或风险识别,用户分群,购买力识别等。为了提高预测效率和准确性,在大多数网络应用中通常采用分类模型(也称作分类器)进行分类预测。

其中,随机森林分类器是应用比较普遍的分类模型之一,该分类器由多棵决策树组成,当待分类样本进入随机森林时,由每一颗决策树进行分类,最后选取被所有决策树选择次数最多的类别作为最终的分类结果。在应用中,通常采用离线的机器学习过程构造该分类模型:通过对全量的用户行为数据的学习、分析与训练,得出关于分类的知识,从而完成对分类模型的构建并部署上线。随着时间的推移,在线上部署的分类模型通常会逐渐退化,其分类的准确率可能无法满足要求,针对这种情况,现有技术通常也是采用离线计算的方式,利用全量历史数据重新训练分类模型,并将训练好的分类模型再次部署上线进行分类预测。

上述更新分类模型的方式,由于每次都采用全量数据进行分类模型的训练,随着数据量的增大、处理时间会相应延长,导致模型训练效率降低;而且在实际应用中,上述更新分类模型的过程通常都是在分类模型退化后才启动,也就是说分类模型不能实时或者及时地根据数据的变化做出相应的调整,导致业务响应慢,存在滞后性。



技术实现要素:

本申请实施例提供一种用于更新分类模型的方法,以解决现有分类模型的更新方式训练效率低、以及更新不及时的问题。本申请实施例还提供一种用于更新分类模型的装置。

本申请提供一种用于更新分类模型的方法,所述分类模型包括预定数量的原始决策树,用于根据网络应用中的用户行为数据进行类别预测,包括:

从提供所述用户行为数据的服务器中获取预定时间段内的增量数据,并从中提取训练样本集;

根据所述训练样本集,生成新增数量的决策树;

根据历史分类准确率和针对所述训练样本集的本次分类准确率,从新增决策树和原始决策树中选择所述预定数量的决策树,组成更新后的分类模型。

可选的,所述从提供所述用户行为数据的服务器中获取预定时间段内的增量数据,并从中提取训练样本集,包括:

从提供所述用户行为数据的服务器中获取预定时间段内的增量数据,其中每条增量数据都包含一组原始变量及相应值、以及类别标签;

对所述增量数据进行预处理,使其符合分类模型对训练样本数据的要求;

对每条增量数据执行如下操作,生成所述训练样本集:从增量数据中提取对应于所述分类模型的特征变量的值,并用提取的值与所述类别标签组成训练样本。

可选的,所述对所述增量数据进行预处理,包括以下所列中的一种或任意结合:

按照预先设定的方式,对增量数据中极大值和/或极小值进行处理;

按照预先设定的方式,对增量数据中的缺失值进行处理;

根据所述分类模型对样本数据的格式要求,进行相应的格式转换。

可选的,所述从提供所述用户行为数据的服务器中获取预定时间段内的增量数据,并从中提取训练样本集,还包括:

从预处理后的增量数据中抽取特征变量,添加到特征变量集合中;

所述对应于分类模型的特征变量是指,从所述特征变量集合中选取的、对应于分类模型的特征变量。

可选的,所述根据所述训练样本集,生成新增数量的决策树包括:

根据所述训练样本集,采用随机森林算法生成新增数量的决策树。

可选的,所述根据所述训练样本集,采用随机森林算法生成新增数量的决策树,包括:

根据所述训练样本集采用有放回抽样的方式构建bootstrap样本集合;

使用所述bootstrap样本集合,采用在每个节点按照预定策略选取特征变量、并根据所选特征变量进行分裂的方式生成一棵新决策树;所述按照预定策略选取特征变量是指,从随机选择的特征变量中按照预定策略选取最优特征变量;

转到所述根据所述训练样本集采用有放回抽样的方式构建bootstrap样本集合的步骤继续执行,直至生成所述新增数量的决策树。

可选的,所述按照预定策略选取最优特征变量包括:根据信息增益选取、根据信息增益率选取、或者根据基尼指标选取所述最优特征变量。

可选的,所述根据历史分类准确率和针对所述训练样本集的本次分类准确率,从新增决策树和原始决策树中选择所述预定数量的决策树,包括:

根据历史分类准确率和针对所述训练样本集的本次分类准确率,计算新增决策树和原始决策树的综合分类准确率;

按照所述综合分类准确率对新增决策树和原始决策树进行排序;

从排序后的决策树中选择序位处于高位的、所述预定数量的决策树。

可选的,所述根据历史分类准确率和针对所述训练样本集的本次分类准确率,计算新增决策树和原始决策树的综合分类准确率,包括:

根据所述训练样本集,计算新增决策树的本次分类准确率,作为其综合分类准确率;

根据所述训练样本集,计算原始决策树的本次分类准确率;

根据所述历史分类准确率和本次分类准确率,计算原始决策树的综合分类准确率。

可选的,所述根据历史分类准确率和本次分类准确率,计算原始决策树的综合分类准确率采用如下方式实现:

采用移动平均法,计算原始决策树的综合分类准确率。

可选的,所述移动平均法包括:加权移动平均法、或者指数移动平均法。

可选的,在执行所述生成新增数量的决策树的步骤之前,执行下述操作:

判断是否已创建所述分类模型;

若否,将所述预定数量作为所述新增数量。

可选的,在所述从新增决策树和原始决策树中选择所述预定数量的决策树,组成更新后的分类模型的步骤后,执行下述操作:

删除未被选取的决策树。

相应的,本申请还提供一种用于更新分类模型的装置,包括:

训练样本集提取单元,用于从提供所述用户行为数据的服务器中获取预定时间段内的增量数据,并从中提取训练样本集;

决策树生成单元,用于根据所述训练样本集,生成新增数量的决策树;

决策树选择单元,用于根据历史分类准确率和针对所述训练样本集的本次分类准确率,从新增决策树和原始决策树中选择所述预定数量的决策树,组成更新后的分类模型。

可选的,所述训练样本集提取单元包括:

增量数据获取子单元,用于从提供所述用户行为数据的服务器中获取预定时间段内的增量数据,其中每条增量数据都包含一组原始变量及相应值、以及类别标签;

数据预处理子单元,用于对所述增量数据进行预处理,使其符合分类模型对训练样本数据的要求;

特征值提取子单元,用于对每条增量数据执行如下操作,生成所述训练样本集:从增量数据中提取对应于所述分类模型的特征变量的值,并用提取的值与所述类别标签组成训练样本。

可选的,所述数据预处理子单元至少包括以下子单元之一:

极值处理子单元,用于按照预先设定的方式,对增量数据中极大值和/或极小值进行处理;

缺失值处理子单元,用于按照预先设定的方式,对增量数据中的缺失值进行处理;

格式转换子单元,用于根据所述分类模型对样本数据的格式要求,进行相应的格式转换。

可选的,所述训练样本集提取单元还包括:

特征变量抽取子单元,用于从预处理后的增量数据中抽取特征变量,添加到特征变量集合中;

所述特征值提取子单元具体用于,对每条增量数据执行如下操作,生成所述训练样本集:从增量数据中提取从所述特征变量集合中选取的、对应于所述分类模型的特征变量的值,并用提取的值与所述类别标签组成训练样本。

可选的,所述决策树生成单元具体用于,根据所述训练样本集,采用随机森林算法生成新增数量的决策树。

可选的,所述决策树生成单元包括:

循环控制子单元,用于当生成决策树的数量小于所述新增数量时,调用下述各子单元创建决策树;

bootstrap样本集合构建子单元,用于根据所述训练样本集采用有放回抽样的方式构建bootstrap样本集合;

决策树生成执行子单元,用于使用所述bootstrap样本集合,采用在每个节点按照预定策略选取特征变量、并根据所选特征变量进行分裂的方式生成一棵新决策树;所述按照预定策略选取特征变量是指,从随机选择的特征变量中按照预定策略选取最优特征变量。

可选的,所述决策树生成执行子单元所采用的预定策略包括:根据信息增益选取属性、根据信息增益率选取属性、或者根据基尼指标选取属性。

可选的,所述决策树选择单元包括:

综合指标计算子单元,用于根据历史分类准确率和针对所述训练样本集的本次分类准确率,计算新增决策树和原始决策树的综合分类准确率;

排序子单元,用于按照所述综合分类准确率对新增决策树和原始决策树进行排序;

筛选子单元,用于从排序后的决策树中选择序位处于高位的、所述预定数量的决策树。

可选的,所述综合指标计算子单元包括:

新增决策树综合指标计算子单元,用于根据所述训练样本集,计算新增决策树的本次分类准确率,作为其综合分类准确率;

原始决策树本次指标计算子单元,用于根据所述训练样本集,计算原始决 策树的本次分类准确率;

原始决策树综合指标计算子单元,用于根据所述历史分类准确率和本次分类准确率,计算原始决策树的综合分类准确率。

可选的,所述原始决策树综合指标计算子单元具体用于,采用移动平均法,计算原始决策树的综合分类准确率。

可选的,所述原始决策树综合指标计算子单元采用的移动平均法包括:加权移动平均法、或者指数移动平均法。

可选的,所述装置还包括:

分类模型创建判断单元,用于在触发所述决策树生成单元工作之前,判断是否已创建所述分类模型,若否,将所述预定数量作为所述新增数量。

可选的,所述装置还包括:

决策树删除单元,用于在所述决策树选择单元组成更新后的分类模型后,删除未被选取的决策树。

与现有技术相比,本申请具有以下优点:

本申请提供的用于更新分类模型的方法,从最近一段时间内的增量数据中提取训练样本集,根据所述训练样本集生成新增数量的决策树,并根据历史分类准确率和本次分类准确率,从新增决策树和原始决策树中选择预定数量的决策树,汇总得到更新后的分类模型。采用上述方法,由于不需要根据全量数据进行训练,而是利用增量数据在原有分类模型的基础上进行增量更新,因此可以根据需要对分类模型进行各种时间粒度的动态更新,例如:按日更新或者近似实时更新,从而可以提高模型训练的效率、实现对业务的快速响应;进一步地,由于在评价决策树的分类效果时并没有仅仅依据本次的分类准确率,而是引入了历史分类准确率,因此可以从全局的角度对决策树的综合分类效果进行评估,从而可以平滑数据的短期波动,保证更新后的分类模型能够保持比较稳定的分类预测效果。

附图说明

图1是本申请的一种用于更新分类模型的方法实施例的流程图;

图2是本申请实施例提供的提取训练样本集的处理过程的流程图;

图3是本申请实施例提供的生成新增数量决策树的处理过程的流程图;

图4是本申请实施例提供的根据历史分类准确率和本次分类准确率选择预定数量决策树的处理过程的流程图;

图5是本申请实施例提供的计算新增决策树和原始决策树的综合分类准确率的处理过程的流程图;

图6是本申请实施例提供的n=15的加权移动平均的权重分布示意图;

图7是本申请实施例提供的n=20的指数移动平均的权重分布示意图;

图8是本申请的一种用于更新分类模型的装置实施例的示意图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是,本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此,本申请不受下面公开的具体实施的限制。

在本申请中,分别提供了一种用于更新分类模型的方法,以及一种用于更新分类模型的装置,在下面的实施例中逐一进行详细说明。

请参考图1,其为本申请的一种用于更新分类模型的方法实施例的流程图。所述方法包括如下步骤:

步骤101:从提供所述用户行为数据的服务器中获取预定时间段内的增量数据,并从中提取训练样本集。

本申请提供的用于更新分类模型的方法,基于增量数据进行分类模型的更新,使得分类模型能够及时地或者近似实时地根据样本数据的变化做出相应的调整,从而实现分类模型与最新样本数据的同步。

在实际的业务应用中,在获取用户行为数据后,可以先利用已在线上部署的分类模型,即由预定数量的原始决策树组成的分类模型,通过打分的方式进行类别预测,将得分最高的类别(选择该类别的决策树数量最多)作为预测类别,并基于该预测类别开展预先设定的业务应用,例如:按类别进行推荐、按类别进行风险控制等。通常经过一段时间后,根据用户后续的操作行为或者系 统的综合分析,可以获知所述用户行为数据的实际类别,并为该用户行为数据添加相应的类别标签。经过上述业务流程后,通常就可以生成一批具备类别标签的用户行为数据,在这种情况下,就可以实施本技术方案进行分类模型的动态更新。

本步骤首先从提供所述用户行为数据的服务器中获取预定时间段内的增量数据。所述预定时间段是指位于当前时间之前的一个时间段,其长度可以根据具体的需求进行设置,例如可以以天为单位、以小时为单位,甚至以分钟为单位都是可以的,只要所述时间段内的用户行为数据已经处于可获取的状态并且已经包含了实际的类别标签信息。

获取所述增量数据后,可以通过对所述增量数据的预处理、抽取特征变量、提取特征变量值等处理过程,最终得到所述训练样本集。整个过程包括如下所述的步骤101-1至步骤101-4,下面结合附图2作进一步说明。

步骤101-1:从提供所述用户行为数据的服务器中获取预定时间段内的增量数据,其中每条增量数据都包含一组原始变量及相应值、以及类别标签。

本步骤获取的增量数据通常包含多条用户行为数据,其中每条用户行为数据都包含一组原始变量及相应值、以及标识真实类别的类别标签,每条增量数据类似如下所示的形式:(原始变量1,x1;原始变量2,x2;......原始变量n,xn:y),其中xi表示对应于原始变量i的相应值,所述原始变量也称为属性,对应的取值也称为属性值,y是本条用户行为数据的类别标签。

例如,在本实施例的一个具体例子中,在互联网交易平台的风险控制业务领域,采用分类模型对用户交易行为是否存在风险进行分类预测,在本步骤中获取的增量数据中的原始变量可以包括:用户账户、年龄等个人属性信息、交易商品的类别、名称、价位等商品属性信息、以及交易金额等信息。类别标签则包括黑/白样本两种类别(分别对应有风险和无风险)。

步骤101-2:对所述增量数据进行预处理,使其符合分类模型对训练样本数据的要求。

本步骤对已获取的增量数据进行预处理,以便于在后续的步骤中使用基于所述增量数据的训练样本集生成决策树。所述预处理可以包括极大/极小值处理、缺失值处理以及格式转换,下面分别进行说明。

所述极大值或极小值通常是指,超出常规的合理取值范围的上限或者下限 的数值,例如室内温度为100摄氏度,该数值就是超出合理取值范围的极大值,这类数值可能是系统产生的、也可能是由于人为误操作产生的。在具体实施中,可以采用预先设定的方式处理此类数据,例如:如果仅是个别用户行为数据中包含此类数据,可以直接从增量数据中删除相应用户行为数据;如果此类数据在增量数据中出现较为频繁,则可以采用计算平均值、并用平均值取代原有极大值和/或极小值的处理方式。

所述缺失值通常是指,某个原始变量没有对应的数值,这种情况可能是因为系统没有采集到所述数据,例如用户未填写网页表单中的某项信息,并且相应的数据采集程序也没有为其写入缺省值。这种情况下,与上述对极大值/极小值的处理方式类似,可以删除原始变量值不完善的用户行为数据,也可以用其他用户行为数据包含的该原始变量值的均值,替换所述缺失的数值。

所述格式转换,通常是因为计量单位的多样性或者数据表示方式的多样性,需要将采集到的增量数据中的某些原始变量值转换成满足分类模型要求的数值。例如:分类模型要求提供以摄氏温度为计量单位的某原始变量值,而增量数据中的相应原始变量值是以华氏温度为单位的,这种情况下,就需要对增量数据中的相应数据进行格式转换。

采用上述方式对增量数据进行预处理,是为了保证增量数据的完整性、有效性、以及数值的正确性等,从而从所述增量数据提取的训练样本集能够符合更新分类模型对训练样本数据的要求,从而保证更新后的分类模型能够取得良好的预测效果。

步骤101-3:从预处理后的增量数据中抽取特征变量,添加到特征变量集合中。

通常每条用户行为数据中都包含大量的原始变量,一方面由于并非每一个原始变量对于类别预测来说都是有意义的,另一方面用户行为数据包含的原始变量也可能是变化的,例如逐渐增加完善的,为了便于管理,本步骤可以从增量数据中抽取有助于表征用户行为特征的原始变量,即特征变量(也称为特征属性),并将所选的特征变量添加到特征变量集合(也称特征变量池)中。

步骤101-4:从每条增量数据中提取从所述特征变量集合中选取的、对应于所述分类模型的特征变量的值,并用提取的值与所述类别标签组成训练样本,从而得到训练样本集。

由于不同的分类模型其分类功能不同,采用的特征变量也可能不同,因此本步骤从特征变量集合中选取对应于所述待更新分类模型的特征变量。然后根据所述特征变量,从每条增量数据中提取对应的特征变量值,并将这些特征变量值与本条增量数据的类别标签一并组成训练样本,类似如下所示的形式:(x1,x2,......xn:y),其中xi表示该样本的特征变量值,y则表示该样本的类别标签。采用上述方式依次处理每条增量数据,从而得到训练样本集。

至此,通过步骤101-1至步骤101-4,从增量用户行为数据中提取了训练样本集。需要说明的是,在分类模型上线应用的初期,例如:最初的三个月或者半年,通常处于特征变量逐渐完善的阶段,随着对业务认知的深入,通过执行步骤101-3将有助于类别预测的原始变量逐步添加到特征变量集合中。随着用户行为数据包含的原始变量的日趋稳定,以及分类模型日渐完善,特征变量集合中的特征变量也会处于相对稳定的阶段,在这种情况下,也可以不执行步骤101-3,而是直接从已经稳定的特征变量集合中选取对应于分类模型的特征变量,并进一步生成训练样本集。

步骤102:根据所述训练样本集,生成新增数量的决策树。

本步骤生成新增数量的决策树,所述新增数量通常小于分类模型所包含的原始决策树的预定数量,其具体取值,可以考虑分类模型具体的应用场景、训练样本集的规模、或者所述分类模型包含的原始决策树的数量等因素,设置一个经验值。例如:在进行风险控制的互联网应用中,所述新增数量的取值范围可以设置在所述预定数量的1/40至1/10的范围内,如果分类模型包含200—400棵决策树,可以设定新增决策树的数量为10棵。上述仅仅是一个示例,在具体实施中可以综合参考各种因素进行设置。

此外,也可以使用所述训练样本集对所述分类模型进行验证,并根据验证结果确定新增决策树的数量。具体说,可以用所述分类模型对训练样本集中的每个样本进行分类,并用正确分类的次数与样本总数的比值作为分类准确率,并根据分类准确率调整新增决策树的数量,例如,分类准确率超过预先设定的阈值时,说明现有分类模型能够比较准确地对当前训练样本数据进行分类,因此可以设置相对较小的新增数量;否则可以设置相对较大的新增数量。

确定了所述新增数量后,就可以生成所述新增数量的决策树。作为一种可选的实施方式,可以从所述训练样本集中随机选取一定数量的样本,然后针对 所选样本采用常规的决策树生成算法生成一棵决策树,重复上述选取样本和生成决策树的步骤,直至生成所述新增数量的决策树。

为了提高生成新增数量决策树的效率、避免出现过拟合现象、以及提高抗噪声能力,本实施例提供一种采用随机森林算法生成新增数量决策树的优选实施方式,具体包括步骤102-1至步骤102-3,下面结合附图3作进一步说明。

步骤102-1:根据所述训练样本集采用有放回抽样的方式构建bootstrap样本集合;

bootstrap抽样方法(也称自举或自助抽样法),是一种有放回的均匀抽样方法,本步骤从包含N个样本的训练样本集中采用有放回抽样的方式抽取N个样本,在抽取过程中,所述训练样本集合中的部分样本有可能没有被抽到,而部分样本可能被抽取多次,将最终抽取的N个样本组成一个bootstrap样本集合。

步骤102-2:使用所述bootstrap样本集合,采用在每个节点按照预定策略选取特征变量、并根据所选特征变量进行分裂的方式生成一棵新决策树。

使用所述bootstrap样本集合,采用逐节点分裂的方式生成一棵新的决策树,其关键在于每个节点的分裂属性(即特征变量)的选择。具体说,对于包含M个特征变量的样本,在决策树的每个节点需要分裂时,首先随机从M个特征变量中选取出m个(通常满足条件m<<M),然后从所选的m个特征变量中按照预定策略选取1个最优的特征变量,并按照该特征变量进行分裂。在每个节点都重复上述过程,直到某一个节点无法继续分裂或者其包含的所有样本都属于同一个分类,此时分裂过程结束,一棵新决策树创建完毕。

在具体实施中,随机选择特征变量的个数可以采用计算平方根并取整的方式得到,例如:每个样本包含M=100个特征变量,那么每次可以随机选择m=sqrt(M)=10个特征变量,当然也可以采用其他方式确定随机选择特征变量的个数,只要满足m<<M的条件即可。

至于从随机选取的特征变量中选取最优的特征变量,可以采用预先设定的策略,例如,根据信息增益、信息增益率、或者基尼指标选取。采用上述三种方式选取最优特征变量并进行分裂生成决策树的过程,属于比较成熟的现有技术,此处不再对详细过程作进一步描述。

通过上面的描述可以看出,随机森林算法的随机性体现在每棵树的训练样本是随机的,树中每个节点的分类属性也是随机选择的,基于上述这两个随机 特性的保证,采用随机森林算法生成的决策树通常具有较好的抗噪声能力,并且不会产生过拟合现象。

本步骤还可以记录每棵新生成的决策树的相关信息,包括:决策树标识,例如决策树id,和生成时间等。

步骤102-3:判断新生成的决策树的数量是否小于所述新增数量,若是,转到步骤102-1执行。

每新生成一棵决策树,就可以累加新生成的决策树的数量,并判断该数量是否小于所述新增数量,若是,转到步骤102-1执行,继续生成新的决策树;若否,说明新生成的决策树的数量已经满足要求,不用继续生成。

步骤103:根据历史分类准确率和针对所述训练样本集的本次分类准确率,从新增决策树和原始决策树中选择所述预定数量的决策树,组成更新后的分类模型。

在步骤102中生成了新增数量的决策树,本步骤根据分类效果从新增决策树和分类模型已有的原始决策树中选择所述预定数量的决策树。如果仅仅根据本次分类准确率(基于本次训练样本集得到的分类准确率)来进行分类效果的评估,通常可以取得局部优化的效果,但是对于随机出现的较大幅度数据波动的情况,由于这种数据波动通常都是一过性的,不代表长期的、全局的趋势,如果仅针对当前的训练样本集进行分类效果评估、并筛选性能最佳的决策树,从而得到的更新后分类模型通常是不准确的,对于未来用户行为数据的分类预测可能并不准确。

为了避免出现上述情况,本技术方案引入了历史分类准确率,即在历次更新分类模型过程中记录的分类准确率,通过将历史分类准确率与本次分类准确率的有机结合,从而能够从全局的角度、比较客观地反映出决策树的分类效果。

在具体实施中,可以根据历史分类准确率和本次分类准确率,采用不同的策略或者算法,完成本步骤的选择任务。本实施例给出一种计算综合分类准确率,并依据该指标进行筛选的实施方式,具体说,包括步骤103-1至步骤103-3,下面结合附图4作进一步说明。

步骤103-1:根据历史分类准确率和针对所述训练样本集的本次分类准确率,计算新增决策树和原始决策树的综合分类准确率;

根据历史分类准确率与本次分类准确率计算综合分类准确率,可以采用不 同的计算方法,例如,可以利用自定义函数或者公式进行求解,综合考虑实施效果以及算法的成熟程度,本实施例采用移动平均法计算综合分类准确率。

采用移动平均法计算新增决策树和原始决策树的综合分类准确率,包括步骤103-1-1至步骤103-1-3,下面结合附图5进一步说明。

步骤103-1-1:根据所述训练样本集,计算新增决策树的本次分类准确率,作为其综合分类准确率。

本步骤针对已获取的训练样本集计算每一颗新增决策树的本次分类准确率。具体说,可以通过以下三种方式中的任意一种计算新增决策树的本次分类准确率:

1)用所述新增决策树对训练样本集中的每个样本进行分类,并用正确分类的次数与样本总数的比值作为本次分类准确率;

2)如果新增决策树是采用随机森林算法生成的,由于在生成过程中使用的是bootstrap样本集合,因此可以使用包含在所述训练样本集中、但是未包含在所述bootstrap样本集合中的袋外样本,采用与1)中类似的方法计算本次分类准确率;

3)如果新增决策树是采用随机森林算法生成的,也可以直接使用bootstrap样本集合中的样本,采用与1)类似的方式计算本次分类准确率。

对于新增决策树来说,通常没有关于该决策树的历史分类准确率信息,因此可以将本次分类准确率作为其综合分类准确率。但是如果分类模型曾经创建过与所述新增决策树相同的决策树,并且还保留有该决策树的历史分类准确率,那么也可以采用类似步骤103-1-3的方式计算新增决策树的综合分类准确率。

步骤103-1-2:根据所述训练样本集,计算原始决策树的本次分类准确率。

与上述步骤103-1-1中描述的方式1)类似,本步骤可以用原始决策树对训练样本集中的每个样本进行分类,并用正确分类的次数与样本总数的比值作为原始决策树的本次分类准确率。对分类模型包含的每棵原始决策树都采用上述方式进行处理,从而获取每棵原始决策树的本次分类准确率。

步骤103-1-3:根据历史分类准确率和本次分类准确率,计算原始决策树的综合分类准确率。

本实施例采用移动平均法计算所述原始决策树的综合分类准确率。移动平均法(moving average method)通常是指,根据时间序列,按照特定的权重系数 依次计算一系列数据项的平均数(加权平均数),从而能够消除数据中的随机波动,比较客观地反映数据的变化趋势。

采用移动平均法计算决策树的综合分类准确率的基本公式如下述公式所示,其中pi为所述时间序列中的某一数据项,即分类准确率,包括本次分类准确率以及历次更新分类模型所记录的历史分类准确率;Wi为对应该分类准确率的权重系数,各个权重系数的和通常为1;n为参与计算的时间序列内的数据项个数。

<mrow> <mi>P</mi> <mo>=</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>n</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msub> <mi>p</mi> <mi>i</mi> </msub> <mo>*</mo> <mi>Wi</mi> </mrow>

最为简易的移动平均法是简单移动平均法(Simple Moving Average—SMA),即:计算本次分类准确率和历史分类准确率的未加权算术平均值,并将该平均值作为综合分类准确率。采用这种方法,相当于本次分类准确率和各个历史分类准确率的权重系数都是相同的,都为1/n,可以较好地平滑数据的短期波动,反映数据变化的长期趋势。

考虑到在实际应用中,不同时期的分类准确率数据对于评估决策树的分类效果的作用可能是有差别的,通常远期的分类准确率的影响力相对较低,而越近期的分类准确率往往越能够准确地评估决策树的分类效果。基于上述考虑,为了能够在平滑数据短期波动的同时,进一步凸现近期数据的影响力,本实施例还提供了采用加权移动平均法或者指数移动平均法的优选实施方式。

所谓加权移动平均法(Weighted Moving Average—WMA),在计算加权平均数时采用如下方式为各数据项设置不同的权重系数:对于包含n个数据项来说,可以将权重系数的分母设定为A=n+(n-1)+(n-2)+...+2+1,将最近期数据项(p1,例如本次分类准确率)的权重系数设置为n/A、次近期数据项(p2)的权重系数设置为(n-1)/A,如此类推,一直到1/A,请参见图6,其示出了n=15的加权移动平均的权重分布示意图。加权移动平均法的计算公式如下所示:

<mrow> <mi>WMA</mi> <mo>=</mo> <mfrac> <mrow> <msub> <mi>np</mi> <mn>1</mn> </msub> <mo>+</mo> <mrow> <mo>(</mo> <mi>n</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> <msub> <mi>p</mi> <mn>2</mn> </msub> <mo>+</mo> <mo>&CenterDot;</mo> <mo>&CenterDot;</mo> <mo>&CenterDot;</mo> <mo>+</mo> <mn>2</mn> <msub> <mi>p</mi> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> <mo>+</mo> <msub> <mi>p</mi> <mi>n</mi> </msub> </mrow> <mrow> <mi>n</mi> <mo>+</mo> <mrow> <mo>(</mo> <mi>n</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>+</mo> <mn>1</mn> <mo>&CenterDot;</mo> <mo>&CenterDot;</mo> <mo>&CenterDot;</mo> <mo>+</mo> <mn>2</mn> <mo>+</mo> <mn>1</mn> </mrow> </mfrac> </mrow>

所谓指数移动平均法(Exponential Moving Average—EMA),与上述加权移动平均法相比较,是以指数式递减权重系数的移动平均。各数据项的加权影响力随时间而指数式递减,越近期的数据加权影响力越重,对较远期的数据也给予一定的加权值,请参见图7,其示出了n=20的指数移动平均的权重分布示意图。在具体实施时,加权的程度可以用常数α决定,α数值介乎0至1,α也 可用参与计算的数据项的数目n来表示,例如α=2/(n+1)。基于常数α的指数移动平均法的计算公式如下所示:

<mrow> <mi>EMA</mi> <mo>=</mo> <mfrac> <mrow> <msub> <mi>p</mi> <mn>1</mn> </msub> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>&alpha;</mi> <mo>)</mo> </mrow> <msub> <mi>p</mi> <mn>2</mn> </msub> <mo>+</mo> <msup> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>&alpha;</mi> <mo>)</mo> </mrow> <mn>2</mn> </msup> <msub> <mi>p</mi> <mn>3</mn> </msub> <mo>+</mo> <msup> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>&alpha;</mi> <mo>)</mo> </mrow> <mn>3</mn> </msup> <msub> <mi>p</mi> <mn>4</mn> </msub> <mo>+</mo> <mo>&CenterDot;</mo> <mo>&CenterDot;</mo> <mo>&CenterDot;</mo> </mrow> <mrow> <mn>1</mn> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>&alpha;</mi> <mo>)</mo> </mrow> <mo>+</mo> <msup> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>&alpha;</mi> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>+</mo> <msup> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>&alpha;</mi> <mo>)</mo> </mrow> <mn>3</mn> </msup> <mo>+</mo> <mo>&CenterDot;</mo> <mo>&CenterDot;</mo> <mo>&CenterDot;</mo> </mrow> </mfrac> </mrow>

通过上面的描述可以看出,加权移动平均法和指数移动平均法的权重系数主要是由数据项的生成时间决定的,越近期的数据项的权重系数越大,越远期的数据项的权重系数越小。具体应用于本实施例,可以为本次分类准确率设置较大的权重系数,而为远期的历史分类准确率设置相应较小的权重系数,采用这种方式计算得到的综合分类准确率,既可以从全局角度反应决策树的分类效果,同时也可以凸显决策树近期的分类表现,那么由基于该指标筛选出的决策树所组成的分类模型,通常可以在未来的分类预测中获得更为准确的预测结果。

通过上面的描述还可以看出,加权移动平均法和指数移动平均法的不同之处在于,指数移动平均法中各数据项的加权影响力不是线形递减的、而是采用指数方式递减的。因此,针对数据快速变化的应用场景(例如网站开展促销活动)通常可以采用指数移动平均法,而在数据相对平稳的应用场景(例如普通的工作日)通常可以采用加权移动平均法。

在具体实施本步骤时,可以根据原始决策树的标识,例如决策树id,在已存储的分类准确率数据中查找截止本次更新之前的某段时间内的(例如:7天或者1个月)、对应于该决策树的分类准确率以及生成时间信息,这些数据通常都是在历次更新分类模型过程中记录下来的;然后根据具体的应用需求或者不同的应用场景,利用上述查找到的分类准确率以及本次分类准确率,采用上述移动平均法之一计算该决策树的综合分类准确率。针对分类模型包括的每一棵原始决策树执行上述操作,从而可以获得每一棵原始决策树的综合分类准确率。

至此,通过步骤103-1-1至步骤103-1-3,在计算本次分类准确率的基础上,得到了每棵新增决策树和原始决策树的综合分类准确率。为了在后续更新分类模型的过程中能够获取详实的历史分类准确率数据,在上述步骤103-1-1和103-1-2计算出新增决策树和原始决策树的本次分类准确率后,可以将该数据以及本次计算时间存储在对应决策树的相关信息中,即每棵决策树的相关信息中不仅包括:决策树标识和生成时间,还可以包括对应于时间序列的一系列分类准确率。

步骤103-2:按照所述综合分类准确率对所述新增决策树和原始决策树进行排序。

本步骤根据步骤103-1计算得到的综合分类准确率,对新增决策树和原始决策树进行排序,即:按照综合分类准确率从高到低的顺序对上述决策树进行排序,使得综合分类准确率高的决策树的排序位置处于综合分类准确率低的决策树之前,为后续步骤103-3进行筛选做好准备。

步骤103-3:从排序后的决策树中选择序位位于高位的、所述预定数量的决策树。

例如,分类模型包含T棵原始决策树,在步骤102中生成了K棵决策树,那么本步骤从根据综合分类准确率排序的T+K棵决策树中,选择排位靠前的,即综合分类准确率最优的T棵决策树,汇总组成更新后的分类模型。

至此通过步骤103-1至103-3完成了决策树的筛选操作,并得到了更新后的分类模型。在具体实施时,可以在完成上述操作后,删除未被选取的决策树及其相关信息,包括:决策树标识、生成时间、以及与分类准确率相关的信息。如果被删除的决策树是本次新增决策树,那么删除与分类准确率相关的信息是指,仅删除本次分类准确率和本次计算时间;如果被删除的决策树是原始决策树,那么不仅可以删除本次分类准确率及本次计算时间,还可以删除之前记录的历史分类准确率及相关时间信息。

此外,由于本技术方案提供了动态更新机制,分类模型可以逐渐完善,因此在首次创建分类模型时(从无到有的过程,也可以认为是更新过程),也可以采用本技术方案。具体说,在执行步骤102之前,先判断是否已创建分类模型,若否,则将所述预定数量作为所述新增数量,并在步骤102种创建预定数量的决策树,在步骤103中计算每棵新增决策树的本次分类准确率,供后续更新分类模型时参考,并直接将新增决策树汇总得到分类模型。采用这种实施方式,可以将分类模型的创建和更新过程统一起来,减少人工参与,便于维护与管理。

综上所述,本实施例提供的用于更新分类模型的方法,由于不需要根据全量数据进行训练,而是利用增量数据在原有分类模型的基础上进行增量更新,因此可以根据需要对分类模型进行各种时间粒度的动态更新,例如:按日更新或者近似实时更新,从而可以提高模型训练的效率、实现对业务的快速响应;进一步地,由于在评价决策树的分类效果时并没有仅仅依据本次的分类准确率, 而是引入了历史分类准确率,因此可以从全局的角度对决策树的综合分类效果进行评估,从而可以平滑数据的短期波动,保证更新后的分类模型能够保持比较稳定的分类预测效果。

在上述的实施例中,提供了一种用于更新分类模型的方法,与之相对应的,本申请还提供一种用于更新分类模型的装置。请参看图8,其为本申请的一种用于更新分类模型的装置实施例的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。

本实施例的一种用于更新分类模型的装置,包括:训练样本集提取单元801,用于从提供所述用户行为数据的服务器中获取预定时间段内的增量数据,并从中提取训练样本集;决策树生成单元802,用于根据所述训练样本集,生成新增数量的决策树;决策树选择单元803,用于根据历史分类准确率和针对所述训练样本集的本次分类准确率,从新增决策树和原始决策树中选择所述预定数量的决策树,组成更新后的分类模型。

可选的,所述训练样本集提取单元包括:

增量数据获取子单元,用于从提供所述用户行为数据的服务器中获取预定时间段内的增量数据,其中每条增量数据都包含一组原始变量及相应值、以及类别标签;

数据预处理子单元,用于对所述增量数据进行预处理,使其符合分类模型对训练样本数据的要求;

特征值提取子单元,用于对每条增量数据执行如下操作,生成所述训练样本集:从增量数据中提取对应于所述分类模型的特征变量的值,并用提取的值与所述类别标签组成训练样本。

可选的,所述数据预处理子单元至少包括以下子单元之一:

极值处理子单元,用于按照预先设定的方式,对增量数据中极大值和/或极小值进行处理;

缺失值处理子单元,用于按照预先设定的方式,对增量数据中的缺失值进行处理;

格式转换子单元,用于根据所述分类模型对样本数据的格式要求,进行相应的格式转换。

可选的,所述训练样本集提取单元还包括:

特征变量抽取子单元,用于从预处理后的增量数据中抽取特征变量,添加到特征变量集合中;

所述特征值提取子单元具体用于,对每条增量数据执行如下操作,生成所述训练样本集:从增量数据中提取从所述特征变量集合中选取的、对应于所述分类模型的特征变量的值,并用提取的值与所述类别标签组成训练样本。

可选的,所述决策树生成单元具体用于,根据所述训练样本集,采用随机森林算法生成新增数量的决策树。

可选的,所述决策树生成单元包括:

循环控制子单元,用于当生成决策树的数量小于所述新增数量时,调用下述各子单元创建决策树;

bootstrap样本集合构建子单元,用于根据所述训练样本集采用有放回抽样的方式构建bootstrap样本集合;

决策树生成执行子单元,用于使用所述bootstrap样本集合,采用在每个节点按照预定策略选取特征变量、并根据所选特征变量进行分裂的方式生成一棵新决策树;所述按照预定策略选取特征变量是指,从随机选择的特征变量中按照预定策略选取最优特征变量。

可选的,所述决策树生成执行子单元所采用的预定策略包括:根据信息增益选取属性、根据信息增益率选取属性、或者根据基尼指标选取属性。

可选的,所述决策树选择单元包括:

综合指标计算子单元,用于根据历史分类准确率和针对所述训练样本集的本次分类准确率,计算新增决策树和原始决策树的综合分类准确率;

排序子单元,用于按照所述综合分类准确率对新增决策树和原始决策树进行排序;

筛选子单元,用于从排序后的决策树中选择序位处于高位的、所述预定数量的决策树。

可选的,所述综合指标计算子单元包括:

新增决策树综合指标计算子单元,用于根据所述训练样本集,计算新增决策树的本次分类准确率,作为其综合分类准确率;

原始决策树本次指标计算子单元,用于根据所述训练样本集,计算原始决策树的本次分类准确率;

原始决策树综合指标计算子单元,用于根据所述历史分类准确率和本次分类准确率,计算原始决策树的综合分类准确率。

可选的,所述原始决策树综合指标计算子单元具体用于,采用移动平均法,计算原始决策树的综合分类准确率。

可选的,所述原始决策树综合指标计算子单元采用的移动平均法包括:加权移动平均法、或者指数移动平均法。

可选的,所述装置还包括:

分类模型创建判断单元,用于在触发所述决策树生成单元工作之前,判断是否已创建所述分类模型,若否,将所述预定数量作为所述新增数量。

可选的,所述装置还包括:

决策树删除单元,用于在所述决策树选择单元组成更新后的分类模型后,删除未被选取的决策树。

本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他 磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

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