【MATLAB第39期】基于MATLAB的多元相关向量回归MRVR和快速FMRVR多输入多输出回归预测算法(多输入多输出数据)

简介: 【MATLAB第39期】基于MATLAB的多元相关向量回归MRVR和快速FMRVR多输入多输出回归预测算法(多输入多输出数据)

MATLAB第39期】基于MATLAB的多元相关向量回归MRVR和快速FMRVR多输入多输出回归预测算法(多输入多输出数据)


一、效果展示


1.FMRVR


2. # of iterations = 10
2. # of iterations = 10
历时 0.590399 秒。
**************************
下列是输出1
**************************
训练集数据的R2为:0.91476
测试集数据的R2为:0.90012
训练集数据的MAE为:107.4164
测试集数据的MAE为:118.6531
训练集数据的MBE为:-5.1681
测试集数据的MBE为:4.579
**************************
下列是输出2
**************************
训练集数据的R2为:0.97846
测试集数据的R2为:0.96061
训练集数据的MAE为:54.173
测试集数据的MAE为:75.3314
训练集数据的MBE为:-0.95966
测试集数据的MBE为:3.0532
**************************
下列是输出3
**************************
训练集数据的R2为:0.88799
测试集数据的R2为:0.91031
训练集数据的MAE为:107.6909
测试集数据的MAE为:122.2654
训练集数据的MBE为:-20.9333
测试集数据的MBE为:-26.701
=================
训练集运行结果
第1个因变量
回归误差 (RMS): 83.4517
估计噪声水平: 0.1827 (true: 0.1622)
第2个因变量
回归误差 (RMS): 95.0044
估计噪声水平: 0.0539 (true: 0.0157)
第3个因变量
回归误差 (RMS): 35.9521
估计噪声水平: 0.4115 (true: 0.4167)
=================
测试集运行结果
第1个因变量
回归误差 (RMS): 69.2293
估计噪声水平: 0.1970 (true: 0.1622)
第2个因变量
回归误差 (RMS): 24.5793
估计噪声水平: 0.0826 (true: 0.0157)
第3个因变量
回归误差 (RMS): 330.102
估计噪声水平: 0.4296 (true: 0.4167)
训练集熵损失 = 15.4545
训练集二次损失 = 335.4603
测试集熵损失 = 40.0038
测试集二次损失 = 1897.5659


2.MRVR

1. # of iterations = 10
1. # of iterations = 10
历时 34.937888 秒。
**************************
下列是输出1
**************************
训练集数据的R2为:0.78223
测试集数据的R2为:0.32016
训练集数据的MAE为:173.4356
测试集数据的MAE为:328.7633
训练集数据的MBE为:-32.7339
测试集数据的MBE为:200.1722
**************************
下列是输出2
**************************
训练集数据的R2为:0.94909
测试集数据的R2为:0.66437
训练集数据的MAE为:85.6813
测试集数据的MAE为:210.3887
训练集数据的MBE为:-22.3859
测试集数据的MBE为:94.008
**************************
下列是输出3
**************************
训练集数据的R2为:0.94538
测试集数据的R2为:0.92513
训练集数据的MAE为:88.4047
测试集数据的MAE为:96.8574
训练集数据的MBE为:0.51131
测试集数据的MBE为:-26.8483
=================
训练集运行结果
第1个因变量
回归误差 (RMS): 111.282
估计噪声水平: 0.9684 (true: 0.9488)
第2个因变量
回归误差 (RMS): 144.32
估计噪声水平: 0.7537 (true: 0.7541)
第3个因变量
回归误差 (RMS): 101.934
估计噪声水平: 0.1996 (true: 0.1938)
=================
测试集运行结果
第1个因变量
回归误差 (RMS): 240.296
估计噪声水平: 1.0334 (true: 0.9488)
第2个因变量
回归误差 (RMS): 48.7849
估计噪声水平: 0.6868 (true: 0.7541)
第3个因变量
回归误差 (RMS): 180.328
估计噪声水平: 0.2048 (true: 0.1938)
训练集熵损失 = 0.015592
训练集二次损失 = 0.032023
测试集熵损失 = 0.13245
测试集二次损失 = 0.30277


二、代码展示


数据为28输入,3输出。共600样本,训练集样本数为500,测试集样本数为100。

%该程序演示了多元相关向量回归(MRVR)和快速fMRVR算法
%=========================================================================
clear, clc, close all;
%% 参数设置
isFast      = true; % true(快速fMRVR)或false(原始MRVR)
maxIts      = 10; % EM算法的最大迭代次数
tolerance   = .1;   % 检验EM算法收敛性的容差值
%%  导入数据
res = xlsread('数据集.xlsx');
%%  划分训练集和测试集
temp = randperm(600);
P_train = res(temp(1: 500), 1 : 28)';
T_train = res(temp(1: 500), 29: 31)';
M = size(P_train, 2);
P_test = res(temp(501: end), 1 : 28)';
T_test = res(temp(501: end), 29: 31)';
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);
% kernel
kernelType  = '+gauss';
kernelWidth = 1.6;
%% RMS和估计噪声水平
disp('=================')
disp('训练集运行结果')
for j = 1:size(Y,2)
  text = '第';
   fprintf([text '%d'  '个因变量\n'],j)
    fprintf('回归误差 (RMS): %g\n', ...
  sqrt(mean((T_train(:,j)-T_sim1(:,j)).^2)))
    fprintf('估计噪声水平: %.4f (true: %.4f)\n\n', ...
        sqrt(OmegaHat(j,j)), noise(j))
        disp('=================')
        disp('测试集运行结果')
        for j = 1:size(Y,2)
        end
            text = '第';
    fprintf([text '%d'  '个因变量\n'],j)
    fprintf('回归误差 (RMS): %g\n', ...
  sqrt(mean((T_test(:,j)-T_sim2(:,j)).^2)))
    fprintf('估计噪声水平: %.4f (true: %.4f)\n\n', ...
        sqrt(OmegaHat1(j,j)), noise(j))
        end
%% 度量协方差矩阵估计的性能
V = size(Y,2); % V是输出维度
temp = (Omega\OmegaHat)'; %Omega是真的,OmegaHat是估计的
temp1 = (Omega\OmegaHat1)'; %Omega是真的,OmegaHat是估计的
loss1 = trace(temp) - log(det(temp)) - V; % %熵损失
loss2 = trace((temp - eye(V))^2); % 二次损失
loss1_1 = trace(temp1) - log(det(temp1)) - V; % %熵损失
loss2_1 = trace((temp1 - eye(V))^2); % 二次损失
disp(['训练集熵损失 = ' num2str(loss1)])
disp(['训练集二次损失 = ' num2str(loss2)])
disp(['测试集熵损失 = ' num2str(loss1_1)])
disp(['测试集二次损失 = ' num2str(loss2_1)])


三、代码获取


后台私信回复“第39期”即可获取下载链接

相关文章
|
6天前
|
传感器 机器学习/深度学习 算法
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
【使用 DSP 滤波器加速速度和位移】使用信号处理算法过滤加速度数据并将其转换为速度和位移研究(Matlab代码实现)
|
12天前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
|
1月前
|
机器学习/深度学习 Dragonfly 人工智能
基于蜻蜓算法优化支持向量机(DA-SVM)的数据多特征分类预测研究(Matlab代码实现)
基于蜻蜓算法优化支持向量机(DA-SVM)的数据多特征分类预测研究(Matlab代码实现)
|
1月前
|
机器学习/深度学习 数据采集 算法
基于随机森林实现特征选择降维及回归预测(Matlab代码实现)
基于随机森林实现特征选择降维及回归预测(Matlab代码实现)
140 0
|
20天前
|
算法 数据挖掘 定位技术
基于密度的聚类算法能够在含有噪声的数据集中识别出任意形状和大小的簇(Matlab代码实现)
基于密度的聚类算法能够在含有噪声的数据集中识别出任意形状和大小的簇(Matlab代码实现)
|
12天前
|
机器学习/深度学习 编解码 并行计算
【创新未发表!】基于BKA算法优化-BP、HO算法优化-BP、CP算法优化-BP、GOOSE算法优化-BP、NRBO算法优化-BP神经网络回归预测比较研究(Matlab代码)
【创新未发表!】基于BKA算法优化-BP、HO算法优化-BP、CP算法优化-BP、GOOSE算法优化-BP、NRBO算法优化-BP神经网络回归预测比较研究(Matlab代码)
|
25天前
|
机器学习/深度学习 数据采集 运维
改进的遗传算法优化的BP神经网络用于电厂数据的异常检测和故障诊断
改进的遗传算法优化的BP神经网络用于电厂数据的异常检测和故障诊断
|
30天前
|
机器学习/深度学习 传感器 边缘计算
【轴承故障诊断】基于融合鱼鹰和柯西变异的麻雀优化算法OCSSA-VMD-CNN-BILSTM轴承诊断研究【西储大学数据】(Matlab代码实现)
【轴承故障诊断】基于融合鱼鹰和柯西变异的麻雀优化算法OCSSA-VMD-CNN-BILSTM轴承诊断研究【西储大学数据】(Matlab代码实现)
|
2月前
|
存储 监控 算法
基于 Python 跳表算法的局域网网络监控软件动态数据索引优化策略研究
局域网网络监控软件需高效处理终端行为数据,跳表作为一种基于概率平衡的动态数据结构,具备高效的插入、删除与查询性能(平均时间复杂度为O(log n)),适用于高频数据写入和随机查询场景。本文深入解析跳表原理,探讨其在局域网监控中的适配性,并提供基于Python的完整实现方案,优化终端会话管理,提升系统响应性能。
79 4
|
2月前
|
机器学习/深度学习 人工智能 算法
AP聚类算法实现三维数据点分类
AP聚类算法实现三维数据点分类
121 0

热门文章

最新文章