【特徵工程全攻略】模型不準?問題藏在資料裡!從數據清洗到特徵轉換的黃金法則 (中級)

更新 發佈閱讀 4 分鐘

很多人誤以為 AI 規劃師的工作就是每天鑽研高深的演算法,但真相往往比較骨感:我們有 80% 的時間都在跟「髒資料」搏鬥。

一、 數據藍圖:先看清楚你的「礦石」長什麼樣

在動手處理前,得先搞清楚手上的資料屬於哪一類。這決定了後續要動什麼樣的手術。

raw-image
  • 結構化數據: 就像 Excel 表格或 SQL 資料庫,每一列、每一行都整整齊齊。這是最方便分析的「乖寶寶」。
  • 半結構化數據: 像是 JSON 或 XML 檔案,雖然有標籤(Tags)告訴你這欄是什麼,但格式比較靈活,不會死板地對齊。
  • 非結構化數據: 圖片、影音、社群媒體的留言。這類資料最隨性,需要透過深度學習或 NLP 技術先轉化,模型才學得動。

這些資料的來源也很有學問。除了自家產品產生的紀錄,有時得靠網路爬蟲去抓取公開資訊,或是透過 API 與其他軟體系統交換數據。


二、 煉金第一步:數據清洗的排毒程序

拿到資料後,別急著丟進模型。沒經過清洗的資料就像帶泥的礦石,會讓模型「消化不良」。

1. 遺缺值的抉擇

資料欄位空白是常態。你可以選擇直接刪除,但這可能導致樣本量大減。聰明的做法是填補:利用平均數或中位數。

  • 規劃師筆記: 如果資料分佈很不平均(有極端值),請優先選擇中位數,才不會被那些「有錢人」拉高了整體的平均水平。

2. 離群值的處置

那些遠離群落的數據點,有時是輸入錯誤(例如年齡 -5 歲),有時則是深具意義的特殊訊號(例如金融詐欺的大額交易)。

  • 判斷準則: 透過箱形圖 (Box Plot) 找出異常點。如果確定是雜訊,就修正或剔除;如果是珍貴的異常訊號,則要保留並單獨標記。

三、 特徵轉換:把人類語言翻成機器的數字

AI 本質上只聽得懂數字。當資料裡出現「城市」、「顏色」或「等級」時,得幫機器做翻譯。

這裡有幾招常用的翻譯術:

  • 標籤編碼 (Label Encoding): 直接給類別編號(台北=0、台中=1、高雄=2)。適合有「順序感」的資料,如:初級、中級、高級。缺點是模型可能會誤以為 2 比 0 大。
  • 獨熱編碼 (One-Hot Encoding): 為每個類別開一個專屬欄位(只有 0 跟 1)。適合「沒有大小之分」的類別,能避免模型產生錯誤的權重判斷。
  • 目標編碼 (Target Encoding): 當類別太多(例如有幾百個鄉鎮市區)導致欄位爆炸時,改用該類別對應預測結果的「平均值」來代表它,能有效精簡空間。
  • 分箱 (Binning): 把年齡這類連續數字切成「青年、中年、老年」等區間。這能增加模型的穩定性,對抗極端值的偷襲。

四、 生存法則:特徵尺度的統一

這是新手最容易踩坑的地方。想像一下,模型正在處理兩個特徵:「年齡(0-100)」與「年薪(0-1,000,000)」。 如果不縮放,年薪的微小波動會完全蓋過年齡的變化。這就是「尺度霸凌」。

這會造成三個慘烈結果:

  1. 距離計算扭曲: 靠「距離」判斷相似度的模型(如 KNN 或 SVM),會完全被大數字牽著走。
  2. 梯度下降不穩: 模型在更新權重時會像酒駕一樣劇烈震盪,遲遲無法收斂到最佳解。
  3. 正則化偏差: 為了防止過度擬合的「處罰機制」,會不公平地針對數字小的特徵,讓它們失去發言權。

解藥如下:

  • Min-Max 正規化: 把數據通通壓縮到 0 與 1 之間。
  • Z-Score 標準化: 將數據轉為平均數 0、標準差 1 的分佈。確保每個特徵都在同一條起跑線上公平競爭。

結語:AI 規劃師的真實價值

數據處理不是簡單的體力活,而是一連串的決策。你要判斷何時補值、何時轉碼、何時縮放。這些前置作業做足了,後面的模型才能跑出真正的預測威力。

面對一個表現不佳的模型,先別急著更換複雜的演算法。回過頭去檢查你的數據煉金室,答案往往就藏在那些被忽視的原始特徵裡。

留言
avatar-img
留言分享你的想法!
avatar-img
iPAS AI 自學路|備考軍火庫 & 白話筆記
30會員
10內容數
40 歲非本科大叔的 iPAS 備考軍火庫。 這裡不談艱澀理論,只提供「考前速記表」、與「白話考點解析」。 我擅長將複雜的技術名詞,轉化為轉職者也能秒懂的語言。 搭配我的 YouTube 頻道服用,讓你的通勤零碎時間,變成最高效的得分時間。