QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:3 A2 ~+ E& s3 i/ G

$ x' T6 S' \6 i6 E6 r1.数据加载和划分:
5 |8 _1 V4 t) X3 D( W5 x  H2 K
  c; L- ]1 u! i8 R5 e6 {& {7 |. O& E2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。
% H) `. G" j' _) O9 e1 _3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat+ J, j+ ?) K9 ?/ ]
  2. \" b' f+ u1 B! a1 J
  3. temp = randperm(size(NIR,1));2 x! D/ B4 l3 D0 S' z6 b
  4. 5 B; z9 x4 @- e# `. X8 y% t$ b
  5. P_train = NIR(temp(1:50),:)';
    * v\" f, O; B. K7 l' ?& s8 w- c! e3 y

  6. / c# e. w4 g' ^  T+ [8 U- x
  7. T_train = octane(temp(1:50),:)';/ E1 X$ `. u/ k( f

  8. 5 |$ d1 W3 i7 C' r$ t
  9. P_test = NIR(temp(51:end),:)';
    1 P  ?5 T  n, C$ t3 ~\" R. S
  10. ; {2 f1 X3 Y% Y; N8 t
  11. T_test = octane(temp(51:end),:)';3 C7 ~- H1 Y$ I1 r; h0 i$ Q1 M
  12. + ^0 R: Z8 d- b; ~0 ^
  13. N = size(P_test,2);
复制代码
4.数据归一化:7 y: r9 c) q4 ]
+ t# ?& e  C% o0 c4 g. K
5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);* s; K( m9 ]8 e% x! c3 V
  2. 6 U) \4 e1 e& }& |
  3. Pn_test = mapminmax('apply',P_test,inputps);
    # ~1 P0 n/ r( A0 {+ j
  4. 5 e4 f4 P9 u5 `6 T5 u! _2 I
  5. [Tn_train,outputps] = mapminmax(T_train);
    6 R* e; c6 q! e, g

  6. 3 k8 Y2 ]  h( b3 K
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:
% t, g* W- |7 M8 o! n/ S' Z# Q( I3 u: X1 k+ R

  Q3 r5 W. y1 G: @% ?% E: Q1 k' j( s7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:, A( o. I7 a9 M2 @
9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);
    ; k% z+ X6 P- V2 D( V  I2 r
  2. 0 y; ~( u% s# T- H
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:
9 T4 K8 f# `8 `11.将真实值和预测值组合成一个矩阵 result。: w0 P" F, h: \- {
12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];
      o) m6 P1 ~) x3 \* E& L

  2. 5 @) `/ c; n, }
  3. E = mse(T_sim - T_test);; L* R3 a3 [- T; `

  4. 1 H3 j! D/ q% y. n
  5. N = length(T_test);
    : s( V2 r& X% _/ W7 l' M9 B8 z* m

  6. % \6 D# J2 n$ F3 U9 N1 U
  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.结果可视化:+ e6 r" f5 ]1 t: y- w
14.绘制真实值和预测值的对比图。4 J; u3 L7 F& r, i) L+ }
15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)
    ) L% c9 N/ d/ D3 W1 R\" [

  2. 3 @( D6 y/ g# v/ [8 z1 e5 ^
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')5 p7 k+ h- B( d0 m  G+ m7 v8 G

  4. 2 k9 v- N; X/ ]9 C1 f- t6 S
  5. grid on  z5 d9 l. R, d( k
  6.   O, |( c6 ~4 A
  7. legend('真实值','预测值')7 w+ L# G8 d3 g+ L: F2 T. i

  8. ' u6 w$ d; c4 `% y+ b8 o
  9. xlabel('样本编号')
    4 V* L4 v! W/ }, M\" N( e0 q
  10. 8 _. ^9 E\" W$ ]( M: H
  11. ylabel('辛烷值')
    & ^2 a5 b+ q# k8 m- @- o! r5 j

  12. / a( _3 N* j5 t! l1 O  T! I2 F- m3 p
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};# l% G* M0 j, v; K$ p7 D1 k; F

  14. # a7 d: B0 m( N* R+ K% m
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。# X: J- @( e& j9 P
4 ?( n& L7 d/ r7 o0 Z
VeryCapture_20231122173210.jpg
2 }4 C! f% M# T5 A; p2 M/ z4 i
" }1 Q+ w" G1 d! Z$ }9 d

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-6-8 21:26 , Processed in 0.605895 second(s), 55 queries .

回顶部