Нові рівні
Коли рівень категоріальної змінної є рідкісним, інколи він не трапляється в тренувальних даних. Якщо такий рідкісний рівень з'явиться в майбутніх даних, наступні моделі можуть «не знати», як із ним працювати. Коли з'являються такі нові рівні, використання model.matrix або caret::dummyVars для one-hot-кодування працюватиме некоректно.
vtreat — це «безпечніша» альтернатива до model.matrix для one-hot-кодування, адже вона вміє коректно обробляти нові рівні. vtreat також обробляє пропущені значення в даних (як категоріальних, так і неперервних).
У цій вправі ви побачите, як vtreat поводиться з категоріальними значеннями, яких не було в тренувальній вибірці.
План обробки treatplan і набір змінних newvars з попередньої вправи все ще доступні.
dframe і новий датафрейм testframe вже завантажено.
Ця вправа є частиною курсу
Кероване навчання в R: регресія
Інструкції до вправи
- Виведіть
dframeіtestframe.- Чи є в
testframeкольори, яких не було вdframe?
- Чи є в
- Викличте
prepare(), щоб створити one-hot-кодовану версіюtestframe(без вихідної змінної). Назвіть їїtestframe.treatі виведіть.- Використайте аргумент
varRestriction, щоб обмежити лише змінними зnewvars. - Як закодовано рядки з кольором yellow?
- Використайте аргумент
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# treatplan is available
summary(treatplan)
# newvars is available
newvars
# Print dframe and testframe
___
___
# Use prepare() to one-hot-encode testframe
(testframe.treat <- ___(___, ___, varRestriction = ___))