建立低變異數的 recipe
tidymodels 套件提供了更好的方式,能分別用 step_zv() 與 step_nzv() 來篩掉零變異與近零變異的特徵。這些 recipe 步驟會檢查每個特徵的唯一值數量,以及最常見值出現頻率的比例,來辨識低變異的特徵。相較於我們先前用的簡單變異數門檻,這個方法更穩健。
此外,你會使用 step_scale() 這個 recipe 步驟來正規化各特徵的變異數。記住,為了讓不同特徵的變異數可比較,先把資料做正規化通常是好做法。
house_sales_df 已可供你使用,目標變數是 price。tidyverse 與 tidymodels 套件也都已經為你載入。
本練習屬於課程
R 的降維
練習說明
- 定義一個用於低變異篩選的 recipe,並使用
house_sales_df進行準備(prepare)。 - 將該 recipe 套用到
house_sales_df,並把篩選後的資料存成filtered_house_sales_df。 - 顯示在
step_nzv()步驟中被篩掉的特徵。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Prepare recipe
low_variance_recipe <- recipe(___ ~ ___, ___ = ___) %>%
step_zv(___) %>%
___(___) %>%
___(___) %>%
prep()
# Apply recipe
filtered_house_sales_df <- ___(___, new_data = ___)
# View list of features removed by the near-zero variance step
tidy(___, number = ___)