Kategorik Değişkenleri One-Hot Encoding

R'de Supervised Learning: Regresyon

Nina Zumel and John Mount

Win-Vector, LLC

Neden Kategorikleri Elle Dönüştüresin?

  • Çoğu R fonksiyonu dönüşümü senin için yapar
    • model.matrix()
  • xgboost() yapmaz
    • Kategorikleri sayısala çevirmelisin
  • Göstergelere dönüştürme: one-hot encoding
R'de Supervised Learning: Regresyon

`vtreat` ile one-hot encoding ve veri temizleme

Temel fikir:

  • Eğitim verisinden bir tedavi planı tasarlamak için designTreatmentsZ(), sonra
  • "temiz" veri oluşturmak için prepare()
    • hepsi sayısal
    • eksik değer yok
      • Tüm gelecekteki veriler için tedavi planıyla prepare() kullan
R'de Supervised Learning: Regresyon

Küçük bir vtreat örneği

Eğitim Verisi

x u y
one 44 0.4855671
two 24 1.3683726
three 66 2.0352837
two 22 1.6396267

Test Verisi

x u y
one 5 2.6488148
three 12 1.5012938
one 56 0.1993731
two 28 1.2778516
R'de Supervised Learning: Regresyon

Tedavi Planını Oluştur

vars <- c("x", "u")
treatplan <- designTreatmentsZ(dframe, varslist, verbose = FALSE)

designTreatmentsZ() için girdiler

  • dframe: eğitim verisi
  • varlist: giriş değişken adlarının listesi
  • ilerleme iletilerini bastırmak için verbose = FALSE ayarla
R'de Supervised Learning: Regresyon

Yeni Değişkenleri Al

scoreFrame değişken eşlemesini ve türleri açıklar

(scoreFrame <- treatplan$scoreFrame %>% 
     select(varName, origName, code))
        varName origName  code
1   x_lev_x.one        x   lev
2 x_lev_x.three        x   lev
3   x_lev_x.two        x   lev
4        x_catP        x  catP
5       u_clean        u clean

Yeni lev ve clean değişkenlerinin adlarını al

(newvars <- scoreFrame %>% 
     filter(code %in% c("clean", "lev")) %>%
     use_series(varName))
"x_lev_x.one"   "x_lev_x.three" "x_lev_x.two"   "u_clean"
R'de Supervised Learning: Regresyon

Modelleme için Eğitim Verisini Hazırla

training.treat <- prepare(treatmentplan, dframe, varRestriction = newvars)

prepare() için girdiler:

  • treatmentplan: tedavi planı
  • dframe: veri çerçevesi
  • varRestriction: hazırlanacak değişkenlerin listesi (isteğe bağlı)
    • varsayılan: tüm değişkenleri hazırla
R'de Supervised Learning: Regresyon

Veri İşleme Öncesi ve Sonrası

Eğitim Verisi

x u y
one 44 0.4855671
two 24 1.3683726
three 66 2.0352837
two 22 1.6396267

İşlenmiş Eğitim Verisi

x_lev _x. one x_lev _x. three x_lev _x. two u_clean
1 0 0 44
0 0 1 24
0 1 0 66
0 0 1 22
R'de Supervised Learning: Regresyon

Modeli Uygulamadan Önce Test Verisini Hazırla

(test.treat <- prepare(treatplan, test, varRestriction = newvars))
  x_lev_x.one x_lev_x.three x_lev_x.two u_clean
1           1             0           0       5
2           0             1           0      12
3           1             0           0      56
4           0             0           1      28
R'de Supervised Learning: Regresyon

vtreat İşlemi Dayanıklıdır

Daha önce görülmemiş x düzeyi: four

x u y
one 4 0.2331301
two 14 1.9331760
three 66 3.1251029
four 25 4.0332491

four şu şekilde kodlanır: (0, 0, 0)

prepare(treatplan, toomany, ...)
x_lev _x. one x_lev _x. three x_lev _x. two u_clean
1 0 0 4
0 0 1 14
0 1 0 66
0 0 0 25
R'de Supervised Learning: Regresyon

Hadi pratik yapalım!

R'de Supervised Learning: Regresyon

Preparing Video For Download...