QQ登录

只需要一步,快速开始

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

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

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |正序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:* `% {/ {) |- G/ `
1 E% Y3 y' b+ v# ^- n, I
1.数据加载和划分:
; i) V/ B( m  Z: ?6 {+ S4 F' L! P8 N6 F) v3 b# n
2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。
& p0 `) f# v8 C$ W$ f/ p3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat
    / A: T! ^& K( T& ~1 Z

  2. 6 @7 D* e2 J' B: i( b' \\" @4 F3 O
  3. temp = randperm(size(NIR,1));
    # N: d0 P# G  O

  4. 9 q, f  s, h2 H! D5 R: N/ s
  5. P_train = NIR(temp(1:50),:)';
    1 p+ n9 q! v, ~# Y8 U) f) H
  6. # F7 j0 H$ G5 i1 q. [: S. t
  7. T_train = octane(temp(1:50),:)';
    * I1 g( ?6 [# }3 e* V

  8. 6 A- f. l9 Y# s
  9. P_test = NIR(temp(51:end),:)';
    , }\" j# E2 [* K8 ^/ {. H+ C, Z

  10. 0 H% Z) v, S& b& v
  11. T_test = octane(temp(51:end),:)';4 R7 e( @; @- c  V& {9 d  `: v\" _

  12. 4 ]. p% C7 s& d# |
  13. N = size(P_test,2);
复制代码
4.数据归一化:) N0 w  {5 o0 o, `! x2 u

+ I- w3 v0 ^* x* {) y9 ]' O5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);! c8 f1 m# P4 \- d8 P

  2. 5 E( P- u( s: y2 Q( w: \; d1 A9 `7 d
  3. Pn_test = mapminmax('apply',P_test,inputps);
    ! O3 e- _2 V5 W7 }) G6 a, K; ?

  4. $ D9 U, l: `; Z: Y. k3 v3 v1 C
  5. [Tn_train,outputps] = mapminmax(T_train);4 L0 s9 c7 V- a% @
  6. ! o- Z1 B5 Y5 S
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:* J7 R& ^  A6 m1 ~$ E0 M

7 t" Z8 W+ r& f  L- I* o  R: v
4 K; @+ P. z* Y! O* z4 l0 p. ~9 p7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:$ O. f& {5 E% d
9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);
    % d) n/ K# v# h' X5 a  \4 f
  2. ( z0 f+ x# P* m8 Q
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:
7 R; P) J% ~. k% x. v: p11.将真实值和预测值组合成一个矩阵 result。
. X1 S& R6 \+ I8 {# w& l12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];
    & {/ a' Y7 K0 H+ ]

  2. 8 g  t) P8 ^  p
  3. E = mse(T_sim - T_test);# F* }& j( g! S7 V

  4. # A7 q# ^+ v: F\" j
  5. N = length(T_test);
    , ^7 c4 `+ Q% Y
  6. 7 Y3 v1 K6 ?, A3 ~8 K\" X5 ]
  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. J* c% ^/ R2 x
14.绘制真实值和预测值的对比图。
8 ~9 r& {) G9 r4 q( B# y15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)8 W) m. H' O. ^\" |! Q3 @
  2. & t! l9 P0 ?2 r& t, O7 v
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')4 c( L3 |$ L, F0 w

  4. ! E  s0 g) Q5 A/ ^% t8 w, H9 H
  5. grid on0 ]. `/ j: ?1 ^
  6. ( I; D  b2 i- s0 E- o( U& V! `; A+ A
  7. legend('真实值','预测值')
    4 p4 B# w8 G5 h$ ?/ M, i% D
  8. ' I1 t3 R9 T1 u1 b
  9. xlabel('样本编号')
    0 v; L& Q1 v9 J# A) ~2 w
  10. 2 |\" m* D) Q4 V& J; _8 k. j\" b
  11. ylabel('辛烷值')
    : e2 H. U$ S/ J0 a\" s
  12. % w. }) L5 D+ F8 L, g
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};* ^1 d6 O3 W  O/ o: W) ?

  14. ) J% f! d4 \( P/ |& p' W4 F+ _\" X
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。* z3 `) ~9 f& |2 g  K/ X% A7 Q
7 J* M% \+ q, D% I) _7 y4 h& B3 j6 O
VeryCapture_20231122173210.jpg 0 I. e6 k/ Y; i: G  x( {

, l/ \1 b: |! Y( K3 V2 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-4-14 00:31 , Processed in 0.430144 second(s), 55 queries .

回顶部