自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

這些“秘密武器”,讓你輕松躋身Kaggle前2%

企業(yè)動(dòng)態(tài)
本文中,我們會(huì)利用featexp來(lái)進(jìn)行特征探索。我們將使用來(lái)自Kaggle競(jìng)賽“違約者預(yù)測(cè)”的數(shù)據(jù)集,競(jìng)賽的任務(wù)是基于已有的數(shù)據(jù)預(yù)測(cè)債務(wù)違約者。

[[250901]]

大數(shù)據(jù)文摘出品

編譯:Conrad、Hope、云舟

Kaggle的比賽真的好玩到令人上癮。在享受比賽的過(guò)程中,如果比賽成績(jī)能夠名列前茅那就非常棒了~~~

一位名叫Abhay Pawar的小哥開發(fā)了一些特征工程和機(jī)器學(xué)習(xí)建模的標(biāo)準(zhǔn)方法。這些簡(jiǎn)單而強(qiáng)大的技術(shù)幫助他在Instacart Market Basket Analysis競(jìng)賽中取得了前2%的成績(jī)。

下文是他以***人稱為小伙伴們分享他的技術(shù)經(jīng)驗(yàn)。希望對(duì)你有所幫助。enjoy!

要構(gòu)建數(shù)值型連續(xù)變量的監(jiān)督學(xué)習(xí)模型,最重要的方面之一就是好好理解特征。觀察一個(gè)模型的部分依賴圖有助于理解模型的輸出是如何隨著每個(gè)特征變化而改變的。

但是,繪制的圖形是基于訓(xùn)練好的模型構(gòu)建的,這會(huì)引發(fā)一些問(wèn)題。而如果我們直接用未經(jīng)學(xué)習(xí)的訓(xùn)練數(shù)據(jù)去作圖,我們就能更好理解這些數(shù)據(jù)的深層含義。因?yàn)檫@樣做能幫助我們進(jìn)行:

  • 特征理解
  • 識(shí)別嘈雜特征(這是最有趣的!)
  • 特征工程
  • 特征重要性
  • 特征調(diào)試
  • 泄漏檢測(cè)與理解
  • 模型監(jiān)控

為了方便大家使用,我把這些方法用Python做了一個(gè)包,叫做featexp。本文中,我們會(huì)利用它來(lái)進(jìn)行特征探索。我們將使用來(lái)自Kaggle競(jìng)賽“違約者預(yù)測(cè)”的數(shù)據(jù)集,競(jìng)賽的任務(wù)是基于已有的數(shù)據(jù)預(yù)測(cè)債務(wù)違約者。

  • featexp:https://github.com/abhayspawar/featexp
  • Home Credit Default Risk:https://www.kaggle.com/c/home-credit-default-risk/

特征理解

如果因變量 (分析目標(biāo)) 是二分類數(shù)據(jù),散點(diǎn)圖就不太好用了,因?yàn)樗悬c(diǎn)不是0就是1。針對(duì)連續(xù)型變量,數(shù)據(jù)點(diǎn)太多的話,會(huì)讓人很難理解目標(biāo)和特征之間的關(guān)系。但是,用featexp可以做出更加友好的圖像。讓我們?cè)囈幌掳?

Featexp可以把一個(gè)數(shù)字特征,分成很多個(gè)樣本量相等的區(qū)間(X軸)。然后,計(jì)算出目標(biāo)的平均值 (Mean),并繪制出左上方的圖像。在這里,平均值代表違約率。圖像告訴我們,年紀(jì) (DAYS_BIRTH) 越大的人,違約率越低。

這非常合理的,因?yàn)槟贻p人通常更可能違約。這些圖能夠幫助我們理解客戶的特征,以及這些特征是如何影響模型的。右上方的圖像表示每個(gè)區(qū)間內(nèi)的客戶數(shù)量。

識(shí)別嘈雜特征

嘈雜特征容易造成過(guò)擬合,分辨噪音一點(diǎn)也不容易。在featexp里,你可以跑一下測(cè)試集或者驗(yàn)證集,然后對(duì)比訓(xùn)練集和測(cè)試集的特征趨勢(shì),從而找出嘈雜的特征。

訓(xùn)練集和測(cè)試集特征趨勢(shì)的對(duì)比

為了衡量噪音影響程度,featexp會(huì)計(jì)算兩個(gè)指標(biāo):

  • 趨勢(shì)相關(guān)性 (從測(cè)試?yán)L圖中可見) :如果一個(gè)特征在訓(xùn)練集和測(cè)試集里面表現(xiàn)出來(lái)的趨勢(shì)不一樣,就有可能導(dǎo)致過(guò)擬合。這是因?yàn)?,模型從測(cè)試集里學(xué)到的一些東西,在驗(yàn)證集中不適用。趨勢(shì)相關(guān)性可以告訴我們訓(xùn)練集和測(cè)試集趨勢(shì)的相似度,以及每個(gè)區(qū)間的平均值。上面這個(gè)例子中,兩個(gè)數(shù)據(jù)集的相關(guān)性達(dá)到了99%。看起來(lái)噪音不是很嚴(yán)重!
  • 趨勢(shì)變化:有時(shí)候,趨勢(shì)會(huì)發(fā)生突然變化和反復(fù)變化。這可能就參入噪音了,但也有可能是特定區(qū)間內(nèi)有其他獨(dú)特的特征對(duì)其產(chǎn)生了影響。如果出現(xiàn)這種情況,這個(gè)區(qū)間的違約率就沒(méi)辦法和其他區(qū)間直接對(duì)比了。

下面這個(gè)特征,就是嘈雜特征,訓(xùn)練集和測(cè)試集沒(méi)有相同的趨勢(shì):兩者相關(guān)性只有85%。有時(shí)候,可以選擇丟掉這樣的特征。

嘈雜特征的例子

拋棄相關(guān)性低的特征,這種做法在特征非常多、特征之間又充滿相關(guān)性的情況下比較適用。這樣可以減少過(guò)擬合,避免信息丟失。不過(guò),別把太多重要的特征都丟掉了;否則模型的預(yù)測(cè)效果可能會(huì)大打折扣。同時(shí),你也不能用重要性來(lái)評(píng)價(jià)特征是否嘈雜,因?yàn)橛行┨卣骷确浅V匾?,又嘈雜得不得了。

用與訓(xùn)練集不同時(shí)間段的數(shù)據(jù)來(lái)做測(cè)試集可能會(huì)比較好。這樣就能看出來(lái)數(shù)據(jù)是不是隨時(shí)間變化的了。

Featexp里有一個(gè) get_trend_stats() 函數(shù),可以返回一個(gè)數(shù)據(jù)框 (Dataframe) ,顯示趨勢(shì)相關(guān)性和趨勢(shì)變化。

嘈雜特征的例子

get_trend_stats()返回的數(shù)據(jù)框

現(xiàn)在,可以試著去丟棄一些趨勢(shì)相關(guān)性弱的特征了,看看預(yù)測(cè)效果是否有提高。

用趨勢(shì)相關(guān)性進(jìn)行不同特征選擇得到的的AUC值

用趨勢(shì)相關(guān)性進(jìn)行不同特征選擇得到的的AUC值

我們可以看到,丟棄特征的相關(guān)性閾值越高,排行榜(LB)上的AUC越高。只要注意不要丟棄重要特征,AUC可以提升到0.74。有趣的是,測(cè)試集的AUC并沒(méi)有像排行榜的AUC變化那么大。完整代碼可以在featexp_demo記事本里面找到。

featexp_demo:

https://github.com/abhayspawar/featexp/blob/master/featexp_demo.ipynb

特征工程

通過(guò)查看這些圖表獲得的見解,有助于我們創(chuàng)建更好的特征。只需更好地了解數(shù)據(jù),就可以實(shí)現(xiàn)更好的特征工程。除此之外,它還可以幫助你改良現(xiàn)有特征。下面來(lái)看另一個(gè)特征EXT_SOURCE_1:

EXT_SOURCE_1的特征與目標(biāo)圖

EXT_SOURCE_1的特征與目標(biāo)圖

具有較高EXT_SOURCE_1值的客戶違約率較低。但是,***個(gè)區(qū)間(違約率約8%)不遵循這個(gè)特征趨勢(shì)(上升并下降)。它只有-99.985左右的負(fù)值且人群數(shù)量較多。這可能意味著這些是特殊值,因此不遵循特征趨勢(shì)。幸運(yùn)的是,非線性模型在學(xué)習(xí)這種關(guān)系時(shí)不會(huì)有問(wèn)題。但是,對(duì)于像Logistic回歸這樣的線性模型,如果需要對(duì)特殊值和控制進(jìn)行插值,就需要考慮特征分布,而不是簡(jiǎn)單地使用特征的均值進(jìn)行插補(bǔ)。

特征重要性

Featexp還可以幫助衡量特征的重要性。DAYS_BIRTH和EXT_SOURCE_1都有很好的趨勢(shì)。但是,EXT_SOURCE_1的人群集中在特殊值區(qū)間中,這表明它可能不如DAYS_BIRTH那么重要?;赬GBoost模型來(lái)衡量特征重要性,發(fā)現(xiàn)DAYS_BIRTH實(shí)際上比EXT_SOURCE_1更重要。

特征調(diào)試

查看Featexp的圖表,可以幫助你通過(guò)以下兩項(xiàng)操作來(lái)發(fā)現(xiàn)復(fù)雜特征工程代碼中的錯(cuò)誤:

零方差特征只展現(xiàn)一個(gè)區(qū)間

零方差特征只展現(xiàn)一個(gè)區(qū)間

  • 檢查特征的人群分布是否正確。由于一些疏忽,我遇到過(guò)多次類似上面這樣的極端情況。
  • 在查看這些圖之前,我總是會(huì)先做假設(shè),假設(shè)特征趨勢(shì)會(huì)是什么樣子的。如果特征趨勢(shì)看起來(lái)不符合預(yù)期,可能暗示著存在某些問(wèn)題。實(shí)際上,這個(gè)驗(yàn)證趨勢(shì)假設(shè)的過(guò)程使機(jī)器學(xué)習(xí)模型更有趣了!

泄漏檢測(cè)

從目標(biāo)到特征的數(shù)據(jù)泄漏會(huì)導(dǎo)致過(guò)擬合。泄露的特征具有很高的特征重要性。要理解為什么在特征中會(huì)發(fā)生泄漏是很困難的,查看featexp圖像可以幫助理解這一問(wèn)題。

在“Nulls”區(qū)間的特征違約率為0%,同時(shí),在其他所有區(qū)間中的違約率為100%。顯然,這是泄漏的極端情況。只有當(dāng)客戶違約時(shí),此特征才有價(jià)值?;诖颂卣鳎赡苁且?yàn)橐粋€(gè)故障,或者因?yàn)檫@個(gè)特征在違約者中很常見。了解泄漏特征的問(wèn)題所在能讓你更快地進(jìn)行調(diào)試。

理解為什么特征會(huì)泄漏

理解為什么特征會(huì)泄漏 

模型監(jiān)控

由于featexp可計(jì)算兩個(gè)數(shù)據(jù)集之間的趨勢(shì)相關(guān)性,因此它可以很容易地利用于模型監(jiān)控。每次我們重新訓(xùn)練模型時(shí),都可以將新的訓(xùn)練數(shù)據(jù)與測(cè)試好的訓(xùn)練數(shù)據(jù)(通常是***次構(gòu)建模型時(shí)的訓(xùn)練數(shù)據(jù))進(jìn)行比較。趨勢(shì)相關(guān)性可以幫助你監(jiān)控特征信息與目標(biāo)的關(guān)系是否發(fā)生了變化。

這些簡(jiǎn)單的步驟總能幫助我在Kaggle或者實(shí)際工作中構(gòu)建更好的模型。用featexp,花15分鐘去觀察那些圖像,是十分有價(jià)值的:它會(huì)帶你一步步看清黑箱里的世界。

還有什么其他方法可以幫助我們對(duì)特征進(jìn)行探索嗎?如果你有更棒的想法,歡迎發(fā)郵件跟我交流abhayspawar@gmail.com。感謝你的閱讀!

相關(guān)報(bào)道:

https://towardsdatascience.com/my-secret-sauce-to-be-in-top-2-of-a-kaggle-competition-57cff0677d3c

【本文是51CTO專欄機(jī)構(gòu)大數(shù)據(jù)文摘的原創(chuàng)文章,微信公眾號(hào)“大數(shù)據(jù)文摘( id: BigDataDigest)”】

     大數(shù)據(jù)文摘二維碼

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來(lái)源: 51CTO專欄
相關(guān)推薦

2013-10-16 09:28:14

亞馬遜AWSSDN

2024-07-11 08:34:48

2013-10-16 09:33:36

亞馬遜AWSSDN

2014-01-07 10:46:39

2011-08-11 17:05:26

2023-07-26 00:20:20

Java 8數(shù)組方式

2023-07-24 08:20:11

StreamJava方式

2015-03-30 16:58:05

秘密武器華為

2023-05-08 14:54:00

AI任務(wù)HuggingGPT

2019-11-27 10:40:34

數(shù)據(jù)工具CIO

2023-11-29 07:04:19

Git工作效率

2015-06-08 09:50:07

Android M谷歌

2022-02-11 10:47:17

CIOIT團(tuán)隊(duì)企業(yè)

2009-07-28 10:36:58

云計(jì)算Google秘密武器

2019-11-27 10:38:37

數(shù)據(jù)分析數(shù)據(jù)準(zhǔn)備工具

2009-10-29 09:21:42

數(shù)據(jù)中心完美的十四大秘

2011-06-02 10:24:11

iTravel蘋果

2023-02-24 10:26:34

語(yǔ)音AI人工智能

2024-12-18 16:00:00

C++性能優(yōu)化consteval

2020-07-25 18:04:21

Windows 10Windows勒索病毒
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)