【BI学习心得10-时间序列实战】

本文详细介绍了时间序列特征工程的多种方法,包括时间序列特征、类别meanencoding、统计特征、滞后历史特征、序列特征、高阶特征和外部特征的构建。通过实例展示了如何使用Python对数据进行预处理,如调整数据类型以减少内存占用,并介绍了Facebook的Prophet库进行时间序列预测。此外,还探讨了数据探索的重要步骤,如数据类型检查、缺失值处理和可视化。


写在前面的话

稍微总结一下,时间序列中的特征,主要针对机器学习树模型,因为是时序数据,所以和寻常的机器学习特征略有不同,比如关注时间特征,滞后特征,滑窗特征等。

1.与时间特征有关的那些事

1.1时间序列特征


import datetime
import pandas as pd
df['ds']=df['ds'].astype(str)
df['ds'] = df['ds'].apply(lambda x: datetime.datetime.strptime(x, "%Y-%m-%d"))
df['year']=df['ds'].dt.year
df['quarter']=df['ds'].dt.quarter
df['month']=df['ds'].dt.month
df['dayofweek']=df['ds'].dt.dayofweek
df['week']=df['ds'].dt.week


诸如此类,更多相信内容请参照一下文档https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html

还有格外需要手工生成的时间段切分:比如讲一天分为上午,下午,晚上这样的特征,可以使用apply,配合lambda匿名函数


df['half']=df['hour'].apply(lambda x: 1 if x<'12' else 0)


对于出现的异常值,年底出现促销,导致销售波动,对该天的数据做异常标记


df['outlier']=df['ds'].apply(lambda x: 1 if x=='2018-12-31' else 0)


还如,定义是否为春节月,是否为月末等,对这类具有明显销售波动的带有时间点打标签。这部分特征是十分基础且重要。

1.2类别mean encoding特征

  • 针对类别变量可以有如下方法
  • Mean Encoding
  • 比如门店预测
  • 带有城市标签,如果用OneHotEncoder转换为0-1特征就太多了
  • 我们可以使用mean encoding方式,构建均值特征

city_mean=df.groupby(['city']).agg({
   
   'y': ['mean']})
city_mean.reset_index(inplace=True)
city_mean.columns = ['city','city_mean']


其他的信息,比如省份等亦是如此


df = pd.merge(df,city_mean,on='city',how='inner')


还有一种类似的count encoding,
其实应该归于统计特征
至于实现方式那就是


city_count=df.groupby(['city']).agg({
   
   'y': ['count']})


1.3统计特征

如mean, median, max, min, std

如果是月的话,建议选择三 如果是日,且有周的规律性,则应该选择7,也可以同时存在多个颗粒度的滑窗特征。比如,选择了滑窗4,同时使用滑窗12,那就是季度。当然你也可是多尝试,所以调参侠的乐趣/苦逼,也就在这里了。滑窗也是一种对数据的平滑。一定不要忘记,把数据的顺序换过来。


df.sort_values(['store_code','ds'],ascending=[T
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水花

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值