QQ登录

只需要一步,快速开始

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

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

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

1175

主题

4

听众

2818

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:( l5 K; I& {8 c, l
2 g3 V- R8 l  R
1.数据加载和划分:5 g  `& G9 K; w6 }) W9 l

& N) k0 L/ v! }7 v/ W8 ^2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。
/ a6 {( e( A: p# e7 O7 B$ o* _3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat  b) |0 h8 c  y& W\" }5 K! O

  2. 3 \8 m8 ~7 s5 F: }  ~2 V: T* x
  3. temp = randperm(size(NIR,1));' m1 e* W( L# E( Y2 X! e+ l

  4. % u% Y3 z, D2 \) F9 F
  5. P_train = NIR(temp(1:50),:)';
    8 y1 I& k' ?6 J  Q

  6. % m+ H8 o; ^  E3 T! h* O
  7. T_train = octane(temp(1:50),:)';; \  u: x4 {  K, z; P6 z

  8. : T! ~! d: T2 ^+ y: B
  9. P_test = NIR(temp(51:end),:)';
      J5 o+ W; _0 ^( x$ l
  10.   H& m9 i% e, w4 e/ }; X- k
  11. T_test = octane(temp(51:end),:)';7 R' I! U# q! M1 x\" j6 H1 M! d; m$ |7 c

  12. 9 Q# \7 b* U1 F8 {
  13. N = size(P_test,2);
复制代码
4.数据归一化:- T# k0 q0 c5 s9 h9 H9 _7 |# y

  Y5 D, f, f4 [% }5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);+ i1 a+ L* ]+ p  V/ p) M& t7 u2 L

  2. + A- h) k: `) \+ d+ `/ p6 {
  3. Pn_test = mapminmax('apply',P_test,inputps);2 h$ t. U1 ^+ d  \

  4. - W; O2 J& Z2 d0 A3 ?6 w
  5. [Tn_train,outputps] = mapminmax(T_train);6 Q- z3 d) c9 G, [0 y  w* l9 @\" _

  6. : Z0 B1 L9 I& x( a
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:
, l7 P) H  y6 h( C/ j  i9 ?
0 L: q, k! b; h9 N' _/ i8 X! I! T0 B8 V
7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:! ~. s. S3 p7 V  [. W
9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);
    ( Y  O+ E2 E8 T: k

  2. 2 G  @5 U9 g2 \2 R
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:
" R( h1 {; W+ q) m11.将真实值和预测值组合成一个矩阵 result。0 B( s1 i6 O( C- m8 k% t4 y) O
12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];8 T2 e* P: v( o+ U/ Q+ P' ?- B8 H; k' A, P' y

  2. 5 j+ g8 Z' n& Z
  3. E = mse(T_sim - T_test);
    % ~6 D+ @; ~9 @5 F7 t
  4. % o* l; I+ {( L! S: K8 @- Y
  5. N = length(T_test);
    ! D3 ], [) t2 O2 V3 O# o1 h

  6. ) J) g1 I! K/ d
  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.结果可视化:
8 M# L' a8 X7 E. M14.绘制真实值和预测值的对比图。, W  N8 c: X5 l5 ^) R( T3 F
15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)
    6 I9 ^' W; r3 c- n. D\" N$ a7 l

  2.   i\" `: B$ M  u; w
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')
    9 G  ?% ~$ V; K& i4 K

  4. ' v* K* W7 b3 v; {6 U& d& |
  5. grid on
    9 g! C0 U  |. |6 t) n, ~
  6. & A; v3 f- N( y: d
  7. legend('真实值','预测值')
    $ P# O\" K5 f# ^1 {! m8 b! J9 a
  8. . i5 o5 }& h/ l% F, M
  9. xlabel('样本编号')
    ; f$ J( Q1 h7 C' L6 J

  10. 6 h0 ]: U8 X2 l0 c* l/ Y
  11. ylabel('辛烷值')- ]! _: Q: z0 V
  12. ( z. V4 u\" G/ H/ o\" ]
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};
    & z. r1 |, ~+ [\" ~

  14. % a  a3 h# n3 [- r
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。
5 d" I9 V/ ~4 }/ f8 T2 m' T- e) i/ v* `3 A% }$ C/ C
VeryCapture_20231122173210.jpg . L- f8 P& Z! B% n/ Q

6 L9 c" _6 _; L# W. b6 h9 ^

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, 2025-7-19 12:45 , Processed in 0.341077 second(s), 54 queries .

回顶部