KNN-imputering

Maskininlärning med caret i R

Zach Mayer

Data Scientist at DataRobot and co-author of caret

Hantera saknade värden

  • Medianimputering är snabb, men…
  • Kan ge felaktiga resultat om data saknas på ett icke-slumpmässigt sätt
  • k-nearest neighbors (KNN) imputering
  • Imputerar baserat på "liknande" rader utan saknade värden
Maskininlärning med caret i R

Exempel: data saknas på icke-slumpmässigt sätt

  • Anta att mindre bilar inte rapporterar hästkrafter
  • Medianimputering ger fel resultat här: den antar att små bilar har medelstor eller stor motorstyrka
# 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
Maskininlärning med caret i R

Exempel: data saknas på icke-slumpmässigt sätt

  • KNN-imputering fungerar bättre
  • Använder bilar med liknande disp / cyl för imputering
  • Ger en mer träffsäker (men långsammare) modell
# Use KNN imputation
set.seed(42)
model <- train(
  X, Y, method = "glm", preProcess = "knnImpute"
)
print(min(model$results$RMSE))
3.558881

Jämför med 3,61 för medianimputering

Maskininlärning med caret i R

Nu kör vi en övning!

Maskininlärning med caret i R

Preparing Video For Download...