vtreat pada contoh kecil
Dalam latihan ini, Anda akan menggunakan vtreat untuk melakukan one-hot-encoding pada sebuah variabel kategorikal menggunakan contoh kecil.
vtreat membuat sebuah treatment plan untuk mengubah variabel kategorikal menjadi variabel indikator (dikodekan "lev"), dan membersihkan nilai buruk dari variabel numerik (dikodekan "clean").
Untuk merancang treatment plan gunakan fungsi designTreatmentsZ() (docs)
treatplan <- designTreatmentsZ(data, varlist)
data: data frame pelatihan aslivarlist: sebuah vektor variabel masukan yang akan diperlakukan (dalam bentuk string).
designTreatmentsZ() menghasilkan sebuah list dengan elemen scoreFrame: sebuah data frame yang memuat nama dan tipe variabel baru:
scoreFrame <- treatplan %>%
magrittr::use_series(scoreFrame) %>%
select(varName, origName, code)
varName: nama variabel hasil perlakuan yang baruorigName: nama variabel asli tempat variabel hasil perlakuan berasalcode: tipe variabel baru."clean": variabel numerik tanpa NA atau NaN"lev": variabel indikator untuk level tertentu dari variabel kategorikal asli.
(magrittr::use_series() (docs) adalah alias untuk $ yang dapat Anda gunakan dalam pipe.)
Untuk latihan ini, kita menginginkan varName ketika code bernilai "clean" atau "lev":
newvarlist <- scoreFrame %>%
filter(code %in% c("clean", "lev") %>%
magrittr::use_series(varName)
Untuk mentransformasikan himpunan data menjadi seluruhnya numerik dan one-hot-encoded, gunakan prepare() (docs):
data.treat <- prepare(treatplan, data, varRestrictions = newvarlist)
treatplan: treatment plandata: data frame yang akan diperlakukanvarRestrictions: variabel yang diinginkan dalam data hasil perlakuan
Data frame dframe dan paket magrittr sudah dimuat sebelumnya.
Latihan ini adalah bagian dari kursus
Supervised Learning di R: Regresi
Petunjuk latihan
- Cetak
dframe. Kita akan mengasumsikan bahwacolordansizeadalah variabel masukan, danpopularityadalah keluaran yang akan diprediksi. - Buat sebuah vektor bernama
varsyang berisi nama variabel masukan (dalam bentuk string). - Muat paket
vtreat. - Gunakan
designTreatmentsZ()untuk membuat treatment plan bagi variabel dalamvars. Simpan pada variabeltreatplan. - Ambil dan periksa
scoreFramedari treatment plan untuk melihat pemetaan dari variabel lama ke variabel baru.- Anda hanya memerlukan kolom
varName,origName, dancode. - Apa nama variabel indikator yang baru? Bagaimana dengan variabel kontinu?
- Anda hanya memerlukan kolom
- Buat vektor
newvarsyang berisi variabelvarNameketikacodeadalahcleanataulev. Cetak vektor tersebut. - Gunakan
prepare()untuk membuat data frame barudframe.treatyang merupakan versi one-hot-encoded daridframe(tanpa kolom keluaran).- Cetak dan bandingkan dengan
dframe.
- Cetak dan bandingkan dengan
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Print dframe
dframe
# Create and print a vector of variable names
(vars <- ___)
# Load the package vtreat
___
# Create the treatment plan
treatplan <- ___(___, ___)
# Examine the scoreFrame
(scoreFrame <- treatplan %>%
use_series(scoreFrame) %>%
select(___, ___, ___))
# We only want the rows with codes "clean" or "lev"
(newvars <- scoreFrame %>%
filter(code %in% ___) %>%
use_series(varName))
# Create the treated training data
(dframe.treat <- ___(___, ___, varRestriction = newvars))