vtreat na prostym przykładzie
W tym ćwiczeniu użyjesz pakietu vtreat do zakodowania zmiennej kategorycznej metodą one-hot na prostym przykładzie.
vtreat tworzy plan przekształceń, który zamienia zmienne kategoryczne na zmienne wskaźnikowe (oznaczone "lev") i oczyszcza nieprawidłowe wartości ze zmiennych numerycznych (oznaczone "clean").
Aby zaprojektować plan przekształceń, użyj funkcji designTreatmentsZ() (dokumentacja)
treatplan <- designTreatmentsZ(data, varlist)
data: oryginalna treningowa ramka danychvarlist: wektor zmiennych wejściowych do przekształcenia (jako ciągi znaków).
designTreatmentsZ() zwraca listę zawierającą element scoreFrame – ramkę danych z nazwami i typami nowych zmiennych:
scoreFrame <- treatplan %>%
magrittr::use_series(scoreFrame) %>%
select(varName, origName, code)
varName: nazwa nowej, przekształconej zmiennejorigName: nazwa oryginalnej zmiennej, z której pochodzi przekształcona zmiennacode: typ nowej zmiennej."clean": zmienna numeryczna bez wartości NA ani NaN"lev": zmienna wskaźnikowa dla konkretnego poziomu oryginalnej zmiennej kategorycznej.
(magrittr::use_series() (dokumentacja) to alias dla $, którego można używać w potokach.)
W tych ćwiczeniach potrzebujemy wartości varName, dla których code wynosi "clean" lub "lev":
newvarlist <- scoreFrame %>%
filter(code %in% c("clean", "lev") %>%
magrittr::use_series(varName)
Aby przekształcić zbiór danych na same zmienne numeryczne i zakodowane metodą one-hot, użyj funkcji prepare() (dokumentacja):
data.treat <- prepare(treatplan, data, varRestrictions = newvarlist)
treatplan: plan przekształceńdata: ramka danych do przekształceniavarRestrictions: zmienne, które mają znaleźć się w przekształconych danych
Ramka danych dframe oraz pakiet magrittr zostały już wczytane.
To ćwiczenie jest częścią kursu
Nadzorowane uczenie maszynowe w R: regresja
Instrukcje do ćwiczenia
- Wyświetl
dframe. Przyjmijmy, żecolorisizesą zmiennymi wejściowymi, apopularityto wartość do przewidzenia. - Utwórz wektor o nazwie
varszawierający nazwy zmiennych wejściowych (jako ciągi znaków). - Wczytaj pakiet
vtreat. - Użyj funkcji
designTreatmentsZ(), aby utworzyć plan przekształceń dla zmiennych z wektoravars. Przypisz go do zmiennejtreatplan. - Pobierz i przejrzyj
scoreFramez planu przekształceń, aby zobaczyć mapowanie starych zmiennych na nowe.- Potrzebujesz tylko kolumn
varName,origNameicode. - Jakie są nazwy nowych zmiennych wskaźnikowych? A zmiennej ciągłej?
- Potrzebujesz tylko kolumn
- Utwórz wektor
newvarszawierający wartościvarName, dla którychcodewynosicleanlublev. Wyświetl go. - Użyj funkcji
prepare(), aby utworzyć nową ramkę danychdframe.treatbędącą wersjądframezakodowaną metodą one-hot (bez kolumny z wartością wynikową).- Wyświetl ją i porównaj z
dframe.
- Wyświetl ją i porównaj z
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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))