QQ登录

只需要一步,快速开始

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

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

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

1171

主题

4

听众

2781

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:" [2 l7 Z: Q) R& x
2 q8 N! o# V9 z7 E. I2 f. W. }
1.数据加载和划分:
1 M7 Z* a% j2 G/ v. D9 i; i6 ?) i  x. y, E) {
2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。& l6 o7 l( F4 z: g5 s
3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat/ k7 I\" a+ Q& u) v0 L  ~* O' F- @

  2. - t) a1 i5 V; J5 X
  3. temp = randperm(size(NIR,1));
    1 M8 P\" n4 s. i; t
  4. 6 z/ J; j! o& r
  5. P_train = NIR(temp(1:50),:)';; I4 ^5 i6 U& A

  6. $ \5 G/ G8 g; G$ g/ }
  7. T_train = octane(temp(1:50),:)';7 |  ?+ C* B* n, O7 r

  8. $ V# M0 _1 i  _8 j
  9. P_test = NIR(temp(51:end),:)';4 }, U\" J2 P5 c+ w6 Z  b
  10. . v; i6 J; [! q7 ]2 e
  11. T_test = octane(temp(51:end),:)';$ ]+ Z4 |  {5 @7 |9 u# C
  12. 0 `' z\" u; H+ B/ c
  13. N = size(P_test,2);
复制代码
4.数据归一化:  T5 B6 X; `' h
* ^* G, k1 |2 Y- j( [
5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);
    7 z+ d, w/ z4 Q$ q' U/ S3 F

  2. & t' C8 i# h; a: B1 Q! a
  3. Pn_test = mapminmax('apply',P_test,inputps);
    ( A* A7 t* D4 z; h

  4. 8 z/ M2 L  g/ j6 O' g1 O9 z0 v, G6 I/ v
  5. [Tn_train,outputps] = mapminmax(T_train);( e\" ~% m6 `# M  I$ ~; w1 I, U

  6. : i. Y+ K; X\" \9 Y* T# w
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:$ V1 N4 d; s0 c8 `
* [: t1 y: s5 ]0 M# w' g' Z
2 c6 ~% S6 e. x/ b6 M5 m
7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:
# ?3 s1 j' k3 F9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);
    / L0 N# i2 ]7 V, U1 ^8 ]' G( W
  2. : a+ t4 e% S4 F8 K
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:$ \( ?1 v1 v, t
11.将真实值和预测值组合成一个矩阵 result。5 M+ p" v6 k7 E
12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];
    9 r$ |& c. M$ {  S

  2. : Q$ V7 u! u+ {* \9 x+ W3 J$ s
  3. E = mse(T_sim - T_test);+ @\" d0 i4 v6 l1 M

  4. $ b8 W6 Y6 x3 W) \. ?2 K
  5. N = length(T_test);
    + z( F, `0 t+ b$ s
  6. - j7 M! g% h2 u/ \
  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.结果可视化:
! l' H" v" _! j2 N$ H14.绘制真实值和预测值的对比图。
9 l, t. z. @- B9 J% l15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)# D$ T0 T\" f/ X8 ~9 y
  2. , W; ]3 z+ T\" q
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')
    7 e* l* v/ h+ M\" s5 d# j! E

  4. % v& x6 y1 M! q
  5. grid on
    2 W- j  `  W3 n. I* |. W
  6. % b; d3 Q2 @( a4 `& Y9 V: i
  7. legend('真实值','预测值')9 i; N8 R' T( h- e

  8. 5 u( o' T' {4 ]9 C! s
  9. xlabel('样本编号')& |# w: W\" d7 F' E; G6 x) r\" w+ X

  10. 8 h9 {! r) h3 T/ Q
  11. ylabel('辛烷值')
    6 `/ z+ ^( _6 |. x/ p, b- @

  12. + Q+ \\" w6 G0 G3 \
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};% C' i& U# A. i5 [+ Q- q( F
  14. ; ]: P2 A% ~  X* o2 G% ~
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。
) J% ^7 j, K$ `; H$ C
6 Z8 {& d' [$ W VeryCapture_20231122173210.jpg 9 M% y( ?% L3 i  j
" M4 E) y1 `9 O

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-6-24 12:28 , Processed in 0.337513 second(s), 54 queries .

回顶部