本说明书实施例涉及计算机技术领域,特别涉及一种模型训练方法、类型预测方法、装置和计算设备。
背景技术:
随着科技的发展,人工智能技术的应用为人们的日常生活带来了各种便利。在一些场景下,需要对业务对象的类型进行预测。例如,需要对股票是否为新进重仓股进行预测。
在相关技术中,可以选择逻辑回归模型对业务对象的类型进行预测。但是,逻辑回归模型比较简单,在处理大量特征时,容易欠拟合,造成预测结果的不准确。
技术实现要素:
本说明书实施例提供一种模型训练方法、类型预测方法、装置和计算设备,以提高预测结果的准确性。本说明书实施例的技术方案如下。
本说明书实施例的第一方面,提供了一种模型训练方法,包括:
获取业务对象的多个指标数据和标签,所述标签用于表示业务对象的类型;
从多个指标数据中筛选出目标指标数据;
根据目标指标数据和标签,对基于决策树的集成学习分类模型进行训练。
本说明书实施例的第二方面,提供了一种类型预测方法,包括:
获取业务对象在历史时段内的多个指标数据;
将指标数据输入至基于决策树的集成学习分类模型,获得业务对象在未来时段的类型。
本说明书实施例的第三方面,提供了一种模型训练装置,包括:
获取单元,用于获取业务对象的多个指标数据和标签,所述标签用于表示业务对象的类型;
筛选单元,用于从多个指标数据中筛选出目标指标数据;
训练单元,用于根据目标指标数据和标签,对基于决策树的集成学习分类模型进行训练。
本说明书实施例的第四方面,提供了一种类型预测装置,包括:
获取单元,用于获取业务对象在历史时段内的多个指标数据;
输入单元,用于将指标数据输入至基于决策树的集成学习分类模型,获得业务对象在未来时段的类型。
本说明书实施例的第五方面,提供了一种计算设备,包括:
至少一个处理器;
存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如第一方面或者第二方面所述方法的指令。
本说明书实施例提供的技术方案,可以利用业务对象的指标数据和标签,对基于决策树的集成学习分类模型进行训练。另外,还可以利用基于决策树的集成学习分类模型对业务对象的类型进行预测,从而提高了预测结果的准确性。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例中模型训练方法的流程示意图;
图2为本说明书实施例中模型训练过程的示意图;
图3为本说明书实施例中类型预测方法的流程示意图;
图4为本说明书实施例中模型训练装置的结构示意图;
图5为本说明书实施例中类型预测装置的结构示意图;
图6为本说明书实施例中计算设备的结构示意图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
考虑到基于决策树的集成学习分类模型的准确性较高、效率较高、可解释性较强,本说明书实施例利用基于决策树的集成学习分类模型对业务对象的类型进行预测。
请参阅图1。本说明书实施例提供一种模型训练方法。所述模型训练方法可以应用于服务器。所述服务器可以为一个服务器、包括多个服务器的服务器集群、或者部署在云端的服务器。所述模型训练方法可以用于训练基于决策树的集成学习分类模型。所述基于决策树的集成学习分类模型可以为一种基于决策树实现的集成学习模型。所述基于决策树的集成学习分类模型可以为xgboost模型。当然,所述基于决策树的集成学习分类模型还可以为其它的模型,例如gbdt(gradientboostingdecisiontree,梯度提升决策树)。
所述模型训练方法可以包括以下步骤。
步骤s11:获取业务对象的多个指标数据和标签,所述标签用于表示业务对象的类型。
在一些实施例中,所述指标数据可以包括业务对象的行情指标数据、以及业务对象所关联企业的财务指标数据。由于指标数据可以包括行情指标数据和财务指标数据,使得指标数据更加全面,从而可以提高训练效果。所述标签可以用于表示业务对象的类型。
所述业务对象可以包括股票。所述标签可以用于表示股票是否为新进重仓股。所述重仓股可以为被机构大量持有的股票。具体地,例如,基金重仓股可以为被基金公司持有并占据流通市值20%以上的股票。所述新进重仓股可以为上一季度不是重仓股,本季度成为重仓股的股票。所述指标数据可以包括股票的行情指标数据、以及股票所关联企业的财务指标数据。其中,所述行情指标数据能够反映股票的估值、股价、成交量等等。所述财务指标数据能够从盈利能力、营运能力、现金流量等等方面反映公司的经营情况。
例如,某一业务对象的多个指标数据可以如下表1所示。
表1
当然,在实际中所述业务对象还可以为期货或者债券等其它的金融对象。
在一些实施例中,所述服务器可以采集一个或多个业务对象的指标数据和标签。在实际中,针对每个业务对象,所述服务器可以采集获得该业务对象的多个指标数据、以及与所述多个指标数据相对应的标签。例如,所述服务器可以从互联网上采集业务对象的多个指标数据、以及与所述多个指标数据相对应的标签。具体地,例如,所述服务器可以从互联网上采集2016年~2020年期间上市公司每季度的财务指标数据、上市公司所发行股票每季度的行情指标数据、以及上市公司所发行股票在每季度的标签。
步骤s13:从多个指标数据中筛选出目标指标数据。
在一些实施例中,为了提高基于决策树的集成学习分类模型的训练效果,所述服务器可以对所述多个指标数据进行筛选,获得多个目标指标数据。
所述服务器可以对指标数据之间的相关性进行分析,实现从多个指标数据中筛选出目标指标数据。具体地,所述服务器可以确定所述多个指标数据两两之间的相关系数;可以从所述多个指标数据中筛选出多个目标指标数据,使得所述多个目标指标数据两两之间的相关系数满足第一条件。其中,指标数据之间的相关系数可以用于表示指标数据之间的相关性。相关系数越大,表示指标数据之间越相关;相关系数越小,表示指标数据之间越不相关。在实际中,指标数据两两之间的相关系数可以为经验值。或者,指标数据两两之间的相关系数还可以通过计算的方式获得。例如,所述服务器还可以计算指标数据两两之间的一致性系数(coefficientofconcordance),作为指标数据两两之间的相关系数。所述第一条件可以包括:相关系数小于或等于第一阈值。这样可以使得筛选出的目标指标数据之间不相关。
例如,所述多个指标数据可以包括指标数据a、b、c、d、e。指标数据a和指标数据b之间的相关系数为0.5,指标数据a和指标数据c之间的相关系数为0.6,指标数据a和指标数据d之间的相关系数为0.75,指标数据a和指标数据e之间的相关系数为0.85,指标数据b和指标数据c之间的相关系数为0.8,指标数据b和指标数据d之间的相关系数为0.86,指标数据b和指标数据e之间的相关系数为0.9,指标数据c和指标数据d之间的相关系数为0.2,指标数据c和指标数据e之间的相关系数为0.3,指标数据d和指标数据e之间的相关系数为0.88。所述第一条件可以包括:相关系数小于或等于0.8。那么,所述服务器可以从指标数据a、b、c、d、e中选取指标数据a、c、d作为目标指标数据。
或者,所述服务器还可以确定指标数据与标签之间的相关系数;可以从所述多个指标数据中筛选出相关系数满足第二条件的指标数据作为目标指标数据。指标数据与标签之间的相关系数可以用于表示指标数据与标签之间的相关性。指标数据与标签之间的相关系数可以为经验值。或者,指标数据与标签之间的相关系数还可以通过计算的方式获得。例如,所述服务器可以计算指标数据与标签之间的sharp值,作为指标数据与标签之间的相关系数。所述第二条件可以包括:相关系数大于或等于第二阈值。这样可以使得筛选出的目标指标数据为对标签影响力较大的指标数据。
在一些实施例中,业务对象的多个指标数据中有可能缺失了一些数据。例如,公司在某一季度的某个指标数据缺失。为此,所述服务器可以对缺失的数据进行填充。例如,所述服务器可以利用平均值或者众数对缺失的数据进行填充。
在一些实施例中,所述服务器可以对指标数据进行归一化处理。具体地,所述服务器可以采用z-score方法、或者min-max方法对指标数据进行归一化处理。
步骤s15:根据目标指标数据和标签,对基于决策树的集成学习分类模型进行训练。
在一些实施例中,所述基于决策树的集成学习分类模型可以包括xgboost模型。
请参阅图2。所述xgboost模型可以为一种加法模型。具体地,所述xgboost模型可以表示为
所述xgboost模型的训练过程可以基于前向分步算法实现。具体地,在训练的过程中,xgboost模型的每次迭代可以增加一颗决策树。使得所述xgboost模型可以表示为fm(x)=fm-1(x)+t(x,θm)。fm-1(x)表示当前xgboost模型的预测结果,t(x,θm)表示新增加的第m棵决策树的预测结果,fm(x)表示在加入第m棵决策树后xgboost模型的预测结果。迭代后的xgboost模型的优化目标可以为使
通过对
当然,所述基于决策树的集成学习分类模型还可以为其它的模型,例如gbdt(gradientboostingdecisiontree,梯度提升决策树)。
在一些实施例中,业务对象的目标指标数据和标签可以构成训练数据。例如,所述服务器可以从互联网上采集2016年~2020年期间上市公司每季度的财务指标数据、上市公司所发行股票每季度的行情指标数据、以及上市公司所发行股票在每季度的标签。那么,针对每个业务对象,所述服务器可以根据该业务对象在2016年~2020年期间20个季度的目标指标数据、以及20个季度的标签,构建该业务对象的20个训练数据。
所述服务器可以根据训练数据,对基于决策树的集成学习分类模型进行训练。所述服务器具体可以采用梯度下降法或者牛顿法对基于决策树的集成学习分类模型进行训练。
本说明书实施例的模型训练方法,可以获取业务对象的多个指标数据和标签,所述标签用于表示业务对象的类型;可以从多个指标数据中筛选出目标指标数据;可以根据目标指标数据和标签,对基于决策树的集成学习分类模型进行训练。这样可以利用业务对象的指标数据和标签,对基于决策树的集成学习分类模型进行训练,从而为利用基于决策树的集成学习分类模型对业务对象的类型进行预测提供基础。
请参阅图3。本说明书实施例提供一种分类方法。所述分类方法可以应用于服务器。所述服务器可以为一个服务器、包括多个服务器的服务器集群、或者部署在云端的服务器。
所述分类方法可以包括以下步骤。
步骤s21:获取业务对象在历史时段内的多个指标数据。
在一些实施例中,所述指标数据可以包括业务对象的行情指标数据、以及业务对象所关联企业的财务指标数据。由于指标数据可以包括行情指标数据和财务指标数据,使得用于预测股票类型的指标数据更加全面,提高了预测的准确性。例如,所述业务对象可以包括股票。所述指标数据可以包括股票的行情指标数据、以及股票所关联企业的财务指标数据。其中,所述行情指标数据能够反映股票的估值、股价、成交量等等。所述财务指标数据能够从盈利能力、营运能力、现金流量等等方面反映公司的经营情况。
当然,在实际中所述业务对象还可以为期货或者债券等其它的金融对象。
在一些实施例中,所述服务器可以获取业务对象在历史时段内的多个指标数据。所述历史时段的长度可以为一个季度或者一年。例如,所述服务器可以获取业务对象在最近一个季度内的多个指标数据。其中,所述指标数据的类型可以为指定类型。例如,所述指定类型可以为图1所对应实施例中目标指标数据的类型。
步骤s23:将指标数据输入至基于决策树的集成学习分类模型,获得业务对象在未来时段的类型。
在一些实施例中,所述基于决策树的集成学习分类模型可以基于图1所对应实施例的模型训练方法训练得到。所述基于决策树的集成学习分类模型可以包括xgboost模型。
在一些实施例中,业务对象在不同时段的类型有可能是不同的。例如,所述业务对象可以为股票,所述股票在一个季度可以是新进重仓股,在另一个季度有可能不是新进重仓股。所述服务器可以将指标数据输入至基于决策树的集成学习分类模型,获得所述业务对象在未来时段的类型。所述未来时段的长度可以为一个季度或者一年。所述类型可以选自第一类型和第二类型。根据业务对象的不同,第一类型和第二类型表示的含义不同。以所述业务对象为股票为例,所述第一类型可以用于表示股票是新进重仓股,所述第二类型可以用于表示股票不是新进重仓股。
例如,所述服务器可以获取业务对象在最近一个季度内的多个指标数据;可以将指标数据输入至基于决策树的集成学习分类模型,获得所述业务对象在下一个季度的类型。
本说明书实施例的分类方法,可以获取业务对象在历史时段内的多个指标数据;可以将指标数据输入至基于决策树的集成学习分类模型,获得业务对象在未来时段的类型。这样通过利用基于决策树的集成学习分类模型对业务对象的类型进行预测,可以提高预测结果的准确性。
请参阅图4。本说明书实施例提供一种模型训练装置,所述装置可以包括以下单元。
获取单元31,用于获取业务对象的多个指标数据和标签,所述标签用于表示业务对象的类型;
筛选单元33,用于从多个指标数据中筛选出目标指标数据;
训练单元35,用于根据目标指标数据和标签,对基于决策树的集成学习分类模型进行训练。
请参阅图5。本说明书实施例提供一种类型预测装置,所述装置可以包括以下单元。
获取单元41,用于获取业务对象在历史时段内的多个指标数据;
输入单元43,用于将指标数据输入至基于决策树的集成学习分类模型,获得业务对象在未来时段的类型。
请参阅图6。本说明书实施例还提供一种计算设备。
所述计算设备可以包括存储器和处理器。
在本实施例中,所述存储器包括但不限于动态随机存取存储器(dynamicrandomaccessmemory,dram)和静态随机存取存储器(staticrandomaccessmemory,sram)等。所述存储器可以用于存储计算机指令。
在本实施例中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以用于执行所述计算机指令以实现图1或者图3所对应的实施例。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于装置实施例和计算设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。另外,可以理解的是,本领域技术人员在阅读本说明书文件之后,可以无需创造性劳动想到将本说明书列举的部分或全部实施例进行任意组合,这些组合也在本说明书公开和保护的范围内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。