วิธีการ preprocessing หลายรูปแบบ

Machine Learning ด้วย caret ใน R

Zach Mayer

Data Scientist at DataRobot and co-author of caret

โลกกว้างของ preProcess

  • ทำได้มากกว่าแค่ median หรือ knn imputation!
  • เชื่อมต่อหลายขั้นตอน preprocessing เข้าด้วยกันได้
  • "สูตร" ทั่วไปสำหรับ linear models (ลำดับสำคัญ!)
    • Median imputation ⇒ center ⇒ scale ⇒ fit glm
  • ดูรายละเอียดเพิ่มเติมได้ที่ ?preProcess
Machine Learning ด้วย caret ใน R

ตัวอย่าง: preprocessing mtcars

# Generate some data with missing values
data(mtcars)
set.seed(42)
mtcars[sample(1:nrow(mtcars), 10), "hp"] <- NA
Y <- mtcars$mpg
X <- mtcars[,2:4] # <- Missing at random
# Use linear model "recipe"
set.seed(42)
model <- train(
  X, Y, method = "glm",
  preProcess = c("center", "scale", "medianImpute")
)
print(min(model$results$RMSE))
3.612713
Machine Learning ด้วย caret ใน R

ตัวอย่าง: preprocessing mtcars

# PCA before modeling
set.seed(42)
model <- train(
  X, Y, method = "glm",
  preProcess = c("center", "scale", "medianImpute", "pca")
)
min(model$results$RMSE)
3.402557
Machine Learning ด้วย caret ใน R

ตัวอย่าง: preprocessing mtcars

# Spatial sign transform
set.seed(42)
model <- train(
  X, Y, method = "glm",
  preProcess = c("center", "scale", "medianImpute", "spatialSign")
)
min(model$results$RMSE)
4.284904
Machine Learning ด้วย caret ใน R

สรุป preprocessing

  • เริ่มต้นด้วย median imputation
  • ลอง KNN imputation หากข้อมูลไม่ได้หายไปแบบสุ่ม
  • สำหรับ linear models ...
    • Center และ scale
    • ลอง PCA และ spatial sign
  • โมเดลแบบ tree-based ไม่จำเป็นต้อง preprocess มากนัก
Machine Learning ด้วย caret ใน R

มาฝึกกันเถอะ!

Machine Learning ด้วย caret ใน R

Preparing Video For Download...