Bù khuyết bằng KNN

Machine Learning với caret trong R

Zach Mayer

Data Scientist at DataRobot and co-author of caret

Xử lý giá trị thiếu

  • Bù trung vị nhanh, nhưng…
  • Có thể sai nếu thiếu dữ liệu không ngẫu nhiên
  • Bù bằng k láng giềng gần nhất (KNN)
  • Bù dựa trên các dòng “tương tự” không bị thiếu
Machine Learning với caret trong R

Ví dụ: thiếu không ngẫu nhiên

  • Giả sử xe nhỏ không báo horsepower
  • Bù trung vị sai ở đây: giả định xe nhỏ có horsepower trung-bao
# Generate data with missing values
mtcars[mtcars$disp < 140, "hp"] <- NA
Y <- mtcars$mpg
X <- mtcars[, 2:4]

# Use median imputation
model <- train(X, Y, method = "glm", preProcess = "medianImpute")
print(min(model$results$RMSE))
3.612713
Machine Learning với caret trong R

Ví dụ: thiếu không ngẫu nhiên

  • Bù KNN tốt hơn
  • Dùng xe có disp / cyl tương tự để bù
  • Cho mô hình chính xác hơn (nhưng chậm hơn)
# Use KNN imputation
set.seed(42)
model <- train(
  X, Y, method = "glm", preProcess = "knnImpute"
)
print(min(model$results$RMSE))
3.558881

So với 3.61 khi bù trung vị

Machine Learning với caret trong R

Hãy thực hành!

Machine Learning với caret trong R

Preparing Video For Download...