QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2844|回复: 0
打印 上一主题 下一主题

ELM的回归拟合——基于近红外光谱的汽油辛烷值预测鸢尾花种类识别

[复制链接]
字体大小: 正常 放大

1198

主题

4

听众

2978

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:
8 J' U4 l- f& H  j2 J
: A  M& B5 B: f1.数据加载和划分:
5 d- H! q$ E- |0 H6 `% \5 L/ ^1 R7 V% t/ n+ \' @
2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。$ }4 [! _9 E  @2 M5 U7 w
3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat
    3 L. J8 ^, Q/ u1 o4 M+ s: s

  2. & A5 H2 }8 [$ E. ~5 V+ N0 d
  3. temp = randperm(size(NIR,1));\" J. H/ o+ U3 d# x+ G  F

  4. 9 G9 K+ T. Y' E5 L
  5. P_train = NIR(temp(1:50),:)';9 A+ E7 O# A- I3 e) E: k5 @7 V
  6. ! j. y, W8 W# A* ^6 n/ {* O* {+ H\" r
  7. T_train = octane(temp(1:50),:)';
    ) f! ]4 F$ t; |6 Z9 s& z- i

  8. 4 J* q) Q, @4 N' D: F) p. V8 Z
  9. P_test = NIR(temp(51:end),:)';; n0 m7 t3 c7 q6 w# H

  10. ; L9 U5 u1 Z. `4 v+ F# {; b
  11. T_test = octane(temp(51:end),:)';
    9 k+ ^6 K2 L% K$ t9 u5 o) r) j

  12. % h2 M! q: f! f; x\" \+ b
  13. N = size(P_test,2);
复制代码
4.数据归一化:; L: q" R5 |$ d: g+ z7 M$ K

9 Y: J+ ]& |  _# y' u6 s( |5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);
    . J6 c4 T9 Q+ E3 Q* s7 P0 M
  2. - n6 }- A8 c* {. z+ x8 }
  3. Pn_test = mapminmax('apply',P_test,inputps);) z. P, d0 o) X! j  }: t  m+ |

  4. 5 t6 D# ~\" w% N2 J4 b& s( y
  5. [Tn_train,outputps] = mapminmax(T_train);
    , z4 i& P8 c1 C

  6. 5 M, O7 A9 e* l$ {$ m  _- z. V
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:
0 z+ G  p5 A6 ~4 G4 i  b9 o
% @5 a# d! g$ C0 P# X, w1 Y1 A; _- @: T1 O$ E3 ~3 o
7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:
. L6 @% j. Q  ^( ^5 R9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);
    * I& n9 c1 n5 n. ]. }
  2. 0 K1 G. s* T8 b; R5 W\" C2 {* M( F+ [
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:
/ p5 G% j. T& J6 N# K11.将真实值和预测值组合成一个矩阵 result。
! E+ S1 M: y7 B: E% w. C12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];! m7 s# T2 v/ t1 x+ j
  2. 3 Q- ?9 N, I. j0 B* T1 U/ P$ j7 r
  3. E = mse(T_sim - T_test);
    . R' f& H/ t6 Q# @

  4. : C4 J6 P, {  @8 J  R# u  U
  5. N = length(T_test);
    / e: o# @7 l3 i$ p% W3 _\" b
  6. + @. @; e# X# V( o9 m2 P1 F
  7. 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));
复制代码
13.结果可视化:
& r2 g) i9 s0 }2 i' s14.绘制真实值和预测值的对比图。
. z0 _- i- P" y( _! t15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)' @: a) W) I, G$ s5 M7 A9 S

  2. 7 G. K\" D! E: G  \  R& i# E
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')
    ; ~: q\" E) ~3 b9 I/ g0 a% v  {8 j
  4. - L* l( I3 p& w/ K\" [3 p
  5. grid on7 \$ c+ i* j& t' P* K4 W

  6. # _4 m8 t. g) F' f5 x9 v: w$ r
  7. legend('真实值','预测值'); {* Z6 c2 k. S& I+ V1 e
  8. 1 ]: U% }- o. U% L* {
  9. xlabel('样本编号')
    . ^$ g. z) `9 I/ ^* Z

  10. - _; K+ u\" C1 }5 U
  11. ylabel('辛烷值')
    : y3 I, x( M- r6 }# o5 T8 X- k
  12. $ Z% J  w. w- E2 [3 q) l) z
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};( O0 n& U9 P: e5 K% _\" m: {
  14. 5 M' q/ L* {  g7 V# N& @
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。
6 n# L  h6 e- d0 g; P. r- G: q/ k2 @9 S4 D; }# R, |/ R
VeryCapture_20231122173210.jpg
, M9 h, D4 v( w1 a! \
/ k4 I) W# k  V4 E

chapter30 极限学习机的回归拟合及分类——对比实验研究.rar

171.96 KB, 下载次数: 0, 下载积分: 体力 -2 点

售价: 2 点体力  [记录]  [购买]

zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-10-15 08:53 , Processed in 1.425052 second(s), 57 queries .

回顶部