Predicción de intervalos | MATLAB implementa la predicción de intervalos de múltiples entradas y salidas de regresión de cuantiles de bosque aleatorio QRFR

Predicción de intervalos | MATLAB implementa la predicción de intervalos de múltiples entradas y salidas de regresión de cuantiles de bosque aleatorio QRFR

Lista de efectos

1

2
3
4
5

introducción básica

MATLAB实现QRFR随机森林分位数回归多输入单输出区间预测
Matlab实现基于QRFR随机森林分位数多变量回归区间预测模型(完整源码和数据)
1.Matlab实现基于QRFR随机森林分位数多变量回归区间预测模型;
2.基于随机森林回归(RFR)分位数多变量回归区间预测,Matlab代码,多变量输入单变量输出模型(最后一列输出),data为数据集,QRFR为主程序,其余为函数文件,无需运行;
3.评价指标包括:R2、MAE、MSE、RMsE和区间覆盖率和区间平均宽度百分比等,代码质量极高,方便学习和替换数据;
4.运行环境Matlab2018及以上。

Descripcion del modelo

Random Forest (Bosque aleatorio) es un algoritmo de aprendizaje integrado que realiza predicciones basadas en múltiples árboles de decisión y obtiene el resultado final de la predicción votando o promediando. Los bosques aleatorios funcionan bien en problemas de regresión y se pueden usar para tareas de regresión de múltiples entradas y salidas únicas (Multiple Input Single Output, MISO). El intervalo de predicción necesita introducir la regresión por cuantiles.
La regresión por cuantiles (Regresión por cuantiles) es un método de análisis de regresión que se puede utilizar para predecir el valor objetivo de diferentes cuantiles. En la tarea de regresión MISO, si necesita predecir el rango del valor objetivo, puede usar la regresión por cuantiles para lograrlo. Específicamente, se pueden entrenar múltiples modelos de bosques aleatorios, cada uno para predecir diferentes valores objetivo de cuantiles. Por ejemplo, se podría entrenar un modelo para predecir el cuartil inferior de los valores objetivo, otro modelo para predecir el valor objetivo mediano, otro modelo para predecir el cuartil superior de los valores objetivo, etc. Estos modelos pueden usar las mismas características de entrada pero generar diferentes valores de destino.
Cuando es necesario predecir el intervalo del valor objetivo de una muestra de entrada, estos modelos de bosque aleatorio se pueden usar para predecir los valores objetivo de diferentes cuantiles respectivamente, y luego se combinan para formar un intervalo. Por ejemplo, las predicciones para los cuartiles inferior y superior se pueden agrupar en un intervalo, que representa el rango de valores objetivo. De esta forma, se puede obtener un resultado de predicción de intervalo de valor objetivo fiable.

programación

%%  数据集分析
outdim = 1;                                  % 最后一列为输出
num_size = 0.7;                              % 训练集占数据集比例
num_train_s = round(num_size * num_samples); % 训练集样本个数
f_ = size(res, 2) - outdim;                  % 输入特征维度

%%  划分训练集和测试集
P_train = res(1: num_train_s, 1: f_)';
T_train = res(1: num_train_s, f_ + 1: end)';
M = size(P_train, 2);

P_test = res(num_train_s + 1: end, 1: f_)';
T_test = res(num_train_s + 1: end, f_ + 1: end)';
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';

%%  模型创建

%%  仿真测试


%%  数据反归一化
L_sim1 = mapminmax('reverse', l_sim1, ps_output);
L_sim2 = mapminmax('reverse', l_sim2, ps_output);

T_sim1 = mapminmax('reverse', t_sim1, ps_output);
T_sim2 = mapminmax('reverse', t_sim2, ps_output);

Referencias

[1] https://blog.csdn.net/kjm13182345320/article/details/127931217
[2] https://blog.csdn.net/kjm13182345320/article/details/127418340

Supongo que te gusta

Origin blog.csdn.net/kjm13182345320/article/details/131870989
Recomendado
Clasificación