一种Spark框架中的样本优化方法及装置与流程

文档序号:31958218发布日期:2022-10-28 22:47阅读:227来源:国知局
一种Spark框架中的样本优化方法及装置与流程
一种spark框架中的样本优化方法及装置
技术领域
1.本发明涉及大数据处理技术领域,尤其涉及一种spark框架中的样本优化方法及装置。


背景技术:

2.在日常的大数据处理过程中,常常需要对样本进行各种各样的处理,样本量的大小直接决定着模型训练的准确率以及模型的泛化能力。
3.一般地,样本的分布情况需要能较好地反映实际数据的概率分布情况,并且要求具有不同标签的样本数据量基本等同,以避免样本倾斜问题。然而在实际应用中,正负样本数据往往差异巨大,例如在精准营销场景中(有需求用户),正样本的数据量一般远小于负样本用户群体(大众)。现有地针对上述正负样本差异的处理方法常有:
4.1、过采样处理:随机过采样训练样本中数量比较少的数据,使得正负样本的数据量类似;
5.2、欠采样处理:去除数据量较多类别中的部分数据;
6.3、smote算法:采用类似k-means聚类方式,对目标样本群体与其临近的点进行插值,引入新的样本点。
7.可以发现,上述三种方案具有以下缺点:
8.第一类算法通过重复数据量较少类别中的数据达到样本数据量均衡的目的。该类方法的问题在于重复数据会导致严重的过拟合现象,尤其是在划分训练数据、测试数据和验证数据时会导致三个数据集重复,在实际应用过程中模型的泛化能力会大大减低;
9.第二类算法采用去除样本数据点的策略,去除数据点意味着丢失数据,会导致严重的信息丢失问题,尤其是在正负样本数据分布性态比较复杂和训练指标维度较高情况下;
10.第三类算法中现有的smote算法通过找已有样本点附近同类别样本点进行插值获取新的样本点,该类算法的在一定程度上实现了新样本点的“生成”,相比于前两种方案具有较好的应用效果;但在正负样本分布较为复杂情况下,利用插值策略可能会导致生成的样本数据集合与实际的正负数据分布性态不符,产生噪音样本,后期的分类训练难度更大,因此在实际应用中有基于聚类的过采样方案等;除此之外,基于距离计算的插值策略在大数据等新场景应用下导致较大的计算量。
11.因此,需要提出一种新的针对大数据样本优化处理的方法,能解决上述问题。


技术实现要素:

12.本发明提供一种spark框架中的样本优化方法及装置,用以解决现有技术中大数据框架处理中样本采样存在的各种缺陷。
13.第一方面,本发明提供一种spark框架中的样本优化方法,包括:
14.获取预设场景中的建模数据样本;
15.基于优化的smote算法和聚类算法,优化所述建模数据样本,得到样本优化结果。
16.在一个实施例中,所述基于优化的smote算法和聚类算法,优化所述建模数据样本,得到样本优化结果,具体包括:
17.采用最优聚类簇数确定算法,对所述建模数据样本中的噪音样本进行去除,得到样本聚类结果;
18.基于自适应随机码生成算法,对所述样本聚类结果进行多样本混合平均处理,得到所述样本优化结果。
19.在一个实施例中,所述采用最优聚类簇数确定算法,对所述建模数据样本中的噪音样本进行去除,得到样本聚类结果,具体包括:
20.确定聚类中的预设k值,以及所述预设k值的区间范围;
21.获取每个簇内各个数据点到质点的平均距离,以及每个簇内具有样本标签的数据对应的熵值;
22.基于所述平均距离、所述平均距离的最小值、所述熵值和所述熵值的最小值,得到误差函数;
23.获得所述误差函数与所述预设k值的关系曲线,提取所述关系曲线的拐点作为超参数;
24.基于所述关系曲线在所述超参数下的取值进行样本聚类,得到所述样本聚类结果。
25.在一个实施例中,所述基于自适应随机码生成算法,对所述样本聚类结果进行多样本混合平均处理,得到所述样本优化结果,具体包括:
26.确定所述样本聚类结果中每个样本的随机码;
27.对同一簇内具有相同随机码的样本进行平均采样生成新样本;
28.基于预设加盐迭代处理算法对所述新样本进行处理,获得所述样本优化结果。
29.在一个实施例中,所述确定所述样本聚类结果中每个样本的随机码,具体包括:
30.对每个样本生成唯一id,采用预设迭代次数对所述唯一id进行加盐,得到加盐id;
31.基于md5加密算法对所述加盐id进行编码,提取前预设位数的数据除预设长度的余数作为所述随机码。
32.在一个实施例中,所述基于预设加盐迭代处理算法对所述新样本进行处理,获得所述样本优化结果,具体包括:
33.采用所述新样本所在簇中id最大值加预设迭代次数加盐进行处理,生成新样本id,基于所述新样本id获得新随机码;
34.当样本新增量小于全量样本的预设比值时,所述样本新增量进行自增长。
35.在一个实施例中,所述基于优化的smote算法和聚类算法,优化所述建模数据样本,得到样本优化结果,还包括:
36.采用spark sql语句实现样本数据的整合。
37.第二方面,本发明还提供一种spark框架中的样本优化装置,包括:
38.获取模块,用于获取预设场景中的建模数据样本;
39.优化模块,用于基于优化的smote算法和聚类算法,优化所述建模数据样本,得到样本优化结果。
40.第三方面,本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述spark框架中的样本优化方法的步骤。
41.第四方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述spark框架中的样本优化方法的步骤。
42.本发明提供的spark框架中的样本优化方法及装置,针对大数据样本处理过程中存在的样本采样处理的不足,结合优化后的smote算法以及聚类算法,有效处理样本生成过程中的噪音问题,使得样本扩充更具有普适性,适于在大数据框架下实现。
附图说明
43.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1是本发明提供的spark框架中的样本优化方法的流程示意图;
45.图2是本发明提供的smote算法与聚类算法结合示意图;
46.图3是本发明提供的实验数据中k与dis的关系曲线图;
47.图4是本发明提供的样本量随迭代变化曲线示意图;
48.图5是本发明提供的spark框架中的样本优化装置的结构示意图;
49.图6是本发明提供的电子设备的结构示意图。
具体实施方式
50.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
51.针对现有技术中的不足,本发明提出一种spark框架中的样本优化方法,将smote算法与聚类算法进行结合,通过最优聚类簇数确定方案,以期尽量减少噪音样本,同时优化原有的新样本点生成策略,通过自适应生成随机码,实现高效的多样本过采样,方案实现过程简单,能够将整个过程转化为sql语言实现样本数据的整合。
52.图1是本发明提供的spark框架中的样本优化方法的流程示意图,如图1所示,包括:
53.101,获取预设场景中的建模数据样本;
54.本发明主要针对的是大数据处理场景中的数据样本,例如
55.102,基于优化的smote算法和聚类算法,优化所述建模数据样本,得到样本优化结果。
56.将现有的smote算法进行优化,结合聚类方法,通过最优聚类簇数确定方案、自适应随机码生成策略以及多样本过采样策略,在有限的迭代次数中达到均衡样本的目的,减
少了人工调试工作量和集群计算和带宽压力。
57.本发明结合优化后的smote算法以及聚类算法,有效处理样本生成过程中的噪音问题,使得样本扩充更具有普适性,适于在大数据框架下实现。
58.基于上述实施例,该方法中步骤102具体包括:
59.采用最优聚类簇数确定算法,对所述建模数据样本中的噪音样本进行去除,得到样本聚类结果;
60.基于自适应随机码生成算法,对所述样本聚类结果进行多样本混合平均处理,得到所述样本优化结果。
61.具体地,本发明采用自动确定最优簇数的聚类方法,利用聚类代价曲线拐点的方法,去除建模数据样本中的噪音样本,得到样本聚类结果,通过优化的smote算法,采用生成随机码与多样本加权平均方案,并基于自适应的随机码生成策略,通过定义阈值,在迭代效率降低的情况下自动扩充随机码长度,实现样本快速扩充,再进行不同的加盐处理,确保生成的样本数据具有充分的随机性,同时整个迭代过程不会陷入死循环。
62.本发明所采用的将聚类算法与smote算法结合,通过最优聚类簇数确定方案,优化原有的新样本点生成策略,通过自适应生成随机码,实现了高效的多样本过采样。
63.基于上述任一实施例,所述采用最优聚类簇数确定算法,对所述建模数据样本中的噪音样本进行去除,得到样本聚类结果,具体包括:
64.确定聚类中的预设k值,以及所述预设k值的区间范围;
65.获取每个簇内各个数据点到质点的平均距离,以及每个簇内具有样本标签的数据对应的熵值;
66.基于所述平均距离、所述平均距离的最小值、所述熵值和所述熵值的最小值,得到误差函数;
67.获得所述误差函数与所述预设k值的关系曲线,提取所述关系曲线的拐点作为超参数;
68.基于所述关系曲线在所述超参数下的取值进行样本聚类,得到所述样本聚类结果。
69.具体地,为了避免smote导致的噪音样本,需要以样本聚类的结果作为smote的输出,如图2(a)所示,若不采用聚类措施,生成新的样本可能分布在另一类别的分布区域内(经过多次迭代,小圈范围中心的螺旋样本周围的小圆圈范围内会被螺旋形样本覆盖);通过聚类策略,在同一簇内采用smote算法,可以在本簇内生成新样本,避免噪音样本,如图2(b)所示(仅在簇内部生成样本);事实上,模型中该过程的关键点就是如何选择合适的k值,如果k聚类过小,则每个簇类中可能只有少数几个样本点,则簇内过采样实际上与重复数据差距不大,如图2(c)所示;而如果聚类簇数过少,则仍可能会导致噪音数据点的产生,如图2(d)所示(在大簇b内生成样本,会与其中五角星形样本重合)。
70.本发明采用对模型超参数的选择采用数据点到质心的离散程度与簇内样本离散熵联合目标泛函方式确定,具体过程如下:
71.设k从k_min到k_max变化,每次进行迭代后计算如下两个值:
72.1)每个簇内各个数据点到质点的平均距离dis_a_k;
73.2)每个簇内所有具有样本标签的数据的熵值dis_b_k;
74.3)计算该次试验下的误差函数,误差函数定义为:dis_k=0.5*dis_a_k/dis_a_k_min+0.5*dis_b_k/dis_b_k_min。
75.根据上述过程能够得到一个关于误差函数数值dis_k与k之间的关系曲线,选择该关系曲线的拐点作为较为合适的k值,如图3所示为某一实验中的关系曲线,根据图中拐点位置,选择k为25时为较优超参数。
76.本发明采用自动确定最优簇数的聚类方法,利用聚类代价曲线拐点的方法,保证了聚类的有效性,即合理的簇数和簇内样本数,同时有效降低了人工反复测试的工作量。
77.基于上述任一实施例,所述基于自适应随机码生成算法,对所述样本聚类结果进行多样本混合平均处理,得到所述样本优化结果,具体包括:
78.确定所述样本聚类结果中每个样本的随机码;
79.对同一簇内具有相同随机码的样本进行平均采样生成新样本;
80.基于预设加盐迭代处理算法对所述新样本进行处理,获得所述样本优化结果。
81.其中,所述确定所述样本聚类结果中每个样本的随机码,具体包括:
82.对每个样本生成唯一id,采用预设迭代次数对所述唯一id进行加盐,得到加盐id;
83.基于md5加密算法对所述加盐id进行编码,提取前预设位数的数据除预设长度的余数作为所述随机码。
84.其中,所述基于预设加盐迭代处理算法对所述新样本进行处理,获得所述样本优化结果,具体包括:
85.采用所述新样本所在簇中id最大值加预设迭代次数加盐进行处理,生成新样本id,基于所述新样本id获得新随机码;
86.当样本新增量小于全量样本的预设比值时,所述样本新增量进行自增长。
87.具体地,由于运营商大数据的体量巨大,建模采用的样本数据量也在百万数据量左右,基于常规的map-reduce框架的大数据处理技术在排序等涉及到数据混洗场景下的计算效率会大打折扣。如果将smote直接在spark下实现,编程难度和计算量都会增加,因此本发明提出自适应的随机码生成的方式,采用多样本混合平均的方式生成新样本,具体如下:
88.首先是随机码的生成,对每个样本生成唯一id,如运营商数据的手机号或者一般数据中的自增id等,利用迭代次数进行加盐,采用md5加密方式对加盐id进行编码,为保证具有充分的随机性,取前n位数据除m的余数为该条记录随机码,除此迭代定义n=1,该处取各位除m的余数作为随机码是为了避免在扩展随机码长度后导致的大量重复数据:
89.m《16,m过大,会导致同一随机码下样本数过少,效果接近一般过采样;m过小,扩充随机码长度对迭代效率提升不明显;在实际应用中一般取m=4。
90.其次是多样本过采样,对同一簇内的具有相同随机码的样本进行平均生成新样本,即使该随机码下只有一个样本,也允许其生成,即生成的新样本数据中与原有数据存在一定重复,在与原有样本集合整合时可以选择是否保留重复数据。
91.再次是对新样本生成id的策略采用该簇中id最大值加迭代次数加盐的方式生成,结合每次迭代不同的加盐方式,保证迭代过程不会陷入死循环,同时提高生成样本的随机性,此处的极端情况为,在n长度过长时,每个样本都具有不同的随机码,生成的新样本数据都为已有数据的重复,采用不同的生成方案能够在一定程度避免该问题。
92.如果采用的样本随机码过短,可能存在同一簇内的所有样本都具有相同的随机
码,该情况下每次样本新增量为聚类后的簇数目。为了保证迭代效率,给出一种自适应的随机码定义方案:当样本新增量小于全量样本10%时,n实现自增。
93.本发明采用的自适应随机码生成算法,避免了在样本周围查找距离最小的同类别点过程,因此能够大大减少全量数据混洗交换的过程,有效减少了实际集群中不同机器间数据交换导致的带宽压力。
94.基于上述任一实施例,所述基于优化的smote算法和聚类算法,优化所述建模数据样本,得到样本优化结果,还包括:
95.采用spark sql语句实现样本数据的整合。
96.可以理解的是,本发明所提出的算法符合数据库sql的实现方案,能够直接采用spark sql的形式进行样本数据的整合,如果在实际应用中,根据是否保留重复数据,可以方便地选择union或union all进行数据整合,具体算法为:
97.algorithm一种优化的smote算法及其在spark下的实现
98.输入:含聚类标签的样本数据d、目标样本数量
99.n=1,m=4,i=0
100.while不满足迭代停止条件(样本量小于目标样本量){
101.对每个样本生成唯一id
102.生成加盐随机码c=substr(md5(concat(id,i))1,n).%4
103.按照簇内具有同一随机码的样本平均获取新样本,组合成为新样本数据集合:
[0104][0105]
输出:样本扩充后的数据
[0106]
本发明通过将整个核心实现过程转化为sql语言,实现对保留重复数据与否的灵活处理。
[0107]
基于上述任一实施例,将上述方案应用到精准营销应用场景中,实际样本数据量为300:9000;模型初始参数定义为n=1;m=4,采用允许重复数据的策略。采用聚类簇数自动确定方案,将原有样本划分为6簇。经过优化的smote处理后,样本量随迭代次数变化曲线如图4所示,在11次迭代内,样本数据由300扩充到8909条。随机码长度n在地5次迭代后长度增加,相应样本数量扩充速度明显增加,说明了本方案中的样本扩充方案和自适应随机码生成方法的有效性。将上述样本输入到机器学习方法中,与传统的上采样方案项目,模型在验证集(与测试集和训练集完全独立)泛化能力提高10%左右。
[0108]
下面对本发明提供的spark框架中的样本优化装置进行描述,下文描述的spark框架中的样本优化装置与上文描述的spark框架中的样本优化方法可相互对应参照。
[0109]
图5是本发明提供的spark框架中的样本优化装置的结构示意图,如图5所示,包括:获取模块51和优化模块52;其中:
[0110]
获取模块51用于获取预设场景中的建模数据样本;优化模块52用于基于优化的smote算法和聚类算法,优化所述建模数据样本,得到样本优化结果。
[0111]
本发明结合优化后的smote算法以及聚类算法,有效处理样本生成过程中的噪音问题,使得样本扩充更具有普适性,适于在大数据框架下实现。
[0112]
基于上述任一实施例,所述优化模块52包括聚类子模块521和优化子模块522,其中:
[0113]
聚类子模块521用于采用最优聚类簇数确定算法,对所述建模数据样本中的噪音样本进行去除,得到样本聚类结果;优化子模块522用于基于自适应随机码生成算法,对所述样本聚类结果进行多样本混合平均处理,得到所述样本优化结果。
[0114]
基于上述任一实施例,所述聚类子模块521具体用于:
[0115]
确定聚类中的预设k值,以及所述预设k值的区间范围;
[0116]
获取每个簇内各个数据点到质点的平均距离,以及每个簇内具有样本标签的数据对应的熵值;
[0117]
基于所述平均距离、所述平均距离的最小值、所述熵值和所述熵值的最小值,得到误差函数;
[0118]
获得所述误差函数与所述预设k值的关系曲线,提取所述关系曲线的拐点作为超参数;
[0119]
基于所述关系曲线在所述超参数下的取值进行样本聚类,得到所述样本聚类结果。
[0120]
基于上述任一实施例,所述确定聚类中的预设k值,以及所述预设k值的区间范围,具体包括:
[0121]
确定所述样本聚类结果中每个样本的随机码;
[0122]
对同一簇内具有相同随机码的样本进行平均采样生成新样本;
[0123]
基于预设加盐迭代处理算法对所述新样本进行处理,获得所述样本优化结果。
[0124]
基于上述任一实施例,所述确定所述样本聚类结果中每个样本的随机码,具体包括:
[0125]
对每个样本生成唯一id,采用预设迭代次数对所述唯一id进行加盐,得到加盐id;
[0126]
基于md5加密算法对所述加盐id进行编码,提取前预设位数的数据除预设长度的余数作为所述随机码。
[0127]
基于上述任一实施例,所述基于预设加盐迭代处理算法对所述新样本进行处理,获得所述样本优化结果,具体包括:
[0128]
采用所述新样本所在簇中id最大值加预设迭代次数加盐进行处理,生成新样本id,基于所述新样本id获得新随机码;
[0129]
当样本新增量小于全量样本的预设比值时,所述样本新增量进行自增长。
[0130]
基于上述任一实施例,所述优化模块52还包括整合子模块523,所述整合子模块
523用于采用spark sql语句实现样本数据的整合。
[0131]
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(communicationsinterface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行spark框架中的样本优化方法,该方法包括:获取预设场景中的建模数据样本;基于优化的smote算法和聚类算法,优化所述建模数据样本,得到样本优化结果。
[0132]
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0133]
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的spark框架中的样本优化方法,该方法包括:获取预设场景中的建模数据样本;基于优化的smote算法和聚类算法,优化所述建模数据样本,得到样本优化结果。
[0134]
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的spark框架中的样本优化方法,该方法包括:获取预设场景中的建模数据样本;基于优化的smote算法和聚类算法,优化所述建模数据样本,得到样本优化结果。
[0135]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0136]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0137]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和
范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1