Převod spojitých proměnných na kategorické (2)
Zvláštním případem předchozí transformace je rozdělení spojité proměnné do košů, jejichž hranice jsou určeny kvantily dané proměnné. Tato transformace se běžně používá při analýze odpovědí z dotazníků nebo hodnocení. Pokud necháš lidi hodnotit něco na škále od jedné do pěti hvězdiček, medián odpovědí často nebude tři hvězdičky. V takovém případě může být užitečné rozdělit skóre podle kvantilů. Můžeš například vytvořit pět kvintilových skupin rozdělením na 0., 20., 40., 60., 80. a 100. percentilu.
V základním R se to řeší kombinací cut() + quantile(). Ekvivalentem v sparklyr je transformace ft_quantile_discretizer(), která přijímá argument num_buckets určující počet košů. Oba přístupy jsou ukázány vedle sebe. Stejně jako dříve jsou nastaveny parametry right = FALSE a include.lowest.
survey_response_group <- cut(
survey_score,
breaks = quantile(survey_score, c(0, 0.25, 0.5, 0.75, 1)),
labels = c("hate it", "dislike it", "like it", "love it"),
right = FALSE,
include.lowest = TRUE
)
survey_data %>%
ft_quantile_discretizer("survey_score", "survey_response_group", num_buckets = 4)
Stejně jako u ft_bucketizer() jsou výsledné koše číslovány od nuly. Pokud s nimi chceš pracovat v R, explicitně je převeď na factor.
Toto cvičení je součástí kurzu
Úvod do Sparku se sparklyr v R
Pokyny k cvičení
Spark připojení je pro tebe připraveno jako spark_conn. Tibble napojený na metadata skladeb uložená ve Sparku je předem definován jako track_metadata_tbl. duration_labels je znakový vektor popisující délky trvání.
- Vytvoř proměnnou
familiarity_by_durationztrack_metadata_tbl.- Vyber pole
durationaartist_familiarity. - Pomocí
ft_quantile_discretizer()vytvoř nové poleduration_binsložené z 5 kvantilových košů proměnnéduration. - Výsledek načti pomocí collect.
- Převeď pole
duration_binna faktor s popiskyduration_labels.
- Vyber pole
- Vykresli krabicový graf
ggplot()závislostiartist_familiaritynaduration_bin.- Prvním argumentem
ggplot()je datový argumentfamiliarity_by_duration. - Druhým argumentem
ggplot()je estetika, která přijímáduration_binaartist_familiarityzabalené doaes(). - Přidej
geom_boxplot()pro vykreslení grafu.
- Prvním argumentem
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# track_metadata_tbl, duration_labels have been pre-defined
track_metadata_tbl
duration_labels
familiarity_by_duration <- track_metadata_tbl %>%
# Select duration and artist_familiarity
___ %>%
# Bucketize duration
___ %>%
# Collect the result
___ %>%
# Convert duration bin to factor
___
# Draw a boxplot of artist_familiarity by duration_bin
ggplot(___, aes(___, ___)) +
___()