只要你對資料科學或機器學習有興趣,想必聽過 “Kaggle” 這個資料科學競賽平台,但是,你知道到底為什麼資料科學家們都熱衷於參加競賽嗎?在這篇部落格文章,筆者將以 個人參賽的經驗 與你分享,參加資料科學競賽究竟能獲得什麼。
這篇文章適合以下幾種讀者:
- 對資料科學很有興趣,想要為了找工作累積經驗的人
- 曾聽過 Kaggle、也想參加機器學習競賽,但少了點熱情的人
- 對 Kaggle 做過一點功課,但還不知道怎麼開始的人
如果你符合任何一項,以下的內容將能幫助到你,帶你了解參加資料科學競賽的好處、以及如何入門準備競賽。
目錄
資料科學競賽是什麼?
資料科學競賽中,主辦單位通常會提供要分析的資料、還有分析議題,議題內容無遠弗屆,包括推薦系統、影像辨識、語意分析、異常偵測等等。大多時候,參賽者分析的方法不會受到太嚴格限制,只要是使用主辦單位的資料集、並且分析目標符合主辦單位要求即可。
最廣為人知的競賽方法,是讓參賽者在某個資料集中,依照分析目標算出預測值、提交給主辦單位的系統,只有主辦單位的系統知道正確答案,系統只會告訴參賽者預測值與正確答案相差多少,差異越小、分數越高、排名也就越高。
目前最熱門的資料科學競賽平台是 Kaggle,而筆者的參賽經驗以國內舉辦的競賽為主,在本文後半段我將分享 更多值得一看的參賽平台。
大多資料科學競賽會提供給前幾名競賽獎金、或者高額獎品,如果是 Kaggle 上舉辦的國際級賽事,十萬台幣以上的獎金相當常見。但是,如果你第一個想到的好處是競賽獎金,我可能會告訴你「升官發財請走別路」,筆者覺得要擠到最前面、拿到獎金,真的很不容易。
(´;ω;`)
以下我會和你分享三個,就算沒有拿到獎金、還是能從資料科學競賽獲得的好處。
參賽好處 1:累積資料分析的經驗
經驗使你在第二次犯相同錯誤時及時發現
對我而言,參加資料科學競賽最大的收穫是:動手玩資料、累積分析經驗。
當我們提起著名的 Kaggle 競賽,常常先想起的是機器學習、深度學習、或者人工智慧這些酷炫關鍵字,但實際上,參加資料科學競賽練習到的技能可不只有演算法建模。
資料科學是多個步驟環環相扣,從引入資料、整理、清理、探索、到建模與輸出結果,只要任一個小地方出錯、都可能鑄成大災難。參加資料科學競賽,你可以練習到的技能包括分析過程的每一個步驟,甚至,很多競賽的得勝關鍵還不是找出最先進強悍的演算法、而是有洞見的資料處理方法。
例如,筆者好豪在 2021 年參加的 Tomofun 狗音辨識機器學習競賽 中,前幾名參加者的得獎關鍵就在選擇並引用外部資料集還有 資料增強 等等,實驗出有用的資料處理技巧,比開發複雜演算法的影響力更大!
究竟哪個步驟是競賽得勝關鍵?每場比賽都不一樣,需要上場親手實驗才知道。時常參加比賽、反覆練習,並不會讓你成為一拿到資料就能 100% 無失誤、精準預測的高手,但是比賽過程累積的經驗,將幫助你在遇到任何跟資料有關的困難時,能更快找到問題點、並且懂得如何解決。
參賽好處 2:發展求職用的作品集
當你是資料科學的新手,在業界或學界完成第一份分析專案之前,找工作的時候要怎麼說服對方自己的分析能力足以勝任工作?軟體工程師可以用 GitHub 上的 開源軟體開發 當作能力證明,那資料科學家呢?我相信很多有志於進入業界成為資料科學家的同學,會聽到這種建議:「參加資料科學競賽,把得獎紀錄當作找工作給面試官看的作品集」。
這裡希望讀者注意的關鍵字是「得獎紀錄」,現實是,如果你沒有在 Kaggle 拿到 銅牌 以上、或者在台灣的較小規模比賽拿到前 5 百分比的名次,很難說服面試官自己「成績優異」。不過,沒有最亮眼的競賽成績、就完全不值得放入作品集嗎?也不全然是。
重要的是,作品集要秀出你在競賽中遇到的困難,以及你如何找到方法超越自己。能讓對方從中感受到你是追求進步、懂得解決問題的人,就會是有價值的作品集。
筆者好豪不是打比賽的專家,到撰文的 2021 年為止還沒有在 Kaggle 拿過高名次、只有幾次國內競賽名次能往前擠。然而,我在找工作面試中,也多次讓面試官看到我的作品、與我討論我如何突破競賽中的困難點,並成功透過分享競賽經驗展現分析能力、通過該面試關卡。因此,在我的求職經驗中,只要將競賽資歷妥善設計成作品集,即使成績不是頂尖,還是對找工作很有幫助。至於作品集的該如何設計,好豪未來會在另一篇文章分享自己的做法。
參賽好處 3:認識志同道合的戰友
參加比賽的魅力之一,是有機會認識同樣熱愛資料科學的朋友。競賽中,大家都面臨同樣的挑戰,你在解題過程中遇到過大大小小的麻煩,一定有人跟你同樣苦惱,在競賽結束之後,和大家交流彼此是怎麼處理這些挑戰、切磋建模還有資料處理方法,會讓自己的思考方式飛快成長,還可以因此結交新朋友!
筆者好豪在 2019 年參加的 信用卡盜刷分析競賽,比賽過程中一直被類別型資料造成的 Feature 太多 問題所苦惱,比賽結束後的交流會中,我聽到前幾名隊伍分享也遇到相同的問題、並且是用 Frequency Encoding 這項技巧解決,我便興奮地向他們討教。在交流中,我除了學到不少新知識以外,我也分享自己的分析做法、在討論之中交到了幾位新朋友,之後的 幾項競賽,我們還成為了戰友一起參賽。
怎麼開始資料科學競賽?
若是從來沒參加過資料科學競賽、或者是沒有分析專案資歷的初學者,要起步真的不太容易。在資料分析的每個步驟,都有很多細節要注意,每個細節又會延伸出許多問題,造成一種「學不完」的無力感。在這種情況,筆者好豪覺得從過去競賽中觀摩冠軍的做法,是最有效率開始學習參加資料科學競賽的方法。
本文一再提到的 Kaggle,不只是一個舉辦競賽的平台,更不斷累積高手分享的分析經驗、成為廣大的學習資源。在 Kaggle,每個競賽的 “Code” 頁面,你可以直接從程式碼學到如何處理資料與建模;在 “Discussion” 頁面,你可以了解其他專家是怎麼思考問題並討論出解法;還有參賽者為大家整理出各項競賽的得獎者解法,你可以在 一個頁面 內全都找到!
Kaggle 教學書籍
要是你覺得 Kaggle 平台上的內容玲琅滿目、眼花撩亂,筆者推薦你閱讀《Kaggle 競賽攻頂秘笈》這本書,此書為正要參加資料科學競賽的讀者指引方向,書中整理了歷年資料形式為「表格資料」的競賽,集結了 Kaggle 競賽得獎者的經驗、萃取出拿高分必備的技巧,減少讀者在 Kaggle 的茫茫大海中摸索的時間。除了對建模、分析有幫助的知識以外,本書最具價值之處是寫出競賽所需、但是一般數據分析書籍不會著墨太多的要點,例如模型評價、驗證方法等等。
我閱讀完《Kaggle 競賽攻頂秘笈》後,特別喜歡此書的兩項撰寫特點:
- 作者不只附上 Python 程式碼,還會寫出詳細註解與圖表輔助,讓讀者清楚學習計算流程
- 每項介紹到的技巧,作者會細心地附註相關的 Kaggle 競賽連結,讓你了解該技巧能發揮力量的場景有哪些
想穩穩起步準備比賽的話,《Kaggle 競賽攻頂秘笈》這本書值得認真閱讀。
資料科學競賽平台列表
除了 Kaggle 以外,還有更多可以參加資料科學競賽的管道,筆者在此也與各位分享我所搜集的列表:
- T-Brain AI 實戰吧:好豪曾多次參與的台灣競賽平台
- AIdea ⼈⼯智慧共創平台:工研院主持的台灣競賽平台,學術界與業界議題都有
- MLContests.com:整理出近期國際賽事的好用網站,推薦你放進書籤隨時看看
- RecSys Challenge:推薦系統分析競賽,每年網址都不同,請讀者自行搜尋
- WSDM Cup:國際級資料探勘競賽,也是每年競賽網址都不同
- KDD Cup:國際級資料探勘競賽,也是每年競賽網址都不同
結語:想成為資料科學家?開始比賽吧!
參加競賽是讓自己試一試資料科學身手的好方法,能讓你累積分析經驗、化為求職作品集、還可以在競賽中認識高手、切磋成長。一旦你了解自己想嘗試資料科學競賽的理由,接下來你只需要:
找個有興趣的比賽,捲起袖子參賽就對了!
在此也感謝旗標出版社,提供《Kaggle 競賽攻頂秘笈》試閱,我讀完後,認為這是一本對競賽新手跟老手都有幫助的工具書。
註記:
筆者並不認為參加競賽是學習資料科學的最佳或完美管道,資料科學競賽也有一些令人詬病的地方,例如 Overfitting Leaderboard 或 Data Leakage 這些「怪」技巧,可以幫助你在競賽得高分、但是資料科學實戰專案中根本不可能使用。然而,對資料科學的初學者而言,這不會是首要顧慮,還是可以放心投入學習。
如果你想看看好豪參加資料科學競賽的實戰、還有苦惱卡關的經驗,可以在 這個頁面 找到競賽相關文章。也歡迎追蹤 好豪的 Facebook 粉絲專頁,我會持續撰寫資料科學文章,與你分享!