这是两年前参加科大讯飞电动汽车永磁同步电机温度预测挑战赛的一个项目,突然在草稿箱中发现这个demo,于是整理一下发出来,项目背景及数据集参考:时间序列实践教程总结!
1. 模型原理
Prophet是Facebook开源的一个时间序列预测算法,是基于时间序列分解和机器学习的拟合来做的,其中在拟合模型的时候使用了 pyStan 这个开源工具,因此能够在较快的时间内得到需要预测的结果。
该算法主要具有以下几个优点:
- 准确快速。Prophet在Facebook的许多应用程序中用于生成可靠的计划和目标设定预测。在大多数情况下,它的性能要优于其他方法。
- 全自动。无需人工干预即可获得有关杂乱数据的合理预测。Prophet对异常值,丢失的数据以及时间序列中的急剧变化具有鲁棒性。
- 可调整。Prophet为用户提供了许多调整和调整预测的可能性。可以使用一些参数来添加自己研究领域的相关知识,从而改善预测效果。
参考链接:
2. 数据处理
首先需要导入以下库:
import pandas as pd
import numpy as np
from fbprophet import Prophet
import datetime
from tqdm import tqdm
import matplotlib.pyplot as plt
import math
from sklearn.preprocessing import StandardScaler, MinMaxScaler
import warnings
warnings.filterwarnings('ignore')
然后读取文件中的数据:
# 读取训练数据和测试数据
train = pd.read_csv('data/train.csv'