买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:同盾控股有限公司
摘要:本发明实施例提供了一种基于pyspark的机器学习方法和装置,具体包括对传入的训练集进行格式校验;如果通过格式校验,则将训练集随机分为多个并行的分区;利用多个并行的分区进行迭代训练,得到目标模型的结果模型参数。由于本发明实现了分布式特征两两交叉情况下的参数计算,因此不再依赖于算法工程师对业务数据的了解,从而实现了效果较好的机器学习。
主权项:1.一种基于pyspark的机器学习方法,其特征在于,包括步骤:对传入的训练集进行格式校验,所述训练集中样本的格式为pyspark的dataframe格式;如果通过所述格式校验,则将所述训练集随机分为多个并行的分区;利用所述多个并行的分区进行迭代训练,得到目标模型的结果模型参数,所述目标模型为因子分解机。
全文数据:一种基于pyspark的机器学习方法和装置技术领域本发明涉及人工智能技术领域,特别是涉及一种基于pyspark的机器学习方法和装置。背景技术对于稀疏矩阵下的特征组合问题,传统机器学习一般仅考虑如何对特征赋予权重,而没有考虑特征间存在的相互作用,造成实现效果较差;或者是基于逻辑回归算法做大量的人工特征交叉,但是这样的交叉非常依赖于算法工程师对业务数据的理解,而且非常费事,但是绝大部分情况下算法实现和业务数据处理是相隔较远的两种业务,一般情况下算法工程师无法对业务数据做到深入的理解,这样一来同样造成最终的实现效果较差。发明内容有鉴于此,本发明提供了一种基于pyspark的机器学习方法和装置,以解决传统机器学习的实现效果较差的问题。为了解决上述问题,本发明公开了一种基于pyspark的机器学习方法,包括步骤:对传入的训练集进行格式校验,所述训练集中样本的格式为pyspark的dataframe格式;如果通过所述格式校验,则将所述训练集随机分为多个并行的分区;利用所述多个并行的分区进行迭代训练,得到目标模型的结果模型参数,所述目标模型为因子分解机。可选的,所述利用所述多个并行的分区进行迭代训练,包括:针对每个所述分区,每一轮迭代完成时,通过广播变量传递的中间模型参数计算损失函数;对所述损失函数求导,得到求导结果;利用所述求导结果更新所述中间模型参数;对所有分区的中间模型参数进行线性平均,得到平均模型参数;判断最近两次迭代计算的过程是否收敛,如是,则将所述平均模型参数输出为所述结果模型参数,如否则进行下一次迭代计算。可选的,所述对所述损失函数求导,包括:利用随机梯度下降算法或者小批量随机梯度算法对所述损失函数进行求导计算。可选的,还包括:把所述结果模型参数传到指定路径的文件中。可选的,在所述对传入的训练集进行格式校验步骤之前,还包括:准备所述训练集,所述训练集的每个样本至少包括特征字段和标签字段。另外,还提供了一种基于pyspark的机器学习装置,包括:格式校验模块,用于对传入的训练集进行格式校验,所述训练集中样本的格式为spark的dataframe格式;数据分割模块,用于如果通过所述格式校验,则将所述训练集随机分为多个并行的分区;模型训练模块,用于利用所述多个并行的分区进行迭代训练,得到目标模型的结果模型参数,所述目标模型为因子分解机。可选的,所述模型训练模块包括:函数计算单元,用于针对每个所述分区,每一轮迭代完成时,通过广播变量传递的中间模型参数计算损失函数;求导计算模块,用于对所述损失函数求导,得到求导结果;参数更新模块,用于利用所述求导结果更新所述中间模型参数;平均计算模块,用于对所有分区的中间模型参数进行线性平均,得到平均模型参数;收敛输出模块,用于判断最近两次迭代计算的过程是否收敛,如是,则将所述平均模型参数输出为所述结果模型参数,如否则进行下一次迭代计算。可选的,所述求导计算模块具体用于利用随机梯度下降算法或者小批量随机梯度算法对所述损失函数进行求导计算。可选的,还包括:文件传送模块,用于把所述结果模型参数传到指定路径的文件中。可选的,还包括:训练集准备模块,用于在所述格式校验模块对传入的训练集进行格式校验之前,准备所述训练集,所述训练集的每个样本至少包括特征字段和标签字段。从上述技术方案可以看出,本发明提供了一种基于pyspark的机器学习方法和装置,具体包括对传入的训练集进行格式校验;如果通过格式校验,则将训练集随机分为多个并行的分区;利用多个并行的分区进行迭代训练,得到目标模型的结果模型参数。由于本发明实现了分布式特征两两交叉情况下的参数计算,因此不再依赖于算法工程师对业务数据的了解,从而实现了效果较好的机器学习。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例的一种基于pyspark的机器学习方法的流程图;图2为本申请实施例的另一种基于pyspark的机器学习方法的流程图;图3为本申请实施例的又一种基于pyspark的机器学习方法的流程图;图4为本申请实施例的一种基于pyspark的机器学习装置的框图;图5为本申请实施例的另一种基于pyspark的机器学习装置的框图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例一图1为本申请实施例的一种基于pyspark的机器学习方法的流程图。参照图1所示,本实施例提供的机器学习方法是基于pyspark,spark是一种分布式的、专为大规模数据处理而设计的快速通用的计算引擎,而pyspark则是为python开发者提供的api,通过python语言可以实现spark上的数据开发。本实施例的机器学习方法具体包括如下步骤:S01、对传入的训练集进行格式校验。被传入的数据集中的样本应该是pyspark的dataframe格式。Dataframe是spark上一种以RDD弹性分布式数据集为基础的分布式数据集。如果通过校验发现其中某些样本不符合该规定,则进行清洗,即去除该不符合格式的样本。S02、将训练集随机分为多个并行的分区。对于经过校验符合固定的训练集,将其分割为多个并行的分区。并行的分区是指能够使计算机系统能够同时执行的数据分区。S03、利用多个并行的分区进行迭代训练,得到结果模型参数。这里结果模型参数是指最终所需要实现的目标模型的参数,而这里目标模型是指本申请所要实现的因子分解机。所谓因子分解机FactorizationMachine,简称FM。在具体实现迭代训练时,针对每个分区分别进行迭代式训练,每次迭代中,每个分区各自计算目标模型的特征权重参数,计算方式支持随机梯度下降和小批量随机梯度下降。在具体迭代过程中:首先,针对每个分区,对于每一轮迭代完成时,根据通过广播变量传递的中间模型参数计算相应的损失函数;然后,利用随机梯度下降或者小批量随机梯度下降的方式对损失函数进行求导运算,得到相应的求导结果;然后,利用求导结果更新前面的中间模型参数;然后,对于每个分区经过更新的中间模型参数进行新型平均,得到相应的平均模型参数;最后,对两次迭代的平均模型参数进行判断,看是否发生收敛,如果收敛则将最后一次迭代得到的平均参数模型输出为该目标模型的结果模型参数,如没有收敛,则进行下一次迭代计算。这里的结果模型参数即为相应因子分解机所需的模型,即能够构成完整的机器模型。本申请中的因子分解机的模型公式为:其中,参数w0∈R,w∈Rn,v属于Rn*k。表示两个大小为k的向量vi和向量vj的点集,其中,vi表示的是稀疏矩阵V的第i维向量,且vi=vi,1,vi,2,vi,3,……,vi,k,k∈N+称为超参数。在因子分解机模型中,前面两部分是传统的线性模型,最后一部分是将两个互异特征分量之间的相互关系考虑进来。这里的wo、w、v三组参数就是机器训练输出的结果,这里称为结果模型参数。从上述技术方案可以看出,本实施例提供了一种基于pyspark的机器学习方法,具体包括对传入的训练集进行格式校验;如果通过格式校验,则将训练集随机分为多个并行的分区;利用多个并行的分区进行迭代训练,得到目标模型的结果模型参数。由于本发明实现了分布式特征两两交叉情况下的参数计算,因此不再依赖于算法工程师对业务数据的了解,从而实现了效果较好的机器学习。另外,如图2所示,本实施例还可以包括如下步骤:S04、将结果模型参数传到指定路径的文件中。传到指定路径的文件中的目的在于,在需要实现相应的预测时,利用该结果模型参数构建相应的预测模型,并将该预测模型导入到模型对象,从而实现相应的预测。还有,如图3所示,在本实施例中还可以包括如下步骤:S00、准备训练集。在需要进行机器学习、实现相应的模型训练前,准备相应的训练集,训练集中的样本包正样本和负样本,并在这个阶段对该训练集完成数据的清洗加工,其中的样本至少包括特征字段和标签字段。需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。实施例二图4为本申请实施例的一种基于pyspark的机器学习装置的框图。参照图4所示,本实施例提供的机器学习装置是基于pyspark,spark是一种分布式的、专为大规模数据处理而设计的快速通用的计算引擎,而pyspark则是为python开发者提供的api,通过python语言可以实现spark上的数据开发。本实施例的机器学习装置具体包括格式校验模块10、数据分割模块20和模型训练模块30。格式校验模块用于对传入的训练集进行格式校验。被传入的数据集中的样本应该是pyspark的dataframe格式。Dataframe是spark上一种以RDD弹性分布式数据集为基础的分布式数据集。如果通过校验发现其中某些样本不符合该规定,则进行清洗,即去除该不符合格式的样本。数据分割模块用于将训练集随机分为多个并行的分区。对于经过校验符合固定的训练集,将其分割为多个并行的分区。并行的分区是指能够使计算机系统能够同时执行的数据分区。模型训练模块用于利用多个并行的分区进行迭代训练,从而得到结果模型参数。这里结果模型参数是指最终所需要实现的目标模型的参数,而这里目标模型是指本申请所要实现的因子分解机。所谓因子分解机FactorizationMachine,简称FM。在具体实现迭代训练时,针对每个分区分别进行迭代式训练,每次迭代中,每个分区各自计算目标模型的特征权重参数,计算方式支持随机梯度下降和小批量随机梯度下降。该模块具体包括函数计算单元、求导计算单元、参数更新单元、平均计算单元和收敛输出单元。函数计算单元用于针对每个分区,对于每一轮迭代完成时,根据通过广播变量传递的中间模型参数计算相应的损失函数;求导计算单元用于利用随机梯度下降或者小批量随机梯度下降的方式对损失函数进行求导运算,得到相应的求导结果;参数更新单元用于利用求导结果更新前面的中间模型参数;平均计算单元用于对于每个分区经过更新的中间模型参数进行新型平均,得到相应的平均模型参数;收敛输出单元用于对两次迭代的平均模型参数进行判断,看是否发生收敛,如果收敛则将最后一次迭代得到的平均参数模型输出为该目标模型的结果模型参数,如没有收敛,则进行下一次迭代计算。这里的结果模型参数即为相应因子分解机所需的模型,即能够构成完整的机器模型。本申请中的因子分解机的模型公式为:其中,参数w0∈R,w∈Rn,v属于Rn*k。表示两个大小为k的向量vi和向量vj的点集,其中,vi表示的是稀疏矩阵V的第i维向量,且vi=vi,1,vi,2,vi,3,……,vi,k,k∈N+称为超参数。在因子分解机模型中,前面两部分是传统的线性模型,最后一部分是将两个互异特征分量之间的相互关系考虑进来。这里的wo、w、v三组参数就是机器训练输出的结果,这里称为结果模型参数。从上述技术方案可以看出,本实施例提供了一种基于pyspark的机器学习装置,具体包括对传入的训练集进行格式校验;如果通过格式校验,则将训练集随机分为多个并行的分区;利用多个并行的分区进行迭代训练,得到目标模型的结果模型参数。由于本发明实现了分布式特征两两交叉情况下的参数计算,因此不再依赖于算法工程师对业务数据的了解,从而实现了效果较好的机器学习。另外,如图5所示,本实施例的机器学习装置还包括文件传送模块40和训练集准备模块50。文件传送模块用于将结果模型参数传到指定路径的文件中。传到指定路径的文件中的目的在于,在需要实现相应的预测时,利用该结果模型参数构建相应的预测模型,并将该预测模型导入到模型对象,从而实现相应的预测。训练集准备模块用于准备训练集。在需要进行机器学习、实现相应的模型训练前,准备相应的训练集,训练集中的样本包正样本和负样本,并在这个阶段对该训练集完成数据的清洗加工,其中的样本至少包括特征字段和标签字段。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质包括但不限于磁盘存储器、CD-ROM、光学存储器等上实施的计算机程序产品的形式。本发明实施例是参照根据本发明实施例的方法、终端设备系统、和计算机程序产品的流程图和或方框图来描述的。应理解可由计算机程序指令实现流程图和或方框图中的每一流程和或方框、以及流程图和或方框图中的流程和或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。以上对本发明所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求:1.一种基于pyspark的机器学习方法,其特征在于,包括步骤:对传入的训练集进行格式校验,所述训练集中样本的格式为pyspark的dataframe格式;如果通过所述格式校验,则将所述训练集随机分为多个并行的分区;利用所述多个并行的分区进行迭代训练,得到目标模型的结果模型参数,所述目标模型为因子分解机。2.如权利要求1所述的机器学习方法,其特征在于,所述利用所述多个并行的分区进行迭代训练,包括:针对每个所述分区,每一轮迭代完成时,通过广播变量传递的中间模型参数计算损失函数;对所述损失函数求导,得到求导结果;利用所述求导结果更新所述中间模型参数;对所有分区的中间模型参数进行线性平均,得到平均模型参数;判断最近两次迭代计算的过程是否收敛,如是,则将所述平均模型参数输出为所述结果模型参数,如否则进行下一次迭代计算。3.如权利要求2所述的机器学习方法,其特征在于,所述对所述损失函数求导,包括:利用随机梯度下降算法或者小批量随机梯度算法对所述损失函数进行求导计算。4.如权利要求1所述的机器学习方法,其特征在于,还包括:把所述结果模型参数传到指定路径的文件中。5.如权利要求1所述的机器学习方法,其特征在于,在所述对传入的训练集进行格式校验步骤之前,还包括:准备所述训练集,所述训练集的每个样本至少包括特征字段和标签字段。6.一种基于pyspark的机器学习装置,其特征在于,包括:格式校验模块,用于对传入的训练集进行格式校验,所述训练集中样本的格式为spark的dataframe格式;数据分割模块,用于如果通过所述格式校验,则将所述训练集随机分为多个并行的分区;模型训练模块,用于利用所述多个并行的分区进行迭代训练,得到目标模型的结果模型参数,所述目标模型为因子分解机。7.如权利要求6所述的机器学习装置,其特征在于,所述模型训练模块包括:函数计算单元,用于针对每个所述分区,每一轮迭代完成时,通过广播变量传递的中间模型参数计算损失函数;求导计算模块,用于对所述损失函数求导,得到求导结果;参数更新模块,用于利用所述求导结果更新所述中间模型参数;平均计算模块,用于对所有分区的中间模型参数进行线性平均,得到平均模型参数;收敛输出模块,用于判断最近两次迭代计算的过程是否收敛,如是,则将所述平均模型参数输出为所述结果模型参数,如否则进行下一次迭代计算。8.如权利要求7所述的机器学习装置,其特征在于,所述求导计算模块具体用于利用随机梯度下降算法或者小批量随机梯度算法对所述损失函数进行求导计算。9.如权利要求6所述的机器学习装置,其特征在于,还包括:文件传送模块,用于把所述结果模型参数传到指定路径的文件中。10.如权利要求6所述的机器学习装置,其特征在于,还包括:训练集准备模块,用于在所述格式校验模块对传入的训练集进行格式校验之前,准备所述训练集,所述训练集的每个样本至少包括特征字段和标签字段。
百度查询: 同盾控股有限公司 一种基于pyspark的机器学习方法和装置
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。