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

vtreat กับตัวอย่างขนาดเล็ก

ในแบบฝึกหัดนี้ จะได้ใช้ vtreat เพื่อทำ one-hot-encoding กับตัวแปรประเภท categorical บนตัวอย่างขนาดเล็ก vtreat จะสร้าง treatment plan เพื่อแปลงตัวแปร categorical ให้เป็น indicator variables (มีรหัสว่า "lev") และทำความสะอาดค่าที่ผิดปกติในตัวแปรตัวเลข (มีรหัสว่า "clean")

หากต้องการออกแบบ treatment plan ให้ใช้ฟังก์ชัน designTreatmentsZ() (docs)

treatplan <- designTreatmentsZ(data, varlist)
  • data: data frame ชุดฝึกฝนต้นฉบับ
  • varlist: vector ของตัวแปร input ที่ต้องการจัดการ (เป็น string)

designTreatmentsZ() คืนค่าเป็น list ที่มีองค์ประกอบชื่อ scoreFrame ซึ่งเป็น data frame ที่เก็บชื่อและประเภทของตัวแปรใหม่:

scoreFrame <- treatplan %>% 
            magrittr::use_series(scoreFrame) %>% 
            select(varName, origName, code)
  • varName: ชื่อของตัวแปรใหม่ที่ผ่านการจัดการแล้ว
  • origName: ชื่อตัวแปรต้นฉบับที่ตัวแปรใหม่นี้มาจาก
  • code: ประเภทของตัวแปรใหม่
    • "clean": ตัวแปรตัวเลขที่ไม่มี NA หรือ NaN
    • "lev": indicator variable สำหรับระดับใดระดับหนึ่งของตัวแปร categorical ต้นฉบับ

(magrittr::use_series() (docs) เป็น alias ของ $ ที่ใช้งานได้ใน pipe)

สำหรับแบบฝึกหัดเหล่านี้ เราต้องการ varName ที่มี code เป็น "clean" หรือ "lev":

newvarlist <- scoreFrame %>% 
             filter(code %in% c("clean", "lev") %>%
             magrittr::use_series(varName)

หากต้องการแปลงชุดข้อมูลให้เป็นตัวแปรตัวเลขและตัวแปรที่ผ่าน one-hot-encoding ทั้งหมด ให้ใช้ prepare() (docs):

data.treat <- prepare(treatplan, data, varRestrictions = newvarlist)
  • treatplan: treatment plan ที่สร้างไว้
  • data: data frame ที่ต้องการจัดการ
  • varRestrictions: ตัวแปรที่ต้องการให้มีใน data ที่ผ่านการจัดการแล้ว

โหลด data frame dframe และแพ็กเกจ magrittr ไว้ให้แล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Supervised Learning ใน R: การถดถอย

ดูคอร์ส

คำแนะนำการฝึกหัด

  • พิมพ์ dframe โดยกำหนดให้ color และ size เป็นตัวแปร input และ popularity เป็นผลลัพธ์ที่ต้องการพยากรณ์
  • สร้าง vector ชื่อ vars ที่เก็บชื่อตัวแปร input (เป็น string)
  • โหลดแพ็กเกจ vtreat
  • ใช้ designTreatmentsZ() เพื่อสร้าง treatment plan สำหรับตัวแปรใน vars แล้วกำหนดให้กับตัวแปร treatplan
  • ดึงและตรวจสอบ scoreFrame จาก treatment plan เพื่อดูการแมปจากตัวแปรเดิมไปยังตัวแปรใหม่
    • ต้องการเฉพาะคอลัมน์ varName, origName และ code
    • indicator variables ใหม่มีชื่อว่าอะไร และตัวแปร continuous มีชื่อว่าอะไร
  • สร้าง vector newvars ที่เก็บค่า varName ที่มี code เป็น clean หรือ lev แล้วพิมพ์ผลออกมา
  • ใช้ prepare() เพื่อสร้าง data frame ใหม่ชื่อ dframe.treat ซึ่งเป็นเวอร์ชัน one-hot-encoded ของ dframe (ไม่รวมคอลัมน์ผลลัพธ์)
    • พิมพ์ออกมาและเปรียบเทียบกับ dframe

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# 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))
แก้ไขและรันโค้ด