• 【MATLAB第80期】基于MATLAB的结构核岭回归SKRR多输入单输出回归预测及分类预测模型


    【MATLAB第80期】基于MATLAB的结构核岭回归SKRR多输入单输出回归预测及分类预测模型

    SKRR这是Gustau Camps-Valls等人在“用深度结构核回归检索物理参数”中提出的结构核岭回归(SKRR)方法。
    参考文献
    Camps-Valls,Retrieval of Physical Parameters with Deep Structured Kernel Regression

    一、回归预测

    %%  清空环境变量
    warning off             % 关闭报警信息
    close all               % 关闭开启的图窗
    clear                   % 清空变量
    clc                     % 清空命令行
    
    %%  导入数据
    res = xlsread('数据集.xlsx');
    
    %%  划分训练集和测试集
    temp = randperm(103);
    
    P_train = res(temp(1: 80), 1: 7)';
    T_train = res(temp(1: 80), 8)';
    M = size(P_train, 2);
    
    P_test = res(temp(81: end), 1: 7)';
    T_test = res(temp(81: end), 8)';
    N = size(P_test, 2);
    
    %%  数据归一化
    [p_train, ps_input] = mapminmax(P_train, 0, 1);
    p_test = mapminmax('apply', P_test, ps_input);
    
    [t_train, ps_output] = mapminmax(T_train, 0, 1);
    t_test = mapminmax('apply', T_test, ps_output);
    
    %转置以适应模型
    p_train = p_train'; p_test = p_test';
    t_train = t_train'; t_test = t_test';
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    1、linear

    SKRR linear训练集数据的R2为:1
    SKRR linear测试集数据的R2为:1
    SKRR linear训练集数据的MAE为:0.0028973
    SKRR linear测试集数据的MAE为:0.0042063
    SKRR linear训练集数据的MBE为:-5.67e-05
    SKRR linear测试集数据的MBE为:0.00019721
    在这里插入图片描述
    在这里插入图片描述

    2、rbf

    SKRR rbf训练集数据的R2为:0.99997
    SKRR rbf测试集数据的R2为:0.99985
    SKRR rbf训练集数据的MAE为:0.029127
    SKRR rbf测试集数据的MAE为:0.042224
    SKRR rbf训练集数据的MBE为:0.0048
    SKRR rbf测试集数据的MBE为:-0.020914
    在这里插入图片描述
    在这里插入图片描述

    二、分类预测

    %%  清空环境变量
    warning off             % 关闭报警信息
    close all               % 关闭开启的图窗
    clear                   % 清空变量
    clc                     % 清空命令行
    
    %%  导入数据
    res = xlsread('数据集C.xlsx');
    
    %%  划分训练集和测试集
    temp = randperm(357);
    
    P_train = res(temp(1: 240), 1: 12)';
    T_train = res(temp(1: 240), 13)';
    M = size(P_train, 2);
    
    P_test = res(temp(241: end), 1: 12)';
    T_test = res(temp(241: end), 13)';
    N = size(P_test, 2);
    
    %%  数据归一化
    [p_train, ps_input] = mapminmax(P_train, 0, 1);
    p_test = mapminmax('apply', P_test, ps_input );
    p_train=p_train';
    p_test=p_test';
    t_train = T_train';
    t_test  = T_test' ;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    1、linear

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2、rbf

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    三、代码获取

    私信后台回复“80期”以及根据要求回复指令即可获取下载链接。

  • 相关阅读:
    【Redis】解决Redis并发竞争key问题
    【C++编程能力提升】
    【CSS】网格布局
    读HLS Bluebook(三)之 IO and Memories
    第二十一条:为传诸后世而设计接口
    运动与健康
    Python_WebSocket服务器和Python_JavaScript客户端
    意大利Eni公司将与法国PASQAL公司共同研究能源量子计算
    Java 替换PDF中的字体
    【每日小bug】微信开发者工具,打开项目后捕捉不到请求也发送不出请求并提示请求失败问题
  • 原文地址:https://blog.csdn.net/qq_29736627/article/details/133933048