【數(shù)據(jù)競(jìng)賽】十大重要的時(shí)間組合特征!
特征工程--無(wú)序類(lèi)別&時(shí)間信息的組合特征!

本篇文章我們會(huì)介紹10大與時(shí)間相關(guān)的組合特征,這些特征在95%涉及到時(shí)間信息的競(jìng)賽中都是極為重要的特征,也是以往Top選手與新手拉開(kāi)差距的重要部分。

為了方便表示我們將A作為無(wú)序類(lèi)別特征,B作為時(shí)間特征。無(wú)序類(lèi)別特征與時(shí)間特征的交互往往是決定比賽走向的一大極為重要的特征,此處我們就列舉在實(shí)踐過(guò)程中上分最多的幾大特征。
1. 基于A/B一次差值特征
該特征可以表示A出現(xiàn)的時(shí)間間隔;該特征在點(diǎn)擊預(yù)估等的問(wèn)題中都是非常重要的特征。如果A表示商品的話,那么基于A/B差值特征就表示A商品被瀏覽/購(gòu)買(mǎi)/點(diǎn)擊的時(shí)間差。
df['A_B_diff1'] = df['B'] - df.groupby('A')['B'].shift()
2.基于A/B二次差值特征
基于A/B一次差值特征的差值可以認(rèn)為是最近的(即shift(1)的)的差值,自然我們也可以是兩次的,即shift(2)的,或者多次的,但是實(shí)踐中我們發(fā)現(xiàn)一般shift(3)及以上的效果就不是很明顯了。
df['A_B_diff2'] = df['B'] - df.groupby('A')['B'].shift(2)
3.基于A與A/B一/二次差值特征的統(tǒng)計(jì)特征
該特征的構(gòu)建是基于A/B一次/二次差值特征的,我們?cè)贏/B差值特征的基礎(chǔ)之上再計(jì)算A關(guān)于A/B差值特征的統(tǒng)計(jì)特征,例如:
均值; 方差; 中位數(shù); 偏度; 分位數(shù)(四分位數(shù)等); 眾數(shù); skewness; 峰度系數(shù); 其它統(tǒng)計(jì)特征。
該特征可以很好地反映A在時(shí)間戳上的諸多信息,如果基于A與A/B差值特征的最大值和最小值的差值很小或者方差相對(duì)很小,這就暗示可能存在較強(qiáng)的周期性,A可能會(huì)出現(xiàn)在固定的時(shí)間周期內(nèi)。
df['A_A_B_diff1_sts'] = df.groupby('A')['A_B_diff1'].apply(sts)
df['A_A_B_diff2_sts'] = df.groupby('A')['A_B_diff2'].apply(sts)
4. 基于A/B差值的差值以及對(duì)應(yīng)統(tǒng)計(jì)特征
如果說(shuō)基于A/B差值特征是一階滑動(dòng),那么基于A/B差值的差值就是二階了,該特征一般直接加入也可以為模型帶來(lái)微弱的提升。因?yàn)楹突贏/B的差值是類(lèi)似的,此處我們給出其計(jì)算方式,其它的不再贅述。
類(lèi)似地,我們也可以做shift(N),N>1的差值,但這么做的物理意義會(huì)差一些,實(shí)際中也很少能帶來(lái)提升。
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)
5.A的第一次出現(xiàn)時(shí)間
A的第一次出現(xiàn)時(shí)間也就是接觸A的第一次時(shí)間,該特征具有非常強(qiáng)的意義。
df['A_B_first'] = df.groupby('A')['B'].first()
6.A的最后一次出現(xiàn)時(shí)間
A的最后一次出現(xiàn)時(shí)間也就是接觸A的最后一次時(shí)間,該特征和第一次時(shí)間互為補(bǔ)充。
df['A_B_last'] = df.groupby('A')['B'].last()
7.當(dāng)前距離A出現(xiàn)第一次時(shí)間的時(shí)間差
A從第一次被接觸到最后一次被接觸的時(shí)間的差值。
df['B_A_B_first_diff'] = df['B'] - df['A_B_first']
8.當(dāng)前距離A最后一次出現(xiàn)時(shí)間的時(shí)間差
A距離最后一次接觸的時(shí)間的差值。
df['B_A_B_first_last'] = df['B'] - df['A_B_last']
9.A出現(xiàn)的時(shí)間gap
A最后一次出現(xiàn)和第一次出現(xiàn)的時(shí)間的差值。
df['A_B_gap'] = df['A_B_last'] - df['A_B_first']
10.平均每次A出現(xiàn)的時(shí)間
A每次出現(xiàn)的平均時(shí)間。
df['A_B_first_last_div_count'] = (df['A_B_last'] - df['A_B_first']) / df['A_B_count'] 
本篇文章我們列舉了特征工程中無(wú)序類(lèi)別變量與時(shí)間變量的十大重要組合特征,這些是最為重要的一組特征,也是傳統(tǒng)策略中上分最多的一組特征,除此之外與時(shí)間特征進(jìn)行組合的特征還有非常多,我們將會(huì)在本系列的下一篇中進(jìn)行介紹。
往期精彩回顧
本站qq群851320808,加入微信群請(qǐng)掃碼:
