距離型模型最關鍵的前處理是什麼?
原題
在建構以距離為基礎的機器學習模型(如 KNN、SVM)時,下列哪一項資料前處理方式最為關鍵?
白話
KNN 和 SVM 這類模型的核心都依賴「計算資料點之間的距離」。在建構這類模型之前,資料要先做一些前處理。
問你:對距離型模型來說,哪一項前處理最關鍵?
先自己選一個答案,再看完整解析。
一句話總結
距離型模型(KNN、SVM)最關鍵的前處理是特徵縮放(Feature Scaling):把所有特徵的數值範圍調成差不多大,避免數值大的特徵主導距離計算、數值小的特徵被完全忽略。
情境
先感受問題:年齡和年薪的尺度差一萬倍
玉山銀行的資料科學師要用 KNN 預測信用卡申請人是否違約,特徵包括:
- 年齡:25 歲(範圍大約 18-80)
- 年收入:1,200,000 元(範圍大約 0 到幾千萬)
- 信用評分:750 分(範圍 300-850)
- 負債比:0.35(範圍 0-1)
KNN 要計算申請人 A 和 B 之間的「距離」,看哪些歷史案例跟 B 最像。
問題:A 和 B 年齡差 5 歲,年收入差 100,000 元。在歐幾里德距離裡,年收入差 100,000 的貢獻遠遠大於年齡差 5,讓年齡特徵在計算距離時幾乎不起作用。就算年齡對違約率很重要,它也被年收入的龐大數值「淹沒」了。
舊方法
不做特徵縮放的五個問題
- 大尺度特徵主導距離:年收入動輒百萬,年齡只有幾十,距離計算時年收入幾乎是唯一決定因素,其他特徵形同廢物。
- 模型偏向高數值特徵:KNN 找到的「最近鄰」其實是「年收入最接近」,不是「綜合最接近」,導致預測偏差。
- SVM 的超平面偏移:SVM 找最大間隔的超平面,如果特徵尺度差異大,超平面會嚴重傾向大尺度特徵的方向,決策邊界失真。
- 梯度下降效率低:特徵縮放也影響基於梯度的模型,不同特徵的梯度大小差異懸殊,需要更多步驟才能收斂。
- 結果不可解釋:哪個特徵重要?在未縮放的狀態下,「距離貢獻」完全由數值大小決定,跟業務邏輯無關。
新方法
特徵縮放怎麼解
玉山銀行做特徵縮放後,所有特徵都落在類似的範圍(例如 0 到 1,或平均 0 標準差 1):
- 年齡 25 歲 → 縮放後 0.11(25 在 18-80 的相對位置)
- 年收入 1,200,000 → 縮放後 0.24(在收入分布的相對位置)
- 信用評分 750 → 縮放後 0.82
- 負債比 0.35 → 縮放後 0.35(本來就在 0-1)
縮放後,四個特徵對距離計算的貢獻對等,KNN 找到的「最近鄰」才真正代表「在所有維度上綜合最相似的人」。
常見的縮放方法:Min-Max 正規化(縮到 0-1)、標準化(Z-score,調整到均值 0、標準差 1)。
這就是選項 A 講的:進行特徵縮放(Feature Scaling),使各特徵變數具有相似的數值範圍。
特徵縮放(Feature Scaling)屬於資料前處理(Data Preprocessing)範疇,是建模流程的必要步驟之一,對距離型和梯度型模型尤為關鍵。
兩種主要縮放方法的比較:
- Min-Max 正規化:(x - min) / (max - min),將值縮放到 [0, 1]。適合分布不是常態的資料,但對離群值敏感(一個極端值會壓縮其他值的分布)。
- 標準化(Z-score):(x - mean) / std,調整到均值 0、標準差 1。對離群值較穩健,保留分布形狀,適合大多數場景。
哪些模型需要特徵縮放:KNN(距離計算)、SVM(最大間隔)、K-Means(距離計算)、邏輯迴歸、線性 SVM(梯度下降收斂)、PCA(主成分方向受尺度影響)。
哪些模型不需要特徵縮放:決策樹、隨機森林、XGBoost(基於分裂點,不涉及距離計算),特徵縮放對這些模型無效果。
為什麼出題者要考這題:「哪些前處理適合哪些模型」是機器學習工程師的基礎判斷力,特徵縮放和距離型模型的關聯是最高頻的考點之一。
錯選項
為什麼其他選項是錯的
B將連續型特徵變數轉換為類別型變數
字面在說什麼
把數值型的年齡、收入等特徵轉成「年輕/中年/老年」「低收入/中收入/高收入」這種類別標籤。
為什麼不對
把連續型變數離散化通常會損失資訊(「29 歲」和「31 歲」被歸入同一類),對距離計算沒有幫助,反而讓 KNN 無法計算有意義的距離(類別型資料不能直接算歐幾里德距離)。這是往錯誤方向走的前處理。
誰會選錯
知道「處理特徵」是前處理的一部分,但把離散化和縮放搞混的人。記住:距離型模型需要「讓特徵可以比較大小」,縮放是做到這一點的正確方向。
C以平均值或中位數進行缺失值補齊
字面在說什麼
資料中有些格子是空的(缺失值),用該欄位的平均值或中位數填入。
為什麼不對
缺失值補齊是必要的前處理(有缺失值模型跑不了),但它解決的是「資料完整性」問題,不是「尺度不一致」問題。這個步驟對距離計算的正確性沒有直接影響,不是距離型模型「最關鍵」的前處理。
誰會選錯
知道缺失值是常見問題,把它當作「最關鍵」步驟的人。記住:缺失值補齊是通用前處理,特徵縮放才是距離型模型「特別需要」的步驟。
D進行隨機抽樣以平衡資料筆數
字面在說什麼
資料集中某一類樣本很少(例如詐欺案例只佔 1%),透過抽樣讓各類別資料量接近。
為什麼不對
隨機抽樣解決的是「類別不平衡」問題,跟距離計算的正確性無關。即使資料完全平衡,如果沒做特徵縮放,KNN/SVM 的距離計算仍然會被大尺度特徵主導而失準。
誰會選錯
玉山銀行違約預測資料不平衡(違約只佔少數),覺得這個是重要前處理的人。類別不平衡確實要處理,但它不是「距離型模型最關鍵」的前處理,特徵縮放才是。
變形題
同個考點下次怎麼變形
兩種都能讓特徵有相似尺度,但適合不同情境。
答案
資料有已知的上下界(例如像素值 0-255、機率 0-1)且沒有嚴重離群值 → Min-Max。資料有離群值或分布不清楚 → Z-score(標準化)。神經網路輸入通常用 Min-Max,SVM/KNN 通常用 Z-score。
決策樹也有「特徵重要性」的概念,縮放會影響結果嗎?
答案
不需要。決策樹的分裂是基於「閾值比較」(年齡 ≤ 30?),每個特徵獨立比較,不涉及跨特徵的距離計算。縮放不影響比較關係,所以對決策樹沒有效果。
計算「平均值」和「最大最小值」時,應該用哪些資料?
答案
MUST 只用訓練集計算縮放參數(均值、標準差、最大最小值),然後用同一組參數轉換驗證集和測試集。如果用全部資料(包含測試集)計算參數,就洩漏了測試集的統計資訊(Data Leakage),讓評估結果過於樂觀。
K 太小會過擬合,K 太大會欠擬合。
答案
K=1 只看最近鄰,對噪音非常敏感(過擬合)。K 很大時幾乎所有點都被納入投票,決策邊界趨近於最多數類別(欠擬合)。通常透過交叉驗證選取最佳 K,一般從奇數開始試(避免平票),常見範圍是 3-15。
SVM 用 RBF 核或多項式核,不是直接算歐幾里德距離,縮放還重要嗎?
答案
是,同樣重要。RBF 核的計算 exp(-γ||x-y||²) 仍然包含距離的平方,特徵尺度不同會讓 γ 難以調校,超平面偏向大尺度特徵。縮放後所有特徵對核函數的貢獻才對等,SVM 才能找到真正最優的決策邊界。
延伸