MulaiMulai sekarang secara gratis

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 asli
  • varlist: 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 baru
  • origName: nama variabel asli tempat variabel hasil perlakuan berasal
  • code: 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 plan
  • data: data frame yang akan diperlakukan
  • varRestrictions: 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

Lihat Kursus

Petunjuk latihan

  • Cetak dframe. Kita akan mengasumsikan bahwa color dan size adalah variabel masukan, dan popularity adalah keluaran yang akan diprediksi.
  • Buat sebuah vektor bernama vars yang berisi nama variabel masukan (dalam bentuk string).
  • Muat paket vtreat.
  • Gunakan designTreatmentsZ() untuk membuat treatment plan bagi variabel dalam vars. Simpan pada variabel treatplan.
  • Ambil dan periksa scoreFrame dari treatment plan untuk melihat pemetaan dari variabel lama ke variabel baru.
    • Anda hanya memerlukan kolom varName, origName, dan code.
    • Apa nama variabel indikator yang baru? Bagaimana dengan variabel kontinu?
  • Buat vektor newvars yang berisi variabel varName ketika code adalah clean atau lev. Cetak vektor tersebut.
  • Gunakan prepare() untuk membuat data frame baru dframe.treat yang merupakan versi one-hot-encoded dari dframe (tanpa kolom keluaran).
    • Cetak dan bandingkan dengan dframe.

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))
Edit dan Jalankan Kode