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

news2024/12/28 8:11:00

基于遗传算法优化的核极限学习机(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

遗传算法的具体原理参考博客

由前文可知,本文利用遗传算法对正则化系数 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.测试结果

在这里插入图片描述

训练集GA-KELM正确率:1
测试集GA-KELM正确率:0.92754
病例总数:569 良性:357 恶性:212
训练集病例总数:500 良性:300 恶性:200
测试集病例总数:69 良性:57 恶性:12
良性乳腺肿瘤确诊:55 误诊:2 确诊率p1=96.4912%
恶性乳腺肿瘤确诊:9 误诊:3 确诊率p2=75%
训练集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代码

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

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

相关文章

orin Ubuntu 20.04 配置 Realsense-ROS

librealsense安装 sudo apt-get install libudev-dev pkg-config libgtk-3-dev sudo apt-get install libusb-1.0-0-dev pkg-config sudo apt-get install libglfw3-dev sudo apt-get install libssl-dev sudo apt-get install ros-noetic-ddynamic-reconfiguresudo apt-key a…

iphone死机屏幕没反应?可以用这2种办法解决!

iPhone用的时间长了,难免不会遇到卡屏、死机的情况,如果出现这种状况我们应该怎么办呢,下面小编整理出来了几招解决方法,教大家解决iPhone卡屏、死机的问题。 一、强制重启 如果自己的iPhone一直处于卡屏无法操作,或死…

2023年电梯行业研究报告

第一章 行业概况 电梯行业是指制造、销售、安装、维护和升级电梯及相关设备的产业。电梯行业是一个不断发展的行业,主要因为人们对更高层建筑的需求越来越大,以及城市化进程的加速,从而需要更多的垂直交通设施。电梯行业在世界各地都有很好的…

64.网页设计规则#8_用户体验设计(UX)

什么是用户体验(UX)? “Design is not just what it looks like and feels like. Design is how it works” ——Steve Jobs “设计不仅仅是外观和体验。设计更重要的是其工作原理。”——史蒂夫乔布斯 UI 和 UX设计 ● UI 是图形界面:UI 设计使界面更加美观。 …

MySQL 5.7.31 安装教程

前言 MySQL 5.7.31 是5.x系列最后一版 支持全平台(包含 MacOS)的版本 下载 1.首先下载安装支持包 vc_redist.x64.exe 安装完重启使包生效 2.选择你需要的 MySQL 版本下载,我们用 5.7.31 的 这是 MySQl 的压缩包,解压就能用&a…

flutter 滑动优化

1: 如果ListView是用的children[]方式,快速滑动会卡顿建议使用SingleChildScrollView 2: 列表中有视频卡片 停止滑动时,若列表中有视频播放,由于画面一直在变化,检测工具无法判断是滑动停止;同…

看完这篇文章你就彻底懂啦{保姆级讲解}-----(LeetCode刷题202快乐数) 2023.5.9

目录 前言算法题(LeetCode刷题202快乐数)—(保姆级别讲解)分析题目算法思想(使用unordered_set实现哈希表) 结束语 前言 本文章一部分内容参考于《代码随想录》----如有侵权请联系作者删除即可&#xff0c…

GPIO实验【嵌入式系统】

GPIO实验【嵌入式系统】 前言推荐样例工程运行安装驱动安装驱动的问题工程配置工程运行 GPIO基础实验最后 前言 2023-5-9 14:41:36 以下内容源自《【嵌入式系统】》 仅供学习交流使用 推荐 周立功TinyM0开发板,通过CK100仿真器下载程序。win10系统! …

本地部署 langchain-ChatGLM

本地部署 langchain-ChatGLM 1. 什么是 langchain-ChatGLM2. 什么是 langchain3. Github 地址4. 安装 Miniconda35. 创建虚拟环境6. 部署 langchain-ChatGLM7. 启动 langchain-ChatGLM8. 访问 langchain-ChatGLM9. API部署10. 命令行部署11. 其他,LangChain Documen…

深度学习—神经网络基础原理及循环神经网络

前向传播(Forward) 为什么要有激活函数 这里用两层来代表多层的神经网络举例:第一层的输出是第二层的输入,其中MM的W*X矩阵乘法,ADD是向量加法即加上偏置,如果每一层都只有线性变换,那么最终无…

RabbitMQ入门(详细)

RabbitMQ入门(详细) 初始消息队列消息队列初识为什么要使用消息队列?消息队列的特性 RabbitMQ介绍特点核心概念 Linux(CentOs7) 下安装:安装前配置:Erlang下载安装RabbitMQ下载安装linux下安装r…

泰安柒柒:国外问卷调查都有哪些题?

提到问卷调查我们并不陌生,它经常被用作调查市场、商品意见等多种调查中。不过,提到国外问卷调查,大家就比较陌生了。简单来说就是国外的一些企业或机构为了改进自己的商品或服务,会列出一些问题来让大众回答,并用付费…

配置 Ubuntu 的网络

一、三种联网的模式 1. 桥接 VMnet0------> 主机和 Ubuntu 都有一个 ip 地址 2. NAT 模式 VMnet8-------->Ubuntu 和主机是同一个 ip 地址 3. 主机模式 VMnet1-------> 只能和主机进行通信 二、网络配置 1. 虚拟机----->设置 2. 确保网络适配器是桥接模式或…

网络基础学习:osi网络七层模型

osi网络七层模型 什么是OSI,什么是ISO?为什么ISO要提出OSI网络七层模型?OSI七层的划分以及具体内容第七层 应用层第六层 表示层第五层 会话层第四层 传输层第三层 网络层第二层 数据链路层第一层 物理层 每一层与设备的对应关系 什么是OSI,什…

央国企专场培训:太极信创研习院第33期ITAIP信创精华班培训在常州成功举办

4月25-27日,由太极计算机股份有限公司(太极信创研习院)联合中国中车集团有限公司(科技质量与信息化部)、中车信息技术有限公司(中车学习培训发展中心)共同举办的“信息技术应用创新专业人员&…

Java并发编程实践学习笔记(三)——共享对象之可见性

目录 1 过期数据 2 非原子的64位操作 3 锁和可见性 4 Volatile变量(Volatile Variables) 在单线程环境中,如果向某个变量写入值,在没有其他写入操作的情况下读取这个变量,那么总能得到相同的值。然而&…

java状态机实现订单状态转移

一、状态机 状态机是状态模式的一种应用,相当于上下文角色的一个升级版。在工作流或游戏等各种系统中有大量使用,如各种工作流引擎,它几乎是状态机的子集和实现,封装状态的变化规则。状态机可以帮助开发者简化状态控制的开发过程…

APP界面设计都有哪些好用的软件推荐

基于APP界面的不同功能,所选择的APP界面设计软件也会有所不同。然而,并不是说所有的APP界面设计软件都非常精通,熟练地学习几个常用的APP界面设计软件。以下10个APP界面设计软件将为您的团队提供绘制APP界面所需的必要功能。 1.即时设计 即…

OpenCV-Python实战(7) —— OpenCV 实现抖音视频倒放效果

1. 需求分析 参考:十行Python代码制作一个视频倒放神器,由于最近在学习 OpenCV ,因此试着使用 OpenCV 进行实现,学以致用(胡乱折腾)。 需要视频倒放,因此需要读取视频cv.VideoCapture&#xff1…

一键docker搭建mysql主从环境

一键docker搭建mysql主从环境 初衷准备阶段操作阶段注意事项 初衷 一开始为了玩一下shared-jdbc,要搭Mysql主从环境,这玩意虽然搭好,之后使用要是网络问题,或者sql执行出错,还得重新调Binlog位置,麻烦得很…