vtreat na malém příkladu
V tomto cvičení použiješ vtreat k one-hot-encodingu kategorické proměnné na malém příkladu.
vtreat vytvoří plán úprav pro transformaci kategorických proměnných na indikátorové proměnné (kód "lev") a pro čištění chybných hodnot v numerických proměnných (kód "clean").
Pro návrh plánu úprav použij funkci designTreatmentsZ() (docs)
treatplan <- designTreatmentsZ(data, varlist)
data: původní trénovací datový rámecvarlist: vektor vstupních proměnných, které mají být upraveny (jako řetězce).
designTreatmentsZ() vrací seznam s prvkem scoreFrame: datový rámec obsahující názvy a typy nových proměnných:
scoreFrame <- treatplan %>%
magrittr::use_series(scoreFrame) %>%
select(varName, origName, code)
varName: název nové upravené proměnnéorigName: název původní proměnné, ze které upravená proměnná pocházícode: typ nové proměnné."clean": numerická proměnná bez hodnot NA nebo NaN"lev": indikátorová proměnná pro konkrétní úroveň původní kategorické proměnné.
(magrittr::use_series() (docs) je alias pro $, který lze použít v rouře.)
V těchto cvičeních chceme varName, kde code je buď "clean", nebo "lev":
newvarlist <- scoreFrame %>%
filter(code %in% c("clean", "lev") %>%
magrittr::use_series(varName)
Pro transformaci datasetu na čistě numerické a one-hot-enkódované proměnné použij prepare() (docs):
data.treat <- prepare(treatplan, data, varRestrictions = newvarlist)
treatplan: plán úpravdata: datový rámec, který má být upravenvarRestrictions: proměnné požadované v upraveném datovém rámci
Dataový rámec dframe a balíček magrittr jsou předem načteny.
Toto cvičení je součástí kurzu
Supervised Learning in R: Regression
Pokyny k cvičení
- Vypiš
dframe. Budeme předpokládat, žecolorasizejsou vstupní proměnné apopularityje výstup, který chceme předpovídat. - Vytvoř vektor
varss názvy vstupních proměnných (jako řetězce). - Načti balíček
vtreat. - Pomocí
designTreatmentsZ()vytvoř plán úprav pro proměnné ve vektoruvars. Výsledek ulož do proměnnétreatplan. - Získej a prohlédni si
scoreFramez plánu úprav, abys viděl/a mapování starých proměnných na nové.- Potřebuješ jen sloupce
varName,origNameacode. - Jaké jsou názvy nových indikátorových proměnných? A spojité proměnné?
- Potřebuješ jen sloupce
- Vytvoř vektor
newvars, který obsahuje hodnotyvarName, kdecodeje buďclean, nebolev. Vypiš ho. - Pomocí
prepare()vytvoř nový datový rámecdframe.treat, který je one-hot-enkódovanou verzídframe(bez sloupce s výstupní proměnnou).- Vypiš ho a porovnej s
dframe.
- Vypiš ho a porovnej s
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Print dframe
dframe
# Create and print a vector of variable names
(vars <- ___)
# Load the package vtreat
___
# Create the treatment plan
treatplan <- ___(___, ___)
# Examine the scoreFrame
(scoreFrame <- treatplan %>%
use_series(scoreFrame) %>%
select(___, ___, ___))
# We only want the rows with codes "clean" or "lev"
(newvars <- scoreFrame %>%
filter(code %in% ___) %>%
use_series(varName))
# Create the treated training data
(dframe.treat <- ___(___, ___, varRestriction = newvars))