1. 程式人生 > >【開車了】9個大資料競賽思路分享

【開車了】9個大資料競賽思路分享


本次分享主要從筆者過去一年和今年上半年的參賽經驗來做講解

後續將會針對目前天池開放的幾個新人挑戰賽推出手把手教你進首頁系列文章

包括賽題詳細思路講解,demo程式碼講解。

開始今天的分享是將之前的比賽做一個壓縮,每個比賽兩頁搞定。

首先介紹下這一年半的戰績,主要參加了9個比賽,有7次進入top10。

成績不好的就沒放上來了哈,主要廣東交通那兩個沒時間去搞,當時在弄穿衣搭配。


從如下幾個方面來做賽題分析,資料,問題,建模,優化。


阿里移動推薦演算法

需要我們根據前一個月使用者的行為資料來預測明天哪些使用者將會購買哪些商品


那麼我們可以順著題意來建模,需要我們預測後一天使用者會買什麼,也就明確了我們的預測目標是這一天的購買情況;

那麼我們可以將target-2當天的購買資料作為訓練集標籤,之前的資料區間提取特徵;

target-1當天的購買資料作為線下驗證集標籤,之前的資料區間提取特徵。需要注意時間區間長度得一致,如果訓練集用的30天,那麼測試集也得用30天的資料

線上就順推一天,target之前的資料區間提取特徵,預測target當天的購買情況。

至於優化問題,就是你和前幾名之間的差距,大體思路大家都差不多,都是一些細節問題。

比如如何選取訓練資料,當時平臺賽線上有將近60E的資料,是不可能全部拿來提取特徵的,需要做一定的抽樣

通過資料觀測可以發現,越靠近target日期的商品越容易被購買,所以可以選擇最近一週出現的商品來構建模型

如何構建有效的線下測評使得不依賴線上結果,有的選手會選擇線下18號打標構建模型,那麼怎麼準確模擬線上的測評機制呢?所以一般是線下17號打標做訓練集,18號做驗證集。19號做線上測試集。


資金流入流出預測

需要根據過去餘額寶使用者一年的資金流動情況來預測後面一個月每天的資金流動情況,需要注意預測的是每天整個餘額寶的資金流動


可以看到餘額寶的資金流動在上升階段之後處於一個平穩階段,所以我們可以選擇平穩階段來建模

一般方法是迴歸和時序分解

特徵中的工作日和節假日是重點


新浪微博互動預測

這個比賽初賽能做到第6完全是運氣(換資料前第4),有點小trick成分

因為博文有權重,所以可以利用評分公式來做一個迭代計算,找出讓得分最大的預測值,也就是最能擬合過去的預測值,相當於一個簡單規則,簡單山寨可依賴,分分鐘出結果


複賽資料量上來了,規則也只能勉強保住前50,主要從使用者特徵和博文特徵入手做一個多分類模型。


淘寶穿衣搭配演算法

這個賽題是15年比較有意思的比賽,不能算是預測問題吧,應該是知識提取和排序問題


所以這個比賽是規則橫行啊,規則吊打模型

後續文章我會詳細解釋每一個規則,並放出demo程式碼(有的規則是全域性搜尋,有點考驗機器配置),供大家參考去挑戰baseline


DC微額借款人品預測,拍拍貸風控演算法

這兩個類似kaggle型比賽,所有特徵已經給出,莫非就是傳說中的調參大賽?


當然不僅僅是調參,還有很多細節優化的地方,這兩個比賽的詳細解決方案在之前的部落格裡都有過分享

另外程式碼也開源了,所以這裡就不再羅嗦


IJCAI-2016

這個比賽相當於推薦演算法,需要考慮冷啟動和熱啟動問題,規則就可以搞定(之前幾條簡單規則也保持過top3好幾天。。。),因為資料量的問題,規則可能不如模型擬合的更好

想要做的更好,必須上模型(主要是分類演算法)



至於菜鳥賽和音樂賽這裡就先不分享了,十分抱歉,因為還沒答辯的。

每參加一次比賽,都有不同的收穫,我個人收穫最大的不是知識,而是認識了一大群很厲害的朋友,從他們身上還能學到更多知識。

另外競賽和實際專案也是有一定的差別,競賽需要追求高分,不可避免的存在過擬合排行榜

而且解決方案一般都比較複雜,實際專案更多的是需要應用起來簡單,穩定,有效就ok

在資料處理方面實際專案可能更加複雜多樣化。