入门
快速开始 (本地)
MLForecast 的最小示例
主要概念
mlforecast 的主要组件是 MLForecast
类,它抽象了
- 通过
MLForecast.fit
进行特征工程和模型训练 - 通过
MLForecast.predict
进行特征更新和多步超前预测
数据格式
数据应为 pandas long format 的 DataFrame,即每一行表示单个序列在给定时间的观测值,至少包含三列
id_col
: 标识每个序列的列。target_col
: 包含每个时间戳序列值的列。time_col
: 包含观测到序列值的时间的列。这些通常是时间戳,但也可以是连续整数。
这里我们展示一个使用经典 Box & Jenkins 航空数据的示例,该数据测量了 1949 年至 1960 年国际航空乘客的月度总数。来源:Box, G. E. P., Jenkins, G. M. and Reinsel, G. C. (1976) Time Series Analysis, Forecasting and Control. Third Edition. Holden-Day. Series G。
unique_id | ds | y | |
---|---|---|---|
0 | AirPassengers | 1949-01-01 | 112 |
1 | AirPassengers | 1949-02-01 | 118 |
2 | AirPassengers | 1949-03-01 | 132 |
3 | AirPassengers | 1949-04-01 | 129 |
4 | AirPassengers | 1949-05-01 | 121 |
在这里,unique_id
列的所有行都具有相同的值,因为这是一个单一时间序列;你可以通过将多个时间序列堆叠在一起并设置一列来区分它们。
我们还有包含时间戳的 ds
列,在这种情况下是月度频率,以及包含每个时间戳序列值的 y
列。
建模
我们可以看到该序列有明显的趋势,因此我们可以进行一阶差分,即用每个值减去上一个月的值。这可以通过将 mlforecast.target_transforms.Differences([1])
实例传递给 target_transforms
来实现。
然后我们可以使用上一年同一月份的值(滞后 12)作为特征来训练一个线性回归模型,这可以通过传递 lags=[12]
来实现。
上一行计算了特征并训练了模型,所以现在我们可以计算预测值了。
预测
计算未来 12 个月的预测值
unique_id | ds | LinearRegression | |
---|---|---|---|
0 | AirPassengers | 1961-01-01 | 444.656555 |
1 | AirPassengers | 1961-02-01 | 417.470734 |
2 | AirPassengers | 1961-03-01 | 446.903046 |
3 | AirPassengers | 1961-04-01 | 491.014130 |
4 | AirPassengers | 1961-05-01 | 502.622223 |
5 | AirPassengers | 1961-06-01 | 568.751465 |
6 | AirPassengers | 1961-07-01 | 660.044312 |
7 | AirPassengers | 1961-08-01 | 643.343323 |
8 | AirPassengers | 1961-09-01 | 540.666687 |
9 | AirPassengers | 1961-10-01 | 491.462708 |
10 | AirPassengers | 1961-11-01 | 417.095154 |
11 | AirPassengers | 1961-12-01 | 461.206238 |
可视化结果
我们可以可视化我们的预测结果。
就这样!你已经训练了一个线性回归模型来预测 1961 年的航空乘客数量。