2017 Rladies Kaggle松
https://www.kaggle.com/c/instacart-market-basket-analysis
先上結果:兩天打到0.38 ,目前第一名是0.407。

前一天擔心資料有一些編碼問題,畢竟打比賽當天才拿到資料,
上一次熱身賽出現德文資料造成的Excel讀檔跳行以及辨識不能,所以前一天就慢悠悠的灌Linux虛擬機(後來證實完全沒有用哈哈)
早上到了後和朋友打招呼就隨便亂晃,這場最開始是想要自己打的,也是逼迫自己進步,畢竟有朋友就會想依賴朋友啊。所以開頭拒絕了朋友後就... 就被另一隊招安了XDDD
我:我想要自己打啊,因為你們這隊是大腿,會想依賴哈哈
對方:我們一點也不強啊,志在參加而已啦
我:我超弱的啊,我還很肉腳的帶了一堆參考書
對方:(默默地拉開背包)我們也帶了一堆...
靠杯還帶的和我是同一本XDDDDD
後來才發現這隊早上就敲過我FB問我今天有沒有來參加,說實話很感動,我一直自信不足,也怕拖人後腿這類的,事後很慶幸那個時候我和她們一組,對方也說很開心那天早上有拉到你入隊(她們兩人事先就說好是一隊,我是當天被拉進去),姑且不論這是不是客套話,有同伴互相彌補真的很好。
這場比賽我認為有幾個關鍵點:
1. 資料理解:
資料並不複雜,比的項目也很簡單,但時間就是這麼少!
只有27小時的比賽,你要花多少時間搞懂資料的相互關係?(哪個表接哪個表) 搞懂某些假設狀況是不是有出現?(ex驗證test資料的人是不是有完全沒有買過東西的紀錄?) 所以一開始有個很棒的點子是把主辦單位整理過的資料印出來大家討論。這塊讓我們很快就釐清資料,加上筆可以畫來畫去討論,不用盯著一台電腦螢幕,節約溝通速度(這招後來被後面那組學起來XD)。
2. 分工:
我們三個人來說,我和Shirley比較擅長資料整理、清理等等,紹婷擅長找變數、對數字有感覺,所以就以她的想法來驅動我和Shirley需要做哪些事情。
大家可以心無旁騖地做自己比較擅長的事情,不用去理解不熟悉的部分是比較好的,因為時間就是這麼少~!(當然之後缺乏的部分要慢慢補起來就是了)
3. Kernal:
Kaggle比賽會有人放出他們的程式碼,我們後來參考其中一位大大的再添加我們自己想出來的變數看結果。這招很重要!! 也是這次體悟到很多的部分,從0開始自己做架構不僅時間不足,也因為缺乏經驗很難想出要用什麼演算法接什麼。雖然我們把架構做完發現和這個人做的很相近,代表方向應該是對的。
我們算是第二天才開始看Kernal,第一天就在整理我們的資料(=作架構),這塊多虧了紹婷將資料整理得很好,不過我們有稍微想過要用那些演算法,但因為沒有經驗這塊後來幾乎沒有用到.…..(而且因為資料量很大,跑這些整理滿花時間的Orz) 如果要繼續打下去想使用這個架構看看呢。
第二天發現這個Kernal後有兩個方向進行:
1. 直接修改這個人的程式碼
在過程中添加我們想出來的變數,我在做之前有提交一次這個人的結果,那時還是沒有超越第一名。
2. 將我們的架構套用到這個人使用的演算法
這塊仰賴Shirley做掉了,而且做到一半才發現我們都沒有整理test資料(!),還好她迅速地做完了。我因為熬夜很興奮但注意已經下滑的很嚴重了,紹婷講的部分我都邊寫邊卡住然後再問她…Orz
給大家添麻煩了真是對不起。
第一次試跑運行的時候成績還退後了XDDD
而且時間所剩不多,第一次跑完已經快12點了,比賽只比到13點,外加我已經開始聽不懂中文了...(謝謝紹婷的耐心QQ)
第二次上傳只添加了一個新的變數,就是"這個商品上一次有沒有買過?"
在我腦子不清楚的情況下努力的寫出這個變數,最後運行到12:59分模型才出來。

還好Kaggle頁面都拉好檔案名字也特別取的和之前不一樣,才趕得上在最後一分鐘將資料上傳演算結果....。
一上傳看到出來的結果是0.38,內心那種興奮和滿足讓我第一時間握住了紹婷的手(兩個人都很興奮XD)不停說太好了太好了…。終於在最後關頭突破0.37,和足球比賽最後一秒時射門成功逆轉勝一樣有成就感。同時也很開心自己身邊有這麼多夥伴支持我,那時候想著啊太好了整個人都飄飄然的。
結束後先是聽了Kaggle工程師分享他的心路歷程,這場Kaggle松請到四個人來,唐鳳+西班牙Rladies連線+清大資工的老師,最後一位就是現職Kaggle的工程師。這場應該是最久的一場,也得到很多鼓舞,特別是Kaggle團隊的資料工程師只有2人,這個全世界知名的資料比賽居然只有兩個資料工程師在維持…我有什麼立場去抱怨我的工作呢。
揭曉結果時有點恍惚,\真的達到冠軍啦/
125952分上傳成功,被大家說很像勵志故事XDD

總之是一次很圓滿的結束啊,非常滿足XD
我也是抱持著「志在參加」的心情,能奪冠出乎意料啊,真的很感謝隊友們的鼓勵和支持,對自己也增長了一點信心。另外我大概比較適合一邊打比賽一邊學習演算法,也算是又認識自己一些,以後就朝這個方向進行努力吧。
