一个说法在最前面:
创造新的特征是一件十分困难的事情,需要丰富的专业知识和大量的时间。机器学习应用的本质基本上就是特征工程。
——Andrew Ng、
大佬整理的一个时间序列预测方法总结 https://zhuanlan.zhihu.com/p/67832773
特征工程的流程介绍:
关于做特征工程的一个流程:https://zhuanlan.zhihu.com/p/94994902
自动化特征工程工具:
- tslearn:开源的时间序列机器学习python工具包
- tsfresh:开源的时间序列特征提取python工具包
- pyts:开源的时间序列分类Python工具包。提供预处理工具及若干种时间序列分类算法
- statmodels:想不到吧,除了能进行线性回归,还能用于构造特征工程,特征分解,异常点检测,统统都可以,6666
关于时间序列分解法:
时间序列分解法总结:https://zhuanlan.zhihu.com/p/267541046
时间序列分解:https://www.jianshu.com/p/e6d286132690
相似的介绍,这个是在百度文库上:https://wenku.baidu.com/view/89933c24a417866fb94a8e0a.html
以上的是对于时间序列分解法的一些介绍,落地到具体的实现,则有:
https://www.cnblogs.com/rix-yb/p/9919787.html
DataCamp的 https://campus.datacamp.com/courses/visualizing-time-series-data-in-python/seasonality-trend-and-noise?ex=7
一个github上的package https://github.com/topics/time-series-decomposition
https://gist.github.com/mvervuurt/2f6cba57deb97582e7534a8f36327662
STL Decompose https://github.com/jrmontag/STLDecompose
介绍:This is a relatively naive Python implementation of a seasonal and trend decomposition using Loess smoothing. Commonly referred to as an "STL decomposition", Cleveland's 1990 paper is the canonical reference.
TimeSeries-Decomposition.ipynb https://gist.github.com/balzer82/5cec6ad7adc1b550e7ee
特征工程过滤:
特征工程之特征选择之过滤法 内容选自西瓜书: https://blog.csdn.net/kylin_learn/article/details/82658641
https://hackernoon.com/key-tactics-the-pros-use-for-feature-extraction-from-time-series-e7q3wfr
特征筛选事后的特征重要性检验:
多重检验:Benjamini-Yekutieli 法的介绍 https://www.jianshu.com/p/e13f535a3313
一些大佬写的好文章:
特征工程系列:时间特征构造以及时间序列特征构造
数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。由此可见,特征工程在机器学习中占有相当重要的地位。在实际应用当中,可以说特征工程是机器学习成功的关键。
如何对周期性的如时间,月份进行特征工程表示:
周期特征的循环编码
说明:
一些数据具有固有的周期性。时间就是一个很好的例子:分钟,小时,秒,星期几,一个月的某周,一个月,季节等都是具有循环往复的周期性的,生态特征(如潮汐),星座特征(如轨道位置),空间特征(如旋转或经度),视觉特征(如色轮)也都是自然循环的。
如何让我们的机器学习模型知道某个功能是周期性的?让我们探索一个简单的24小时时间数据集,我们想将其周期性性质传达给我们的模型
https://zhuanlan.zhihu.com/p/288400654
https://ianlondon.github.io/blog/encoding-cyclical-features-24hour-time/
一言以蔽之,使用三角函数进行转换