低分散レシピを作成する
tidymodels パッケージには、step_zv() と step_nzv() が用意されており、それぞれ分散がゼロおよびほぼゼロの特徴量をより良い方法でフィルタリングできます。これらのレシピステップは、各特徴量の一意の値の数や、最頻値の出現比率を調べることで低分散の特徴量を特定します。以前に使った単純な分散のしきい値よりも堅牢な方法です。
さらに、step_scale() を使って特徴量の分散を正規化します。特徴量間で分散を比較可能にするため、データを正規化しておくことは常に良い考えです。
house_sales_df が利用可能です。目的変数は price です。tidyverse と tidymodels パッケージはすでに読み込まれています。
この演習はコースの一部です
Rによる次元削減
演習の手順
- 低分散フィルタ用のレシピを定義し、
house_sales_dfで準備します。 - レシピを
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 = ___)