ПочатиПочніть безкоштовно

Нові рівні

Коли рівень категоріальної змінної є рідкісним, інколи він не трапляється в тренувальних даних. Якщо такий рідкісний рівень з'явиться в майбутніх даних, наступні моделі можуть «не знати», як із ним працювати. Коли з'являються такі нові рівні, використання 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 = ___))
Редагувати та запускати код