没有合适的资源?快使用搜索试试~ 我知道了~
基于粒子群优化的参数选择软件包:PSPSO
=-=-软件X 15(2021)100706原始软件出版物PSPSO:一个基于粒子群优化的参数选择软件包Ali Haidara,b,Mr. P.,Matthew Fielda,b,Jonathan Sykesc,d,Martin P.,e,f,Lois Hollowaya,b,c,e,ga新南威尔士大学,利物浦,新南威尔士州2170,澳大利亚bIngham Institute for Applied Medical Research,Liverpool,NSW 2170,Australiac悉尼大学,Camperdown,NSW 2006,澳大利亚dBlacktown Hospital,Blacktown,NSW,2148,AustraliaUniversity of Wollongong,Wollongong,NSW 2500,澳大利亚fIlawara癌症护理中心,Wollongong,NSW 2500,澳大利亚gLiverpool and Macarthur Cancer Care Centers,Liverpool,NSW 2170,Australiaar t i cl e i nf o文章历史记录:接收28可以2020收到修订版2020年9月18日接受2021年保留字:机器学习参数选择粒子群优化自动化AutoMLa b st ra ct本文报道了一个高级Python包,用于选择机器学习算法和机器学习算法参数的集成,通过使用粒子群优化(PSO)算法命名为PSPSO。PSPSO的第一个版本支持四种算法:支持向量机(SVM),多层感知器(MLP),极端梯度提升(XGBoost)和梯度提升决策树(GBDT)。PSPSO为使用PSO构建机器学习算法提供了一个简单的框架,并为研究人员研究其选择方法提供了一个新的平台。此外,它为建立新的选择思想提供了基础,并可以很容易地扩展到支持其他算法。版权所有©2021作者。由爱思唯尔公司出版这是CC BY-NC-ND下的开放获取文章许可证(http://creativecommons.org/licenses/by-nc-nd/4.0/)。代码元数据当前代码版本v0.1.3此代码版本所用代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX_2020_230法律代码许可证MIT代码版本控制系统使用git软件代码语言使用python编译要求,操作环境&依赖Python 3.5,numpy 1.16.1,lightgbm,xgboost. scikit-learn>=0.21.2。Keras,如果可用,链接到开发人员文档/手册pyswarms> 1.0.2,matplotlib> 3.1.1,tensorflowhttps://ayhaidar.github.io/pspso/问题支持电子邮件a. unsw.edu.auhaidar@www.example.com/ali. outlook.com软件元数据当前软件版本v0.1.3此版本可执行文件的永久链接https://github.com/ayhaidar/pspso法律软件许可证MIT计算平台/操作系统Microsoft Windows,Linux安装要求&依赖Python 3.5、numpy 1.16.1、lightgbm、xgboost。scikit-learn>=0.21.2。Keras,用户手册pyswarms> 1.0.2,matplotlib> 3.1.1,tensorflowhttps://ayhaidar.github.io/pspso/问题支持电子邮件a. unsw.edu.auhaidar@www.example.com/ali. outlook.com地址:1 Campbell St,Liverpool NSW 2170,Australia电子邮件地址:a. unsw.edu.au(Ali Haidar)。https://doi.org/10.1016/j.softx.2021.1007061. 背景机器学习算法的使用已经在可以获得足够记录的领域中这些2352-7110/©2021作者。由爱思唯尔公司出版。这是一篇开放获取的文章,使用CC BY-NC-ND许可证(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxAli Haidar,Matthew Field,Jonathan Sykes etal.软件X 15(2021)1007062--=[客户端]=【日−−算法被用于分类、回归、异常检测和分割任务[1各个方面控制每个算法的性能,例如记录的质量、记录的数量、预处理技术、选择的算法和算法参数。每个机器学习算法都有一组影响其训练过程的参数。机器学习算法的参数选择一般采用人工搜索、随机搜索和网格搜索三种方法。人工搜索是根据经验选择算法参数建立模型的过程。开发人员/研究人员在参数选择方面的经验会影响整体培训结果。通过随机搜索,生成参数的随机组合,并检查以构建模型[5]。随机搜索是任意的,不遵循任何标准。通过网格搜索,可以检查所有可能的参数组合以构建模型。网格搜索被认为是耗时的,并且在训练具有大量记录的算法时很难使用。这描述了计算智能的趋势,即建立选择算法参数的新方法,其中包括使用进化算法、贝叶斯优化、RBF竞赛和群算法[6在基于进化的选择中,利用受自然进化启发的算法来选择机器学习算法参数。这包括模仿达尔文理论的遗传算法(GA)还提出了基于贝叶斯优化的方法来选择机器学习算法参数[7,11]。迭代F竞赛遵循迭代过程以从一组候选者中自动选择算法参数,并且被提出以克服当参数数量/每个参数的可能性数量变大时F竞赛算法中的缺点[12在基于群体的选择中,受社会行为启发的算法ing [15]。PSO已被广泛用于优化各种问题,将其视为黑箱,这使得它适合于参数选择[16PSO用于在图像分类任务中选择卷积神经网络参数[20]。CNN层是预定义的,而网络层的参数是基于PSO算法选择的。与手动搜索方法相比,获得了类似的性能。Sun等人利用PSO自动搜索卷积自动编码器的架构在图像分类任务中[21]。研究了四个图像数据集:CIFAR-10,MNIST,STL-10和Caltech-101,与替代品相比,所提出的方法获得了更好的分类精度。Yi提出了一个使用PSO训练深度神经网络的应用[22]。所提出的方法被部署在多个数据集,并进行了比较,一个随机搜索的方法,更好的结果被记录。PSO还用于选择SVM参数以确定石油采收率[23]。PSO还用于选择K-最近邻(KNN)的超参数,以估计爆炸引起的地面振动[8]。所提出的方法进行了比较,其他机器学习算法,其中更好的性能。这些研究大多没有提供关于重新实施这些选择方法的全面细节。因此,已经建立了一个差距,将开发的方法转化为其他研究小组可用的功能。此外,机器学习算法的使用已大幅增加,并正在其他研究领域(健康,金融,自然)进行研究。然而,选择机器需要专业知识学习算法参数。已经创建了几个软件包来处理机器学习参数选择,例如利用贝叶斯算法的hyperopt,包含多个优化器(包括PSO)的optunity,以及irace促进了迭代F-race及其变体的使用[11,24,25]。Optunity需要额外的任务,如添加目标函数和解码分类参数。此外,它没有通过迭代处理神经网络随机初始权重的生成,这可能导致通过多次迭代失去最佳网络。此后,我们提供了PSPSO,一个易于使用的高级Python包,用于使用PSO算法选择机器学习算法。2. 软件架构和功能为了构建机器学习模型,通常遵循几个步骤,如图所示。1.一、这包括:• 准备数据• 选择机器学习算法• 提供任务信息• 选择算法参数并建立模型在数据准备中,记录被预处理并分为训练、验证和测试数据集。在此阶段生成训练输入特征及其目标输出、验证输入特征及其目标输出以及测试输入特征及其目标输出。训练和验证数据集用于开发模型,而测试数据集用于评估模型的泛化性能。然后,选择机器学习算法的类型。已经创建了几种算法并应用于机器学习。这些算法的不同之处在于它们从数据中学习的方式然后提供诸如回归或分类的任务细节(任务信息)。评估指标也被指定来评估算法的性能。最后,选择参数。每个算法都有不同类型的参数,影响其整体性能。生成这些参数的组合并用于训练算法。对算法性能进行评估,以决定是否将其用作最终模型。PSPSO是一个使用PSO算法选择机器学习算法参数的软件包。PSPSO应用于参数2.1. 读取参数在PSPSO中,用户可以选择他/她打算探索的参数和/或范围,或者将加载和使用每个算法参数的默认值。 这些参数以JavaScriptObject Annotation(JSON)变量的形式提供给包函数,其方式与其他选择包(如网格/随机搜索)类似 在 scikit-learn 【26】: 参数P 1:[' a ',' b ',' c ',' d '],P 2:[0. 01,0。2,2],. . . .包函数将根据列表中的第一个值确定参数是分类的还是数值的如果参数是分类的,则列表中的所有值都将映射为0到n1,其中n是列表中的值的数量; 0表示下界,而n1表示该参数的上界。 用于例如P1如果参数是数值型的,则包含Ali Haidar,Matthew Field,Jonathan Sykes etal.软件X 15(2021)1007063[客户端]Fig. 1. 使用PSPSO进行参数选择。预计有三个值。第一个值是下限,第二个值是上限,第三个值是对参数值进行舍入的小数点为例如,P 2的值为0。1、0. 2, 2,则下限为0.1,上限为0.2,学习率的可能值将是0.1和0.2之间的任何值,小数点后2位用户可以指定他/她打算调查的参数的范围。2.2. 参数选择粒子群优化算法被广泛地应用于各种优化问题中,它将粒子群算法看作是一个黑箱,这使得它适用于参数的选择问题。我们的目标是找到一个参数的组合,导致具有最高性能的模型机器学习算法的参数被映射到维度为d的搜索空间,其中d是要探索的参数的数量。每个参数都有一个要搜索的值范围。已经实现了一个函数来将参数集映射到数值搜索空间中。粒子群优化算法从多个可能的参数组合开始,随机初始化,并进行多次迭代。在每次迭代中,每个粒子被解码成一组参数,然后训练算法,并返回报告算法性能粒子相互通信,通过迭代确定最佳解决方案。当PSO终止时,用于获得具有最高性能的模型的参数将作为获得的最佳解返回。粒子群算法的计算时间受到粒子数、迭代次数和最大迭代次数等多个约束的影响。附加的约束可能会影响PSO计算时间,其中当对于一组连续迭代没有观察到改进除非用户选择修改,否则这些参数将设置为默认值。PSO默认值的加速度系数和惯性权重的选择与Eberhart和Shi [27]相同2.3. 支持的算法和任务PSPSO的第一个版本便于使用PSO来选择四种机器学习算法的参数:支持向量机(SVM)、多层感知器(MLP)、极端梯度提升(XGBoost)和梯度提升决策树(GBDT)。对于SVM,目前支持四个参数。对于MLP,支持神经元的数量、隐藏层中的激活其他参数 因为批量大小、时期和混洗可以被优化。对于XGBoost和GBDT,scikit-learn API包装器支持的任何参数都支持选择过程,例如估计器数量,最大深度,学习率,子样本,目标等。PSPSO支持两种类型的任务:二元分类和回归。用户还可以选择要跟踪的分数。对于回归任务,目前支持一个分数,即均方根误差(RMSE)。为了评估生成的模型在二元分类任务上的性能,目前支持受试者工作曲线(ROC)的曲添加了一些全局变量,例如提前停止和冗长标志(以显示训练细节)。此外,获得的结果可以打印到用户控制台。对于任何支持的搜索任务,始终计算执行搜索过程所花费的时间。2.4. 输出表1显示了选择过程完成后将更新的参数。这些参数也保存在创建的PSPSO实例中,用户可以访问。特定算法的其他参数,如MLP中的训练历史,可以在选择完成后以相同的方式访问3. 执行这 个 包 是 使 用 python 编 程 语 言 作 为 一 个 模 块 实 现 的 。pyswarms库已被用于提供PSO功能[28]。该软件包目前支持四种机器学习算法:MLP(KerasAli Haidar,Matthew Field,Jonathan Sykes etal.软件X 15(2021)1007064表1输出参数。参数描述Pos编码的参数集,包含参数组合在搜索空间中的位置成本pos的成本(1-准确度,1-AUC或RMSE)模型在选择任务持续时间选择参数粒子群优化器和Tensorflow [29,30]),SVM(scikit-learn [26]),XGBoost[31],[32 ]第32话。已经部署了一种新的编码方案来自动处理参数并通过迭代方法创建搜索空间,该方法读取JSON对象键并将其映射到d维的搜索空间,其中d是参数的数量。编码方案被实现为支持可变数量的参数和属于不同类型算法的多种类型的参数这有助于在未来的工作中添加新的参数和算法。此外,与其他算法(SVM,XGBoost和GBDT)相比,MLP遵循不同的方法,以避免由于训练前随机生成初始权重而丢失PSO最佳解虽然这可以通过固定随机权重生成器来避免,但这种方法可能会降低找到更好解决方案的机会,因此在这里没有实现。在训练MLP时,具有不同的随机初始权重将导致不同的结果,即使使用相同的参数组。因此,为了避免失去找到的最佳解的准确性,添加了一个条件,如果在连续的PSO迭代中重新训练相同的参数没有提高性能,则保留最佳解。4. 说明性实例PSPSO的说明性示例可在以下网址找到:5. 结论本文介绍了PSPSO的第一个版本,PSPSO是一个使用粒子群优化(PSO)算法选择机器学习算法参数的高级软件包。提供了一种编码方案来处理用户提供的要搜索 当前版本支持四种算法:MLP,SVM,XGBoost和GBDT。其他算法和参数将包括在未来的工作。此外,还将为用户提供交叉验证等其他培训方法。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作致谢这项工作得到了Ingham 应用医学研究所(Liverpool, NSW2170,Australia)、西南悉尼地方卫生区(SWSLHD)、IllawaraAnd Shoalhaven 地 方 卫 生 区 ( ISLHD ) 、 西 悉 尼 地 方 卫 生 区(WSLHD)、内布拉斯加州蓝山地方卫生区(NBMLHD)的支持。引用[1]作者:J.J. K,J.J.基于神经网络的智能电网能源需求预测优化方法。神经计算2018;273(增刊C):199-208。[2][10]李文,李文.用于肺癌疾病诊断的增强型神经网络集成分类。Appl SoftComput2019;80:579-91.[3]冯X,Qing K,Tustison NJ,Meyer CH,Chen Q.深度卷积神经网络用于使用裁剪的3D图像分割危险的胸部器官。医学物理2019;46(5):2169-80。[4]Vallières M等人,头颈癌肿瘤失败风险评估的放射组学策略。Sci Rep2017;7(1):10117。[5]作者:J.随机搜索超参数优化。JMach Learn Res2012;13:281-305.[6]Schmidt M,Safarani S,Gastinger J,Jacobs T,Nicolas S,Schülke A.微分进化算法在超参数整定中的性能研究。在:2019年国际神经网络联合会议(IJCNN); 2019年,第117页。1-8号。[7]Snoek J , Larochelle H , Adams RP. 机 器 学 习 算 法 的 实 用 优 化 。 In :Advances in Neural Information Processing Systems; 2012,p. 2951-59.[8]Bui X-N,Jaroonpattanapong P,Nguyen H,Tran Q-H,Long NQ. 基于k-近邻法和粒子群算法的爆炸地面振动预测新模型。Sci Rep2019;9(1):13971。[9]Itano F,d. A. D. Sousa MA,Del-Moral-Hernandez E.用遗传算法扩展MLP神经网络超参数优化。在:2018年国际神经网络联合会议(IJCNN); 2018年。p. 1-8号。[10]Gonzalez RT,Padilha CA,Barone DAC.基于遗传算法的股市预测模拟系统。在:2015 IEEE congress on evolutionary computation(CEC); 2015,p.3102-8[11]Bergstra J,Komer B,Eliasmith C,Yellow D,Cox DD. Hyperopt:一个用于模型选择和超参数优化的Python库。Comput SciDisc2015;8(1):014008.[12][10]杨文,杨文,杨文. f-race算法的改进策略:抽样设计与迭代精化. Berlin,Heidelberg:Springer Berlin Heidelberg; 2007,p.108比22[13]黄 C , 李 Y , 姚 X. 元 分 析 学 参 数 自 动 调 整 方 法 综 述 。 IEEE Trans EvolComput2019;24(2):201-16.[14]Hoos HH.自动算法配置和参数调整。在:自主搜索。Springer; 2011,p.37比71[15]Eberhart R,Kennedy J. A new optimizer using particle swarm theory. 1995年,第六届微机械与人类科学国际研讨会论文集。MHS'95。IEEE; 1995,p.39比43[16]孙毅,薛波,张明,严国国刚。基于粒子群优化的灵活卷积图像分类自动编码器 。 在 : IEEE transactions on neural networks and learning systems2;2018,p.1-15。[17]Peimankar A,Weddell SJ,Jalal T,Lapthorn AC.基于多目标粒子群算法的电 力 变 压 器 故 障 诊 断 包 围 式 分 类 器 选 择 。在 : 2016 IEEE congress onevolutionary computation(CEC); 2016,p. 3622-9[18][10]杨文,杨文.基于CAPSO算法和人工神经网络的降雨预报模型。神经计算应用2016;27(8):2551-65.[19]作者:A,B.进化一维深度卷积神经网络:基于群的方法。在:2019年IEEE进化计算大会(CEC); 2019年,p. 1299-1305年。[20]Sinha T,Haidar A,Verma B.基于粒子群优化的卷积神经网络参数寻优方法。在:2018年IEEE进化计算大会(CEC); 2018年,p. 1500-5[21]孙毅,薛波,张明,严国国刚。堆叠式自动编码器超参数最佳化之实验研究。在:2018年IEEE进化计算大会(CEC); 2018年,p.1-8号。[22]叶F。 基于粒子群算法的自动参数化深度神经网络的选择及其在大规模和高维数据中的应用。PLOS ONE2017;12(12).[23]Han B,Bian X.一混合基于PSO-SVM模型为低渗透油藏采收率的确定石油2017;4(1):43-9.[24]López-Ibáñez M,Dubois-Lacoste J,Pérez Cáceres L,Birattari M,StützleT. irace包:用于自动算法配置的迭代赛车。Oper Res Perspect 2016;3:43-58.[25][10]李文辉,李文辉.使用optunity进行超参数搜索。2014年,arXiv预印本arXiv:1412.1114。[26]PedregosaF 等 , Scikit-learn : Python 中 的 机 器 学 习 。 J MachLearnRes2011;12:2825-30.[27]艾伯哈特,施. 粒子群优化算法中惯性权重和收缩因子的比较。在:2000年进化计算大会(CEC 2000),卷。1; 2000,p.84比8Ali Haidar,Matthew Field,Jonathan Sykes etal.软件X 15(2021)1007065[28] MirandaLJV.Pyswarms,python中粒子群优化的研究工具包。J Open SourceSoftw 2018;3:21.[29]肖莱湾Keras [online].2015年,可访问:https://github.com/fchollet/keras。[30]Abadi M,et al. TensorFlow:A System for Large Scale Machine Learning.在:OSDI,卷。十六岁2016,p.265比83[31]陈T,Guestrin C. Xgboost:一个可扩展的树提升系统。第22届Acm Sigkdd知识发现与数据挖掘国际会议的主办方。ACM; 2016,p.785-94.[32]Lightgbm:A highly efficient gradient boosting decision tree.在神经信息处理系统的进展; 2017年,p。3146-54
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功