距離型模型最關鍵的前處理是什麼?
在建構以距離為基礎的機器學習模型(如 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 的距離計算仍然會被大尺度特徵主導而失準。
玉山銀行違約預測資料不平衡(違約只佔少數),覺得這個是重要前處理的人。類別不平衡確實要處理,但它不是「距離型模型最關鍵」的前處理,特徵縮放才是。
同個考點下次怎麼變形
Min-Max 正規化和 Z-score 標準化怎麼選?
兩種都能讓特徵有相似尺度,但適合不同情境。
資料有已知的上下界(例如像素值 0-255、機率 0-1)且沒有嚴重離群值 → Min-Max。資料有離群值或分布不清楚 → Z-score(標準化)。神經網路輸入通常用 Min-Max,SVM/KNN 通常用 Z-score。
決策樹需要做特徵縮放嗎?
決策樹也有「特徵重要性」的概念,縮放會影響結果嗎?
不需要。決策樹的分裂是基於「閾值比較」(年齡 ≤ 30?),每個特徵獨立比較,不涉及跨特徵的距離計算。縮放不影響比較關係,所以對決策樹沒有效果。
特徵縮放要在訓練集上還是全部資料上計算參數?
計算「平均值」和「最大最小值」時,應該用哪些資料?
MUST 只用訓練集計算縮放參數(均值、標準差、最大最小值),然後用同一組參數轉換驗證集和測試集。如果用全部資料(包含測試集)計算參數,就洩漏了測試集的統計資訊(Data Leakage),讓評估結果過於樂觀。
KNN 的 K 值選多少合適?
K 太小會過擬合,K 太大會欠擬合。
K=1 只看最近鄰,對噪音非常敏感(過擬合)。K 很大時幾乎所有點都被納入投票,決策邊界趨近於最多數類別(欠擬合)。通常透過交叉驗證選取最佳 K,一般從奇數開始試(避免平票),常見範圍是 3-15。
SVM 的核函數(Kernel)是否也受特徵縮放影響?
SVM 用 RBF 核或多項式核,不是直接算歐幾里德距離,縮放還重要嗎?
是,同樣重要。RBF 核的計算 exp(-γ||x-y||²) 仍然包含距離的平方,特徵尺度不同會讓 γ 難以調校,超平面偏向大尺度特徵。縮放後所有特徵對核函數的貢獻才對等,SVM 才能找到真正最優的決策邊界。
想再往下看,這 5 個
- 特徵縮放(Feature Scaling)本題核心,距離型模型必做的前處理,確保各特徵對距離計算貢獻對等。
- K 近鄰(KNN)最典型的距離型模型,預測時找 K 個最相似的訓練樣本,特徵縮放是必要前提。
- SVM(支持向量機)另一個距離型模型,找最大間隔超平面,特徵縮放讓決策邊界不偏向大尺度特徵。
- 資料前處理(Data Preprocessing)特徵縮放所屬的大類,包含缺失值處理、編碼、縮放、異常值處理等步驟。
- 正規化(Normalization)特徵縮放的一種常見形式,將資料縮放到 [0, 1] 或均值為 0、標準差為 1 的分布。