เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

ระดับที่ไม่เคยพบมาก่อน

เมื่อระดับหนึ่งของตัวแปรจัดกลุ่มปรากฏขึ้นน้อยมาก บางครั้งระดับนั้นอาจไม่ปรากฏในข้อมูลฝึกสอนเลย และหากระดับที่หายากนี้ปรากฏในข้อมูลใหม่ในอนาคต โมเดลที่ต่อเชื่อมอยู่อาจไม่รู้จะจัดการกับมันอย่างไร เรียกสถานการณ์นี้ว่า 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 = ___))
แก้ไขและรันโค้ด