QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:! D) Z( b  M/ Q
  L# M+ u5 t1 Z# G
1.数据加载和划分:
- D/ Z) i$ S% X3 R
2 j, O% Z+ I1 {3 g; w& [8 Y2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。0 h6 E1 |+ p( A$ ^. M5 V
3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat/ A' y$ L3 B4 w; F  I/ F$ h9 e

  2. % ]3 C' J' e& c# m/ z' n1 R' `
  3. temp = randperm(size(NIR,1));
    9 n: j. N3 T: M, h- k8 @4 I
  4. ( v! ?$ q' k2 i  C. {3 }
  5. P_train = NIR(temp(1:50),:)';% W! z; {6 \\" A* w2 ~

  6. $ A# _! E, c6 ]: X/ H! L
  7. T_train = octane(temp(1:50),:)';6 c2 X3 j# Q  _) ]8 s  b
  8. ! y4 b6 B  p5 A  K! t8 S
  9. P_test = NIR(temp(51:end),:)';
    $ [4 @1 t0 Z( a* q4 {2 h
  10. # _/ |\" Y3 u$ T2 F& j$ K2 x
  11. T_test = octane(temp(51:end),:)';
    $ F6 F0 \- c+ ]

  12.   H4 a* _# Z1 V& C8 Y, ~3 A# l
  13. N = size(P_test,2);
复制代码
4.数据归一化:+ j6 O4 p( E5 P8 n" H! t
+ X3 h& L/ w" l! r1 Q3 a- Y
5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);
    \" h' ]+ r8 I7 z9 ?$ E- X
  2. 7 b6 x+ L8 F2 V; o\" P# s6 e8 E
  3. Pn_test = mapminmax('apply',P_test,inputps);
    * j3 o, q! G0 @. q6 g3 h

  4. 7 b  ~5 {6 K9 l5 t5 t2 R, k
  5. [Tn_train,outputps] = mapminmax(T_train);
    ) @$ [8 Y\" z# ^# U8 N+ W7 N3 }
  6. * u# T  U) w7 v\" w
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:
5 h$ X" Z2 j  |; o  Y  e* B
+ @( x! m6 Z# }! P% p7 t4 E  J, T0 t- t, w4 f6 [
7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:
; t& C; c5 f+ z0 J& [( \! @9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);4 z0 c+ S# A\" [
  2. 4 Y3 ]$ Q9 C4 Z; D2 j
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:
. d9 M* N9 l3 l9 _1 y11.将真实值和预测值组合成一个矩阵 result。
; ]3 g, Q- i% b- N1 T12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];  J, \9 F. Y7 v4 i1 l$ |
  2. ( r8 F7 o+ n- ]7 W9 O: L# H
  3. E = mse(T_sim - T_test);
    - @5 v% q9 O1 F3 r8 Y* i

  4. 9 u/ q. e) S1 g# q& k* a- Z
  5. N = length(T_test);
    \" H4 Q  W- ?/ a* q! W
  6. 4 X2 g' B3 e0 S
  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.结果可视化:/ J) |! W5 Q& x0 {: D3 H. F# @0 H
14.绘制真实值和预测值的对比图。. X4 r; z+ Y' l4 b1 S9 E
15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)
    7 N# O8 b' p: a3 u1 H& H2 y8 P0 {- K
  2. ' k5 S; d8 E- l' O! m2 d
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')  M. \$ i7 x+ G. c7 @  q0 t

  4. ' i4 C- p  z, ^6 B* _0 r# B
  5. grid on/ g, I% K6 U6 G3 p( U# j
  6. ; N; y' J6 h7 e( I4 r% r* o
  7. legend('真实值','预测值')# K, ~\" s4 ]8 u
  8. . S! l7 ^1 \. O
  9. xlabel('样本编号')
    ; s2 \% Z3 {& O; E8 P
  10. 3 K+ W( \$ [5 M; Q- q4 o
  11. ylabel('辛烷值')
    3 `1 \- z# K7 q

  12. ) I3 }6 b& W9 w& c. u
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};4 Q/ v. u, @2 |' I) A
  14. / Z/ N$ i. R% g% P\" Z6 |
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。% N! K0 ^0 Z* V# n8 a7 U! \+ N
1 a5 i3 Z& `! g+ Z5 R
VeryCapture_20231122173210.jpg
. ]8 B4 v# I5 X  A! |5 n  T6 L
; @) r0 T( j. b% L1 y% ~

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 22:21 , Processed in 0.375216 second(s), 55 queries .

回顶部