Imputacja KNN

Uczenie maszynowe z caret w R

Zach Mayer

Data Scientist at DataRobot and co-author of caret

Obsługa brakujących wartości

  • Imputacja medianą jest szybka, ale…
  • Może dawać błędne wyniki, gdy brakuje danych nielosowo
  • Imputacja k-najbliższych sąsiadów (KNN)
  • Imputuje na podstawie „podobnych" wierszy bez braków
Uczenie maszynowe z caret w R

Przykład: dane brakujące nielosowo

  • Założenie: małe samochody nie raportują mocy silnika
  • Imputacja medianą jest tu niepoprawna: zakłada, że małe auta mają średnią lub dużą moc
# 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
Uczenie maszynowe z caret w R

Przykład: dane brakujące nielosowo

  • Imputacja KNN jest lepsza
  • Używa samochodów o podobnych wartościach disp / cyl
  • Daje dokładniejszy (lecz wolniejszy) model
# Use KNN imputation
set.seed(42)
model <- train(
  X, Y, method = "glm", preProcess = "knnImpute"
)
print(min(model$results$RMSE))
3.558881

Porównaj z 3.61 dla imputacji medianą

Uczenie maszynowe z caret w R

Czas na ćwiczenia!

Uczenie maszynowe z caret w R

Preparing Video For Download...