QQ登录

只需要一步,快速开始

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

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

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:8 s- E4 J0 S0 @% {) W9 I4 W' B
9 \; x$ v: O* d' u) Z+ \
1.数据加载和划分:
6 \. z8 a$ x- ~6 p" X9 G; n5 \
4 K. \- h+ n& ~2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。
$ C6 K; S3 \( G8 r7 u9 a3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat
    7 }1 a& a: a' ^% H9 ~
  2. & Q8 z, u8 [& L& u) R# c/ {  N& F
  3. temp = randperm(size(NIR,1));5 q+ U9 Q7 Z6 U$ x! D( X% p
  4. 0 D+ }3 q' Z) t2 f/ j
  5. P_train = NIR(temp(1:50),:)';/ @! [) K- B% Q0 _
  6. ) g) i+ }* q+ b: U\" T) h
  7. T_train = octane(temp(1:50),:)';' H$ _\" D. W2 l+ N' J. J/ @8 E
  8. , _! o/ E* I. ~2 F- _+ J5 X
  9. P_test = NIR(temp(51:end),:)';3 ~( Z* |) T2 N+ X
  10. + {7 E0 h, I. y( b
  11. T_test = octane(temp(51:end),:)';! y\" X( d2 r& H: i  G' x& `! I

  12. 1 J7 W% k6 `% ~. S  b5 t9 h& C4 g
  13. N = size(P_test,2);
复制代码
4.数据归一化:  g) |! j! G0 y' Y4 e

1 k& E8 Y  \+ h+ t' o5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);
    9 _. g9 x! v# ^* f9 r
  2. 5 r0 X4 @- _% P3 ~4 i# k
  3. Pn_test = mapminmax('apply',P_test,inputps);
    ; c% w3 I3 |! D
  4. , x9 j. c5 L0 _* |- ]- C3 g
  5. [Tn_train,outputps] = mapminmax(T_train);
    . R\" }# Z+ O5 ~# K$ O1 C
  6. 4 X: ?% \4 n3 i5 n6 H$ h  E. e0 f
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:
2 H6 o0 p7 D5 o$ o7 V3 s+ M2 N: t' |5 `

9 v& |7 ^3 i3 b* k7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:1 s8 h3 y% S+ {% ~
9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);: {  D1 M8 F. c) a) ^

  2. ( ~- ]! a5 q- I7 o  H& t
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:
& ^7 k. V) r5 v7 |11.将真实值和预测值组合成一个矩阵 result。
' o1 H9 P/ a. N3 t) s1 K12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];1 I, [6 {: B\" L9 H! Y: c$ z/ [, C
  2. 4 s1 w9 Z9 K6 ~' O) ~
  3. E = mse(T_sim - T_test);7 u3 Q8 }/ u2 h9 ?2 p  u

  4. & k& z4 R$ v8 R8 M) K6 m1 R
  5. N = length(T_test);1 m% K- @7 G4 d+ d, P

  6. * L% e  U1 b4 M5 z
  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.结果可视化:, U* u9 K# u3 ]0 o6 }+ ?) e% ?- C; ?
14.绘制真实值和预测值的对比图。! |, i: J( k. H2 R, q6 m
15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)( N- J9 j; b' z) q( K$ t

  2. 5 c+ [2 D9 m' g  z\" O- W  w
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')\" e3 Z. g1 C7 c5 Y4 Y/ q
  4. 9 |3 c+ |: Y' I8 `1 B/ J8 a
  5. grid on5 D\" U5 V1 G3 w% j% M' r

  6. 9 M# Z  b- k+ O) s% h$ Z
  7. legend('真实值','预测值')' m) t) j) p2 \1 \! ^/ [: R
  8. 6 R+ b- ~9 A5 `- J7 [
  9. xlabel('样本编号')+ @( C4 J: h7 `

  10. 6 u+ J' \4 ~\" G6 }6 I0 f) A$ _
  11. ylabel('辛烷值')
    ( P. U5 X0 B7 w7 ~4 m  h! j! B

  12. ( V* v) p3 N) s; t( `  T7 n
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};\" h2 d$ F+ M& C& K8 j# y9 X2 B

  14. $ f$ Z2 T+ |! Z
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。
' X# K  n5 p/ _) \5 j3 e, z! J: g/ X
VeryCapture_20231122173210.jpg 8 ~4 U/ ~( R3 \: ~0 O- x
. o) y1 |5 v: S3 ^  B

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-4-13 18:52 , Processed in 0.427818 second(s), 55 queries .

回顶部