一种基于pyspark的机器学习方法和装置制造方法及图纸

技术编号:21158165 阅读:26 留言:0更新日期:2019-05-22 07:48
本发明专利技术实施例提供了一种基于pyspark的机器学习方法和装置,具体包括对传入的训练集进行格式校验;如果通过格式校验,则将训练集随机分为多个并行的分区;利用多个并行的分区进行迭代训练,得到目标模型的结果模型参数。由于本发明专利技术实现了分布式特征两两交叉情况下的参数计算,因此不再依赖于算法工程师对业务数据的了解,从而实现了效果较好的机器学习。

A pyspark-based machine learning method and device

The embodiment of the present invention provides a pyspark-based machine learning method and device, which includes format checking of the incoming training set; if the format checking is carried out, the training set is randomly divided into multiple parallel partitions; and the result model parameters of the target model are obtained by iterative training of multiple parallel partitions. Because the invention realizes parameter calculation under the condition of intersection of two distributed features, it no longer depends on the understanding of business data by the algorithm engineer, thus realizing better machine learning.

【技术实现步骤摘要】
一种基于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。<vi,vj>表示两个大小为k的向量vi和向量vj的点集,其中,vi表示的是稀疏矩阵V的第i维向量,且vi=(vi,1,vi,2,vi,3,……,vi,k),k∈N+称为超参数。在因子分解机模型中,前面两部分是传统的线性模型,最后一部分是本文档来自技高网...

【技术保护点】
1.一种基于pyspark的机器学习方法,其特征在于,包括步骤:对传入的训练集进行格式校验,所述训练集中样本的格式为pyspark的dataframe格式;如果通过所述格式校验,则将所述训练集随机分为多个并行的分区;利用所述多个并行的分区进行迭代训练,得到目标模型的结果模型参数,所述目标模型为因子分解机。

【技术特征摘要】
1.一种基于pyspark的机器学习方法,其特征在于,包括步骤:对传入的训练集进行格式校验,所述训练集中样本的格式为pyspark的dataframe格式;如果通过所述格式校验,则将所述训练集随机分为多个并行的分区;利用所述多个并行的分区进行迭代训练,得到目标模型的结果模型参数,所述目标模型为因子分解机。2.如权利要求1所述的机器学习方法,其特征在于,所述利用所述多个并行的分区进行迭代训练,包括:针对每个所述分区,每一轮迭代完成时,通过广播变量传递的中间模型参数计算损失函数;对所述损失函数求导,得到求导结果;利用所述求导结果更新所述中间模型参数;对所有分区的中间模型参数进行线性平均,得到平均模型参数;判断最近两次迭代计算的过程是否收敛,如是,则将所述平均模型参数输出为所述结果模型参数,如否则进行下一次迭代计算。3.如权利要求2所述的机器学习方法,其特征在于,所述对所述损失函数求导,包括:利用随机梯度下降算法或者小批量随机梯度算法对所述损失函数进行求导计算。4.如权利要求1所述的机器学习方法,其特征在于,还包括:把所述结果模型参数传到指定路径的文件中。5.如权利要求1所述的机器学习方法,其特征在于,在所述对传入的训练集进行格式校验步骤之前,还包括:准备所述训练集,所述训练集的每个样本至少包括特征字段和标签字段。6.一种基于pyspark的机器学习装置,其特征在于,包括:格式校验模块,用...

【专利技术属性】
技术研发人员:赵争超卢寻
申请(专利权)人:同盾控股有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1