首页 > 编程语言 >基于蜜獾算法优化的核极限学习机(KELM)回归预测

基于蜜獾算法优化的核极限学习机(KELM)回归预测

时间:2024-04-05 10:33:14浏览次数:25  
标签: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()为核函数。

正则化系数 C 和核函数参数 S 需要人为设定,两者的设定将对 KELM的预测性能具有一定影响。

2.回归问题数据处理

采用随机法产生训练集和测试集,其中训练集包含 1 900 个样 本,测试集包含 100 个样本。为了减少变量差异较大对模型性能的影响,在建立模型之前先对数据进行归一化。选取核函数为rbf 高斯核函数,利用蜜獾算法对正则化系数 C 和核函数参数 S 选取进行优化。

4.基于蜜獾算法优化的KELM

蜜獾算法原理请参考:https://blog.csdn.net/u011835903/article/details/122236413

由前文可知,本文利用蜜獾算法对正则化系数 C 和核函数参数 S 进行优化。适应度函数设计为训练集的误差的MSE:
f i t n e s s = a r g m i n ( M S E p r i d e c t ) fitness = argmin(MSE_{pridect}) fitness=argmin(MSEpridect​)

适应度函数选取训练后的MSE误差。MSE误差越小表明预测的数据与原始数据重合度越高。最终优化的输出为最佳正则化系数 C 和核函数参数 S。然后利用最佳正则化系数 C 和核函数参数 S训练后的网络对测试数据集进行测试。

5.测试结果

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

可以看出无论是在测试集和训练集上蜜獾优化的KELM结果均更优。

6.Matlab代码

标签:ELM,KELM,学习机,函数参数,算法,优化
From: https://blog.csdn.net/u011835903/article/details/137294463

相关文章

  • FOC算法中为啥用PWM触发ADC中断
    在FOC(FieldOrientedControl,场向量控制)算法中,为什么要使用PWM(PulseWidthModulation,脉宽调制)触发ADC(Analog-to-DigitalConverter,模数转换器)中断呢?在FOC中,PWM被用来控制电机的相电流,以实现精确的控制。通过改变PWM信号的占空比,可以调节电机的转速和转矩。而为了实现精确的控......
  • 【蓝桥杯选拔赛真题56】C++求位数 第十四届蓝桥杯青少年创意编程大赛 算法思维 C++编
    目录C++求位数一、题目要求1、编程实现2、输入输出二、算法分析三、程序编写四、程序说明五、运行结果六、考点分析七、推荐资料C++求位数第十四届蓝桥杯青少年创意编程大赛C++选拔赛真题一、题目要求1、编程实现给定一个正整数N(1<N<10^8),输出N为几位数2、......
  • 《机器学习算法面试宝典》正式发布!
    大家好,历时半年的梳理和修改,《机器学习算法面试宝典》(以下简称《算法面试宝典》)终于可以跟大家见面了。近年来,很多理科专业学生也纷纷转入算法赛道,特别是最近ChatGPT的爆火,推动了AI技术圈对大模型的研究热情,AI就业市场人数越来越多,算法岗已成进入了竞争难度第一梯度(超......
  • C111【模板】莫队算法 P2709 小B的询问
    视频链接:C111【模板】莫队算法P2709小B的询问_哔哩哔哩_bilibili   LuoguP2709小B的询问//普通莫队O(n*sqrt(n))#include<iostream>#include<cstring>#include<algorithm>#include<cmath>usingnamespacestd;constintN=50005;intn,m,k,B,a[N];......
  • Offer必备算法21_回文串dp_六道力扣题详解(由易到难)
    目录①力扣647.回文子串解析代码②力扣5.最长回文子串解析代码③力扣1745.分割回文串IV解析代码④力扣132.分割回文串II解析代码⑤力扣516.最长回文子序列解析代码⑥力扣1312.让字符串成为回文串的最少插入次数解析代码本篇完。①力扣647.回文子串64......
  • SCI一区 | Matlab实现NGO-TCN-BiGRU-Attention北方苍鹰算法优化时间卷积双向门控循环
    SCI一区|Matlab实现NGO-TCN-BiGRU-Attention北方苍鹰算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测目录SCI一区|Matlab实现NGO-TCN-BiGRU-Attention北方苍鹰算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测预测效果基本介......
  • 操作系统综合题之“采用短进程优先调度算法(Shortest-Process-First,SPF)和先来先服务调
    一、问题:某系统中有四个进程,他们进入系统的时间和需要服务的时间如题下表所示(表中数值均为十进制)进程进入系统的时间需要服务的时间P10100P21060P32525P43540 1.采用先来先服务调度算法(FCFS)时,填写题表,并及计算平均周转时间(四舍五入,保留小数后两位......
  • 代码随想录算法训练营第一天 | 704.二分查找、27.移除元素
    704.二分查找文档讲解:代码随想录(https://www.programmercarl.com/)视频讲解:https://www.bilibili.com/video/BV1fA4y1o715/状态:704有思路但是不完善题目给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下......
  • 操作系统综合题之“短进程优先调度算法(Shortest-Process-First,SPF)计算平均周转时间以
    一、问题:有4个进程A、B、C、D,他们的到达时间、预计运行时间以及优先级数值(优先级数值越小,表示优先级越高)如下表所示。(注:精确到小数点后2位) 1.请计算采用短进程优先调度算法的平均周转时间和平均带权周转时间2.请计算采用抢占式优先调度算法的平均周转时间和平均带权周转时间......
  • 贪心算法——多机调度问题
    问题描述下面用一道2013上半年软件设计师的软考题来说明这个问题。   设有M台完全相同的机器运行N个独立的任务(任务不可分割),运行任务i所需要的时间为,要求确定一个调度方案,使得完成所有任务所需要的时间最短,任务运行时独占机器。   这里要求定义的变量如......