《MATLAB智能算法30个案例》:第30章 极限学习机的回归拟合及分类——对比实验研究

  • 1. 前言
  • 2. MATLAB 仿真示例
  • 3. 小结

1. 前言

《MATLAB智能算法30个案例分析》是2011年7月1日由北京航空航天大学出版社出版的图书,作者是郁磊、史峰、王辉、胡斐。本书案例是各位作者多年从事算法研究的经验总结。书中所有案例均因国内各大MATLAB技术论坛网友的切身需求而精心设计,其中不少案例所涉及的内容和求解方法在国内现已出版的MATLAB书籍中鲜有介绍。《MATLAB智能算法30个案例分析》采用案例形式,以智能算法为主线,讲解了遗传算法、免疫算法、退火算法、粒子群算法、鱼群算法、蚁群算法和神经网络算法等最常用的智能算法的MATLAB实现。

本书共给出30个案例,每个案例都是一个使用智能算法解决问题的具体实例,所有案例均由理论讲解、案例背景、MATLAB程序实现和扩展阅读四个部分组成,并配有完整的原创程序,使读者在掌握算法的同时更能快速提高使用算法求解实际问题的能力。《MATLAB智能算法30个案例分析》可作为本科毕业设计、研究生项目设计、博士低年级课题设计参考书籍,同时对广大科研人员也有很高的参考价值。

《MATLAB智能算法30个案例分析》与《MATLAB 神经网络43个案例分析》一样,都是由北京航空航天大学出版社出版,其中的智能算法应该是属于神经网络兴起之前的智能预测分类算法的热门领域,在数字信号处理,如图像和语音相关方面应用较为广泛。本系列文章结合MATLAB与实际案例进行仿真复现,有不少自己在研究生期间与工作后的学习中有过相关学习应用,这次复现仿真示例进行学习,希望可以温故知新,加强并提升自己在智能算法方面的理解与实践。下面开始进行仿真示例,主要以介绍各章节中源码应用示例为主,本文主要基于MATLAB2015b(32位)平台仿真实现,这是本书第三十章极限学习机的回归拟合及分类——对比实验研究示例,话不多说,开始!

2. MATLAB 仿真示例

打开MATLAB,点击“主页”,点击“打开”,找到示例文件

选中main.m,点击“打开”

main.m源码如下:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%功能:极限学习机的回归拟合及分类——对比实验研究示例
%环境:Win7,Matlab2015b
%Modi: C.S
%时间:2022-07-09
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 清空环境
clc
clear all
close alltic
%% 第30章 极限学习机的回归拟合及分类——对比实验研究
% <html>
% <table border="0" width="600px" id="table1">   <tr>      <td><b><font size="2">该案例作者申明:</font></b></td>    </tr> <tr><td><span class="comment"><font size="2">1:本人长期驻扎在此<a target="_blank" href="http://www.matlabsky.com/forum-78-1.html"><font color="#0000FF">板块</font></a>里,对该案例提问,做到有问必答。</font></span></td></tr><tr> <td><span class="comment"><font size="2">2</font><font size="2">:此案例有配套的教学视频,视频下载请点击<a href="http://www.matlabsky.com/forum-91-1.html">http://www.matlabsky.com/forum-91-1.html</a></font><font size="2">。 </font></span></td> </tr>         <tr>      <td><span class="comment"><font size="2">       3:此案例为原创案例,转载请注明出处(《MATLAB智能算法30个案例分析》)。</font></span></td>   </tr>     <tr>      <td><span class="comment"><font size="2">       4:若此案例碰巧与您的研究有关联,我们欢迎您提意见,要求等,我们考虑后可以加在案例里。</font></span></td>    </tr> <tr>      <td><span class="comment"><font size="2">       5:以下内容为初稿,与实际发行的书籍内容略有出入,请以书籍中的内容为准。</font></span></td>  </tr> </table>
% </html>%% Part1:ELM的回归拟合——基于近红外光谱的汽油辛烷值预测
%% 训练集/测试集产生
load spectra_data.mat
% 随机产生训练集和测试集
temp = randperm(size(NIR,1));
% 训练集——50个样本
P_train = NIR(temp(1:50),:)';
T_train = octane(temp(1:50),:)';
% 测试集——10个样本
P_test = NIR(temp(51:end),:)';
T_test = octane(temp(51:end),:)';
N = size(P_test,2);%% 数据归一化% 训练集
[Pn_train,inputps] = mapminmax(P_train);
Pn_test = mapminmax('apply',P_test,inputps);
% 测试集
[Tn_train,outputps] = mapminmax(T_train);
Tn_test = mapminmax('apply',T_test,outputps);%% ELM创建/训练
[IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);%% ELM仿真测试
tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);
% 反归一化
T_sim = mapminmax('reverse',tn_sim,outputps);%% 结果对比
result = [T_test' T_sim'];
% 均方误差
E = mse(T_sim - T_test);
% 决定系数
N = length(T_test);
R2=(N*sum(T_sim.*T_test)-sum(T_sim)*sum(T_test))^2/((N*sum((T_sim).^2)-(sum(T_sim))^2)*(N*sum((T_test).^2)-(sum(T_test))^2)); %% 绘图
figure(1)
plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')
grid on
legend('真实值','预测值')
xlabel('样本编号')
ylabel('辛烷值')
string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};
title(string)%% Part2:ELM的分类——鸢尾花种类识别
clear all
clc%% 训练集/测试集产生
load iris_data.mat
% 随机产生训练集和测试集
P_train = [];
T_train = [];
P_test = [];
T_test = [];
for i = 1:3temp_input = features((i-1)*50+1:i*50,:);temp_output = classes((i-1)*50+1:i*50,:);n = randperm(50);% 训练集——120个样本P_train = [P_train temp_input(n(1:40),:)'];T_train = [T_train temp_output(n(1:40),:)'];% 测试集——30个样本P_test = [P_test temp_input(n(41:50),:)'];T_test = [T_test temp_output(n(41:50),:)'];
end%% ELM创建/训练
[IW,B,LW,TF,TYPE] = elmtrain(P_train,T_train,20,'sig',1);%% ELM仿真测试
T_sim_1 = elmpredict(P_train,IW,B,LW,TF,TYPE);
T_sim_2 = elmpredict(P_test,IW,B,LW,TF,TYPE);%% 结果对比
result_1 = [T_train' T_sim_1'];
result_2 = [T_test' T_sim_2'];
% 训练集正确率
k1 = length(find(T_train == T_sim_1));
n1 = length(T_train);
Accuracy_1 = k1 / n1 * 100;
disp(['训练集正确率Accuracy = ' num2str(Accuracy_1) '%(' num2str(k1) '/' num2str(n1) ')'])
% 测试集正确率
k2 = length(find(T_test == T_sim_2));
n2 = length(T_test);
Accuracy_2 = k2 / n2 * 100;
disp(['测试集正确率Accuracy = ' num2str(Accuracy_2) '%(' num2str(k2) '/' num2str(n2) ')'])%% 绘图
figure(2)
plot(1:30,T_test,'bo',1:30,T_sim_2,'r-*')
grid on
xlabel('测试集样本编号')
ylabel('测试集样本类别')
string = {'测试集预测结果对比(ELM)';['(正确率Accuracy = ' num2str(Accuracy_2) '%)' ]};
title(string)
legend('真实值','ELM预测值')
toc
%%
% <html>
% <table width="656" align="left" > <tr><td align="center"><p align="left"><font size="2">相关论坛:</font></p><p align="left"><font size="2">Matlab技术论坛:<a href="http://www.matlabsky.com">www.matlabsky.com</a></font></p><p align="left"><font size="2">M</font><font size="2">atlab函数百科:<a href="http://www.mfun.la">www.mfun.la</a></font></p></td>    </tr></table>
% </html>

添加完毕,点击“运行”,开始仿真,输出仿真结果如下:

训练集正确率Accuracy = 98.3333%(118/120)
测试集正确率Accuracy = 93.3333%(28/30)
时间已过 2.327138 秒。


3. 小结

前向神经网络(feed-forward neural networks)的训练速度比人们所期望的速度要慢很多。并且,在过去的几十年中,前向神经网络在应用领域存在着很大的瓶颈。导致这一现状的两个关键因素就是:

  1. 神经网络的训练,大多使用基于梯度的算法,而这种算法的训练速度有限;
  2. 使用这种训练算法,在迭代时,网络的所有参数都要进行更新调整。

在2004年,由南洋理工学院黄广斌教授所提出的极限学习机器(Extreme Learning Machine,ELM)理论可以改善这种情况。最初的极限学习机是对单隐层前馈神经网络(single-hidden layer feed-forward neural networks,SLFNs)提出的一种新型的学习算法。它随机选取输入权重,并分析以决定网络的输出权重。对本章内容感兴趣或者想充分学习了解的,建议去研习书中第三十章节的内容。后期会对其中一些知识点在自己理解的基础上进行补充,欢迎大家一起学习交流。

《MATLAB智能算法30个案例》:第30章 极限学习机的回归拟合及分类——对比实验研究相关推荐

  1. [Python从零到壹] 十四.机器学习之分类算法五万字总结全网首发(决策树、KNN、SVM、分类对比实验)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  2. 精通matlab智能算法pdf下载 温正,精通MATLAB智能算法

    精通MATLAB智能算法 编辑 锁定 讨论 上传视频 <精通MATLAB智能算法>是2015年4月清华大学出版社出版的图书,作者是温正. 书    名 精通MATLAB智能算法 作     ...

  3. 《MATLAB智能算法30个案例》:第19章 基于模拟退火算法的TSP算法

    <MATLAB智能算法30个案例>:第19章 基于模拟退火算法的TSP算法 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案例分析&g ...

  4. 《MATLAB智能算法30个案例》:第20章 基于遗传模拟退火算法的聚类算法

    <MATLAB智能算法30个案例>:第20章 基于遗传模拟退火算法的聚类算法 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案例分析& ...

  5. 《MATLAB智能算法30个案例》:第27章 无导师学习神经网络的分类——矿井突水水源判别

    <MATLAB智能算法30个案例>:第27章 无导师学习神经网络的分类--矿井突水水源判别 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法3 ...

  6. MATLAB智能算法30个案例分析pdf

    下载地址:网盘下载 MATLAB智能算法30个案例分析,ISBN:9787512403512,作者:史峰,王辉 等编著 下载地址:网盘下载 转载于:https://www.cnblogs.com/cf ...

  7. 《MATLAB智能算法30个案例》:第25章 有导师学习神经网络的回归拟合——基于近红外光谱的汽油辛烷值预测

    <MATLAB智能算法30个案例>:第25章 有导师学习神经网络的回归拟合--基于近红外光谱的汽油辛烷值预测 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MA ...

  8. 《MATLAB智能算法30个案例》:第12章 免疫优化算法在物流配送中心选址中的应用

    <MATLAB智能算法30个案例>:第12章 免疫优化算法在物流配送中心选址中的应用 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB智能算法30个案 ...

  9. MATLAB智能算法30个案例分析.史峰等

    <MATLAB智能算法30个案例分析>是2011年由北京航空航天大学出版社出版的图书,作者是郁磊.史峰.王辉.胡斐- <MATLAB智能算法30个案例分析>是作者多年从事算法研 ...

最新文章

  1. 基于SOA分布式架构的dubbo框架基础学习篇
  2. css动画Demo---水波动画和边框动画
  3. 【DP优化】【P1430】序列取数
  4. 【java】java开发中的23种设计模式详解
  5. RunJar是什么进程?
  6. php安装,PHP安装
  7. java sql 创建触发器_SQL Server创建触发器
  8. PyTorch 1.8 发布,支持 AMD,优化大规模训练
  9. Xshell/Xftp个人完全免费版
  10. PhotoShop .psd文件格式读取分析(结合unity)
  11. 武汉芯源CW32L083系列MCU在空气净化器的应用介绍
  12. 使用C# 开发Pocket PC 应用程序(转)
  13. iOS开发雕虫小技之傻瓜式定位神器-超简单方式解决iOS后台定时定位
  14. Gitlab修改文件上传10M大小限制
  15. 三方平台与对象存储对接后的应用场景及接口说明
  16. pythonrequests请求https错误_如何解决python之requests安全证书(HTTPS请求)问题?
  17. 开源倾情奉献:基于.NET打造IP智能网络视频监控系统
  18. 光场相机重聚焦--焦点堆栈深度估计法
  19. HC-05蓝牙模块,在AT指令模式时输出AT+NAME?无应答问题
  20. 坯子库无法一键安装插件没用_坯子插件库:安装与使用

热门文章

  1. 计算机文字排版竞赛标准,文字录入与排版高手竞赛方案(Word2010)
  2. JIT-即时编译技术
  3. 【转载】阿里技术专家详解DDD系列 第二讲 - 应用架构
  4. RegExp在IE8等浏览器中的兼容性问题
  5. REDMI K30 5G 刷EU版 magisk
  6. Lformat 低格教程
  7. vagrants流浪者全人物防具
  8. Excel复制到Origin中的数据最多只有65535行,怎么解决?
  9. 300多款思维导图模版,助力CSDN平台的程序员们梳理技能知识点,速度收藏!
  10. (二)python编辑PDF文件:pdfplumber库操作