基于探路者算法优化的核极限学习机(KELM)回归预测-程序员宅基地

技术标签: 算法  机器学习  # 核极限学习机(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 β=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()为核函数。

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

2.回归问题数据处理

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

4.基于探路者算法优化的KELM

探路者算法原理请参考:https://blog.csdn.net/u011835903/article/details/112292996

由前文可知,本文利用探路者算法对正则化系数 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代码

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u011835903/article/details/137091239

智能推荐

oracle新建用户、授权、修改密码、分配表空间、导入导出数据_oracle授权用户插入修改表-程序员宅基地

文章浏览阅读446次,点赞2次,收藏4次。oracle新建用户、授权、修改密码、分配表空间、导入导出数据**一**:在pl/sql中新建用户:一:在pl/sql中新建用户:创建用户: create user 用户名 identified by 密码; ;给用户授权:grant dba to 用户名;修改密码:alter user 用户名 identified by 新密码;创建表空间:create tablespace 表空间..._oracle授权用户插入修改表

Matlab 实验3《LSB与信息隐藏》_图像lsb清0-程序员宅基地

文章浏览阅读2k次。实验3《LSB与信息隐藏》3.1上机内容与要求3.1.1 写出“图像LSB清0”伪C语言描述的算法、原理与步骤;实验原始图像和不同位清0时载体图像的差别。3.1.2 写出“随机选取图像载体像素点,在LSB上信息隐藏嵌入过程和提取过程”原理与步骤;实验隐藏大小不同的信息时原始图像和载体图像的差别。3.2 实验过程分析3.2.1 写出“图像LSB清0”伪C语言描述的算法、原理与步骤;实验原始图像和不同位清0时载体图像的差别。Matlab语言:function data = shiyan3( )d_图像lsb清0

[ext4]空间管理 - 与分配相关的关键数据结构-程序员宅基地

文章浏览阅读173次。在块分配机制中,涉及到几个主要的数据结构。通过ext4_allocation_request描述块请求,然后基于块查找结果即上层需求来决定是否执行块分配操作。在分配过程中,为了更好执行分配,记录一些信息,需要对分配行为进行描述,就有结构体ext4_allocation_contex。在搜寻可用空间过程中,是有可能使用预分配空间的,因此还需要有能够描述预分..._ext4_num_b2c

001使用smokeping监控idc机房网络质量情况-程序员宅基地

文章浏览阅读80次。最近工作比较忙,也没有时间写博客,看到好友芮峰云最近一直在写博客,所以也手痒了,就先把之前的一些积累下来的文章分享给大家。本文是介绍如何的使用smokeping来监控idc机房的网络质量情况,从监控图上的延时与丢包能分辨出你机房的网络是否稳定,是否为多线,是否为BGP机房,到各城市的3个运行商网络各是什么情况,如果出现问题,如果有针对的解决。而且如果选择新机房的时候,你可以根据smokepin..._smokeping 延迟与丢包数值

win10分辨率不能调整_笔记本win10系统调整外接显示器分辨率的方法-程序员宅基地

文章浏览阅读2.3k次。现在有很多用户外出都喜欢带笔记本电脑,而笔记本电脑的屏幕比较小,分辨率也比不上台式机,有些用户有时候会将笔记本电脑连接到显示器上面看电影,这样子的观影感受会更加逼真,但是有些笔记本win10系统用户不知道要怎么调整外接显示器分辨率,针对这个问题,小编就给大家讲解一下笔记本win10系统调整外接显示器分辨率的方法吧。1、有些用户会使用【复制】,其实这个是错误的方法,很有可能会造成显示异常;2、同时按..._笔记本外接显示器不能调分辨率

记一次奇怪bug。getmapping传多个请求,之前一直可以访问后面的请求,但是突然请求访问404。_@getmapping 404-程序员宅基地

文章浏览阅读648次。controller请求这是之前代码,以前一直可以访问http://localhost:8080/list?page=2。但是突然的,有时候可以访问,但是page值传不过去,有时候访问直接404.这是什么原因啊?哪位大佬能回答下。//之前又是报错,又是不报错代码 @GetMapping(value={"/","/list?page"}) @GetMapping({"/toUserIndex","/userIndex?page"}) //新代码 @GetMapping(value={"/","/_@getmapping 404

随便推点

Vitamio中文API文档(3)—— MediaController-程序员宅基地

文章浏览阅读67次。类概述 public classMediaControllerextendsFrameLayout 一个包含媒体播放器(MediaPlayer)的媒体控制条。通常包括“播放/暂停”和SeekBar。它管理MediaPlayer的状态以保持控件的同步。 使用这个类的方法: a). 通过编程来实例化这个类。 这个媒体控制器将创建一个具有默..._vitamio mediacontroller

2017CCPC秦皇岛 H题Prime Set&&ZOJ3988-程序员宅基地

文章浏览阅读111次。题意:定义一种集合,只有两个数,两个数不同且加起来为素数。要从n个数里抽出数字组成该集合(数字也可以是1~n,这个好懵圈啊),要求你选择最多k个该种集合组成一个有最多元素的集合,求出元素的数量。思路:代码:#include <iostream>#include <cstdio>#include <algorithm>#in..._2017ccpc秦皇岛 h

【科研】沈向洋、华刚:读科研论文的三个层次、四个阶段与十个问题_沈向洋博士 论文十问-程序员宅基地

摘要:本文讨论了读科研论文的三个层次(速读、精读、研读)、四个阶段(快速阅读、仔细阅读、批判性阅读、创造性阅读)以及需要关注的十个问题。分析了为什么读论文难,提供了读标题、摘要和引言的方法。同时还强调了与导师保持沟通的重要性。

jk触发器上升沿怎么看_jk触发器波形图_jk触发器波形图怎么画-程序员宅基地

文章浏览阅读8.9k次,点赞3次,收藏4次。设主从JK触发器的原状态为1,按照图4.1(a)所给出的J、K、CP输入波形,画出触发器Q端的工作波形。解:此题信号K的某些跳变与CP脉冲的跳变发生在同一时刻,这是初学者容易感到疑惑的地方,所以要注意到,画Q次态波形时应看CP脉冲下降沿前一刻的J、K值。画波形时,从第1个CP脉冲开始分析,看它的下降沿前的J、K为何值,再根据JK触发器真值表所述的功能,确定Q的次态,也就是CP脉冲下降沿触发以后Q的..._cp脉冲波形图怎么画

流水线 面试题 linux,Jenkins打造多分支流水线指南-程序员宅基地

文章浏览阅读584次。overview:多分支工作流程带来了以下几个关键能力:在代码仓库中,每个新分支都有自己单独的工作流水线(job)。每个工作流水线都记录了对应分支的构建和变更历史。可以自定义设置流水线随着分支的删除而删除或修建。通过重写父属性(如果需要),可以灵活地单独配置分支流水线属性。Jenkins pipeline-as-code 使您可以在项目/应用程序源代码存储库中维护CI / CD工作流逻辑,而无需在..._jenkins面试题

互联网软件开发—— 实验三 JSP 内置对象(留言板)_request.getparameter("titletext").tostring()-程序员宅基地

文章浏览阅读2.2k次。实验名称: 实验三 JSP 内置对象一、实验目的1、掌握表单提交及页面间参数传递的方法。2、理解页面转发与重定向之间的区别。3、掌握 request、session 和 application 等内置对象的常用 API。二、实验内容和要求1、对实验二的内容进行扩展,编写以下 JSP 文件。(1) login.jsp:登录页面,如下图所示。(2) doLogin.jsp:登录处理页面,假定合法的用户名均以“ahpu_”开头且长度介于 6 至 12,密码均为“123”。若用户名或密码不正确则_request.getparameter("titletext").tostring()