Zacznij terazZacznij za darmo

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 danych
  • varlist: 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 zmiennej
  • origName: nazwa oryginalnej zmiennej, z której pochodzi przekształcona zmienna
  • code: 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łcenia
  • varRestrictions: 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

Zobacz kurs

Instrukcje do ćwiczenia

  • Wyświetl dframe. Przyjmijmy, że color i size są zmiennymi wejściowymi, a popularity to wartość do przewidzenia.
  • Utwórz wektor o nazwie vars zawierają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 wektora vars. Przypisz go do zmiennej treatplan.
  • Pobierz i przejrzyj scoreFrame z planu przekształceń, aby zobaczyć mapowanie starych zmiennych na nowe.
    • Potrzebujesz tylko kolumn varName, origName i code.
    • Jakie są nazwy nowych zmiennych wskaźnikowych? A zmiennej ciągłej?
  • Utwórz wektor newvars zawierający wartości varName, dla których code wynosi clean lub lev. Wyświetl go.
  • Użyj funkcji prepare(), aby utworzyć nową ramkę danych dframe.treat będącą wersją dframe zakodowaną metodą one-hot (bez kolumny z wartością wynikową).
    • Wyświetl ją i porównaj z dframe.

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))
Edytuj i uruchom kod