对【时间】构建的特征工程

写文章的目的在于之前面试的时候,提到某一个时间序列项目的特征工程处理。我说的大多数都是一些数据清洗、数据去除异常点、针对数据特性做出的特别的特征工程的操作,然后面试官给我的建议是下一次面试多说一下常规的特征工程处理,因为这样面试官才会跟你有共鸣,能更好的理解你说的特征工程是什么。


本文主要讲述一些比较有意思的特征工程。但是这个有意思就是不那么普通,但是也不那么特殊,让人看了耳目一新的那种感觉。

有趣的特征工程


【节假日消耗的能源更多?】

不管是什么任务中,预测家庭能源消耗、预测消费情况等等,节假日都是一个需要注意的特征,因为放假了就会消耗更多的能源,产生更多的消费购物。


不过需要注意的是:欧美国家的一些节假日和中国不一样,所以需要看一下欧美的法定节假日日期以及周末的放假日期。


【分离时间戳产生更多特征?】

一般时间戳timestamp可能是这样的格式:13:21 20/3/1997,这样的话,可以把这个timestamp分离成5个特征:hour,minute,day,month,year。


进一步的,可以对小时数据进行数据探索分析,看看是否存在白天黑夜的不同导致的对预测结果的影响?对day和month进行分析,看看是否存在节假日对预测结果的影响。


【日期数据的循环性】

通常对于上面的hour特征是[0,23]的,但是其实0点和23点并不像数字本身看起来差别那么巨大,所以可以使用cos或者sin来将时间变成一个循环。相似的是星期一与星期日的差别。


【其他的tricks】


人造节日是否考虑进去?中国的6.18,5.20,11.11,12.12等

季节导致的偏移是否存在?可能同样的情况春天发生和秋天发生并不相同?


常规的特征工程

滑动窗口法。寻找100个时间相邻的样本的某一个特征的某一个统计特性,比如:


均值mean()

中位数median()

最大值max()

最小值min()

标准差std()

四分位点quantile(q=0.25)/quantile(q=0.75)

数据的偏度df.skew()

数据的峰度df.kurt()

数据的绝对离差df.max(),数据与其均值的差的绝对值的平均值

绝对值的最大值

绝对值的最小值

梯度的绝对值

最大值与最小值的差值

最大值与最小值的倍数

使用时间序列的shift偏移



周期性的特征工程

部分时间特征是具有周期性的。可能是一个月是一个周期,也可能一个季度,一年等等。为了寻找这个周期性,可以使用自相关系数来寻找。简单的说,就是通过平移特征工程,然后绘制自相关系数随着平移距离的函数图像。


有了这个周期性之后,就可以构建更多的特征。比方说同比(去年同月)或者环比(相邻月份)。环比和同比一般都是比率,我们可以再构建这个环比的梯度,类似二阶差分。


网友评论

0条评论

发表

网友评论

0条评论

发表

最新评论

推荐文章

彩龙

Copyright © 2008-2020 彩龙社区(https://www.clzg.cn) 版权所有 All Rights Reserved.

免责声明: 本网不承担任何由内容提供商提供的信息所引起的争议和法律责任。

经营许可证编号:滇B2-20090009-7

下载我家昆明APP 下载彩龙社区APP