Transformer 模型在时间序列预测中的应用
项目描述
本仓库提供了一个基于 Transformer 模型的时间序列预测实现。Transformer 模型最初由 “Attention is All You Need” 论文提出,主要用于自然语言处理(NLP)任务。其主要特点包括特征向量维度的线性复杂度、序列计算的并行化以及长期记忆能力,因为模型可以直接查看任何输入时间序列步骤。
本项目专注于将 Transformer 模型应用于时间序列数据,特别是建筑能耗预测。我们通过创建一个包含建筑特征、使用情况和天气等随机输入的数据集,并生成相应的模拟输出,然后将这些变量转换为时间序列格式,并输入到 Transformer 模型中进行训练和预测。
模型调整
为了使 Transformer 模型在时间序列数据上表现良好,我们进行了以下调整:
- 嵌入层替换:将原始的嵌入层替换为通用线性层。
- 位置编码调整:移除了原始的位置编码,并使用更适合时间序列数据的“常规”版本,以更好地匹配输入序列的日/夜模式。
- 注意力图调整:在注意力图上应用了一些特定的调整,以提高模型在时间序列数据上的表现。
数据集
本项目使用的数据集是通过对建筑特征、使用情况和天气等随机输入进行采样生成的。这些输入变量被转换为时间序列格式,并用于训练和测试 Transformer 模型。
使用方法
- 克隆仓库:
git clone https://github.com/your-repo-url.git cd your-repo-directory
- 安装依赖:
pip install -r requirements.txt
-
数据准备: 将你的时间序列数据准备为适当的格式,并放置在
data/
目录下。 - 训练模型:
python train.py --data_path data/your_data.csv --output_dir models/
- 预测:
python predict.py --model_path models/your_model.pth --input_data data/your_input.csv
贡献
欢迎贡献代码、提出问题或建议。请通过 GitHub 的 Issues 和 Pull Requests 功能参与项目。
许可证
本项目采用 MIT 许可证。详细信息请参阅 LICENSE 文件。
希望本项目能帮助你在时间序列预测任务中取得更好的效果!