給參賽者的 Tips
記得看贊助廠商有誰
今年的贊助廠商共有三家,很明顯就是提供預賽、決賽 Project A 和 B 的資料的廠商。了解廠商說不定能就夠透析這個資料集是屬於哪段製程、哪種產品,從而幫助你在分析的時候,快速地找出關鍵 features,把不重要的做 feature elimination,說不定又可以提升準確率,同時降低 Model 的 Varaince。同時可以讓你在簡報上唬爛,和評審簡單介紹題目在做什麼,他們會很驚訝你怎麼知道這麼多。(其實我們也是在決賽前兩天,去均華電子官網晃晃才猜出是什麼製程XD)
把資料拆分通常可以提升準確率
一般而言,將資料拆分後,模型的準確率又可以再次提升。擁有領域知識,可以讓你找到資料是否是多種製程、產品混和的,通常對拆分資料很有幫助。這次能得獎的主要原因在於將資料切分後,以 Stacking Model 分別訓練預測後,整體成效有顯著的提升。
另外,我們是以 Machine Learning 的方法做的,今年 Project A 大專組特別獎似乎是用 Deep Learning 的方法做出來的,他們採用了 AutoML 類的方法。大部分組別都是使用 XGBoost、LightGBM、AutoML 等硬 train 一發,基本上成效都不錯,因為這些模型都滿 robust 的。但要如何贏過別人,還是得回到對資料本身的理解。
謹慎地做出假設
在提交初賽分析結果前,我們有多個版本的模型,有直接硬 train 一發的 stacking model,也有花數百小時大量分析做出很多假設後調整的模型。我們非常苦惱,也花不少時間和老師討論要如何選擇。雖說前者比較少假設,但因為後者所花費的時間是前者的數百倍,提交前者的話就代表後者的一切都白費了,心裡有所不甘。最後老師開示:前者看起來比較沒那麼多假設,應該比較 general。所以就選擇前者了。
但其實我有點小難過。後來想想,分析也有沈沒成本,已經做的分析是無法回收的,所以你所花費的時間不應該作為選擇模型的參考依據,應該從更加客觀的層面探討。真難過嗚嗚嗚
比賽可以改善的地方
總結:相較於其他數據分析競賽,這個比賽有著打趴其他比賽的獎金,卻離真正的數據分析比賽還有段差距
問題有以下四點
- 分析環境不友善
- 雖說產學合作,但實際上兩者分治,無法溝通交流
- 評比方式不夠透明
- 主辦單位在公告得獎團隊的單位時不夠細心
先說分析環境,真的是扯。比賽方為了避免資料外流,和國網中心合作開了一個沒有對外連網的伺服器給我們用,也把分析資料放在裡面,要我們透過 command line 和它連接。
然後重點來了,CSV 資料沒有辦法拿出來看,而且就算在伺服器上畫圖表,也沒有辦法看到。也就是說,你在做分析的時候,完全就只能透過敘述統計量檢視資料,還有直接在 command line 畫面上顯示有著一百多個欄位的表格,非常違反人性。
如果這個比賽這麼擔心資料外流,那我覺得這資料根本不應該拿出來比賽。以這麼保護的形式讓參賽隊伍進行分析,反而讓比賽團隊難以發揮實力,也會讓真正的分析強者卻步。
再來,比賽單位完全沒有說明此資料的來源、製程、產品等資訊,讓我們要花費大量時間去猜測,除了浪費時間外,也很難針對資料做出什麼有意義的解讀。比賽主辦方是媒合產、學的角色,應該要讓兩造真正做到產業知識、分析技巧上的交流,不僅僅是將資料集交給參賽團隊,如此學生無法提升對產業的認識外,企業也無法在交流過程中找出改善的關鍵方法。
若主辦擔心影響比賽的公平性,也可以在比賽培訓營時,請具有產業知識的人來統一介紹資料集,而不是照著資料規格書念過去而已。
說到公平性,國內外常見的數據分析比賽往往會公布 Testing Data 的準確率 (像這次是 RMSE)[1],但此比賽卻不然。更甚者,此次比賽的 RMSE 是針對三個預測值取權重後平均的,卻沒有公布權重,讓人難以信服比賽的公平性。另外要提醒未來的參賽者,比賽除了看你的 RMSE 外,也會看你報告的品質,所以如果覺得有機會,還是要好好準備。
最後,因為我們團隊有兩位同學及兩位指導老師,除了隊長是台大資工外,其他人包含老師都是清大工工,頒獎時卻直接寫本團隊的單位為台大資工,沒有提及清大工工,發布出去的新聞稿亦同。指導老師在看完新聞後覺得非常莫名其妙,我也還要解釋很多,著實尷尬。希望比賽主辦為來能更加用心,避免這種窘態發生。
[1] 像是 Kaggle 等比賽,甚至還會公布部分 Testing Data 的準確率供比賽團隊參考
致謝
再次感謝我的隊友,在比賽時和我一起吐槽各種小事情;以及兩位老師的支持,和老師們討論總會讓分析過程更加踏實。也感謝比賽贊助商之一的均華科技石總經理和黃協理特地與我們深度介紹產業,與業界一席話勝過千萬書。