QQ登录

只需要一步,快速开始

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

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

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:6 f1 A* I# v$ k4 s' A- P# r

1 l3 K8 X0 k& i% z2 ?/ c( I1.数据加载和划分:
" i: Q: F0 z+ Q
1 p0 T( i* u8 J( M3 y: m) L# R, U2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。$ U6 J9 n* P6 C
3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat
    2 h- ?& R, |$ J5 c7 O* }1 R

  2. 7 M) M9 h$ A1 W# W$ n- @; a1 a) c8 q
  3. temp = randperm(size(NIR,1));. Q) u- m+ g. c! ~$ P
  4.   b# {2 Q+ ?\" d# b
  5. P_train = NIR(temp(1:50),:)';3 r8 }9 G5 H0 s+ J\" P# x( {9 t
  6. ( {7 h& R1 ~& t! L
  7. T_train = octane(temp(1:50),:)';+ y) i$ k) W+ v) o8 T' q1 k) s
  8. 7 D# M1 b  p( f6 z
  9. P_test = NIR(temp(51:end),:)';2 c5 w\" `5 B; u2 r( S7 E' d
  10. 7 M4 l, K2 k% }
  11. T_test = octane(temp(51:end),:)';
    0 H# t! z; X& B- e' f
  12. ) M0 m2 ]5 u2 p) Z4 ~, M+ ?
  13. N = size(P_test,2);
复制代码
4.数据归一化:
; D' x) n) z- g& B9 ]9 P
, I! H% O* x5 D0 Q9 @/ T+ w, Q5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);0 {  \* [$ t* J0 Y. ^, V; }
  2. 3 @7 J/ z+ G$ |8 s6 A$ ^
  3. Pn_test = mapminmax('apply',P_test,inputps);7 v! W% o( O4 B2 \7 f) Y* m2 w* C
  4. & o+ ]6 \1 [9 |$ u# Y6 t/ j\" |
  5. [Tn_train,outputps] = mapminmax(T_train);% z. k6 r\" @' q  p# g

  6. : F: T9 w% j5 d; Y$ h  d2 v* z
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:
% R% w1 Y) p& B
$ s4 |- u9 J$ R! X' w# k& ^% h$ R# s! p) q
7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:
, z% g" U0 t  ?/ i" c! U, }* b3 l9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);
    , {& Z5 S5 `7 i% A# Y  w3 i
  2. % q9 \- w) d  r\" G7 g- F& [
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:) h/ Z# a  z6 [! V$ [
11.将真实值和预测值组合成一个矩阵 result。
$ [- q" S! e1 f% I" M: j2 V$ R8 G12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];
    / B& ]+ R\" ?& Z, _( u8 a; ]
  2. ( G& B0 F- [: \( Z
  3. E = mse(T_sim - T_test);
    - O; i3 B\" s7 n( H$ `. u' |! H

  4. \" [' S& c0 A5 G! m, j7 f
  5. N = length(T_test);
    # B# T\" e1 v: V4 o7 d. K, K& N4 ^

  6. ! p: {2 T8 [2 v# @2 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.结果可视化:5 S: ?% p, X' f! {( f7 J+ k( w
14.绘制真实值和预测值的对比图。: {8 c6 q" G! O
15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)
    . y1 k  i+ n  b2 d! q2 c8 c
  2. \" B0 `  z! o5 P+ H5 b  P( v
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o'). z3 p5 a8 R9 i
  4. \" t4 z3 j, n1 ?$ m7 {! m\" X7 u' {
  5. grid on6 ^7 r& j* W0 c* T6 G1 _  X, N1 J% ~
  6. 5 K8 X8 `0 g, @# A5 V$ j9 z' Y5 e% K
  7. legend('真实值','预测值')2 P1 s6 I& j! B\" E
  8. 8 d' d5 M4 j1 K4 J4 l( y
  9. xlabel('样本编号')! Z7 N% m& M+ F- v# c2 P

  10. ( |) v( n+ v7 s& c6 ?1 `1 E4 F/ Q* g
  11. ylabel('辛烷值')
    3 I* q) \  @7 `0 B8 w
  12. 0 M\" V# S8 k\" \7 H
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};
    9 e4 r' u* d- o5 ^5 ^

  14. ) `6 E, v' e( D6 J3 [
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。
8 k/ U! r0 b. k8 ?/ L
- x7 @' g: @2 u3 o7 n+ F VeryCapture_20231122173210.jpg . y4 D9 l& n$ M0 _: i4 H0 e! ~$ C+ u
& D" b5 m9 W' e+ C# }# p( q/ r

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-16 07:07 , Processed in 0.438693 second(s), 55 queries .

回顶部