НачатьНачать бесплатно

Создание рецепта для фильтрации по низкой дисперсии

Пакет 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 = ___)
Редактировать и запускать код