ML之TsD:利用TsD时间序列分解方法(趋势/季节性/残差分量,平滑处理+组合预测)对上海最高气温实现回归预测案例
ML之TsD:利用TsD时间序列分解方法(趋势/季节性/残差分量,平滑处理+组合预测)对上海最高气温实现回归预测案例
目录
利用TsD时间序列分解方法(趋势/季节性/残差分量,平滑处理+组合预测)对上海最高气温实现回归预测案例
# 1、定义数据集
# 2、数据预处理
# 2.1、挑选入模特征:定义时间序列数据
# 2.2、切分数据集
# 可视化train数据
# 3、模型训练与推理
# 3.1、对数据进行季节分解
# 提取趋势和季节成分
# 可视化分解结果
# 3.2、对季节成分进行平滑处理
# 3.3、基于计算趋势、季节性和残差分量的平均值,来计算预测因子
# 3.4、模型推理:预测未来20天的最高温度
# 将预测结果添加到原始数据索引中
# 可视化原始数据和预测结果
相关文章
ML之TsD:利用TsD时间序列分解方法(趋势/季节性/残差分量,平滑处理+组合预测)对上海最高气温实现回归预测案例
ML之TsD:利用TsD时间序列分解方法(趋势/季节性/残差分量,平滑处理+组合预测)对上海最高气温实现回归预测案例实现代码
利用TsD时间序列分解方法(趋势/季节性/残差分量,平滑处理+组合预测)对上海最高气温实现回归预测案例
# 1、定义数据集
| date | week | max_temperature | min_temperature | weather | wind_direction | wind_level | air_quality_index | air_quality_level |
| 2021/1/1 | 周五 | 4 | -1 | 晴~多云 | 西北风 | 2级 | 52 | 良 |
| 2021/1/2 | 周六 | 7 | 1 | 晴~多云 | 东北风 | 2级 | 69 | 良 |
| 2021/1/3 | 周日 | 10 | 6 | 阴 | 东北风 | 2级 | 66 | 良 |
| 2021/1/4 | 周一 | 13 | 7 | 阴 | 东风 | 2级 | 44 | 优 |
| 2021/1/5 | 周二 | 8 | 2 | 阴~多云 | 东北风 | 3级 | 49 | 优 |
| 2021/1/6 | 周三 | 5 | -4 | 阴 | 北风 | 3级 | 46 | 优 |
| 2021/1/7 | 周四 | -3 | -6 | 阴 | 西北风 | 4级 | 67 | 良 |
| 2021/1/8 | 周五 | -1 | -5 | 阴~晴 | 西北风 | 3级 | 50 | 优 |
| 2021/1/9 | 周六 | 3 | -1 | 晴~多云 | 西北风 | 3级 | 57 | 良 |
| 2021/1/10 | 周日 | 5 | -1 | 阴~多云 | 西北风 | 2级 | 73 | 良 |
DatetimeIndex: 805 entries, 2021-01-01 to 2023-03-16
Data columns (total 8 columns):# Column Non-Null Count Dtype
--- ------ -------------- ----- 0 week 805 non-null object 1 max_temperature 805 non-null int64 2 min_temperature 805 non-null int64 3 weather 805 non-null object 4 wind_direction 805 non-null object 5 wind_level 805 non-null object 6 air_quality_index 667 non-null float647 air_quality_level 775 non-null object
dtypes: float64(1), int64(2), object(5)
memory usage: 56.6+ KB
Noneweek max_temperature ... air_quality_index air_quality_level
date ...
2021-01-01 周五 4 ... 52.0 良
2021-01-02 周六 7 ... 69.0 良
2021-01-03 周日 10 ... 66.0 良
2021-01-04 周一 13 ... 44.0 优
2021-01-05 周二 8 ... 49.0 优
... ... ... ... ... ...
2023-03-12 周日 12 ... 68.0 良
2023-03-13 周一 14 ... 52.0 良
2023-03-14 周二 20 ... 55.0 良
2023-03-15 周三 23 ... 52.0 良
2023-03-16 周四 15 ... 69.0 良[805 rows x 8 columns]
# 2、数据预处理
# 2.1、挑选入模特征:定义时间序列数据
# 2.2、切分数据集
df_train (725,)
df_test (80,)
# 可视化train数据

# 3、模型训练与推理
# 3.1、对数据进行季节分解
# 提取趋势和季节成分
time_data observed trend seasonality resid
date
2021-01-01 104 104.0 NaN 1.000959 NaN
2021-01-02 107 107.0 NaN 1.000782 NaN
2021-01-03 110 110.0 NaN 0.997613 NaN
2021-01-04 113 113.0 106.285714 1.003641 1.059315
2021-01-05 108 108.0 105.571429 0.998591 1.024447
... ... ... ... ... ...
2023-03-12 112 112.0 120.428571 0.997613 0.932237
2023-03-13 114 114.0 119.000000 1.003641 0.954507
2023-03-14 120 120.0 NaN 0.998591 NaN
2023-03-15 123 123.0 NaN 0.999604 NaN
2023-03-16 115 115.0 NaN 0.998810 NaN[805 rows x 5 columns]
# 可视化分解结果

# 3.2、对季节成分进行平滑处理
seasonal_smooth date
2021-01-01 NaN
2021-01-02 NaN
2021-01-03 NaN
2021-01-04 NaN
2021-01-05 NaN...
2023-03-12 0.999988
2023-03-13 1.000005
2023-03-14 1.000001
2023-03-15 1.000004
2023-03-16 0.999997
Name: seasonal, Length: 805, dtype: float64
# 3.3、基于计算趋势、季节性和残差分量的平均值,来计算预测因子
forecast 120.91188510315848
# 3.4、模型推理:预测未来20天的最高温度
future_seasonal [1.00000796 0.99998786 1.0000047 1.00000132 1.00000397 0.99999680.99999739 1.00000796 0.99998786 1.0000047 1.00000132 1.000003970.9999968 0.99999739 1.00000796 0.99998786 1.0000047 1.000001321.00000397 0.9999968 0.99999739 1.00000796 0.99998786 1.00000471.00000132 1.00000397 0.9999968 0.99999739 1.00000796 0.999987861.0000047 1.00000132 1.00000397 0.9999968 0.99999739 1.000007960.99998786 1.0000047 1.00000132 1.00000397 0.9999968 0.999997391.00000796 0.99998786 1.0000047 1.00000132 1.00000397 0.99999680.99999739 1.00000796 0.99998786 1.0000047 1.00000132 1.000003970.9999968 0.99999739 1.00000796 0.99998786 1.0000047 1.000001321.00000397 0.9999968 0.99999739 1.00000796 0.99998786 1.00000471.00000132 1.00000397 0.9999968 0.99999739 1.00000796 0.999987861.0000047 1.00000132 1.00000397 0.9999968 0.99999739 1.000007960.99998786 1.0000047 1.00000132 1.00000397 0.9999968 0.999997391.00000796 0.99998786 1.0000047 1.00000132 1.00000397 0.99999680.99999739 1.00000796 0.99998786 1.0000047 1.00000132 1.000003970.9999968 0.99999739 1.00000796 0.99998786 1.0000047 1.000001321.00000397 0.9999968 0.99999739 1.00000796 0.99998786 1.00000471.00000132 1.00000397 0.9999968 0.99999739 1.00000796 0.999987861.0000047 1.00000132 1.00000397 0.9999968 0.99999739 1.000007960.99998786 1.0000047 1.00000132 1.00000397 0.9999968 0.999997391.00000796 0.99998786 1.0000047 1.00000132 1.00000397 0.99999680.99999739 1.00000796 0.99998786 1.0000047 1.00000132 1.000003970.9999968 0.99999739 1.00000796 0.99998786 1.0000047 1.000001321.00000397 0.9999968 0.99999739 1.00000796 0.99998786 1.00000471.00000132 1.00000397 0.9999968 0.99999739 1.00000796 0.999987861.0000047 1.00000132 1.00000397 0.9999968 0.99999739 1.000007960.99998786 1.0000047 1.00000132 1.00000397 0.9999968 0.999997391.00000796 0.99998786 1.0000047 1.00000132 1.00000397 0.99999680.99999739 1.00000796 0.99998786 1.0000047 1.00000132 1.000003970.9999968 0.99999739 1.00000796 0.99998786 1.0000047 1.000001321.00000397 0.9999968 0.99999739 1.00000796 0.99998786 1.00000471.00000132 1.00000397 0.9999968 0.99999739 1.00000796 0.999987861.0000047 1.00000132 1.00000397 0.9999968 0.99999739 1.000007960.99998786 1.0000047 1.00000132 1.00000397 0.9999968 0.999997391.00000796 0.99998786 1.0000047 1.00000132 1.00000397 0.99999680.99999739 1.00000796 0.99998786 1.0000047 1.00000132 1.000003970.9999968 0.99999739 1.00000796 0.99998786 1.0000047 1.000001321.00000397 0.9999968 0.99999739 1.00000796 0.99998786 1.00000471.00000132 1.00000397 0.9999968 0.99999739 1.00000796 0.999987861.0000047 1.00000132 1.00000397 0.9999968 0.99999739 1.000007960.99998786 1.0000047 1.00000132 1.00000397 0.9999968 0.999997391.00000796 0.99998786 1.0000047 1.00000132 1.00000397 0.99999680.99999739 1.00000796 0.99998786 1.0000047 1.00000132 1.000003970.9999968 0.99999739 1.00000796 0.99998786 1.0000047 1.000001321.00000397 0.9999968 0.99999739 1.00000796 0.99998786 1.00000471.00000132 1.00000397 0.9999968 0.99999739 1.00000796 0.999987861.0000047 1.00000132 1.00000397 0.9999968 0.99999739 1.000007960.99998786 1.0000047 1.00000132 1.00000397 0.9999968 0.999997391.00000796 0.99998786 1.0000047 1.00000132 1.00000397 0.9999968 ]
1.0000079561271675 future_trend 120.91092312047819 120.89886529133433
0.9999878620336129 future_trend 120.91335274536986 120.89886529133433
1.0000046958676612 future_trend 120.91131731961362 120.89886529133433
1.0000013201244948 future_trend 120.91172548462796 120.89886529133433
1.0000039673687724 future_trend 120.91140540302446 120.89886529133433
0.9999968044171883 future_trend 120.91227148833498 120.89886529133433
0.9999973940611038 future_trend 120.912200192964 120.89886529133433
# 将预测结果添加到原始数据索引中
# 可视化原始数据和预测结果

forecast_series 2023-03-16 120.898865
2023-03-17 120.898865
2023-03-18 120.898865
2023-03-19 120.898865
2023-03-20 120.898865
2023-03-21 120.898865
2023-03-22 120.898865
Freq: D, dtype: float64
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
