时间序列预测实战(十一)用SCINet实现滚动预测功能(附代码+数据集+原理介绍)

时间序列模型SCINet(代码解析) 基于因果神经网络改进的SCINet长时间序列预测模型,在公共数据集上表现仅次于Nlinear 阅读详情
AI摘要

本文围绕SCINet实现时间序列滚动预测展开,介绍了其基本原理和组件,采用编码器 - 解码器架构,通过二叉树结构堆叠SCI - Block提取特征。使用两个数据集测试,讲解了参数、项目结构,进行训练和预测,分析结果存在数据滞后性问题,并给出训练个人数据集的方法。

论文地址->SCINet官方论文地址

官方代码地址-> 官方代码下载地址

个人整理的代码地址->点击即可跳转——免费分享给大家创作不易请大家给文章点点赞

一、本文介绍

这篇文章给大家带来的是关于SCINet实现时间序列滚动预测功能的讲解,SCINet是样本卷积交换网络的缩写(Sample Convolutional Interchange Network),SCINet号称是比现有的卷积模型和基于Transformer的模型准确率都有提升(我实验了几次效果确实不错)。本篇文章讲解的代码是我个人根据官方的代码总结出来的模型结构并且进行改进增加了滚动预测的功能。本篇实战案例中包括->详细的参数讲解、改进方向、数据集介绍、模型框架原理、项目结构、如何训练个人数据集的教程、以及结果分析和结果展示。本篇文章的讲解流程为->

适用对象->适合对精度有比较高要求的学习者

预测类型->单元变量预测、多元变量预测

二、模型框架原理

1.SCINet基本原理

SCINet是一个层次化的降采样-卷积-交互TSF框架,有效地对具有复杂时间动态的时间序列进行建模。通过在多个时间分辨率上迭代提取和交换信息,可以学习到具有增强可预测性的有效表示。此外,SCINet的基础构件,SCI-Block,通过将输入数据/特征降采样为两个子序列,然后使用不同的卷积滤波器提取每个子序列的特征。为了补偿降采样过程中的信息损失,每个SCI-Block内部都加入了两种卷积特征之间的交互学习。

个人总结:SCINet就是在不同的维度上面对数据进行处理进行特征提取工作,从而获得不同层次的特征。这点有点类似于目标检测的YOLO系列模型,一张图片进行不断的缩放和扩大获取不同层次的特征,然后对这些特征进行操作,既节省算力又提高精度。(SCINet引入了一个新的概念时间分辨率大家可以注意一下)

2.SCINet基本组件

 下图为SCINet网络结构图

SCINet采用编码器-解码器架构。编码器是一个分层卷积网络,通过丰富的卷积滤波器捕捉多分辨率下的动态时间依赖性。其基本构件SCI-Block将输入数据或特征降采样为两个子序列,然后用一组卷积滤波器处理每个子序列,从每部分中提取独特但有价值的时间特征。为了补偿降采样中的信息损失,它允许两个子序列之间的交互学习。SCINet通过将多个SCI-Blocks排列成二叉树结构来构建。这种设计的一个显著优势是每个SCI-Block都对整个时间序列有局部和全局视角,从而有助于提取有用的时间特征。经过所有降采样-卷积-交互操作后,将提取的特征重新排列成新的序列表示,并将其加入原始时间序列中,用全连接网络作为解码器进行预测。

个人总结:SCINet就是将多个SCI-Block用二叉树的结构堆叠起来,然后提取不从层次的特征,然后从新排列起来,然后经过一个全连接层进行预测。

改进方案:这里其实有改进的空间,经过我的训练过程我发现这个模型训练时间还是比较长的,就是因为他堆叠多个层的SCI-Block这里我觉得可以结和一些新的结构进行改造的,类似于不进行二叉树的操作,但是将不同层次的特征融合起来,有兴趣的小伙伴可以研究一下,没准能发个论文毕竟文章的简写就是SCI~~。

三、数据集介绍 

这个模型用了两个数据集进行测试,一个是某个公司的话务员接线量一个是油温效果都不错,下面讲解用油温的数据集来进行讲解和结果分析。

数据集的部分截图如下->其具有八列数据‘OT’其中间的关系为化学关系比较固定,为油温度。

四、参数讲解 

模型的全部参数如下->

    parser.add_argument('--train', type=bool, default=True, help='Whether to conduct training')
    parser.add_argument('--rollingforecast', type=bool, default=True, help='rolling forecast True or False')
    parser.add_argument('--rolling_data_path', type=str, default='ETTh1-Test.csv', help='rolling data file')
    parser.add_argument('--model', type=str, default='Transformer',
                        help='model name, options: [Transformer, Linear, NLinear, DLinear, SCINet, ConvFC, MTSMixer, MTSMatrix, FNet]')

    # data loader
    parser.add_argument('--root_path', type=str, default='./', help='root path of the data file')
    parser.add_argument('--data_path', type=str, default='ETTh1.csv', help='data file')
    parser.add_argument('--features', type=str, default='MS',
                        help='forecasting task, options:[M, S, MS]; M:multivariate predict multivariate, S:univariate predict univariate, MS:multivariate predict univariate')
    parser.add_argument('--target', type=str, default='OT', help='target feature in S or MS task')
    parser.add_argument('--freq', type=str, default='h',
                        help='freq for time features encoding, options:[s:secondly, t:minutely, h:hourly, d:daily, b:business days, w:weekly, m:monthly], you can also use more detailed freq like 15min or 3h')
    parser.add_argument('--checkpoints', type=str, default='./models/', help='location of model models')

    # forecasting task
    parser.add_argument('--seq_len', type=int, default=32, help='input sequence length')
    parser.add_argument('--label_len', type=int, default=8, help='start token length')
    parser.add_argument('--pred_len', type=int, default=4, help='prediction sequence length')

    # model
    parser.add_argument('--rev', action='store_true', default=False, help='whether to apply RevIN')
    parser.add_argument('--enc_in', type=int, default=7, help='encoder input size')
    parser.add_argument('--dec_in', type=int, default=7, help='decoder input size')
    parser.add_argument('--c_out', type=int, default=1, help='output size')
    parser.add_argument('--d_model', type=int, default=512, help='dimension of model')

    parser.add_argument('--dropout', type=float, default=0.05, help='dropout')
    parser.add_argument('--embed', type=str, default='timeF',
                        help='time features encoding, options:[timeF, fixed, learned]')
    parser.add_argument('--activation', type=str, default='gelu', help='activation')

    # optimization
    parser.add_argument('--num_workers', type=int, default=0, help='data loader num workers')
    parser.add_argument('--train_epochs', type=int, default=10, help='train epochs')
    parser.add_argument('--batch_size', type=int, default=16, help='batch size of train input data')
    parser.add_argument('--learning_rate', type=float, default=0.001, help='optimizer learning rate')
    parser.add_argument('--loss', type=str, default='mse', help='loss function')
    parser.add_argument('--lradj', type=str, default='type1', help='adjust learning rate')

    # GPU
    parser.add_argument('--use_gpu', type=bool, default=True, help='use gpu')
    parser.add_argument('--device', type=int, default=0, help='gpu')

模型的详细参数讲解如下-> 

参数名称参数类型参数讲解
0trainbool是否进行训练,如果你单纯只想进行预测设置为False即可,
1rollingforecastbool是否进行滚动预测,如果是则设置为True,如果不进行滚动预测则进行正常的预测
2rolling-data-pathstr如果进行滚动预测则需要添加新的和训练文件相同格式的数据
3modelstr定义的模型名称
4root_pathstr这个才是你文件的路径,不要到具体的文件,到目录级别即可。
5data_pathstr这个填写你文件的具体名称。
6featuresstr这个是特征有三个选项M,MS,S。分别是多元预测多元,多元预测单元,单元预测单元。
7targetstr这个是你数据集中你想要预测那一列数据,假设我预测的是油温OT列就输入OT即可。
8freqstr时间的间隔,你数据集每一条数据之间的时间间隔。
9checkpointsstr训练出来的模型保存路径
10seq_lenint用过去的多少条数据来预测未来的数据
11label_lenint可以理解为更高的权重占比的部分要小于seq_len
12pred_lenint预测未来多少个时间点的数据
13enc_inint你数据有多少列,要减去时间那一列,这里我是输入8列数据但是有一列是时间所以就填写7
14dec_inint同上
15c_outint这里有一些不同如果你的features填写的是M那么和上面就一样,如果填写的MS那么这里要输入1因为你的输出只有一列数据。
16d_modelint用于设置模型的维度,默认值为512。可以根据需要调整该参数的数值来改变模型的维度
15n_headsint用于设置模型中的注意力头数。默认值为8,表示模型会使用8个注意力头,我建议和的输入数据的总体保持一致,列如我输入的是8列数据不用刨去时间的那一列就输入8即可。
17e_layersint用于设置编码器的层数
18d_layersint用于设置解码器的层数
19s_layersstr用于设置堆叠编码器的层数
20dropoutfloat这个应该都理解不说了,丢弃的概率,防止过拟合的。
21embedstr时间特征的编码方式,默认为"timeF"
22activationstr激活函数
23num_workersint线程windows大家最好设置成0否则会报线程错误,linux系统随便设置。
24train_epochsint训练的次数
25batch_sizeint一次往模型力输入多少条数据
26learning_ratefloat学习率。
27lossstr     损失函数,默认为"mse"
28lradjstr     学习率的调整方式,默认为"type1"
29use_gpubool是否使用GPU训练,根据自身来选择
30gpuintGPU的编号

五、项目结构 

项目的构造目录如下->

其中data用于方法训练数据,layers用于存放模型,models用于存放训练的保存结果,results用于存放模型的预测结果为CSV的输出格式文件,util用于存放一些工具。 

​

六、训练和预测

1.训练模型

经过参数的讲解我们已经定义好了所有的参数,可以开始训练了,我的完整main.py文件调好参数的内容如下->

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='SCINet Multivariate Time Series Forecasting')
    # basic config
    parser.add_argument('--train', type=bool, default=True, help='Whether to conduct training')
    parser.add_argument('--rollingforecast', type=bool, default=True, help='rolling forecast True or False')
    parser.add_argument('--rolling_data_path', type=str, default='ETTh1-Test.csv', help='rolling data file')
    parser.add_argument('--model', type=str, default='SCINet',help='Model name')

    # data loader
    parser.add_argument('--root_path', type=str, default='./data/', help='root path of the data file')
    parser.add_argument('--data_path', type=str, default='ETTh1.csv', help='data file')
    parser.add_argument('--features', type=str, default='MS',
                        help='forecasting task, options:[M, S, MS]; M:multivariate predict multivariate, S:univariate predict univariate, MS:multivariate predict univariate')
    parser.add_argument('--target', type=str, default='OT', help='target feature in S or MS task')
    parser.add_argument('--freq', type=str, default='h',
                        help='freq for time features encoding, options:[s:secondly, t:minutely, h:hourly, d:daily, b:business days, w:weekly, m:monthly], you can also use more detailed freq like 15min or 3h')
    parser.add_argument('--checkpoints', type=str, default='./models/', help='location of model models')

    # forecasting task
    parser.add_argument('--seq_len', type=int, default=32, help='input sequence length')
    parser.add_argument('--label_len', type=int, default=8, help='start token length')
    parser.add_argument('--pred_len', type=int, default=4, help='prediction sequence length')

    # model
    parser.add_argument('--rev', action='store_true', default=False, help='whether to apply RevIN')
    parser.add_argument('--enc_in', type=int, default=7, help='encoder input size')
    parser.add_argument('--dec_in', type=int, default=7, help='decoder input size')
    parser.add_argument('--c_out', type=int, default=1, help='output size')
    parser.add_argument('--d_model', type=int, default=512, help='dimension of model')

    parser.add_argument('--dropout', type=float, default=0.05, help='dropout')
    parser.add_argument('--embed', type=str, default='timeF',
                        help='time features encoding, options:[timeF, fixed, learned]')
    parser.add_argument('--activation', type=str, default='gelu', help='activation')

    # optimization
    parser.add_argument('--num_workers', type=int, default=0, help='data loader num workers')
    parser.add_argument('--train_epochs', type=int, default=10, help='train epochs')
    parser.add_argument('--batch_size', type=int, default=16, help='batch size of train input data')
    parser.add_argument('--learning_rate', type=float, default=0.001, help='optimizer learning rate')
    parser.add_argument('--loss', type=str, default='mse', help='loss function')
    parser.add_argument('--lradj', type=str, default='type1', help='adjust learning rate')

    # GPU
    parser.add_argument('--use_gpu', type=bool, default=True, help='use gpu')
    parser.add_argument('--device', type=int, default=0, help='gpu')
    args = parser.parse_args()
    Exp = SCINetinitialization
    # setting record of experiments
    setting = 'predict-{}-data-{}'.format(args.model, args.data_path[:-4])

    SCI = SCINetinitialization(args)  # 实例化模型
    if args.train:
        print('>>>>>>>start training : {}>>>>>>>>>>>>>>>>>>>>>>>>>>'.format(args.model))
        SCI.train(setting)
    print('>>>>>>>predicting : {}<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<'.format(args.model))
    SCI.predict(setting, True)

我们进行执行控制台开始输出训练结果->

 训练完成后,模型保存到该目录下->

​

2.开始预测 

训练完成之后,开始进行预测,控制台会进行结果的输出,最后会生成结果文件。

​

结果文件输出在如下目录->

​

3.1结果展示 

下面的图片是预测值和真实值的对比图,大家可以看出预测结果还是非常不错的。 

下面的图片为MAE的损失图->

3.2结果分析 

可以看出虽然预测结果还可以接受,但是其中存在明显的数据滞后性,这个问题其实是时间序列预测的通病,目前想要解决两种方法:

  • 一种方法是通过损失精度然后进行数据的预处理操作
  • 另一种就是结合其它能够处理数据滞后性的模型进行模型融合的操作。

后期我也会进行模型融合尝试如果大家需要可以在评论区留言想要看和其它什么模型结合。

七、训练你个人数据集 

这个模型我在写的过程中为了节省大家训练自己数据集,我基本上把大部分的参数都写好了,需要大家注意的就是如果要进行滚动预测下面的参数要设置为True。

    parser.add_argument('--rollingforecast', type=bool, default=True, help='rolling forecast True or False')

如果上面的参数设置为True那么下面就要提供一个进行滚动预测的数据集,该数据集的格式要和你训练模型的数据集格式完全一致(重要!!!),如果没有可以考虑在自己数据的尾部剪切一部分,不要粘贴否则数据模型已经训练过了的话预测就没有效果了。 

    parser.add_argument('--rolling_data_path', type=str, default='ETTh1-Test.csv', help='rolling data file')

其它的没什么可以讲的了大部分的修改操作在参数讲解的部分我都详细讲过了,这里的滚动预测可能是大家想看的所以摘出来详细讲讲。 

总结  

到此本文已经全部讲解完成了,希望能够帮助到大家,如果你用我的代码可能会存在一些Bug但是肯定不影响运行,如果大家有发现任何的bug可以和我私信沟通,或者评论区留言我可以,大家可以进行探讨。在这里也给大家推荐一些我其它的博客的时间序列实战案例讲解,其中有数据分析的讲解就是我前面提到的如何设置参数的分析博客,最后希望大家订阅我的专栏,本专栏均分文章均分98,并且免费阅读。

时间序列预测:深度学习、机器学习、融合模型、创新模型实战案例(附代码+数据集+原理介绍)

时间序列预测模型实战案例(十)(个人创新模型)通过堆叠CNN、GRU、LSTM实现多元预测和单元预测

时间序列预测中的数据分析->周期性、相关性、滞后性、趋势性、离群值等特性的分析方法

时间序列预测模型实战案例(八)(Informer)个人数据集、详细参数、代码实战讲解

时间序列预测模型实战案例(七)(TPA-LSTM)结合TPA注意力机制的LSTM实现多元预测

时间序列预测模型实战案例(六)深入理解机器学习ARIMA包括差分和相关性分析

时间序列预测模型实战案例(五)基于双向LSTM横向搭配单向LSTM进行回归问题解决

时间序列预测模型实战案例(四)(Xgboost)(Python)(机器学习)图解机制原理实现时间序列预测和分类(附一键运行代码资源下载和代码讲解)

时间序列预测模型实战案例(三)(LSTM)(Python)(深度学习)时间序列预测(包括运行代码以及代码讲解)

【全网首发】(MTS-Mixers)(Python)(Pytorch)最新由华为发布的时间序列预测模型实战案例(一)(包括代码讲解)实现企业级预测精度包括官方代码BUG修复Transform模型

时间序列预测模型实战案例(二)(Holt-Winter)(Python)结合K-折交叉验证进行时间序列预测实现企业级预测精度(包括运行代码以及代码讲解)

最后希望大家工作顺利学业有成!

​​

第75步 时间序列建模实战:多步滚动预测 vol-3(以ARIMA为例) 阅读详情

相关推荐

SCINet时间序列预测实战(附代码+数据集+原理介绍)

这篇文章给大家带来的是关于SCINet实现时间序列滚动预测功能的讲解,SCINet是样本卷积交换网络的缩写(Sample Convolutional Interchange Network),SCINet号称是比现有的卷积模型和基于Transformer的模型准确率都有提升(我实验了几次效果确实不错)。本篇文章讲解的代码是我个人根据官方的代码总结出来的模型结构并且进行改进增加了滚动预测的功能。模型我用了两个数据集进行测试,一个是某个公司的话务员接线量一个是油温效果都不错,我下面讲解用油温的数据进行案例的讲解SCINet是一个层次化的降采样-卷积-交互TSF框架,有效地对具有复杂时间动态的时间序列进行建模。通过在多个时间分辨率上迭代提取和交换信息,可以学习到具有增强可预测性的有效表示。此外,SCINet的基础构件,SCI-Block,通过将输入数据/特征降采样为两个子序列,然后使用不同的卷积滤波器提取每个子序列的特征。为了补偿降采样过程中的信息损失,每个SCI-Block内部都加入了两种卷积特征之间的交互学习。个人总结:SCINet就是在不同的维度上面对数据进行处理进行特征提取工作,从而

SCINet:Time Series Modeling and Forecasting with Sample Convolution and Interaction学习记录

SCINet称为样本卷积交换网络,是一个用于时间序列预测的神经网络模型,其是在Dilated casual convolution的基础上进行设计的,对于Dilated casual convolution,其特点如下: 该模型是在casual convolution上改进的: 要求对时刻t的预测只能通过t时刻之前的输入x1到xt-1来判别,使用mask来实现。 缺点:造成信息大量浪费,只能基于第一层的神经元进行计算,想要扩大数据范围就需要加深网络层数,但结果却差强人意,故而提出了膨胀卷积的模型(dilat

pengxiang1998的博客 5858

Spring Boot 实现多图片上传并回显,涨姿势了~

上传 Controller的代码非常简单,由于用了SpringMVC框架,所以直接用MultipartFile来接即可。由于是多图片上传所以用数组来接。此处应该注意参数名应该和<input>中的name值相对应: @RequestMapping("/pic") @ResponseBody publicResponseEntity<String>pic(MultipartFile[]pictures)throwsException{ ResponseEnti...

weixin_54556126的博客 894

【论文阅读16】- SCINet | NeurIPS (2022)

简单来说,这篇论文提出了一种新的时间序列预测模型,SCINet,强调了通过分层的下采样、卷积和交互学习机制来提高模型对时间依赖性的理解,进而提高预测的准确性。

wangshangshang09的博客 1986

S32K144之芯片锁死解锁——进入HardFault

S32K144之芯片锁死解锁——进入HardFault 最近遇到因为软件代码问题导致进入HardFault,从而使芯片锁死,来简述具体现象以及最终的解锁方法。 导致原因:如下图,在进行Gpio的相关配置,case后面没有break语句,导致芯片进入HardFault。 现象1:reset引脚持续为低,reset指示灯常亮。如果掉电后重新上电,通过示波器抓取reset引脚的波形,会有510us左右或者29ms左右的低电平脉冲出现,一般会出现两三次左右并且没有规矩,持续几秒的高电平之后,reset脚再次被拉低

weixin_41935674的博客 8276

采用MPU6050的手势遥控器

随着社会的发展与进步,电子产品日益更新,个人家庭迎来了越来越多的智能家电。然而,现在的智能电子设备产品的遥控器多数都是按键形的。操作繁琐不直观,学习成本大。并且对于有老人小孩的家庭,给他们的操作带来了巨大的障碍。手势遥控器是指利用简单的手势来指挥电子设备,获得便捷的操作体验。让家庭成员都可以享受科技发展带来的福利。MPU6050是一个运动传感器,内置陀螺仪,再由电子设备利用判断结果做出相应的响应即...

Sakura的博客小站 6603

时间序列-预测-模型-2021:SCINet

论文针对的是时序预测问题(Time series forecasting,TSF),根据时间序列的特点创新性地提出了一个多层的神经网络框架sample convolution and interaction network(SCINet)用于时序预测。模型在多个数据集上都展示了其准确率上的优越性,且时间成本相对其他模型(如时序卷积网络TCN)也更低。

u013250861的博客 3414

AI 大模型在电商精准营销中的应用

例如,对于用户 A 和用户 B,通过比较他们对共同评价过的商品的评分差异来确定相似度。其中,(Gain(D,a))表示特征(a)对数据集(D)的信息增益,(Ent(D))表示数据集(D)的信息熵,(V)表示特征(a)的取值个数,(D^{v})表示特征(a)取值为(v)的样本子集。其中,(sim(A,B))表示用户 A 和用户 B 的相似度,(I)表示用户 A 和用户 B 共同评价过的商品集合,(R_{A,i})和(R_{B,i})分别表示用户 A 和用户 B 对商品(i)的评分。(三)营销活动效果预测。

alittlehippo的博客 1627

别再只用LSTM了!用PyTorch复现SCINet时间序列预测模型(附完整代码)

本文详细介绍了如何使用PyTorch复现SCINet时间序列预测模型,包括环境配置、数据准备、SCI-Block核心模块实现以及完整模型架构构建。SCINet作为新型时间序列预测框架,在多个基准数据集上表现优异,超越传统LSTM等模型。文章还提供了完整的代码实现和训练优化技巧,帮助开发者快速掌握这一先进技术。

weixin_30384217的博客 524

Zemax非序列模式实战:手把手教你设计光纤耦合圆光斑整形系统(附Thorlabs透镜选型)

本文提供了一份基于Zemax非序列模式的光纤耦合圆光斑整形系统实战设计指南。文章详细讲解了从圆柱体光源建模、Thorlabs商业透镜库选型调用,到系统搭建、光线追迹与优化的完整流程,旨在帮助工程师高效完成从仿真到落地的光束整形系统设计。

weixin_28335283的博客 633

数据分析——员工离职预测

员工离职预测一. 题目描述二. 数据说明三. 步骤实现1.导入并查看2.数据探索性分析3.数据处理4.模型分析5.结果分析(1) 可视化的结果分析(2)特征选择结果分析(3)多模型交叉验证结果分析 一. 题目描述 员工是否准备离职是困扰用人单位的问题,其关系到单位业务的开展及新人员的招聘,及时的分析出有离职倾向的员工成为关键的因素。数据主要包括影响员工离职的各种因素(工资、出差、工作环境满意度、工作投入度、是否加班、是否升职、工资提升比例等)以及员工是否已经离职的对应记录。 二. 数据说明 数据分为训练数据

weixin_43925467的博客 1万+

SCINet安装与配置完全指南

SCINet安装与配置完全指南 项目基础介绍及主要编程语言 SCINet 是一个基于PyTorch实现的开源项目,旨在解决时间序列预测的问题。此项目源于论文《Time Series is a Special Sequence: Forecasting with Sample Convolution and Interaction》,该论文在NeurIPS 2022会议上发表。SCINet通过样本卷...

gitblog_07529的博客 604

Nginx/OpenResty目录穿越漏洞复现

Nginx/OpenResty目录穿越漏洞复现 漏洞背景: 2020年03月18日, 360CERT监测发现 openwall oss-security 邮件组披露了两枚漏洞。在特定配置下 nginx/openresty 存在 内存泄漏漏洞/目录穿越漏洞。 Nginx 是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。 OpenResty是一个基于nginx的Web平台,它对nginx增加LuaJIT引擎使其运行Lua脚本。 影响版本: nginx <= v1.17

小小猪的博客 1万+

革命性提升 SCINet 性能:RevIN 可逆归一化技术完全解析

SCINet 作为 NeurIPS 2022 收录的时间序列预测模型,其核心优势在于样本卷积与交互机制。而 **RevIN(可逆实例归一化)** 技术的引入,更是为 SCINet 带来了性能的革命性突破,尤其在处理训练与测试样本分布差异较大的场景中表现卓越。本文将全面解析 RevIN 技术原理及其在 SCINet 中的应用方法。 ## RevIN:解决时间序列分布偏移的创新方案 ### 什么是

gitblog_00288的博客 479

【光伏风电功率预测】偏差考核每月少几十万:STL-VMD + Informer-LSTM 在某基地的落地案例

摘要:某风光一体化基地通过STL-VMD二次分解与Informer-LSTM并行残差模型,在不推翻现有预测系统的情况下,将风光功率预测的综合nRMSE降低了1.2-1.5个百分点。该方案通过分解预测误差为多个子序列,并采用不同模型处理各频段特征,显著改善了关键时段的预测精度。实施后,风电nRMSE从9.0%降至7.6%,光伏从10.2%降至8.8%,每月减少偏差考核费用30-50万元。项目经验表明,数据质量优化、参数调优及与业务目标对齐是关键成功因素,该技术路线具有可复制性,为风光基地预测精度提升提供了有效

专注AI大模型,软件混淆,授权 266

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

为什么 SCINet 能超越传统时序模型?样本卷积交互原理深度剖析

SCINet(Sample Convolution and Interaction Network)是NeurIPS 2022收录的创新时序预测模型,通过独特的样本卷积与交互机制,在多个权威数据集上实现了对传统时序模型的性能超越。本文将深入解析SCINet的核心原理,揭示其如何通过层级化的样本交互设计突破传统模型的局限。 ## 传统时序模型的三大痛点 传统时序预测方法普遍面临以下挑战: - *

gitblog_07670的博客 439

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

别再只用Transformer了!用Python复现SCINet时间序列预测模型(附代码)

本文介绍了SCINet时间序列预测模型的Python实现,突破Transformer的局限,通过递归下采样-卷积-交互机制实现高效预测。SCINet在计算复杂度和多尺度特征提取方面表现优异,特别适合电力负荷等周期性数据。文章包含详细代码示例和工业级优化技巧,帮助开发者快速掌握这一先进技术。

weixin_42638178的博客 329

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

最新ASSA-结合informer bilstm SCINet组合预测模型

最终效果看这个对比图(假设此处插入预测结果对比图),红线是真实值,蓝线是融合预测。目前,预测模型都是由三种模型的变体而来,分别是rnn系列 transformer系列和tcn系列,现在我将三种模型结合起来,进行模型堆叠,进行了模型组合,实现并行预测,最后将预测结果融合后输出。这段代码有两个骚操作:一是各子模型输出直接被用作权重计算的输入,相当于让模型自己决定该相信哪个兄弟的预测;2.需要自己调参数,不保证在所有数据上都表现好,只是分享一种优化思路,具体原理之类的不讲解,只提供能跑通的模型,不回答问题。

2504_94276515的博客 410

最新ASSA-(informer bilstm SCINet)组合预测模型。 目前,预测模型都...

最终效果看这个对比图(假设此处插入预测结果对比图),红线是真实值,蓝线是融合预测。目前,预测模型都是由三种模型的变体而来,分别是rnn系列 transformer系列和tcn系列,现在我将三种模型结合起来,进行模型堆叠,进行了模型组合,实现并行预测,最后将预测结果融合后输出。目前,预测模型都是由三种模型的变体而来,分别是rnn系列 transformer系列和tcn系列,现在我将三种模型结合起来,进行模型堆叠,进行了模型组合,实现并行预测,最后将预测结果融合后输出。3.有图,有预测指标,具体可看图。

eqXUIrcRQM的博客 98

传统学习预测算法的总结

本文系统探讨了预测问题的多种技术方案,涵盖传统算法到深度学习。从基础的线性回归、逻辑回归到集成方法(随机森林、XGBoost等),以及神经网络(MLP),详细分析了原理、应用案例及对比评估。特别对正则化回归(岭回归、Lasso)、支持向量回归(SVR)和梯度提升算法(XGBoost/LightGBM/CatBoost)进行实战解析,并介绍了回归/分类问题的评价指标。内容兼具理论深度与实践指导性,为预测建模提供了全面的技术参考。

ai12345678900008的博客 461

机器学习笔记目录大纲

D1时间序列的脚本概念-优快云博客D2时间序列的建立过程-优快云博客D3-1-LSTM时间序列的知识点分析-优快云博客D3-2-LSTM时间序列的实际操作-优快云博客D4-时间序列预测中的异常值检测方法(4大类8种)-优快云博客D5-异常值处理方法(6大类10种)-优快云博客D6-基于Bi-LSTM横向搭配LSTM进行回归问题解决-优快云博客D6-基于Bi-LSTM横向搭配LSTM代码实现-优快云博客D7-时间预测用SCINet实现滚动预测功能代码实现-优快云博客D8-DLinear模型实

ai12345678900008的博客 876

原理+论文+实战:60篇由浅入深的时间序列预测/分类教程汇总

60篇由浅入深的时间序列预测/分类教程汇总

qq_40071917的博客 187

PoE2 角色构建工具怎么用:从装好到配出第一套 Build

Path of Building 2 是一款面向《流放之路 2》的离线角色构建规划工具,把天赋树、装备搭配与伤害计算放在同一个界面里,解决"配 Build 时数字算不明白"的问题,适合想理性规划角色的 PoE2 玩家。 ## 两种让你需要它的局面 你在做一套近战 BD,想把双持斧换成双手锤,却说不清伤害会变成什么样——游戏里只能看物品提示,最终输出由攻击速度、元素穿透和怪物抗性混在一起决定。

gitblog_00208的博客 168

PaddleTS的时序预测模型模块模块

PaddleTS是基于飞桨深度学习框架PaddlePaddle开发的时序模型库。它提供了丰富的时序分析模型,包括预测、表征、异常检测和分类模型,适用于多种时序数据的分析和应用。通过这些模块,PaddleTS为用户提供了一个完整的时序数据分析解决方案。学生们可以根据不同的应用需求选择相应的模型模块,快速构建并部署时序预测、表征、异常检测和分类模型。

weixin_41046245的博客 2293

15个时序大模型实战选型指南:从数据特性到部署落地

时序大模型(TSFM)并非单纯参数膨胀,而是对时间结构本质的建模跃迁——涵盖多尺度依赖、时间粒度可逆性、外生变量动态耦合等核心能力。其技术价值在于突破传统单任务预测范式,支撑端到端预训练-微调流程,并在真实工业场景中实现鲁棒推理与轻量部署。典型应用场景包括新能源功率预测、设备故障预警、金融用户行为建模及零售销量 forecasting。关键落地前提是对数据特性的深度适配:如高缺失率需SCINet或PatchTST的掩码内化机制,强外生依赖宜选TiDE,边缘部署优先TSMixer或Moirai-Tiny。本文

weixin_33892359的博客 359
上一篇: 时间序列预测专栏目录 | 深度学习、机器学习、融合模型、创新模型实战案例(附代码+数据集+原理介绍)
下一篇: 时间序列预测实战(九)PyTorch实现LSTM-ARIMA融合移动平均进行长期预测
Snu77
Snu77 优质创作者: 人工智能技术领域 优质创作者: 人工智能技术领域
博客等级 码龄5年 11万+粉丝 934原创
评论 17
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Snu77

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值