Imputasi KNN

Machine Learning dengan caret di R

Zach Mayer

Data Scientist at DataRobot and co-author of caret

Menangani nilai hilang

  • Imputasi median cepat, tetapi…
  • Bisa keliru jika data hilang tidak acak
  • Imputasi k-nearest neighbors (KNN)
  • Mengimputasi berdasar baris tidak hilang yang “mirip”
Machine Learning dengan caret di R

Contoh: hilang tidak acak

  • Misalkan mobil kecil tidak melaporkan horsepower
  • Imputasi median keliru di sini: mengasumsikan mobil kecil punya horsepower sedang-besar
# 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 dengan caret di R

Contoh: hilang tidak acak

  • Imputasi KNN lebih baik
  • Gunakan mobil dengan disp/cyl serupa untuk imputasi
  • Hasilkan model lebih akurat (namun lebih lambat)
# Use KNN imputation
set.seed(42)
model <- train(
  X, Y, method = "glm", preProcess = "knnImpute"
)
print(min(model$results$RMSE))
3.558881

Bandingkan dengan 3,61 untuk imputasi median

Machine Learning dengan caret di R

Ayo berlatih!

Machine Learning dengan caret di R

Preparing Video For Download...