拓冰建站拓冰建站
首页 / 资讯中心 / 正文

BILSTM-GMDH混合模型:时间序列预测中的组合智能与MATLAB实现

1. 项目概述当时间序列预测遇上组合模型在时间序列预测领域尤其是面对像COVID-19每日新增病例数这类具有高度非线性、非平稳性以及潜在复杂影响因素的数据时单一模型的预测能力往往捉襟见肘。我们常常会遇到这样的困境模型要么在训练集上表现优异一到测试集就“翻车”过拟合要么过于保守无法捕捉数据的突变趋势欠拟合。这个项目——“基于BILSTM, GMDH和遗传神经网络实现COVID数量的回归预测”——正是为了解决这一核心痛点而设计的。它本质上是一个混合智能预测模型通过巧妙融合三种不同原理的算法旨在构建一个更稳健、更精准的预测引擎。简单来说这个项目要解决的是如何利用历史疫情数据尽可能准确地预测未来一段时间内的病例数量。其价值不仅在于提供一个预测工具更在于展示一种模型集成与特征工程的高级思路。它适合有一定机器学习或时间序列分析基础希望深入理解模型融合策略并寻求在MATLAB环境下实现复杂预测算法的研究者、数据分析师或高年级学生。项目的核心思路可以概括为“分而治之择优而用”。BILSTM双向长短期记忆网络擅长从序列数据中学习前后文依赖关系GMDH数据分组处理方法是一种自组织建模算法能自动筛选输入变量并构建最优多项式模型而遗传神经网络则结合了神经网络的结构与遗传算法的全局优化能力。将它们组合在一起目标就是让各个模型发挥所长相互补充最终得到一个比任何单一模型都更可靠的预测结果。2. 核心模型原理与选型逻辑拆解在动手写代码之前我们必须深入理解每个组件的“脾气秉性”以及为什么选择它们进行组合。这是避免盲目调参、理解模型行为的关键。2.1 BILSTM捕捉序列的上下文记忆LSTM是处理时间序列的明星网络它通过“门控”机制遗忘门、输入门、输出门解决了传统RNN的梯度消失/爆炸问题能够学习长期依赖关系。而BILSTM双向LSTM则更进一步。核心原理BILSTM包含两个独立的LSTM层一个按时间顺序前向处理序列另一个按时间逆序后向处理序列。最终的输出是这两个方向LSTM输出的结合通常是拼接或求和。这意味着在预测t时刻的值时模型不仅考虑了t时刻之前的所有历史信息前向LSTM还考虑了t时刻之后的部分“未来”上下文信息在训练时整个序列是已知的。对于疫情预测今天的病例数可能不仅与过去几天的趋势有关也可能与未来几天的防控措施反映在数据的后续模式中存在隐含关联BILSTM为捕捉这种双向依赖提供了可能。在本项目中的角色BILSTM充当初级特征提取器与时序模式学习器。它的任务是从原始的时间序列数据如过去N天的病例数中学习并输出一个能够表征当前时刻时序状态的高阶特征向量。这个特征向量比原始数据包含更多信息将作为后续GMDH模型的输入之一。选型理由相比单向LSTMBILSTM能提供更丰富的上下文信息对于波动剧烈的疫情数据理论上能获得更好的特征表示。选择LSTM家族而非Transformer等新架构是因为在中等规模序列数据上LSTM在MATLAB中的实现更为成熟、稳定且计算资源需求相对可控。2.2 GMDH自组织的多项式模型工厂GMDH是一种启发式的归纳建模算法其核心思想是模拟生物进化中的“选择-杂交-突变”过程来自动构建最优复杂度的模型。核心原理算法从一个简单的初始模型集合如所有输入变量的两两组合的二阶多项式开始。每一层代中模型在验证集上进行评估性能最好的一部分模型被“选择”出来作为“父代”。这些父代模型通过“杂交”组合其多项式项产生新的、更复杂的“子代”模型。同时可能会引入“突变”增加或减少项。这个过程逐层迭代模型的复杂度逐渐增加但在验证集上的误差会先下降后上升出现过拟合。GMDH算法会自动选择在验证集上误差最小的那一层模型作为最终模型。在本项目中的角色GMDH在这里扮演核心预测器与特征组合优化器的角色。它的输入包括两部分1BILSTM提取的高阶时序特征2可能存在的其他外部特征如原始序列的滞后项、移动平均、星期几等统计特征。GMDH的任务是从这些输入中自动筛选出最重要的特征组合并构建一个最优的多项式回归模型直接输出最终的预测值。选型理由GMDH最大的优势是“自组织”和“抗过拟合”。它不需要我们手动设计复杂的多项式项或进行繁琐的特征选择算法自己会完成这些工作并倾向于找到一个泛化能力较好的模型。这正好弥补了神经网络模型容易过拟合的缺点。将BILSTM的特征交给GMDH去筛选和建模形成了一种“神经网络特征提取 自组织多项式回归”的混合结构兼具了非线性和可解释性。2.3 遗传神经网络备选的全局优化器遗传神经网络并非一个标准术语它通常指的是利用遗传算法来优化神经网络的结构如层数、神经元数或超参数如学习率。在这个项目语境下它可能有两种理解作为BILSTM的优化器用遗传算法来优化BILSTM的网络超参数如隐藏层单元数、学习率、dropout率以替代网格搜索等传统方法。作为一个独立的并行预测模型构建一个前馈神经网络并用遗传算法训练其权重与BILSTMGMDH通路并行运行最后对两者的结果进行集成如加权平均。核心原理遗传算法模拟自然选择。将一组网络配置或权重编码为“染色体”通过适应度函数如验证集预测误差的倒数评估其优劣然后进行选择、交叉杂交、变异迭代进化出更优的“个体”。在本项目中的角色与选型理由更合理的架构是第一种即用遗传算法优化BILSTM。因为直接训练神经网络权重通常用反向传播更高效。遗传算法擅长在广阔、离散的超参数空间中进行全局搜索能帮助找到BILSTM更好的初始配置从而提升其特征提取的质量间接让整个BILSTM-GMDH pipeline受益。如果作为独立模型则增加了集成的复杂性但可能通过模型多样性提升最终精度属于更高级的集成策略。注意在阅读或实现这类混合模型论文/代码时务必厘清“遗传神经网络”具体所指。本项目分析中我们采用第一种更常见、更合理的解释——作为BILSTM的超参数优化器。2.4 组合逻辑总览与数据流整个系统的预测流程可以清晰地划分为几个阶段数据准备阶段原始COVID-19病例数时间序列 - 进行归一化、划分训练/验证/测试集 - 构建监督学习格式滑动窗口用过去M天预测未来1天或N天。BILSTM特征提取阶段格式化后的序列数据输入BILSTM网络 - BILSTM输出最后一个时间步的隐藏状态或经过全连接层变换后作为高阶特征向量。GMDH建模预测阶段将BILSTM生成的特征向量连同其他手工特征可选一起作为GMDH算法的输入 - GMDH在训练集上自组织生成多项式模型并在验证集上确定最优复杂度 - 使用最终的多项式模型进行预测。优化与集成阶段遗传算法参与在模型训练前使用遗传算法对BILSTM的关键超参数进行寻优以确定一组更优的初始配置。数据流可以简化为原始序列 - (遗传算法优化) - BILSTM - 特征向量 - GMDH - 最终预测值。3. MATLAB环境搭建与核心代码实现解析有了理论框架我们进入实战环节。在MATLAB中实现这个混合模型需要综合利用深度学习工具箱、全局优化工具箱以及自行编写或获取GMDH算法代码。3.1 环境准备与数据预处理首先确保你的MATLAB安装了必要的工具箱Deep Learning Toolbox: 用于构建和训练BILSTM网络。Global Optimization Toolbox: 提供遗传算法 (ga) 函数。Statistics and Machine Learning Toolbox: 用于数据标准化、划分等基本操作。数据预处理是预测成功的基石对于疫情数据尤为重要% 假设原始数据保存在一个列向量 raw_cases 中 data raw_cases; % 1. 处理缺失值与异常值 % 疫情数据可能存在报告延迟或修正简单的用前后均值填充 data fillmissing(data, movmean, 7); % 7天移动平均填充 % 2. 归一化将数据缩放到[0,1]区间加速LSTM训练收敛 [normalized_data, ps] mapminmax(data, 0, 1); % ps 保存缩放参数用于后续反归一化 normalized_data normalized_data; % 3. 创建监督学习数据集滑动窗口 lookback 14; % 用过去14天预测未来 forecast_horizon 7; % 预测未来7天以预测未来1天为例horizon1 features []; targets []; for i 1:(length(normalized_data) - lookback - forecast_horizon 1) features(i, :) normalized_data(i:ilookback-1); targets(i, :) normalized_data(ilookbackforecast_horizon-1); % 预测第lookbackhorizon天 end % 4. 划分数据集 (70%训练15%验证15%测试) numTrain floor(0.7 * size(features, 1)); numVal floor(0.15 * size(features, 1)); XTrain features(1:numTrain, :); YTrain targets(1:numTrain, :); XVal features(numTrain1:numTrainnumVal, :); YVal targets(numTrain1:numTrainnumVal, :); XTest features(numTrainnumVal1:end, :); YTest targets(numTrainnumVal1:end, :); % 5. 转换为MATLAB深度学习数据集格式 (cell array) XTrainCell num2cell(XTrain, 1); % 转置后按列分割成cell YTrainCell num2cell(YTrain, 1); % 对XVal, XTest做同样处理...实操心得lookback回看期的选择非常关键。对于COVID-19数据一个发病周期大约在5-14天因此选择7或14天是合理的起点。可以通过计算自相关函数(ACF)来辅助确定。forecast_horizon设为1一步预测是最稳健的多步预测精度会显著下降通常采用滚动预测用预测值作为输入继续预测或序列到序列模型。3.2 使用遗传算法优化BILSTM超参数我们不直接手调BILSTM的超参数而是让遗传算法帮我们搜索。需要优化的典型参数包括numHiddenUnits: LSTM隐藏层神经元数量范围如 [50, 200]。InitialLearnRate: 初始学习率范围如 [1e-4, 1e-2]对数尺度。DropoutRate: Dropout比例范围如 [0, 0.5]。% 定义适应度函数给定超参数训练一个BILSTM并在验证集上计算误差 function rmse fitnessFunction(params, XTrainCell, YTrainCell, XValCell, YValCell) numHiddenUnits round(params(1)); % 整数 initialLearnRate params(2); dropoutRate params(3); % 定义BILSTM网络结构 layers [ ... sequenceInputLayer(1) % 输入特征维度为1单变量 bilstmLayer(numHiddenUnits, OutputMode, last) % 输出最后一个时间步 dropoutLayer(dropoutRate) fullyConnectedLayer(1) % 回归输出层 regressionLayer]; options trainingOptions(adam, ... InitialLearnRate, initialLearnRate, ... MaxEpochs, 100, ... MiniBatchSize, 32, ... ValidationData, {XValCell, YValCell}, ... ValidationFrequency, 30, ... GradientThreshold, 1, ... Shuffle, every-epoch, ... Verbose, false, ... Plots, none); % 为加速搜索关闭绘图 % 训练网络这里为了速度可以限制epoch或使用早停 net trainNetwork(XTrainCell, YTrainCell, layers, options); % 在验证集上预测并计算RMSE YPredVal predict(net, XValCell); rmse sqrt(mean((cell2mat(YPredVal) - cell2mat(YValCell)).^2)); end % 配置遗传算法 nvars 3; % 优化三个参数 lb [50, 1e-4, 0]; % 下界 ub [200, 1e-2, 0.5]; % 上界 IntCon 1; % 第一个变量神经元数是整数 options_ga optimoptions(ga, ... PopulationSize, 20, ... MaxGenerations, 30, ... FunctionTolerance, 1e-4, ... Display, iter, ... PlotFcn, gaplotbestf); % 运行遗传算法 [bestParams, bestRMSE] ga((p) fitnessFunction(p, XTrainCell, YTrainCell, XValCell, YValCell), ... nvars, [], [], [], [], lb, ub, [], IntCon, options_ga); fprintf(找到的最优参数隐藏单元%d, 学习率%f, Dropout率%f\n, ... round(bestParams(1)), bestParams(2), bestParams(3));这个步骤可能耗时较长但“磨刀不误砍柴工”找到一组好的超参数能为后续的BILSTM特征提取打下坚实基础。3.3 BILSTM特征提取网络构建与训练使用遗传算法找到的最优参数bestParams来配置和训练最终的BILSTM网络。这次训练我们使用完整的训练集并可能增加迭代轮数。% 使用最优参数定义最终网络 numHiddenUnits round(bestParams(1)); initialLearnRate bestParams(2); dropoutRate bestParams(3); layers [ ... sequenceInputLayer(1) bilstmLayer(numHiddenUnits, OutputMode, last) dropoutLayer(dropoutRate) fullyConnectedLayer(32) % 注意这里输出维度设为32作为GMDH的输入特征维度 regressionLayer]; % 仍然需要回归层来指导训练但我们将截取中间特征 options trainingOptions(adam, ... InitialLearnRate, initialLearnRate, ... MaxEpochs, 200, ... MiniBatchSize, 32, ... ValidationData, {XValCell, YValCell}, ... ValidationFrequency, 30, ... GradientThreshold, 1, ... Shuffle, every-epoch, ... Verbose, true, ... Plots, training-progress, ... OutputNetwork, best-validation-loss); % 保存验证集上最好的网络 % 训练网络 [bilstmNet, info] trainNetwork(XTrainCell, YTrainCell, layers, options); % 关键步骤提取BILSTM的特征 % 我们需要获取“最后一个bilstm层”之后、“全连接层”之前的激活值作为特征。 % 方法创建一个新的层图截取到我们需要的层。 lgraph layerGraph(bilstmNet); % 假设我们想提取 bilstm 层名称可能是 bilstm的输出 featureLayerName bilstm; % 需要根据实际网络层名称调整 outputLayerName regressionoutput; % 移除回归层创建一个新的网络用于特征提取 lgraph removeLayers(lgraph, outputLayerName); dlnet dlnetwork(lgraph); % 将数据转换为dlarray格式并提取特征 XTrainFeatures []; for i 1:length(XTrainCell) X dlarray(XTrainCell{i}, CT); % C channel, T time features predict(dlnet, X); % 此时predict输出的是bilstm层的激活值 XTrainFeatures(i, :) extractdata(features); % 转置并提取数据 end % 对XVal, XTest做同样的特征提取操作...现在XTrainFeatures就是一个二维矩阵每一行对应一个样本每一列是BILSTM提取的32维特征。这个矩阵将作为GMDH的主要输入。3.4 GMDH模型实现与训练MATLAB官方没有提供GMDH工具箱因此我们需要自己实现或寻找第三方代码。一个简化版的GMDH核心思想是迭代构建多项式回归模型。这里概述关键步骤构建初始候选模型池假设BILSTM特征有F维我们生成所有两两特征组合的二次多项式模型y ~ a b*fi c*fj d*fi^2 e*fj^2 f*fi*fj其中fi,fj是任意两个不同的特征。每个模型用训练集的一部分数据拟合。选择与进化在独立的验证集上评估所有候选模型的性能如RMSE。选择性能最好的前k个模型作为“父代”。生成新模型将父代模型的多项式项进行组合杂交可能加入新的特征或更高阶项变异产生新一代的、更复杂的候选模型池。迭代与终止重复步骤2和3。随着迭代模型复杂度增加验证集误差通常会先降后升。当新一代模型的最佳误差不再下降或开始上升时停止迭代。选择整个过程中在验证集上误差最小的模型作为最终GMDH模型。由于完整代码较长这里给出一个高度简化的框架和关键函数示意% 假设我们已经有了 % XTrainFeat: 训练集特征 (BILSTM提取的) % YTrain: 训练集目标值 % XValFeat: 验证集特征 % YVal: 验证集目标值 % 参数设置 maxLayers 10; % 最大迭代层数 selectionPressure 0.5; % 选择前50%的模型进入下一代 polynomialDegree 2; % 多项式最高次数初始为2 % 初始化第一层所有两两特征组合的二次多项式 layer 1; models{layer} createInitialModels(XTrainFeat, YTrain, polynomialDegree); [bestModel, bestValError] evaluateModels(models{layer}, XValFeat, YVal); while layer maxLayers layer layer 1; % 从上一层选择优秀模型 selectedModels selectModels(models{layer-1}, XValFeat, YVal, selectionPressure); % 杂交和变异生成新的候选模型 models{layer} evolveModels(selectedModels, XTrainFeat, YTrain, polynomialDegree); % 评估新层模型 [currBestModel, currValError] evaluateModels(models{layer}, XValFeat, YVal); % 如果当前层的最佳模型在验证集上更优则更新 if currValError bestValError bestValError currValError; bestModel currBestModel; else % 如果误差不再下降可以考虑提前停止 break; end end fprintf(GMDH训练完成。最优模型验证集RMSE: %f\n, sqrt(bestValError)); % 使用最优模型在测试集上预测 YTestPredGMDH predictGMDH(bestModel, XTestFeat); % XTestFeat是测试集的BILSTM特征createInitialModels,selectModels,evolveModels,evaluateModels,predictGMDH都需要自行实现涉及多项式回归拟合可用regress或fitlm、模型编码、交叉操作等。这是项目中最具挑战性的部分。3.5 模型集成与最终预测在得到GMDH的预测结果后我们还可以考虑将BILSTM的直接预测结果即之前训练时全连接层输出的原始预测与GMDH的预测结果进行集成以进一步提升鲁棒性。% 获取BILSTM网络的最终预测使用之前保存的‘best-validation-loss’网络 YTestPredBILSTM predict(bilstmNet, XTestCell); YTestPredBILSTM cell2mat(YTestPredBILSTM); % 获取GMDH预测 (YTestPredGMDH) % 简单加权平均集成 weight_bilstm 0.3; % 权重可以基于验证集性能调整 weight_gmdh 0.7; YTestPredEnsemble weight_bilstm * YTestPredBILSTM weight_gmdh * YTestPredGMDH; % 反归一化得到真实的病例数预测 YTestPredEnsemble_Real mapminmax(reverse, YTestPredEnsemble, ps); YTestTrue_Real mapminmax(reverse, YTest, ps); % 计算最终性能指标 mse mean((YTestPredEnsemble_Real - YTestTrue_Real).^2); rmse sqrt(mse); mae mean(abs(YTestPredEnsemble_Real - YTestTrue_Real)); mape mean(abs((YTestPredEnsemble_Real - YTestTrue_Real) ./ YTestTrue_Real)) * 100; fprintf(集成模型在测试集上的表现:\n); fprintf(RMSE: %.2f\n, rmse); fprintf(MAE: %.2f\n, mae); fprintf(MAPE: %.2f%%\n, mape);4. 关键参数调优、避坑指南与结果分析实现代码只是第一步让模型真正work起来需要细致的调优和对常见陷阱的规避。4.1 核心参数调优经验BILSTM部分lookback回看窗口这是最重要的参数之一。除了使用ACF可以尝试网格搜索如[7, 14, 21, 28]。对于具有明显周期性的数据如每周模式窗口大小应是周期长度的整数倍。numHiddenUnits并非越多越好。单元数过多极易过拟合。从50开始根据验证集损失曲线调整。如果发现训练损失远低于验证损失应果断减少单元数或增加Dropout。DropoutRate对抗过拟合的利器。对于疫情数据这种可能包含噪声的数据Dropout率可以设置在0.2到0.5之间。在BILSTM层之后和全连接层之后都可以添加。MiniBatchSize影响训练速度和梯度稳定性。数据量不大时几千条32或64是常用选择。太大会导致内存不足太小会导致更新不稳定。GMDH部分初始多项式复杂度通常从2阶二次开始。过高的阶数会导致初始模型池爆炸式增长计算量剧增且容易在早期就引入过拟合项。选择压力(selectionPressure)决定每一代保留多少比例的“优秀”模型。通常设置在0.3到0.6之间。压力太大会导致种群多样性迅速丧失陷入局部最优太小则进化缓慢。最大层数(maxLayers)设置一个足够大的值如15-20依靠验证集误差早停来判断终止而不是固定层数。验证集的使用至关重要GMDH的模型选择必须在一个独立的验证集上进行绝对不能使用训练集误差否则必然会选择到过拟合的复杂模型。遗传算法部分PopulationSize种群大小通常设置在20-50。太小搜索能力弱太大计算慢。MaxGenerations最大代数设置50-100代配合FunctionTolerance函数值容差使用当适应度在连续多代内改进小于容差时停止。适应度函数设计这里使用的是验证集RMSE的倒数或负RMSE。为了加速评估可以在适应度函数内限制BILSTM的训练轮数如30轮只要保证不同超参数下的评估标准相对公平即可。4.2 常见问题与排查技巧实录即使按照步骤操作你也可能会遇到以下问题。这里是我的“踩坑”记录问题BILSTM训练损失震荡剧烈或不下降。排查首先检查数据归一化。如果没有归一化到[0,1]或[-1,1]LSTM的梯度会非常不稳定。其次检查学习率是否过高。尝试将InitialLearnRate降低一个数量级如从1e-3降到1e-4。使用training-progress图观察。解决确保数据正确归一化。使用自适应优化器如Adam。添加梯度裁剪 (GradientThreshold, 通常设为1或2) 防止梯度爆炸。从较小的学习率开始尝试。问题模型在训练集上表现完美但在验证/测试集上很差过拟合。排查这是混合模型需要定位是哪个环节过拟合。分别观察BILSTM在验证集上的预测表现以及GMDH在验证集上的选择过程。解决BILSTM过拟合增加Dropout率减少numHiddenUnits添加L2正则化在trainingOptions中设置L2Regularization获取更多训练数据或使用数据增强如添加轻微噪声。GMDH过拟合确保GMDH的模型选择严格基于独立的验证集而不是训练集。增加GMDH算法中的选择压力让更简单的模型有更多机会。限制多项式的最大阶数。问题GMDH算法运行速度极慢。排查初始特征维度是否过高BILSTM提取的特征维度如32是合理的。问题可能出在GMDH的候选模型生成上两两组合的二次多项式模型数量是C(F,2)如果F很大计算量呈平方增长。解决在创建GMDH输入特征时可以先使用PCA主成分分析或使用LASSO等特征选择方法将BILSTM特征降至一个更低的维度如10-15维再送入GMDH。这能极大减少计算量且可能提升泛化能力。问题最终预测结果总是滞后于真实趋势预测曲线相位滞后。排查这是时间序列预测的常见问题意味着模型更多地学到了“重复历史”而非“预测未来”。检查目标值Y的构建是否正确是否严格用过去的数据预测未来的数据没有发生数据泄露。解决确保数据划分时测试集的时间戳严格在训练集之后。可以尝试在特征中加入趋势项如移动平均的斜率或周期标识如“星期几”的one-hot编码帮助模型把握相位。对于BILSTM可以尝试使用更深的网络或调整lookback窗口。问题遗传算法跑了很久但找到的超参数似乎不理想。排查适应度函数评估一次训练一个BILSTM成本很高导致总迭代次数有限。解决在适应度函数内使用更小的MaxEpochs如30和更早的早停策略以牺牲单次评估精度为代价换取更多的搜索迭代。确保超参数的搜索范围 (lb,ub) 设置合理可以参考文献或经验值。4.3 结果分析与模型评估得到预测结果后不能只看RMSE、MAE这几个数字可视化分析至关重要figure; plot(YTestTrue_Real, b-, LineWidth, 1.5); hold on; plot(YTestPredEnsemble_Real, r--, LineWidth, 1.5); plot(YTestPredBILSTM_Real, g:, LineWidth, 1); % BILSTM单独预测 plot(YTestPredGMDH_Real, m-., LineWidth, 1); % GMDH单独预测 legend(真实值, 集成预测, BILSTM预测, GMDH预测); xlabel(测试集时间点); ylabel(病例数); title(COVID-19病例数预测结果对比); grid on; % 绘制残差图 residuals YTestTrue_Real - YTestPredEnsemble_Real; figure; subplot(2,1,1); plot(residuals, o-); ylabel(残差); xlabel(测试集时间点); title(预测残差序列); grid on; hline refline(0,0); hline.Color r; subplot(2,1,2); histogram(residuals, 20); xlabel(残差); ylabel(频数); title(残差分布);看图要点拟合曲线观察预测曲线是否跟上了真实曲线的波动和拐点。滞后现象是否严重在峰值和谷值处的预测能力如何残差序列理想的残差应该像白噪声一样没有明显的模式如趋势、周期性。如果残差图显示出明显的趋势或周期说明模型还有未捕捉到的信息。残差分布应该近似于均值为0的正态分布。如果分布严重偏斜可能需要对目标变量进行变换如对数变换。最终模型的选择比较BILSTM单独预测、GMDH单独预测以原始特征为输入以及BILSTM-GMDH混合模型、集成模型的测试集指标。一个成功的混合模型其指标尤其是RMSE和MAPE应该显著优于任何一个单一模型。这证明了模型融合的有效性。这个项目将前沿的深度学习模型BILSTM、经典的自组织算法GMDH和智能优化算法GA串联起来构建了一个强大的预测管道。它教会我们的不仅仅是如何预测COVID-19病例更是一种应对复杂、非线性时间序列预测问题的系统方法论用深度学习提取抽象特征用自组织算法构建可解释模型用元启发式算法优化全局配置。在实际操作中耐心地调参、严谨地验证、细致地分析结果比追求更复杂的模型结构往往更为重要。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门