吸引7198 支隊伍參賽,看 Kaggle 信用預估比賽冠軍方案

2021-01-15 雷鋒網

雷鋒網 AI 科技評論按:Kaggle Home Credit Default Risk 比賽日前落下帷幕,該比賽總獎金 7 萬美元,第一名獎金 35000 美元,第二名獎金 25000 美元,第三名獎金 10000 美元。該競賽從 2018 年 5 月 17 日持續到 2018 年 8 月 29 日,共吸引到 7198 支參賽隊伍,競爭異常激烈。由 Michael Jahrer 擔任隊長的 Home Aloan 隊獲得第一名。

比賽介紹

許多人由於較少甚至沒有使用過信用卡消費,因而很難獲得貸款,而且這類群體往往又被不值得信賴的借款人利用。Home Credit 希望為沒有銀行帳戶的群體提供正當且安全的貸款服務,為了判斷這類群體的貸款是否正當合理,Home Credit 利用不同來源的數據(電話和交易記錄等)來預測這些人的償債能力。基於以上原因,Home Credit 在 Kaggle 上發起了一場貸款償債能力預測的比賽,並提供了豐富的數據。

此次比賽的評測指標採用的是 AUC,要求參賽人員或隊伍對測試集的每個 SK_ID_CURR 預測 TARGET(償清貸款)的概率並以文件形式提交到 Kaggle 平臺。

冠軍團隊成員之一 Bojan Tunguz 在 Kaggle 上發表了這支團隊的具體方案,以下是雷鋒 AI 科技評論對這一方案的編譯整理。

比賽冠軍隊伍方案

引言

根據我之前信用擔保的經驗,不得不承認這個問題是應用機器學習領域中最複雜的問題之一。這個領域的數據一般非常混雜,比如數據是在不同時間段上收集的,來自不同途徑,且可能在收集數據的過程中發生改變。此外,找到一個合適的目標變量也很棘手,需要深厚的專業知識和高超的商業分析能力。

插一句,Home Credit 和 Kaggle 提供的這個數據集非常贊,既不會洩露用戶隱私,且易於進行機器學習。

基於對信用擔保的了解,通常來說,很顯然,這種類型的機器學習問題要構建一個很好的比賽模型。有兩種重要思路:1. 一個很好的特徵集合; 2. 不同的基線算法。我們主要有四個充滿多樣性的數據來源,以及少量的次要特徵數據來源。

數據和特徵工程

我們使用的第一個比較大的特徵集合是在許多 kernel 中找到的。這些特徵在多對一的表格上採用不同形式聚合,另外還有申請貸款次數特徵。我們一共使用了大約 700 個特徵。

特徵工程

跟許多人一樣,對於每個 SK_ID_CURR,我們只是基於 SK_ID_PREV 和 SK_ID_BUREAU 的特徵建立基礎模型,另外,我們還基於除法和減法從 application_train.csv 構造了許多特徵。效果最顯著的除法操作是除以 EXT_SOURCE_3,這對我們的 CV(本地做交叉驗證得到的分數)有一個小的提升,也帶來了榜單排名的提升。我們還發現通過為類別變量使用類別編碼器可以獲得相當不錯的提升,我對 application_train.csv 中所有的類別變量建立了類別編碼器,也對 previous_appplication.csv 表中 LAST application 中的所有類別變量建立了類別編碼器。除了聚合 SK_ID_PREV 和 SK_ID_BUREAU,我還使用了數據的不同部分來計算聚合特徵。

Previous_application.csv 聚合了最近的 3、5 次和起初的 2、4 次申請信息。這些申請中的每個變量都有交叉驗證過,使 CV 分數獲得了最大的提升。Installment_payments.csv 聚合了最近的 2、3、5 次的償還貸款信息。我對 NUM_INSTALLMENT_NUMER 上的 1、2、3、4 次分期進行了聚合,對從 DAYS_INSTALLMENT 中過濾出來的最近 60、90、180 和 365 天的分期做了聚合,還對所有逾期付款的分期做了聚合。如果 ENTRY_PAYMENT 的值比 DAYS_INSTALMENT 大,逾期變量就被定義為 1,否則就定義為 0。POS_CASH_balance.csv, credit_card_balance.csv 與 installment_payments.csv 採用了同樣的方法進行特徵聚合。我還使用了來自 previous_application.csv 的 lag 特徵,對於每個 SK_IDCURR,當達到了最近 5 次申請時我就使用 lag 特徵。

Oliver:我是這樣設想的,大部分競賽選手知道我的特徵和數據集。除了 public kernel,我試著計算年利率,這一特徵對模型的影響非常明顯,是促進模型獲得高分的特徵之一。我還試過在一些表(問詢表和之前的申請表)上進行預測,但是因為某些原因,我們的模型沒有像其他團隊那樣得到提升。隨著其他特徵工程經驗豐富的隊員加入,給我們的 CV/LB 帶來極大提升,我就專注於模型融合了。

Phil:我做出來的特徵按照重要性(基於對 LGBM 模型帶來的提升)由高到低排序如下:

1)neighbors_target_mean_500

2)Region_id

3)debt_credit_ratio_None

4)credit_annuity_ratio

5)prev_PRODUCT_COMBINATION

6)DAYS_CREDIT_mean

7)credit_goods_price_ratio

8)last_active_DAYS_CREDIT

9)credit_downpayment

10)AGE_INT

11)installment_payment_ratio_1000_mean_mean

12)annuity_to_max_installment_ratio

Yang:我對特殊特徵的想法是,一些來自於公開的討論方案,包括過去 3、5、10 次信用卡貸款申請、分期付款時間和 pos 機使用記錄,但是我修改了時間段以便在特徵上引入更大的差異性。同時,我應用了加權平均(使用時間段作為權重)來生成一些跟養老金、信用卡和付款相關的特徵。我認為這些特徵對提取個人的信用卡習慣非常有幫助。我想到的最後一個有趣且有用的特徵是:根據收入、付款和時間生成一些 KPI。

Bojan:特徵選擇和壓縮

這次比賽也需要進行特徵壓縮。各種各樣的特徵生成方式通常會導致特徵集合達到上千個,同時很可能大多數特徵是冗餘的、有噪聲的或既冗餘又含有噪聲。

我試了一些簡單的縮減特徵數量的方法,使用數值類型的頻率編碼分類特徵,然後使用嶺回歸跑了一個非常簡單的前向特徵選擇。我過去在元特徵(metafeatures)上使用過這個技術,但這是我第一次試著在原始特徵上使用該方法。令人驚訝的是,這一技術非常湊效。

我能夠將超過 1600 個原始特徵壓縮到大約 240 個。然後當 Oliver 添加更多的特徵到 base set 時,我只是直接將這些特徵加到 240 個特徵中,最後達到 287 個特徵。用這 287 個特徵訓練,CV 分數大約為 0.7985,LB 分數大約為 0.802 - 0.803。

當又有新的成員加入隊伍,試著將他們提供的特徵跟我們的特徵結合就變得尤為重要。Oliver 花了很大的精力來區分 Phil 的哪個特徵與我們的特徵是互補的,最後合併的特徵集合達到了 700 多個。當 Ryan 和 Yang 加入我們隊伍時,再重複那樣的工作太花時間和精力了,我們只是粗略對比哪部分特徵是不同的,然後將那些不同的特徵加入他們的特徵集。

最後,Yang 的 base set 是所有特徵集中最好的。他的一個 Kernel 就能在 private leadboard 上獲得 0.802 的分數,public leadboard 上獲得 0.803 的分數,這在最後階段是前 20 名。我們想要將所有其他特徵集合中的特殊特徵與 Yang 的 base 特徵集合組合,但由於時間關係我們就大概做了一下。我們最終共留下 1800-2000 個特徵。我們有一些合併集,在訓練自己的模型時,我們也分別進行了特徵組合。

基礎模型

我們的所有模型都是採用 5 折交叉驗證。我一開始就這樣選擇了,沒有什麼特別原因,最後也把這個作為默認值。

Oliver:我使用了 LightGBM,FastRGF,嘗試過 FFM,但是 CV 結果比預期低很多(0.76AUC)。

Bojan:我使用了 XGBoost,LightGBM,CatBoost,還有簡單的回歸模型。我在 XGB 上使用了一個超參數集合,在 LightGBMs 上使用了大約三個不同的集合。大部分 XGB 模型都是在 GPU 上使用 gpu_hist 訓練的,而 LightGBM 模型是在 CPU 上訓練的。CatBoost 模型沒有那麼好,訓練需要很久,我認為他們對元特徵的多樣性只起到一點點幫助。

Ryan 和 Yang:我們在工程數據集和工程數據集與剩下數據集的組合數據集上訓練了幾個 LightGBM 模型。Ryan 抱著碰運氣的心態試了試 FFM,但是效果不好。

Michael Jahrer(神經網絡等方面):和大多數人一樣,我閱讀了論壇中的許多討論,神經網絡模型從 AUC 方面來說效果不比集成類的樹模型(LGBM,XGB)好。在比賽過程中,使用神經網絡的話,一開始根本就達不到 0.785,但使用 LGBM 卻可以超過 0.79。當準確率達到一定程度之後,神經網絡是模型融合的熱門之選,我盡力去做好。特徵工程不是我的長項,一開始我做得很差。隊伍合併後我就可以用到大家的特徵集合,效果顯著。所有數據集上的結果都差不多,DAE+NN 效果比只用 NN 要好(差不多高 0.005)。DAE 表示降噪自編碼處理,是神經網絡的輸入,是為了實現更好的數據表達的無監督技術。原始特徵的數量在 100 - 5000 之間,這意味著 DAE 需要非常大,確保表徵是過約束的、沒有完全佔滿的。最初嘗試的幾個 DAE 模型都具有 10000-10000-10000 的拓撲,這意味著把特徵的數量擴增到 3 萬。監督式神經網絡的拓撲為 1000-1000,這是我的標準建議,在這裡也能正常使用。在試了更多神經元之後,得分反而下降了。

以下是一些參數設定:

DAE:swapnoise=0.2,1000 個 epoch。監督式神經網絡:lRate=2.5e-5,dropout=0.5,大約 50 個 epoch(直到過擬合),優化對數損失函數。隱藏單元使用 ReLU,SGD 優化器,minibatchsize=128,小 lRateDecay。完全跑完一次 5 折交叉驗證需要在 GTX 1080Ti 上花一整天,DAE 所佔的時間最多。用 rankGauss 將原始數據歸一化,缺失值用 0 代替。在競賽後期,我在 DAE 中試著減少以及增加隱藏層數目,我認為這樣會更好。在這種情況下得分最高:DAE 只包括一個隱藏層,具有 5 萬個神經元 ,然後接上一個 1000-1000 拓撲的監督式神經網絡,在我們 6 個人的所有特徵集合的併集上跑了下,分數是 CV=0.794961,public=0.80059,private=0.79433。

當不對神經網絡進行優化時,一個簡單的帶有較小學習率的 LGBM 模型優於所有神經網絡模型。LGBM 模型獲得的最高 CV 分數是 0.8039,AUC 比神經網絡大概高 0.01。我認為神經網絡在此扮演了次要角色。我認為神經網絡在這裡的得分比 LGBM 差的原因是數據歸一化問題,但在最後為了 0.0001 的提升,神經網絡還是非常重要,這就是 Kaggle。

模型集成

我們的模型集成共分為三個階段。

每天,當我們得到一個新的基線預測,就生成 L1 稠密矩陣,並輸入到第一層 stacker(NN,XGBoost,LightGBM 和 Hill Climber 線性模型)中。我們最後實現了 90 多個基線預測。隨著基線預測數量的增長,選手排行榜的排名和 CV 分數變得越來越相關。我認為 Michael 的神經網絡雖然在單獨使用時表現沒有很好,但是對 CV 分數和選手排行榜的排名之間的關係更加穩定有很大助益。

在一段時間之後,CV 分數及排名的提升變緩,很顯然,進入了下一階段。

第 2 層模型包括一個卷積神經網絡,一個 ExtraTree 和一個 Hill Climber 線性模型。這時 Silogram 建議我們應該先添加原始特徵再堆疊模型。

最後的預測是將 3 個預測做平均權重融合。

Michael:我們的神經網絡模型是一個成功的 stacker。這裡我使用了普通的監督式神經網絡,帶有一個隱藏層,500 個 ReLU 單元。這裡的技巧是找到合理的初始值:lRate=1e-3,lRateDecay=0.96(在每個 epoch 之後乘以 Irate)。dropout=0.3 也很重要。

Phil:ExtraTrees L3 模型是一個非常淺層的模型(max_depth=4),僅僅在 7 個 L2 模型中加上一個原始特徵 AMT_INCOME_TOTAL,高度正則化 (min_samples_leaf=1000) 。得分為 CV:0.80665,LB:80842,PB:80565。

其他

如上描述,我們沒有在調參上投入太多時間。我試著在 XGB 參數和 LightGBM 模型上運行 Oliver 提供的一個優化腳本,但是本地結果讓人沮喪。那時候我們一直非常依賴模型集成,我們的想法是在不同的超參數上訓練幾個不同的模型,避免生成單個高度優化的模型。

Phil 發現了一件事情,我在論壇上也看到有人提過,有可能在訓練集和測試集上把預測結果調到超過 0.98 AUC。我們在最後才發現這點,當時已經不能用到了。(一些人確信排名靠前的某些隊伍實際上在探索某種對抗驗證和偽標籤的方法)。

我們還嘗試過開發一個預測模型來分辨 EXT_* 特徵起到多大的作用,那些特徵的 AUC 達到 0.78,但是它對提升 CV 和公開 LB 榜的排名都毫無助益。基於我們的分析,我們相信可能是因為這些特徵在訓練集和測試集中比較一致,所以雖然公開排行榜上的分數高於本地 CV 模型的分數,但它在其中起到的作用並不大。

競賽結束後,我仔細看了我們的基礎模型。結果證明,我們最好的 3 個模型都能排到前 10 名,把他們平均起來也能達到第一名。在我看來,這說明了在這種類型的競賽和問題中,特徵工程和特徵選擇是最重要的。因為我們沒有對最好的特徵集合進行優化,也沒有調節訓練模型的超參數,我認為創造出一個能超過我們之前所有模型集成效果的單模型也是很有可能的。

via:Kaggle,雷鋒網 AI 科技評論編譯整理。

雷鋒網(公眾號:雷鋒網)

雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 鯊魚攜手三大職業組成「銀河戰艦」,看到參賽隊伍,網友:冠軍穩了
    隨著時間的推移,2020PEL和平精英職業聯賽S1賽季的比賽在西安電競中心落下帷幕。在最後的關鍵比賽期間,AG戰隊用5場蛋糕、88次淘汰成功奪得了冠軍獎盃,而4AM戰隊和XQF戰隊分獲亞軍和季軍。在PEL結束後,不少玩家內心久久不能平靜,都開始期待新的比賽活動。而近日虎牙則宣布新一期的「猛男杯」比賽活動即將開啟。
  • Kaggle亞馬遜比賽冠軍專訪:利用標籤相關性來處理分類問題
    雷鋒網 AI科技評論消息,近日,Kaggle Blog上刊登了對「Planet: Understanding the Amazon from Space」比賽冠軍的專訪,在訪問中,我們了解到了冠軍選手bestfitting的一些基礎信息
  • 首次參賽就獲全省冠軍 鄭州這支壘球隊2隊員已入選國青後備隊
    猛獁新聞·東方今報記者 米方傑萌友 姜秀彩 高鵬  11月4日,在2020年河南省「中國體育彩票」壘球錦標賽決賽上,首次參賽的鄭州市上街實驗高中壘球隊以3:0戰勝鄭州市第十八中學,奪取了本屆河南省壘球錦標賽冠軍。記者了解到,初次參賽的上街實驗高中女子壘球隊於2019年10月建隊,該隊還有2名隊員已入選國青後備隊,將備戰2028年奧運會。
  • NIPS 2017 五大比賽全匯總,看看優勝的中國選手有哪些
    Personalized Medicine: Redefining Cancer Treatment(個性化醫療:重新定義癌症治療)此次比賽的參賽隊伍共有 1386 支,第一名的獎金是 10000 美元,第二名是 3000 美元,第三名是 2000 美元。
  • 海峽兩岸26支慢速壘球隊伍崑山爭雄
    海峽兩岸26支慢速壘球隊伍崑山爭雄 2014-11-22 17:38:03作者:責任編輯:   中新網崑山11月22日電 (黃瑩)第四屆「慧聚媽祖杯」慢速壘球邀請賽22日在江蘇崑山開賽,來自海峽兩岸的26支隊伍將展開為期兩天的激烈角逐
  • 2020深圳無人機預選賽開啟,58支隊伍光明齊競技
    參賽的學校共有58支隊伍,共計140名參賽選手參加預選賽,最終12支參賽隊伍入圍總決賽,將於10月與其它區選拔出來的參賽隊伍角逐深圳無人機精英賽總決賽。「魅力鵬城」無人機短片拍攝比賽,分小學組、初中組和高中組,每隊5名學生;3.「致敬光明」單機任務編程挑戰賽分小學組、初中組和高中組,每隊2名學生;4.「展望鵬城」無人機載重任務挑戰賽分初中組和高中組,每隊2名學生,各參賽隊伍通過各區的選拔賽入圍後參與最終的總決賽。
  • 蘭州市軟式棒壘球錦標賽落幕 三支球隊代表蘭州市參加全國比賽
    原標題:市軟式棒壘球錦標賽落幕三支球隊代表我市參加全國比賽中國甘肅網7月14日訊據蘭州日報報導 (蘭州日報社全媒體記者孔德勝)2019年蘭州市軟式棒壘球錦標賽暨全國軟式壘球選拔賽經過選拔我市將派出安樂村小學等3支球隊參加全國軟式棒壘球的比賽。本次比賽由市體育局、市教育局主辦,市棒壘曲運動協會承辦。比賽分中學、小學兩個大組,共有14所學校的20支隊伍參賽。經過3天的激烈爭奪,六十二中獲得中學男子組冠軍;桃園中學獲得中學女子組冠軍;正寧路小學獲得小學手套組和徒手組冠軍。
  • 世界頭腦奧林匹克世界冠軍隊伍親臨Mad Science神奇科學家,他們...
    北京時間5月31日,「2020年世界頭腦奧林匹克決賽」線上頒獎閉幕式上,由Mad Science神奇科學家小學員們組成的——未來宇宙探索者學會(ACAD OF FUTURE SPACE EXP XUHUI)在全世界843支參賽隊伍中脫穎而出
  • 中國網安參賽隊伍榮獲「2017工業信息安全技能大賽...
    中國網安參賽隊伍榮獲「2017工業信息安全技能大賽」三等獎∧比賽現場2017年12月19日至21日,由工業和信息化部指導,國家工業信息安全發展研究中心和浙江省經濟和信息化委員會主辦中國網安參賽隊伍榮獲大賽三等獎,併入選2018年國家工業信息安全應急服務單位。∧獲得獎勵本次大賽,吸引了來自全國24個省(區、市)科研院所、高校和企業的49支戰隊近200位選手參賽。
  • 絕地求生PCS2隊伍名單確定!GEN.G無緣洲際賽 這支PCS1冠軍也沒了
    隨著時間的流逝,PCS2洲際賽也進入了倒計時階段,在這周正式服更新,PCS2冠軍競猜活動頁面就加入到正式服當中,和PCS1活動相同,購買道具就能獲得票券,在活動頁面給支持的隊伍投票。而目前各賽區的PCS2預選賽也先後落下帷幕,參加PCS2洲際賽的詳細隊伍名單也正式出爐,在東亞賽區的名單中,韓國賽區的隊伍變化是最大的,除了ENTUS是老對手之外,其他隊伍都是新面孔,最可惜的就是GEN.G,在同分情況下因為淘汰分更少,最終無緣了本次洲際賽,雖然新隊伍也不可小覷,但GEN.G沒來參加比賽,也有種鬆了口氣的感覺。
  • 上海第二屆青少年棒球聯賽開戰 24支隊伍角逐冠軍
    來自全國入圍決賽階段的24支隊伍將會角逐最後的冠軍。    開幕式比賽中,復旦萬科隊和西安聯隊的激烈比賽中,小選手們高度投入,投球手每一個球都高度專注,將每一個球都當做將對方三振出局的最後一個,而擊球手則躍躍欲試將每一個球打出本壘打,雙方你攻我守好不熱鬧,場下的隊員們也抓緊時間聆聽著來自教練的教導,準備上場時將戰術發揮出來。
  • 首屆世界旅遊城市橋牌公開賽結束 浙江錢塘獲公開團體賽冠軍
    據中國橋牌協會消息,首屆世界旅遊城市(張家界)橋牌公開賽9月8日在張家界結束,浙江錢塘奪得冠軍。中國橋牌協會主席劉曉江出席開幕式並對賽事給予了充分肯定。這一賽事是由中國橋牌協會、張家界市人民政府主辦,湖南省橋牌協會、湖南廣播電視臺都市頻道承辦。
  • 阿里雲IoT將舉辦第三屆極客創新挑戰賽 吸引全球極客參賽 | 網際網路...
    該賽事是阿里雲旗下IoT事業部所主辦的智能創新比賽,本屆大賽將首次對外開放徵集報名參賽隊伍。比賽將召集所有在創意、設計上有想法的極客們,享受最純粹的創新碰撞,動手做出一些體驗創新有所突破的作品。據透露,極客創新挑戰賽始於2016年,當時僅為阿里巴巴內部員工的賽事。當年在內部吸引了36支隊伍、共150名選手參賽,最終有11支隊伍進入決賽。
  • Keras 作者:Kaggle 冠軍隊伍最愛用我們的產品
    雷鋒網(公眾號:雷鋒網) AI 科技評論按:近日,谷歌 AI 研究員、Keras 作者 Francois Chollet 在個人推特上發布一項關於 KaggleKaggle 冠軍隊伍最愛使用的機器學習工具是哪些?為此,我們對 2016 年以來那些排名在前 5 的團隊進行了調查。
  • 益陽:市青年辯論賽複賽青春激揚4支隊伍進決賽
    湖南教育新聞網·教育影像志訊(特約記者 曹國軍 通訊員 王香琴 裴淑宏)12月20日,在益陽華天酒店三樓益陽廳,由中共益陽市委組織部、中共益陽市委宣傳部、共青團益陽市委聯合承辦,"會龍山•溪谷杯"益陽市青年辯論賽複賽圓滿結束,青春激揚,4支隊伍進入決賽,決賽將於12月下旬舉行,4支強隊將在思辯場上迎來最終的較量和巔峰對決。
  • ATP杯參賽名單揭曉:小德、納達爾在列 費德勒缺席
    圖片來源:ATP(國際職業網球聯合會)巡迴賽官方微博  中新網1月6日電 北京時間5日,ATP杯官方宣布2021年賽事的比賽陣容,屆時將有12支參賽隊伍為爭奪最終的團體冠軍發起爭奪。
  • 逆水寒:緣定三生擊敗PDD隊伍信手斬龍,成第一屆跨服比武冠軍!
    逆水寒第一屆大規模的跨服比武大會因為BUG原因導致了比賽日期的拖延,但是這絲毫沒有影響每支隊伍的參賽熱情。12月8號來自四個大區的隊伍開始角逐最後的獎盃,先是由問鼎江湖3:0乾淨利落的帶走了群龍之首拿下了季軍。
  • 北京市第六屆拔河比賽決賽展示運動魅力
    說起2017年全國拔河新星系列賽(北京站)暨北京市第六屆拔河比賽總決賽,代表北京市通州區西集鎮參賽的陳玉起感觸頗多。拔河作為一項團體運動,簡單易行又能體現出團隊的協作性,因此備受大眾喜愛,本次比賽吸引了39支隊伍近500名運動員參加。   提高競技水平 促進團結交流   全國拔河新星系列賽北京站已經舉辦了五屆。
  • 美圖影像實驗室MTlab斬獲2019 CVPR-NTIRE圖像增強比賽冠軍
    近日,NTIRE(New Trends in Image Restoration and Enhancement workshop and challenges)比賽結果公布,美圖影像實驗室MTlab在圖像增強賽道(Image Enhancement Challenge)中斬獲冠軍
  • 全球40支精英團隊參賽 ARENA2019全球舞朝競技場在蓉落幕
    作為全球最具影響力的齊舞賽事之一,2019 ARENA舞朝競技場聚集了來自美國、日本、韓國、新加坡、菲律賓、香港、北京、上海等超過40支精英團隊,超過30位全球Urban Dance創始級大師。比賽當天,四川省體育館堪比熱門演唱會。