QQ登录

只需要一步,快速开始

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

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

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

1192

主题

4

听众

2946

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:) b$ J" l4 c5 x  y, ~5 ~" C
1 R1 V- U& E5 ^- V6 D
1.数据加载和划分:
1 A# Y8 I0 w$ K+ l7 D; `9 s$ }" _; p- J+ s4 Z9 j
2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。
2 |; q8 w- X  p+ n" S, S( \% }0 V) I3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat$ x  Q) _6 q1 [2 X

  2.   U* Y/ h  r2 Z\" K9 y
  3. temp = randperm(size(NIR,1));5 K5 ^  z6 _. M
  4. . y7 u  A/ ]- R; T% _! _+ X! S
  5. P_train = NIR(temp(1:50),:)';& ~\" m$ y7 Q6 s+ K
  6. 9 b8 \. y: ?, Z
  7. T_train = octane(temp(1:50),:)';
    & ?) Z' N1 z2 o6 Z
  8. - j( ?3 `& a/ p* |& z5 S# t
  9. P_test = NIR(temp(51:end),:)';8 ]! Q; n9 f& ?; l6 T% w1 e
  10. 1 I! _' r* ?: R- x- I3 p% d2 ?
  11. T_test = octane(temp(51:end),:)';
    % b6 H/ ^; k! k% F% {/ l
  12.   v2 d/ x0 o( Q- x
  13. N = size(P_test,2);
复制代码
4.数据归一化:5 A' o1 ?- @+ i7 B& @$ I
3 D6 `! M* n5 F2 \$ ]
5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);' `9 p2 ?& S4 C( n

  2. $ p2 _! M$ i+ l# L5 f' e
  3. Pn_test = mapminmax('apply',P_test,inputps);' w( B( A* E5 g; b5 w\" @

  4. . ]4 ~$ `( |/ O
  5. [Tn_train,outputps] = mapminmax(T_train);# E9 W0 U0 ]. w
  6. & Z9 m5 N- Q  M1 A* s
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:
/ b, x7 G2 U* `8 w; o9 m
4 U9 x4 G7 Z5 R  a/ O  ^
8 H+ ?1 a5 u: [7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:
2 Q5 H9 x2 Z3 C4 t! A8 O9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);8 z' h; E' e\" {0 r- j! i. S8 ]4 {
  2. 1 ~\" l\" g' X0 w( T* G0 d% s
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:1 |; E% g/ V- d4 U. @
11.将真实值和预测值组合成一个矩阵 result。4 ^4 Z  J; V& I* e
12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];9 A, W& V7 \0 @/ D

  2. . V  @: M; K8 r1 u9 o
  3. E = mse(T_sim - T_test);
    . h& n# f, T! Y# v

  4. 7 c5 T% A6 T2 w, ?% Z4 ?5 k
  5. N = length(T_test);0 f# E$ ~; t& U9 H; J

  6. * s# B. @0 I3 A9 q9 T/ ?9 J- ^; ]
  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.结果可视化:
* x5 h! {  w, M) M$ x. y: Y% G14.绘制真实值和预测值的对比图。' c$ ^) Z# p: T: O; r$ c5 F  V  A/ H
15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)! n& P9 R6 X5 j

  2. ( A( H1 \. s& V
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')
      j' ]5 T, G9 E3 ?/ D* r& W

  4. \" R; \; e4 M/ y1 c
  5. grid on
    - `, c7 [8 l\" V9 l  K6 C
  6. \" }3 Q8 }: i, D) q0 u, V: J/ O1 |
  7. legend('真实值','预测值')\" C' I1 l! R3 I

  8. $ e\" v; U4 G) A
  9. xlabel('样本编号')7 `( }5 Z- B. Q
  10. / G  W5 d. W% P, h
  11. ylabel('辛烷值')( I; Y% j; |' v# v% T

  12. 4 i\" H3 R6 A/ A; S0 n' i
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};$ Y, o+ _) e: Q$ g. _( u
  14. $ h+ x6 D. o) Y) v, D- k
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。; D( z+ T/ E0 l: Y7 n5 ]) Y; i: ]
5 a* e7 ^+ R+ S2 Y
VeryCapture_20231122173210.jpg
6 v' h# G. B8 h2 q
1 I; k! N8 r0 X6 P( d

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-8-26 03:10 , Processed in 0.629290 second(s), 55 queries .

回顶部