基于狮群算法优化的核极限学习机(KELM)分类算法-附代码

基于狮群算法优化的核极限学习机(KELM)分类算法

文章目录

  • 基于狮群算法优化的核极限学习机(KELM)分类算法
    • 1.KELM理论基础
    • 2.分类问题
    • 3.基于狮群算法优化的KELM
    • 4.测试结果
    • 5.Matlab代码

摘要:本文利用狮群算法对核极限学习机(KELM)进行优化,并用于分类

1.KELM理论基础

核极限学习机(Kernel Based Extreme Learning Machine,KELM)是基于极限学习机(Extreme Learning Machine,ELM)并结合核函数所提出的改进算法,KELM 能够在保留 ELM 优点的基础上提高模型的预测性能。

ELM 是一种单隐含层前馈神经网络,其学习目标函数F(x) 可用矩阵表示为:
F ( x ) = h ( x ) × β = H × β = L (9) F(x)=h(x)\times \beta=H\times\beta=L \tag{9} F(x)=h(x)×β=H×β=L(9)
式中: x x x 为输入向量, h ( x ) h(x) h(x) H H H 为隐层节点输出, β β β 为输出权重, L L L 为期望输出。

将网络训练变为线性系统求解的问题, β \beta β根据 β = H ∗ ⋅ L β=H * ·L β=HL 确定,其中, H ∗ H^* H H H H 的广义逆矩阵。为增强神经网络的稳定性,引入正则化系数 C C C 和单位矩阵 I I I,则输出权值的最小二乘解为
β = H T ( H H T + I c ) − 1 L (10) \beta = H^T(HH^T+\frac{I}{c})^{-1}L\tag{10} β=HT(HHT+cI)1L(10)
引入核函数到 ELM 中,核矩阵为:
Ω E L M = H H T = h ( x i ) h ( x j ) = K ( x i , x j ) (11) \Omega_{ELM}=HH^T=h(x_i)h(x_j)=K(x_i,x_j)\tag{11} ΩELM=HHT=h(xi)h(xj)=K(xi,xj)(11)
式中: x i x_i xi x j x_j xj 为试验输入向量,则可将式(9)表达为:
F ( x ) = [ K ( x , x 1 ) ; . . . ; K ( x , x n ) ] ( I C + Ω E L M ) − 1 L (12) F(x)=[K(x,x_1);...;K(x,x_n)](\frac{I}{C}+\Omega_{ELM})^{-1}L \tag{12} F(x)=[K(x,x1);...;K(x,xn)](CI+ΩELM)1L(12)
式中: ( x 1 , x 2 , … , x n ) (x_1 , x_2 , …, x_n ) (x1,x2,,xn) 为给定训练样本, n n n 为样本数量. K ( ) K() K()为核函数。

2.分类问题

本文对乳腺肿瘤数据进行分类。采用随机法产生训练集和测试集,其中训练集包含 500 个样本,测试集包含 69 个样本 。

3.基于狮群算法优化的KELM

狮群算法的具体原理参考博客:https://blog.csdn.net/u011835903/article/details/113418075

由前文可知,本文利用狮群算法对正则化系数 C 和核函数参数 S 进行优化。适应度函数设计为训练集与测试集的错误率。
f i t n e s s = a r g m i n ( T r a i n E r r o r R a t e + T e s t E r r o r R a t e ) 。 fitness = argmin(TrainErrorRate + TestErrorRate)。 fitness=argmin(TrainErrorRate+TestErrorRate)

4.测试结果

在这里插入图片描述

训练集LSO-KELM正确率:1
测试集LSO-KELM正确率:0.95652
病例总数:569 良性:357 恶性:212
训练集病例总数:500 良性:300 恶性:200
测试集病例总数:69 良性:57 恶性:12
良性乳腺肿瘤确诊:55 误诊:2 确诊率p1=96.4912%
恶性乳腺肿瘤确诊:11 误诊:1 确诊率p2=91.6667%
训练集KELM正确率:1
测试集KELM正确率:0.89855
病例总数:569 良性:357 恶性:212
训练集病例总数:500 良性:300 恶性:200
测试集病例总数:69 良性:57 恶性:12
良性乳腺肿瘤确诊:55 误诊:2 确诊率p1=96.4912%
恶性乳腺肿瘤确诊:7 误诊:5 确诊率p2=58.3333%

从结果可以看出,狮群-KELM明显优于原始KELM算法

5.Matlab代码

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HAL库版FreeRTOS(中)

目录 FreeRTOS 任务切换PendSV 异常PendSV 中断服务函数FreeRTOS 确定下一个要运行的任务函数vTaskSwitchContext()函数taskSELECT_HIGHEST_PRIORITY_TASK() PendSV 异常何时触发FreeRTOS 时间片调度实验功能设计软件设计下载验证 FreeRTOS 内核控制函数FreeRTOS 内核控制函数预…

黑马Redis笔记-高级篇

黑马Redis笔记-高级篇 1、Redis持久化(解决数据丢失)1.1 RDB持久化1.1.1 定义1.1.2 异步持久化bgsave原理 1.2 AOF持久化1.3 RDB和AOF比较 2、Redis主从(解决并发问题)2.1 搭建主从架构2.2 主从数据同步原理2.2.1 全量同步2.2.2 增…

java面试笔记-01-集合面试题-介绍

好了,各位同学。下面我们开始新的篇章。就是Java集合相关的面试题。相信啊,说到集合呢,你肯定是比较熟悉的。在我们之前的课程中或者是学习中,大家用过哪些集合比较多呢?List,还有Map对吧? 虽然呢,你使用起来很熟悉,但是在面试的时候,面试官呢,可不会问一些使用的问…

MySQL 数据库 增删查改、克隆、外键 等操作

数据库中有数据表,数据表中有一条一条的记录。 可以用Navicat 等远程连接工具链接数据库,不过数据库需要开启授权。 SQL 字段数据类型 int:整型,默认长度是11 float:单精度浮点,4字节32位 double&#x…

[Gitops--12]微服务项目发布

微服务项目发布 1. 微服务项目发布 [流水线] [创建] [下一步] [创建] 1.1 mall-gateway 确认项目中的路由配置都正确 mall-gateway/src/main/resources/application.yml如果不一样就批量替换一下,一共7处 1.2 mall-auth-server mall-auth-server1.3 mall-cart 1.4 mall-c…

Notepad++配置C语言环境和C++环境

背景: Notepad是我们经常使用的编辑器,我们可以用它编译和运行各种类型的文档,其中就包括了C和C文档。但是编译和运行C或者C文档首先要配置编译环境,下面给大家分享一下如何在NotePad配置C/C编译环境。 工具: NoteP…

ADSP21489之CCES开发笔记(十一)

一、主模式固件加载: 1、激活SPICLK信号,并将SPI_FLG0_O引脚拉低。 2、将读取命令0x03和24位地址0x000000写入从设备。如图24-4所示。 图24-4 二、PCAG时钟选择与配置。 1、来源晶振 2、来源Pin脚 其中来源Pin脚配置PCAG时,需将PCG_CTLx1上加…

Golang每日一练(leetDay0059) 两数之和II、Excel表列名称

目录 167. 两数之和 II 输入有序数组 Two-sum-ii-input-array-is-sorted 🌟🌟 168. Excel表列名称 Excel Sheet Column Title 🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练…

云渲染农场具有什么特点?

众所周知,渲染农场的出现是为了解决长时间的图像渲染问题。渲染农场的底层搭建原理是利用很多计算机、网络和操作系统来构建一个庞大的计算群组,把一个渲染任务从一台机器分发到这个计算群组,从而达到短时间内能够快速得到渲染结果。 到了20…

JavaWeb:Web 的基本概念、Tomcat 服务器、Http 详解、Maven 的下载安装步骤、模仿一个 Servlet

文章目录 JavaWeb - 01一、基本概念1、静态 Web2、动态 Web3、Web 应用程序4、三个技术 二、Web 服务器三、Tomcat 详解四、发布一个 Web 网站五、Http 详解1. Http 请求(1)请求行(2)消息头 2. Http 响应(1&#xff09…

Facebook 用户量十分庞大,为什么还使用 MySQL 数据库?

当谈到社交媒体巨头Facebook时,我们立刻想到的是其庞大的用户基础和每日海量的数据流。然而,您可能会惊讶地发现,尽管面对如此巨大的规模,Facebook 仍然选择使用 MySQL 数据库作为其核心的数据存储和管理系统。 为什么Facebook没…

一文讲透TCP/IP协议 | 图解+秒懂+史上最全

目录 🙋‍♂️ TCP/IP协议详解 🙋‍♂️ TCP/IP协议的分层模型 OSI模型的七层框架 TCP/IP协议与七层ISO模型的对应关系 (一)TCP/IP协议的应用层 (二)TCP/IP协议的传输层 (三)…

【计算机组成原理】第三章 多层次的存储器

系列文章目录 第一章 计算系统概论 第二章 运算方法和运算器 第三章 多层次的存储器 第四章 指令系统 第五章 中央处理器 第六章 总线系统 第七章 外围设备 第八章 输入输出系统 文章目录 系列文章目录前言第三章 多层次的存储器3.1 存储器概述3.1.1 存储器的分类3.1.2 存储器…

软件测试 - 缺陷管理

1. 缺陷的定义 产品不满足用户的需求或者测试执行时实际结果和预期结果不一致都属于缺陷。 2. 缺陷的判定标准及产生原因 软件不满足下述任何一种都算作是软件的缺陷,缺陷的概念是包括bug概念的。 未达到需求说明书指明的功能出现了需求说明书指明不应该出现的错…

Python+Selenium入门级自动化测试脚本编写

一、安装Selenium 安装selenium有三种方式,主要有python下的pip命令安装或者是直接下载安装包进行安装本地文件夹以及直接用pycharm直接安装相应的selenium版本。推荐使用pycharm直接配置安装相应selenium版本(此办法比pip更好用,且不用担心报…

8分钟的面试,我直呼太变态了......

干了两年外包,本来想出来正儿八经找个互联网公司上班,没想到算法死在另一家厂子。 自从加入这家外包公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到11月一纸通知,所有人不许加班,薪资…

【Linux】Job for network.service failed(网卡启动报错)

上图是Linux网卡启动报错的情况 这是由于cat/etc/sysconfig/network-scripts/ifcfg-xxx 中HWADDR的MAC地址和ifconfig中的MAC地址不一样,或者缺少cat/etc/sysconfig/network-scripts/ifcfg-xxx 中HWADDR的MAC地址 1.查看ifconfig中的MAC地址 图中00:0c…

Unity冷知识:读取用户输入应该写在Update还是FixedUpdate里?

Unity冷知识:读取用户输入应该写在Update还是FixedUpdate里? 版权声明: 本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明文章内容,不得删减、修改、演绎相关学习资源见文末 一些人…

谈谈几种分布式锁实现

大家好,我是易安!今天我们呢谈一谈常见的分布式锁的几种实现方式。 什么是分布式锁 在JVM中,在多线程并发的情况下,我们可以使用同步锁或Lock锁,保证在同一时间内,只能有一个线程修改共享变量或执行代码块…

Java 基础进阶篇(十二)—— Stream 流常用方法总结

文章目录 一、Stream流概述二、获取Stream流2.1 集合获取 Stream 流2.2 数组获取 Stream 流 三、中间方法四、终结方法五、Stream流的综合应用六、收集Stream流 一、Stream流概述 Stream 流是在 Java8 中,得益于 Lambda 所带来的函数式编程, 引入了一个…