【数据竞赛】组合特征的构建技巧,如何快速构建百大组合特征池
作者:塵沙杰少、櫻落、新峰、DOTA、謝嘉嘉
特征工程--無(wú)序/有序類(lèi)別/數(shù)值特征的組合特征!
前 言
這是一個(gè)系列篇,如果有任何問(wèn)題或者疑問(wèn)的可添加我的微信一起討論,備注:“競(jìng)賽小冊(cè)”即可。本文我們接著上一篇組合特征繼續(xù)討論無(wú)序類(lèi)別特征和有序類(lèi)別特征以及無(wú)序類(lèi)別特征和數(shù)值特征的組合特征構(gòu)建策略,這是數(shù)據(jù)競(jìng)賽中的核心部分,本文將介紹如何基于這些特征構(gòu)建出上百的特征,并介紹其中常見(jiàn)的一些非常有效的黃金組合特征。
無(wú)序類(lèi)別特征+有序類(lèi)別組合特征
1. 有序類(lèi)別特征當(dāng)無(wú)序
當(dāng)我們將有序類(lèi)別特征當(dāng)作是無(wú)序類(lèi)別特征的時(shí)候,所有無(wú)序類(lèi)別特征+無(wú)序類(lèi)別特征的策略在此便可以被拿過(guò)來(lái)直接使用。
2. 有序類(lèi)別特征預(yù)處理再組合
有序類(lèi)別特征,因?yàn)榇嬖谙鄬?duì)大小關(guān)系,可以基于大小判斷先對(duì)有序類(lèi)別特征進(jìn)行重組,重組的策略有很多,例如:
直接使用現(xiàn)有的工具包分箱;
基于業(yè)務(wù)理解進(jìn)行分組。
我們以用戶(hù)的消費(fèi)為例,假設(shè)我們有一列特征為用戶(hù)的消費(fèi)范圍,共分為十組:0-1000、1001-3000、3001-5000、5001-10000、10001-20000、2001-50000、50001-100000、、100001-200000、200001-500000、500001以上。如果我們知道部分業(yè)務(wù)消息,消費(fèi)金額在5000以下的為普通用戶(hù),在5001-20000之間的為白銀用戶(hù),在20001-100000之間的為黃金用戶(hù),100001及之上的為鉆石用戶(hù)。分完組之后將有序類(lèi)別特征當(dāng)無(wú)序類(lèi)別特征處理即可。
3. 有序類(lèi)別特征當(dāng)做數(shù)值特征處理
此處的內(nèi)容我們會(huì)在無(wú)序類(lèi)別特征和數(shù)值特征的組合特征處一起介紹。
無(wú)序類(lèi)別特征+數(shù)值特征
該小節(jié)內(nèi)的為了方便表示我們將A作為無(wú)序類(lèi)別特征,B作為數(shù)值特征。
1. 數(shù)值特征當(dāng)做有序類(lèi)別特征
數(shù)值特征可以作為高基數(shù)的有序類(lèi)別特征來(lái)對(duì)待,所以在之前用于無(wú)序類(lèi)別特征和有序類(lèi)別特征的策略在此可以直接使用。
2. 基于A/B的統(tǒng)計(jì)特征
我們將可以直接使用工具包進(jìn)行計(jì)算得到的統(tǒng)計(jì)特征df.groupby(A)[B].transform(sts)稱(chēng)之為:A關(guān)于B的傳統(tǒng)統(tǒng)計(jì)特征。這是非常通用的一組特征,其構(gòu)建的思路也非常簡(jiǎn)單,就是計(jì)算組內(nèi)(無(wú)序類(lèi)別特征)數(shù)值特征的統(tǒng)計(jì)信息,例如:
均值;
方差;
最大值;
最小值;
中位數(shù);
偏度;
分位數(shù)(四分位數(shù)等);
眾數(shù);
skewness;
峰度系數(shù);
求和;
其它統(tǒng)計(jì)特征。
改組特征幾乎在所有的競(jìng)賽中都會(huì)被使用和構(gòu)建,而且往往能帶來(lái)非常大的提升。很多朋友會(huì)在這里枚舉十幾甚至更多的統(tǒng)計(jì)特征。
df['A_B_mean']???=?df.groupby('A')['B'].transform('mean').values df['B_A_median']?=?df.groupby('B')['A'].transform('median').values df['A_B_std']????=?df.groupby('A')['B'].transform('std').values? df['A_B_max']????=?df.groupby('A')['B'].transform('max').values? df['A_B_min']????=?df.groupby('A')['B'].transform('min').values? ......3. B+A/B的統(tǒng)計(jì)演變特征
此處我們講的 B+A關(guān)于B統(tǒng)計(jì)演變特征是基于原始B特征和A關(guān)于B的統(tǒng)計(jì)特征衍生而來(lái),相對(duì)復(fù)雜一些。下面我們列舉一些常見(jiàn)的有效特征。
3.1.流量平滑特征
該特征也是較為通用的特征之一,直接用數(shù)值特征處于統(tǒng)計(jì)均值或者中位數(shù)即可,幾乎所有的數(shù)據(jù)競(jìng)賽都可以直接使用。
df['B_div_A_B_mean']???=?df['B']?/?(df['A_B_mean']??+?1e-5) df['B_div_A_B_median']???=?df['B']?/?(df['A_B_median']??+?1e-5)3.2.黃金組合特征
該特征是之前Kaggle GM在kaggle論壇分享的,稱(chēng)其為黃金組合特征,一共有三個(gè)特征。
原始的數(shù)值特征;
基于A關(guān)于B的均值特征;
B減去A關(guān)于B的均值特征;
這三個(gè)一起使用時(shí)得到的效果往往是最佳的。
df['B_minus_A_B_mean']???=?df['B']?-?df['A_B_mean']3.3.組內(nèi)歸一化特征
該特征的構(gòu)建和我們平時(shí)在對(duì)數(shù)據(jù)進(jìn)行歸一化是類(lèi)似的,減去組內(nèi)的均值再除以標(biāo)準(zhǔn)差。
df['B_minus_A_B_mean']???=?(df['B']?-?df['A_B_mean'])?/?(df['A_B_std']?+?1e-9)3.4.其它
上面是我們見(jiàn)到目前最為有效的三個(gè)特征組合策略,肯定還有其它的特征組合策略,我們只需要將我們的統(tǒng)計(jì)特征和B進(jìn)行其它形式的加減乘除等等變化即可得到成百上千的特征,但是最終的效果如何則不得而知。
4. A/B的統(tǒng)計(jì)+A/B統(tǒng)計(jì)演變特征
A/B的統(tǒng)計(jì)+A/B統(tǒng)計(jì)演變特征是直接基于A/B統(tǒng)計(jì)特征之后得到的值進(jìn)行加減乘除等轉(zhuǎn)換之后得到的特征,此處我們重點(diǎn)列舉幾個(gè)常見(jiàn)的有效的特征。
4.1.Gap特征
Gap特征就是計(jì)算一些分位數(shù)的一些差值信息,這個(gè)特征在一些分位數(shù)為較強(qiáng)特征的競(jìng)賽中可以拿到非常好的效果。
df['A_B_gap1']?=?df['A_B_0.9q']?-?df['A_B_0.1_q']? df['A_B_gap2']?=?df['A_B_0.75q']?-?df['A_B_0.25_q'] ...4.2.數(shù)據(jù)傾斜
均值大于中位數(shù),正傾斜;均值小于中位數(shù),負(fù)傾斜。
此處我們用差值和比例值來(lái)表示這些信息。
df['magic_feature1_1']?=?df['A_B_median']?-?df['A_B_mean'] df['magic_feature1_2']?=?df['magic_feature1_1'].map(abs) df['magic_feature2']?=?df['A_B_median']?/?df['A_B_mean']4.3.變異系數(shù)(CV):
變異系數(shù)度量標(biāo)準(zhǔn)差相對(duì)于均值的離中趨勢(shì),我們用=標(biāo)準(zhǔn)差/均值的方式來(lái)計(jì)算。
df['cv']?=?df['A_B_std']?/?df['A_B_mean']4.4.其它
上面三種在所有的問(wèn)題中都是非常值得嘗試的特征,我們也可以基于其它不同的特征進(jìn)行組合構(gòu)建新的特征。
往期精彩回顧適合初學(xué)者入門(mén)人工智能的路線(xiàn)及資料下載機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機(jī)器學(xué)習(xí)在線(xiàn)手冊(cè)深度學(xué)習(xí)筆記專(zhuān)輯《統(tǒng)計(jì)學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專(zhuān)輯 AI基礎(chǔ)下載機(jī)器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專(zhuān)輯溫州大學(xué)《機(jī)器學(xué)習(xí)課程》視頻 本站qq群851320808,加入微信群請(qǐng)掃碼: 與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的【数据竞赛】组合特征的构建技巧,如何快速构建百大组合特征池的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【学术相关】毕业答辩老师必问问题,并附上
- 下一篇: 建议收藏!百度不到的硬核资源~