QQ登录

只需要一步,快速开始

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

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

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

1198

主题

4

听众

2978

积分

该用户从未签到

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

3 M! ]: `# v$ @) ~1.数据加载和划分:$ j) L' j3 }) T. a

# Q1 g2 u* k. j" E8 {2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。
1 H9 D$ H& J) U  s, |8 T; ?3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat! m/ h: c0 d2 v& s- `5 {
  2. 1 k  X, U: v\" {. P* [$ O1 o
  3. temp = randperm(size(NIR,1));7 |& }1 {( o) R5 v0 }# s. }  T0 W

  4. / X+ X! A4 Z3 V, r
  5. P_train = NIR(temp(1:50),:)';
    , \) A4 c) C0 ?; V4 f% T8 s! I1 f

  6. # C\" j6 r& a' Z# |8 W- B0 V
  7. T_train = octane(temp(1:50),:)';
    3 _6 ?0 g# D' H+ ?& K
  8. % p! g5 N1 U3 H\" b7 J
  9. P_test = NIR(temp(51:end),:)';# e0 U  F! Y7 ?: D9 k5 |7 y* V\" Q

  10. ! N: q7 d: w# _- ?
  11. T_test = octane(temp(51:end),:)';( g; S6 ~& D. X  E; _
  12. 0 S0 Y4 C# i# O. H; L+ o
  13. N = size(P_test,2);
复制代码
4.数据归一化:& m: |0 O8 _/ c9 s

8 X5 _. S( z% z+ m5 C. E5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);, y/ d9 D* n4 {

  2. 9 Q7 S7 U# g3 M$ D+ n7 w
  3. Pn_test = mapminmax('apply',P_test,inputps);  n$ }, V+ E4 [- T

  4. 8 L' P: Q: p# G7 a9 _& j$ I, \1 L! U7 i
  5. [Tn_train,outputps] = mapminmax(T_train);/ t( N+ V: B\" r# \. n$ L3 w\" b

  6. 4 I3 ^8 ?( h, z+ \$ a$ i8 A
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:+ F; u) [1 i5 d8 x1 R$ g) F

2 e# g; }* @/ v2 F2 Q' u
& X4 y6 I0 t: V' M7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:* k( e+ B1 c- O" L* J/ S" Y% X( v2 l5 h
9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);
    \" }9 B5 L! {0 d; o8 v

  2. / X( Y8 z, p# D: V
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:
0 U$ Y" l% H1 G11.将真实值和预测值组合成一个矩阵 result。- ?! J# [4 k" }/ y4 X
12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];
    3 E9 c% ~' P% T/ L! }7 m
  2. 6 J+ |; A5 ?2 L9 R2 g9 G
  3. E = mse(T_sim - T_test);
    $ T$ \. T8 _& U
  4. 3 `3 H, t: a/ w! Q* j
  5. N = length(T_test);
    4 v/ a7 \- p9 R7 G
  6. & Y0 f  \4 P& o4 `2 q- T
  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.结果可视化:7 |7 J: ?. N9 A" W
14.绘制真实值和预测值的对比图。" C# o# P; F' K
15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)
    $ j0 a, [& q; T) P

  2. - z$ X! r- P6 m! ~
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')0 U2 R4 E! v. ]. T* d6 m8 G
  4. % X0 S& f0 i% @$ L, i4 S! j# _
  5. grid on+ T  e5 F! k! y5 Y1 ?3 |
  6. # Z& C9 s  |+ h! D
  7. legend('真实值','预测值')
    2 B3 ]! z: n7 O) B
  8. 7 U4 I) O+ G: K8 \
  9. xlabel('样本编号')5 Y4 A  C' o1 M/ j
  10. 8 ]  D' V9 d\" ~) j\" u
  11. ylabel('辛烷值')
    6 D+ \( J) A0 {- E' `\" x- v: m

  12. - \: O: k1 w. E; N+ `  Z: w\" \
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};( i1 t' A: R' q- r, |1 k+ _  \
  14.   N4 i4 j5 d$ \
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。
" f# r/ L1 [7 x% w
6 X& q: F( W; K. b& d3 n) ?# V$ b0 [ VeryCapture_20231122173210.jpg
: E, b6 G9 ]/ u- s0 C% h# G: e1 F6 _/ d' X  j

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-10-17 03:15 , Processed in 0.465802 second(s), 55 queries .

回顶部