基于蜣螂算法改进的随机森林分类算法-附代码

news2024/11/16 15:58:58

基于蜣螂算法改进的随机森林分类算法 - 附代码

文章目录

  • 基于蜣螂算法改进的随机森林分类算法 - 附代码
    • 1.数据集
    • 2.RF模型
    • 3.基于蜣螂算法优化的RF
    • 4.测试结果
    • 5.Matlab代码

摘要:为了提高随机森林数据的分类预测准确率,对随机森林中的树木个数和最小叶子点数参数利用蜣螂搜索算法进行优化。

1.数据集

数据的来源是 UCI 数据库中的肿瘤数据。数据信息如下:

data.mat 的大小为569*32。

其中第2列为标签数据,包含两类标签。

第3列到最后一列为特征数据。

所以RF模型的数据输入维度为30;输出维度为1。

2.RF模型

随机森林请自行参考相关机器学习书籍。

3.基于蜣螂算法优化的RF

蜣螂搜索算法的具体原理参考博客:https://blog.csdn.net/u011835903/article/details/128280084。

蜣螂算法的优化参数为RF中树木个数和最小叶子节点数。适应度函数为RF对训练集和测试集的预测错误率,错误率越低越好。
f i n t e n e s s = e r r o r R a t e [ p r e d i c t ( t r a i n ) ] + e r r o r R a t e [ p r e d i c t ( t e s t ) ] finteness = errorRate[predict(train)] + errorRate[predict(test)] finteness=errorRate[predict(train)]+errorRate[predict(test)]

4.测试结果

数据划分信息如下: 训练集数量为500组,测试集数量为69组

蜣螂参数设置如下:

%% 定义蜣螂优化参数
pop=20; %种群数量
Max_iteration=30; %  设定最大迭代次数
dim = 2;%维度,即树个数和最小叶子点数
lb = [1,1];%下边界
ub = [50,20];%上边界
fobj = @(x) fun(x,P_train,T_train,P_test,T_test);

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

寻优得到的树个数:17
最小叶子节点:1
蜣螂优化随机森林结果展示:----------------
训练集正确率Accuracy = 99.6%(498/500)
测试集正确率Accuracy = 95.6522%(66/69)
病例总数:569 良性:357 恶性:212
训练集病例总数:500 良性:316 恶性:184
测试集病例总数:69 良性:41 恶性:28
良性乳腺肿瘤确诊:40 误诊:1 确诊率p1=97.561%
恶性乳腺肿瘤确诊:26 误诊:2 确诊率p2=92.8571%
传统随机森林结果展示:----------------
训练集正确率Accuracy = 100%(500/500)
测试集正确率Accuracy = 94.2029%(65/69)
病例总数:569 良性:357 恶性:212
训练集病例总数:500 良性:316 恶性:184
测试集病例总数:69 良性:41 恶性:28
良性乳腺肿瘤确诊:40 误诊:1 确诊率p1=97.561%
恶性乳腺肿瘤确诊:25 误诊:3 确诊率p2=89.2857%

从结果来看,经过改进后的蜣螂-RF明显优于未改进前的结果。

5.Matlab代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/184681.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SVN关联PyCharm使用

前言 本人因为要搭建一个自动化测试的框架,编程语言选择的python,python编辑器选择的PyCharm,代码管理工具使用的SVN。为了方便协作开发,需要将SVN关联PyCharm进行使用。 一、SVN关联PyCharm 1.点击左上角File–>选择Settin…

mongodb的聚合操作

mongodb的聚合操作 学习目标 了解 mongodb的聚合原理掌握 mongdb的管道命令掌握 mongdb的表达式 1 mongodb的聚合是什么 聚合(aggregate)是基于数据处理的聚合管道,每个文档通过一个由多个阶段(stage)组成的管道,可以对每个阶…

【Python】生成本项目的requeirments.txt

有的时候,我们需要对自己写的项目生成一个requeirments.txt,方便其他使用者快速安装依赖项 参考https://www.cnblogs.com/shun7man/p/14080921.html 1.使用pip 如果你的项目本身就是在venv虚拟环境下跑的,那么可以直接用下面的语句生成一个依…

java集合类-List/Queue

List List集合代表一个元素有序、可重复的集合,集合中每个元素都有其对应的顺序索引。可以通过索引来访问指定位置的集合元素。List集合默认按元素的添加顺序设置元素的索引。 List接口(被改进)和ListIterator接口(被改进&#xf…

四六级英语学习(一)医疗健康类

suffer from 遭受 经历 high blood pressurehypertension 高血压 take steps to take measures to 采取措施 silent 沉默的 silence 沉默 -er表示人 或机器 eg: killer computer strokes 中风 attack 攻击,进攻 almostnearly 几乎 差不多 disease 大病 illn…

【uniapp】H5和小程序动态导入模块的方法

做uniapp项目通常都是用import Module from "./../module.js"方式引用模块的,但是,这种方式是静态的,还是只能放在执行代码段的顶部(或者外部),若想放在代码中执行,那就会报错的&…

微信小程序——生命周期,生命周期的分类,页面生命周期,生命周期函数的分类,应用的生命周期函数,页面的生命周期函数,wxs脚本概述

一.生命周期什么是生命周期生命周期( Life Cycle )是指一个对象从创建->运行->销毁的整个阶段,强调的是一个时间段。例如:.张三出生,表示这个人生命周期的开始.张三离世,表示这…

单源最短路的建图方式(Dijkstra)

由于是复习,所以不会解释太多。 主要为Dijkstra的堆优化板子和朴素版(看数据范围) 再次看看时间复杂度[ n 为点数,m 为边数 ]:朴素版:O(),堆优化版:O( (nm)logm )。 目录 1.热浪&…

CS专业学习回顾

前言 起因是想清理一下github的仓库,没错是清理,之前fork了很多仓库学习代码,还有自己随便上传的一些代码,因为感觉没有留着的必要,博客多少可以review,这些早期写的代码,如洪水猛兽&#xff0…

java集合类-操作集合

Collections(操作集合的工具类) 该工具类里提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了将集合对象1.设置为不可变、对集合对象实现同步控制等方法。自行看API即可。 2.有查找、替换集合元素的类方法。 有同步控制的方法&am…

使用 Python 深度学习方法对电影评论进行情绪预测

情感分析是一种自然语言处理问题,可以理解文本并预测潜在意图。 在本文中,你将了解如何使用 Keras 深度学习库将电影评论的情绪预测为正面或负面。 看完这篇文章,你会知道: 关于自然语言处理的 IMDB 情感分析问题以及如何在 Ke…

核心表结构

核心表结构目录概述需求:参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive. happy for hardess to solve denp…

Android重新签名APK

前提已经配置好了Java环境。在要签名的apk文件目录路径位置,输入cmd,打开命令窗口。在命令窗口中输入jarsigner,有相应的提示。然后输入重新签名指令如下:jarsigner -verbose -keystore E:\tmc\keystore\androidsign.jks -signedj…

51单片机学习笔记-10IIC总线

10 I2C总线 [toc] 注:笔记主要参考B站江科大自化协教学视频“51单片机入门教程-2020版 程序全程纯手打 从零开始入门”。 10.1 AT24C02和I2C介绍 10.1.1 存储器介绍 图10-1 存储器分类 一般来说,RAM读写速度极快,但掉电丢失;而…

InfluxDB OSS v2.6.0安装使用小结(ubuntu Linux)

1 InfluxDB简介 InfluxDB是一款用Go语言编写的开源分布式时序、事件和指标数据库。 官网:https://www.influxdata.com 1.1 特色 InfluxDB的主要特色 1)无结构(无模式):可以是任意数量的列 2)可拓展的 3&…

学习云原生的阅读书单

以下是我从豆瓣阅读上找到的书单 《云原生服务网格lstio》 《云原生操作系统Kubernetes》 《OpenShift云原生架构:原理与实践》

[oeasy]python0066_控制序列_光标位置设置_ESC_逃逸字符_CSI

光标位置 回忆上次内容 上次讲了 三引号的输出三引号中 回车和引号 都会 被原样输出\ 还是需要从 \\转义 黑暗森林 快被摸排清了 还有哪个 转义序列 没 研究过吗?🤔 \e是 干什么的?🤔 回忆转义 转义转义 转化含义 \反斜杠(…

CnOpenData劳务外包企业工商注册基本信息数据

一、数据简介 随着我国社会主义市场经济的发展,劳务市场中的用工方式也朝着多样化方向演变,劳务外包正是现代化人力资源管理和企业生产实际结合的一种独特的新模式。 在劳务外包过程中,企业将人事管理的部分或者全部工作外包给一个专门的服务…

Hadoop 复习 ---- chapter01【大数据概念】

Hadoop 复习 ---- chapter01【大数据概念】1. 什么是大数据大数据的简介从IT过渡到DT2. Hadoop生态系统工具HADOOPHBASEHIVESTORMZooKeeperSqoopMAHOUT1. 什么是大数据 大数据的简介 指“无法由现有软件工具进行提取、存储、搜索、共享、分析和处理的庞大而复杂的数据集”。 通…

【软件测试】某城商行手机银行授权漏洞分析黑客攻击,测试优化手段......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 问题描述 据报道&am…