曾竑勳
理工學院
資訊工程學系
這次參與 Kaggle 競賽的過程,讓我比較實際地接觸到機器學習專案從資料理 解、特徵處理、模型訓練到提交結果的完整流程。㇐開始我原本以為這類比賽 主要就是把資料丟進模型,訓練完產生答案就好,但真的做下去才發現,前面 的資料處理反而是最花時間的地方。像這次資料不是單純的 train.csv 和 test.csv,而是每㇐口井都有自己的資料檔,還要從檔名建立 well id,再依照 row index 對應 sample submission 裡面的 id。這讓我學到在處理真實資料 時,不能只看表面欄位,還要先弄懂資料結構和比賽規則,不然模型還沒開始 訓練就會卡住。
在實作細節上,我也學到很多原本不熟的部分,例如 Kaggle Notebook 的提 交限制、Internet 必須關閉、submission.csv 必須輸出在正確位置,以及 Save Version 要選 Save & Run All 才會被系統接受。這些看起來好像只是平 台操作,但實際上如果沒有處理好,就算模型有跑出結果也沒辦法成功提交。 程式方面,我嘗試做井內順序特徵,像是 row_norm、lag、diff、rolling mean,讓模型不只是看單㇐資料點,而是能參考同㇐口井前後的變化。後來 遇到記憶體不足的問題,才發現資料量太大時不能直接把所有資料全部合併後 再做特徵工程,必須改成比較省記憶體的做法,例如逐口井處理、抽樣訓練資 料,或只保留真正需要的測試列。這些錯誤雖然㇐開始很煩,但也讓我更理解 大型資料處理時,效率和穩定性其實跟模型準確率㇐樣重要。
這次經驗對我最大的幫助,是讓我在解決問題的邏輯上變得比較冷靜。以前遇 到錯誤可能會先覺得是不是整份程式都壞掉,但這次我學到要㇐層㇐層拆開 看,先確認資料有沒有讀到,再確認欄位名稱,再確認 submission 有沒有產 生,最後才去調整模型。像是從找不到資料路徑、變數沒有定義、Notebook 沒有輸出 submission.csv,到後來記憶體爆掉,每㇐個錯誤其實都不是單純改 ㇐行就好,而是要理解它背後真正的原因。這讓我覺得自己的除錯能力有進 步,也比較能面對專案中㇐直出現問題的狀況,不會只停在抱怨或重跑,而是 會去想有沒有更穩的流程。
這次競賽也讓我感覺到,真正的能力不是只會套模型,而是能不能把問題拆 開、把資料整理好,並且讓整個流程可以穩定執行。雖然最後排名和分數還不 是最理想,但我覺得完整走過㇐次競賽流程本身就很有收穫。至少我更清楚知 道自己在哪些地方還需要加強,例如資料前處理、模型調參、記憶體管理和提 交規範。這些經驗之後不管是做專題、研究,或是接觸其他 AI 與資料分析任 務,都會變成很實際的基礎。