QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:1 s5 ], X7 R# w7 i) z! U
( q! N8 U' ]/ t$ ~
1.数据加载和划分:! C$ t; G! j: O$ n# y6 C

  a# W4 R$ [6 }) z2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。
9 A* ?2 g5 {9 o/ \2 @3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat# [% k+ H% G4 l4 G1 T  c' M

  2. ) V1 S/ V2 j; ~
  3. temp = randperm(size(NIR,1));+ C' e\" V/ k! o1 d5 V0 ^+ R

  4. 0 w4 {5 t- Q- |' g
  5. P_train = NIR(temp(1:50),:)';1 R% f1 {5 J9 d! _8 U  O; J/ S

  6. : R2 T. ^, T8 n
  7. T_train = octane(temp(1:50),:)';
    ! N& E' @; g# x$ I, Z8 M5 Y# Q8 I
  8. ; g2 K; @. D* c% O- \
  9. P_test = NIR(temp(51:end),:)';
      f2 H+ o3 |. @  R

  10. \" c) ^! o6 O8 N& i
  11. T_test = octane(temp(51:end),:)';
    4 s- r  y) L, l: m
  12. \" k8 U9 _) {5 I5 U& l
  13. N = size(P_test,2);
复制代码
4.数据归一化:/ j) e) D! \9 q, U" w' {$ w  Z" [- g
, G, H& \' H7 T0 T5 @2 O
5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);
    ! s& B, }0 s4 w( B\" ?/ @$ _
  2. ( D9 L6 `5 `* i, l5 g\" U8 {( p- {
  3. Pn_test = mapminmax('apply',P_test,inputps);
    ! L\" g  v0 H: _+ x+ U

  4. 7 x0 N: s6 p5 @/ Q& C1 Q' e
  5. [Tn_train,outputps] = mapminmax(T_train);2 c, B2 H9 _. S
  6. - d6 i4 s  N\" w
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:) k$ V/ _/ \2 U$ x9 s

6 c1 s* Z* N) p0 h) X' N7 \% M0 g1 T& M
7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:: O( s) h9 H$ O( K8 t& ^8 [
9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);: h  @1 v; K/ d  |+ b8 F

  2. , g' X$ x) h: H
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:5 I" L1 v& Y1 N& \: N. x7 @* M- h: g
11.将真实值和预测值组合成一个矩阵 result。0 n! a+ ]; ?& }& i2 P& m
12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];
    3 `' R0 C) l$ G

  2. & l! O3 n* M7 U/ @
  3. E = mse(T_sim - T_test);0 f6 n. O1 w$ u/ [

  4. ) J# c6 C6 T' c/ n6 D
  5. N = length(T_test);
    5 @9 T3 {6 p* _' R  O

  6.   Z+ k9 s, }/ G: c* a
  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.结果可视化:: g" G# K% `# x5 _0 @
14.绘制真实值和预测值的对比图。
7 B" P# g' l( U5 |! [15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)
    2 {4 h, M1 P\" K) S3 K, G' P

  2. - j5 _8 S; p\" C+ A; J3 X
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')
    0 {$ f8 g6 g. O7 j\" `
  4. 8 T( }; |# g* h( M9 V
  5. grid on
    \" E1 g) [% C; |6 z( T5 `\" H

  6. 9 z  |: x* L5 o\" d1 z& \/ }
  7. legend('真实值','预测值')5 Q/ l( i+ {& F1 Y$ R  D' i' q$ h
  8. ! y9 j0 a( g  ~9 j
  9. xlabel('样本编号')
    2 j. y% ?; c6 m3 m% l\" Z9 s
  10. ! X) N6 ?1 I9 z
  11. ylabel('辛烷值')- c& c% r1 E5 _9 q& D0 {
  12. 3 O( w6 t/ w7 g, Z; d. u; W, g8 |4 V
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};0 s# o( M' t0 }- D3 R# C
  14.   z' V& A. Z0 ]\" W
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。
+ W" {& S& u; g. R( X0 L' {1 E1 R* ]- i
VeryCapture_20231122173210.jpg
9 Z* I+ E9 {, a# q5 @( M; }0 b  E5 H+ e: ^8 k4 n: P; u" \

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-7-30 06:10 , Processed in 0.383720 second(s), 54 queries .

回顶部