KNN imputace

Machine Learning s balíčkem caret v R

Zach Mayer

Data Scientist at DataRobot and co-author of caret

Práce s chybějícími hodnotami

  • Mediánová imputace je rychlá, ale…
  • Může dávat nesprávné výsledky, pokud chybí data nenáhodně
  • Imputace k-nejbližšími sousedy (KNN)
  • Imputuje na základě „podobných" řádků bez chybějících hodnot
Machine Learning s balíčkem caret v R

Příklad: data chybí nenáhodně

  • Předpokládejme, že malá auta nevykazují výkon motoru
  • Mediánová imputace je v tomto případě nesprávná: předpokládá, že malá auta mají střední až velký výkon
# 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 s balíčkem caret v R

Příklad: data chybí nenáhodně

  • KNN imputace je lepší
  • Používá auta s podobným disp / cyl k imputaci
  • Poskytuje přesnější (ale pomalejší) model
# Use KNN imputation
set.seed(42)
model <- train(
  X, Y, method = "glm", preProcess = "knnImpute"
)
print(min(model$results$RMSE))
3.558881

Srovnejte s 3,61 pro mediánovou imputaci

Machine Learning s balíčkem caret v R

Pojďme si procvičit!

Machine Learning s balíčkem caret v R

Preparing Video For Download...