ระดับที่ไม่เคยพบมาก่อน
เมื่อระดับหนึ่งของตัวแปรจัดกลุ่มปรากฏขึ้นน้อยมาก บางครั้งระดับนั้นอาจไม่ปรากฏในข้อมูลฝึกสอนเลย และหากระดับที่หายากนี้ปรากฏในข้อมูลใหม่ในอนาคต โมเดลที่ต่อเชื่อมอยู่อาจไม่รู้จะจัดการกับมันอย่างไร เรียกสถานการณ์นี้ว่า novel levels (ระดับที่ไม่เคยพบในการฝึก) ซึ่งการใช้ model.matrix หรือ caret::dummyVars สำหรับการทำ one-hot-encoding จะไม่ทำงานได้อย่างถูกต้อง
vtreat เป็นทางเลือกที่ "ปลอดภัยกว่า" model.matrix สำหรับการทำ one-hot-encoding เพราะสามารถจัดการ novel levels ได้อย่างเหมาะสม นอกจากนี้ vtreat ยังจัดการค่าที่หายไปในข้อมูลได้ด้วย ทั้งตัวแปรจัดกลุ่มและตัวแปรต่อเนื่อง
ในแบบฝึกหัดนี้ จะได้เห็นวิธีที่ vtreat รับมือกับค่าจัดกลุ่มที่ไม่เคยปรากฏในชุดข้อมูลฝึกสอน
แผนการปรับแต่ง treatplan และชุดตัวแปร newvars จากแบบฝึกหัดก่อนหน้ายังคงใช้งานได้
dframe และ data frame ใหม่ชื่อ testframe ได้ถูกโหลดไว้ล่วงหน้าแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Supervised Learning ใน R: การถดถอย
คำแนะนำการฝึกหัด
- พิมพ์
dframeและtestframe- มีสีใน
testframeที่ไม่ปรากฏในdframeหรือไม่?
- มีสีใน
- เรียกใช้
prepare()เพื่อสร้างเวอร์ชัน one-hot-encoded ของtestframe(โดยไม่รวม outcome) แล้วตั้งชื่อว่าtestframe.treatจากนั้นพิมพ์ผลลัพธ์- ใช้อาร์กิวเมนต์
varRestrictionเพื่อจำกัดให้เหลือเฉพาะตัวแปรในnewvars - แถวที่เป็นสีเหลืองถูก encode ไว้อย่างไร?
- ใช้อาร์กิวเมนต์
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# treatplan is available
summary(treatplan)
# newvars is available
newvars
# Print dframe and testframe
___
___
# Use prepare() to one-hot-encode testframe
(testframe.treat <- ___(___, ___, varRestriction = ___))