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
Instrukcje do ćwiczenia
- Wyświetl
dframeitestframe.- Czy w
testframesą kolory, które nie pojawiły się wdframe?
- Czy w
- Wywołaj
prepare(), aby utworzyć wersjętestframezakodowaną metodą one-hot (bez zmiennej wynikowej). Przypisz wynik dotestframe.treati wyświetl go.- Użyj argumentu
varRestriction, aby ograniczyć się tylko do zmiennych znewvars. - Jak zakodowane są wiersze odpowiadające kolorowi żółtemu?
- Użyj argumentu
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 = ___))