没有合适的资源?快使用搜索试试~ 我知道了~
==软件X 22(2023)101381原始软件出版物EC-KitY:Python中的进化计算工具包,无缝集成机器学习Moshe Sippera,Moshi,Tomer Halperina,Itai Tzruiaa,Achiya Elyasafba以色列Beer-Sheva,8410501,内盖夫本-古里安大学计算机科学系b以色列Beer-Sheva本-古里安大学软件和信息系统工程系,8410501ar t i cl e i nf o文章历史记录:2022年7月8日收到收到修订版,2023年3月13日接受,2023年保留字:进化算法进化计算遗传规划机器学习Scikit-learna b st ra ctEC-KitY是一个用于进行进化计算(EC)的综合Python库,在BSD 3-Clause License下许可,并与scikit-learn兼容。EC-KitY在设计时考虑了现代软件工程和机器学习集成,可以支持所有流行的EC范式,包括遗传算法,遗传编程,协同进化,进化多目标优化等。本文概述了该软件包,包括设置的简易性最后进行了电子商务实验,介绍了其体系结构、主要功能,并与其他图书馆进行了比较版权所有2023作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本v0.3.0用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-22-00189Reproducible Capsule的永久链接https://codeocean.com/capsule/8740191/tree法律代码许可证BSD 3条款许可证使用git的代码版本控制系统使用Python的软件代码语言、工具和服务编译要求,操作环境&依赖numpy(>=1. 十四岁6),pandas(>=0. 二十五0),overrides(>= 6. 1 .一、0)。链接到开发人员文档/手册对于sklearn模式:scikit-learn(>0. 24岁2)API-https://api.eckity.org/eckity.html教程-https://github.com/EC-KitY/EC-KitY/wiki/Tutorials示例-https://github.com/EC-KitY/EC-KitY/tree/main/examples问题支持电子邮件sipper@gmail.com软件元数据当前软件版本v0.3.0此版本可执行文件的永久链接https://pypi.org/project/eckity可再生胶囊的永久链接https://codeocean.com/capsule/8740191/tree法律软件许可证BSD 3条款许可证计算平台/操作系统跨平台安装要求&依赖项numpy(>=1. 十四岁6),pandas(>=0. 二十五0),overrides(>= 6. 1 .一、0)。用户手册对于sklearn模式:scikit-learn(>0. 24岁2)API-https://api.eckity.org/eckity.html教程-https://github.com/EC-KitY/EC-KitY/wiki/Tutorials示例-https://github.com/EC-KitY/EC-KitY/tree/main/examples问题支持电子邮件sipper@gmail.com*通讯作者。电子邮件地址:sipper@bgu.ac.il(Moshe Sipper),tomerhal@post.bgu.ac.il(Tomer Halperin),itaitz@post.bgu.ac.il(Itai Tzruia),achiya@bgu.ac.il(Achiya Elyasaf).https://doi.org/10.1016/j.softx.2023.1013812352-7110/©2023作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxMoshe Sipper,Tomer Halperin,Itai Tzruia等.软件X 22(2023)1013812−−1. 介绍在进化计算(EC)或进化算法(EA)中,进化生物学的核心概念-遗传,随机变异和选择-被应用于复杂计算问题的算法中。如Sip-per etal.[1],EA相对于流行的机器学习(ML)方法有几个重要的好处是从头开始设计新的实体;对手头问题的先验假设较少;无缝集成人类专家知识;解决人类专业知识非常有限的问题的能力;支持可解释的解决方案表示;支持多个目标。重要的是,这些优势往往与弱点相吻合ML算法,这导致了越来越多的作品,卓有成效地结合了EC和ML或深度学习(DL)领域。例如,Sipper和Moore [2]将EC领域的主要会议现在定期讨论EC和ML的组合,例如,GECCO,可以说是主要的EC事件,致力于两个完整的轨道和三个研讨会进化和学习的结合。 关于进化机器学习有很多很好的调查:Telikani et al. [6],Al-Sahaf et al.[7],Zhanget al.[8]的一项建议。因此,EC是一个流行的有力的算法家族,它补充了ML和DL,使所有相关领域受益。此外,还有一个庞大且不断增长的EC+ML从业者社区。多年来,我们已经使用了几个EC开源软件包,并在软件包中发现了一个大的“漏洞”-EC包的形式存在一个空白,是:pip安装ECKITY如上所述,EC-KitY可以在独立的非sklearn模式和sklearn模式下工作在下面的代码示例中,我们使用这两种模式来解决符号回归问题,其中的目标是寻找任意复杂度的回归量,即,超越线性或多项式[9]。我们从独立模式开始,演示用户如何仅用三行代码运行EA从我这里。我去看看他。simple_e卷imprtSimpleE卷从我这里。subpopulationimportsubpopulationexamples. p. 不确定性。symbolic_regression. Sym_reg_evalutorimportSymolcRege ss sinEvalutoralgo=SimpleEv olution(SymbolicRegressionEvaluator())算法evolve()print('algo. execute(x=2,y=3,z=4):',algo. execute(x=2,y=3,z=4))算法可以对单个子群体(如在SimpleEvolution的情况下)、两个子群体(例如,在共同进化设置中),或者n(>2)个子群体(例如,岛模型)。每个Subpopulation可能有自己的评估函数,这就是为什么在上面的例子中SymbolicRegressionEvaluator是Subpopulation的参数。存在Subpopulation的附加参数(例如,遗传算子),以及算法(例如,饲养员和统计)。在示例中,这些参数接收默认值。 默认函数集是[add,sub,mul,div],默认的终端设置是0 11]中定义的参数,还有其他参数,API [10]。下面我们将展示一些示例,其中包括非默认值的使用。上面的代码在Google Colab中运行需要4分钟;通过添加一个简单的提前终止条件(如下面的最后一个示例),运行时间可以减少到9秒。下面是一个进化的GP树的例子:1. 运行进化算法的综合工具包。2. 用Python写的。3. 可以使用或不使用scikit-learn(又名sklearn),这是Python 最 受 欢 迎 的ML 库 也 就 是 说 , 软 件 包 应 该 支 持sklearn和独立(非sklearn)模式。4. 设计时考虑到现代软件工程5. 设计支持所有流行的EC范式:遗传算法(GAs),遗传编程(GP),进化策略(ES),协同进化,多目标虽然有几个EC Python包,但没有一个满足所有五个要求。有些不是用Python编写的,有些文档很糟糕,有些不支持多个EC范例,等等。对于ML社区来说,重要的是,大多数工具并不与现有的ML工具相结合。事实上,我们个人在进行进化机器学习时,已经经历了将EC工具与scikit- learn我们希望通过坚持上述五大支柱,对一个大社区很有用2. EC-KitY2.1. 建立一个进化实验EC-KitY可以在github.com/ec-kity/ec-kity/上找到,还有示例、教程、Google Colab笔记本等。安装它是简单地通过:进化树代码ALGO。 execute(x=2,y=3,z=4):20在sklearn模式下运行EA也很简单(同样是一个符号回归问题):从klearn。数据集是一个非常重要的工具,可以从文件夹中删除。我是一个很好的朋友,我的朋友,我的朋友从klearn。在一个特定的环境中,从我这里。我去看看他。simple_e卷imprtSimpleE卷从我这里。creatoorrs. gp_creators.FullimportFullCre ator从我这里。genet ic_enco dings. gp.tree。您的位置:首页>新闻中心>新闻中心从我这里。sklearn_compatible.Regression_evaluatimporrRegressionEvaluator从我这里。sklearn_compatible. sk_regresorimportSKRegresor从我这里。subpopulationimportsubpopulationX,y=make_re_re_re_ssion(n_s_amples =100,n_fetures =3)terminal_set=crete_terminal_set(X)algo=SimpleEvolut ion(添加添加zz添加添加zy添加XyMoshe Sipper,Tomer Halperin,Itai Tzruia等.软件X 22(2023)1013813algo=SimpleEvolut ion(Subpopulation(creators= RampedHalfAandHalfCreator(init_depth=(2,4),bloat_weight=0. 0001,terminal_set=terminal_set,functin_set =functin_set),populat ion_size=200,evaluator=SymbolcRegressionEvaluator(),higer_is_beter=False,elit ism_rate=0。05,operrators_sequence=[SubtreeCrossoverer(probability=0. 9,arity=2)、Subtree Mutat ion(probabity=0. 2,arity=1),ERC Mutat ion(probabi ty=0. 05,arity=1)]),breder=SimpleBreder(),max_workers=4,max_generat ion=500,stics= BestAverageWorstics(),terminaticker(optimal=0,herehold=0。001))2019 - 05 - 2200:01:00creators=FullCreator(terminal_set =terminal_set),evaluator= RegressionEvaluator())Regressorr=SKRegressorr(algo)X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0. 2)regressorr. fit( X_train,y_train)在这个例子中,我们将算法包装为sklearn 回归器,并从sklearn执行它。工具包存储库包含EC-KitY与sklearn交互的更高级方式的示例,包括网格搜索和管道。在Google Colab中运行这段代码花了14分钟,没有提前终止条件,输出是:Mae 测试集:0.07用户可能希望指定EA的其他组件,而不是依赖于默认值;这可以通过相关的构造函数轻松实现,例如:提供详细的API、教程和多个用例 在[10]。2.2. 架构如前所述,我们计划EC-KitY支持所有主要的EC范式,包括遗传算法、遗传编程、进化策略、协同进化和进化多目标优化为了支持这种过多的算法和遗传算子,我们将我们的设计基于ECJ,这可能是迄今为止最全面的EC包,它已经使用和开发了二十多年[11]。然而,我们确实在一个关键点上偏离了ECJ:可以使用事件钩子从任何操作中提取统计数据,从而改善了关注点的解耦和分离。EC-KitY的架构如图1所示。Algo- rithm类用作EC-KitY的入口点。它包含实验所需的所有信息,并使用Breeder类对种群进行操作。有几个类扩展了Operator类(用小三角形表示);它们发出的事件可以被Statistics拦截。相同的EC- KitY代码可以在独立模式下使用(图1)。 (左)和在 sklearn 模 式 下 ( 图1 , 右 ) 。 后 者 是 通 过 使 用SKLearnWrapper包装Algorithm实例来实现的。EC-KitY的设计很容易扩展:它是严重超过-架构,有许多钩子,便于系统修改和增强。该架构支持以下功能:在云中或集群中执行,多统计,多线程评估,可复制性标准(所有这些都已实现),以及检查点和日志记录设施(正在积极开发中)。3. 与其他软件包的通过多年来对EC开源软件的大量实践经验,以及额外的广泛研究,我们确定了以下八种工具,其主要功能与EC-KitY[10]一起在表1中进行 了 比 较 : gplearn[12] , geatpy[13] , DEAP[14] ,Platypus[15],ECJ[11],Jenetics[16],KEEL[17],HeuristicLab[18].只有两个包是用Python编写的,并且与sklearn兼容:geatpy和gplearn。然而,如表1所示,它们缺乏EC-KitY所拥有的许多重要功能。4. 总结发言目前正在积极开发EC-KitY图书馆目前,我们计划添加各种进化算法、个体类型、遗传算子和测试。我们还在努力扩大和加强文件。我们希望通过实现来自不同领域的更多示例用例并鼓励开发人员做出贡献来扩大用户和开发人员社区图1.一、E C - K i t Y 的总体架构(左)和s k l e a r n 模 式 的 新增组件(右)。Moshe Sipper,Tomer Halperin,Itai Tzruia等.软件X 22(2023)1013814∃表1EC-KitY与现有软件包的功能比较。 :功能已存在,(:feature mostly lacking,feature completelylacking.基本上没有特征,完全没有特征。特色EC-KitY鸭嘴兽 ECJ Jenetics龙骨 启发式实验室语言PythonPython简体中文PythonJavaJavaJavaC#sklearn-compatible脚本语言编程SE设计脚本语言编程GA representation脚本语言GGP表示✔✗✔✔✗✔∃✔用户自定义运营商✔✗✗✔✔✔✔✗用户自定义表示✔✗✗✔✔✔✔✗共同进化()✗✗✔✗✔✗✔多目标✔✔✗✔✔✔✔✔统计数据✔✔✔✔∃✔✔✔文档✔∃✔∃∃✔✔∃中文(简体)✔∃✔✔✗✔✔✗✔最新版本202220222019201920202019202220152022我们最近教授了一门课程,其中48名学生以两人或三人为一组,共提交了22个使用EC-KitY解决各种复杂问题的项目,包括进化Flappy Bird代理,进化21点策略,进化超级马里奥代理,进化国际象棋选手以及解决最大集团和车辆路线等事实证明,EC-KitY完全能够胜任这些任务。鉴于进化算法的流行性和多样的适用性,我们希望EC-KitY找到众多有益的用途。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作数据可用性公共数据。致谢本研究部分得到了以色列科学基金会和以色列智能交通研究中心(ISTRC)的资助#2714/19,以及以色列高等教育委员会(CHE)通过以色列内盖夫本-古里安大学数据科学研究中心的支持。引用[1] Sipper M,Olson RS,Moore JH.进化计算:人工智能的下一个重大转变?BioData Min2017;10(1):26。[2] Sipper M,Moore JH.保护机器学习:随机森林的案例研究。Nat SciRep2021;11(1):3629.[3]Lapid R,Siper M.用于基于深度学习的图像分类的激活函数的演化。在:遗传和进化计算会议论文集伴侣。纽约,纽约,美国:计算机协会; 2022,p. 2113-21[4]Lapid R,Haramaty Z,Siper M.一种进化的、无梯度的、查询高效的黑盒算法,用于在深度卷积神经网络中生成对抗性实例。算法2022;15(11).[5][10]李文辉A,李文辉A,李文辉B,李文辉A,李文辉A,李文辉B.以用户为中心发展情境感知推荐系统。专家系统应用2022;189:116042。[6]Telikani A,Tahmassebi A,Banzhaf W,Gandomi AH.进化机器学习:一项调查。ACM Comput Surv 2022;54(8).[7]Al-Sahaf H,Bi Y,Chen Q,Lensen A,Mei Y,Sun Y,et al. A surveyonevolutionary machine learning. J R Soc New Zealand 2019;49(2):205-28.[8]张军,詹志华,林永,陈宁,龚永杰,钟继华,等。进化计算与机器学习:综述。IEEE Comput Intell Mag2011;6(4):68-75.[9]西珀湾通过进化符号回归的二元和多项式分类。在:遗传和进化计算会议论文集伴侣。纽约,纽约,美国:计算机协会; 2022,p. 300比3[10][10] 李 晓 , 李 晓 , 李 晓 .EC-KitY : Python 中 的 演 化 计 算 工 具 包 2022 年 ,https://www.eckity.org/。[11] Scott EO , Luke S. ECJ at 20 : Toward a general MetaQuotics toolkit.在 :遗传和进化计算会议论文集伴侣。2019年,第1391-8.[12]史 蒂 芬 斯 Python 中 的 遗 传 编 程 , 带 有 scikit-learn 启 发 的 API 。 2019 年 ,https://github.com/trevorstephens/gplearn。[13]好 极 了 进 化 算 法 工 具 箱 和 框 架 , 用 于 Python 的 高 性 能 。 2022 年 ,https://github.com/geatpy-dev/geatpy。[14]Fortin F-A , De Rainville F-M , Gardner M-A , Parizeau M , Gagné C.DEAP:进化算法变得简单。J Mach Learn Res2012;13:2171-5.[15]鸭 嘴 兽 一 个 用 于 多 目 标 优 化 的 免 费 开 源 python 库 。 2020 年 ,https://github.com/Project-Platypus/Platypus。[2022年4月[16] 威廉斯托特湾遗传算法,遗传规划,进化算法,多目标优化。2022,https://github.com/jenetics/jenetics。[17]龙骨。 基于进化学习的知识抽取。 2015年,https://github.com/SCI2SUGR/KEEL网站。[18]Elyasaf A,Siper M.软件评测:HeuristicLab框架。GenetProgram and EvolMach2014;15(2):215-8.
下载后可阅读完整内容,剩余1页未读,立即下载
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![.zip](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 计算机系统基石:深度解析与优化秘籍
- 《ThinkingInJava》中文版:经典Java学习宝典
- 《世界是平的》新版:全球化进程加速与教育挑战
- 编程珠玑:程序员的基础与深度探索
- C# 语言规范4.0详解
- Java编程:兔子繁殖与素数、水仙花数问题探索
- Oracle内存结构详解:SGA与PGA
- Java编程中的经典算法解析
- Logback日志管理系统:从入门到精通
- Maven一站式构建与配置教程:从入门到私服搭建
- Linux TCP/IP网络编程基础与实践
- 《CLR via C# 第3版》- 中文译稿,深度探索.NET框架
- Oracle10gR2 RAC在RedHat上的安装指南
- 微信技术总监解密:从架构设计到敏捷开发
- 民用航空专业英汉对照词典:全面指导航空教学与工作
- Rexroth HVE & HVR 2nd Gen. Power Supply Units应用手册:DIAX04选择与安装指南
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)