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、定义数据集

dateweekmax_temperaturemin_temperatureweatherwind_directionwind_levelair_quality_indexair_quality_level
2021/1/1周五4-1晴~多云西北风2级52
2021/1/2周六71晴~多云东北风2级69
2021/1/3周日106东北风2级66
2021/1/4周一137东风2级44
2021/1/5周二82阴~多云东北风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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部