日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

label y 训练集测试集x_Adversarial validation-对抗验证| 一种解决训练集与测试集分布不一致的方法...

發(fā)布時間:2024/1/23 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 label y 训练集测试集x_Adversarial validation-对抗验证| 一种解决训练集与测试集分布不一致的方法... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

導(dǎo)語: 馬上就要五一了,祝全世界人民五一快樂!在這之前,想過好幾個準備這些天可以完成的專題,比如Boosting系列在搞點最近幾年的新玩意,或者開一個新專題,如心心念念的GNN/GCN(主要是又可以去回憶一下信號與系統(tǒng)的內(nèi)容),或者把最近王喆老師的推薦系統(tǒng)看看,或者卓克老師的科普人物系列,模仿一下大佬的寫作風格,或者寫點風控模型相關(guān)的,正好與節(jié)日氛圍想匹配。然而,當我回到家,打開知乎正好刷到一篇講Adversarial validation相關(guān)的,Adversarial,對抗,我喜歡的內(nèi)容,寫它寫它寫它(抄它抄它抄它)。

本文提綱如下:

  • 地震無處不在
  • Adversarial validation
  • 對抗訓練-DANN
  • 總結(jié)

地震無處不在

訓練集與測試的不一致問題是我們經(jīng)常面臨的問題,在互金領(lǐng)域,市場環(huán)境變化,準入策略,額度策略的調(diào)整,會導(dǎo)致訓練樣本在時間維度上存在差異,因此在利用大規(guī)模樣本,或者長期限樣本來訓練模型時,必然會存在訓練集與測試集(或者當前線上打分模型)產(chǎn)生偏差,這種現(xiàn)象在模型指標上的表現(xiàn)就是訓練集,驗證集上的KS/AUC想對較高,測試集上天然會存在decay的現(xiàn)象。面對這種情況,不能把原因單純的歸結(jié)為過擬合,而使勁地去改善這種表面的過擬合現(xiàn)象,也需要考慮上述人群變化的原因。

訓練集與測試集差異明顯的典型例子很容易發(fā)生在Kaggle比賽,或者國內(nèi)高水平的比賽上,比賽前期顯示的都是在公榜上成績,最后的評判的卻是的額外的私榜上,就會產(chǎn)生很大喜聞樂見的地震, shake up。如Kaggle比賽LANL Earthquake Prediction,在public Leaderboard中排名第一的,在private Leaderboard卻掉到了2734,而后面一大票老哥卻沖到了前排,上演數(shù)據(jù)世界的地震。

所以大佬們,總是提醒我們,trust local cv,但是在很長一段時間大佬卻沒有告訴我們?nèi)绾螛?gòu)造穩(wěn)定,測試集與驗證集一致的方法,而正是本篇要帶來的一種方法。

Adversarial validation

Adversarial validation,網(wǎng)上的翻譯是對抗驗證,但是當我看完內(nèi)容之后其實是沒有發(fā)現(xiàn)太明顯的對抗痕跡,還是高攀得起的,步驟如下:

  • 構(gòu)建一個樣本的分類器,該二分類器的任務(wù)用于區(qū)分樣本來源于訓練集,還是測試集。因此,需要為原始數(shù)據(jù)新增一個標簽列,將訓練集中的樣本標記為0, 測試集中的樣本標記為1,樣本的特征是數(shù)據(jù)中已有的特征,或者衍生的新特征,生成新的訓練數(shù)據(jù)集;
  • 將新的訓練數(shù)據(jù)集進行劃分,保留部分樣本作為該樣本分類任務(wù)的測試集, 利用分類算法(XGBoost, LightGBM)等對數(shù)據(jù)集進行訓練,AUC作為模型指標;
  • 在測試集中進行驗證,如果模型效果AUC在0.5左右,說明該樣本分類模型無法區(qū)分樣本來源訓練集,還是測試集,說明原始數(shù)據(jù)中訓練集,測試集分布是一致的;如果AUC較大,如0.9, 說明樣本分類器很容易區(qū)分樣本,間接說明訓練集與測試集存在很大差異;
  • 根據(jù)第3步的結(jié)論,對于分布一致的,正常對目標任務(wù)訓練即可。對于分布不一致的,可以繼續(xù)進行樣本挑選的嘗試。利用上述樣本分類器模型,對原始的訓練集進行打分預(yù)測,并將樣本按照模型分從大到小排序,模型分越大,說明與測試集越接近,那么取訓練集中的TOP N 的樣本作為目標任務(wù)的驗證集,這樣即可將原始的樣本進行拆分得到 訓練集,驗證集,測試集。那么線上模型驗證時,在這樣的數(shù)據(jù)上調(diào)參等得到模型,如果在驗證集上效果穩(wěn)定,那么應(yīng)用在測試集上,大概率結(jié)果是一致的
  • 如此,完成了local CV的構(gòu)建。有了上述的思路,可以做進一步的擴展(在可容忍的模型誤差范圍內(nèi)), 利用樣本分類模型,挑選與測試集相近的訓練集,做樣本的反向選擇,挑選合適訓練樣本進行模型訓練。至于還有其他應(yīng)用,同學們可以繼續(xù)探討。

    對抗訓練-DANN

    看完上述方法,確實很實用,至于效果嘛,筆者還沒在自己的業(yè)務(wù)數(shù)據(jù)上實驗,后期有了結(jié)果在進行補充(此坑比填),上述好像也沒有發(fā)生什么對抗,但是不要一看到對抗就陷入到GAN,生成對抗網(wǎng)絡(luò)的思維里面,似乎一提對抗就要有顯式一個生成器,一個判別器,兩者相愛相殺,共同提高。在2015年,就有一篇對抗訓練(而不是對抗生成)的文章,Domain-Adversarial Training of Neural Networks,就是從梯度翻轉(zhuǎn)(Gradient reversal layer)的角度來進行對抗訓練,如果希望深入學習這方面的東西的同學,可以檢索領(lǐng)域自適應(yīng), domain adaption相關(guān)的內(nèi)容,了解相關(guān)的思路,至于能否解決業(yè)務(wù)問題,還需要看場景。

    還是以風險模型為例,如果一個公司要啟動一個新業(yè)務(wù)線,而針對的客群跟當前跑通的場景是不同的,人群差異較大,那么就面臨的業(yè)務(wù)任務(wù)啟動的問題,那么怎么高效的利用歷史積累的數(shù)據(jù)樣本呢,很容易想到遷移學習,而上述講到的領(lǐng)域自適應(yīng)是遷移學習中的一種,可以利用DANN框架進行對抗訓練,一個任務(wù)用于用于進行具體任務(wù)的訓練(對應(yīng)圖中的 label predictor), 而域分裂器(對應(yīng)圖中的domain classifier),其標簽就是用于區(qū)分樣本來源于哪個業(yè)務(wù)線,哪個客群等,通過對抗訓練使得在特征提取器部分能夠?qū)W習到多個客群的本質(zhì)特征,學習到共同特征,以至于域分類器陷入懵逼狀態(tài),安能辨我是雌雄,從而完成遷移學習,解決樣本不足的問題,在預(yù)測是只需要將提取的特征進入具體任務(wù)的分類網(wǎng)絡(luò)即可。

    上述方法聽取來是有效,我以前也實驗過,對于模型還是有提升的,然而,這畢竟是一個思路,沒有具體的落地。

    總結(jié)

    上述兩種方法,其實是兩個不同的思路,只是剛好說到對抗,就聯(lián)想到了DANN。順便說一下,對抗訓練的思維,給我們開啟了一個新的模型訓練的思路,傳統(tǒng)的機器學習方法,重要的目的是根據(jù)目標函數(shù),盡力去擬合即可,使得損失最小,而對抗訓練是盡可能利用額外的信息,解決額外的一些任務(wù),我們常說,模型是很容易偷懶的,給它找個對手,一切都是為了它好。至于對抗訓練方面的內(nèi)容,又要挖坑了,此坑可填。

    參考內(nèi)容:

    Adversarial validation, part one?fastml.com

    總結(jié)

    以上是生活随笔為你收集整理的label y 训练集测试集x_Adversarial validation-对抗验证| 一种解决训练集与测试集分布不一致的方法...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。