資料知識地圖 · 7. 特徵建模

標準化 / Robust

特徵縮放方法

在互動地圖中開啟 回資料知識地圖

觀念教學

「年收入(百萬級)」和「年齡(兩位數)」直接丟進模型,模型會以為收入重要一萬倍 — 這不是洞察,是單位造成的錯覺。特徵縮放就是把大家拉回同一把量尺。

核心觀念

特徵縮放(Feature Scaling)統一各特徵的數值尺度,三大工具:StandardScaler(Z-score 標準化)把資料轉成平均 0、標準差 1;MinMaxScaler 把數值壓縮到 0 與 1 之間;RobustScaler 改用中位數與四分位距(IQR)計算,對離群值穩健。選哪個,取決於資料分佈與演算法需求

白話理解

健保資料裡「就醫次數」多是個位數,「醫療費用」動輒數十萬。做 KNN 這類距離型模型時若不縮放,距離幾乎全被費用主宰,就醫次數形同隱形。

選擇邏輯

  • 資料近似常態、無極端值:Z-score 標準化,最通用的預設選擇
  • 需要固定範圍(神經網路輸入、影像像素):MinMaxScaler,但它對離群值非常敏感
  • 有明顯離群值:RobustScaler,中位數與 IQR 不會被極端值帶著跑
  • 誰需要縮放:距離型(KNN、SVM、K-means)與梯度下降類(神經網路、線性模型)— 縮放後分佈一致,模型收斂速度明顯加快
  • 誰不需要:決策樹、隨機森林等樹模型只看切分順序,不看尺度
  • 縮放器只能用訓練集擬合,再套用到測試集,否則就是資料洩漏
🎯 口訣:常態用 Z、範圍用 MinMax、離群用 Robust;樹模型免縮放。

iPAS 考點

兩大題型:「資料含大量離群值,該選哪種縮放」答 RobustScaler;「哪類演算法不受特徵尺度影響」答決策樹、隨機森林。陷阱選項是「所有模型都必須先標準化」— 樹模型就是活生生的反例。

應用場景

StandardScalerMinMaxScalerRobustScalerNormalizer

評估指標

縮放後分佈模型收斂速度

iPAS 歷屆考題詳解(6 題)

先自行作答,再展開詳解。題目出處均為 iPAS AI 應用規劃師正式考題,著作權屬原主辦單位。

114年第二梯次中級AI應用規劃師第二科大數據處理分析與應用 第1題

若某數據點的Z 分數(Z-Score)= 2,請問代表下列哪一種意涵?

  1. A代表該數據點之原始數值為 2
  2. B該數據點比平均值低 2個標準差
  3. C代表數據為異常值
  4. D該數據點比平均值高 2個標準差
看正解與逐選項詳解

正解:D

正確答案:(D) 【正解解析】 Z 分數的定義是 Z = (原始值 − 平均值) ÷ 標準差,代表該數據點距離平均值幾個標準差。Z = 2 表示這個點落在平均值之上 2 個標準差的位置;若低於平均值,Z 會是負數。Z 分數把不同單位、不同尺度的資料換算到同一基準,是標準化與異常值判斷的基礎工具。 【為何其他選項錯了?】 - (A):Z 分數是「相對位置」而非原始數值本身,Z = 2 不代表原始值等於 2;原始值須由平均值與標準差換算還原。 - (B):方向相反。比平均值低 2 個標準差的點,其 Z 分數是 −2;正負號正是 Z 分數的方向資訊。 - (C):Z = 2 只能說明數值偏高,尚不足以判定異常。實務上常以 |Z| ≥ 3 作為異常值門檻;常態分佈下 Z = 2 以外仍約有 2.3% 的資料,直接判為異常過於武斷。 提示:Z 分數 = (x − μ)/σ,正號在平均值之上、負號在平均值之下,數值即偏離的標準差個數。
114年第二梯次中級AI應用規劃師第二科大數據處理分析與應用 第6題

在進行資料分析時,會遇到類別型(Categorical)與數值型(Numerical) 資料格式。關於這兩種資料格式的處理,下列敘述何者不正確?

  1. AOne-Hot編碼(One-Hot Encoding)會將類別變數轉換為多維二元向量,適用於無序(Nominal)類別資料,但在高基數(High Cardinality)特徵下可能造成維度爆炸問題
  2. B標籤編碼(Label Encoding)會以整數表示不同類別,若應用於無序(Nominal)資料,可能導致模型誤將編碼值解讀為具數值大小關係的特徵
  3. C標準化(Standardization)透過將資料平移與縮放,使其平均值為0、標準差為 1,可在多數距離型演算法中改善收斂速度,並同時將數值範圍壓縮至 0 至 1 之間
  4. D對連續變數進行分箱(Binning)可提升模型可解釋性,但若分段方式未依據資料分佈特性設計,可能導致資訊損失或邊界偏誤
看正解與逐選項詳解

正解:C

正確答案:(C) 【正解解析】 本題選「不正確」的敘述。標準化(Standardization)是把資料減去平均值再除以標準差,轉換後平均值為 0、標準差為 1,但數值範圍「沒有」被限制在 0 到 1 之間,理論上任何實數皆可能出現。把範圍壓縮到 0 至 1 的是 Min-Max 正規化(Normalization)。選項 (C) 前半段正確,最後一句把兩種方法混為一談,因此是不正確的敘述,即為本題答案。 【為何其他選項錯了?】 - (A):此敘述正確:One-Hot 編碼把類別展開成二元向量,適用於無序資料;類別數量多(高基數)時會造成維度爆炸。 - (B):此敘述正確:Label Encoding 以整數代表類別,套用在無序資料上,模型可能誤讀出不存在的大小關係。 - (D):此敘述正確:分箱能提升可解釋性,但切點未依資料分佈設計時,會損失資訊或產生邊界偏誤。 提示:Standardization 轉換後 μ=0、σ=1、範圍不設限;Min-Max 才把數值壓縮到 [0,1],兩者定義須嚴格區分。
114年第二梯次中級AI應用規劃師第二科大數據處理分析與應用 第9題

在進行數值特徵的標準化(Normalization)時,若資料中存在極端值(Outliers),下列哪一種方法最適合使用?

  1. AMin-Max正規化(Min-Max Scaling)
  2. BZ-score標準化(Z-score Normalization)
  3. C穩健縮放(Robust Scaling)
  4. D標準分箱(Standard Binning)
看正解與逐選項詳解

正解:C

正確答案:(C) 【正解解析】 穩健縮放(Robust Scaling)以中位數與四分位距(IQR)進行縮放:(x − 中位數) ÷ IQR。中位數與 IQR 都是對極端值不敏感的穩健統計量,因此即使資料中存在數筆極端離群值,大多數資料的縮放結果也不會受其影響,是含離群值資料的首選縮放方法。 【為何其他選項錯了?】 - (A):Min-Max 以最大值與最小值決定縮放範圍,而極端值往往就是最大值或最小值,單一離群值即可把其餘資料壓縮到極窄的區間,是對離群值最敏感的縮放法。 - (B):Z-score 以平均值與標準差計算,兩者皆會被極端值影響(平均值被拉偏、標準差被撐大),縮放結果同樣失真,只是影響程度略低於 Min-Max。 - (D):分箱是離散化手段,不屬於標準化或縮放方法,與題目需求不符。 提示:資料含離群值時,採用以中位數與 IQR 為基礎的 Robust Scaling。
114年第二梯次中級AI應用規劃師第三科機器學習技術與應用 第9題

在建構以距離為基礎的機器學習模型(如 KNN、SVM)時,下列哪一項資料前處理方式最為關鍵?

  1. A進行特徵縮放(Feature Scaling),使各特徵變數具有相似的數值範圍
  2. B將連續型特徵變數轉換為類別型變數
  3. C以平均值或中位數進行缺失值補齊;
  4. D進行隨機抽樣以平衡資料筆數
看正解與逐選項詳解

正解:A

正確答案:(A) 【正解解析】 KNN、SVM 這類模型以樣本間「距離」(或內積)為計算核心。若特徵尺度差異懸殊,例如年收入(數十萬)與年齡(數十),數值範圍大的特徵會主宰距離計算,使其他特徵的影響幾乎消失,模型判斷因此失真。因此建模前必須進行特徵縮放(標準化或 Min-Max 正規化),讓各特徵在相近的數值範圍內公平比較,這是距離型模型最關鍵的前處理步驟。 【為何其他選項錯了?】 - (B):把連續特徵轉成類別型會損失數值資訊,對距離型模型不僅非必要,通常還有害。 - (C):缺失值補齊是各類模型都需要的通用資料清理步驟,並非距離型模型「特別關鍵」的環節。 - (D):隨機抽樣平衡資料處理的是類別不平衡問題,與特徵尺度扭曲距離計算無關。 提示:以距離為基礎的演算法(KNN、SVM、K-means)在建模前必須先完成特徵縮放,使各特徵尺度一致。
114年第二梯次中級AI應用規劃師第三科機器學習技術與應用 第48題

使用鐵達尼號(Titanic)資料集進行 MLP 分類預測,資料切分後以下列程式碼對特徵矩陣進行處理: X_train -= X_train.mean(axis=0) X_train /= X_train.std(axis=0) X_test -= X_test.mean(axis=0) X_test /= X_test.std(axis=0) 針對下列敘述: A:X_train -= X_train.mean(axis=0) 將每個訓練集特徵的平均值調整為 0 B:X_train /= X_train.std(axis=0) 將每個訓練集特徵的標準差調整為 0 C:X_train 處理結果會將資料壓縮到 0 和 1 之間 D:標準化結果防止梯度爆炸或消失 E:標準化是屬於特徵選擇(Feature Selection)方法 F:X_train 程式碼應修正為 X_train = X_train.std(axis=0),X_test 程式碼應修正為 X_test = X_test.std(axis=0) 請問下列何者正確?

  1. AA、B、C、D
  2. BA、E
  3. CA、D
  4. DA、C、F
看正解與逐選項詳解

正解:C

正確答案:(C) 【正解解析】 這段程式碼執行的是 Z-score 標準化。敘述A正確:每個特徵減去自身平均值後,平均值變為 0。敘述D正確:標準化讓各特徵尺度一致、輸入分布穩定,能改善神經網路訓練的數值條件,降低梯度爆炸或梯度消失的風險。因此正確組合為 A、D。 【為何其他選項錯了?】 - (A):敘述B錯誤,除以標準差是把標準差調整為 1,不是 0;標準差為 0 代表資料完全沒有變異,並非標準化的結果。敘述C錯誤,壓縮到 0 與 1 之間是 Min-Max 正規化的效果,Z-score 的結果可正可負、沒有固定上下界。 - (B):敘述E錯誤,標準化屬於特徵縮放(Feature Scaling),不會刪減任何特徵,與特徵選擇是不同概念。 - (D):敘述F錯誤,改成 X_train = X_train.std(axis=0) 會把整個特徵矩陣覆蓋成「每欄一個標準差值」的向量,原始資料完全遺失,並非正確的修正方式。 提示:Z-score 標準化:減去均值使均值為 0、除以標準差使標準差為 1;要壓縮到 [0,1] 區間應使用 Min-Max 正規化。
115年第一次中級AI應用規劃師第二科大數據處理分析與應用 第48題

在進行機器學習建模前,資料分析師需對特徵變數 X 進行標準化處理,以消除不同量尺所造成的影響。已知使用 StandardScaler 進行資料轉換,程式碼如下:scaler = StandardScaler()。請問下列哪一種寫法可以正確完成資料標準化?

  1. AX_norm = scaler.transform(X)
  2. BX_norm = scaler.fit(X)
  3. CX_norm = scaler.fit_transform(X)
  4. DX_norm = fit_transform(scaler)
看正解與逐選項詳解

正解:C

正確答案:(C) 【正解解析】 Scikit-learn 轉換器採兩段式設計:fit() 負責「學習參數」(StandardScaler 學習各欄位的平均數與標準差),transform() 負責「以學到的參數轉換資料」。fit_transform(X) 把兩步合併,先從 X 學出 μ 與 σ,隨即回傳標準化後的資料,是對訓練特徵完成標準化的正確寫法。 【為何其他選項錯了?】 - (A):scaler 剛建立、尚未執行 fit,直接呼叫 transform(X) 會拋出 NotFittedError,因為它還沒有計算平均數與標準差,無從轉換。 - (B):scaler.fit(X) 只學習參數,回傳的是 scaler 物件本身而非轉換後的資料;把估計器物件當成標準化結果使用,後續處理會出錯。 - (D):fit_transform(scaler) 把方法當成獨立函式呼叫、又把物件當成參數傳入,執行會拋出 NameError;正確寫法是「物件.方法(資料)」。 提示:fit 學參數、transform 套用轉換、fit_transform 一次完成;訓練集用 fit_transform,測試集只用 transform(沿用訓練集學到的參數)。

相關節點