1. 引言

       生猪价格是农业经济中的重要指标,其波动对养殖户、消费者和市场都有重要影响。准确预测生猪价格有助于制定合理的生产和销售策略。本文将介绍如何使用TCN(Temporal Convolutional Network,时间卷积网络)对生猪价格进行时间序列预测,并通过可视化展示预测结果和特征重要性。

2. 数据集介绍

       我们使用的数据集包含以下字段: 时间:日期 仔猪价格:仔猪的市场价格 生猪存栏:生猪存栏量 屠宰量:规模以上生猪定点屠宰企业的屠宰量 玉米价格:玉米的市场价格 豆粕价格:豆粕的市场价格 牛肉价格:牛肉的市场价格 生猪价格:生猪的市场价格(目标变量) 数据集的时间跨度为2010年1月至2024年11月。

时间 仔猪价格 生猪存栏 规模以上屠宰企业屠宰量 玉米价格 豆粕价格 牛肉价格 生猪价格
2010/1 17.41 45500  2128  1.9 3.85 34.0775 12.21 
2010/2 16.6 44330  1596  1.9 3.73 34.495 11.05 
2010/3 15.61 44130  1774  1.92 3.61 33.856 10.08 
2010/4 14.78 43600  1933  1.98 3.51 33.445 9.85 
2024/9 41.45 42694  2640  2.5 3.4 61.42 18.96 
2024/10 36.37 42694  2876  2.4 3.38 61.24 17.60 
2024/11 34.42 42694  3190  2.36 3.35 60.85 16.59 

3. 方法概述

3.1 TCN简介

        TCN是一种基于卷积神经网络(CNN)的时间序列模型,具有以下特点:

  • 使用因果卷积(Causal Convolution)确保未来数据不会影响过去数据的预测。

  • 支持并行计算,训练效率高。

  • 能够捕捉长期依赖关系。

3.2 模型设计

      我们将使用TCN模型预测生猪价格,具体步骤如下:

  1. 数据预处理:标准化特征,构建时间序列数据。

  2. 模型构建:使用Keras实现TCN模型。

  3. 模型训练:训练模型并评估性能。

  4. 可视化:展示预测结果和特征重要性。

 4. 代码实现

        TCN(Temporal Convolutional Network,时间卷积网络)是一种专门用于处理时间序列数据的卷积神经网络(CNN)架构。它结合了卷积神经网络的高效性和时间序列建模的能力,能够捕捉时间序列中的长期依赖关系。以下是TCN模型的原理介绍:


4.1 TCN的核心思想

       TCN的核心思想是通过因果卷积(Causal Convolution)膨胀卷积(Dilated Convolution)来捕捉时间序列中的长期依赖关系。与传统的RNN(如LSTM、GRU)相比,TCN具有以下优势:

  • 并行计算:TCN可以并行处理时间序列数据,训练速度更快。

  • 长时依赖:通过膨胀卷积,TCN能够捕捉时间序列中较长时间跨度的依赖关系。

  • 稳定梯度:TCN避免了RNN中常见的梯度消失或爆炸问题。

4.2 TCN的网络结构

TCN的网络结构通常由多个TCN块堆叠而成,每个TCN块包含以下组件:

  1. 因果卷积层:确保时间方向性。

  2. 膨胀卷积层:扩大感受野,捕捉长期依赖。

  3. 激活函数:通常使用ReLU。

  4. 残差连接:增强模型的表达能力。

  5. 归一化层:如Batch Normalization,用于加速训练。


  • 主要代码:

    def TCN(input_shape):
        inputs = Input(shape=input_shape)
        # 第一层卷积
        conv1 = Conv1D(filters=64, kernel_size=3, padding='causal', activation='relu')(inputs)
        # 第二层卷积
        conv2 = Conv1D(filters=64, kernel_size=3, padding='causal', activation='relu')(conv1)
        # 残差连接
        res = Add()([conv1, conv2])
        # 全局池化
        pooled = MaxPooling1D(pool_size=2)(res)
        # 展平
        flattened = Flatten()(pooled)
        # 全连接层
        outputs = Dense(1)(flattened)
        model = Model(inputs, outputs)
        return model

5. 结果分析

5.1 模型性能

  • R2 Score: 0.9176

  • RMSE: 2.1395

模型在测试集上表现良好,R2接近1,RMSE较低,说明预测结果与实际值较为接近。

5.2 可视化结果

  • 预测结果图:展示了实际值与预测值的对比,两者趋势基本一致。

  • 特征重要性图:展示了卷积层权重的平均值,反映了各特征对预测的贡献。

6. 总结

本文使用TCN模型对生猪价格进行了时间序列预测,并通过可视化展示了预测结果和特征重要性。TCN模型在捕捉时间序列数据的长期依赖关系方面表现出色,适合用于类似的经济指标预测任务。

7. 程序和数据获得!

以上实验就介绍完了。获得实验数据和完整代码,请私我。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐