實務議題:標準化(縮放)
你在影片中看到,在進行 PCA 之前先對資料做標準化(縮放),會改變 PCA 建模的結果。這裡你會分別在有縮放與無縮放的情況下執行 PCA,然後用雙變量圖(biplot)視覺化結果。
當各變數的變異數差異很大時,進行縮放通常是合適的。常見情況是變數有不同的度量單位,例如華氏度(溫度)與英里(距離)。是否要使用縮放是進行主成分分析時的一個重要決策。
本練習屬於課程
R 的無監督式學習
練習說明
相同的 Pokemon 資料集已載入到你的工作空間,名稱為 pokemon,但多了一個新變數:Total。
- 編輯器最上方有一段程式碼,用來計算模型中各變數的平均數與標準差。先執行這段程式碼,觀察原始資料中各變數的尺度差異。
- 建立一個對
pokemon進行縮放的 PCA 模型,並將結果指定給pr.with.scaling。 - 建立一個對
pokemon不進行縮放的 PCA 模型,並將結果指定給pr.without.scaling。 - 使用
biplot()分別(一次一個)繪製這兩個模型,並比較它們的輸出。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Mean of each variable
colMeans(pokemon)
# Standard deviation of each variable
apply(pokemon, 2, sd)
# PCA model with scaling: pr.with.scaling
# PCA model without scaling: pr.without.scaling
# Create biplots of both for comparison