KNN-imputatie

Machine Learning met caret in R

Zach Mayer

Data Scientist at DataRobot and co-author of caret

Omgaan met missende waarden

  • Mediaanimputatie is snel, maar…
  • Kan fout zijn als missings niet willekeurig zijn
  • k-nearest neighbors (KNN)-imputatie
  • Imputeert op basis van "vergelijkbare" niet-missende rijen
Machine Learning met caret in R

Voorbeeld: niet willekeurig missend

  • Stel dat kleinere auto's geen pk rapporteren
  • Mediaanimputatie is hier fout: veronderstelt dat kleine auto's middelgrote-grote pk hebben
# 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 met caret in R

Voorbeeld: niet willekeurig missend

  • KNN-imputatie is beter
  • Gebruikt auto's met vergelijkbare disp/cyl om te imputeren
  • Geeft een nauwkeuriger (maar trager) model
# Use KNN imputation
set.seed(42)
model <- train(
  X, Y, method = "glm", preProcess = "knnImpute"
)
print(min(model$results$RMSE))
3.558881

Vergelijk met 3,61 voor mediaanimputatie

Machine Learning met caret in R

Laten we oefenen!

Machine Learning met caret in R

Preparing Video For Download...