以 PCA 作為 nearZeroVar() 的替代方案
移除低變異數的預測變數,另一個替代作法是對資料集執行 PCA。這有時更好,因為它不會直接丟掉所有資料:許多彼此不同、變異數很低的預測變數,可能會被合併成單一且變異數高的 PCA 變數,進而對模型的準確率產生正面影響。
這對於線性模型特別好用:在 preProcess 參數使用 pca 選項,會先對資料做置中與標準化,合併低變異數變數,並確保所有預測變數互相正交。這會建立一個非常適合線性迴歸建模的資料集,且常能提升模型的準確率。
本練習屬於課程
使用 R 的 caret 進行 Machine Learning
練習說明
bloodbrain_x 與 bloodbrain_y 已載入至你的工作空間。
- 使用
preProcess的"pca"選項,對完整的 blood-brain 資料集訓練一個glm模型。 - 將模型列印到主控台並檢視結果。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Fit glm model using PCA: model
model <- train(
x = ___,
y = ___,
method = ___,
preProcess = ___
)
# Print model to console