資料知識地圖 · 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;「哪類演算法不受特徵尺度影響」答決策樹、隨機森林。陷阱選項是「所有模型都必須先標準化」— 樹模型就是活生生的反例。
應用場景
評估指標
iPAS 歷屆考題詳解(6 題)
先自行作答,再展開詳解。題目出處均為 iPAS AI 應用規劃師正式考題,著作權屬原主辦單位。
若某數據點的Z 分數(Z-Score)= 2,請問代表下列哪一種意涵?
- A代表該數據點之原始數值為 2
- B該數據點比平均值低 2個標準差
- C代表數據為異常值
- D該數據點比平均值高 2個標準差
看正解與逐選項詳解
正解:D
在進行資料分析時,會遇到類別型(Categorical)與數值型(Numerical) 資料格式。關於這兩種資料格式的處理,下列敘述何者不正確?
- AOne-Hot編碼(One-Hot Encoding)會將類別變數轉換為多維二元向量,適用於無序(Nominal)類別資料,但在高基數(High Cardinality)特徵下可能造成維度爆炸問題
- B標籤編碼(Label Encoding)會以整數表示不同類別,若應用於無序(Nominal)資料,可能導致模型誤將編碼值解讀為具數值大小關係的特徵
- C標準化(Standardization)透過將資料平移與縮放,使其平均值為0、標準差為 1,可在多數距離型演算法中改善收斂速度,並同時將數值範圍壓縮至 0 至 1 之間
- D對連續變數進行分箱(Binning)可提升模型可解釋性,但若分段方式未依據資料分佈特性設計,可能導致資訊損失或邊界偏誤
看正解與逐選項詳解
正解:C
在進行數值特徵的標準化(Normalization)時,若資料中存在極端值(Outliers),下列哪一種方法最適合使用?
- AMin-Max正規化(Min-Max Scaling)
- BZ-score標準化(Z-score Normalization)
- C穩健縮放(Robust Scaling)
- D標準分箱(Standard Binning)
看正解與逐選項詳解
正解:C
在建構以距離為基礎的機器學習模型(如 KNN、SVM)時,下列哪一項資料前處理方式最為關鍵?
- A進行特徵縮放(Feature Scaling),使各特徵變數具有相似的數值範圍
- B將連續型特徵變數轉換為類別型變數
- C以平均值或中位數進行缺失值補齊;
- D進行隨機抽樣以平衡資料筆數
看正解與逐選項詳解
正解:A
使用鐵達尼號(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) 請問下列何者正確?
- AA、B、C、D
- BA、E
- CA、D
- DA、C、F
看正解與逐選項詳解
正解:C
在進行機器學習建模前,資料分析師需對特徵變數 X 進行標準化處理,以消除不同量尺所造成的影響。已知使用 StandardScaler 進行資料轉換,程式碼如下:scaler = StandardScaler()。請問下列哪一種寫法可以正確完成資料標準化?
- AX_norm = scaler.transform(X)
- BX_norm = scaler.fit(X)
- CX_norm = scaler.fit_transform(X)
- DX_norm = fit_transform(scaler)
看正解與逐選項詳解
正解:C