超參數調整就跟人生腳步調整一樣,漫漫長路沒有人能告訴你正確答案…
嗨~我是雪莉,歡迎一起踏上探索旅程。
最近在如火如荼地進行團隊專題,我們的主題是透過機器學習模型,讓使用者輸入產品與客戶特徵,來預測該產品在特定客群中是否可能被推薦。第一次接觸這個領域,我抱持著實驗精神,一邊做一邊學!總算也慢慢了解機器學習是怎麼回事。
專題的發想其實來及生活。日常中充滿了大大小小的消費行為,我們希望透過機器學習來分析與預測消費者心理。我們的資料集取自 Kaggle,總共有一百多萬筆,每筆資料都記錄了消費者的特徵、評論與產品屬性。拿到資料後,第一步就是了解各欄位的意義與型態,接著刪除不必要的欄位、填補空值、進行編碼與維度轉換。完成資料前處理後,就進入了模型訓練的階段。
首先模型的選擇。這次我們鎖定了三個選項:
- 隨機森林 (Random Forest):核心是集成學習(Ensemble Learning),透過建立多棵決策樹並取其預測的平均值(回歸)或多數決(分類)來得到最終結果。能降低過擬合(Overfitting)的風險,因為每棵樹都是獨立生成的,因此整體模型表現非常穩定,且對資料的雜訊不那麼敏感。
- XGBoost:屬於梯度提升機(Gradient Boosting Machine)的一種,透過迭代方式讓每一棵新樹修正前一棵樹的誤差,逐步擬合殘差以減少錯誤。同時加入正則化技術,能讓模型更平滑,並提高對抗雜訊與防止過度擬合的能力。
- LightGBM:和 XGBoost 一樣是梯度提升機,但在計算效率上有顯著的優勢。透過獨特的基於直方圖(Histogram-based)演算法和葉子生長策略(Leaf-wise Tree Growth),大幅減少了訓練時間和記憶體消耗,特別適合處理龐大資料集。
接著是指標的設定。由於我們要預測的標籤正負比為6.5:3.5,屬於不平衡資料集,如果僅用 accuracy 來評估,很可能會高估模型表現。因此選擇了 balanced accuracy、F1-macro 以及 AUC-ROC 這幾個指標,來理解模型整體的效能。
- balanced accuracy:能讓正負樣本的準確度都有機會被公平呈現,避免少數類別被忽略,著重在各類別預測準確率的平衡。
- F1-macro:則適合處理分類數據不均衡的情境,著重在綜合考量各類別的精確率與召回率,避免模型只專注於預測樣本數最多的類別。
- AUC-ROC:提供了模型在不同閾值下的整體表現,著重在整體模型的穩定性和區分能力。
再來再來...就進入了最關鍵也最耗時的階段:調整參數!調整參數需要反覆測試與比較。例如,max_depth 決定了模型的複雜度,learning_rate 會影響學習的速度與效果,而各個參數之間也可能互相影響。嘗試不同組合後,只有少部份時間會開心地發現分數大幅提升,大多數時候是原地不動,甚至是退步。這個過程真的非常考驗耐心啊~~
沒有唯一正解,更多時候是不斷探索去找出能進步一點點的組合。
其實這句話不僅適用於機器學習,放在人生裡似乎也說得通呢!(淚)
詳細的調參過程,我想留到下一篇再和大家分享。專案進行到這裡,我更理解了整個資料流的流程,也覺得生活探索就像在執行一個專案:不斷嘗試、修正,再根據結果調整方向。有時能順利往前,有時則需要回頭重來。
如果你也剛好走在轉變的路上,別忘了多給自己一些耐心和信心。期待下次和你分享,這段探索之旅的新風景~

















