
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from sklearn.metrics import mean_squared_error
from math import sqrt
plt.rcParams['font.sans-serif']=['SimHei']
df=pd.read_csv('C:/Users/xpp/Desktop/data.csv', nrows=11856)
#创建训练和测试集
train=df[0:10300]
test=df[10300:]
#数据聚合
df['Timestamp']=pd.to_datetime(df['Datetime'],format='%d-%m-%Y %H:%M')#4位年用Y,2位年用y
df.index=df['Timestamp']
df=df.resample('D').mean()#按天采样,计算均值
train['Timestamp']=pd.to_datetime(train['Datetime'],format='%d-%m-%Y %H:%M')
train.index=train['Timestamp']
train=train.resample('D').mean()
test['Timestamp']=pd.to_datetime(test['Datetime'],format='%d-%m-%Y %H:%M')
test.index=test['Timestamp']
test=test.resample('D').mean()
rms=sqrt(mean_squared_error(test.Count,y_hat_avg.avg_forecast))
#print("平均预测法",rms)
#绘图
train.Count.plot(figsize=(15,8),title= '日数据',fontsize=14)
test.Count.plot(figsize=(15,8),title= '日数据',fontsize=14)
y_hat_avg=test.copy()
y_hat_avg["avg_forecast"]= train.Count.mean()
train.Count.plot(figsize=(16,10),title='平均预测法',fontsize=14)
test.Count.plot(figsize=(16,10),title='平均预测法',fontsize=14)
y_hat_avg.avg_forecast.plot(figsize=(16,10),title='平均预测法',fontsize=14)
plt.legend(loc='best')
plt.show()

算法:平均预测法是将预期值等同于之前所有观测点的平均值的预测方法,数学方法有算数平均、几何平均、调和平均和平方平均预测法,物理方法有移动平均、加权平均、移动加权平均和中心移动平均预测法。