QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:
! q# A; k4 r: N/ }; M
% Q: ^8 a! Q& ^! X7 z1.数据加载和划分:
6 f! l: G( g! ]
$ a& [) g& U+ }3 l. ]. p8 W2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。
* h6 i. j" v) A3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat! ^6 f% U1 |  O; m
  2. / L  p  c: h' _2 l3 u
  3. temp = randperm(size(NIR,1));
    : j% c6 D3 G/ L* Q
  4. . D3 Q$ u& u4 D9 D
  5. P_train = NIR(temp(1:50),:)';  e4 ^3 I. l  |
  6. $ S, b- k# z. C( ]9 r9 \+ O' k
  7. T_train = octane(temp(1:50),:)';! @- c& H+ n2 ?7 Z! b

  8. ' C4 a! I9 S' _4 }: _
  9. P_test = NIR(temp(51:end),:)';1 Y& z( o7 z, N! D& z. N
  10. * r8 i# i8 T+ m
  11. T_test = octane(temp(51:end),:)';
    . e* [. v2 ^& k
  12. ! a7 z6 A) n\" V/ @* r
  13. N = size(P_test,2);
复制代码
4.数据归一化:
2 w& ?& b" ?. R' W3 k" k$ H( h6 U* V5 Z- T# w
5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);
    1 y: r8 h4 u7 [. q& J$ C/ y% `
  2.   u0 M, a) J$ L& ?8 M: j) s6 w
  3. Pn_test = mapminmax('apply',P_test,inputps);
    , a\" P) G. v3 K1 Y, E
  4. - ^# ^! ?* ^2 |3 c7 F
  5. [Tn_train,outputps] = mapminmax(T_train);
    4 x, e\" B1 K: ^. ?/ [- T; x

  6. + J7 i% e, Y9 H. J. L! P
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:$ P* K, @8 R# Q1 u2 u. A9 a
- I* j/ \$ |: K& I/ g

9 d& ?  r( F$ z" k7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:
$ ?8 o+ z+ p% r/ F8 G9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);
    . T  b2 k- K$ {8 y1 h
  2. ! t& z! j  l8 v8 A6 \6 k: i3 e  k
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:
, o8 g4 K: R' V* m$ d11.将真实值和预测值组合成一个矩阵 result。
# j) S6 |% k/ p! f8 q12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];
    ) ?$ @+ T6 C% `5 M

  2. & n5 [/ z) V& S  K4 {6 x
  3. E = mse(T_sim - T_test);
    ' D& _& T% v7 Q  y

  4. ' T8 `- V$ w8 y$ j
  5. N = length(T_test);) l, i# Z& F9 d, J( j: o3 I2 v
  6.   S/ F7 j1 I' `* v  E
  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.结果可视化:
( r) R2 U: X3 B2 s3 U: p+ k14.绘制真实值和预测值的对比图。, P' Y2 H% c; o+ t1 f1 h
15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)4 ?; `  O+ ^* i, Q! Q! N
  2. 4 ^9 F2 S( J8 a
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')
    5 S! D, @% k4 ]- V8 t! r6 [8 [

  4. - {/ X6 \+ x% `0 I
  5. grid on
    ( Y& w, X; {7 D+ m9 ^0 H) n
  6. ( ?/ q. |; v  Q* {9 W5 Q0 {, A
  7. legend('真实值','预测值')+ B( v& F( T6 \( L, ]' u
  8. 2 F% M. K' ~( m% y
  9. xlabel('样本编号')
    0 S! W& o, E* k9 I* e4 N

  10. 2 L4 H0 a8 [1 ?7 f
  11. ylabel('辛烷值')
    3 x$ r- R7 x+ [; \

  12. ' P4 `+ Z% `: }4 B4 E6 r$ Q
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};) C+ {% I) G. _6 N
  14. - L* G6 a* Z, x  P# g( Z
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。
. P  V" B" ?" J0 U  J) [! Z5 V* K: Y4 F1 j' ?
VeryCapture_20231122173210.jpg
3 k4 f% J5 j: M1 \' s8 x1 t2 Q- ^" T8 ]: N. F, }. M( \8 F8 `3 |6 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-6-8 18:28 , Processed in 0.335863 second(s), 55 queries .

回顶部