【数据竞赛】十组不同类型的组合特征!
共 2061字,需浏览 5分钟
·
2021-05-29 13:42
特征工程--数值&时间的二阶组合特征!
本篇文章是关于数值特征与其它类型特征的二阶组合特征以及时间特征与其它特征的组合特征,这一块的东西相对较少,也较为细节,之前介绍的我们此处就省略了,重点介绍之前没有涉及和包含的内容。
至此,前后一共十组不同类型的二阶组合特征也就介绍完成了,
无序类别特征+无序类别特征; 无序类别特征+有序类别特征; 无序类别特征+数值特征; 无序类别特征+时间特征; 有序类别特征+有序类别特征; 有序类别特征+数值特征; 有序类别特征+时间特征; 数值特征+数值特征; 数值特征+时间特征; 时间特征+时间特征;
后续的内容我们会介绍三阶组合特征的构建技巧。
我们将A作为数值特征,B作为数值特征。
1. 相同物理意义下的加减乘除
如果两个数值特征是具有相同物理意义的,例如,第一个数值特征是用户的收入,第二个数值特征是用户的支出,那么这边的减乘除就比较有意义:
减:表示用户的这个月的剩余的钱; 乘:表示一种现象,如果用户收入高支出高,那么该值就大;收入高支出少,那么该值就一般;收入低,支出也低,那么该值就小; 除:表示用户的支出占收入的比例; 加:一般意义就不大了;
至于用加减乘除中的哪个,需要依据实际情况考虑。
2. 不同物理意义下的乘除
如果两个数值特征是不具有相同物理意义的,例如,第一个数值特征表示用户购买的商品数量,第二个数值特征表示商品的单价,那么这边的加和减除的意义就不是非常大,加入模型大概率只会引入噪音信息;但是乘法却非常有意义:
乘:表示用户需要支付的总金额;
至于用乘除中的哪个,也需要需要依据实际情况考虑,如果此处第一个数值特征表示用户购买某商品的数量,第二个表示支付金额,那么除就更为有价值,乘法反而意义不大,所以也需要依据实际情况考虑。
我们将A作为数值特征,B作为时间特征。
数值特征和时间特征同时出现的时候,我们可以认为这就是一条时间序列。
1. A关于B的实时变化特征
A的下一时刻与上一时刻的差值,表示上下时刻的变化情况以及比例。
# 先按时间排序
df = df.sort_valeus('B')
df['A_diff'] = df['A'] - df['A'].shift(N) # N可以为1,2,...
df['A_ratio'] = df['A'] / df['A'].shift(N)
2. 将B转化为类别特征
将时间特征B转化为类别特征,我们可以将原先天+小时+分钟+秒的时间特征变化为:
月份特征; 天级别的特征; 小时特征; 星期特征; ...
此时我们可以将无序类别特征和数值特征的组合特征策略直接使用过来。
3. 变换后的B/A统计特征的比较特征
此处变换之后的B指的是,我们对B进行某种形式的转化,例如转化为以小时为单位的新的B,然后我们基于转化后得到的B(可以认为是有序的类别特征)构建与A相关的特征,即我们将此转化为了: 有序类别特征+数值特征的组合特征。
有序类别特征当做无序类别特征; 相邻有序类别统计特征的变化; 基于A分组之后B的统计特征; A组内B特征的占比特征。
4. 小结
在本小结,我们重点介绍了数值特征和时间特征相关的组合特征,这块的特征需要重点关注的还是时间特征以及将其转换之后与数值特征的交叉特征。
时间特征和时间特征同时出现的情况相对较少,一般出现的情形就是开始日期和结束日期这类相关的,例如贷款日期、还款日期,上网时间、下网时间等等。而这个时候我们经常做的特征就是:
基于两个时间特征计算时间差值; 转化为某种类别特征之后判断是否相等,比如两个时间特征全部转化为天,如果两个时间特征转化之后都是同一天表示是同一天的;
在本章节,我们枚举了几乎所有常见的二元特征的组合方式,包括:
无序类别特征+无序类别特征; 无序类别特征+有序类别特征; 无序类别特征+数值特征; 无序类别特征+时间特征; 有序类别特征+有序类别特征; 有序类别特征+数值特征; 有序类别特征+时间特征; 数值特征+数值特征; 数值特征+时间特征; 时间特征+时间特征;
当然还有一些文本和图像类的向量特征,因为这些特征较为特征,一般都是向量型的,所以我们会在后面的部分进一步进行介绍。
往期精彩回顾
本站qq群851320808,加入微信群请扫码: