没有合适的资源?快使用搜索试试~ 我知道了~
软件X 16(2021)100830原始软件出版物GenClass:一个基于语法进化的并行数据分类工具放大图片作者:Nikolaos Anastasopoulosa,Ioannis G. Tsoulosb, Alexandros Tzallasba希腊帕特雷大学计算机工程与信息系b约阿尼纳大学信息与电信系,希腊阿尔塔47100ar t i cl e i nf o文章历史记录:接收18六月2021收到修订版2021年9关键词:遗传算法数据分类语法演化随机方法a b st ra ct本文提出了一种用于数据分类的遗传规划工具。该工具是基于语法进化技术,它的目的是利用多核计算系统使用的OpenMP库。该工具以类似C的编程语言构建分类程序,以便对输入数据进行分类,产生简单的if-else规则,并且在终止时,该工具以C和Python文件产生分类规则。此外,用户可以通过命令行选项使用自己的巴科斯范式(BNF)语法。该工具进行了测试,对广泛的分类问题,并产生的结果与传统的数据分类技术进行比较,产生非常有前途的结果。版权所有2021作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本1.0用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-21-00116GNU通用公共许可证(GPL)使用git的代码版本控制系统使用C++的软件代码语言、工具和服务编译要求、操作环境依赖性Linux如果可用,链接到开发人员文档/手册https://github.com/itsoulos/GenClass/wiki问题支持电子邮件itsoulos@uoi.gr1. 介绍数据分类在化学[1- 3 ],生物学[ 4,5 ],经济学[ 6,7 ],物理学[ 8,9 ]等领域的一系列实际问题上有许多应用语法进化是一个进化过程,已成功应用于许多领域,如音乐作曲[15],经济学[16],符号回归[17],机器人[18]和缓存算法[19]。本文介绍了一个用ANSI C++编写的软件工具(GenClass),用于使用*通讯作者。电子邮件地址:itsoulos@uoi.gr(扬尼斯G. Tsoulos)。https://doi.org/10.1016/j.softx.2021.100830人类可读的形式。这些规则是用文法进化方法产生的,可以应用于任何分类问题,而不需要数据集的先验知识。此外,该工具有一系列命令行选项来控制软件的各个方面,如突变率或数量基因 群 体 中 的 染 色 体 数 目 。 另 一 个 类 似 的 软 件 是 可 从 相 关URLhttps://github.com/daaugusto/ppi 获 得 的 并 行 程 序 归 纳(PPI),其构造有用于回归和分类的语法进化程序,但是PPI软件对要编译的其它软件具有许多依赖性。此外,GenClass以人类可读的格式生成分类问题,并且可以用C++和Python导出输出。然而,在当前版本中,GenClass不能解决回归问题。此外,最近出版了NNC软件[20],该软件结合了语法进化来构建回归和分类问题的神经网络。尽管GenClass软件不能用于当前形式的回归问题,但它具有与NNC软件类似的执行运行,并且它可以发现2352-7110/©2021作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxNikolaos Anastasopoulos,Ioannis G.Tsoulos和Alexandros Tzallas软件X 16(2021)1008302数据集的特征与预期输出之间的隐藏关系。此外,软件GenClass可以使用多核环境的每个核心,并且能够从单独的输入文件加载BNF语法。本文的其余部分组织如下:在第2节中详细描述了软件,在第3节中展示了一些知名的分类数据集上的一系列实验,在第4节中讨论了软件工具的影响,最后在第5节中提出了进一步扩展软件的结论和指导方针2.软件描述2.1. 该算法该算法的主要步骤是:1. 一步一步(a) 读取列车数据(b) 设NG为最大世代数,NC为染色体数,PS为选择率,PM为突变率。(c) 初始化种群的染色体。2. 遗传步骤(a) 对于i = 1,. . . ,N gdoi. 使用语法进化为群体中的每条染色体创建一个分类程序ii. 计算种群中iii. 执行以PS速率选择和以P速率变异的遗传算子(b)EndFor3. 评估步骤(a) 为人群中最好的染色体建立一个分类程序。(b) 将之前的程序应用于测试装置并报告引起的错误。在主页https://github.com/itsoulos/GenClass/中详细解释了软件的安装。2.2. 可执行的genclass软件编译和安装的结果是bin目录下的可执行genclass。可执行程序具有以下命令行参数:1. -h:程序打印帮助屏幕。2. -ccount:参数count决定了数量表1实验的参数参数值NC500NG500PS百分之九十PM百分之五6. -d计数。参数d确定OpenMp库使用的线程的最大默认值为16。7. -ssrate:参数srate指定选择默认值为0.10(10%)。8. -mmrate : 参 数 mrate 指 定 突 变 率 , 默 认 值 为 0.05(5%)。9. -lsize:参数size决定每个染色体的大小,默认值为100。10. -ptrain_file:字符串参数train_file指定包含将用作算法训练数据的点的文件。该文件应该符合清单1中列出的格式。11. -ttest_file:字符串参数test_file指定包含特定问题的测试数据该文件的格式应与train_file相同。12. -o方法:字符串参数方法指定可执行文件的输出方法可用选项包括(a) 简单.程序只在终止时打印输出。(b) CSV。在每一代中,程序打印:代数,训练错误和测试错误。(c) 满了该程序在每一代打印有关优化过程的详细信息。13. -rseed:整数参数seed指定随机数生成器的种子它可以采用任何整数值。2.3. 输出文件该软件在终止时产生两个不同的文件,其中包含分类规则。第一个文件是用ANSI C++编写的,名为classifier. c,清单2中显示了一个示例。第二个文件是用Python编写的,名为classifier.py,清单3中显示了一个示例。清单1:数据格式。整数值D确定问题的维数,值M确定文件中的点数。随后的每一行都包含一个模式,最后一列是该模式的实际输出(类别)。DMx 11x 12。. . x 1 Dy 1x 21x 22。. . x 2 Dy 2默认值为500的染色体。3. -f计数。为折叠验证指定折叠计数默认.....x x x值0(不折叠)。4. -i语法文件。字符串参数grammarfile表示M1M2。. .MDyM对于BNF格式的用户定义语法。如果此选项为空,则将使用默认语法。清单5中列出了这样一个文件的示例,它包含在发行版的examples目录5. -ggens:参数gens决定了最大的生成次数,默认值为200。3. 实验3.1. 一个典型的例子考虑一下机器学习存储库中的电离层数据集。电离层数据集包含来自Nikolaos Anastasopoulos,Ioannis G.Tsoulos和Alexandros Tzallas软件X 16(2021)1008303∗−- −表2Fig. 1. 训练方法之间的统计比较。清单2: 一个典型的制作C文件的工具. double数组x试验结果数据集Neural MLP-GEN RBF GEN GENCLASS酒精26.85% 25.45% 46.63% 20.29% 14.68%阑尾炎22.50% 21.30% 12.23% 11.50% 15.00%澳大利亚30.48% 29.83% 34.89% 33.30% 14.57%余额8.19% 8.02% 33.42% 12.96% 0.00%皮肤科14.33% 8.75% 62.34% 34.94% 3.72%大肠杆菌53.60% 52.86% 59.59% 56.64%玻璃54.24% 49.30% 50.16% 45.54% 33.81%哈伯曼29.94% 26.98% 25.10% 24.06% 27.33%海斯·罗斯35.16% 33.28% 64.36% 33.54% 25.39%心脏25.95% 24.20% 31.20% 21.00% 17.55%众议院投票7.54% 7.28% 6.13% 5.29% 3.72%电离层15.83% 11.30% 16.22% 8.63% 8.29%肝脏疾病33.82% 31.37% 30.84% 28.33% 32.06%25.57% 24.55% 25.31% 20.93% 19.29%是输入,值类是方法的估计类包括#
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功