Maak een low-variance-recept
De tidymodels-pakketten bieden een betere manier om features met geen of bijna geen variantie te filteren met respectievelijk de functies step_zv() en step_nzv(). Deze receptstappen identificeren low-variance-features door te kijken naar het aantal unieke waarden en de verhouding van de frequentie van de meest voorkomende waarden in elke feature. Deze aanpak is robuuster dan de simpele variantiegrens die we eerder gebruikten.
Daarnaast gebruik je de receptstap step_scale() om de variantie van de features te normaliseren. Onthoud dat het altijd een goed idee is om de data te normaliseren zodat varianties over features heen vergelijkbaar zijn.
De house_sales_df is beschikbaar om te gebruiken. De doelvariabele is price. De pakketten tidyverse en tidymodels zijn ook alvast voor je geladen.
Deze oefening maakt deel uit van de cursus
Dimensionality Reduction in R
Oefeninstructies
- Definieer een recept voor een low-variance-filter en prepareer het met
house_sales_df. - Pas het recept toe op
house_sales_dfen sla de gefilterde data op infiltered_house_sales_df. - Toon de features die het recept heeft gefilterd in de stap
step_nzv().
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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 = ___)