在https://kaggle.com/learn
页面Kaggle官方提供了学习实战项目,最近更新了Time Series时间序列
的知识点。
Time Series 课程包括如下章节:
-
Linear Regression With Time Series
-
Trend
-
Seasonality
-
Time Series as Features
-
Hybrid Models
-
Forecasting With Machine Learning
技术交流
技术要学会分享、交流,不建议闭门造车。一个人可以走的很快、一堆人可以走的更远。
本文由粉丝群小伙伴总结与分享,如果你也想学习交流,资料获取,均可加交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。
方式①、添加微信号:dkl88194,备注:来自CSDN + 加群
方式②、微信搜索公众号:Python学习与数据挖掘,后台回复:加群
Linear Regression With Time Series
https://www.kaggle.com/ryanholbrook/linear-regression-with-time-series
时间序列是一组随时间记录的观测结果,按照固定的频率记录。
我们首先使用线性回归对输入的记录进行加权求和,得到我们的预测结果:
如果一个序列的值可以从它出现的时间开始预测,那么它就是时间相关的。为了增加模型的有效性,我们增加了Lag特征,将历史数据作为输入的特征。
Trend
https://www.kaggle.com/ryanholbrook/trend
时间序列的趋势成分表示序列平均值的持续的、长期的变化。趋势是序列中移动最慢的部分,代表重要时间尺度最大的部分。
为了了解时间序列的趋势,我们可以使用Moving Average Plots消除该系列中的任何短期波动,从而只保留长期变化。
对趋势进行建模,则课将时间加入建模:
如果趋势是二次的(抛物线),通过可以模型变换来拟合趋势:
Seasonality
https://www.kaggle.com/ryanholbrook/seasonality
当一个时间序列的均值有规律的周期性变化时,我们就说这个时间序列具有季节性。
Seasonal Plots显示的是时间序列的片段,这些片段相对于某个共同的时期。
傅里叶特征是一对正弦和余弦曲线,如果我们将一组正弦/余弦曲线添加到我们的训练数据中,算法将计算出适合的季节性成分的权重。
Time Series as Features
https://www.kaggle.com/ryanholbrook/time-series-as-features
如果使用目标序列的过去值作为特征,历史趋势会变得更加清晰,如下图所示。序列依赖性的一种特别常见的表现方式,序列中某一时刻的值如何依赖于前一时刻的值有关。
为了研究时间序列中可能的序列依赖性(如周期),我们需要创建该序列的Lag特征。Lag Plot显示了其相对于滞后的值。时间序列中的序列依赖性通常会通过观察滞后图而变得明显。
偏自相关告诉你一个滞后的相关性,绘制部分自相关可以帮助您选择使用哪些延迟特性。
Hybrid Models
https://www.kaggle.com/ryanholbrook/hybrid-models
线性回归擅长推断趋势,但无法进行特征交叉。XGBoost擅长特征交叉,但不擅长预测趋势。
许多时间序列可以用这三个成分加上一些本质上不可预测的、完全随机的误差的相加模型来描述:
Forecasting With Machine Learning
https://www.kaggle.com/ryanholbrook/forecasting-with-machine-learning
在设计预测模型之前,有两件事需要确定:
-
在做出预测(特写)时,可以获得哪些信息?
-
您需要预测值(目标)的时间段。
预测的起点是你做预测的时间。您可以将预测起点看作是最后一次有训练数据可供预测的时间。
预测步长是你做预测的时间。我们经常用时间步数来描述预测:比如“1步”预测或“5步”预测。