特征工程-时间组合特征

无序类别特征+时间特征

1、基于A/B差值特征

计算类别特征A的组内时间特征B的时间间隔,在推荐系统中,类别特征为商品时,特征B使用浏览时间、购买时间或点击时间,可以表示表示A商品被浏览/购买/点击的时间差。

# 一次差值特征
df['A_B_diff'] = df['B']-df.groupby['A']['B'].shift()
# 二次差值特征
df['A_B_diff2'] = df['B']-df.groupby['A']['B'].shift(2)

2、基于A/B差值特征的统计特征

在计算完A/B差值特征之后,仍可以继续计算该差值特征在类别特征组内的统计学特征,例如均值、方差、最大值、最小值、中位数、偏度、峰度、分位数、众数等。该特征可以很好地反映A在时间戳上的诸多信息,如果基于A与A/B差值特征的最大值和最小值的差值很小或者方差相对很小,这就暗示可能存在较强的周期性,A可能会出现在固定的时间周期内。

df['A_B_diff_sts'] = df.groupby['A']['A_B_diff'].apply(sts)

3、基于A/B差值特征的差值以及其统计特征

将A/B差值特征称为一阶滑动,可以将基于A/B差值特征的差值称为二阶滑动,同样也可以对二阶滑动即行统计值的计算。

df['A_B_diff1_diff'] = df['A_B_diff1'] - df.groupby('A')['A_B_diff1'].shift() 
df['A_B_diff1_diff_sts'] = df.groupby('A')['A_B_diff1_diff'].apply(sts) 

4、A的第一次出现时间

类别A的数值特征B的第一次出现时间、最后一次出现时间通常具有强的意义。

df['A_B_first'] = df.groupby('A')['B'].first()
df['A_B_last'] = df.groupby('A')['B'].last()

5、距离第一次出现的其他时间特征

# 距离第一次出现的时间
df['B_A_B_first_diff'] =  df['B'] - df['A_B_first']
# 距离最后一次出现的时间
df['B_A_B_first_last'] =  df['B'] - df['A_B_last']
# 时间gap
df['A_B_gap'] = df['A_B_last'] - df['A_B_first']
# 平均每次出现时间
df['A_B_gap_div_count'] = df['A_B_gap'] / df['A_B_count']  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值