导入
评估指标
了解时间序列预测的主要评估指标及其计算方法。
...
误差衡量实际值与预测值之间的距离
\text{MAE} = \frac{1}{n} \sum_{i=1}^{n}|\hat{y}_i-y_i|
\text{MSE} = \frac{1}{n}\sum_{i=1}^{n}(\hat{y}_i - y_i)^{2}
\text{MAPE} = \frac{1}{n} \sum_{i=1}^{n} \left|\frac{\hat{y}_i-y_i}{y_i}\right|
\text{R}^2 = 1- \frac{ \sum_{i=1}^{n}(\hat{y}i - y_i)^{2}}{ \sum{i=1}^{n}(\overline{y} - y_i)^{2}}
1import pandas as pd 2from statsmodels.tsa.holtwinters import ExponentialSmoothing 3from sklearn.metrics import * 4import warnings 5warnings.filterwarnings("ignore") 6 7df = pd.read_csv('airpassengers.csv') 8 9# 转换数据类型 10df["Month"] = pd.to_datetime(df['Month'], format='%Y-%m') 11 12# 将日期设为索引 13df = df.set_index('Month') 14 15# 指数平滑法(Holt-Winters) 16passengers = df['Passengers'] 17results = ExponentialSmoothing( 18 passengers, 19 trend='multiplicative', 20 seasonal='multiplicative', 21 freq='MS').fit() 22 23predictions = results.predict(start=df.index.min(), end=df.index.max()) 24 25# 评估指标 26mae = mean_absolute_error(passengers, predictions) 27mse = mean_squared_error(passengers, predictions) 28mape = mean_absolute_percentage_error(passengers, predictions) 29r2 = r2_score(passengers, predictions) 30 31print("MAE: {0}".format(mae)) 32print("MSE: {0}".format(mse)) 33print("MAPE: {0}".format(mape)) 34print("R2: {0}".format(r2))