首页 > 编程语言 >基于饥饿游戏算法优化的核极限学习机(KELM)分类算法

基于饥饿游戏算法优化的核极限学习机(KELM)分类算法

时间:2024-03-19 22:04:40浏览次数:33  
标签:游戏 ELM KELM 饥饿 学习机 算法

基于饥饿游戏算法优化的核极限学习机(KELM)分类算法

文章目录


摘要:本文利用饥饿游戏算法对核极限学习机(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 β=H∗⋅L 确定,其中, 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/122305294

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

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

从结果可以看出,饥饿游戏-KELM明显优于原始KELM算法

5.Matlab代码

标签:游戏,ELM,KELM,饥饿,学习机,算法
From: https://blog.csdn.net/u011835903/article/details/136856449

相关文章

  • Floyd算法学习笔记
    Floyd算法学习笔记前言如有错误,欢迎各位dalao批评指出。前置芝士:1.邻接矩阵(Floyd要用邻接矩阵存图)2.动态规划思想(最好学过,没学过也没有太大影响)1.Floyd所解决问题的类型我们可以发现,如Dijkstra,SPFA,BellmanFord一类的最短路算法都是解决单源点最短路问题,也就是确......
  • dijkstra算法详解
    今天给大家讲解\(dijkstra\)图论最短路算法在讲解\(dijkstra\)算法之前,先来给大家讲解一下图论中的松弛操作。松弛,即\(relaxtion\),是一种编程学术语。举例说明,例如我们可以从某个机场坐飞机达到若干个机场,然后从这些机场出发,我们又需做火车前往若干个城镇。现在假设我们手里......
  • 代码随想录算法训练营day28 | leetcode 93. 复原 IP 地址、78. 子集、90. 子集 II
    目录题目链接:93.复原IP地址-中等题目链接:78.子集-中等题目链接:90.子集II-中等题目链接:93.复原IP地址-中等题目描述:有效IP地址正好由四个整数(每个整数位于0到255之间组成,且不能含有前导0),整数之间用'.'分隔。例如:"0.1.2.201"和"192.168.1.1"是有效IP......
  • 【蓝桥杯选拔赛真题70】python最短路径和 第十五届青少年组蓝桥杯python选拔赛真题 算
    目录python最短路径和一、题目要求1、编程实现2、输入输出二、算法分析三、程序编写四、程序说明五、运行结果六、考点分析七、 推荐资料1、蓝桥杯比赛2、考级资料3、其它资料python最短路径和第十五届蓝桥杯青少年组python比赛选拔赛真题一、题目要求(注:i......
  • 监督学习算法——决策树
    本篇承接上篇文章监督学习算法——线性模型决策树importsyssys.pathmglearn.plots.plot_animal_tree()1.构建决策树我们在下图所示的二位分类数据集上构造决策树。这个数据集由2个半月形组成,每个类别都包含50个数据点。我们将这个数据集称为two_moons。学习决策......
  • raft算法和etcd代码解析-1.raft基本概念
    笔记导言该系列笔记用于GO语言和RAFT算法学习前部分介绍raft算法后部分介绍etcd代码etcd源码来自github,版本主要为ectd-3.1.5本文主要根据视频:<<raft算法工程案例之etcd源码导读>><<解析分布式共识算法之Raft算法>>以上视频作者主页:https://space.bilibili.com/317473362......
  • 高精度算法(大数的加、减、乘、除)
    在C/C++中,int占一个机器字长,32位机中则占4个字节,即[-2^31,2^31-1](10的9次方数量级)。不管是32位还是64位机,longlong占8个字节,即[-2^63,2^63-1](10的18次方数量级)。如果超过该数量级,应该使用高精度算法。1加1、将两个加数逆序存储在两个int数组中。(逆序的原因是方便操作和数......
  • 实现数据结构与算法学习笔记(java)——顺序表顺序栈代码实现
    顺序表实现顺序栈实现......
  • c++学习记录 STL—常用查找算法
    一、算法简介find               //查找元素find_if             //按条件查找元素adjacent_find       //查找相邻重复元素binary_search      //二分查找法count        ......
  • 高精度AI火灾烟雾检测算法,助力打造更加安全的楼宇环境
    一、方案背景近日,南京居民楼火灾事故导致15人死亡的新闻闹得沸沸扬扬,这一事件又激起了大家对楼宇火灾隐患的进一步担忧。事后我们除了思考政府、消防及物业部门应对此事的解决办法,我们还应该思考如何利用现有的技术帮助人们减少此类事情的发生。二、方案概述含有AI智能分析高精......