发明内容
本申请提供了一种数据处理方法,针对海量的数据实现自动匹配以及优化处理,从中筛选最优数据组合,从而提高数据处理效率。该方法包括:
根据各所述数据处理单元的数据集对应的适应度值确定各所述数据处理单元的选择概率值;
根据各所述数据处理单元的选择概率值从各所述数据处理单元中选择用于交叉处理的数组;
根据预设的算法对所述数组进行处理,以获取最优数据组合。
优选地,在根据与各所述数据处理单元中的数据集所对应的适应度值确定与各所述数据处理单元对应的选择概率值之前,还包括:
在所述数据处理单元存储所述数据集以及一个随机生成的数组;
根据所述数据处理单元中的数据集生成与所述数据处理单元对应的适应度值。
优选地,所述算法具体为遗传算法,在根据预设的算法对所述数组进行处理之后,还包括:
判断当前进程遗传算法处理的次数是否超过预设的阈值,
若是,将所述遗传算法处理后的数组作为最优特征;
若否,根据各所述数据处理单元对应的选择概率值从各所述数据处理单元中选择用于交叉处理的数组。
优选地,根据预设的算法对所述数组进行处理,具体为:
对所述数组进行交叉处理;
将进行交叉处理后的数组进行变异处理。
相应地,本申请还提出了一种数据处理设备,所述系统包括多个数据处理单元,还包括:
确定模块,根据各所述数据处理单元的数据集对应的适应度值确定各所述数据处理单元的选择概率值;
选择模块,根据各所述数据处理单元的选择概率值从各所述数据处理单元中选择用于交叉处理的数组;
处理模块,根据预设的算法对所述数组进行处理,以获取最优数据组合。
优选地,还包括:
生成模块,在所述数据处理单元存储所述数据集以及一个随机生成的数组,并根据所述数据处理单元中的数据集生成与所述数据处理单元对应的适应度值。
优选地,所述算法具体为遗传算法,还包括:
判断模块,判断当前进程遗传算法处理的次数是否超过预设的阈值,
若是,所述判断模块将所述遗传算法处理后的数组作为最优特征;
若否,所述判断模块根据各所述数据处理单元对应的选择概率值从各所述数据处理单元中选择用于交叉处理的数组。
优选地,所述处理模块具体用于:
对所述数组进行交叉处理;
将进行交叉处理后的数组进行变异处理。
由此可见,通过应用本申请的技术方案,在根据与数据处理设备中的各数据处理单元中的数据集所对应的适应度值确定与各数据处理单元对应的选择概率值之后,根据各数据处理单元对应的选择概率值从各数据处理单元中选择用于交叉处理的数组,随后根据遗传算法对数组进行处理。从而能够针对海量数据集分布式实现每一步迭代过程,提高了数据处理效率。
具体实施方式
如背景技术所述,在机器学习的实际应用中,特征数量往往较多,其中可能存在不相关的特征,特征之间也可能存在相互依赖,容易在导致训练时间过长的同时使得模型无法生成准确的处理结果。然而传统的特征选择过程需要在p个变量中尝试2^p种组合,并对每一种组合进行建模以寻找最优模型(拥有最佳AUC、BIC或R^2等指标的模型)。在面对海量数据的情况下,传统的特征选择算法往往效率过低,无法有效地对实际需要的特征数据进行筛选。
有鉴于上述技术问题,本申请所提出了一种数据处理方法,通过将待处理的数据划分为数据集并分布于多个数据处理单元中,并将每一次建模以及计算指标的过程进行分布式处理,从而绕开了单个处理设备计算能力和存储能力的瓶颈,提高了数据处理效率。
如图1所示,该方法应用于包括多个数据处理单元的数据处理设备中,包括以下步骤:
S101,根据各所述数据处理单元的数据集对应的适应度值确定各所述数据处理单元的选择概率值。
遗传算法是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法,它借鉴了达尔文的进化论和孟德尔的遗传学说;它能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应的控制搜索过程以求得最优解。在遗传算法中有一个重要的变量称为适应度(适应度),其用于评价某个染色体的适应度,一般遗传向着高适应度的方向进行繁殖,适应度高的染色体参与繁殖的机会更高,后代就会越多,适应度低的个体参与繁殖的机会比较少,后代越来越少。
因此,在本申请的技术方案中,基于各个数据处理单元中的数据集的适应度值确定与其对应的选择概率值。由于各个数据处理单元被选中的概率与其适应度值值大小成正比,该选择概率值为后续某个数据处理单元在当前所有的数据处理单元之间被选择用于进行下一步处理的概率(各个数据处理单元被选中的概率与其适应度值大小成正比)。
由于适应度值可以通过计算适应度的函数结合具体的数值得到,因此在具体的实施例中,各个数据处理单元的适应度值的获取方式以及类型都可以根据实际情况灵活进行设置,举例来说,在传统机器学习解决的建模问题中,回归问题可以采用线性回归、SVM回归等方式进行建模,同时以BIC、RSE或regularizedR2等指标设定为适应度的值;对于分类问题可以采用逻辑回归、决策树等方式进行建模,同时以AUC、误判率等指标设定为适应度的值;对于聚类问题可以采用DBI、Modularity或Silhouette index等指标设定为适应度的值;对于排序问题可以采用MAP、NDCG或Kendall's Tau等指标设定为适应度的值,技术人员可在此基础上进一步进行拓展,这些都属于本申请的保护范围。
如图2所示,为本申请具体实施例中进行遗传算法处理的示意图,每一个计算机作为一个worker,每一个worker上存放着三个对象:数据集、计算适应度的函数、数组,其中数据集在每一个worker上均有一个拷贝用于建模,相应地,根据各个数组进行特征选择的转换逻辑如图3所示。
S102,根据各所述数据处理单元的选择概率值从各所述数据处理单元中选择用于交叉处理的数组。
基于S101具体实施例中的示意图,假设当前存在的数据处理单元的数量为n,每个数据处理单元xi的适应度值为f(xi),则该数据处理单元xi的选择概率如下:
基于上述选择概率,假设初始时存在A、B、C、D等4个数据处理单元,他们的适应度值值分别为4、3、2、1。那么当选择用于进行后续处理的最优化数据组合的时候,有0.4的概率选择数据处理单元A、0.3的概率选择数据处理单元B、0.2的概率选择数据处理单元C、0.1的概率选择数据处理单元D。即后续用于处理的数据处理单元组合可能是A、A、B、D,也可能是B、C、D、B(只是概率会比较小)。
S103,根据预设的算法对所述数组进行处理,以获取最优数据组合。
在经过S101以及S102完成新的种群生成后,该步骤即开始两数组之间的交叉处理(Crossover)。特别地,在本申请的优选实施例中,此处在分布式实现时约定奇数worker通知偶数worker进行交叉(若整体数量大小Population为奇数,则最大的worker不产生Crossover),如worker1将它的数组发送给worker2,worker2将它的数组发送给worker1,在进入下一次处理前进行Crossover。
此外,为了进一步提高数据处理的准确性,在交叉(Crossover)结束之后在进入下一次处理之前开始变异(Mutation)处理,在本申请优选的实施例中,首先对所述数组进行交叉处理,随后将进行交叉处理后的数组进行变异处理。
这样不断重复以上过程n次,即完成n次处理的迭代后终止并输出最佳的数组和适应度相关的信息。因此,在该步骤之后,本申请优选实施例还将判断当前进程遗传算法处理的次数是否超过预设的阈值,若是则将所述遗传算法处理后的数组作为最优特征;若否则根据各所述数据处理单元对应的选择概率值从各所述数据处理单元中选择用于交叉处理的数组。
通过采用以上技术方案,可以在潜在的特征组合中逐次产生一个近似最优解的方案,并在有限时间中从2p种特征组合中寻找到近似最优的组合,从而在面对海量数据的情况下,能够有效地从中选择出获取最优数据组合,提高数据处理效率。
为了进一步阐述本申请的技术思想,现结合具体的应用场景,对本申请的技术方案进行说明。遗传算法在实际的工业应用中存在着非常多的应用,以下举大数据指数基金为例来说明遗传算法的应用。
大数据指数基金利用大数据的优势尝试利用数据预测大盘、行业、企业的股价走势,往往拥有超过一半经验性选股的优势。在利用已有数据预测股价为机器学习中典型的回归问题,即利用海量特征去尝试预测一个连续变量的值,而当回归问题面临海量特征的时候,往往会由于噪声特征而影响预测准确率,那么如何筛选出最重要的一部分特征即能够减少运算量的同时保证高的准确率。
传统的重要特征的选择方法有IV、WOE、信息熵等,利用排名筛选出前10、前20进行预测,这样能保证预测的准确率略有提升;那么如何寻找一组的特征组合,让这样的特征组合建出的模型具有全局最优的准确率则是现有技术需要迫切解决的问题,保证全局最优的一组特征组合能够找到最佳的全局最优准确率,即全局最优的基金回报率。
在利用本申请的技术方案寻找全局最优的一组特征组合的过程中,遗传算法则具有低计算量、高准确率的优势,在大数据指数基金这个案例中,该具体实施例将数据集拆分成80%和20%,80%作为模型训练,20%作为模型验证;其中每选定一组特征,80%的数据集用于建模,目标变量为股价,20%的数据集用于预测并计算RMSE(均方根误差,即适应度函数);利用遗传算法进行一代代演变的过程中,RMSE会越来越小,最终收敛到全局最优,那么此时即得到了最优的那一组特征。
由此可见,当面临的数据量大到无法利用单机去建模的时候,可基于本申请的数据处理方法选择分布式集群进行迭代并寻找最优特征组合的方法,从而能够利用海量的数据寻找全局最优的特征组合,进而得到高收益率的大数据指数基金产品。
为达到以上技术目的,本申请还提出了一种数据处理设备,如图4所示,所述系统包括多个数据处理单元,还包括:
确定模块410,根据各所述数据处理单元的数据集对应的适应度值确定各所述数据处理单元的选择概率值;
选择模块420,根据各所述数据处理单元的选择概率值从各所述数据处理单元中选择用于交叉处理的数组;
处理模块430,根据预设的算法对所述数组进行处理,以获取最优数据组合。
在具体的应用场景中,还包括:
生成模块,在所述数据处理单元存储所述数据集以及一个随机生成的数组,并根据所述数据处理单元中的数据集生成与所述数据处理单元对应的适应度值。
在具体的应用场景中,所述算法具体为遗传算法,还包括:
判断模块,判断当前进程遗传算法处理的次数是否超过预设的阈值,
若是,所述判断模块将所述遗传算法处理后的数组作为最优特征;
若否,所述判断模块根据各所述数据处理单元对应的选择概率值从各所述数据处理单元中选择用于交叉处理的数组。
在具体的应用场景中,所述处理模块具体用于:
对所述数组进行交叉处理;
将进行交叉处理后的数组进行变异处理。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本申请序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。