第五屆百度西安交大大數據賽‘划水’隊方案 初賽 第9名 複賽 第23名

第一次參加該類型的比賽,發現我們還是和大佬們的差距很大,要學習和提高的地方很多,比賽中的數據分爲圖像數據和訪問數據,由於兩邊都是剛剛入門,爲此都沒有改得特別好的成績,最終未能進入決賽,對一些經驗進行總結吧。
複賽思路圖如下:
在這裏插入圖片描述
在複賽中,我們前期花了很多的時間去做單模型的調參和做其他一些無用的實驗,浪費了很多的時間來驗證這些方法(之後我會簡單地把我們做了沒有顯著效果的實驗提出)。在比賽後期發現該比賽的上限仍然在如何提取特徵上,可以說特徵提取的好決定了整體模型的上限,而不同的算法只能去逼近這個上限。而圖像在單網絡進行改進的提高仍然有限,我們單模型最高僅有0.565,但是進行模型堆疊很容易達到0.58,進行二次堆疊實際上已經達到了0.6以上了,由於圖像對GPU的要求太高了,做一次實驗需要很長的時間,所以沒有堆疊過多的模型(不知道思路對不對,這隻代表個人看法,歡迎大佬指點)

一、訪問數據

1、思路
訪問數據之前在github上有個開源代碼用將訪問數據轉換成矩陣的形式去學習,發現這種方法並沒法獲得很高的得分,特徵工程還是提分的一個主要途徑。爲此我們提出了提出了共計91個特徵,大概將其特徵分爲以下8個分組
1)用戶信息user_F
2)總數信息sum_F
3)時間佔比信息hour_ratio_F
4)時刻信息hour_F
5)時長信息hourlong_F
6)月份佔比信息mouth_ratio_F
7)月/假期信息mouth_F
8)周信息week_F

2、對比與總結
對特徵做了不同的組合訓練了10個模型,得分爲0.715。與大佬分享的方案對比,我們的方案基本上只是考慮了時序特徵,極少考慮用戶行爲特徵,也沒有考慮不同建築物之間的相鄰關係,同樣在特徵的表徵方面由於不清楚何種數據變換是有利於模型學習的,所以數據變換上基本上只有一種模態。
具體的特徵提取可見後面github上分享的代碼。

二、圖像信息

由於初賽後策略選擇失誤,我們認爲分數提不上去是因爲圖像特徵上沒有提高上去,這一個月中大部分時間都用於圖像上的實驗和提高,也做了很多沒有顯著效果的實驗,總結下在複賽期間的一些實驗。

1、思路
圖像通過兩方面進行處理,一方面將圖像裁剪爲32x32的圖像,然後通過非預訓練模型從零開始訓練卷積層Seresnet164,將全連接層換爲Xgboost,與卷積層相比可以提高3個百分點。另一方面將圖像通過Seresnext101 + Efficientb5 + Seresnet152爲骨幹網絡聯合訓練的網絡,並最後用全連接層進行連接,最後得到了0.58左右的得分,兩邊模型融合得分超過0.6。

2、所做未有顯著效果實驗
1)放大分辨率或者超分辨率(訓練時間過長)
2)class_weight
3)Focal loss
4)直接從噪聲(數據量極低的訪問數據和黑圖)進行學習
5)局部描述子
6)語義分割學習
7)TTA

3、有一定效果的實驗
1)改變學習策略
由於數據集原因用adam等自適應學習率測量很容易學習率下降的太快而局部收斂,效果不如加上Momentum的SGD,後發現Adadelta的收斂效果較好。
2)將全連接層替換
在這裏插入圖片描述
做了一些替換實驗包括全連接層的通道數改變,總結了以上幾種較有效果的方法。
3)選用合適batchsize

三、模型融合

融合的方法和初賽一樣,都是通過跑出各模型的概率後通過xgboost進行融合,與之前不同的是在這次實驗中我們通過融合將原來樣本的特徵也作爲學習的依據,這樣大概能提高0.5個百分點,可能是再次學習些原來沒有訓練的樣本可以學習到一些不一樣的特徵。
由於實驗原因沒有去嘗試多折,效果可能會更好。

附上github鏈接:
https://github.com/H11zang/URFC-2019

些許感想
感謝百度和西安交大舉辦了這次比賽及各位在羣上和github上分享的大佬,入門小白學習到了很多。作爲剛剛轉入該行的兩個準研,這種兩邊都要入門學習的比賽難度還是挺大的,雖然最終由於自己的知識儲量和工程經驗不足,很多想法沒有得到實現,也比較遺憾沒有進入決賽。感謝我的隊友一起奮鬥了整個7月,在不斷的嘗試和失敗中豐富經驗。若有機會,來年再戰

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章