【数据竞赛】kaggle竞赛宝典-样本组织篇!
作者:?塵沙杰少、櫻落、謝嘉嘉、DOTA、有夕
樣本篩選、樣本組織之樣本組織部分
這是一個系列篇,后續我們會按照我們第一章中的框架進行更新,因為大家平時都較忙,不會定期更新,如有興趣歡迎長期關注我們的公眾號,如有任何建議或者希望加入一起完成這一系列的,可以加微信:13951852215 一起交流討論,幫助更多的數據挖掘/數據競賽愛好者。目前這是公益性質的,我們會在對應篇章中加入貢獻者的ID或者名字表示感謝。
1. kaggle競賽寶典-競賽框架篇!
4.1?kaggle競賽寶典-樣本篩選篇!
為什么需要進行樣本的組織
樣本組織,乍一看這個詞可能會有些許陌生,我們舉一個銷量預估的例子,就很容易理解了:
我們希望預測未來兩周商店每一天的商品銷量,這樣可以方便商家進貨,降低預估不準帶來的貨物囤積或者缺貨供應不足而帶來的損失,現在呢,我們的商家有著歷史上過去兩年每一天的各個商品的銷量信息,那么該如何建模呢?
因為我們無法拿到除了星期節假日等信息外無法獲取更多的未來兩周的信息,那么這個時候我們就只能基于過往預測將來。這個時候數據樣本的組織就會顯得非常重要。我們需要思考標簽數據如何進行構建,特征從哪些數據中進行構建。
這個時候大家再看欺詐反欺詐,圖像分類,文本分類等的問題,就會發現這兩類問題存在非常大的區別,后者的樣本和數據已經準備就緒了,我們不需要再去思考標簽如何進行構建,原始特征數據如何設計等問題。
何時&如何進行樣本組織?
涉及到樣本組織的問題最為常見的就是與時間序列建模相關的問題,例如各大電商或者視頻網站的搜索與推薦等問題,商店的銷量預測,股價的預測等。那么如何進行樣本的組織呢?
1. 基于最小單位的滑動建模
什么是最小單位呢?此處我們將其與預測問題相關聯:
如果我們的預測問題是預測未來N天商店每一天的銷量,那么這邊最小的單位就是1天的銷量;
如果我們的預測問題是預測未來N個月店鋪每個月的銷售額,那么這邊最小的單位就是1個月的銷售額;
如果我們的預測問題是預測未來N個小時每個小時的人流量,那么這部最小單位就是1個小時的人流量;
也就是說我們把給定的問題劃分為了N個小問題,這樣我們每次建模的時候就僅僅只需要拿出最小單位的數據來當做標簽。例如,我們預測未來N天的每一天的銷量,下面每個小的圓圈表示一天的情況,我們再預測未來第二天的銷量的時候,樣本的組織形式就可以按照下面的形式進行:
使用第的數據作為標簽,使用的數據進行特征的構建;
使用第的數據作為標簽,使用的數據進行特征的構建;
使用第的數據作為標簽,使用的數據進行特征的構建;
依次類推;
這種建模是非常通用的,基本所有的問題都可以按此類方式進行建模。但問題也較為明顯,我們需要構建多個模型進行訓練和預測,會非常耗時。
2. 基于測試組的滑動建模
什么是測試組?我們舉幾個例子:
如果我們的預測問題是預測未來N天商店每一天的銷量,那么這邊測試組就是N天商店每一天的銷量;
如果我們的預測問題是預測未來N個月店鋪每個月的銷售額,那么這邊測試組就是N個月的每個月銷售額;
如果我們的預測問題是預測未來N個小時每個小時的人流量,那么這部測試組就是N個小時每個小時人流量;
和基于最小單位的滑動建模不同,我們把給定的問題劃分為了一個問題,如下圖所示,我們預測未來3天的每一天的銷量,下面每個小的圓圈表示一天的情況,我們再預測未來第N+1到第N+3天的每一天銷量的時候,樣本的組織形式就可以按照下面的形式進行:
使用第天的數據作為標簽,使用的數據進行特征的構建;
使用第天的數據作為標簽,使用的數據進行特征的構建;
使用第的數據作為標簽,使用的數據進行特征的構建;
依次類推;
這種建模也是非常通用的,基本所有的問題也都可以按此類方式進行建模。這么做我們只需要訓練一個模型,相較于基于最小單位的滑動建模,這種樣本組織的方式會更為通用一些,但是也存在些許問題,因為我們每次訓練的樣本會成倍變多,所以需要耗費更多的存儲資源。
3. 基于周期形式的建模
上面兩種形式的建模很多時候可以拿到不錯的效果,但也存在一些問題,它們都忽略了周期性,比如我們預測的是本周三到下周三每天商店的銷量,而我們在使用上面的方式進行樣本組織的時候則往往會很隨意的將某個周四到下個周四的數據當做標簽去訓練,這么做在預測的時候會帶來較差的效果,尤其是在數據集的周期性較為顯著的情況下。那么這個時候,我們基于周期形式的建模則往往可以幫助我們解決此類問題。
如下圖所示,我們預測未來一周中每一天的銷量,下面每個小的圓圈表示一天的情況,我們再預測未來第N+1到第N+7天的每一天銷量的時候,樣本的組織形式就可以按照下面的形式進行:
使用第天的數據作為標簽,使用的數據進行特征的構建;
使用第天的數據作為標簽,使用的數據進行特征的構建;
使用第的數據作為標簽,使用的數據進行特征的構建;
依次類推;
這種建模可以很好地考數據集合中存在的周期性,在過往的諸多競賽中也都取得了不俗的效果,比上面的兩種策略都要好出很多,在天池的地鐵賽建模中這種樣本組織方式也取得了不俗的效果。
大家也發現了,基于周期形式的建模也可以融入基于最小單位的滑動建模以及基于測試組的滑動建模這兩種樣本組織的思想,形成兩種新的樣本組織形式。
4. 其它注意事項
大家如果仔細閱讀過往幾年的相關的涉及到樣本組織的競賽就可以發現,基本90%左右的獲獎方案都可以劃分為上面介紹的三種形式中的某一種或者幾種的組合。此處給出一些需要注意的事項或者上分的細節。
一定要考慮周期性!例如預測未來一周每個小時的地鐵流量,那么建模的時候最好是做好標簽的對應,預測星期三早上8點的地鐵流量,那么建模的時候將每周三早上8點的數據作為標簽;
盡可能不浪費數據:有的時候我們的任務是預測未來8天的銷量,那么建模的時候我們會習慣性地以7天為一個周期進行建模,有的時候我們發現訓練集最后6天的數據無法形成一個周期,這個時候就會將這些數據丟棄,這么做就浪費了數據,這個時候可以將最后6天也作為標簽,不需要追求完整的一周數據;
未來數據也并不是全都不可以獲取:樣本組織的時候,我們都習慣性地盡可能不考慮未來的數據,但諸如星期,節假日等信息都是非常明確的,還有距離當前的時間等信息都非常有價值;
小結
在涉及到時間相關的問題中,樣本組織的好壞對于模型帶來的影響是巨大的,本小節我們介紹了樣本組織的三種常見的實用的樣本組織策略,以及很多需要注意的細節。
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯 本站qq群704220115,加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【数据竞赛】kaggle竞赛宝典-样本组织篇!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【论文解读】VarifocalNet:如
- 下一篇: 如何在搜狗浏览器更换页面字体?搜狗浏览器