Level baru (novel levels)
Ketika suatu level pada variabel kategorikal sangat jarang, terkadang level tersebut tidak muncul dalam data pelatihan. Jika level langka itu kemudian muncul pada data masa depan, model di hilir mungkin tidak tahu cara menanganinya. Saat novel levels seperti itu muncul, penggunaan model.matrix atau caret::dummyVars untuk one-hot-encoding tidak akan berfungsi dengan benar.
vtreat adalah alternatif yang lebih "aman" dibanding model.matrix untuk one-hot-encoding, karena dapat menangani novel levels dengan aman. vtreat juga menangani nilai hilang dalam data (baik kategorikal maupun kontinu).
Dalam latihan ini, Anda akan melihat bagaimana vtreat menangani nilai kategorikal yang tidak muncul di himpunan data pelatihan.
Rencana perlakuan treatplan dan himpunan variabel newvars dari latihan sebelumnya masih tersedia.
dframe dan kerangka data baru testframe telah dimuat sebelumnya.
Latihan ini adalah bagian dari kursus
Supervised Learning di R: Regresi
Petunjuk latihan
- Cetak
dframedantestframe.- Adakah warna di
testframeyang tidak muncul didframe?
- Adakah warna di
- Panggil
prepare()untuk membuat versi one-hot-encoded daritestframe(tanpa outcome). Beri namatestframe.treatdan cetak.- Gunakan argumen
varRestrictionuntuk membatasi hanya pada variabel dinewvars. - Bagaimana baris berwarna yellow dikodekan?
- Gunakan argumen
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# treatplan is available
summary(treatplan)
# newvars is available
newvars
# Print dframe and testframe
___
___
# Use prepare() to one-hot-encode testframe
(testframe.treat <- ___(___, ___, varRestriction = ___))