CN109840551B - 一种用于机器学习模型训练的优化随机森林参数的方法 - Google Patents
一种用于机器学习模型训练的优化随机森林参数的方法 Download PDFInfo
- Publication number
- CN109840551B CN109840551B CN201910030755.9A CN201910030755A CN109840551B CN 109840551 B CN109840551 B CN 109840551B CN 201910030755 A CN201910030755 A CN 201910030755A CN 109840551 B CN109840551 B CN 109840551B
- Authority
- CN
- China
- Prior art keywords
- ant
- population
- lion
- spark
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种用于机器学***台下,寻优计算速度快,加速效果明显,可以作为云计算平台的下一代参数优化器。
Description
技术领域
本发明属于大规模机器学习模型训练领域,涉及一种用于机器学习模型训练的优化随机森林参数的方法,具体是涉及一种用于机器学习模型训练的基于Spark的并行蚁狮算法优化随机森林参数的方法。
背景技术
近年来随着信息数据的急剧增长,机器学***与所求解问题的函数形式密切相关。群智能算法作为一种模仿生物群体行为的随机搜索算法,自从提出以来一直受到广泛的关注和应用。不同种群智能算法具有不同的理论依据以及实现步骤,蚁狮算法(The Ant Lion Optimizer,ALO)是Seyedali Mirjalili于2015年提出的一种新型元启发式群智能算法。该算法的灵感来自于大自然中蚁狮幼虫的觅食行为,主要通过蚂蚁围绕在随机选择的蚁狮周围进行随机游走从而实现全局搜索。在国外已被成功应用于杆系结构优化、无用功的配电问题、多层神经网络训练、对线性离散滤波器进行高效建模以及无人机的航线规划问题等领域。
而随机森林作为一种新型集成分类器,不仅实现简单,而且还可以处理高维数据并快速得到分类结果。算法中需要用户设置的参数相对较少,相对于其他传统分类方法具有良好的鲁棒性,因而在分类问题中受到广泛关注。但为了进一步提高分类精度和效率,通过对随机森林算法关键参数进行优化,可以实现在随机森林分类运行效率可接受范围内的更高分类精度。因此随机森林分类的参数优化成为提高分类精度的一个可行途径。
但是由于传统智能算法在单处理器环境下,只能以串行方式实现并行搜索,这种方式已经不适合大数据时代下大规模增长的数据集。云计算技术的兴起为蚁狮算法的并行化实现提供了一个很好解决思路,其融合了并行计算和分布式计算等技术,并且在大规模异构数据存储和逻辑计算方面具有卓越的性能表现。
发明内容
为了克服上述现有技术的不足,本发明旨在提供一种用于机器学习模型训练的基于Spark的并行蚁狮算法优化随机森林参数的方法。
本发明的方法所采用的技术方案是:一种用于机器学习模型训练的优化随机森林参数的方法,其特征在于,包括以下步骤:
步骤1:将采集到的训练集数据存储到分布式文件***中,其存储路径为变量path;
步骤2:采用蚁狮算法对随机森林的参数进行全局优化寻优,得到优化的参数组合;
具体实现包括以下子步骤:
步骤2.1:在主节点Spark Drive上,初始化整个种群的信息,包括初始蚂蚁种群数量、初始蚁狮种群数量以及种群的最大迭代次数;
步骤2.2:初始化SparkContext为变量sc,并利用spark函数textFile读取数据集路径path获得分布式训练数据集,为变量DataRDD;
步骤2.3:针对初始蚁狮种群,根据适应值函数计算每个蚁狮个体适应值,并选择最大适应值个体为初代精英蚁狮;
步骤2.4:利用spark函数parallelize将整个初始蚂蚁种群并行化为分布式蚁群,为变量antRDD;
步骤2.5:将每一个蚂蚁子种群对应变量antRDD中的每一个分区,并在每一个分区中指定独立进化;
步骤2.6:在从节点Worker上进行并行蚂蚁子种群寻优求解,完成整个蚂蚁种群的位置信息更新;
步骤3:将各分区的蚂蚁子种群从各个从节点Worker汇集到主节点Spark Driver上进行合并,得到更新后的下一代蚂蚁种群;
步骤4:根据适应值所决定的规则,在主节点Spark Driver上比较蚁狮种群和蚂蚁种群的适应值,进而完成整个蚁狮种群位置的更新,生成优胜劣汰后的下一代蚁狮群体,同时判断精英蚁狮个体是否需要更新;
步骤5:将更新后的蚁狮种群和精英蚁狮的信息重新广播到各个从节点Worker上;
步骤6:判断蚁狮种群迭代是否达到最大迭代次数;
若否,则重新返回步骤2.4;
若是,则返回最后的精英蚁狮,即为当前蚁狮算法寻找到的最优解。
本发明利用Spark集群基于内存分布式运算的特性,把蚂蚁种群划分成多个蚂蚁子种群分布在集群各个节中实现并行运算。相比于传统的网格搜索,基于Spark的并行蚁狮算法可以高效找到更优参数组合以提高随机森林的分类精度,且在大数据分布式Spark平台下,寻优计算速度快,加速效果明显,可以作为云计算平台的下一代参数优化器。
附图说明
图1为本发明实施例的流程图;
图2为本发明实施例的并行搜索流程图;
图3为本发明实施例的基于Spark的蚁狮算法架构图;
图4为本发明实施例的基于Spark的蚁狮算法中随机森林原理图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
请见图1和图2,本发明提供的一种用于机器学习模型训练的优化随机森林参数的方法,其特征在于,包括以下步骤:
步骤1:将采集到的训练集数据存储到HDFS分布式文件***中,其存储路径为变量path,以美国一家信用贷款公司LendingClub为例,其借贷数据可以从官网获得;
步骤2:采用蚁狮算法对随机森林的参数进行全局优化寻优,得到优化的参数组合;
具体实现包括以下子步骤:
步骤2.1:在主节点Spark Drive上,初始化整个种群的信息,包括初始蚂蚁种群数量、初始蚁狮种群数量以及种群的最大迭代次数;
步骤2.2:初始化SparkContext为变量sc,并利用spark函数textFile读取数据集路径path获得分布式训练数据集,为变量DataRDD;
步骤2.3:针对初始蚁狮种群,根据适应值函数计算每个蚁狮个体适应值,并选择最大适应值个体为初代精英蚁狮;
具体实现包括以下子步骤:
步骤2.3.1:利用spark函数broadcast广播需要计算适应值的种群pop到各个从节点Worker上,为变量popbro;
步骤2.3.2:在分布式数据集DataRDD上,获得当前分区中的所有数据的特征值X和对应的数据标签Y;
步骤2.3.3:在分布式数据集DataRDD上,在当前分区中从广播变量popbro获取整个种群,为变量pop;
步骤2.3.4:在每个分区中依次遍历种群pop,使用随机森林计算每个个体的适应值;在计算适应值时,采用如下适应值函数:
fitness=w1*OOBscore+w2*feature-1
其中:w1表示分类精度的权重;OOBscore为随机森林特征子集划分的OOB评分;w2表示特征比例编码倒数的权重;feature为特征比例编码;这样设计的意义在于,所的参数在大规模数据集上训练模型时希望能兼顾模型的准确率和模型的训练速度;
步骤2.3.6:对针对每个个体,利用函数reduce对所有分区的适应值取平均值,作为最后个体的适应值;
步骤2.3.7:对当前蚁狮适应度值按照降序排列,将排名第一的蚁狮信息记录初代精英蚁狮;
步骤2.4:利用spark函数parallelize将整个初始蚂蚁种群并行化为分布式蚁群,为变量antRDD;
具体实现包括以下子步骤:
步骤2.4.1:利用spark函数broadcast广播初代蚁狮种群和对应的适应值;
步骤2.4.2:按照蚁群规模,创建对每个蚂蚁个体创建编号,为[1,2,3,4…n];
步骤2.4.3:利用spark函数parallelize将蚁群并行化为分布式蚂蚁种群,为变量antRDD。
步骤2.5:将每一个蚂蚁子种群对应变量antRDD中的一个分区,并在每一个分区中指定独立进化;
具体实现包括以下子步骤:
步骤2.5.1:在分布式蚂蚁种群antRDD上利用spark函数mapPartitionsWithIndex进行各分区并行全局寻优;
步骤2.5.2:在各个分区上根据蚁狮适应值,由轮盘赌获得捕食者蚁狮RA;
步骤2.5.3:根据阿基米德螺线公式,模拟蚂蚁被蚁狮沿着旋涡状收敛路线逐渐被捕获的场景:
式中:为第t代捕获蚂蚁的蚁狮第j维的位置; 为蚂蚁与捕获它的蚁狮以及精英蚁狮之间权重距离和;w1和w2分别为捕食者蚁狮和精英蚁狮的距离影响因子;b为螺旋曲线常数;t为当前代迭代次数;T为最大迭代次数;rand为[0,1]之间的随机数;t′∈[-2,1],且随迭代次数t变化;
步骤2.5.4:利用spark函数collectc将从节点Worker各个分区中更新后的结果返回到主节点Spark Driver,各分区结果包含键值对(partitionIndex,Antpop),其中partitionIndex为分区号,Antpop为更新后的子种群;
步骤2.5.5:合并蚂蚁子种群,在主节点Spark Driver上比较蚁狮种群和蚂蚁种群的适应值,完成蚁狮种群位置的更新。
步骤2.6:在从节点Worker上进行并行蚂蚁子种群寻优求解,完成整个蚂蚁种群的位置信息更新;
步骤3:将各分区的蚂蚁子种群从各个从节点Worker汇集到主节点Spark Driver上进行合并,得到更新后的下一代蚂蚁种群;
步骤4:根据适应值所决定的规则,在主节点Spark Driver上比较蚁狮种群和蚂蚁种群的适应值,进而完成整个蚁狮种群位置的更新,生成优胜劣汰后的下一代蚁狮群体,同时判断精英蚁狮个体是否需要更新;
步骤5:将更新后的蚁狮种群和精英蚁狮的信息重新广播到各个从节点Worker上;
步骤6:判断蚁狮种群迭代是否达到最大迭代次数;
若否,则重新返回步骤2.4;
若是,则返回最后的精英蚁狮,即为当前蚁狮算法寻找到的最优解。
请见图3,为本实施例的基于Spark的蚁狮算法架构图。第一层是计算所需数据的采集;第二层是Hadoop HDFS提供的大规模分布式文件存储服务;第三层包含了Spark最核心的功能和分布式算子,其中涵盖支持结构化数据查询与分析的查询引擎Spark SQL、分布式机器学习库Spark MLlib、并行图计算框架Graph X、流计算框架Spark Streaming四个模块;第四层则是蚁狮算法针对随机森林进行超参数寻优,各子种群并行搜索交换信息,最后完成最优蚁狮寻找的过程。
请见图4,为本实施例的基于Spark的蚁狮算法中随机森林原理图,首先从输入的训练集中采取有放回的抽样,构造子数据集。然后利用子数据集来构建单颗子决策树。最后针对新的测试数据需要通过随机森林得到分类结果,按照子决策树的判断结果,选择出现次数最多的类别为最终随机森林的输出结果了。
应当理解的是,本说明书未详细阐述的部分均属于现有技术。
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
Claims (3)
1.一种用于机器学习模型训练的优化随机森林参数的方法,其特征在于,包括以下步骤:
步骤1:将采集到的训练集数据存储到分布式文件***中,其存储路径为变量path;
步骤2:采用蚁狮算法对随机森林的参数进行全局优化寻优,得到优化的参数组合;
具体实现包括以下子步骤:
步骤2.1:在主节点Spark Drive上,初始化整个种群的信息,包括初始蚂蚁种群数量、初始蚁狮种群数量以及种群的最大迭代次数;
步骤2.2:初始化SparkContext为变量sc,并利用spark函数textFile读取数据集路径path获得分布式训练数据集,为变量DataRDD;
步骤2.3:针对初始蚁狮种群,根据适应值函数计算每个蚁狮个体适应值,并选择最大适应值个体为初代精英蚁狮;
步骤2.3的具体实现包括以下子步骤:
步骤2.3.1:利用spark函数broadcast广播需要计算适应值的种群pop到各个从节点Worker上,为变量popbro;
步骤2.3.2:在分布式数据集DataRDD上,获得当前分区中的所有数据的特征值X和对应的数据标签Y;
步骤2.3.3:在分布式数据集DataRDD上,在当前分区中从广播变量popbro获取整个种群,为变量pop;
步骤2.3.4:在每个分区中依次遍历种群变量pop,使用随机森林计算每个个体的适应值;在计算适应值时,采用如下适应值函数:
fitness=w1*OOBscore+w2*feature-1
其中:w1表示分类精度的权重;OOBscore为随机森林特征子集划分的OOB评分;w2表示特征比例编码倒数的权重;feature为特征比例编码;
步骤2.3.6:对针对每个个体,利用函数reduce对所有分区的适应值取平均值,作为最后个体的适应值;
步骤2.3.7:对当前蚁狮适应度值按照降序排列,将排名第一的蚁狮信息记录初代精英蚁狮;
步骤2.4:利用spark函数parallelize将整个初始蚂蚁种群并行化为分布式蚂蚁种群,为变量antRDD;
步骤2.5:将每一个蚂蚁子种群对应变量antRDD中的每一个分区,并在每一个分区中指定独立进化;
步骤2.6:在从节点Worker上进行并行蚂蚁子种群寻优求解,完成整个蚂蚁种群的位置信息更新;
步骤3:将各分区的蚂蚁子种群从各个从节点Worker汇集到主节点Spark Driver上进行合并,得到更新后的下一代蚂蚁种群;
步骤4:根据适应值所决定的规则,在主节点Spark Driver上比较蚁狮种群和蚂蚁种群的适应值,进而完成整个蚁狮种群位置的更新,生成优胜劣汰后的下一代蚁狮群体,同时判断精英蚁狮个体是否需要更新;
步骤5:将更新后的蚁狮种群和精英蚁狮的信息重新广播到各个从节点Worker上;
步骤6:判断蚁狮种群迭代是否达到最大迭代次数;
若否,则重新返回步骤2.4;
若是,则返回最后的精英蚁狮,即为当前蚁狮算法寻找到的最优解。
2.根据权利要求1所述的用于机器学习模型训练的优化随机森林参数的方法,其特征在于,步骤2.4的具体实现包括以下子步骤:
步骤2.4.1:利用spark函数broadcast广播初代蚁狮种群和对应的适应值;
步骤2.4.2:按照蚁群规模,创建对每个蚂蚁个体创建编号,为[1,2,3,4…n];
步骤2.4.3:利用spark函数parallelize将蚁群并行化为分布式蚂蚁种群,为变量antRDD。
3.根据权利要求1所述的用于机器学习模型训练的优化随机森林参数的方法,其特征在于,步骤2.5的具体实现包括以下子步骤:
步骤2.5.1:在分布式蚂蚁种群antRDD上利用spark函数mapPartitionsWithIndex进行各分区并行全局寻优;
步骤2.5.2:在各个分区上根据蚁狮适应值,由轮盘赌获得捕食者蚁狮RA;
步骤2.5.3:根据阿基米德螺线公式,模拟蚂蚁被蚁狮沿着旋涡状收敛路线逐渐被捕获的场景:
式中:为第t代捕获蚂蚁的蚁狮第j维的位置; 为蚂蚁与捕获它的蚁狮以及精英蚁狮之间权重距离和;w1和w2分别为捕食者蚁狮和精英蚁狮的距离影响因子;b为螺旋曲线常数;t为当前代迭代次数;T为最大迭代次数;rand为[0,1]之间的随机数;t′∈[-2,1],且随迭代次数t变化;
步骤2.5.4:利用spark函数collectc将从节点Worker各个分区中更新后的结果返回到主节点Spark Driver,各分区结果包含键值对(partitionIndex,Antpop),其中partitionIndex为分区号,Antpop为更新后的子种群;
步骤2.5.5:合并蚂蚁子种群,在主节点Spark Driver上比较蚁狮种群和蚂蚁种群的适应值,完成蚁狮种群位置的更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910030755.9A CN109840551B (zh) | 2019-01-14 | 2019-01-14 | 一种用于机器学习模型训练的优化随机森林参数的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910030755.9A CN109840551B (zh) | 2019-01-14 | 2019-01-14 | 一种用于机器学习模型训练的优化随机森林参数的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109840551A CN109840551A (zh) | 2019-06-04 |
CN109840551B true CN109840551B (zh) | 2022-03-15 |
Family
ID=66883810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910030755.9A Active CN109840551B (zh) | 2019-01-14 | 2019-01-14 | 一种用于机器学习模型训练的优化随机森林参数的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109840551B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111079935B (zh) * | 2019-10-16 | 2022-10-18 | 重庆邮电大学 | 一种spark下的机器学习快速大规模样本签名方法 |
CN110867224B (zh) * | 2019-10-28 | 2022-02-08 | 南通大学 | 用于大规模脑病历分割的多粒度Spark超信任模糊方法 |
CN112216341B (zh) * | 2020-09-16 | 2022-05-17 | 中国人民解放军国防科技大学 | 一种群体行为逻辑优化方法及计算机可读存储介质 |
CN114861531B (zh) * | 2022-04-25 | 2024-06-21 | 湖北工业大学 | 针对用户重复购买预测的模型参数优化方法及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239501A (zh) * | 2014-09-10 | 2014-12-24 | 中国电子科技集团公司第二十八研究所 | 一种基于Spark的海量视频语义标注方法 |
CN105550374A (zh) * | 2016-01-29 | 2016-05-04 | 湖南大学 | Spark云服务环境下面向大数据的随机森林并行机器学习方法 |
CN106056134A (zh) * | 2016-05-20 | 2016-10-26 | 重庆大学 | 一种基于Spark的半监督随机森林分类方法 |
CN108154174A (zh) * | 2017-12-22 | 2018-06-12 | 北京工业大学 | 一种基于核极限学习机及并行化的随机森林分类*** |
CN109142946A (zh) * | 2018-06-29 | 2019-01-04 | 东华大学 | 基于蚁群算法优化随机森林的变压器故障检测方法 |
-
2019
- 2019-01-14 CN CN201910030755.9A patent/CN109840551B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239501A (zh) * | 2014-09-10 | 2014-12-24 | 中国电子科技集团公司第二十八研究所 | 一种基于Spark的海量视频语义标注方法 |
CN105550374A (zh) * | 2016-01-29 | 2016-05-04 | 湖南大学 | Spark云服务环境下面向大数据的随机森林并行机器学习方法 |
CN106056134A (zh) * | 2016-05-20 | 2016-10-26 | 重庆大学 | 一种基于Spark的半监督随机森林分类方法 |
CN108154174A (zh) * | 2017-12-22 | 2018-06-12 | 北京工业大学 | 一种基于核极限学习机及并行化的随机森林分类*** |
CN109142946A (zh) * | 2018-06-29 | 2019-01-04 | 东华大学 | 基于蚁群算法优化随机森林的变压器故障检测方法 |
Non-Patent Citations (2)
Title |
---|
Cooperative ant colony-genetic algorithm based on spark;Dong Gaifang 等;《ELSEVIER》;20161006;第66-75页 * |
基于蚁群算法优化随机森林模型的汽车保险欺诈识别研究;闫 春 等;《保险研究 》;20170620;第114-127页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109840551A (zh) | 2019-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109840551B (zh) | 一种用于机器学习模型训练的优化随机森林参数的方法 | |
US20210390420A1 (en) | Machine learning optimisation method | |
CN106897374B (zh) | 一种基于轨迹大数据最近邻查询的个性化推荐方法 | |
CN104137095B (zh) | 用于演进分析的*** | |
CN104298778A (zh) | 一种基于关联规则树的轧钢产品质量的预测方法及*** | |
CN107291895A (zh) | 一种快速的层次化文档查询方法 | |
CN104504018A (zh) | 基于浓密树和自顶向下的大数据实时查询优化方法 | |
Sayyah et al. | Solving the vehicle routing problem with simultaneous pickup and delivery by an effective ant colony optimization | |
Elayidom et al. | A generalized data mining framework for placement chance prediction problems | |
Chen et al. | Efficient join order selection learning with graph-based representation | |
Hashemi et al. | A new particle swarm optimization algorithm for optimizing big data clustering | |
CN113918727A (zh) | 一种基于知识图谱和迁移学习的施工项目知识转移方法 | |
Sun et al. | Dynamic Intelligent Supply-Demand Adaptation Model Towards Intelligent Cloud Manufacturing. | |
CN108596390B (zh) | 一种解决车辆路径问题的方法 | |
CN117093885A (zh) | 融合分层聚类和粒子群的联邦学习多目标优化方法 | |
CN110097076A (zh) | 一种基于gpu架构的矢量道路网络匹配并行计算方法及装置 | |
CN114742593A (zh) | 一种物流仓储中心优化选址方法及*** | |
Ma et al. | Pbar: Parallelized brain storm optimization for association rule mining | |
Aung et al. | Discrete artificial bee colony algorithm for community detection in social networks | |
Vinh et al. | Incremental spatial clustering in data mining using genetic algorithm and R-tree | |
CN113505600B (zh) | 一种基于语义概念空间的工业产业链的分布式索引方法 | |
Li et al. | Ttnet: Tabular transfer network for few-samples prediction | |
Barr et al. | A new approach based on ants for solving the problem of horizontal fragmentation in relational data warehouses | |
Yang et al. | An improved weighted KNN algorithm about text classification based on spark framework | |
CN108763451B (zh) | 基于Spark Streaming的流式RDF数据并行推理算法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220524 Address after: 430000 Long'an, No. 38, MINYUAN Road, East Lake New Technology Development Zone, Wuhan City, Hubei Province Room 02, floor 11, unit a, Ganghui City Patentee after: Wuhan AGCO Software Technology Co.,Ltd. Address before: 430068 1, Lijia 1 village, Nanhu, Wuchang District, Wuhan, Hubei Patentee before: HUBEI University OF TECHNOLOGY |