Zacznij terazZacznij za darmo

Nowe poziomy

Gdy jakiś poziom zmiennej kategorycznej jest rzadki, może nie pojawić się w danych treningowych. Jeśli ten rzadki poziom wystąpi później w nowych danych, modele mogą nie wiedzieć, jak go obsłużyć. W takich sytuacjach – gdy pojawiają się nowe poziomy – użycie model.matrix lub caret::dummyVars do kodowania one-hot może nie działać poprawnie.

vtreat jest „bezpieczniejszą" alternatywą dla model.matrix przy kodowaniu one-hot, ponieważ potrafi bezpiecznie obsługiwać nowe poziomy. vtreat radzi sobie również z brakującymi wartościami w danych – zarówno kategorycznych, jak i ciągłych.

W tym ćwiczeniu zobaczysz, jak vtreat obsługuje wartości kategoryczne, które nie pojawiły się w zbiorze treningowym. Plan przetwarzania treatplan oraz zbiór zmiennych newvars z poprzedniego ćwiczenia są nadal dostępne. dframe i nowa ramka danych testframe zostały wczytane.

To ćwiczenie jest częścią kursu

Nadzorowane uczenie maszynowe w R: regresja

Zobacz kurs

Instrukcje do ćwiczenia

  • Wyświetl dframe i testframe.
    • Czy w testframe są kolory, które nie pojawiły się w dframe?
  • Wywołaj prepare(), aby utworzyć wersję testframe zakodowaną metodą one-hot (bez zmiennej wynikowej). Przypisz wynik do testframe.treat i wyświetl go.
    • Użyj argumentu varRestriction, aby ograniczyć się tylko do zmiennych z newvars.
    • Jak zakodowane są wiersze odpowiadające kolorowi żółtemu?

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# treatplan is available
summary(treatplan)

# newvars is available
newvars

# Print dframe and testframe
___
___

# Use prepare() to one-hot-encode testframe
(testframe.treat <- ___(___, ___, varRestriction = ___))
Edytuj i uruchom kod