Yeni seviyeler
Kategorik bir değişkenin bir seviyesi çok nadirse, bazen eğitim verilerinde hiç görünmeyebilir. Bu nadir seviye daha sonra gelecekteki verilerde ortaya çıkarsa, aşağı akıştaki modeller bununla ne yapacağını bilemeyebilir. Bu tür yeni seviyeler ortaya çıktığında, tek-seviyeli kodlama (one-hot-encoding) için model.matrix veya caret::dummyVars kullanmak doğru çalışmayabilir.
vtreat, yeni seviyeleri güvenle yönetebildiği için tek-seviyeli kodlama adına model.matrix'e göre daha "güvenli" bir alternatiftir. vtreat ayrıca verideki eksik değerleri de yönetir (hem kategorik hem sürekli).
Bu egzersizde, vtreat'in eğitim kümesinde görünmemiş kategorik değerleri nasıl ele aldığını göreceksin.
Önceki egzersizden gelen işlem planı treatplan ve değişken kümesi newvars hâlâ kullanılabilir.
dframe ve yeni bir veri çerçevesi testframe önceden yüklendi.
Bu egzersiz, kursun bir parçasıdır
R'de Supervised Learning: Regresyon
Egzersiz talimatları
dframevetestframe'i yazdır.testframeiçinde,dframe'de görünmeyen renkler var mı?
- Sonucu içermeden
testframe'in tek-seviyeli kodlanmış bir sürümünü oluşturmak içinprepare()çağır. Adınıtestframe.treatkoy ve yazdır.- Yalnızca
newvarsiçindeki değişkenlerle sınırlamak içinvarRestrictionargümanını kullan. - Sarı (yellow) satırlar nasıl kodlanmış?
- Yalnızca
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# treatplan is available
summary(treatplan)
# newvars is available
newvars
# Print dframe and testframe
___
___
# Use prepare() to one-hot-encode testframe
(testframe.treat <- ___(___, ___, varRestriction = ___))